@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--void:#05060b;--ink:#e9ecff;--dim:#6f7a99;--cyan:#35f0ff;--magenta:#ff3fb4;--amber:#ffc23a;--lime:#b8ff3a;--font:"JetBrains Mono", "Courier New", ui-monospace, monospace;--safe-b:env(safe-area-inset-bottom,0px);--bar-gap:10px;--bar-h:52px;--bar-reserve:calc(var(--bar-gap) + var(--bar-h) + var(--safe-b));--corner-reserve:132px}html,body{height:100%}body{-webkit-tap-highlight-color:transparent;background:var(--void);color:var(--ink);font-family:var(--font);-webkit-user-select:none;user-select:none;touch-action:none;margin:0;overflow:hidden}#stage{height:100vh;background:var(--void);height:100dvh;position:fixed;inset:0}canvas{outline:none;display:block;position:absolute;inset:0}#hud{pointer-events:none;letter-spacing:.14em;text-transform:uppercase;font-variant-numeric:tabular-nums;font-size:12px;position:absolute;inset:0}.corner{--corner-pad-y:16px;--corner-pad-x:18px;padding:var(--corner-pad-y) var(--corner-pad-x);line-height:1.6;position:absolute}.tl{top:0;left:0}.tr{text-align:right;top:0;right:0}.bl{bottom:0;left:0}.br{text-align:right;bottom:0;right:0}.lbl,.legend{color:var(--dim)}html[data-input=touch] .key-legend,#hud-input:empty{display:none}.val{color:var(--ink);letter-spacing:.08em;font-size:18px}.val.cyan{color:var(--cyan)}.val.amber{color:var(--amber)}.val.lime{color:var(--lime)}.val.magenta{color:var(--magenta)}.amber{color:var(--amber)}#hud-matter,#hud-slow{letter-spacing:0;font-size:16px}#hud-hull{font-size:clamp(14px,2vw,22px)}#boss-bar{top:calc(84px + env(safe-area-inset-top,0px));text-align:center;white-space:nowrap;position:absolute;left:50%;transform:translate(-50%)}#hud-boss{letter-spacing:.06em;font-size:15px}#hud-boss:empty{display:none}#overlay{padding-bottom:clamp(32px,8vh,92px);pointer-events:none;text-align:center;flex-direction:column;justify-content:safe flex-end;align-items:center;gap:10px;padding-inline:16px;display:flex;position:absolute;inset:0}#overlay[hidden]{display:none}#overlay .big{letter-spacing:.3em;text-transform:uppercase;color:var(--ink);font-size:14px}#overlay .prompt{letter-spacing:.18em;text-transform:uppercase;color:var(--dim);font-size:12px}#overlay .sub{letter-spacing:.12em;color:var(--dim);text-transform:uppercase;text-wrap:balance;max-width:60ch;font-size:12px;line-height:1.7}#overlay .sub b{color:var(--ink);font-weight:400}#overlay .launch{pointer-events:auto;color:var(--cyan);border:1px solid var(--cyan);font:400 15px var(--font);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;cursor:pointer;background:#35f0ff14;margin-top:8px;padding:14px 30px;animation:2.6s ease-in-out infinite launch-breathe}#overlay .launch:hover,#overlay .launch:focus-visible{background:#35f0ff2e;animation:none;box-shadow:0 0 24px #35f0ff66,inset 0 0 20px #35f0ff29}#overlay .launch:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}#overlay .launch:active{background:#35f0ff4d}#overlay .launch.endless{color:var(--amber);border-color:var(--amber);background:#ffc23a14;animation:none}#overlay .launch.endless:hover,#overlay .launch.endless:focus-visible{outline-color:var(--amber);background:#ffc23a2e;box-shadow:0 0 24px #ffc23a66,inset 0 0 20px #ffc23a29}#overlay .launch.endless[hidden]{display:none}@keyframes launch-breathe{0%,to{box-shadow:0 0 #35f0ff00,inset 0 0 #35f0ff00}50%{box-shadow:0 0 20px #35f0ff4d,inset 0 0 18px #35f0ff1f}}@media (max-width:560px),(max-height:460px){:root{--corner-reserve:88px}.corner{--corner-pad-y:9px;--corner-pad-x:11px;line-height:1.45}#hud{letter-spacing:.08em;font-size:11px}.val{font-size:14px}#hud-hull{font-size:15px}#hud-matter,#hud-slow{font-size:13px}#boss-bar{top:calc(58px + env(safe-area-inset-top,0px))}#hud-boss{font-size:11px}.legend{display:none}#sound-toggle{margin-bottom:5px}#stage:has(#overlay[data-screen=message]) .corner>:not(#sound-toggle){display:none}}@media (prefers-reduced-motion:reduce){#overlay .launch{animation:none}}#sound-toggle{pointer-events:auto;color:var(--cyan);font:400 11px var(--font);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:#05060b99;border:1px solid #35f0ff59;margin-bottom:8px;padding:7px 11px}#sound-toggle[data-muted=true]{color:var(--dim);border-color:#6f7a9966}#sound-toggle:hover,#sound-toggle:focus-visible{border-color:var(--cyan);color:var(--cyan);background:#35f0ff1f}#sound-toggle:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}html[data-input=touch] #sound-toggle{min-width:44px;min-height:44px;padding:12px 14px}.bl,.br{padding-bottom:calc(var(--corner-pad-y) + env(safe-area-inset-bottom,0px))}.tr{padding-top:calc(var(--corner-pad-y) + env(safe-area-inset-top,0px))}#level-select{pointer-events:auto;align-items:center;gap:14px;margin-bottom:4px;display:flex}#level-select[hidden]{display:none}#level-select button{color:var(--cyan);font:400 13px var(--font);cursor:pointer;background:#05060b99;border:1px solid #35f0ff59;padding:8px 11px;line-height:1}#level-select button:hover,#level-select button:focus-visible{border-color:var(--cyan);background:#35f0ff1f}[data-menu-stop]:focus:not([data-menu-cursor]){outline:none}[data-menu-cursor]{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}.menu-content [data-menu-cursor]{outline-offset:-2px}#level-select[data-menu-cursor]{background:#35f0ff1a;box-shadow:0 0 18px #35f0ff2e}#level-select[data-menu-cursor] button{border-color:var(--cyan);color:#fff;background:#35f0ff38}#level-select[data-menu-cursor] .level-name{color:var(--cyan)}.level-face{min-width:27ch}.level-name{letter-spacing:.24em;text-transform:uppercase;color:var(--ink);font-size:13px}.level-blurb{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-top:3px;font-size:11px}@media (max-width:520px){.level-face{min-width:20ch}.level-blurb{display:none}}#arsenal{left:50%;bottom:calc(var(--bar-gap) + var(--safe-b));min-height:var(--bar-h);max-width:calc(100% - 16px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));pointer-events:auto;align-items:center;gap:8px;display:flex;position:absolute;transform:translate(-50%)}#arsenal[hidden],#arsenal button[hidden]:not([data-slot=keep]),#arsenal-tip[hidden]{display:none}#arsenal button[hidden][data-slot=keep]{visibility:hidden}#arsenal button{--action-color:var(--cyan);border:1px solid #35525e;border-bottom:2px solid var(--action-color);width:62px;min-width:52px;min-height:52px;color:var(--action-color);font:400 .6875rem var(--font);text-align:center;cursor:pointer;touch-action:manipulation;background:#05090feb;border-radius:10px;flex:0 62px;padding:5px 3px;line-height:1.2;transition:background .1s;position:relative}#arsenal button:active{background:#244249}@media (hover:hover){#arsenal button:hover{background:#142329}}#arsenal button:focus-visible{outline:2px solid var(--action-color);outline-offset:3px}#arsenal button[data-active=true]{box-shadow:inset 0 0 0 1px var(--action-color);background:#19303c}#arsenal .action-glyph,#arsenal #weapon-cycle:before,#arsenal #slow-button:before{margin-bottom:3px;font-size:18px;line-height:1.1;display:block}#arsenal #weapon-cycle:before,#arsenal #slow-button:before{content:attr(data-glyph)}#arsenal .action-name,#arsenal .arsenal-name{letter-spacing:0;overflow-wrap:anywhere;font-size:.6875rem;display:block}#arsenal .action-count{border:1px solid var(--action-color);min-width:17px;color:var(--action-color);background:#080d14;border-radius:10px;padding:2px;font-size:11px;line-height:1;position:absolute;top:-6px;right:-4px}#arsenal .arsenal-label,#arsenal .arsenal-desc{display:none}#arsenal .pad-cue{--cue:var(--dim);border:1px solid var(--cue);min-width:15px;color:var(--cue);background:#080d14;border-radius:10px;padding:2px 3px;font-size:11px;line-height:1;position:absolute;top:-7px;left:4px}#arsenal .pad-cue[data-face]{--cue:#8d9ab8}#arsenal[data-pad=xbox] .pad-cue[data-face=north]{--cue:#d8b552}#arsenal[data-pad=xbox] .pad-cue[data-face=west]{--cue:#6d97e2}#arsenal[data-pad=xbox] .pad-cue[data-face=east]{--cue:#d8706a}#arsenal[data-pad=xbox] .pad-cue[data-face=south]{--cue:#82bd6a}#arsenal[data-pad=playstation] .pad-cue[data-face=north]{--cue:#63d5ba}#arsenal[data-pad=playstation] .pad-cue[data-face=west]{--cue:#e084c8}#arsenal[data-pad=playstation] .pad-cue[data-face=east]{--cue:#e1756f}#arsenal[data-pad=playstation] .pad-cue[data-face=south]{--cue:#7599e8}#weapon-cycle{order:0}#arsenal #bomb-button{--action-color:var(--amber);order:3}#arsenal #slow-button{--action-color:var(--magenta);order:4}@media (min-width:1000px) and (min-height:600px){html[data-input=key]{--bar-gap:clamp(18px, 1.25vh, 24px);--bar-h:clamp(80px, 5vw, 96px)}html[data-input=key] #arsenal{gap:clamp(12px,.75vw,16px)}html[data-input=key] #arsenal button{border-radius:12px;flex-basis:clamp(88px,5.5vw,112px);width:clamp(88px,5.5vw,112px);min-height:clamp(80px,5vw,96px);padding:10px 6px}html[data-input=key] #arsenal .action-glyph,html[data-input=key] #arsenal #weapon-cycle:before,html[data-input=key] #arsenal #slow-button:before{margin-bottom:6px;font-size:clamp(28px,1.75vw,36px)}html[data-input=key] #arsenal .action-name,html[data-input=key] #arsenal .arsenal-name{font-size:clamp(14px,.875vw,18px)}html[data-input=key] #arsenal .action-count{border-radius:14px;min-width:24px;padding:4px;font-size:clamp(13px,.75vw,16px);top:-8px;right:-6px}html[data-input=key] #arsenal .pad-cue{border-radius:14px;min-width:20px;padding:4px 6px;font-size:clamp(12px,.7vw,15px);top:-10px;left:8px}}@media (prefers-reduced-motion:reduce){#arsenal button{transition:none}}.setup-row{grid-template-columns:minmax(0,1fr) auto auto auto;justify-content:center;gap:10px 14px;margin:8px 0;display:grid}.setup-row[hidden]{display:none}@media (max-width:480px){.setup-row{grid-template-columns:minmax(0,1fr) auto}}.difficulty-control{letter-spacing:.14em;text-transform:uppercase;color:#8b97a8;text-align:left;gap:6px;margin:0;font-size:11px;display:grid}.difficulty-control[hidden]{display:none}.difficulty-control select{color:#a7f8ed;width:100%;font:inherit;letter-spacing:0;text-transform:none;background:#101a21;border:1px solid #35525a;padding:8px;font-size:12px}.difficulty-control select,.difficulty-control input{box-sizing:border-box;align-self:center;height:56px}#run-panel{flex-direction:column;gap:10px;width:min(520px,86vw);margin:4px 0 10px;display:flex}#run-panel[hidden]{display:none}.rank-line{letter-spacing:.08em;text-transform:uppercase;color:#ffb347;font-size:11px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:6px 14px;display:grid}.stat-grid>div{background:#0b141b80;border-left:1px solid #23414e;flex-direction:column;gap:2px;padding:6px 8px;display:flex}.stat-grid span{color:#7d949c;font-size:11px}.stat-grid b{color:#dff6ff;font-size:15px;font-weight:700}.recent-line{letter-spacing:.04em;color:#a3b5bc;text-align:left;font-size:11px}.recent-line[hidden]{display:none}.board{text-align:left}.board[hidden]{display:none}.board-title{letter-spacing:.12em;color:#7d949c;margin-bottom:4px;font-size:11px}.board-list{color:#a3b5bc;margin:0;padding-left:22px;font-size:12px;line-height:1.7}@media (min-width:560px){.board-list{columns:2;column-gap:28px}}@media (max-height:820px),(max-width:700px){.board-list{overscroll-behavior:contain;max-height:clamp(78px,14vh,170px);overflow-y:auto}}@media (max-height:680px) and (min-width:700px){#overlay:not([data-screen=title]) .menu-content{text-align:left;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:safe center;column-gap:36px;width:min(880px,100%);display:grid}#overlay:not([data-screen=title]) .big{grid-area:1/1/auto/span 2}#overlay:not([data-screen=title]) .sub{grid-area:2/1/auto/span 2}#overlay:not([data-screen=title]) .level-select{grid-area:3/1}#overlay:not([data-screen=title]) .setup-row{grid-area:4/1}#overlay:not([data-screen=title]) .launch{grid-area:5/1}#overlay:not([data-screen=title]) #run-panel{grid-area:3/2/span 3;width:auto}#overlay:not([data-screen=title]) .console-actions{flex-direction:row;grid-area:6/1/auto/span 2;justify-content:space-between;align-items:center}}.board-list b{color:#35f0ff;margin-right:6px}.panel-actions{flex-wrap:wrap;gap:8px;display:flex}.panel-actions button{color:#a7f8ed;font:inherit;cursor:pointer;background:#101a21;border:1px solid #35525a;padding:8px 14px;font-size:12px}.panel-actions button:hover:not(:disabled),.panel-actions button:focus-visible{background:#16323b;border-color:#35f0ff}.panel-actions button:disabled{color:#5c7186;cursor:default;border-color:#23343c}.panel-actions button[hidden]{display:none}.difficulty-control input{appearance:none;color:#a7f8ed;font:inherit;text-transform:uppercase;letter-spacing:.2em;background:#101a21;border:1px solid #35525a;width:4.2em;padding:8px;font-size:12px}#overlay .launch.quit{color:#ff8fa3;background:#ff8fa314;border-color:#ff8fa3;padding:11px 24px;font-size:13px;animation:none}#overlay .launch.quit:hover,#overlay .launch.quit:focus-visible{background:#ff8fa32e;outline-color:#ff8fa3;box-shadow:0 0 20px #ff8fa352}#overlay .launch.quit[hidden]{display:none}.console-actions{flex-direction:column;align-items:center;gap:8px;display:flex}#overlay .ghost{pointer-events:auto;color:#9fb2c4;font:400 12px var(--font);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #2f3f4d;min-height:40px;margin-top:2px;padding:9px 18px}#overlay .ghost:hover,#overlay .ghost:focus-visible{color:var(--cyan);border-color:var(--cyan)}#overlay .ghost:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}#settings,#howto-dialog{z-index:5;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));pointer-events:auto;background:#03050ad1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#settings[hidden],#howto-dialog[hidden]{display:none}.settings-card{text-align:left;touch-action:pan-y;background:#080d14;border:1px solid #2d4450;width:min(560px,100%);max-height:100%;padding:20px 22px 24px;overflow-y:auto;box-shadow:0 24px 60px #0009}.settings-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.settings-head h2{font:700 16px var(--font);letter-spacing:.22em;text-transform:uppercase;color:var(--ink);margin:0}#settings-close,#howto-close{color:#a7f8ed;font:400 12px var(--font);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:#101a21;border:1px solid #35525a;min-height:44px;padding:10px 16px}#settings-close:hover,#settings-close:focus-visible,#howto-close:hover,#howto-close:focus-visible{border-color:var(--cyan);background:#16323b}.howto-card{width:min(440px,100%)}.howto-on{letter-spacing:.12em;text-transform:uppercase;color:#7d949c;margin:0 0 12px;font-size:11px}.howto-device{color:var(--cyan);display:none}.howto{border-top:1px solid #1d2b35;grid-template-columns:1fr;gap:4px;margin:0;padding-top:12px;display:none}.howto>div{justify-content:space-between;align-items:center;gap:12px;min-height:30px;display:flex}.howto dt{letter-spacing:.12em;text-transform:uppercase;color:#9ba7b9;white-space:nowrap;font-size:12px}.howto dd{color:#cfdbe4;white-space:nowrap;align-items:center;gap:6px;margin:0;font-size:13px;display:flex}.howto-matter{color:#9ba7b9;border-top:1px solid #1d2b35;margin:14px 0 0;padding-top:12px;font-size:12px;line-height:1.55}.howto-more{color:#7d949c;margin:10px 0 0;font-size:11px}.howto kbd{padding:2px 6px;font-size:12px}html:not([data-input=touch]) #howto-dialog:not([data-pad]) dl.howto-keys,html[data-input=touch] #howto-dialog:not([data-pad]) dl.howto-touch,#howto-dialog[data-pad] dl.howto-pad{display:grid}html:not([data-input=touch]) #howto-dialog:not([data-pad]) span.howto-keys,html[data-input=touch] #howto-dialog:not([data-pad]) span.howto-touch,#howto-dialog[data-pad] span.howto-pad{display:inline}.settings-group{border-top:1px solid #1d2b35;margin-top:14px;padding-top:12px}.settings-group h3{font:400 12px var(--font);letter-spacing:.2em;text-transform:uppercase;color:#7d949c;margin:0 0 10px}.settings-row{min-height:40px;font:400 13px var(--font);color:#cfdbe4;justify-content:space-between;align-items:center;gap:16px;display:flex}.settings-row input[type=range]{max-width:220px;accent-color:var(--cyan);flex:1}.settings-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--cyan)}.settings-row select{color:#a7f8ed;font:inherit;background:#101a21;border:1px solid #35525a;padding:8px}.settings-keys{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px 18px;display:grid}.settings-key{font:400 13px var(--font);color:#cfdbe4;justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-key .bind{color:#d1d9e5;min-width:84px;min-height:36px;font:400 12px var(--font);cursor:pointer;background:#111721;border:1px solid #38414e;border-radius:3px}.settings-key .bind:hover,.settings-key .bind:focus-visible{border-color:var(--cyan);color:var(--cyan)}.settings-key .bind.listening{border-color:var(--amber);color:var(--amber)}.settings-action{color:#a7f8ed;font:400 12px var(--font);letter-spacing:.1em;cursor:pointer;background:#101a21;border:1px solid #35525a;min-height:40px;margin-top:12px;padding:10px 16px}.settings-action:hover,.settings-action:focus-visible{border-color:var(--cyan);background:#16323b}.settings-note{font:400 11px var(--font);color:#8298a3;margin:10px 0 0;line-height:1.7}.settings-credits summary{cursor:pointer;color:#cfdbe4;align-items:center;min-height:40px;font-size:13px;display:flex}.credit-list{font:400 12px var(--font);color:#a3b5bc;margin:8px 0 0;padding-left:22px;line-height:1.8}@media (max-width:619px){:is(#stage:has(#arsenal:not([hidden])) .bl,#stage:has(#arsenal:not([hidden])) .br){padding-bottom:calc(var(--corner-pad-y) + var(--bar-reserve))}}#thumb-guide{inset:auto 0 calc(var(--bar-reserve) + var(--corner-reserve)) 0;pointer-events:none;height:min(42vh,260px);display:flex;position:absolute}#thumb-guide[hidden]{display:none}.thumb-zone{opacity:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:12px;padding-bottom:8px;transition:opacity .26s;display:flex;position:relative}#thumb-guide[data-move=waiting] .thumb-zone[data-side=move],#thumb-guide[data-fire=waiting] .thumb-zone[data-side=fire]{opacity:1}.thumb-ring{aspect-ratio:1;background:radial-gradient(circle,#35f0ff29,#0000 70%);border:1px solid #35f0ff80;border-radius:50%;width:clamp(92px,26vw,132px);animation:2.4s ease-in-out infinite thumb-pulse}.thumb-label{font:400 11px var(--font);letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);text-shadow:0 0 12px #05060be6}@media (max-height:520px){#thumb-guide{height:min(30vh,124px)}.thumb-ring{width:clamp(48px,14vh,84px)}.thumb-label{letter-spacing:.1em;font-size:11px}}@media (max-height:344px){#thumb-guide{display:none}}@keyframes thumb-pulse{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}#stage:has(#overlay[data-screen=title]) .thumb-zone{opacity:.45;padding-bottom:8px}#stage:has(#overlay[data-screen=title]) #thumb-guide{bottom:calc(12px + var(--safe-b));height:min(26vh,150px)}#stage:has(#overlay[data-screen=title]) .thumb-ring{width:clamp(64px,17vw,92px);animation:none}@media (max-height:730px){#stage:has(#overlay[data-screen=title]) #thumb-guide{display:none}}@media (prefers-reduced-motion:reduce){.thumb-ring{animation:none}}:root[data-high-contrast]{--dim:#c9d2ea}:root[data-high-contrast] .hangar{--hangar-muted:#dde5f0;--hangar-line:#a9c2d4}:root[data-high-contrast] :is(.difficulty-control,.stat-grid span,.board-title,.board-list,.settings-group h3,.settings-note,.credit-list,.recent-line,.edition,.selection-label,.selection-label span,#overlay[data-screen=title] .prompt,.howto dt,.howto dd,.howto-matter,.howto-on,.howto-more,.copyright,.storm-caption>span){color:#e3e9f7}:root[data-high-contrast] :is(.settings-row,.settings-key,.settings-credits summary){color:var(--ink)}:root[data-high-contrast] :is(.difficulty-control select,.difficulty-control input,.settings-row select,.panel-actions button){color:#e6fdff;border-color:#7fd8e6}:root[data-high-contrast] .panel-actions button:disabled{color:#93a6b8;border-color:#4a6270}:root[data-high-contrast] .settings-card{background:#05060b}:root[data-high-contrast] .settings-group{border-top-color:#4a6270}#stage:has(>canvas[data-screen-fx]) #hud{background:radial-gradient(#0000 55%,#0000008c 100%),repeating-linear-gradient(#ffffff06 0 1px,#0000 1px 3px)}.title-only{display:none}.menu-content{overscroll-behavior:contain;pointer-events:auto;scrollbar-width:thin;scrollbar-color:#2b3a47 transparent;flex-direction:column;align-items:center;gap:clamp(6px,1vh,10px);max-width:100%;max-height:100%;display:flex;overflow-y:auto}#overlay[data-screen=title]{box-sizing:border-box;--title-art:url(/images/title-storm-landscape.webp);--title-gutter:max(40px, 6vw);--title-edge:clamp(18px, 2.4vh, 30px);--title-foot:clamp(54px, 6.8vh, 64px);--rhythm:clamp(10px, 2.3vh, 26px);padding:clamp(48px, 8vh, 96px) var(--title-gutter) calc(var(--title-edge) + var(--title-foot));text-align:left;background:linear-gradient(90deg, #06090ff5 0%, #06090fe6 29%, #06090fb3 44%, #06090f99 73%), linear-gradient(0deg, #06090fcc 0%, transparent 24%, transparent 80%, #06090f80 100%), var(--title-art) center / cover no-repeat;justify-content:safe center;align-items:flex-start}#overlay[data-screen=title] .title-only{display:block}#overlay[data-screen=title] .menu-content{overscroll-behavior:contain;pointer-events:auto;scrollbar-width:thin;scrollbar-color:#2b3a47 transparent;align-items:stretch;gap:0;width:420px;max-height:100%;overflow-y:auto}#overlay[data-screen=title] .sub{display:none}.title-masthead{top:max(28px, env(safe-area-inset-top));letter-spacing:.2em;align-items:center;font-size:12px;position:absolute;left:max(40px,6vw)}#overlay[data-screen=title] .title-masthead{display:flex}.brand-mark{width:32px;height:32px;margin-right:12px;display:block}.edition{color:#8893a6;letter-spacing:.15em;margin-left:24px;font-size:11px}.selection-label{letter-spacing:.16em;font-size:11px}.title-heading h1{font-family:var(--font);letter-spacing:.015em;margin:0;font-size:clamp(50px,min(6.6vw,8.4vh),96px);font-weight:700;line-height:.98}.title-heading h1>span{color:var(--cyan);display:block}.title-description{color:#e1e6ee;letter-spacing:.015em;margin:clamp(10px,1.8vh,24px) 0 0;font-size:clamp(16px,min(1.6vw,2.3vh),23px);line-height:1.45}#overlay[data-screen=title] .big{display:none}kbd{font:11px var(--font);color:#d1d9e5;background:#111721;border:1px solid #38414e;border-radius:3px;padding:2px 5px}.selection-label{margin-top:var(--rhythm);padding-top:calc(var(--rhythm) * .7);color:#a9b4c4;border-top:1px solid #29333f}.selection-label span{float:right;color:#8b97a8;font-size:11px}#overlay[data-screen=title] #level-select{margin:calc(var(--rhythm) * .5) 0 0;gap:12px;width:100%}#level-select button{min-width:44px;min-height:44px}#level-select button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}#level-select button:active{background:#244a52}#overlay[data-screen=title] .level-face{text-align:center;flex:1;min-width:0}#overlay[data-screen=title] .level-name{letter-spacing:.14em;font-size:12px;line-height:1.5}#overlay[data-screen=title] .level-blurb{letter-spacing:.02em;text-transform:none;text-wrap:balance;min-height:32px;margin-top:4px;font-size:11px;line-height:1.5;display:block}#overlay[data-screen=title] .setup-row{margin:var(--rhythm) 0 0;padding-top:calc(var(--rhythm) * .7);border-top:1px solid #29333f;justify-content:start}#overlay[data-screen=title] #run-panel{left:var(--title-gutter);right:var(--title-gutter);bottom:max(var(--title-edge), env(safe-area-inset-bottom));pointer-events:auto;border-top:1px solid #24313c;flex-flow:wrap;order:1;align-items:center;gap:4px 24px;width:auto;margin:0;padding-top:16px;position:absolute}#overlay[data-screen=title] .rank-line{letter-spacing:.12em;font-size:11px}#overlay[data-screen=title] .board{display:none}#overlay[data-screen=title] .stat-grid{flex-wrap:wrap;flex:auto;gap:2px 18px;display:flex}#overlay[data-screen=title] .stat-grid>div{background:0 0;border:0;flex-direction:row;align-items:baseline;gap:7px;padding:0}#overlay[data-screen=title] .stat-grid span{letter-spacing:.12em;text-transform:uppercase;font-size:11px}#overlay[data-screen=title] .stat-grid b{font-size:12px;font-weight:400}#overlay[data-screen=title] .panel-actions{margin-left:auto}#overlay[data-screen=title] .panel-actions button{letter-spacing:.1em;padding:7px 12px;font-size:11px}#overlay[data-screen=title] .launch{margin:var(--rhythm) 0 0;border:1px solid #537780;border-left-color:var(--cyan);min-height:clamp(48px,7vh,68px);color:var(--ink);text-align:left;letter-spacing:.24em;background:linear-gradient(110deg,#153039cc,#0b151de6 70%);padding:16px 24px;font-weight:700;transition:border-color .18s,background .18s,box-shadow .18s;animation:none;position:relative;box-shadow:inset 0 1px #a9fbff12,0 6px 24px #0005}#overlay[data-screen=title] .launch:after{content:"»";width:44px;color:var(--cyan);letter-spacing:0;text-indent:0;border-left:1px solid #537780;place-items:center;font-size:25px;display:grid;position:absolute;top:8px;bottom:8px;right:8px}#overlay[data-screen=title] .launch:hover,#overlay[data-screen=title] .launch:focus-visible{border-color:var(--cyan);background:linear-gradient(110deg,#224b55,#101f2b);box-shadow:inset 0 0 24px #35f0ff0c,0 0 24px #35f0ff1c}#overlay[data-screen=title] .launch:active{background:#224853;transform:translateY(1px)}#overlay[data-screen=title] .console-actions{margin-top:var(--rhythm);padding-top:calc(var(--rhythm) * .7);border-top:1px solid #29333f;flex-direction:row;justify-content:space-between;align-items:center;gap:16px}#overlay[data-screen=title] .prompt{text-align:left;letter-spacing:.035em;color:#9fadc0;text-transform:none;margin:0;font-size:11px}#overlay[data-screen=title] .ghost{flex:none;min-height:40px;margin:0;padding:8px 14px;font-size:11px}.console-buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}#overlay[data-screen=title] .console-buttons{flex:none;justify-content:flex-end}#overlay[data-screen=title] .copyright{letter-spacing:.12em;color:#7d8a9c;white-space:nowrap;font-size:11px}#stage:has(#overlay[data-screen=title]) #hud .tl>:not(.best-line){display:none}#stage:has(#overlay[data-screen=title]) #hud .tr>:not(#sound-toggle){display:none}#stage:has(#overlay[data-screen=title]) #hud .bl{display:none}#stage:has(#overlay[data-screen=title]) #hud .br{display:none}#stage:has(#overlay[data-screen=title]) #bomb-button{display:none}#stage:has(#overlay[data-screen=title]) #hud .tl{z-index:2;padding:0;font-size:11px;top:27px;left:auto;right:190px}#stage:has(#overlay[data-screen=title]) #hud .tr{z-index:2;padding:0;top:13px;right:max(28px,5vw)}#stage:has(#overlay[data-screen=title]) #sound-toggle{min-width:80px;min-height:44px}#stage:has(#overlay[data-screen=title]) #game-canvas{transform:translate(24%,10%)scale(.8);-webkit-mask-image:linear-gradient(#0000 17%,#000 36% 78%,#0000 100%);mask-image:linear-gradient(#0000 17%,#000 36% 78%,#0000 100%)}@media (max-width:1050px){.edition{display:none}#overlay[data-screen=title]{--title-gutter:40px}.title-masthead{left:40px}#overlay[data-screen=title] .menu-content{width:360px}}@media (max-width:700px){#overlay[data-screen=title]{--title-gutter:max(24px, env(safe-area-inset-left), env(safe-area-inset-right));--title-edge:20px;--title-foot:0px;--rhythm:clamp(9px, 1.6vh, 18px);background:linear-gradient(90deg, #06090fa6, #06090f66), linear-gradient(0deg, #06090f33, #06090f66 45%, #06090f1a), var(--title-art) center / cover no-repeat;touch-action:pan-y;justify-content:safe center;padding-top:76px}#overlay[data-screen=title] .menu-content{width:100%;max-width:420px;margin:auto}.title-masthead{top:max(22px, env(safe-area-inset-top));left:max(24px, env(safe-area-inset-left));font-size:11px}.brand-mark{width:26px;height:26px;margin-right:10px}.title-heading h1{font-size:clamp(40px,12vw,64px)}.title-description{font-size:clamp(16px,4.6vw,19px)}#overlay[data-screen=title] .prompt{display:none}#overlay[data-screen=title] .console-actions{justify-content:flex-start}#overlay[data-screen=title] #run-panel{margin:var(--rhythm) 0 0;gap:8px 18px;position:static}#overlay[data-screen=title] .stat-grid{display:none}#overlay[data-screen=title] .panel-actions{margin-left:0}#stage:has(#overlay[data-screen=title]) #hud .tl{display:none}#stage:has(#overlay[data-screen=title]) #hud .tr{top:max(9px, env(safe-area-inset-top));right:max(24px, env(safe-area-inset-right))}#stage:has(#overlay[data-screen=title]) #game-canvas{transform:none;-webkit-mask-image:linear-gradient(#0000 10%,#000 40% 75%,#0000);mask-image:linear-gradient(#0000 10%,#000 40% 75%,#0000)}}html[data-input=touch] #overlay[data-screen=title] .prompt{display:none}@media (max-height:660px){#overlay[data-screen=title]{--title-foot:0px;justify-content:flex-start}#overlay[data-screen=title] #run-panel{margin:14px 0 0;position:static}#overlay[data-screen=title] .panel-actions{margin-left:0}}@media (max-width:700px) and (max-height:780px){#overlay[data-screen=title]{--title-edge:16px;justify-content:flex-start;padding-top:56px}#overlay[data-screen=title] .menu-content{margin-top:0;margin-bottom:0}.title-heading h1{font-size:clamp(40px,11vw,52px)}#overlay[data-screen=title] .title-description{display:none}}@media (max-height:560px){#overlay[data-screen=title]{padding-top:52px}#overlay[data-screen=title] .title-heading,#overlay[data-screen=title] .stat-grid{display:none}}@media (max-height:730px){#overlay[data-screen=title]{--rhythm:clamp(10px, 2vh, 18px)}#overlay[data-screen=title] .selection-label,#overlay[data-screen=title] .rank-line{display:none}#overlay[data-screen=title] #level-select{margin-top:var(--rhythm);padding-top:calc(var(--rhythm) * .7);border-top:1px solid #29333f}}@media (max-width:480px){#overlay[data-screen=title] .rank-line{display:none}}@media (max-width:700px) and (max-height:500px){#overlay[data-screen=title]{--title-edge:12px;padding-top:40px}#overlay[data-screen=title] #run-panel{display:none}}@media (max-height:680px) and (min-width:700px){#overlay[data-screen=title]{justify-content:safe center}#overlay[data-screen=title] .menu-content{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:safe center;column-gap:36px;width:min(760px,100%);display:grid}#overlay[data-screen=title] .title-heading{grid-area:1/1/auto/span 2}#overlay[data-screen=title] .level-select{grid-area:2/1}#overlay[data-screen=title] .setup-row{grid-area:3/1}#overlay[data-screen=title] .launch{grid-area:2/2;margin-top:0}#overlay[data-screen=title] .console-actions{grid-area:3/2}#overlay[data-screen=title] #run-panel{grid-area:5/1/auto/span 2}#overlay[data-screen=title] .level-select{border-top:0;margin-top:0;padding-top:0}}#storm-surface{color:#95adbd;pointer-events:auto;cursor:crosshair;width:57%;height:75%;font-family:var(--font);touch-action:none;background:0 0;border:0;padding:0;position:absolute;top:12%;left:43%}#storm-surface:focus-visible{outline-offset:-24px;outline:1px dashed #35f0ff80}#title-storm{width:100%;height:100%}.storm-caption{letter-spacing:.17em;text-align:left;font-size:11px;position:absolute;bottom:0;left:12%;right:8%}.storm-caption>span{float:right;color:#7d99a9;letter-spacing:.06em;font-size:11px}#stage:has(#overlay[data-screen=title]) #game-canvas{opacity:.16}@media (max-width:1050px){#storm-surface{width:46%;left:54%}.storm-caption{text-align:center}.storm-caption>span{float:none;margin-top:10px;display:block}}@media (max-width:700px),(max-height:660px){#overlay[data-screen=title] #storm-surface{display:none}}@media (prefers-reduced-motion:reduce){#overlay[data-screen=title] .launch{transition:none}}@media (min-height:880px) and (min-width:1051px){#storm-surface{height:80%;top:8%}}@media (orientation:portrait){#overlay[data-screen=title]{--title-art:url(/images/title-storm-portrait.webp);background:linear-gradient(90deg, #06090fa6, #06090f66), linear-gradient(0deg, #06090f33, #06090f66 45%, #06090f1a), var(--title-art) right center / cover no-repeat}}#ship-select{min-height:44px;color:var(--ink);font:inherit;cursor:pointer;text-transform:none;letter-spacing:0;background:#101d26;border:1px solid #617888;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}#ship-select svg{width:28px;height:30px;fill:var(--cyan);font:20px var(--font)}#ship-select:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}#ship-select:active{background:#244249}.hangar{--hangar-muted:#a8b7c8;--hangar-line:#617888;--hangar-surface:#0c151e;box-sizing:border-box;border:1px solid var(--hangar-line);width:min(880px,100vw - 48px);max-width:none;max-height:calc(100dvh - 48px);color:var(--ink);font:16px/1.5 var(--font);background:#080e16;padding:0;overflow:hidden;box-shadow:0 24px 100px #0009}.hangar[open]{flex-direction:column;display:flex}.hangar::backdrop{background:#02060bea}.hangar *{box-sizing:border-box}.hangar button,.hangar select{min-width:44px;min-height:44px;font:inherit;color:var(--ink);border:1px solid var(--hangar-line);background:var(--hangar-surface);cursor:pointer}.hangar button{transition:background-color .12s,border-color .12s}.hangar button:active{background:#244249}.hangar :focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.hangar-header,.hangar-footer{flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.hangar-header{border-bottom:1px solid var(--hangar-line)}.hangar-header button{padding:6px 12px}.hangar-eyebrow{color:var(--hangar-muted);letter-spacing:.12em;text-transform:uppercase;font-size:12px}.hangar h2{margin:4px 0 0;font-size:clamp(20px,3vw,28px);line-height:1.25}.hangar-body{overscroll-behavior:contain;min-height:0;padding:24px;scroll-padding:10px;overflow-y:auto}.hangar-fleet{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.hangar-tile{flex-direction:column;align-items:center;gap:4px;padding:12px 8px;display:flex;position:relative}.hangar-tile svg{width:60px;height:60px}.hangar svg{fill:var(--cyan);font:18px var(--font)}.hangar-tile strong{font-size:14px}.hangar-equipped{color:var(--hangar-muted);font-size:12px}.hangar-tile[aria-pressed=true]{border-color:var(--cyan);box-shadow:inset 0 -3px var(--cyan);background:#102832}.hangar-tile[aria-pressed=true] strong:before{content:"✓ ";color:var(--cyan)}.hangar-detail{grid-template-columns:1fr 1fr;align-items:center;gap:24px;display:grid}.hangar-display{text-align:center;background:radial-gradient(#13303e88,#0c151e 70%);border:1px solid #243644;padding:16px}.hangar-preview{height:192px}.hangar-preview svg{filter:drop-shadow(0 0 12px #34efff45);width:100%;height:100%}.hangar-display-note{color:var(--hangar-muted);font-size:12px}.hangar h3{margin:8px 0 16px;font-size:30px;line-height:1.15}.hangar-spec p{color:var(--hangar-muted);margin:8px 0;font-size:14px}.hangar-spec p.hangar-strength{color:var(--cyan)}.hangar dl{flex-wrap:wrap;gap:24px;margin:20px 0 0;display:flex}.hangar dt{color:var(--hangar-muted);text-transform:uppercase;font-size:12px}.hangar dd{margin:4px 0 0;font-size:16px}.hangar-style{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:24px;font-size:14px;display:flex}.hangar-style select{padding:4px 12px}.hangar-style>span{color:var(--hangar-muted);font-size:12px}.hangar-footer{border-top:1px solid var(--hangar-line);background:#0c151e}.hangar-footer>span{color:var(--hangar-muted);font-size:12px}.hangar .hangar-use{border-color:var(--cyan);background:#16323d;justify-content:space-between;align-items:center;gap:28px;min-width:200px;padding:10px 16px;display:flex}.hangar-use span{color:var(--cyan);font-size:24px;line-height:1}@media (max-width:699px),(max-height:499px){.hangar{width:100%;height:100dvh;max-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border:0;margin:0}.hangar-header,.hangar-footer{padding:12px 16px}.hangar-body{flex:1;padding:16px}.hangar-fleet{gap:8px;margin-bottom:16px}.hangar-detail{gap:16px}.hangar-style{margin-top:16px}.hangar-footer>span{max-width:100px}.hangar .hangar-use{min-width:160px}}@media (max-width:699px) and (min-height:500px){.hangar-detail{grid-template-columns:1fr;gap:12px}.hangar-display{padding:8px}.hangar-preview{height:clamp(100px,18dvh,156px)}.hangar-display .hangar-eyebrow,.hangar-display-note{display:none}.hangar h3{margin:4px 0 8px;font-size:24px}.hangar dl{margin-top:12px}.hangar-tile{padding:8px 4px}.hangar-tile svg{width:44px;height:44px}}@media (max-height:499px){.hangar-header{padding-block:8px}.hangar-header .hangar-eyebrow{display:none}.hangar-tile{flex-flow:wrap;justify-content:center;gap:8px;padding:4px}.hangar-tile svg{width:32px;height:32px}.hangar-equipped{font-size:12px}.hangar-preview{height:116px}.hangar-display{padding:8px}.hangar h3{margin:4px 0 8px;font-size:24px}.hangar dl{margin-top:8px}.hangar-footer{padding-block:8px}}@media (prefers-reduced-motion:reduce){.hangar button{transition:none}}#overlay[data-screen=title] .difficulty-control select,#overlay[data-screen=title] .difficulty-control input,#overlay[data-screen=title] #ship-select{height:44px;min-height:44px}.hangar-tile strong,.hangar h2,.hangar h3{overflow-wrap:anywhere;min-width:0}.hangar select{max-width:100%}.hangar-detail>*{min-width:0}@media (max-width:559px) and (max-height:499px){.hangar-detail{grid-template-columns:1fr}}.hangar-header>div{min-width:0}.hangar-header button{flex-shrink:0;padding:4px 10px}.hangar-header button span{font-size:24px;line-height:1}#autofire-toggle{min-width:64px;height:44px;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;text-transform:none;letter-spacing:0;background:#101d26;border:1px solid #617888;padding:4px 12px}#autofire-toggle[aria-pressed=true]{border-color:var(--cyan);color:var(--cyan);background:#16323b}#autofire-toggle:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}#autofire-toggle:active{background:#244249}
