:root{color:#e1dfc5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;background:#1c2724;font-family:Segoe UI,Arial,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible{outline-offset:3px;outline:2px solid #e3cc8e}[hidden]{display:none!important}#playfield,#game{width:100%;height:100dvh;position:absolute;inset:0}#game canvas{touch-action:none;display:block}@keyframes trace-demo{0%,15%{opacity:0;transform:translate(9px,35px)scale(.55)}25%{opacity:.8;transform:translate(9px,35px)scale(.55)}50%{opacity:.8;transform:translate(9px,10px)scale(.55)}80%{opacity:.8;transform:translate(69px,10px)scale(.55)}to{opacity:0;transform:translate(69px,10px)scale(.55)}}#game canvas{width:100%!important;height:100%!important}button{position:relative}button kbd{color:currentColor;opacity:.65;pointer-events:none;font:9px monospace;position:absolute;bottom:3px;right:5px}@keyframes guide-bounce{0%{transform:translateY(-6px)}to{transform:translateY(3px)}}#game-hud{top:calc(20px + env(safe-area-inset-top));pointer-events:none;position:absolute;left:20px;right:82px}.mission-strip{pointer-events:auto;background:#17251ed9;border:1px solid #70825b55;border-radius:5px;align-items:center;gap:18px;width:fit-content;max-width:100%;padding:7px 7px 7px 17px;display:flex}#objective{color:#d5dbc2;font-size:13px;line-height:1.4}.mission-copy{flex-direction:column;gap:4px;display:flex}#wave-count{color:#a7b593;font:10px monospace}#start-wave.guided{outline-offset:3px;outline:2px solid #efdc9f;box-shadow:0 0 0 6px #dcc18a17}#start-wave{color:#25301f;white-space:nowrap;background:#d0bd85;border:1px solid #dbca94;border-radius:3px;min-width:115px;min-height:44px;padding:10px 14px;font-size:12px;font-weight:600}#start-wave:disabled{color:#b8c49f;background:#38452d;border-color:#76806388}.icon-button{right:20px;top:calc(20px + env(safe-area-inset-top));color:#d2d9be;background:#17251ed9;border:1px solid #6c7d5355;border-radius:4px;width:46px;height:46px;font-size:19px;position:absolute}#start-wave{padding-bottom:18px;font-size:14px}#reset-wave{color:#d8e1bc;white-space:nowrap;background:#203729;border:1px solid #879b64;border-radius:3px;min-height:44px;padding:10px 13px;font-size:13px}#action-hint{color:#b8c7a5;background:#14231bd9;border-radius:3px;width:fit-content;max-width:100%;margin-top:9px;padding:7px 10px;font:11px/1.5 monospace}#game-hud.under-attack .mission-strip{background:#38281ee8;border-color:#d79a76}#game-hud.under-attack #objective{color:#ffcf9e;font-weight:650}#toolbar{left:50%;bottom:calc(20px + env(safe-area-inset-bottom));z-index:2;max-width:calc(100% - 24px);position:absolute;transform:translate(-50%)}.tool-row{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#17251e99;border:1px solid #7c8b5e66;border-radius:6px;align-items:center;gap:6px;padding:6px;display:flex}.tool{color:#c4ceb2;background:0 0;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:8px;min-width:82px;min-height:56px;padding:10px 14px;font-size:12px;display:flex}.tool>span{font-size:23px;line-height:1}.tool.active{color:#efdfb3;background:#4f5e3766;border-color:#d0bd8580}.tool.guided{color:#fff0bf;background:#61703b99;border:2px solid #eed395;box-shadow:0 0 0 4px #dcc18a17}.tool.guided:before{content:"↓";color:#eed395;font-size:29px;position:absolute;bottom:calc(100% + 12px)}#wallet{color:#d9c38a;border-left:1px solid #7c8b5e44;align-items:center;gap:8px;min-height:35px;margin-left:4px;padding:0 15px;font:14px monospace;display:flex}#wallet i{font-size:16px;font-style:normal}#wallet b{font-weight:400}#build-palette{background:#17251ee6;border:1px solid #7c8b5e66;border-radius:5px;gap:6px;width:max-content;max-width:100%;margin-bottom:9px;padding:7px;display:flex}#build-palette button{color:#c4ceb2;background:0 0;border:1px solid #0000;border-radius:3px;min-height:44px;padding:9px 12px;font-size:12px}#build-palette button span{color:#dbc28c;margin-left:6px;font:11px monospace}#build-palette button.chosen{background:#4c5d3266;border-color:#c8b37c}#build-palette #rotate-belt{min-width:44px;font-size:21px}#path-feedback{color:#e4dcaf;text-align:center;pointer-events:none;background:#18271fed;border:1px solid #b8c38a99;border-radius:4px;margin-bottom:9px;padding:11px 15px;font-size:12px}#path-feedback.invalid{color:#e6b99b;border-color:#ac7e5d}#gesture-hint{background:#192a21ed;border:1px solid #82956388;border-radius:5px;align-items:center;gap:9px;max-width:100%;margin-bottom:9px;padding:5px 7px;display:flex}#gesture-hint svg{flex-shrink:0;width:75px;height:53px}.demo-route{fill:none;stroke:#d3c28a;stroke-width:2px;stroke-dasharray:3 4;opacity:.65}.demo-finger{fill:#e2e4cd;fill-opacity:.45;stroke:#dce1c9;stroke-width:.6px;animation:3.5s ease-in-out 2 trace-demo;transform:translate(1px,25px)scale(.55)}#gesture-hint>span{color:#d3d9ba;font-size:12px;line-height:1.6}#gesture-hint small{color:#95aa89;font-size:10px;display:block}#gesture-hint>button{color:#bfcaae;background:0 0;border:0;min-width:44px;min-height:44px;margin-left:auto;font-size:21px}#build-palette{overscroll-behavior-x:contain;scrollbar-width:thin;max-width:100%;overflow-x:auto}#build-palette button{flex-shrink:0}#build-palette #rotate-belt{background:#223529;position:sticky;right:0}.tool{flex:1}#build-palette{width:100%}#toolbar{width:460px}.tool-row{gap:7px}.tool{gap:10px;min-height:70px;padding:10px 12px;position:relative}.tool .tool-icon{font-size:34px}.tool .tool-label{font-size:18px;font-weight:500;line-height:1}.tool.guided:before{font-size:42px;font-weight:900;animation:.8s ease-in-out infinite alternate guide-bounce;bottom:calc(100% + 7px)}.tool:disabled{opacity:.35}#build-palette #rotate-belt{min-width:55px}#wallet{font-size:17px}.tool{border-width:2px}#wallet{flex-shrink:0;min-width:70px}#cinematic{pointer-events:none;padding-bottom:calc(32px + env(safe-area-inset-bottom));background:linear-gradient(#0c161499,#0000 15% 85%,#0c161499);justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:0}#cinematic-label{letter-spacing:1.6px;color:#bdc6ad;text-align:center;background:#15201980;border:1px solid #85916b55;border-radius:3px;padding:12px 15px;font:11px monospace}#tutorial-prompt{top:calc(28px + env(safe-area-inset-top));color:#efe1af;text-align:center;pointer-events:none;background:#15231dd9;border:1px solid #8e926055;border-radius:4px;max-width:calc(100% - 100px);padding:13px 20px;font-size:14px;position:absolute;left:50%;transform:translate(-50%)}#toast{bottom:calc(112px + env(safe-area-inset-bottom));color:#dedbb6;text-align:center;pointer-events:none;z-index:3;background:#1c2b22ed;border:1px solid #82956377;border-radius:4px;max-width:calc(100% - 32px);padding:12px 17px;font-size:12px;position:absolute;left:50%;transform:translate(-50%)}dialog{color:#dfdfc8;background:#1d2c22;border:1px solid #728158;border-radius:7px;width:430px;max-width:calc(100vw - 30px);max-height:calc(100dvh - 40px);padding:30px;box-shadow:0 20px 80px #0008}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0a1613c9}.eyebrow{letter-spacing:2px;color:#bfae7c;font:10px monospace}dialog h1,dialog h2{letter-spacing:-.5px;margin:12px 0;font-size:29px;font-weight:500}dialog p{color:#adbba0;font-size:13px;line-height:1.8}dialog .level-name{color:#c4ceae;margin-top:0}.pause-stats{border-block:1px solid #46543b;justify-content:space-between;gap:15px;margin:22px 0;padding:15px 0;display:flex}.pause-stats span{color:#96a689;flex-direction:column;gap:7px;font-size:11px;display:flex}.pause-stats b{color:#d7c38b;font:16px monospace}.auto-repair-option{color:#bdc9ac;align-items:center;gap:10px;min-height:44px;font-size:12px;display:flex}.auto-repair-option input{accent-color:#b5bf83;flex-shrink:0;width:18px;height:18px}dialog .keyboard-hint{color:#849a78;margin:14px 0 20px;font-size:10px}.primary-button,.secondary-button{color:#21301e;background:#cebc85;border:1px solid #cebc85;border-radius:3px;width:100%;min-height:46px;margin-top:10px;padding:12px 16px;font-size:13px;display:block}.secondary-button{color:#bfccaa;background:0 0;border-color:#63754c}#playfield[data-intro=observe] #cinematic{align-items:center;padding:24px}#cinematic-label{white-space:pre-line;color:#f0e6c5;background:#11231deb;border-color:#b4b88999;padding:17px 25px;font-size:17px;line-height:1.6}#playfield[data-intro=observe] #cinematic-label{letter-spacing:.2px;font:500 clamp(22px,2.5vw,34px)/1.6 Segoe UI,Arial,sans-serif;box-shadow:0 10px 50px #08150b80}#tutorial-prompt{color:#fff1bb;border-color:#c2b47a;padding:14px 24px;font-size:clamp(18px,1.5vw,24px);font-weight:600;line-height:1.5}.spawn-option{align-items:center;gap:14px;font-size:13px;display:flex}.spawn-option select{color:#dedfc1;background:#2c402b;border:1px solid #829564;border-radius:3px;flex:1;min-height:44px;padding:8px}.tutorial-explosion{pointer-events:none;z-index:1;image-rendering:auto;height:auto;position:absolute;transform:translate(-50%,-72%)}#structure-tip{z-index:10;background:#1a2e23f5;border:1px solid #8fa36b;border-radius:5px;width:265px;max-width:calc(100vw - 24px);padding:19px;position:fixed;box-shadow:0 10px 30px #07140c88}#structure-tip button{color:#cbd9b5;background:0 0;border:0;min-width:44px;min-height:44px;font-size:24px;position:absolute;top:3px;right:3px}#structure-tip h3{margin:0 0 10px;padding-right:25px;font-size:17px;font-weight:550}#structure-tip p{color:#b7c4a6;margin:10px 0;font-size:12px;line-height:1.7}#structure-tip .tip-health{color:#dcc78c;font:11px monospace}#structure-tip .tip-detail{color:#d9ddbb}#structure-tip small{color:#a1b889;font:10px monospace}.reset-progress{border-top:1px solid #80614866;margin-top:24px;padding-top:12px}.reset-progress p{color:#b4b997;font-size:12px}.reset-progress button{color:#f1b59c;border-color:#ac8064}#start-wave.guided:after{content:"←";color:#ffa08a;pointer-events:none;font-size:clamp(56px,3vw,84px);line-height:46px;animation:.7s ease-in-out infinite alternate start-arrow;position:absolute;top:-2px;left:calc(100% + 10px)}@keyframes start-arrow{to{transform:translate(7px)}}#pickup-hint{pointer-events:none;z-index:2;text-align:center;color:#ffa08a;position:absolute;transform:translate(-50%,-100%)}#pickup-hint span{white-space:nowrap;background:#17271fee;border:1px solid #baae7888;border-radius:4px;padding:7px 9px;font-size:12px;display:block}#pickup-hint b{padding-bottom:8px;font-size:clamp(56px,3vw,84px);line-height:1;animation:.7s ease-in-out infinite alternate guide-bounce;display:block}.tutorial-target-arrow{color:#ffa08a;text-shadow:0 2px 5px #17231c;pointer-events:none;z-index:2;font:900 clamp(56px,3vw,84px)/1 Arial,sans-serif;position:absolute;transform:translate(-50%,-100%)}.tool.guided:before{color:#ffa08a;font-size:clamp(56px,3vw,84px)}#build-palette #rotate-belt{place-content:center;min-height:56px;padding:2px 10px 14px;display:grid}#build-palette #rotate-label{color:#f2dca5;margin:0;font:34px/1 Arial,sans-serif}#build-palette #rotate-belt kbd{text-align:center;bottom:2px;left:0;right:0}#gesture-lesson{text-align:center;color:#e7dec1;z-index:3;background:#14271ff5;border:1px solid #b3a27c;border-radius:7px;width:min(330px,100% - 40px);padding:16px 22px 20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 15px 50px #07150d88}#gesture-lesson[data-lesson=inspect]{top:auto;bottom:calc(120px + env(safe-area-inset-bottom));transform:translate(-50%)}#gesture-lesson h2{margin:0;font-size:20px;font-weight:500}#gesture-lesson p{color:#c4cbae;font-size:13px;line-height:1.6}#lesson-continue{color:#1a2b20;background:#cdbd8b;border:1px solid #a89d76;border-radius:3px;width:100%;min-height:44px}.gesture-demo{fill:none;stroke:#d6d9bd;stroke-width:2px;width:160px;height:110px}.gesture-mouse,.gesture-phone{fill:#2b4233}.gesture-touch{fill:#ebc8b0;stroke:#ebc8b0}.gesture-motion{stroke:#ffa08a;stroke-width:3px}.gesture-wheel,.gesture-right{fill:#ffa08a;stroke:#ffa08a}.camera .gesture-wheel{animation:1.5s ease-in-out infinite wheel-demo}.camera .gesture-touch.first{animation:2s ease-in-out infinite alternate pinch-first}.camera .gesture-touch.second{animation:2s ease-in-out infinite alternate pinch-second}.inspect .gesture-right,.gesture-hold{animation:1.6s ease-in-out infinite inspect-demo}.gesture-hold{stroke:#ffa08a;stroke-width:3px}@keyframes wheel-demo{50%{transform:translateY(8px)}}@keyframes pinch-first{to{transform:translate(-14px,-9px)}}@keyframes pinch-second{to{transform:translate(14px,9px)}}@keyframes inspect-demo{50%{opacity:.25}}#result-stats{border-block:1px solid #63754c66;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0;padding:20px 0;display:grid}#result-stats dt{color:#a8b594;font-size:11px}#result-stats dd{color:#e3d19e;margin:8px 0 0;font:22px monospace}#opening-splash{z-index:50;color:#e5d8aa;background:radial-gradient(#304533,#101d18 75%);border:0;border-radius:0;place-content:center;width:100%;height:100dvh;display:grid;position:fixed;inset:0;overflow:hidden}.opening-brand{flex-direction:column;align-items:center;gap:22px;display:flex}.opening-brand svg{fill:none;stroke:#a9c09b;stroke-width:3px;width:80px;height:80px}.opening-brand svg path+path{fill:#b8cc9d;stroke:none}.opening-brand strong{letter-spacing:.12em;font:500 clamp(30px,8vw,54px) monospace}#opening-splash small{color:#9eaf90;width:100%;font:12px monospace;position:absolute;bottom:45px;left:0}#opening-splash:not(.departing) .opening-brand{animation:.15s linear infinite logo-shake}#opening-splash.departing{animation:.55s ease-in forwards opening-fade}#opening-splash.departing .opening-brand{animation:.55s ease-in forwards logo-zoom}@keyframes logo-shake{0%,to{transform:translate(-1px)rotate(-.3deg)}50%{transform:translate(1px,1px)rotate(.3deg)}}@keyframes logo-zoom{to{opacity:0;transform:scale(4)}}@keyframes opening-fade{to{opacity:0}}@media (prefers-reduced-motion:reduce){#start-wave.guided:after,#pickup-hint b,.gesture-demo *,#opening-splash .opening-brand,#opening-splash.departing{animation:none}}@media (width<=600px){#game-hud{left:12px;right:67px;top:calc(12px + env(safe-area-inset-top))}.mission-strip{gap:10px;padding:5px 5px 5px 11px}#objective{font-size:11px}#start-wave{min-width:95px;padding:9px 10px;font-size:11px}.icon-button{top:calc(12px + env(safe-area-inset-top));width:44px;height:44px;right:12px}#toolbar{bottom:calc(12px + env(safe-area-inset-bottom))}.tool{gap:6px;min-width:70px;min-height:54px;padding:9px;font-size:11px}.tool>span{font-size:21px}#wallet{gap:6px;padding:0 10px;font-size:13px}#tutorial-prompt{top:calc(17px + env(safe-area-inset-top));max-width:calc(100% - 85px);padding:12px 15px;font-size:12px}#cinematic-label{letter-spacing:1px;font-size:9px}.tool-row{gap:3px}#build-palette button{padding:8px}dialog{padding:24px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.demo-finger{opacity:.6;animation:none}}@media (width<=600px){#toolbar{width:344px}.tool-row{gap:3px}.tool{gap:5px;min-width:65px;min-height:62px;padding:9px 6px}.tool .tool-icon{font-size:27px}.tool .tool-label{font-size:14px}#wallet{padding:0 9px;font-size:14px}#tutorial-prompt{padding:12px 16px;font-size:18px}#start-wave{min-width:90px;padding:10px;font-size:12px}.mission-strip{flex-wrap:wrap;gap:8px}#reset-wave{padding:9px;font-size:11px}#cinematic-label{padding:14px 18px;font-size:14px}button kbd,#action-hint{display:none}}@media (hover:none),(pointer:coarse){button kbd,#action-hint,.keyboard-hint{display:none!important}}@media (prefers-reduced-motion:reduce){.tool.guided:before{animation:none}}@media (width<=600px){#wallet{min-width:54px}}#level-dialog{color:#ece7ca;background:radial-gradient(at 50% 55%,#293b2e,#101d18 78%);border:0;border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:clamp(22px,5vh,60px) 24px;inset:0;overflow:hidden}#level-dialog::backdrop{background:#102119}.tree-header{text-align:center;z-index:2;position:relative}.tree-header>span{letter-spacing:3px;color:#a8b594;font:11px monospace}.tree-header h1{margin:16px 0 10px;font-size:clamp(24px,3vw,38px);font-weight:500}.tree-header p{color:#a1b194;font-size:14px}.tree-stage{aspect-ratio:640/420;width:min(840px,100%);margin:clamp(10px,4vh,45px) auto;position:relative}.tree-stage svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.tree-route{fill:none;stroke:#91a574;stroke-width:2px;stroke-dasharray:6 7;opacity:.7}#map-ship{fill:#f2d99b;stroke:#f6e7bd;stroke-width:1.3px;filter:drop-shadow(0 0 6px #cbd99c88)}.sector-node{color:#dce2c5;text-align:left;z-index:1;background:#1c3025;border:1px solid #6b8456;border-radius:6px;flex-direction:column;gap:8px;width:205px;min-height:96px;padding:17px 18px;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 12px 30px #09130d66}.sector-node.current{border-color:#e5d29a}.sector-node.arriving{background:#354b2b;border-color:#f7dfa6}.sector-node:disabled{opacity:.4}.sector-node.arriving:disabled{opacity:1}.sector-node small{letter-spacing:1px;color:#b3be92;font:10px monospace}.sector-node strong{font-size:16px;font-weight:500}.node-state{color:#a3b68f;font-size:11px}.tree-back{z-index:2;max-width:270px;margin:0 auto;position:relative}.sector-help{bottom:max(20px, env(safe-area-inset-bottom));text-align:center;color:#d0c49a;width:min(660px,100% - 40px);font-size:13px;line-height:1.5;position:absolute;left:50%;transform:translate(-50%)}.sector-help small{color:#a0af91;font-size:11px}#level-dialog[data-state=zooming] .sector-help{opacity:0}@media (height<=650px){.sector-help p{margin:4px 0}.sector-help{font-size:11px;bottom:8px}.sector-help small{display:none}}#level-dialog[data-state=travelling] .tree-back,#level-dialog[data-state=zooming] .tree-back{visibility:hidden}#level-dialog[data-state=zooming] .tree-header{opacity:0}@media (width<=600px){#level-dialog{padding:35px 12px}.tree-header p{max-width:280px;margin:auto;font-size:12px}.tree-stage{max-width:470px;margin:60px auto}.sector-node{gap:6px;width:145px;min-height:86px;padding:12px 10px}.sector-node strong{font-size:13px}.sector-node small{font-size:8px}.node-state{font-size:10px}#map-ship{stroke-width:2px}.tree-header>span{font-size:9px}.tree-stage svg{overflow:visible}}@media (height<=650px) and (width>=601px){#level-dialog{padding:16px}.tree-header h1{margin:8px;font-size:24px}.tree-stage{width:520px;margin:0 auto}.sector-node{min-height:72px;padding:10px}.tree-back{min-height:40px}}
