@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:300;src:url(/puddle-study/assets/outfit-latin-300-normal-CRYTwY6m.woff2) format("woff2"),url(/puddle-study/assets/outfit-latin-300-normal-AWLfuCom.woff) format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/puddle-study/assets/outfit-latin-400-normal-BGsTXAXT.woff2) format("woff2"),url(/puddle-study/assets/outfit-latin-400-normal-DMwTpYkH.woff) format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/puddle-study/assets/outfit-latin-500-normal-DKnIMDSk.woff2) format("woff2"),url(/puddle-study/assets/outfit-latin-500-normal-ClnHRwRh.woff) format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/puddle-study/assets/outfit-latin-600-normal-B7SfZ07L.woff2) format("woff2"),url(/puddle-study/assets/outfit-latin-600-normal-BEfTtDA7.woff) format("woff")}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/puddle-study/assets/dm-mono-latin-400-normal-4GdczIuU.woff2) format("woff2"),url(/puddle-study/assets/dm-mono-latin-400-normal--0xN8mdc.woff) format("woff")}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/puddle-study/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2) format("woff2"),url(/puddle-study/assets/dm-mono-latin-500-normal-CN8Miw6E.woff) format("woff")}[hidden]{display:none!important}:root{font-family:Outfit,Arial,sans-serif;color:#25383b;background:#c6e1dd}*{box-sizing:border-box}body{margin:0;overflow:hidden}#app,#world{position:fixed;inset:0;width:100%;height:100%}#world{display:block;touch-action:none}.grain{pointer-events:none;position:fixed;inset:0;opacity:.11;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.67' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");mix-blend-mode:multiply}header{position:absolute;top:40px;left:52px;pointer-events:none}.eyebrow,.plate-label,.instructions,.readout,.controls,.size-controls{font-family:DM Mono,monospace;letter-spacing:.08em}header .eyebrow{font-size:10px;color:#586f6f;letter-spacing:.2em}h1{font-size:clamp(34px,4vw,60px);line-height:1;letter-spacing:-.07em;font-weight:300;margin:12px 0 8px}h1 em{font-weight:300;color:#b5766f;font-style:normal}header p{font-size:13px;margin:0;color:#526767;font-weight:300}.plate-label{position:absolute;left:52px;bottom:126px;font-size:11px;color:#577171}.plate-label span{color:#9b8585;margin-left:12px}.readout{position:absolute;right:42px;top:43px;width:222px;padding:20px 22px;background:#f1e7d6bd;border:1px solid rgba(40,54,52,.48);box-shadow:4px 5px #455d5a14;font-size:10px}.mode{font-weight:500;font-size:13px;color:#a45851;letter-spacing:.17em;margin-bottom:10px}#message{font-family:Outfit,Arial,sans-serif;font-size:13px;line-height:1.4;letter-spacing:0;min-height:42px}.meters{margin-top:18px}.meters>div:not(.meter){display:flex;justify-content:space-between;margin:10px 0 4px}.meters b{font-weight:400}.meter{height:3px;background:#bcb8a8}.meter i{display:block;height:100%;width:0;background:#b7726b;transition:width .14s}.controls{position:absolute;right:42px;bottom:45px;display:flex;gap:7px}.controls button,.size-controls button,.touch-pad button{font-family:inherit;border:1px solid #506464;background:#f5eeddc7;color:#30484a;cursor:pointer}.controls button{padding:11px 12px;display:flex;gap:8px;align-items:center;font-size:10px;letter-spacing:.02em}.controls button:hover,.size-controls button:hover,.touch-pad button:hover{background:#f9e7d1}.controls button:disabled{opacity:.42;cursor:default}.controls kbd{font-family:inherit;color:#aa645e;font-size:9px}.instructions{position:absolute;left:52px;bottom:48px;font-size:10px;color:#4a6666}.instructions span{margin:0 8px;color:#c77770}.size-controls{position:absolute;right:42px;top:261px;display:flex;gap:4px;align-items:center;font-size:9px;color:#52696a}.size-controls span{margin-right:7px}.size-controls button{width:26px;height:26px}.size-controls .selected{background:#b87570;color:#fff}.touch-pad{display:none}button:focus-visible{outline:2px solid #aa615c;outline-offset:2px}@media(max-width:760px){header{top:16px;left:16px}header .eyebrow{font-size:8px}h1{font-size:28px;margin:5px 0}header p{display:none}.readout{right:12px;top:76px;width:154px;padding:10px}.mode{font-size:10px}#message{font-size:11px;min-height:45px}.meters{margin-top:5px}.size-controls{right:12px;top:229px}.plate-label{left:16px;bottom:166px}.instructions{left:16px;right:16px;bottom:14px;font-size:8px;line-height:1.5}.controls{right:12px;bottom:52px;display:grid;grid-template-columns:repeat(2,1fr)}.controls button{padding:8px;font-size:9px;min-height:38px}.touch-pad{display:block;position:absolute;left:12px;bottom:49px;text-align:center}.touch-pad button{width:41px;height:41px;border-radius:50%;margin:1px;background:#f5eedda6}.touch-pad div{display:flex}}.test-controls{position:absolute;left:52px;top:154px;display:flex;gap:6px;font-family:DM Mono,monospace}.test-controls button{border:1px solid #607679;background:#f1e8d6b8;color:#385458;font:inherit;font-size:10px;letter-spacing:.06em;padding:8px 10px;cursor:pointer}.test-controls button.selected{background:#a9c9c2;border-color:#506a68}.test-controls button:hover{background:#dbe4d6}.world-label{position:absolute;transform:translate(-50%,-100%);pointer-events:none;font-family:DM Mono,monospace;font-size:9px;color:#304d4d;background:#efe8d5cc;padding:4px 6px;border:1px solid rgba(49,73,74,.42);white-space:nowrap}.world-label span{color:#907b79}.controls{flex-wrap:wrap;justify-content:flex-end;max-width:540px}@media(max-width:760px){.test-controls{inset:auto 12px 211px;justify-content:center;gap:3px}.test-controls button{font-size:8px;padding:8px 6px;flex:1}.world-label{font-size:7px;padding:3px 4px}.controls{max-width:194px;grid-template-columns:repeat(2,1fr)}.controls button{justify-content:center}.size-controls{top:235px}.plate-label{bottom:254px}}.test-controls{max-width:min(620px,calc(100vw - 104px));flex-wrap:wrap}.test-controls button{white-space:nowrap}@media(max-width:760px){.test-controls{max-width:none;bottom:209px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:calc(100vw - 24px)}.test-controls button{min-height:32px}.plate-label{bottom:284px}.world-label{z-index:1}}.gap-controls{display:none;position:absolute;left:52px;top:198px;gap:5px;font-family:DM Mono,monospace}.gap-controls.active{display:flex}.gap-controls button{font:inherit;font-size:9px;letter-spacing:.06em;color:#385458;background:#efe8d5d9;border:1px solid #607679;padding:8px 10px;cursor:pointer}.gap-controls button.selected{background:#a9c9c2;border-color:#506a68}.gap-controls #ooze-forward.selected{background:#c77c74;color:#fff}@media(max-width:760px){.test-controls{grid-template-columns:repeat(3,minmax(0,1fr));bottom:218px}.test-controls button{font-size:7px}.gap-controls{inset:auto 12px 188px;justify-content:center}.gap-controls button{font-size:7px;padding:7px 6px;flex:1}.plate-label{bottom:296px}}@media(max-width:760px){.plate-label{display:none}}.gap-controls button[hidden]{display:none}.material-controls{position:absolute;right:42px;top:365px;width:220px;padding:9px 11px;background:#f1e7d6bd;border:1px solid rgba(40,54,52,.38);font:9px DM Mono,monospace;letter-spacing:.06em;color:#385458}.material-controls label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:5px 0}.material-controls input{width:104px;accent-color:#b7726b}.material-controls button{font:inherit;font-size:8px;letter-spacing:.06em;margin-top:6px;border:1px solid #607679;background:#e9d5bb;color:#385458;cursor:pointer;padding:5px}.size-controls{top:327px}@media(max-width:760px){.size-controls{top:300px}.material-controls{right:12px;top:338px;width:154px;padding:5px 7px;font-size:7px}.material-controls input{width:65px}.material-controls label{margin:2px 0}}.controls button[aria-pressed=true]{background:#b5cbbd}@media(min-width:761px){.instructions{bottom:18px}.controls{bottom:45px}}@media(max-width:760px){.test-controls{grid-template-columns:repeat(5,minmax(0,1fr))}}#tendril-status{font-size:8px;line-height:1.5;letter-spacing:.02em;margin-top:12px;color:#527367}@media(min-width:761px){.controls{max-width:650px}.controls button{padding:10px}}.music-controls{position:absolute;right:42px;top:485px;width:220px;padding:10px 11px;background:#f1e7d6cc;border:1px solid rgba(40,54,52,.38);font:9px DM Mono,monospace;color:#385458}.music-controls button{font:inherit;background:#e9d5bb;color:#385458;border:1px solid #607679;padding:6px;cursor:pointer}.music-controls button[aria-pressed=true]{background:#a9c9bf}.music-controls label{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.music-controls input{width:135px;accent-color:#b7726b}#music-status{font-size:8px;margin-top:9px;line-height:1.4}@media(max-width:760px){.music-controls{right:12px;top:414px;width:154px;padding:6px;font-size:8px}.music-controls input{width:95px}#music-status{font-size:7px}}#study-menu-toggle,#study-menu{display:none}@media(pointer:coarse),(max-width:760px),(max-width:1000px)and (max-height:500px){.controls{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));display:flex;flex-wrap:nowrap;width:auto;max-width:none;gap:8px;z-index:9}.controls button{display:grid;place-items:center;width:58px;min-height:58px;padding:6px;border-radius:50%;font-size:10px;touch-action:none;user-select:none}.controls button kbd{display:none}.controls button span{font-size:0!important}.controls #pull span:after{content:"Contract";font-size:9px}.controls #push span:after{content:"Run";font-size:11px}.controls #shed{width:48px;min-height:48px;align-self:center}.controls #shed span:after{content:"Shed";font-size:10px}.controls #cast,.controls #reset{display:none}header,.plate-label,.instructions,.readout,.test-controls,.gap-controls,.material-controls,.size-controls,.music-controls{display:none!important}#study-menu-toggle{display:block;position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:11;min-height:48px;padding:0 15px;background:#eee6d4;border:1px solid #506464;color:#30484a;font:11px DM Mono,monospace}body.playing-game #study-menu-toggle{display:none}#study-menu:not([hidden]){display:block;position:fixed;z-index:12;inset:0;overflow:auto;padding:20px;background:#eee6d4f5;color:#30484a;font:12px/1.5 DM Mono,monospace}#study-menu-close,#study-menu-reset{min-height:48px;min-width:70px;background:#a9c9bf;border:1px solid #506464;margin-right:8px}#study-menu-body>*{display:flex!important;position:static!important;max-width:none!important;width:100%!important;margin:12px 0!important;flex-wrap:wrap;gap:6px}#study-menu-body .readout{display:block!important}#study-menu-body .size-controls,#study-menu-body .material-controls,#study-menu-body .music-controls{padding:8px}#study-menu-body .music-controls{display:block!important}#study-menu-body .gap-controls:not(.active){display:none!important}#study-menu-body .test-controls button{min-height:44px;flex:1}body.playing-game:has(.in-menu) .controls{visibility:hidden}}.game-study-links{margin-top:10px}.game-study-links[hidden]{display:none}#game-shell .game-study-links a{font:11px DM Mono,monospace;border:1px solid #506464;padding:12px 18px;background:#eee6d4;color:#30484a;text-decoration:none;pointer-events:auto}#game-shell .game-study-links a:hover{background:#e8c7b0}#game-shell .game-study-links a:focus-visible{outline:2px solid #aa615c;outline-offset:2px}.playing-game header,.playing-game .test-controls,.playing-game .readout,.playing-game .material-controls,.playing-game .plate-label{display:none!important}.game-top{position:absolute;top:30px;left:38px;right:38px;display:flex;align-items:center;justify-content:space-between;gap:24px;pointer-events:none}.game-top h2{font-size:24px;font-weight:400;margin:5px 0}.game-top .eyebrow{font:10px DM Mono,monospace;letter-spacing:.15em;color:#52706e}.game-score{display:flex;align-items:center;gap:12px;font:12px DM Mono,monospace}.game-score span:first-child{color:#806390}.game-score span:nth-child(2){color:#8e6c29}#game-timer{min-width:110px;color:#304f4e;font-variant-numeric:tabular-nums;white-space:nowrap}#game-camera{white-space:nowrap}#game-shell button,#return-to-game{font:11px DM Mono,monospace;border:1px solid #506464;padding:12px 18px;background:#eee6d4;color:#30484a;cursor:pointer;pointer-events:auto}#game-shell button:hover{background:#e8c7b0}#game-shell kbd{font:9px DM Mono,monospace;color:#976f69;margin-left:8px}#game-shell button:disabled{opacity:.48;cursor:not-allowed;background:#ddd6c7}#game-level-screen h1{font-size:56px;margin:12px 0 8px}#game-level-screen>p{font-size:14px;margin:0 0 14px}#game-dev-access{display:flex;align-items:center;gap:8px;margin:12px 0;font:10px DM Mono,monospace;color:#8b605a}#game-dev-access[hidden]{display:none}#game-level-list{display:grid;gap:8px;max-height:min(45dvh,380px);overflow:auto}.game-level-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid #90a19a;background:#f6efdf}.game-level-row b{display:block;font:13px DM Mono,monospace;color:#344f50}.game-level-row small{display:block;margin-top:5px;font:10px/1.4 DM Mono,monospace;color:#765f62}#game-shell .game-level-row button{min-width:72px;padding:9px 12px}.game-level-tabs{display:flex;gap:8px;margin:0 0 12px}.game-level-tabs button[aria-selected=true]{background:#496b65;color:#fff}.game-level-row a{color:#345b5b;font:11px DM Mono,monospace;text-decoration:underline;white-space:nowrap}.game-level-row .game-local-error{color:#9a4f48}.game-board-list{max-height:36vh;overflow:auto;padding-left:26px;font:12px/1.7 DM Mono,monospace;color:#345b5b}.game-board-list li{padding:5px 0;border-bottom:1px solid #90a19a}#game-board-screen select{background:#f6efdf;border:1px solid #90a19a;padding:8px;font:12px DM Mono,monospace;color:#344f50;max-width:100%}#game-board-screen p,.game-ranked-status{font:11px/1.55 DM Mono,monospace!important;color:#526b66}#game-board-screen a{font:12px DM Mono,monospace;color:#345b5b}.game-test-badge{display:block;margin-top:3px;color:#8b5653;font:9px DM Mono,monospace;letter-spacing:.08em}.game-hint{position:absolute;bottom:98px;left:38px;max-width:410px;padding:16px 20px;background:#ece5d7e8;border:1px solid #607679;font-size:14px;pointer-events:none}.game-hint b{font:10px DM Mono,monospace;letter-spacing:.1em;color:#9e625b}.game-hint p{line-height:1.5;margin:7px 0 0}.game-hint small{display:block;margin-top:8px;font:9px DM Mono,monospace;letter-spacing:.03em;color:#527367}.game-hint small[hidden]{display:none}.game-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#c7e2dfaa;z-index:12}.game-card{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:42px;background:#eee6d4f5;border:1px solid #536c68;box-shadow:8px 8px #60767916}.game-card .eyebrow{font:10px DM Mono,monospace;letter-spacing:.17em}.game-card h1{font-size:70px;margin:20px 0}.game-card p{font-size:17px;line-height:1.6}.game-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}#game-shell #game-primary{background:#a9c9bf}.game-card .game-footnote{font:10px DM Mono,monospace;line-height:1.6;margin:22px 0 0;color:#677a73}#game-results{font:14px DM Mono,monospace;line-height:1.7;color:#806390;white-space:pre-line}.game-overlay[hidden],#tablet-read[hidden]{display:none!important}.tablet-overlay{z-index:17;background:#3e5f5b99}.tablet-card{width:min(430px,calc(100vw - 28px));padding:30px 34px;border:2px solid #617d73;background:#f2e7ce}.tablet-card h1{font-size:36px;line-height:1.1;margin:12px 0}.tablet-card p{font-size:16px;line-height:1.5}.tablet-card #tablet-hint{font:11px/1.5 DM Mono,monospace;color:#476b68}#tablet-read{position:absolute;bottom:270px;left:38px;z-index:8;background:#e6e1cc!important;box-shadow:3px 3px #56706844}body.playing-game:has(.tablet-overlay:not([hidden])) .controls,body.playing-game:has(.tablet-overlay:not([hidden])) .touch-pad{visibility:hidden}@media(max-width:760px){#tablet-read{left:12px;bottom:355px}.tablet-card{padding:22px}.tablet-card h1{font-size:31px}}@media(pointer:coarse){#tablet-read{left:max(12px,env(safe-area-inset-left));bottom:max(140px,env(safe-area-inset-bottom))}}.playing-game .music-controls{top:auto;bottom:110px;right:38px;width:176px}.playing-game .music-controls input{width:100px}.playing-game .controls{right:38px;bottom:36px}.playing-game .instructions{left:38px;bottom:38px;font-size:9px;max-width:450px}.playing-game .garden-label{font-size:8px}.in-menu .game-top,.in-menu .game-hint{visibility:hidden}body.playing-game:has(.in-menu) .controls,body.playing-game:has(.in-menu) .instructions,body.playing-game:has(.in-menu) .touch-pad{visibility:hidden}body.playing-game:has(.in-menu) .music-controls{z-index:13;bottom:24px;right:24px}@media(max-width:760px){.game-top{top:15px;left:16px;right:16px;align-items:flex-start}.game-top h2{font-size:17px}.game-score{gap:7px;flex-wrap:wrap;justify-content:flex-end;max-width:190px;font-size:9px}#game-shell .game-score button{padding:7px 8px;font-size:9px}.game-hint{bottom:210px;left:12px;right:12px;max-width:none;padding:10px 12px;font-size:12px}.playing-game .controls{right:12px;bottom:69px}.playing-game .instructions{left:12px;bottom:14px;max-width:calc(100vw - 24px);font-size:8px}.playing-game .music-controls{right:12px;bottom:164px;width:154px}.playing-game .music-controls label,.playing-game #music-status{display:none}.playing-game .music-controls{padding:0;border:0;background:none;width:auto}.playing-game .touch-pad{bottom:63px}.game-card{padding:28px}.game-card h1{font-size:56px}.game-card p{font-size:15px}#game-level-screen h1{font-size:42px}.game-level-row{padding:9px;gap:7px}.game-level-row b{font-size:11px}.game-level-row small{font-size:9px}#game-shell .game-level-row button{min-width:62px;padding:8px}body.playing-game:has(.in-menu) .music-controls{bottom:18px;right:18px}.garden-label{display:none}}.game-settings{border-top:1px solid #a7b9ae;margin-top:20px;padding-top:14px;font:11px/1.5 DM Mono,monospace}.game-settings summary{cursor:pointer;min-height:36px;display:list-item}.game-settings p{font-size:11px;line-height:1.5;margin:4px 0 12px}.game-settings #game-settings-audio .music-controls{position:static;width:100%;margin-top:12px;display:block}.game-settings #game-settings-audio .music-controls input{width:min(180px,58vw)}@media(pointer:coarse),(max-width:760px),(max-width:1000px)and (max-height:500px){.game-top{top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));gap:5px}.game-top>div:first-child{display:none}.game-score{width:100%;max-width:none;min-width:0;justify-content:flex-end;gap:8px;flex-wrap:nowrap;font-size:10px}.game-score{display:grid;grid-template-columns:max-content max-content 1fr;grid-template-rows:auto auto;align-items:center}#gem-score{grid-column:1;grid-row:1}#gold-score{grid-column:2;grid-row:1}#game-timer{grid-column:1/-1;grid-row:2;min-width:0;font-size:10px;justify-self:start;background:#ece5d7de;padding:3px 5px}#game-menu{grid-column:3;grid-row:1;justify-self:end}.game-score #game-camera{display:none}#game-shell .game-score #game-menu{min-width:48px;min-height:48px;padding:6px 9px;font-size:10px}#game-shell .game-score #game-menu kbd{display:none}.game-hint,.playing-game .instructions,.playing-game .garden-label{display:none!important}.playing-game .controls{bottom:max(12px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right))}body.playing-game .music-controls{display:none!important}body.playing-game .game-settings .music-controls{display:block!important;background:#f1e7d6cc;border:1px solid #607679;padding:9px}.game-card{width:min(480px,calc(100vw - 20px));max-height:calc(100dvh - 20px);padding:24px}}@media(pointer:coarse),(max-width:760px),(max-width:1000px)and (max-height:500px){body.playing-game .game-settings .music-controls label{display:flex!important}body.playing-game .game-settings #music-status{display:block!important}}
