:root{color-scheme:dark;--night:#071627;--panel:#10263a;--ice:#dceef0;--muted:#87a8b9;--cyan:#78e5ed;--amber:#ffcb83;--play-height:100%}
*{box-sizing:border-box}html,body{margin:0;background:var(--night);color:var(--ice);font-family:'Avenir Next','PingFang SC','Microsoft YaHei',sans-serif;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overflow:hidden;overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer;padding:0;border:0;touch-action:manipulation}button:focus-visible,canvas:focus-visible{outline:2px solid var(--amber);outline-offset:-4px}button:disabled{cursor:default}button[hidden],[hidden]{display:none!important}.game{display:grid;grid-template-rows:76px minmax(0,1fr) 94px;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.flight-header{display:flex;align-items:center;justify-content:space-between;padding:0 calc(18px + var(--play-screen-slot,0px)) 0 30px;gap:20px;border-bottom:1px solid #9ab9c619;background:#0b1d2d}.identity{display:flex;align-items:center;gap:12px}.identity strong{display:block;font-size:19px;letter-spacing:3px}.identity small{font-size:10px;letter-spacing:4px;color:var(--muted)}.insignia{color:var(--amber);font-size:34px}.route{display:flex;align-items:center;gap:13px;color:#8da8b7;font-size:12px}.route i{width:48px;height:1px;background:#446074}.route span.active{color:var(--amber)}.header-actions{display:flex;align-items:center;gap:10px}.header-actions button{height:44px;min-width:44px;background:transparent;font-size:12px}.header-actions button:disabled{opacity:.35}#pause{font-size:22px}.flight-deck{position:relative;min-height:0;overflow:hidden}canvas{width:100%;height:100%;display:block;touch-action:none}.hud{position:absolute;top:24px;left:28px;right:28px;display:flex;justify-content:space-between;pointer-events:none}.hud span{font-size:10px;letter-spacing:2px;color:var(--muted)}#shield-bars{display:flex;gap:5px;margin-top:10px}#shield-bars i{width:20px;height:5px;background:var(--cyan);box-shadow:0 0 10px #78e5ed44}#shield-bars i.empty{background:#304255;box-shadow:none}.score{text-align:right}.score strong{display:block;font-size:24px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:2px;margin-top:4px}.overlay{position:absolute;inset:0;display:flex;align-items:center;background:linear-gradient(90deg,#071627e8,#07162750 52%,transparent 80%)}.briefing{margin-left:9%;max-width:440px}.orbit-mark{color:var(--amber);font-size:38px}.mission-tag{font-size:12px;letter-spacing:3px;color:var(--amber);margin:10px 0 20px}h1{font-size:clamp(40px,5.4vw,78px);line-height:1.12;font-weight:600;letter-spacing:5px;margin:0 0 24px}#panel-copy{color:#bad0dc;font-size:15px;line-height:1.9;margin:0 0 28px}.launch{display:flex;gap:56px;align-items:center;justify-content:space-between;background:var(--amber);color:#152d3e;padding:16px 24px;border-radius:6px;font-size:16px;font-weight:700;box-shadow:0 4px 30px #ffcb831c}.launch:hover{background:#ffdda7}.launch span{font-size:23px}.instructions{font-size:12px;line-height:1.8;color:var(--muted);margin-top:18px}.record{color:var(--amber);font-size:11px;min-height:15px}.control-deck{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 28px;background:#0c2031;border-top:1px solid #7bb4c12b}.weapon{display:flex;align-items:center;gap:12px}.weapon-icon{font-size:38px;color:var(--cyan)}.weapon small{display:block;font-size:10px;letter-spacing:2px;color:var(--muted);margin-bottom:5px}.weapon strong{font-size:14px;font-weight:500}.steering{font-size:12px;color:var(--muted)}#pulse{position:relative;display:flex;align-items:center;gap:13px;overflow:hidden;text-align:left;background:#153e50;border:1px solid #78e5ed50;border-radius:8px;min-width:216px;padding:10px 18px;height:65px}#pulse:disabled{opacity:.5}#pulse strong{position:relative;z-index:1;display:block;font-size:14px}#pulse small{position:relative;z-index:1;display:block;font-size:10px;color:#b5d8e2;margin-top:4px}.pulse-icon{font-size:32px;color:var(--cyan);z-index:1}#pulse-fill{position:absolute;bottom:0;left:0;width:100%;height:3px;background:var(--cyan)}#toast{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#f6dfb7;font-size:14px;letter-spacing:2px;white-space:nowrap;pointer-events:none;text-shadow:0 2px 8px #071627}#boss-hud{position:absolute;top:30px;left:30%;width:40%;font-size:10px;text-align:center;color:#ffb497;letter-spacing:3px}#boss-hud>div{height:4px;background:#462f3a;margin-top:8px}#boss-health{display:block;height:100%;background:#ffab91;width:100%}
@media(max-width:700px){.game{grid-template-rows:64px minmax(0,1fr) 86px}.flight-header{padding-left:16px;gap:10px}.identity strong{font-size:15px;letter-spacing:2px}.identity small{font-size:9px}.insignia{font-size:26px}.route{display:none}.header-actions{gap:1px}.hud{left:18px;right:18px;top:18px}#shield-bars{gap:3px}#shield-bars i{width:14px}.score strong{font-size:21px}.control-deck{padding:10px 14px;gap:10px}.steering{display:none}#pulse{min-width:178px;padding:10px 12px;height:60px}.weapon-icon{display:none}.weapon strong{font-size:12px}.briefing{margin-left:8%;max-width:85%}h1{font-size:54px}.orbit-mark{font-size:28px}#panel-copy{font-size:14px}.overlay{background:linear-gradient(90deg,#071627dd,#07162744)}#boss-hud{top:77px;left:20%;width:60%}}
@media(max-height:560px) and (orientation:landscape){.game{grid-template-rows:54px minmax(0,1fr) 70px}.flight-header{padding-left:20px}.identity strong{font-size:16px}.identity small{display:none}.route i{width:26px}.control-deck{padding:7px 20px}#pulse{height:54px;min-width:200px}.hud{top:12px}.score strong{font-size:19px}.briefing{margin-left:8%;display:grid;grid-template-columns:240px 240px;column-gap:24px;align-items:center}.orbit-mark{display:none}.mission-tag{grid-column:1;margin:0 0 10px;font-size:10px}h1{grid-column:1;grid-row:2 / 4;font-size:40px;margin:0;line-height:1.1}#panel-copy{grid-column:2;grid-row:1 / 3;font-size:12px;margin:0 0 12px}.launch{grid-column:2;grid-row:3;padding:10px 18px;font-size:14px}.instructions{grid-column:2;grid-row:4;font-size:10px;margin:8px 0 0}.record{grid-column:1;font-size:10px;margin:8px 0 0}.steering{font-size:10px}#toast{bottom:12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
/* Campaign navigation and distinct battle/result feedback. */
.route{display:flex;flex-direction:column;gap:4px;align-items:center}.route strong{font-size:13px;font-weight:600;color:#f4d4a2}.route span{font-size:10px;color:#9db7c7}
#shield-value{font-size:14px;font-variant-numeric:tabular-nums;color:#bdf7fb;margin-left:8px;letter-spacing:1px}#shield-bars{gap:5px}#shield-bars i{height:8px;transition:background .15s}.shield.damaged #shield-value{color:#ff9c80}.shield.damaged #shield-bars i.just-lost{background:#ff9c80;box-shadow:0 0 12px #ff9c80}.shield.critical #shield-bars i:not(.empty){background:#ff9c80}#shield-warning{display:block;color:#ffb09a;font-size:11px;margin-top:9px;letter-spacing:1px;min-height:15px}
#boss-hud{top:22px;letter-spacing:1px}#boss-hud>div{position:relative;height:9px;margin-top:9px;border-radius:3px;overflow:hidden}#boss-value{display:block;font-size:12px;font-variant-numeric:tabular-nums;margin-top:4px;color:#ffdfc0}#boss-health,#boss-trail{position:absolute;inset:0 auto 0 0;height:100%;display:block}#boss-trail{background:#ffe7b5}#boss-health{background:#ed876e}#boss-hud.hit #boss-value{color:#fff3c4}#boss-hud.hit #boss-health{background:#ffd49d}
#mission-banner{position:absolute;top:24%;left:50%;transform:translateX(-50%);text-align:center;pointer-events:none;background:linear-gradient(90deg,transparent,#10273bd9 25%,#10273bd9 75%,transparent);padding:16px 54px;white-space:nowrap;color:#fff0c8}#mission-banner small{font-size:11px;letter-spacing:4px;display:block;margin-bottom:9px}#mission-banner strong{font-size:28px;letter-spacing:4px;font-weight:600}
.briefing{max-width:470px}#mission-select{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:18px 0 20px;max-width:420px}#mission-select button{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;min-height:76px;border:1px solid #709aab55;border-radius:7px;background:#10293cbf;padding:9px 8px}#mission-select button[aria-pressed=true]{border-color:#ffcb83;background:#ffcb8314}#mission-select b{font-size:17px;color:#ffe0ae;font-weight:500}#mission-select span{font-size:11px}#mission-select small{font-size:9px;color:#ffcf88;min-height:12px}#mission-select button:disabled{opacity:.46}#mission-select button:disabled small{color:#a3b4c2}.panel-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}#back-map{font-size:13px;background:transparent;border:1px solid #86a4b65e;padding:13px 19px;border-radius:6px;color:#bdced7;min-height:46px}
.result{justify-content:center;text-align:center;background:radial-gradient(ellipse at center,#0c2638ed 0%,#071627ad 55%,#07162744 100%)}.result .briefing{margin:0;padding:18px 24px;max-width:720px;width:100%}.result .orbit-mark{margin:0 auto 10px;font-size:50px;height:84px;display:flex;align-items:center;justify-content:center;gap:18px;color:#ffcf86}.victory .orbit-mark b{display:grid;place-items:center;width:84px;height:84px;border:2px solid #ffce86;border-radius:50%;font-size:53px;box-shadow:0 0 0 7px #ffcc8320,0 0 48px #ffcc8330;background:#b4853933}.medal-wings{font-size:47px;color:#d9ad69;opacity:.8}.result .mission-tag{font-size:12px;letter-spacing:2px;margin:12px 0}.result h1{font-size:54px;letter-spacing:3px;margin:0 0 12px;line-height:1.18}.victory h1{color:#ffe1a9}.result #panel-copy{font-size:14px;line-height:1.6;margin:0 auto 8px;max-width:510px}.result .panel-actions{justify-content:center;margin-top:20px}.result .launch{gap:24px;min-height:52px}.result .instructions{margin:14px 0 6px;font-size:11px;line-height:1.5}.result .record{margin:6px 0;font-size:10px;color:#adbfcb}#result-stars{font-size:48px;line-height:1.25;letter-spacing:10px;margin:8px 0 12px;color:#486073}#result-stars .earned{color:#ffce82;display:inline-block;text-shadow:0 0 25px #ffcc8355;animation:star-award .5s both;animation-delay:var(--delay)}#result-stats{display:grid;grid-template-columns:repeat(3,1fr);max-width:400px;margin:14px auto;gap:12px}#result-stats div{display:flex;flex-direction:column;gap:5px;border-right:1px solid #c1b7962d}#result-stats div:last-child{border:0}#result-stats strong{font-size:26px;color:#f4e2bd;font-weight:500;font-variant-numeric:tabular-nums}#result-stats span{font-size:11px;color:#9fb9c7}.defeat{background:radial-gradient(ellipse at 50% 48%,#3d2732ee,#101d2dde 65%,#102235bb)}.defeat h1,.defeat .mission-tag{color:#ffa58f}.defeat .orbit-mark{color:#ffac97}.broken-shield{clip-path:polygon(0 0,48% 0,42% 25%,65% 44%,44% 61%,55% 100%,15% 75%,0 30%,0 0,100% 0,100% 30%,85% 75%,55% 100%,70% 58%,51% 41%,65% 20%,60% 0);display:grid;place-items:center;background:#b471622e;border-top:3px solid #ffb19a;width:86px;height:92px;font-size:57px}.defeat .launch{background:#e8b6a3}.defeat #result-stats strong{color:#e7b9a7}.defeat .orbit-mark{margin-bottom:18px}
@keyframes star-award{from{opacity:0;transform:scale(.4) translateY(12px)}to{opacity:1;transform:none}}
@media(min-height:700px){.briefing h1{font-size:clamp(40px,4.5vw,68px)}.briefing .mission-tag{margin-bottom:16px}.briefing #panel-copy{margin-bottom:16px}.result h1{font-size:54px}}
@media(max-width:700px){.identity small{letter-spacing:1px}.route{display:none}#mission-banner{padding:14px 30px;top:25%}#mission-banner strong{font-size:22px;letter-spacing:2px}#mission-select{gap:5px;margin:16px 0}#mission-select button{padding:8px 5px;min-height:72px}.briefing h1{font-size:46px}.briefing{margin-left:8%;max-width:84%}.briefing .mission-tag{font-size:10px;letter-spacing:1px}.briefing .orbit-mark{font-size:27px}.briefing #panel-copy{font-size:13px}.briefing .instructions{font-size:10px}.briefing .launch{font-size:14px;padding:13px 20px}.result .briefing{margin:0;max-width:100%;padding:16px 18px}.result .orbit-mark{font-size:40px;height:70px}.victory .orbit-mark b{width:70px;height:70px;font-size:45px}.result h1{font-size:40px}.result .mission-tag{font-size:10px}.result #panel-copy{font-size:12px;max-width:310px}#result-stars{font-size:39px;letter-spacing:9px;margin:10px 0}#result-stats{gap:6px;margin:16px auto}#result-stats strong{font-size:24px}.result .panel-actions{gap:10px;margin-top:16px}.result .launch{gap:16px}#back-map{font-size:12px;padding:12px 14px}#boss-hud{top:79px;left:24%;width:52%}#boss-name{font-size:10px}#boss-value{font-size:10px}.defeat .broken-shield{height:74px;width:68px}}
@media(max-height:560px) and (orientation:landscape){.route{display:flex}.route strong{font-size:11px}.route span{font-size:9px}#shield-warning{font-size:9px;margin-top:4px}#boss-hud{top:12px;left:34%;width:32%}#boss-hud>div{margin-top:5px;height:6px}#boss-value{display:inline;margin-left:8px;font-size:10px}#mission-banner{top:31%;padding:10px 40px}#mission-banner strong{font-size:23px}.briefing{grid-template-columns:225px 270px;column-gap:30px;margin-left:7%;max-width:none}.briefing h1{font-size:36px;grid-row:2 / 4;margin:0}.briefing .mission-tag{margin:0 0 8px}.briefing #panel-copy{grid-row:1 / 3;font-size:11px;margin-bottom:10px}#mission-select{grid-column:1;grid-row:4 / 6;margin:10px 0 0;gap:4px}#mission-select button{min-height:54px;padding:5px 3px;gap:2px}#mission-select b{font-size:13px}#mission-select span{font-size:9px}#mission-select small{font-size:8px}.panel-actions{grid-column:2;grid-row:3}.briefing .instructions{grid-column:2;grid-row:4;margin-top:10px;font-size:9px}.briefing .record{grid-column:2;grid-row:5;margin-top:4px;font-size:9px}.briefing .launch{padding:10px 16px;font-size:13px;gap:28px}.result .briefing{display:grid;grid-template-columns:250px 340px;grid-template-rows:auto;column-gap:32px;max-width:680px;padding:6px 12px}.result .orbit-mark{grid-column:1;grid-row:1;height:45px;margin:0;font-size:30px}.victory .orbit-mark b{height:43px;width:43px;font-size:29px;box-shadow:0 0 0 4px #ffcc8320}.medal-wings{font-size:29px}.result .mission-tag{grid-column:1;grid-row:2;font-size:9px;margin:9px 0 6px}.result h1{grid-column:1;grid-row:3;font-size:32px;margin:0}.result #result-stars{grid-column:1;grid-row:4 / 6;font-size:33px;margin:6px 0 0}.result #result-stats{grid-column:2;grid-row:1 / 3;width:100%;margin:0 0 10px}.result #result-stats strong{font-size:23px}.result #panel-copy{grid-column:2;grid-row:3;margin:0 0 10px;font-size:11px;line-height:1.5}.result .panel-actions{grid-column:2;grid-row:4;margin:0;gap:8px}.result .launch{min-height:42px;padding:8px 14px;font-size:12px;gap:14px}.result #back-map{min-height:42px;padding:8px 12px;font-size:11px}.result .instructions{grid-column:2;grid-row:5;font-size:9px;margin:8px 0 0}.result .record{display:none}.broken-shield{height:46px;width:43px;font-size:30px}.defeat .orbit-mark{margin:0}.defeat #result-stats{grid-row:1 / 3}.defeat #panel-copy{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){#result-stars .earned{animation:none}#shield-bars i{transition:none}}

/* The same silhouettes and colours identify pickups, the guide and equipped weapons. */
.weapon{min-width:190px;border-left:3px solid var(--weapon-color,#ff4655);padding:5px 10px;border-radius:5px;transition:background .2s}.weapon.equipped{background:color-mix(in srgb,var(--weapon-color) 20%,transparent);box-shadow:0 0 22px color-mix(in srgb,var(--weapon-color) 20%,transparent)}.weapon-icon{display:block;width:42px;height:42px;flex:none}.weapon-icon svg{display:block;width:100%;height:100%}.weapon strong{color:var(--weapon-color);font-weight:700}.weapon small{margin-bottom:2px}#weapon-detail{display:block;font-size:10px;color:#aec1ce;margin-top:3px;white-space:nowrap}#supply-help{min-height:48px;background:#142d40;border:1px solid #668b9b77;border-radius:7px;padding:6px 14px;font-size:12px;color:#e0e9e9}#supply-help>span{color:#9eeabf}#supply-help small{display:block;font-size:10px;color:#aac5cc;margin-top:4px}
#supply-guide{width:min(820px,94vw);max-height:90dvh;padding:26px;background:#10263a;color:#e0eef1;border:1px solid #6f91a5;border-radius:18px;box-shadow:0 20px 100px #0008}#supply-guide::backdrop{background:#020c18cc}.guide-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.guide-heading small{color:#9ebfcb;font-size:12px}.guide-heading h2{font-size:25px;margin:7px 0 22px;letter-spacing:2px}#close-guide{align-self:flex-start;flex:none;width:44px;height:44px;border-radius:50%;background:#254354;font-size:30px}#supply-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.supply-card{padding:16px 8px 10px;text-align:center;border-radius:12px;background:#081c2c;border:1px solid color-mix(in srgb,var(--supply-color) 40%,transparent)}.supply-symbol{width:60px;height:60px;border:2px solid var(--supply-color);border-radius:12px;background:#142d41;margin:0 auto 12px;padding:5px}.supply-symbol svg{width:100%;height:100%}.repair-card .supply-symbol{border:0;background:#164a37;clip-path:polygon(0 10%,50% 0,100% 10%,95% 65%,75% 88%,50% 100%,25% 88%,5% 65%)}.supply-card strong{display:block;color:var(--supply-color);font-size:16px}.supply-card small{display:inline-block;margin-top:8px;font-size:11px;border-radius:5px;background:#1b384a;padding:3px 8px}.supply-card p{font-size:10px;line-height:1.5;color:#abc2cf;margin:8px 0 0}.guide-note{font-size:12px;line-height:1.9;color:#b9ccd5;margin:20px 0 0}
@media(max-width:700px){.control-deck{gap:8px;padding:8px 10px}.weapon{gap:5px;min-width:0;flex:1;padding:3px 5px}.weapon-icon{width:25px;height:32px}.weapon small{font-size:8px;letter-spacing:1px}.weapon strong{font-size:12px}#weapon-detail{display:none}#supply-help{width:72px;padding:4px;font-size:10px}#supply-help>span{display:block}#supply-help small{display:none}#pulse{min-width:0;width:147px;flex:none;gap:7px;padding:8px}#pulse strong{font-size:12px}#pulse small{font-size:8px}.pulse-icon{font-size:25px}#supply-guide{padding:18px}.guide-heading h2{font-size:20px;margin-bottom:18px}#supply-cards{grid-template-columns:repeat(2,1fr);gap:8px}.supply-card{padding:10px 5px}.supply-symbol{height:43px;width:43px;margin-bottom:6px}.supply-card strong{font-size:14px}.supply-card small{margin-top:5px}.repair-card{grid-column:1 / -1;display:grid;grid-template-columns:55px 1fr 1fr;align-items:center;text-align:left;column-gap:6px;padding:8px 16px}.repair-card .supply-symbol{grid-row:1 / 3;margin:0}.repair-card p{grid-column:2 / 4;margin:2px 0}.guide-note{font-size:11px;margin-top:14px}}
@media(max-height:560px) and (orientation:landscape){.weapon{min-width:190px}.weapon-icon{width:32px;height:32px}#weapon-detail{font-size:9px}#supply-guide{padding:16px 20px;max-height:96dvh}.guide-heading h2{font-size:20px;margin:4px 0 12px}.supply-card{padding:9px 5px}.supply-symbol{height:43px;width:43px;margin-bottom:6px}.guide-note{margin-top:10px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.weapon{transition:none}}
