@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:400;src:url(/play/assets/chakra-petch-latin-400-normal-SafcrIr2.woff2)format("woff2"),url(/play/assets/chakra-petch-latin-400-normal-D7EtbySE.woff)format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:500;src:url(/play/assets/chakra-petch-latin-500-normal-BR1ody1F.woff2)format("woff2"),url(/play/assets/chakra-petch-latin-500-normal-CnUQnZ4D.woff)format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:600;src:url(/play/assets/chakra-petch-latin-600-normal-DVQm9bgb.woff2)format("woff2"),url(/play/assets/chakra-petch-latin-600-normal-DQKfcdKo.woff)format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:700;src:url(/play/assets/chakra-petch-latin-700-normal-CnDBPjkL.woff2)format("woff2"),url(/play/assets/chakra-petch-latin-700-normal-D1s_c2du.woff)format("woff")}:root{--font:"Chakra Petch", system-ui, "Segoe UI", sans-serif;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--ink:#e8f1ff;--ink-2:#bccbe0;--muted:#8a9db6;--friend:#4fd8ff;--foe:#ff4d5e;--objective:#ffc24a;--warn:#ff9a3c;--good:#7dffb6;--lead:#ffe45c;--panel:#070c1694;--panel-solid:#060a13ed;--line:#78beff38;--line-strong:#4fd8ffa6;--shadow-text:0 1px 2px #000000d9, 0 0 12px #0009;--chamfer:10px}*{box-sizing:border-box}html,body{background:#03050a;height:100%;margin:0;overflow:hidden}body{font-family:var(--font);color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}#app{position:fixed;inset:0}#game-canvas{cursor:none;width:100%;height:100%;display:block;position:absolute;inset:0}button{font-family:var(--font)}.hidden{display:none!important}.fatal{place-items:center;font-size:20px;display:grid;position:absolute;inset:0}.muted{color:var(--muted);font-style:normal}.hud-panel,.panel,.card,.btn,.loading-card,.rank-letter{clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer))}.hud,.hud-canvas{pointer-events:none;position:absolute;inset:0}.hud-panel{background:var(--panel);border:1px solid var(--line);padding:var(--s3) var(--s4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:absolute}.hud-panel:before{content:"";left:var(--chamfer);background:var(--friend);opacity:.8;width:44px;height:2px;position:absolute;top:0}.hud-objective{top:var(--s4);left:var(--s4);min-width:270px;max-width:360px}.hud-objective:before{background:var(--objective)}.obj-title{letter-spacing:.08em;text-transform:uppercase;color:var(--objective);font-size:15px;font-weight:700}.obj-detail{color:var(--ink);margin-top:var(--s1);font-size:14px}.hud-comms{bottom:132px;left:var(--s4);justify-content:flex-end;gap:var(--s2);flex-direction:column;width:380px;transition:opacity .2s;display:flex;position:absolute}.hud-comms.see-through{opacity:.3}.comm{background:var(--panel);border-left:3px solid var(--friend);padding:6px var(--s3);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:14px;line-height:1.35}.comm-command{border-left-color:var(--objective)}.comm-from{margin-right:var(--s2);text-transform:uppercase;letter-spacing:.06em;color:var(--friend);font-weight:700}.comm-command .comm-from{color:var(--objective)}.hud-banner{text-align:center;opacity:0;padding:var(--s2) 0;background:linear-gradient(90deg,#0000 22%,#04081052 38% 62%,#0000 78%);transition:opacity .25s;position:absolute;top:17%;left:0;right:0}.hud-banner.show{opacity:1}.banner-title{letter-spacing:.26em;text-shadow:var(--shadow-text);padding-left:.26em;font-size:28px;font-weight:700}.banner-sub{letter-spacing:.18em;color:var(--ink-2);text-transform:uppercase;text-shadow:var(--shadow-text);margin-top:var(--s1);font-size:13px;font-weight:500}.hud-banner[data-tone=warn] .banner-title{color:var(--foe)}.hud-banner[data-tone=good] .banner-title{color:var(--friend)}.hud-banner[data-tone=info] .banner-title{color:var(--ink)}.hud-warnings{align-items:center;gap:var(--s2);flex-direction:column;display:flex;position:absolute;top:9%;left:0;right:0}.warn{padding:6px var(--s4);color:#fff;letter-spacing:.16em;text-shadow:0 1px 2px #00000080;background:#ff7a28e0;font-size:17px;font-weight:700}.warn-missile{background:#ff4628eb;font-size:21px;animation:.4s steps(2,end) infinite blink;box-shadow:0 0 24px #ff5a288c}.warn-hull{background:#e63232eb;font-size:19px;animation:.8s steps(2,end) infinite blink;box-shadow:0 0 18px #ff3c3273}.warn-shield{font-size:17px}.warn-bounds{color:#1a1000;text-shadow:none;background:#ffc24ae6}.warn-info{color:#1a1000;text-shadow:none;background:#ffc24ae0;font-size:14px}@keyframes blink{50%{opacity:.45}}.hud-status,.hud-weapons,.hud-target,.hud-warnings,.hud-comms,.hud-canvas{transition:opacity .35s}.hud.cinematic .hud-status,.hud.cinematic .hud-weapons,.hud.cinematic .hud-target,.hud.cinematic .hud-warnings,.hud.dead .hud-status,.hud.dead .hud-weapons,.hud.dead .hud-target,.hud.dead .hud-warnings,.hud.dead .hud-comms,.hud.dead .hud-objective{opacity:0}.hud-objective{transition:opacity .35s}.hud.paused .hud-banner,.hud.paused .hud-warnings{visibility:hidden}.hud-status{bottom:var(--s4);left:var(--s4);width:300px}.bar-row{align-items:center;gap:var(--s2);grid-template-columns:64px 1fr 36px;margin:5px 0;font-size:12px;display:grid}.bar-label{color:var(--muted);letter-spacing:.12em;font-weight:600}.bar-track{background:#ffffff12;height:8px;position:relative;overflow:hidden}.bar-fill{background:var(--ink);width:100%;position:absolute;inset:0 auto 0 0}.bar-track:after{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 9px,#0408108c 9px 10px);position:absolute;inset:0}.bar-shield .bar-fill{background:var(--friend)}.bar-row.hit .bar-track{animation:.35s ease-out bar-hit}@keyframes bar-hit{0%{box-shadow:0 0 0 2px var(--friend), 0 0 14px var(--friend)}to{box-shadow:none}}.bar-hull .bar-fill{background:var(--good)}.bar-hull.critical .bar-fill{background:var(--warn)}.bar-hull.critical .bar-label,.bar-hull.critical .bar-value{color:var(--warn)}.bar-boost .bar-fill{background:#b8a6ff}.bar-boost.active .bar-fill{background:#ddd3ff}.bar-value{text-align:right;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.hud-weapons{bottom:var(--s4);right:var(--s4);width:290px}.weap-row{align-items:center;gap:var(--s3);margin:5px 0;font-size:12px;display:flex}.weap-label{color:var(--muted);letter-spacing:.12em;width:72px;font-weight:600}.weap-value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.weap-unit{color:var(--muted)}.missile-pips{gap:3px;display:flex}.pip{background:var(--ink);clip-path:polygon(0 20%,50% 0,100% 20%,100% 100%,0 100%);width:8px;height:14px}.pip.empty{background:#ffffff1f}.bar-track.throttle,.bar-track.lockbar{flex:1}.weap-status{text-align:right;letter-spacing:.1em;width:66px;color:var(--muted);font-size:12px;font-weight:700}.msl-status[data-mode=locked] .weap-status{color:var(--good)}.msl-status[data-mode=locked] .bar-fill{background:var(--good)}.msl-status[data-mode=locking] .bar-fill{background:#e8f1ffbf}.msl-status[data-mode=locking] .weap-status{color:var(--ink)}.msl-status[data-mode=reload] .bar-fill{background:var(--muted)}.msl-status[data-mode=reload] .weap-status,.msl-status[data-mode=no\ lock] .weap-status{color:var(--muted)}.msl-status[data-mode="no lock flash"] .weap-status{color:var(--warn);animation:.3s steps(2,end) infinite blink}.msl-status[data-mode=empty] .weap-status{color:var(--warn)}.hud-target{top:var(--s4);right:var(--s4);width:230px}.hud-target:before{background:var(--foe)}.hud-target[data-kind=obj]:before{background:var(--objective)}.tp-label{color:var(--muted);letter-spacing:.16em;font-size:11px;font-weight:600}.tp-name{color:var(--foe);font-size:19px;font-weight:700;line-height:1.2}.hud-target[data-kind=obj] .tp-name{color:var(--objective)}.tp-class{letter-spacing:.16em;color:var(--ink-2);margin-top:1px;font-size:11px}.tp-dist{color:var(--muted);margin:2px 0 var(--s2);font-variant-numeric:tabular-nums;font-size:13px}.tp-row{align-items:center;gap:var(--s2);margin-top:3px;display:flex}.tp-row-label{letter-spacing:.12em;width:50px;color:var(--ink-2);font-size:10px;font-weight:600}.tp-shield .tp-fill.bubble{background:#ff8a3a}.tp-bar{background:#ffffff14;flex:1;height:5px;position:relative}.tp-fill{background:var(--foe);position:absolute;inset:0 auto 0 0}.hud-target[data-kind=obj] .tp-hull .tp-fill{background:var(--objective)}.tp-shield .tp-fill{background:var(--friend)}.hud-target-view{top:150px;right:var(--s4);border:1px solid var(--line);width:230px;height:124px;position:absolute;box-shadow:inset 0 0 0 1px #0006}.hud-target-view:before,.hud-target-view:after{content:"";border-color:var(--foe);border-style:solid;width:12px;height:12px;position:absolute}.hud-target-view:before{border-width:2px 0 0 2px;top:-1px;left:-1px}.hud-target-view:after{border-width:0 2px 2px 0;bottom:-1px;right:-1px}.tv-label{letter-spacing:.2em;color:var(--ink-2);text-shadow:0 1px 2px #000000e6;font-size:10px;font-weight:700;position:absolute;top:4px;left:6px}.hud.cinematic .hud-target-view,.hud.dead .hud-target-view{opacity:0}.screens{pointer-events:none;z-index:5;position:absolute;inset:0}.screens.active{pointer-events:auto}.screen{background:radial-gradient(#03060c73 0%,#03060cd1 100%);justify-content:center;align-items:center;display:none;position:absolute;inset:0}.screen.show{animation:.25s ease-out fade-in;display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.screens.over-title .screen-settings,.screens.over-title .screen-howto{background:#03060cb8}.panel{background:var(--panel-solid);border:1px solid var(--line);padding:var(--s6) var(--s7) var(--s6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;min-width:460px;max-width:calc(100vw - 32px);position:relative}.panel:before{content:"";left:var(--chamfer);background:var(--friend);width:64px;height:3px;position:absolute;top:0}.panel.bad:before{background:var(--foe)}.panel.wide{text-align:left;width:800px;padding:var(--s5) var(--s6)}.panel{max-height:calc(100vh - 24px);overflow-y:auto}.panel-kicker{letter-spacing:.32em;text-transform:uppercase;color:var(--friend);margin-bottom:var(--s2);font-size:12px;font-weight:600}.panel.bad .panel-kicker{color:var(--foe)}h2{letter-spacing:.22em;text-transform:uppercase;margin:0 0 var(--s5);font-size:34px;font-weight:700}.end-panel.bad h2{color:var(--foe)}.end-panel.good h2{color:var(--friend)}.btn{justify-content:space-between;align-items:center;gap:var(--s3);width:300px;margin:0 auto var(--s2);padding:13px var(--s4);font:600 15px var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:#ffffff0b;transition:background .15s,border-color .15s,transform .15s;display:flex}.btn:hover{border-color:var(--line-strong);background:#4fd8ff24;transform:translate(3px)}.btn.primary{border-color:var(--line-strong);background:linear-gradient(90deg,#4fd8ff52,#4fd8ff1a)}.btn.primary:hover{background:linear-gradient(90deg,#4fd8ff73,#4fd8ff29)}.btn.subtle{color:var(--muted);clip-path:none;background:0 0}.btn.subtle:hover{color:var(--ink)}.btn kbd{font:600 11px var(--font);letter-spacing:.1em;color:var(--ink-2);border:1px solid #ffffff4d;padding:2px 7px}.menu{flex-direction:column;align-items:stretch;display:flex}.menu .btn{margin-left:0;margin-right:0}.pause-panel .menu,.end-panel .menu{align-items:center}.menu.row{justify-content:center;gap:var(--s3);flex-flow:wrap}.menu.row .btn{justify-content:center;width:auto;min-width:200px;margin:0}.row-buttons{margin-top:var(--s5);justify-content:center;display:flex}.row-buttons .btn{justify-content:center;width:220px;margin:0}.screen-title{background:linear-gradient(90deg,#03060ce0 0%,#03060c8c 45%,#03060c1a 75%);justify-content:flex-start}.title-layout{justify-content:space-between;align-items:center;gap:var(--s6);width:100%;max-width:1280px;padding:0 clamp(16px,6vw,96px);display:flex}.title-col{max-width:520px}.kicker{letter-spacing:.36em;text-transform:uppercase;color:var(--objective);margin-bottom:var(--s3);font-size:13px;font-weight:600}.logo{letter-spacing:.1em;margin:0 0 var(--s4);text-shadow:0 0 30px #4fd8ff40;font-size:clamp(56px,8vw,104px);font-weight:700;line-height:.95}.logo span{color:var(--friend);margin-left:.18em}.logo.small{margin:0;font-size:44px}.tagline{color:var(--ink-2);margin:0 0 var(--s6);max-width:440px;font-size:17px;line-height:1.5}.title-col .menu{width:320px}.title-col .btn{width:100%}.title-diff{align-items:center;gap:var(--s3);margin-top:var(--s4);justify-content:space-between;width:320px;display:flex}.title-diff>span{letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.hint{color:var(--muted);margin-top:var(--s4);letter-spacing:.04em;font-size:13px}.card{background:var(--panel);border:1px solid var(--line);padding:var(--s5) var(--s5) var(--s4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:390px}.card-title{letter-spacing:.3em;text-transform:uppercase;color:var(--friend);margin:0 0 var(--s3);font-size:12px;font-weight:700}.card-title:not(:first-child){margin-top:var(--s5)}.steps{counter-reset:step;gap:var(--s3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.steps li{counter-increment:step;column-gap:var(--s2);grid-template-columns:28px 1fr;font-size:14px;line-height:1.35;display:grid}.steps li:before{content:counter(step);color:var(--objective);grid-row:span 2;font-size:18px;font-weight:700}.steps b{letter-spacing:.04em;font-weight:700}.steps span{color:var(--ink-2)}.controls{text-align:left;grid-template-columns:1fr;gap:5px;font-size:13px;display:grid}.ctl{gap:var(--s2);grid-template-columns:124px 1fr;display:grid}.key{color:var(--friend);letter-spacing:.04em;font-weight:700}.ctl-desc{color:var(--ink-2)}.howto-grid{gap:var(--s3) var(--s5);grid-template-columns:1fr 1fr;display:grid}.howto{gap:var(--s3);color:var(--ink-2);grid-template-columns:40px 1fr;align-items:start;font-size:13px;line-height:1.4;display:grid}.panel.wide h2{margin-bottom:var(--s4)}.howto b{color:var(--ink);font-weight:700}.glyph{border:1px solid var(--line);background:#ffffff08;width:44px;height:44px;position:relative}.glyph:before,.glyph:after{content:"";position:absolute}.glyph-dot:before{border:2px solid var(--ink);border-radius:50%;width:16px;height:16px;top:12px;left:12px}.glyph-dot:after{background:var(--ink);border-radius:50%;width:4px;height:4px;top:20px;left:20px}.glyph-cross:before{background:linear-gradient(var(--ink) 0 38%, transparent 38% 62%, var(--ink) 62%);width:2px;height:26px;top:8px;left:20px}.glyph-cross:after{background:linear-gradient(90deg, var(--ink) 0 38%, transparent 38% 62%, var(--ink) 62%);width:26px;height:2px;top:20px;left:8px}.glyph-leaddot:before{background:var(--lead);border-radius:50%;width:10px;height:10px;top:16px;left:16px;box-shadow:0 0 0 2px #0009}.glyph-lock:before{border:2px solid var(--foe);inset:11px}.glyph-lock:after{content:"LOCK";color:#06131c;background:var(--good);text-align:center;letter-spacing:.1em;font-size:8px;font-weight:700;top:0;left:6px;right:6px}.glyph-arrow:before{border-left:18px solid var(--foe);border-top:9px solid #0000;border-bottom:9px solid #0000;top:12px;left:14px}.glyph-hit:before{border-right:3px solid var(--warn);border-bottom:3px solid var(--warn);width:10px;height:10px;top:13px;left:10px;transform:rotate(-45deg)}.glyph-hit:after{border-right:3px solid var(--warn);border-bottom:3px solid var(--warn);width:10px;height:10px;top:13px;left:20px;transform:rotate(-45deg)}.glyph-gen:before{border:2px solid var(--objective);width:16px;height:16px;top:12px;left:12px;transform:rotate(45deg)}.howto-controls{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}.howto-controls .ctl{font-size:12px}.panel.wide .row-buttons{margin-top:var(--s4)}.howto-controls .controls{column-gap:var(--s6);grid-template-columns:1fr 1fr}.glyph-shield:before{border:2px solid var(--friend);border-radius:50%;inset:8px;box-shadow:inset 0 0 10px #4fd8ff80}.settings-panel{text-align:left;width:580px}.settings-group{margin-bottom:var(--s4)}.group-title{letter-spacing:.3em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:var(--s2);margin-bottom:var(--s2);font-size:12px;font-weight:700}.setting{align-items:center;gap:var(--s3);grid-template-columns:1fr 200px 52px;padding:5px 0;font-size:14px;display:grid}.setting>span{color:var(--ink-2)}.setting.split{grid-template-columns:1fr auto}.setting-note{color:var(--muted);padding:0 0 4px;font-size:12px}.setting output{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}input[type=range]{width:100%;accent-color:var(--friend);cursor:pointer}.toggle{border:1px solid var(--line);cursor:pointer;background:#ffffff0f;width:46px;height:24px;padding:0;position:relative}.toggle i{background:var(--muted);width:16px;height:16px;transition:left .15s,background .15s;position:absolute;top:3px;left:3px}.toggle.on{border-color:var(--line-strong);background:#4fd8ff33}.toggle.on i{background:var(--friend);left:25px}.seg{border:1px solid var(--line);display:flex}.seg button{font:600 13px var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);padding:7px var(--s3);cursor:pointer;background:0 0;border:0}.seg button+button{border-left:1px solid var(--line)}.seg button.on{color:var(--ink);background:#4fd8ff38}.cause{color:var(--warn);letter-spacing:.12em;text-transform:uppercase;margin:calc(-1 * var(--s3)) 0 var(--s5);font-size:16px;font-weight:600}.stats{gap:var(--s5);margin-bottom:var(--s5);padding:var(--s4) var(--s5);border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(5,auto);justify-content:center;display:grid}.stat span{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin-bottom:var(--s1);font-size:11px;font-weight:600;display:block}.stat b{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.rank{justify-content:center;align-items:center;gap:var(--s4);margin:calc(-1 * var(--s2)) 0 var(--s5);display:flex}.rank-letter{color:#1a1000;background:var(--objective);place-items:center;width:72px;height:72px;font-size:48px;font-weight:700;display:grid}.rank-title{letter-spacing:.14em;text-transform:uppercase;color:var(--objective);text-align:left;font-size:16px;font-weight:600}.loading-card{background:var(--panel-solid);border:1px solid var(--line);padding:var(--s6) var(--s7);text-align:center}.loadbar{width:320px;height:4px;margin:var(--s5) auto var(--s3);background:#ffffff1a}.loadfill{background:var(--friend);width:0;height:100%;transition:width .2s}.loadtext{letter-spacing:.3em;text-transform:uppercase;color:var(--muted);font-size:12px}@media (max-width:960px){.briefing{display:none}.howto-grid{grid-template-columns:1fr}.panel{padding:var(--s5);min-width:0}.panel.wide,.settings-panel{width:calc(100vw - 32px)}.stats{grid-template-columns:repeat(3,auto)}}
