@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--bg:#0d1720;--panel:#14222d;--text:#eaf1ef;--muted:#a1b1bd;--line:#30424e;--ice:#8fdff4;--orange:#ffb18b;--mono:'IBM Plex Mono',monospace;--font:'DM Sans',sans-serif;--display:'Rajdhani',sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px var(--font);background-image:radial-gradient(ellipse at 30% 0,#243d4638,transparent 65%)}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--ice);outline-offset:5px}.page{max-width:1380px;padding:0 48px;margin:auto}header{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.back-link{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;font:500 13px var(--mono);letter-spacing:.5px}.back-link>span:first-child{font-size:20px;color:var(--ice)}.back-note{color:#839aa7;font-size:11px;border-left:1px solid var(--line);padding-left:15px;margin-left:8px}nav{display:flex;align-items:center;gap:19px}.text-button{border:0;background:transparent;color:#d0dedd;font-size:14px;padding:9px}.text-button:hover{color:var(--ice)}.icon-button{width:38px;height:38px;border:1px solid #455762;background:#17283370;color:#d4e4e4;border-radius:4px;font:21px var(--display);display:grid;place-items:center}.icon-button:hover{background:#2c414d}.title-row{display:flex;align-items:center;justify-content:space-between;padding:22px 0}.eyebrow{font:11px var(--mono);letter-spacing:1.5px;color:var(--ice)}h1{font:700 46px/.98 var(--display);letter-spacing:.1px;margin:8px 0 0;display:flex;align-items:center;gap:22px}h1>span{font:500 11px/1.5 var(--mono);letter-spacing:2px;color:#b1cbd2;max-width:110px;padding-left:18px;border-left:1px solid #455762}.signal{font:11px var(--mono);letter-spacing:1px;color:#a2bac2;display:flex;align-items:center;gap:9px}.signal i{width:5px;height:5px;border-radius:50%;background:var(--orange);box-shadow:0 0 12px #ffb18b80}.station{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:25px;align-items:start}.machine{overflow:hidden;border:1px solid #455865;border-radius:9px;background:#09131d;box-shadow:0 22px 55px #0003}.scoreboard{height:75px;display:flex;align-items:center;gap:27px;padding:0 25px;border-bottom:1px solid var(--line);background:var(--panel)}.scoreboard>div{display:flex;flex-direction:column;gap:3px}.label{font:12px var(--mono);letter-spacing:.6px;color:var(--muted)}.scoreboard strong{font:500 27px/1.1 var(--mono);letter-spacing:1px;color:var(--ice)}.scoreboard .best{margin-left:auto;margin-right:15px}.best strong{color:#e6eded}.scoreboard .icon-button{margin-left:-15px;width:34px;height:34px}.arena{position:relative;display:flex;justify-content:center;background:#08131e;overflow:hidden}#game{display:block;height:min(615px,calc(100dvh - 310px));width:auto;max-width:100%;aspect-ratio:800/640;min-height:330px;touch-action:none;outline:none}.arena-caption{position:absolute;left:20px;right:20px;top:13px;display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:1px;color:#839cae85;pointer-events:none}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#07131d50;transition:opacity .2s}.overlay.hidden{visibility:hidden;opacity:0;pointer-events:none}.launch-card{text-align:center;padding:25px 30px;border:1px solid #506c7d99;border-radius:8px;background:#102331f2;box-shadow:0 12px 65px #020d1966;width:310px;transform:translateY(10px)}.launch-card .eyebrow{font-size:10px;letter-spacing:1.3px}h2{font:700 58px/.94 var(--display);letter-spacing:.4px;margin:18px 0 12px}h2 em{font-style:normal;color:var(--ice)}.launch-card p{font-size:13px;line-height:1.75;color:#bed0d7;margin:0 0 21px}.primary{display:flex;align-items:center;justify-content:space-between;gap:25px;width:100%;border:0;border-radius:4px;background:var(--ice);color:#10232d;font-size:14px;font-weight:700;padding:14px 18px;box-shadow:0 3px 0 #3b738251;transition:transform .15s,background .15s}.primary>span{font-size:23px;line-height:19px;font-weight:400}.primary:hover{background:#b1edfa;transform:translateY(-1px)}.start-hint{display:block;margin-top:15px;color:#92aeb9;font:10px var(--mono);letter-spacing:1px}.bottom-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:13px 23px;background:var(--panel);border-top:1px solid var(--line)}.fleet{display:flex;align-items:center;gap:12px}#lives{display:flex;gap:6px}.ship-life{width:19px;height:18px;fill:var(--ice)}.ship-life.lost{fill:#455965}#flight-status{font:11px var(--mono);letter-spacing:1px;color:#a6bcc3}.wave-small{font:12px var(--mono);color:#a1b7c0}.wave-small b{color:#deedee;margin-left:6px}aside{display:flex;flex-direction:column;gap:20px}.mission-panel,.targets{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.pill{color:#b8d3d7;font:10px var(--mono);border:1px solid #405b63;border-radius:3px;padding:3px 5px}.wave-number{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.wave-number>div{display:flex;flex-direction:column;gap:3px}.wave-number strong{font:600 60px/.95 var(--display);color:#d9eced}.orbit-symbol{font:72px/.9 var(--display);color:#416674;transform:rotate(-25deg)}.mission-panel h3{font:600 27px/1.05 var(--display);margin:22px 0 9px}.mission-panel>p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 24px}.formation-heading{display:flex;justify-content:space-between;font:11px var(--mono);color:#b0c7ce;gap:8px}.formation-heading b{color:var(--ice);font-weight:500}.formation-track{height:4px;background:#2c4554;margin:10px 0 25px}.formation-track>div{height:100%;width:100%;background:var(--ice);transition:width .2s}.shield-module{padding-top:21px;border-top:1px solid var(--line)}.shield-module>div:first-child{display:flex;justify-content:space-between;font:11px var(--mono);color:#b3decb;margin-bottom:13px}.shield-module button{width:100%;padding:12px 11px;display:flex;align-items:center;justify-content:space-between;background:#203746;border:1px solid #547989;border-radius:4px;color:#dcf1f0;font-size:14px}.shield-module button:hover{background:#2c4c5d}.shield-module button:disabled{opacity:.6}.shield-module p{font-size:12px;line-height:1.6;color:#a1b7c0;margin:9px 0 0}.shield-track{height:3px;background:#263f4d;margin-top:10px}.shield-track>div{height:100%;width:100%;background:#8fdff4}.targets{padding:20px 22px}.targets>.label{display:block;margin-bottom:14px}.targets>div{display:flex;align-items:center;gap:13px;padding:8px 0;font-size:14px}.targets>div+div{border-top:1px solid #2b3e4c}.targets canvas{width:40px;height:28px;flex-shrink:0}.targets b{font:12px var(--mono);margin-left:auto;color:#a9c4cf}.bunker-tip{display:flex;gap:13px;font-size:13px;line-height:1.7;color:#a4b6c0;margin:0;padding:0 5px}.bunker-tip>span{font-size:28px;color:#8cb6a6}.controls{display:flex;align-items:center;gap:25px;padding:18px 0 20px}.controls>span{display:flex;align-items:center;gap:7px;font-size:12px;color:#a8bec7}.controls b{font:12px var(--mono);font-weight:400;color:#c3dce3}.controls .control-note{font:10px var(--mono);letter-spacing:.5px;color:#839fab;margin-left:auto}kbd{font:11px var(--mono);height:24px;min-width:24px;border:1px solid #4c6573;border-bottom-width:2px;background:#243b48;border-radius:3px;color:#d6e7ec;padding:3px 5px;text-align:center}.shield-module kbd{font-size:10px;height:22px;background:#294753}.touch-controls{display:none}footer{border-top:1px solid var(--line);padding:22px 0 26px;display:flex;justify-content:space-between;align-items:center;gap:18px;color:#8a9fab;font:10px var(--mono)}footer i{font-style:normal;color:#506b7a;margin:0 8px}footer p{font:12px var(--font);margin:0}footer>span:last-child{color:#98b3be}.toast{position:absolute;left:50%;transform:translateX(-50%);top:19px;padding:9px 16px;border:1px solid #70a0b0;border-radius:4px;background:#163546ee;color:#d7f3f9;font:12px var(--mono);opacity:0;white-space:nowrap;pointer-events:none}.toast.visible{opacity:1}dialog{width:min(520px,calc(100% - 30px));max-height:90dvh;border:1px solid #526e80;border-radius:9px;background:#132a39;color:#e5f0f0;padding:30px;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#06111fc9;backdrop-filter:blur(6px)}#close-manual{position:absolute;right:13px;top:12px;border:0;background:none;color:#d9edef;font-size:28px;width:38px;height:38px}dialog h2{font-size:42px;margin:19px 0}dt{font-size:15px;font-weight:600;color:var(--ice);margin-top:18px}dd{margin:7px 0 18px;font-size:14px;line-height:1.7;color:#bed0d8}dl{margin:0 0 22px}.machine:fullscreen{width:100vw;height:100dvh;display:flex;flex-direction:column;border:0;border-radius:0}.machine:fullscreen .scoreboard,.machine:fullscreen .bottom-bar{flex-shrink:0}.machine:fullscreen .arena{flex:1;min-height:0}.machine:fullscreen #game{height:100%;min-height:0;max-height:none;width:auto}
@media(max-width:1100px){.page{padding:0 28px}.station{grid-template-columns:minmax(0,1fr) 260px;gap:18px}.mission-panel,.targets{padding:18px}.signal{display:none}.back-note{display:none}.controls{gap:18px}.controls .control-note{display:none}.scoreboard{padding:0 18px;gap:18px}.scoreboard .label{font-size:11px}.scoreboard strong{font-size:23px}.scoreboard .icon-button{margin-left:-10px}.scoreboard .best{margin-right:8px}.bottom-bar{padding:13px 17px}#flight-status{font-size:10px}.formation-heading{font-size:10px}.targets>div{gap:8px}.targets b{font-size:11px}footer>span:last-child{display:none}}
@media(max-width:760px){.page{padding:0 15px}header{height:63px}.back-link{font-size:11px;gap:8px}.text-button{font-size:12px;padding:6px}nav{gap:8px}.icon-button{width:33px;height:33px}.title-row{padding:20px 0}h1{font-size:34px;gap:13px}h1>span{font-size:9px;letter-spacing:1px;max-width:89px;padding-left:13px}.eyebrow{font-size:10px}.station{display:block}aside{display:none}.scoreboard{height:68px;padding:0 14px;gap:20px}.scoreboard .label{font-size:11px}.scoreboard strong{font-size:21px}.scoreboard .best{margin-right:0}#fullscreen{display:none}#game{width:100%;height:auto;min-height:0;aspect-ratio:800/760;max-height:calc(100dvh - 270px)}.arena-caption{left:13px;right:13px;font-size:7px;top:11px}.launch-card{width:min(275px,calc(100% - 36px));padding:22px;transform:none}.launch-card .eyebrow{font-size:9px;letter-spacing:.8px}h2{font-size:49px;margin:13px 0}.launch-card p{font-size:12px;line-height:1.65;margin-bottom:17px}.start-hint{font-size:9px}.bottom-bar{padding:12px 14px;gap:8px;min-height:48px}.fleet{gap:8px}.label{font-size:11px}#flight-status{font-size:8px;letter-spacing:.4px}.wave-small{font-size:10px}.ship-life{width:17px;height:16px}.controls{display:none}.touch-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:17px 0 10px}.touch-controls>div{display:flex;gap:8px}.touch-controls button{border:1px solid #557586;background:#213b4d;border-bottom-width:3px;color:#d5eff2;border-radius:7px;min-width:48px;height:46px;font:18px var(--mono);touch-action:none}.touch-controls #touch-shield{font-size:11px;min-width:66px;padding:0 10px}.touch-controls .fire-button{background:#8fdff4;color:#0b2a37;border-color:#98eafa;min-width:75px;font-size:14px;font-weight:600}.touch-controls button:active{filter:brightness(1.3)}.touch-controls p{width:100%;text-align:center;margin:1px 0 8px;font:9px var(--mono);color:#a0bfcc;letter-spacing:.4px}footer{justify-content:center;padding:15px 0 20px}footer p{display:none}.toast{font-size:10px;top:12px;padding:7px 10px}dialog{padding:26px}.shield-module{font-size:14px}}
@media(pointer:coarse) and (min-width:761px){.touch-controls{display:flex;align-items:center;gap:15px;padding:16px 0}.touch-controls>div{display:flex;gap:10px}.touch-controls button{min-width:60px;min-height:48px;border:1px solid #557586;background:#213b4d;color:#d5eff2;border-radius:6px;touch-action:none}.touch-controls p{font-size:12px;color:#a0bfcc;margin-left:auto}.controls{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.primary:hover{transform:none}}
