:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;color:#edf7ff;background:#060a18;--cyan:#8aebfa;--amber:#ffc76f}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0}button:focus-visible,a:focus-visible{outline:2px solid #b7f6ff;outline-offset:5px}[hidden]{display:none!important}#space{display:block;position:fixed;inset:0;width:100%;height:100%;touch-action:none}#hud{position:absolute;top:max(22px,env(safe-area-inset-top));left:max(30px,env(safe-area-inset-left));right:max(30px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;pointer-events:none}.flight-tag{font-size:13px;font-weight:700;letter-spacing:3px;display:flex;align-items:center;gap:10px}.flight-tag small{display:block;font-size:9px;letter-spacing:2px;color:#889db9;border-left:1px solid #8ca8cc40;margin-left:10px;padding-left:15px}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.telemetry{display:flex;align-items:center;gap:28px}.telemetry>div{display:flex;flex-direction:column;gap:5px}.telemetry small{font-size:8px;letter-spacing:2px;color:#a1b5ce}.telemetry b{font-size:23px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:2px}.telemetry>div:first-child b{color:var(--amber)}.square{pointer-events:auto;background:#10203b99;border:1px solid #9bdffb55;border-radius:50%;width:46px;height:46px;font-size:22px;color:var(--cyan);touch-action:manipulation}#route{position:absolute;top:90px;left:30px;right:30px;height:1px;background:#7babdf21}#routeFill{display:block;background:var(--cyan);width:0;height:1px;box-shadow:0 0 10px #8aebfa}#bossHud{position:absolute;top:110px;left:30%;right:30%;text-align:center;font-size:9px;letter-spacing:4px;color:#ffa693}#bossHud>div{height:3px;background:#482c3f;margin-top:10px}#bossFill{display:block;height:100%;background:#ff8066;width:100%}#controls{position:fixed;inset:0;pointer-events:none}.special-wrap{position:absolute;right:max(38px,env(safe-area-inset-right));bottom:max(42px,env(safe-area-inset-bottom));text-align:center}#pulse{pointer-events:auto;width:112px;height:112px;background:radial-gradient(circle at 40% 30%,#6d574388,#14223de0 70%);border:1px solid #ffcf8199;border-radius:50%;box-shadow:inset 0 0 25px #ffd78522,0 0 25px #ffce6118;touch-action:none;display:flex;align-items:center;flex-direction:column;justify-content:center;color:#ffda9b}#pulse svg{width:56px;height:56px;fill:#ffd18b;filter:drop-shadow(0 0 8px #eabb5c55)}#pulse svg circle{fill:none;stroke:#ffdc9a88;stroke-width:.6}#pulse b{font-size:11px;letter-spacing:2px;margin-top:2px}#pulse:active{transform:scale(.96)}#pulse:disabled{filter:grayscale(1);opacity:.45}.special-wrap>small{display:block;position:absolute;bottom:-24px;left:-20px;right:-20px;font-size:9px;letter-spacing:2px;color:#b5a789}.special-wrap>small span{display:none}#flightBottom{position:absolute;bottom:22px;left:215px;right:200px;display:flex;justify-content:space-between;color:#9dafc5;font-size:9px;letter-spacing:2px;pointer-events:none}#hull{color:#91d4e8}#toast{position:absolute;top:24%;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:4px;text-align:center;pointer-events:none;color:#b7f7ff;opacity:0;transition:opacity .25s;white-space:nowrap;text-shadow:0 2px 15px #000}#toast.show{opacity:1}
#menu{position:fixed;inset:0;display:flex;align-items:center;padding:60px 8%;background:linear-gradient(90deg,#050b1bdd,transparent 85%)}.intro{width:min(570px,65vw)}.eyebrow{font-size:11px;letter-spacing:5px;color:#a0c4d5;display:flex;align-items:center;gap:15px}.eyebrow>span{height:1px;width:27px;background:#8aebfa66}h1{font-size:clamp(64px,9vw,134px);line-height:.89;letter-spacing:-5px;margin:28px 0 22px;font-weight:800}h1>span{display:block;color:transparent;-webkit-text-stroke:1px #bbd7e4}p.tagline{font-size:9px;letter-spacing:3px;color:#a4b6c8;margin:26px 0}.mission{font-size:9px;letter-spacing:2px;display:flex;align-items:center;gap:13px;color:#e3c394;margin:28px 0 20px}.mission i{width:3px;height:3px;background:var(--amber)}.primary{background:#c1edf0;color:#10232d;width:280px;max-width:100%;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:bold;letter-spacing:3px;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%);transition:background .2s}.primary:hover{background:#e4ffff}.primary span{font-size:22px;line-height:16px}.instructions{display:flex;gap:16px;align-items:center;font-size:10px;color:#91a9bd;margin-top:22px;flex-wrap:wrap}.instructions kbd{font:inherit;color:#cee9ef;border:1px solid #849bb74a;border-radius:3px;padding:3px 4px}.goal{font-size:11px;color:#90a4bd;margin:16px 0 28px}.menu-bottom{display:flex;gap:25px;align-items:center;font-size:9px;letter-spacing:2px;color:#99b0c4}.menu-bottom b{font-weight:normal;color:#f6cf8a;margin-left:8px;font-variant-numeric:tabular-nums}.menu-bottom button,.menu-bottom a,.panel-links button{background:none;padding:10px 0;font-size:9px;letter-spacing:2px;text-decoration:none;color:#a2bed1}.edition{position:absolute;right:35px;bottom:28px;text-align:right;font-size:9px;letter-spacing:3px;color:#91a9bd}.edition span{display:block;font-size:8px;letter-spacing:2px;margin-top:8px;color:#5b7894}#overlay{position:fixed;inset:0;background:#040918bb;backdrop-filter:blur(12px);display:grid;place-items:center;padding:20px}.panel{width:420px;max-width:100%;padding:38px;border:1px solid #a9cbec2b;background:linear-gradient(140deg,#172941b8,#080f21e8);box-shadow:0 30px 100px #0006}.panel .eyebrow{font-size:9px;letter-spacing:3px}.panel h2{font-size:40px;letter-spacing:-1px;font-weight:500;margin:22px 0 10px}.panel p{color:#9cb1c9;font-size:12px;line-height:1.6;margin:0 0 24px}.panel .primary{width:100%}.secondary{background:transparent;border:1px solid #abc5dd33;width:100%;padding:15px;font-size:10px;letter-spacing:3px;margin-top:12px}.panel-links{display:flex;justify-content:space-between;margin-top:16px}#resultStats{display:flex;justify-content:space-between;border-top:1px solid #8da8cf33;padding-top:20px;margin:10px 0 25px}#resultStats div{display:flex;flex-direction:column;gap:8px}#resultStats small{font-size:8px;letter-spacing:2px;color:#8fa9bd}#resultStats b{font-size:22px;font-weight:400;color:#f5d9ac}
@media(max-width:700px){#hud{left:18px;right:18px;top:max(15px,env(safe-area-inset-top))}.flight-tag{font-size:10px;letter-spacing:2px}.flight-tag small{display:none}.telemetry{gap:14px}.telemetry b{font-size:18px}.telemetry small{font-size:7px}.salvage{display:none}.square{width:40px;height:40px}#route{top:76px;left:18px;right:18px}#bossHud{left:24%;right:24%;top:95px;font-size:8px;letter-spacing:2px}#pulse{width:96px;height:96px}.special-wrap{right:25px;bottom:max(44px,env(safe-area-inset-bottom))}#flightBottom{left:18px;right:18px;bottom:12px;font-size:8px;letter-spacing:1.5px}#menu{padding:45px 7%;background:linear-gradient(90deg,#050b1bee,#050b1b22)}.intro{width:100%}h1{font-size:clamp(76px,20vw,110px);letter-spacing:-4px}.eyebrow{font-size:9px;letter-spacing:4px}.eyebrow>span{width:18px}.tagline{max-width:270px;line-height:1.8}.mission{font-size:8px}.instructions{gap:12px;font-size:9px}.goal{max-width:260px;line-height:1.7;font-size:10px}.menu-bottom{gap:18px;font-size:8px}.menu-bottom button,.menu-bottom a{font-size:8px}.edition{display:none}#toast{font-size:10px;letter-spacing:2px;width:95%;white-space:normal}.panel{padding:26px}.panel h2{font-size:34px}}
@media(max-height:500px) and (orientation:landscape){#menu{padding:20px 7%}.intro{width:75%}h1{font-size:64px;display:flex;gap:16px;letter-spacing:-3px;margin:18px 0}.tagline{display:none}.mission{margin:15px 0}.primary{padding:13px 20px}.instructions{margin-top:15px}.goal{margin:12px 0}.menu-bottom{margin-top:5px}#hud{top:12px;left:22px;right:22px}.telemetry b{font-size:17px}.telemetry small{font-size:7px}.telemetry{gap:22px}#route{top:65px}#bossHud{top:75px}#pulse{width:88px;height:88px}.special-wrap{bottom:30px;right:24px}.special-wrap>small{bottom:-17px;font-size:8px}#flightBottom{bottom:13px;left:150px;right:145px;font-size:8px}.panel{padding:20px 28px;width:440px}.panel h2{font-size:30px;margin:12px 0}.panel p{margin-bottom:13px}.panel-links{margin-top:6px}.secondary{padding:10px}#resultStats{padding-top:10px;margin-bottom:15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
#space{outline:none}
.fs-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;vertical-align:middle}.square:disabled{opacity:.4;cursor:default}#toast{z-index:20}
@media(max-width:700px){.menu-bottom{gap:13px;flex-wrap:wrap}.telemetry{gap:10px}}
@media(max-width:380px){.flight-tag{font-size:0;gap:0;width:8px}.menu-bottom{gap:12px}.menu-bottom b{margin-left:3px}}
/* One right-thumb cluster; the smaller swap bubble sits above-left of Nova. */
#weapon{position:absolute;right:calc(100% + 8px);bottom:48px;pointer-events:auto;touch-action:none;width:72px;height:72px;padding:8px 2px;border:1px solid #9bdffb77;border-radius:50%;background:radial-gradient(circle at 35% 25%,#426a82cc,#0d1a30ee 75%);color:#b6e8f5;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 16px #8aeaff18}
#weapon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}#weaponName{font-size:8px;letter-spacing:1px;white-space:nowrap}.swap-mark{position:absolute;right:3px;top:0;font-size:17px;color:#e4faff}.cut-symbol{display:none}#weapon[data-weapon=cutter]{color:#ffcd87;border-color:#ffcd8788;background:radial-gradient(circle at 35% 25%,#6e5135cc,#161b2bee 75%)}#weapon[data-weapon=cutter] .cut-symbol{display:block}#weapon[data-weapon=cutter] .gun-symbol{display:none}#weapon:active{transform:scale(.96)}#weapon:disabled{opacity:.45}#flightBottom{left:210px;right:200px;bottom:16px;align-items:center;gap:8px}#upgradeState,#hull{white-space:nowrap;font-size:9px;letter-spacing:1px}
@media(max-width:700px){#flightBottom{left:50%;right:auto;transform:translateX(-50%);bottom:12px;flex-direction:column;gap:5px}#upgradeState,#hull{font-size:8px}.special-wrap{right:14px}#weapon{width:64px;height:64px;bottom:105px;right:2px}}
@media(max-height:500px) and (orientation:landscape){#flightBottom{left:150px;right:135px;transform:none;flex-direction:row;bottom:10px}#weapon{right:calc(100% + 10px);bottom:25px;width:64px;height:64px}}
@media(max-width:360px) and (orientation:portrait){.special-wrap{right:12px}#pulse{width:88px;height:88px}#weapon{bottom:98px}}
.stage-select{display:flex;gap:8px;margin:0 0 15px;flex-wrap:wrap}.stage-select button{font-size:8px;letter-spacing:1px;padding:12px 10px;min-height:42px;background:#0d2138a0;border:1px solid #809bb540;color:#a8c5d6}.stage-select button[aria-pressed=true]{border-color:#a7eced;color:#c4f4fa}.stage-select button:disabled{color:#66788e;cursor:default;opacity:.65}#continue{margin-bottom:12px}
@media(max-height:500px) and (orientation:landscape){.intro{width:100%;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;align-items:center}.intro>.eyebrow{grid-column:1;grid-row:1}.intro>h1{grid-column:1;grid-row:2/4;display:block;font-size:58px;margin:14px 0}.intro>.mission{grid-column:1;grid-row:4;margin:8px 0}.intro>.stage-select{grid-column:2;grid-row:1/3;gap:5px}.intro>.stage-select button{font-size:7px;padding:9px;min-height:36px}.intro>.primary{grid-column:2;grid-row:3}.intro>.instructions{grid-column:2;grid-row:4;margin:10px 0;font-size:8px;gap:9px}.intro>.goal{display:none}.intro>.menu-bottom{grid-column:1/-1;grid-row:5;margin-top:8px}.edition{display:none}}
@media(max-height:680px) and (orientation:portrait){#menu{padding:20px 7%}.intro>h1{font-size:64px;margin:18px 0}.intro>.tagline,.intro>.goal{display:none}.intro>.mission{margin:14px 0}.intro>.stage-select{gap:6px;margin-bottom:12px}.intro>.stage-select button{min-height:36px;padding:9px 8px;font-size:7px}.intro>.primary{padding:14px 18px}.intro>.instructions{margin-top:16px}.intro>.menu-bottom{margin-top:16px}}
.panel{max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain}

#powerHud{position:absolute;top:100px;left:22px;right:22px;display:flex;gap:5px;flex-wrap:wrap;pointer-events:none;max-width:260px}#powerHud span{font-size:8px;letter-spacing:.6px;color:var(--power);padding:5px 7px;border:1px solid color-mix(in srgb,var(--power) 35%,transparent);border-radius:12px;background:#071326bb;white-space:nowrap}#bossHud{top:148px}
@media(max-width:700px){#powerHud{top:84px;left:18px;right:18px;max-width:240px}#powerHud span{font-size:7px;padding:4px 6px}#bossHud{top:142px}}
@media(max-height:500px) and (orientation:landscape){#powerHud{top:73px;left:22px;max-width:280px}#bossHud{left:auto;right:22px;width:180px;top:78px;font-size:7px}}

#modChoices{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 16px}#modChoices button{min-height:78px;padding:9px 3px;background:#0b1b2e;border:1px solid #86b9d344;border-radius:6px;display:flex;flex-direction:column;gap:6px;align-items:center}#modChoices button[aria-pressed=true]{border-color:#a1eee6;background:#16383f}#modChoices b{font-size:8px;letter-spacing:.5px}#modChoices small{font-size:9px;color:#9eb7cb}#modChoices span{font-size:9px;color:#e7c494}
#toast{top:max(185px,24%)}
@media(max-height:500px) and (orientation:landscape){#toast{top:128px}}
.panel{width:min(420px,calc(100vw - 40px));min-width:0}#modChoices{grid-template-columns:repeat(3,minmax(0,1fr))}#modChoices button{min-width:0}#modChoices b,#modChoices small{max-width:100%;overflow-wrap:anywhere}
@media(max-width:380px){.panel{padding:22px 18px}.panel h2{font-size:28px}.panel p{font-size:11px}#modChoices small{font-size:8px}}
