:root{color-scheme:dark;--text-scale:1;--ink:#e7f4ff;--muted:#91a8be;--panel:#091321;--line:#34536b;--cyan:#5ff3ff;--amber:#ffd166;--danger:#ff668a;--safe-inset-top:env(safe-area-inset-top,0px);--safe-inset-right:env(safe-area-inset-right,0px);--safe-inset-bottom:env(safe-area-inset-bottom,0px);--safe-inset-left:env(safe-area-inset-left,0px);font:calc(16px * var(--text-scale))/1.45 system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#02050b;color:var(--ink)}body{background:radial-gradient(circle at 50% 15%,#10243a 0,#02050b 48rem)}button,select,input{font:inherit}button,select{min-height:44px;border:1px solid var(--line);background:#0b1928;color:var(--ink);padding:.65rem .85rem}button{cursor:pointer;text-align:left}button:hover{border-color:var(--cyan)}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.skip-link{position:fixed;z-index:20;top:.5rem;left:.5rem;transform:translateY(-200%);background:#fff;color:#000;padding:.5rem}.skip-link:focus{transform:none}.game-shell{min-height:100dvh;display:grid;grid-template-columns:minmax(14rem,1fr) minmax(300px,500px) minmax(14rem,1fr);align-items:center;gap:clamp(.75rem,2vw,2rem);padding:clamp(.75rem,2vw,2rem);max-width:1500px;margin:auto}.rail{min-width:0;display:flex;flex-direction:column;gap:1rem}.working-label,.eyebrow,.mission-code{font-size:.72rem;letter-spacing:.16em;color:var(--cyan);font-weight:800}.working-label{display:inline-block;border:1px solid var(--cyan);padding:.2rem .4rem;width:max-content}.mission-rail h1{font-size:clamp(2rem,4vw,4rem);line-height:.88;letter-spacing:-.05em;text-transform:uppercase;margin:0}.brief{color:var(--muted);max-width:30rem}.readout{border-left:3px solid var(--cyan);background:linear-gradient(90deg,rgba(18,52,71,.75),transparent);padding:.8rem}.readout-line{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.readout h2,.controls h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;margin:0}.readout output{font-variant-numeric:tabular-nums;font-weight:750}.readout p{margin:.45rem 0 0;color:var(--muted)}meter{width:100%;height:.65rem;margin-top:.55rem;accent-color:var(--cyan)}.primary{background:var(--cyan);border-color:var(--cyan);color:#001016;font-weight:850}.playfield-frame{position:relative;width:min(100%,calc((100dvh - 2rem)*.625));aspect-ratio:5/8;margin:auto;border:1px solid #426782;background:#050918;box-shadow:0 0 3rem rgba(38,179,212,.12)}.playfield-topline{position:absolute;z-index:2;inset:.65rem .8rem auto;display:flex;justify-content:space-between;font-size:.7rem;font-weight:850;letter-spacing:.12em;pointer-events:none}#assist-marker{color:var(--amber)}canvas{display:block;width:100%;height:100%}.state-banner{position:absolute;left:50%;bottom:5%;transform:translateX(-50%);white-space:nowrap;padding:.4rem .65rem;background:rgba(2,5,11,.88);border:1px solid var(--line)}.modal-panel{position:absolute;z-index:5;inset:0;background:rgba(2,5,11,.92);padding:clamp(1rem,8%,3rem);display:flex;flex-direction:column;justify-content:center;gap:.75rem}.modal-panel[hidden]{display:none}.modal-panel h2,dialog h2{font-size:clamp(1.8rem,5vw,3.5rem);line-height:1;margin:0 0 1rem}.evolution-panel{justify-content:flex-start;overflow:auto}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.choice-card{display:flex;flex-direction:column;gap:.35rem;min-width:0}.choice-card[aria-pressed="true"]{outline:3px solid var(--amber);transform:translateY(-2px)}.choice-card strong{font-size:1.1rem}.choice-card small{color:var(--muted)}.controls dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem .75rem;color:var(--muted);font-size:.8rem}.controls dt{color:var(--ink);font-weight:750}.controls dd{margin:0}dialog{width:min(92vw,42rem);max-height:90dvh;overflow:auto;border:1px solid var(--cyan);background:#07111d;color:var(--ink);padding:clamp(1rem,4vw,2rem)}dialog::backdrop{background:rgba(0,3,8,.86)}dialog form{display:flex;flex-direction:column;gap:1rem}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.settings-grid label{display:flex;flex-direction:column;gap:.35rem;padding:.75rem;border:1px solid var(--line)}.settings-grid .toggle{flex-direction:row;align-items:center}.settings-grid output{color:var(--cyan);font-variant-numeric:tabular-nums}.sr-only,#status{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:899px){.game-shell{grid-template-columns:1fr;align-items:start}.rail{width:min(100%,42rem);margin:auto}.mission-rail .brief{display:none}.mission-rail h1{font-size:2rem}.playfield-frame{width:min(100%,calc(72dvh * .625))}.systems-rail{padding-bottom:2rem}.settings-grid{grid-template-columns:1fr}}.touch-controls{display:none}.touch-controls button{touch-action:none;user-select:none;-webkit-user-select:none;text-align:center;font-weight:800}.touch-dpad{display:grid;grid-template:repeat(3,3.25rem)/repeat(3,3.25rem);gap:.2rem}.touch-dpad [data-touch-action="up"]{grid-area:1/2}.touch-dpad [data-touch-action="left"]{grid-area:2/1}.touch-dpad [data-touch-action="down"]{grid-area:2/2}.touch-dpad [data-touch-action="right"]{grid-area:2/3}.touch-actions{display:flex;align-items:flex-end;gap:.45rem}.touch-actions [data-touch-action="fire"]{min-width:5rem;min-height:5rem;border-radius:50%}.touch-actions [data-touch-action="focus"]{min-height:4rem}.touch-actions [data-touch-action="pause"]{align-self:flex-start;min-width:3rem}@media(pointer:coarse){.touch-controls{position:fixed;z-index:8;display:flex;justify-content:space-between;align-items:flex-end;left:max(.5rem,env(safe-area-inset-left));right:max(.5rem,env(safe-area-inset-right));bottom:max(.5rem,env(safe-area-inset-bottom));pointer-events:none}.touch-controls button{pointer-events:auto;opacity:.84}.game-shell{padding-top:max(.75rem,env(safe-area-inset-top));padding-left:max(.75rem,env(safe-area-inset-left));padding-right:max(.75rem,env(safe-area-inset-right));padding-bottom:max(7rem,calc(env(safe-area-inset-bottom) + 6.5rem))}}@media(pointer:coarse) and (orientation:landscape) and (max-height:600px){html,body{height:100%;min-height:0;overflow:hidden}.game-shell{height:100dvh;min-height:0;max-width:none;grid-template-columns:minmax(0,1fr) minmax(210px,calc((100dvh - 1rem)*.625)) minmax(0,1fr);align-items:center;gap:.5rem;padding:max(.5rem,var(--safe-inset-top)) max(.5rem,var(--safe-inset-right)) max(.5rem,var(--safe-inset-bottom)) max(.5rem,var(--safe-inset-left));overflow:hidden}.rail{width:auto;height:100%;margin:0;gap:.35rem;justify-content:flex-start;overflow:hidden}.mission-rail{padding-bottom:6.5rem}.systems-rail{padding-bottom:4.75rem}.working-label,.mission-code{margin:0;font-size:.6rem}.working-label{padding:.1rem .25rem}.mission-rail h1{font-size:clamp(1rem,3.5vh,1.4rem);line-height:.9}.mission-rail .brief,.controls{display:none}.readout{padding:.35rem .45rem}.readout p{margin:.15rem 0 0}.readout h2{font-size:.65rem}meter{height:.45rem;margin-top:.2rem}.rail button{min-height:40px;padding:.4rem .55rem}.playfield-frame{width:auto;height:calc(100dvh - 1rem);max-width:100%;margin:auto}.modal-panel{padding:clamp(.6rem,5%,1.25rem);gap:.4rem;overflow:auto}.modal-panel h2{font-size:clamp(1.25rem,6vh,2rem);margin-bottom:.25rem}.choice-grid{gap:.35rem}.choice-card{padding:.35rem;min-height:40px}.touch-controls{display:contents}.touch-dpad{position:fixed;z-index:8;left:max(.5rem,var(--safe-inset-left));bottom:max(.5rem,var(--safe-inset-bottom));grid-template:repeat(2,3rem)/repeat(3,3rem);gap:.15rem}.touch-actions{position:fixed;z-index:8;right:max(.5rem,var(--safe-inset-right));bottom:max(.5rem,var(--safe-inset-bottom));gap:.3rem}.touch-actions [data-touch-action="fire"]{min-width:4rem;min-height:4rem}.touch-actions [data-touch-action="focus"]{min-height:3.25rem}.touch-actions [data-touch-action="pause"]{min-width:3rem;min-height:3rem}dialog{width:min(94vw,48rem);max-height:calc(100dvh - 1rem);padding:.65rem}dialog form{gap:.5rem}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.settings-grid label{padding:.4rem;gap:.15rem}dialog h2{font-size:1.35rem;margin-bottom:.25rem}body:has(#settings-dialog[open]) .touch-controls{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}