:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f8f4ed;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#151515;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.4}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:100%;margin:0;overflow:hidden}#app,#app *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}canvas,button{-webkit-user-drag:none}button{font:inherit;border:0}#scene{background:#13100d;width:100%;height:100%;display:block;position:fixed;inset:0}.release-badge{z-index:6;display:none;position:fixed;top:12px;right:12px}.corner-pause-button{color:#fffaf2db;text-shadow:0 1px 12px #00000061;cursor:pointer;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#12110f7a;border:1px solid #fffaf22e;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:0 10px;font-size:.68rem;font-weight:900;display:inline-flex;box-shadow:0 12px 36px #0000002e}.corner-pause-button svg{stroke-width:2.6px;width:14px;height:14px}.pause-build-info{color:#fffaf2b8;background:#16151394;border:1px solid #ffffff29;border-radius:8px;justify-items:center;gap:2px;padding:7px 10px;display:grid;box-shadow:0 16px 48px #0003}.pause-build-info strong{color:#fffaf2;font-size:.78rem;font-weight:850;line-height:1}.pause-build-info span{font-size:.62rem;font-weight:750;line-height:1.12}.play-overlay{z-index:9;padding:max(14px, env(safe-area-inset-top)) 0 max(14px, env(safe-area-inset-bottom));color:#fffaf2;cursor:pointer;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:radial-gradient(circle,#fffaf221,#0000 28%),#0a09088a;border:0;place-items:start center;transition:opacity .16s,visibility .16s;display:grid;position:fixed;inset:0;overflow:auto}.play-overlay.is-complete{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:radial-gradient(circle at 50% 42%,#f8d27629,#0000 30%),#0a0908a8}.play-overlay.is-hidden{visibility:hidden;opacity:0;pointer-events:none}.pause-card{gap:10px;width:min(430px,100vw - 36px);display:grid}.game-logo{pointer-events:none;filter:drop-shadow(0 12px 24px #0000004d);justify-self:center;width:min(150px,42vw);height:auto;margin-bottom:-2px;display:block}.pause-primary,.pause-secondary{color:#fffaf2;cursor:pointer;background:#161513c2;border:1px solid #ffffff47;border-radius:8px;width:100%;transition:transform .16s,background .16s,border-color .16s;box-shadow:0 18px 60px #0000005c}.pause-primary{letter-spacing:0;padding:10px 18px 9px;font-size:clamp(1rem,2vw,1.35rem);font-weight:850}.pause-primary span,.pause-primary small{text-align:center;display:block}.pause-primary small{color:#fffaf2b8;letter-spacing:0;margin-top:8px;font-size:.72rem;font-weight:700}.pause-secondary{background:#ffffff1c;justify-content:center;align-items:center;gap:8px;min-height:42px;font-size:.82rem;font-weight:850;display:inline-flex}.pause-secondary[hidden]{display:none}.pause-secondary svg{stroke-width:2.4px;width:16px;height:16px}.pause-controls{color:#fffaf2d6;background:#161513ad;border:1px solid #ffffff2e;border-radius:8px;padding:12px;box-shadow:0 18px 60px #0000003d}.pause-controls-title{color:#dff8f4;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:7px;margin-bottom:9px;font-size:.72rem;font-weight:900;display:flex}.pause-controls-title svg{stroke-width:2.5px;width:15px;height:15px}.pause-control-tabs{background:#0000002e;border:1px solid #ffffff24;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-bottom:10px;padding:4px;display:grid}.pause-control-tabs button{color:#fffaf2ad;letter-spacing:0;cursor:pointer;background:0 0;border-radius:6px;min-height:30px;font-size:.68rem;font-weight:900}.pause-control-tabs button.active{color:#201705;background:#f0c866e0;box-shadow:inset 0 1px #ffffff47,0 8px 22px #0000002e}.pause-controls dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin:0;display:grid}.pause-controls dl[hidden]{display:none}.pause-controls dl div{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.pause-controls dt{color:#fffaf2b8;letter-spacing:0;min-width:0;font-size:.72rem;font-weight:760}.pause-controls dd{color:#fffaf2;letter-spacing:0;text-align:right;white-space:nowrap;background:#ffffff1a;border:1px solid #ffffff30;border-radius:5px;flex:none;max-width:58%;margin:0;padding:3px 6px 4px;font-size:.68rem;font-weight:900;box-shadow:inset 0 -1px #0003}.completion-stats{color:#fffaf2d1;text-align:center;background:#161513b3;border:1px solid #ffffff38;border-radius:8px;gap:5px;padding:12px 14px;font-size:.86rem;font-weight:750;display:grid;box-shadow:0 18px 60px #00000047}.completion-stats[hidden]{display:none}.completion-stats strong{color:#fffaf2;font-size:1.15rem}.leaderboard-card{color:#fffaf2d6;cursor:default;background:#161513ad;border:1px solid #ffffff2e;border-radius:8px;gap:8px;padding:10px;display:grid;box-shadow:0 18px 60px #0000003d}.leaderboard-heading{color:#dff8f4;letter-spacing:.08em;text-transform:uppercase;grid-template-columns:1fr auto auto;align-items:center;gap:8px;font-size:.72rem;font-weight:900;display:grid}.leaderboard-heading small{color:#fffaf2b8;letter-spacing:.04em;background:#ffffff12;border:1px solid #d8f8f42e;border-radius:999px;padding:3px 7px;font-size:.58rem;font-weight:900}.leaderboard-heading button,.player-name-form button{color:#fffaf2;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff2e;border-radius:6px;min-height:30px;font-size:.66rem;font-weight:900}.player-name-form{grid-template-columns:1fr auto;gap:6px;display:grid}.player-name-form input{color:#fffaf2;min-width:0;height:36px;font:inherit;-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;background:#0000003d;border:1px solid #ffffff2e;border-radius:6px;outline:none;padding:0 9px;font-size:16px;font-weight:760}.player-name-form input:focus{border-color:#f0c8669e}.leaderboard-list{gap:5px;max-height:142px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.leaderboard-list li{background:#ffffff12;border:1px solid #ffffff1f;border-radius:6px;grid-template-columns:auto 1fr;align-items:center;gap:8px;min-height:36px;padding:5px 7px;font-size:.72rem;font-weight:850;display:grid}.leaderboard-list li.empty{color:#fffaf29e;text-align:center;display:block}.leaderboard-list .rank{color:#f0c866;font-size:.66rem}.leaderboard-list .player{gap:2px;min-width:0;display:grid}.leaderboard-list .name{color:#fffaf2;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.leaderboard-list .stats{color:#dff8f4;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;font-weight:760;overflow:hidden}.leaderboard-status{color:#fffaf299;min-height:16px;margin:0;font-size:.66rem;font-weight:760}.pause-primary:hover,.pause-secondary:hover{background:#23201cdb;border-color:#f0c86685;transform:translateY(-1px)}@media (width<=520px){.pause-card{width:min(330px,100vw - 28px)}.game-logo{width:min(116px,34vw)}.pause-controls dl{grid-template-columns:1fr}}.hud{z-index:5;color:#fffaf2;text-shadow:0 1px 18px #00000057;position:fixed}.hud-top{pointer-events:none;justify-content:space-between;align-items:flex-start;gap:18px;display:flex;top:12px;left:12px;right:12px}.lesson{max-width:min(330px,100vw - 24px);display:none}.eyebrow{color:#f0d4a8;letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;font-size:.62rem;font-weight:800;display:block}h1{letter-spacing:0;margin:0;font-size:clamp(1.25rem,2.35vw,2.15rem);line-height:.95}.lesson p{color:#fffaf2e0;max-width:22rem;margin:6px 0 0;font-size:clamp(.76rem,1vw,.88rem)}.score-panel{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:auto;background:#121617c7;border:1px solid #bfefff57;border-radius:8px;min-width:132px;margin-left:auto;padding:7px;display:none;position:fixed;top:12px;right:12px;box-shadow:0 18px 48px #0000003d}#phasePill{color:#c8dcd9;letter-spacing:.04em;text-transform:uppercase;font-size:.64rem;font-weight:800;display:none}#progressText{margin-top:2px;font-size:1.05rem;display:none}.meter{background:#ffffff29;border-radius:999px;width:100%;height:5px;margin-top:5px;overflow:hidden}.score-panel>.meter{display:none}.meter span{border-radius:inherit;background:linear-gradient(90deg,#4cc9a7,#f2d16b);width:0%;height:100%;transition:width .26s;display:block}.rinse-water-panel{z-index:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#121617d1;border:1px solid #bfefff57;border-radius:8px;width:min(280px,100vw - 36px);padding:8px 10px;display:none;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 18px 48px #00000047}.rinse-water-panel.active{grid-template-columns:auto auto minmax(86px,1fr);align-items:center;gap:7px;display:grid}.rinse-water-panel>span{color:#d8fbff;letter-spacing:.04em;text-transform:uppercase;font-size:.58rem;font-weight:800;display:block}.rinse-water-panel strong{color:#fffaf2;margin-top:0;font-size:.72rem;display:block}.water-meter{height:5px;margin-top:0}.water-meter span{background:linear-gradient(90deg,#7fd9ee,#d8fbff);width:100%}.rinse-water-panel.low .water-meter span{background:linear-gradient(90deg,#f0c866,#fff0ad)}.rinse-water-panel.empty .water-meter span{background:linear-gradient(90deg,#d96b5d,#f2a58f)}.action-strip{z-index:8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#121110b8;border:1px solid #ffffff2b;border-radius:8px;flex-direction:column;justify-content:center;align-items:stretch;gap:6px;width:min(100vw - 20px,860px);min-height:44px;padding:5px;transition:filter .16s,opacity .16s;display:flex;bottom:10px;left:50%;transform:translate(-50%);box-shadow:0 20px 60px #00000059}#app.is-paused .action-strip{filter:blur(4px);opacity:.42;pointer-events:none}.task-toast{color:#d8f5eb;pointer-events:none;opacity:0;white-space:nowrap;background:#101d18db;border:1px solid #49c09561;border-radius:8px;justify-content:center;align-items:center;gap:9px;min-height:40px;padding:8px 13px;font-size:.78rem;font-weight:900;transition:opacity .16s,transform .16s;display:inline-flex;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,12px)scale(.94);box-shadow:0 18px 48px #00000052,0 0 0 5px #49c0951a}.task-toast.visible{opacity:1;transform:translate(-50%)scale(1)}.task-toast-icon{background:#49c095;border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.task-toast-icon:before{content:"";border-bottom:2px solid #102018;border-left:2px solid #102018;width:9px;height:5px;transform:rotate(-45deg)translateY(-1px)}.control-row{justify-content:center;align-items:center;gap:6px;width:100%;min-height:34px;display:flex}.primary-action,.tool,.checklist-toggle{color:#fffaf2;cursor:pointer;background:#ffffff17;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-height:34px;transition:transform .18s,background .18s,box-shadow .18s;display:inline-flex;position:relative;box-shadow:inset 0 0 0 1px #ffffff17}.primary-action{background:#1e6655;flex:0 112px;min-width:94px;padding:0 8px;font-size:.72rem;font-weight:800}.checklist-toggle{color:#f7ead0;background:#ffffff1a;flex:0 0 104px;padding:0 8px;font-size:.7rem;font-weight:850}.checklist-toggle strong{color:#171511;background:#f0c866;border-radius:999px;place-items:center;min-width:30px;height:19px;font-size:.58rem;line-height:1;display:inline-grid}.checklist-toggle.active{background:#d8f5eb2e;box-shadow:inset 0 0 0 1px #d8f5eb47,0 8px 22px #0003}.checklist-toggle.done strong{background:#49c095}.tool-tray{flex:340px;align-items:stretch;gap:5px;min-width:0;display:flex}.tool-group{gap:5px;min-width:0;display:grid}.spray-tool-group{flex:.8 160px;grid-template-columns:repeat(2,minmax(44px,1fr))}.surface-tool-group{flex:1.2 220px;grid-template-columns:repeat(3,minmax(44px,1fr))}.tool-divider{background:#ffffff2e;align-self:center;width:1px;min-height:26px;box-shadow:0 0 0 1px #00000024}.tool{padding:0 6px;font-size:.68rem}.tool:after{content:attr(data-hotkey);color:#fffaf2c2;background:#0000003d;border-radius:50%;place-items:center;width:14px;height:14px;font-size:.48rem;font-weight:900;line-height:1;display:grid;position:absolute;top:3px;right:4px}.tool.active:after{color:#171511;background:#ffffff6b}.tool span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tool.active{color:#171511;background:#f0c866;box-shadow:inset 0 0 0 1px #ffffff47,0 8px 22px #f0c86633}.primary-action:hover,.tool:hover,.checklist-toggle:hover{background-color:#ffffff29;transform:translateY(-1px)}.primary-action:hover{background-color:#277a66}.tool.active:hover{background-color:#ffd879}.primary-action:disabled,.primary-action:disabled:hover{color:#fffaf29e;cursor:default;background:#ffffff1a;transform:none}.tool svg,.primary-action svg,.checklist-toggle svg{stroke-width:2.35px;flex:none;width:15px;height:15px}.room-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#16141294;border:1px solid #ffffff26;border-radius:8px;width:min(150px,100vw - 24px);padding:7px;top:12px;left:12px;box-shadow:0 18px 52px #00000047}.room-progress{border-bottom:0;padding-bottom:0}.room-progress>span{color:#d8f5eb;letter-spacing:.04em;text-transform:uppercase;font-size:.58rem;font-weight:800;display:block}.room-progress strong{color:#fffaf2;margin-top:1px;font-size:.82rem;display:block}.checklist-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#121110db;border:1px solid #d8f5eb3d;border-radius:8px;width:min(360px,100vw - 28px);padding:10px;display:none;position:absolute;bottom:calc(100% + 8px);right:52px;box-shadow:0 24px 70px #0000006b}.checklist-panel.open{display:block}.checklist-heading{color:#d8f5eb;letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;padding:0 1px 8px;font-size:.64rem;font-weight:850;display:flex}.checklist-heading strong{color:#f0c866}.task-list{gap:7px;margin:0;padding:0;list-style:none;display:grid}.task-list li{color:#fffaf2b8;background:#ffffff12;border-radius:7px;grid-template-columns:22px 1fr;align-items:center;gap:9px;min-height:52px;padding:8px;display:grid;box-shadow:inset 0 0 0 1px #ffffff14}.task-list li.active{color:#fffaf2;background:#f0c86624;box-shadow:inset 0 0 0 1px #f0c86638}.task-list li.done{color:#d8f5eb;background:#49c09521;box-shadow:inset 0 0 0 1px #49c09538}.task-check{background:#fffaf217;border:1px solid #fffaf252;border-radius:50%;place-items:center;width:20px;height:20px;display:grid}.task-list li.done .task-check{background:#49c095;border-color:#49c095}.task-list li.done .task-check:before{content:"";border-bottom:2px solid #102018;border-left:2px solid #102018;width:8px;height:5px;transform:rotate(-45deg)translateY(-1px)}.task-list strong,.task-list small{display:block}.task-list strong{justify-content:space-between;align-items:center;gap:8px;font-size:.76rem;line-height:1.05;display:flex}.task-progress{color:#14110c;background:#f0c866;border-radius:999px;flex:none;padding:2px 6px;font-size:.58rem;font-weight:900;line-height:1}.task-list small{color:#fffaf294;margin-top:3px;font-size:.62rem;line-height:1.2}.room-panel p{display:none}#reticle{z-index:4;pointer-events:none;border:1px solid #ffffff7a;border-radius:50%;width:10px;height:10px;transition:width .14s,height .14s,border-color .14s,box-shadow .14s;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 18px #0009}#reticle.spray-active{border-color:#c9f5ffe0;width:18px;height:18px;box-shadow:0 0 0 6px #71d7e51a,0 0 24px #c9f5ff8f,0 0 18px #0009}#reticle.rinse-active{border-color:#dbfcffe0;width:22px;height:22px;box-shadow:0 0 0 7px #90e0ea1c,0 0 26px #c6f6ff85,0 0 18px #00000094}#reticle.rinse-hidden{opacity:0}.refill-prompt{z-index:6;color:#f7fdff;text-align:center;text-shadow:0 1px 10px #0006;pointer-events:none;opacity:0;background:#0e181bc7;border:1px solid #d8fbff6b;border-radius:7px;min-width:126px;padding:7px 10px;font-size:.72rem;font-weight:850;transition:opacity .14s,transform .14s,background .14s;position:fixed;top:50%;left:50%;transform:translate(-50%,-100%)scale(.94);box-shadow:0 12px 36px #00000052,0 0 0 5px #74d4ee1a}.refill-prompt.visible{opacity:1;transform:translate(-50%,-100%)scale(1)}.refill-prompt.refilling{color:#fff3c6;background:#2f2511d1;border-color:#f0c8668a;box-shadow:0 12px 36px #00000052,0 0 0 5px #f0c8661f}.refill-prompt.mobile-action-prompt,.interaction-prompt.mobile-action-prompt{z-index:13;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-width:112px;padding:10px 14px}.interaction-prompt{z-index:6;color:#fff7dc;text-align:center;text-shadow:0 1px 10px #00000070;pointer-events:none;opacity:0;background:#201a10d1;border:1px solid #f0c86680;border-radius:7px;min-width:168px;padding:8px 12px;font-size:.74rem;font-weight:900;transition:opacity .14s,transform .14s;position:fixed;top:calc(50% + 44px);left:50%;transform:translate(-50%,8px)scale(.94);box-shadow:0 12px 36px #00000057,0 0 0 5px #f0c8661f}.interaction-prompt.visible{opacity:1;transform:translate(-50%)scale(1)}.mobile-controls{z-index:7;pointer-events:none;display:none;position:fixed;inset:0}.mobile-left-cluster,.mobile-right-cluster{pointer-events:none;gap:10px;display:grid;position:absolute}.mobile-left-cluster{left:max(14px, env(safe-area-inset-left));bottom:calc(92px + env(safe-area-inset-bottom));justify-items:center}.mobile-right-cluster{right:max(14px, env(safe-area-inset-right));bottom:calc(92px + env(safe-area-inset-bottom));justify-items:end}.mobile-action-row{pointer-events:auto;justify-content:flex-end;align-items:center;gap:7px;display:flex}.mobile-stick{pointer-events:auto;touch-action:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:radial-gradient(circle,#ffffff1f,#0000 34%),#0c0c0b6b;border:1px solid #fff3;border-radius:50%;width:94px;height:94px;box-shadow:inset 0 0 0 12px #ffffff0d,0 18px 42px #00000052}.mobile-stick span{background:#f0c866d1;border:1px solid #fffaf25c;border-radius:50%;width:34px;height:34px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 1px #ffffff47,0 10px 24px #0000003d}.mobile-action{color:#fffaf2;letter-spacing:0;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#131211b8;border:1px solid #ffffff38;border-radius:8px;min-width:50px;min-height:38px;padding:0 8px;font-size:.68rem;font-weight:900;box-shadow:inset 0 0 0 1px #ffffff0f,0 14px 34px #0000004d}.mobile-action.aim{color:#e9fbff;background:#1c2f32bd;min-width:66px;min-height:36px}.mobile-action.context{color:#201705;background:#f0c866e0;min-width:68px}.mobile-action.active,.mobile-action:active{color:#fff3c6;background:#2f2511d6;border-color:#f0c86699}@media (hover:none),(pointer:coarse){.mobile-controls.active,.release-badge{display:block}.action-strip{z-index:11}.rinse-water-panel{border-radius:7px;width:128px;padding:5px 7px;bottom:calc(100% + 3px)}.rinse-water-panel.active{grid-template-columns:auto minmax(52px,1fr);gap:6px}.rinse-water-panel>span{display:none}.rinse-water-panel strong{font-size:.66rem;line-height:1}.rinse-water-panel .water-meter{height:4px}.checklist-panel{left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));bottom:calc(72px + env(safe-area-inset-bottom));z-index:12;background:#121110f5;width:auto;max-height:min(52vh,360px);position:fixed;overflow:auto}.checklist-panel .task-list li{background:#262420f0}.checklist-panel .task-list li.active{background:#43361af5}.checklist-panel .task-list li.done{background:#193e30f5}}@media (width<=760px){.hud-top{gap:10px}.score-panel{min-width:124px}.lesson p{max-width:15rem}.action-strip{width:min(100vw - 16px,760px);min-height:52px}.primary-action{flex:0 0 116px;min-width:116px}.tool-tray{flex:240px}.checklist-toggle{flex:0 0 72px;padding:0 7px}.checklist-toggle strong{display:none}.checklist-toggle span{font-size:.62rem;display:inline}.checklist-panel{right:6px}.room-panel{width:132px}}@media (width<=520px){.hud-top{flex-direction:column;align-items:stretch}.score-panel{width:164px}.lesson,.lesson p{max-width:calc(100vw - 36px)}.tool{min-height:40px;padding:0 5px}.tool span,.primary-action span{display:none}.primary-action{flex:0 0 42px;min-width:42px;padding:0}.checklist-panel{width:auto}.room-panel{width:118px}}
