:root{color-scheme:dark;--bg:#090d18;--panel:#0d1320;--line:#222c3d;--text:#e9eef7;--muted:#7f8da6;--mint:#a3ffe3;--mono:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 40%,#141c2b66,transparent 62%),var(--bg);color:var(--text);font-family:var(--sans);font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--mint);outline-offset:5px}button{border:0}button[hidden],[hidden]{display:none!important}.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;max-width:1520px;margin:auto;padding:0 60px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;font-size:12px;font-weight:800;letter-spacing:1.8px}.brand svg{width:29px;height:29px;fill:var(--mint)}.brand-light{font-weight:400;color:#a0aabd}.site-header nav{display:flex;align-items:center;gap:35px;height:100%;font:10px var(--mono);letter-spacing:1.7px}.nav-active{height:100%;display:grid;align-items:center;position:relative;color:var(--mint)}.nav-active:after{content:"";height:2px;position:absolute;bottom:-1px;left:-10px;right:-10px;background:var(--mint)}.nav-help{background:none;color:#9ba8bd;font:inherit;letter-spacing:inherit;padding:12px}.nav-help span{margin-left:8px}.system-status{display:flex;align-items:center;gap:8px;color:#a4b1c5;font:9px var(--mono);letter-spacing:1px}.system-status i,.arena-topline i,.auto-fire i,.launch-tag i{height:5px;width:5px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px #a3ffe355}.version{color:#4c5a70;margin-left:18px}main{max-width:1330px;padding:0 45px;margin:auto}.title-row{display:flex;align-items:center;justify-content:space-between;margin:35px 0 26px}.eyebrow{font:9px var(--mono);letter-spacing:2px;color:var(--muted);margin:0 0 10px}.small-star{color:var(--mint);margin-right:6px}h1{font-size:43px;letter-spacing:-1.8px;font-style:italic;line-height:.95;margin:0;font-weight:900}.title-dot{color:var(--mint)}.title-note{font:11px/1.8 var(--mono);color:#7b8ba3;margin:0 3px 0 0}.game-layout{display:grid;grid-template-columns:minmax(155px,1fr) minmax(300px,560px) minmax(190px,1.05fr);gap:34px;align-items:start}.left-rail,.right-rail{padding-top:6px}.rail-heading{display:flex;justify-content:space-between;align-items:center;color:#aab7cb;font:9px var(--mono);letter-spacing:1.5px;padding-bottom:20px;border-bottom:1px solid var(--line)}.rail-mark{color:#45536b;letter-spacing:0}.campaign{margin-top:27px;position:relative}.campaign:before{content:"";position:absolute;border-left:1px dashed #303c52;left:17px;top:27px;bottom:32px}.sector{display:flex;gap:14px;position:relative;margin-bottom:32px;opacity:.5}.sector.active{opacity:1}.sector.visited{opacity:.85}.sector-node{border:1px solid #344058;background:#0c1220;width:35px;height:35px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;font:11px var(--mono);color:#9caac1;z-index:1}.sector.active .sector-node{border-color:var(--mint);color:var(--mint);box-shadow:0 0 0 5px #a3ffe307}.sector-tag{font:7px var(--mono);letter-spacing:1.1px;color:#6d7e99}.active .sector-tag{color:var(--mint)}.sector h2{font-size:12px;margin:7px 0 5px;letter-spacing:.2px}.sector p{font:10px var(--mono);margin:0;color:#8190a8}.mission-note{border-left:2px solid #31465a;padding-left:14px;margin-top:37px}.tiny-label{font:8px var(--mono);color:#8292ae;letter-spacing:1.25px}.mission-note p{font:12px/1.9 var(--sans);margin:12px 0;color:#b7c3d7}.mission-cycle{font:9px var(--mono);color:#64738c}.record-card{background:linear-gradient(120deg,#18233566,#11192944);border:1px solid var(--line);margin-top:32px;padding:18px 15px}.record-card>div{display:flex;align-items:center;gap:9px;margin:10px 0}.record-card strong{font:24px var(--mono);letter-spacing:-1px}.record-icon{font-size:25px;color:var(--mint)}.record-caption{font:8px var(--mono);color:#63758e}.rail-bottom{display:flex;align-items:center;gap:10px;font:8px/1.8 var(--mono);letter-spacing:1px;color:#4e5e77;margin-top:40px}.rail-bottom strong{font-weight:400;color:#70809a}.orbit-icon{font-size:30px}.arena-section{min-width:0}.arena-topline{display:flex;justify-content:space-between;align-items:center;font:8px var(--mono);letter-spacing:1.5px;color:#8c9db8;margin:0 0 12px}.arena-topline>span:first-child{display:flex;align-items:center;gap:7px}.arena-topline>span:last-child{color:#5c6e8c}.arena{position:relative;aspect-ratio:3/4;background:#060b17;border:1px solid #334457;isolation:isolate;overflow:hidden;box-shadow:0 25px 80px #0005}#game{width:100%;height:100%;display:block;touch-action:none;user-select:none;outline-offset:-3px}.corner{position:absolute;width:15px;height:15px;border-color:#aecfcf;pointer-events:none;z-index:7}.corner-tl{top:0;left:0;border-left:2px solid;border-top:2px solid}.corner-tr{top:0;right:0;border-right:2px solid;border-top:2px solid}.corner-bl{bottom:0;left:0;border-left:2px solid;border-bottom:2px solid}.corner-br{bottom:0;right:0;border-right:2px solid;border-bottom:2px solid}.hud{position:absolute;top:0;left:0;right:0;padding:20px 20px 30px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#07101be6,transparent);pointer-events:none;z-index:4}.hud-score>span{display:block;font:7px var(--mono);letter-spacing:2px;color:#7d93af;margin-bottom:4px}.hud-score strong{font:20px var(--mono);letter-spacing:1px}.hud-wave{margin-left:auto;margin-right:28px;text-align:right}.hud-wave>span{font:8px var(--mono);letter-spacing:1.2px;color:#b9c9de}.wave-pips{display:flex;gap:5px;justify-content:flex-end;margin-top:9px}.wave-pips i{width:15px;height:2px;background:#384558}.wave-pips i.active{background:var(--mint);box-shadow:0 0 8px #a3ffe344}.icon-button{width:30px;height:30px;display:grid;place-items:center;background:#0b1825aa;border:1px solid #37485c;border-radius:50%;pointer-events:auto}.icon-button svg{width:13px;height:13px;fill:none;stroke:#d5e6f1;stroke-width:2}.hud-bottom{position:absolute;bottom:0;left:0;right:0;padding:35px 20px 19px;display:flex;justify-content:space-between;align-items:flex-end;background:linear-gradient(transparent,#07101be6);pointer-events:none;z-index:4}.hull>span{display:block;color:#7f98b5;font:7px var(--mono);letter-spacing:1.8px;margin-bottom:7px}.hull>div{display:flex;gap:5px}.hull i{width:19px;height:5px;transform:skewX(-20deg);background:var(--mint);box-shadow:0 0 7px #a3ffe333}.hull i.empty{background:#354251;box-shadow:none}.weapon-status{text-align:right;display:flex;flex-direction:column;gap:5px;font:8px var(--mono);color:var(--mint);letter-spacing:1px}.weapon-status>span:last-child{font-size:6px;letter-spacing:1.8px;color:#6b829e}.combo{font:italic 17px var(--mono);color:#ffcf86;align-self:center}.boss-hud{position:absolute;top:85px;left:12%;width:76%;z-index:4}.boss-hud>div:first-child{display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:1.7px;color:#ff99a9;margin-bottom:8px}.boss-track{height:4px;background:#462632}.boss-track>div{height:100%;background:#ff657f;box-shadow:0 0 12px #ff657f77;transition:width .08s}.wave-banner{position:absolute;top:32%;left:0;right:0;text-align:center;pointer-events:none;z-index:4;opacity:0;transition:opacity .25s;filter:drop-shadow(0 2px 12px #000)}.wave-banner.visible{opacity:1}.wave-banner>span{display:block;font:8px var(--mono);letter-spacing:3px;color:var(--mint)}.wave-banner>strong{display:block;font-size:34px;letter-spacing:1px;font-style:italic;margin:10px 0}.wave-banner>span:last-child{font-size:8px;color:#a1b4cf;letter-spacing:2px}.game-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#08101d15,#08101d44 35%,#08101d88 67%,#08101d00);display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;padding:24% 20px 21%;z-index:5;pointer-events:none}.game-overlay.paused,.game-overlay.gameover{background:#060d1bdb;justify-content:center;gap:35px;backdrop-filter:blur(6px)}.overlay-copy{pointer-events:auto}.launch-tag{display:inline-flex;align-items:center;gap:7px;font:7px var(--mono);letter-spacing:1.8px;color:#b7d4db;background:#1a343866;border:1px solid #49737755;padding:7px 10px}.launch-tag i{width:4px;height:4px}.overlay-copy h2{font-size:clamp(25px,3.2vw,48px);font-weight:900;font-style:italic;line-height:1.04;letter-spacing:-1.6px;margin:19px 0 17px;text-shadow:0 4px 30px #000b}.overlay-copy p{font:11px/1.8 var(--mono);color:#c6d4e3;letter-spacing:.2px}.overlay-actions{width:100%;max-width:300px;pointer-events:auto}.launch-button{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--mint);color:#0a2422;padding:17px 20px;font:700 10px var(--mono);letter-spacing:1.8px;box-shadow:0 0 30px #a3ffe316;transition:background .15s,transform .15s}.launch-button:hover{background:#cefff0;transform:translateY(-2px)}.launch-button>span:last-child{font-size:20px;line-height:12px}.launch-hint{display:block;font:6px var(--mono);letter-spacing:1.1px;color:#9bb0c3;margin-top:16px}.restart-button{background:none;border-bottom:1px solid #46566b;font:9px var(--mono);letter-spacing:1px;padding:10px 3px;margin-top:12px;color:#a6b6cc}.arena-controls{height:62px;border:1px solid var(--line);border-top:0;background:#0f1723;display:flex;align-items:center;padding:0 16px;gap:16px}.bomb-button{display:flex;align-items:center;gap:9px;background:none;padding:6px 0;font:8px var(--mono);letter-spacing:.5px}.bomb-glyph{font-size:27px;color:var(--mint)}.bomb-button strong{color:var(--mint);font-size:10px;margin-left:4px}.bomb-button kbd{font-size:6px;margin-left:4px}.auto-fire{font:7px var(--mono);letter-spacing:1px;display:flex;align-items:center;gap:5px;margin-left:auto;color:#aab9cb}.auto-fire span{color:#5e718b;margin-left:2px}.auto-fire i{width:4px;height:4px}.sound-button{background:none;padding:5px 0 5px 8px;color:#899bb4}.sound-button svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linejoin:round;stroke-linecap:round}.arena-caption{display:flex;align-items:center;gap:5px;color:#677d99;font:7px var(--mono);letter-spacing:.6px;margin:12px 0 0}.arena-caption>span:last-child{margin-left:auto;color:#3f526c}.caption-dot{width:3px;height:3px;background:#7389a6;border-radius:50%}.ship-card{border-bottom:1px solid var(--line);padding-bottom:19px}.ship-schematic{height:153px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,#31445a30,transparent 65%)}#ship-preview{width:100%;height:100%;object-fit:contain}.schematic-cross{position:absolute;color:#3c4c63;font:13px var(--mono)}.c1{top:18px;left:12px}.c2{bottom:15px;right:12px}.schematic-label{position:absolute;bottom:16px;left:13px;color:#405571;font:7px var(--mono);letter-spacing:1px}.ship-name{display:flex;justify-content:space-between;align-items:center;margin:1px 0 18px}.ship-name h2{font-size:17px;letter-spacing:1.5px;margin:0 0 6px}.ship-name p{font:7px var(--mono);letter-spacing:1.6px;margin:0;color:#7389a6}.ship-class{font:8px var(--mono);border:1px solid #3b4c62;padding:5px;color:#8c9fb9}.ship-stat{display:flex;justify-content:space-between;align-items:center;color:#7389a6;font:7px var(--mono);letter-spacing:1px}.ship-stat>div{display:flex;gap:4px}.ship-stat i{width:13px;height:3px;background:#7baca8}.ship-stat i.dim{background:#253043}.loadout-heading{display:flex;justify-content:space-between;align-items:center;margin:24px 0 9px}.loadout-heading>span:last-child{font:6px var(--mono);color:#536984;letter-spacing:.5px}.upgrade{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid #1c2739}.upgrade-icon{font:24px var(--mono);width:30px;height:34px;flex-shrink:0;display:grid;place-items:center;clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%)}.cyan{color:#9dffe9;background:#54d4bd16}.purple{color:#bbabff;background:#b196ff19}.amber{color:#ffd487;background:#ffcf8d16}.upgrade strong{font:8px var(--mono);letter-spacing:1px}.upgrade p{font:8px var(--mono);color:#7d91ac;margin:6px 0 0}.upgrade-code{font:8px var(--mono);color:#435670;margin-left:auto}.secondary-upgrades{display:flex;gap:12px;flex-wrap:wrap;margin:17px 0 25px;font:6px var(--mono);letter-spacing:.5px;color:#6f839f}.secondary-upgrades b{margin-right:4px;font:12px var(--mono)}.repair-icon{color:#a3ffc3}.nova-icon{color:#ffa1c6}.controls-card{border:1px solid var(--line);padding:16px 13px;background:#0d1523}.key-diagram{display:flex;align-items:center;justify-content:center;gap:12px;margin:16px 0 10px}.key-diagram>span{color:#4d617e;font:8px var(--mono)}.key-group>div{display:flex;justify-content:center;gap:3px;margin-bottom:3px}kbd{border:1px solid #34435a;background:#131e2e;color:#9aacc5;padding:4px 5px;min-width:20px;display:inline-block;text-align:center;font:9px var(--mono);border-radius:3px;box-shadow:0 2px #070c15}.controls-card>p{font:8px var(--mono);text-align:center;color:#869bb8;margin:12px 0 19px}.control-line{display:flex;align-items:center;justify-content:space-between;font:8px var(--mono);color:#7f91ab;margin:9px 0}.control-line kbd{font-size:7px;padding:4px 6px}.touch-note{border-top:1px solid var(--line);padding-top:13px;margin-top:15px;font:8px var(--mono);color:#6b829f;text-align:center}footer{display:flex;justify-content:space-between;padding:24px 0 28px;margin-top:24px;border-top:1px solid var(--line);font:8px var(--mono);letter-spacing:1.5px;color:#536781}footer a{color:#8598b4}footer a>span{margin-left:8px}dialog{max-width:540px;max-height:90dvh;background:#101a2b;border:1px solid #3d566c;color:var(--text);padding:35px;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#040914dd;backdrop-filter:blur(7px)}dialog h2{font-size:28px;letter-spacing:-.7px}dialog p,dialog li{font-size:13px;line-height:1.7;color:#a4b6cf}dialog ul{padding-left:19px}dialog li{margin:10px 0}dialog li strong{color:#d3e4ed}.dialog-close{position:absolute;top:10px;right:12px;background:none;font-size:25px;color:#8ba0bd;padding:5px}dialog .launch-button{margin-top:25px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.noscript{position:fixed;top:0;left:0;right:0;background:#6b2637;text-align:center;padding:20px;z-index:20}
@media(min-width:921px){.arena-section{width:min(100%,max(330px,calc((100dvh - 300px)*.75)));justify-self:center}}
@media(min-width:1450px){.game-layout{grid-template-columns:210px minmax(300px,560px) 230px;gap:42px}main{max-width:1300px}.game-layout{justify-content:center}}
@media(max-width:1150px){.site-header{padding:0 30px}.game-layout{gap:22px;grid-template-columns:minmax(150px,1fr) minmax(300px,500px) minmax(175px,1fr)}main{padding:0 28px}.system-status{font-size:7px}.sector{gap:9px}.sector h2{font-size:11px}.loadout-heading>span:last-child{display:none}.auto-fire span{display:none}.upgrade{gap:7px}.upgrade strong{font-size:7px}.upgrade p{font-size:7px}.key-diagram{gap:7px}kbd{min-width:17px;padding:4px}.right-rail{font-size:12px}.arena-controls{gap:12px}.bomb-button kbd{display:none}}
@media(max-width:920px){.left-rail,.right-rail{display:none}.game-layout{display:block}.arena-section{max-width:540px;margin:0 auto}.title-row{max-width:540px;margin:27px auto 23px}.title-note{font-size:9px}.system-status{display:none}.site-header{height:66px}.site-header nav{gap:20px}.brand{font-size:10px}.brand svg{width:25px;height:25px}.overlay-copy h2{font-size:45px}.auto-fire span{display:inline}.bomb-button kbd{display:inline}footer{max-width:540px;margin:25px auto 0;gap:12px;font-size:7px}.title-row h1{font-size:38px}}
@media(max-width:560px){.site-header{height:54px;padding:0 16px}.brand{font-size:8px;letter-spacing:1.1px;gap:7px}.brand svg{width:22px;height:22px}.site-header nav{font-size:8px;gap:10px;letter-spacing:.8px}.nav-help{padding:10px 0}.nav-help span{display:none}main{padding:0 12px}.title-row{margin:19px 1px 17px}.eyebrow{font-size:6px;letter-spacing:1.3px;margin-bottom:8px}.title-row h1{font-size:30px}.title-note{font-size:7px;line-height:1.7}.arena-topline{font-size:6px;margin-bottom:9px;letter-spacing:1px}.arena{max-height:none}.hud{padding:14px 13px 25px}.hud-score strong{font-size:16px}.hud-score>span{font-size:6px}.hud-wave{margin-right:14px}.hud-wave>span{font-size:7px}.icon-button{width:27px;height:27px}.wave-pips i{width:12px}.game-overlay{padding:25% 15px 20%}.overlay-copy h2{font-size:34px;letter-spacing:-1px;margin:15px 0 12px}.overlay-copy p{font-size:9px}.launch-tag{font-size:6px;letter-spacing:1px}.overlay-actions{max-width:250px}.launch-button{padding:15px 16px;font-size:9px}.launch-hint{font-size:5px;letter-spacing:.6px;margin-top:12px}.hud-bottom{padding:30px 14px 14px}.weapon-status{font-size:7px}.hull>span{font-size:6px}.hull i{width:16px;height:4px}.arena-controls{height:55px;padding:0 12px;gap:11px}.bomb-button{gap:6px;font-size:7px}.bomb-glyph{font-size:24px}.bomb-button kbd{display:none}.auto-fire{font-size:6px;letter-spacing:.4px}.auto-fire span{display:none}.arena-caption{font-size:5px;letter-spacing:.4px;margin-top:9px}.boss-hud{top:67px}.boss-hud>div:first-child{font-size:6px}.wave-banner>strong{font-size:27px}.wave-banner>span{font-size:6px;letter-spacing:2px}.wave-banner>span:last-child{font-size:6px}.combo{font-size:14px}footer{margin-top:19px;padding:17px 0 22px;font-size:5px;letter-spacing:.7px}dialog{width:calc(100% - 24px);padding:26px 23px}dialog h2{font-size:25px}dialog p,dialog li{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:560px){body.in-mission .title-row{display:none}body.in-mission .arena-section{margin-top:16px}}
@media(max-width:920px) and (max-height:600px) and (orientation:landscape){.site-header{height:44px}.title-row{display:none}.arena-section{width:calc((100dvh - 120px)*.75);min-width:0;margin-top:10px}.arena-controls{height:42px;padding:0 10px}.bomb-button{font-size:6px;gap:4px}.bomb-button kbd,.auto-fire,.arena-caption,footer{display:none}.sound-button{margin-left:auto}.hud{padding:10px}.hud-score strong{font-size:12px}.hud-score>span{font-size:5px}.hud-wave{margin-right:8px}.hud-wave>span{font-size:5px}.wave-pips{gap:3px;margin-top:5px}.wave-pips i{width:8px}.icon-button{width:20px;height:20px}.overlay-copy h2{font-size:22px;letter-spacing:-.7px;margin:10px 0}.launch-tag{font-size:4px;letter-spacing:.5px;padding:4px}.overlay-copy p{font-size:6px}.game-overlay{padding:23% 10px 18%}.game-overlay.paused,.game-overlay.gameover{gap:15px}.launch-button{padding:10px;font-size:6px;letter-spacing:.6px}.launch-hint{font-size:4px;letter-spacing:.1px;margin-top:6px}.hud-bottom{padding:20px 10px 10px}.weapon-status{font-size:5px}.weapon-status>span:last-child{font-size:4px;letter-spacing:.4px}.hull>span{font-size:5px}.hull i{width:10px;height:3px}.boss-hud{top:45px}.boss-hud>div:first-child{font-size:4px;letter-spacing:.5px}.wave-banner>strong{font-size:16px}.wave-banner>span,.wave-banner>span:last-child{font-size:4px;letter-spacing:1px}.arena-topline{font-size:5px;letter-spacing:.5px}.combo{font-size:9px}}

/* Keep play gestures inside the field and messages inside the HUD. */
html { overscroll-behavior: none; }
.arena { touch-action: none; overscroll-behavior: none; container-type: inline-size; }
.hud { height: 13%; padding: 12px 16px 0; align-items: flex-start; background: none; }
.hud-wave { margin-top: 4px; }
.wave-banner { top: 9.5%; left: 12%; right: 12%; filter: none; }
.wave-banner > strong { margin: 0; font: 8px var(--mono); line-height: 12px; letter-spacing: 1.4px; color: var(--mint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.boss-hud { top: 9.2%; left: 22%; width: 56%; }
.boss-hud > div:first-child { margin-bottom: 4px; font-size: 6px; letter-spacing: .8px; }
.boss-track { height: 3px; }
.boss-hud:not([hidden]) + .wave-banner { display: none; }
.hud-bottom { background: none; height: 8%; padding: 0 16px 13px; }
.game-overlay { background: linear-gradient(180deg, #0c142e22, #07101e44); }
.game-overlay.idle { padding: 0 20px 22px; justify-content: flex-end; }
body:not(.in-mission) .hud, body:not(.in-mission) .hud-bottom { visibility: hidden; }
.game-overlay.paused, .game-overlay.gameover { padding: 25px; }
.overlay-copy h2 { max-width: 100%; font-size: clamp(24px, 3vw, 38px); line-height: 1.12; letter-spacing: -.8px; overflow-wrap: anywhere; }
.overlay-copy p { max-width: 290px; margin: 0 auto; }
.overlay-secondary { display: flex; gap: 25px; justify-content: center; }
.selected-mission { display: block; margin-bottom: 12px; font: 7px var(--mono); letter-spacing: 1.2px; color: #c1dedb; }
.campaign-view { position: absolute; inset: 0; pointer-events: auto; }
.map-heading { position: absolute; top: 25px; left: 12px; right: 12px; }
.map-heading .eyebrow { display: block; line-height: 10px; margin: 0; }
.map-heading h2 { font: italic 900 25px/1.1 var(--sans); letter-spacing: -.6px; margin: 8px 0; }
.map-heading p { font: 8px var(--mono); color: #8fa6c1; margin: 0; }
.sector-trail { position: absolute; top: 112px; bottom: 140px; left: 7%; right: 7%; }
.sector-trail > svg, #map-nodes { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.sector-trail path { fill: none; stroke: url(#trail-gradient); stroke-width: 2; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 5px #68d6ca66); }
.map-node { position: absolute; transform: translate(-50%, -50%); width: 52px; height: 52px; padding: 0; border: 1px solid #5b8fa5; border-radius: 50%; background: radial-gradient(circle at 30% 20%, #1e3e50, #0b172b 72%); display: grid; place-items: center; color: #a8d5e2; box-shadow: 0 0 0 5px #77c8d009, 0 0 25px #051223; }
.map-node.selected { color: var(--mint); border: 2px solid var(--mint); box-shadow: 0 0 0 6px #a3ffe30b, 0 0 28px #6afbd533; }
.map-node.cleared { color: #a3ffe3; border-color: #5bc1a4; }
.map-node.locked { opacity: .5; border-color: #3b4b68; background: #111b2e; }
.map-number { font: 18px var(--mono); }
.map-number svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; }
.map-node.locked .map-node-label > span { display: none; }
.map-node.locked .map-node-label small { margin-top: 5px; }
.map-node-label { position: absolute; left: calc(100% + 13px); width: 125px; text-align: left; pointer-events: none; }
.caption-left .map-node-label { left: auto; right: calc(100% + 13px); text-align: right; }
.map-node-label strong, .map-node-label span, .map-node-label small { display: block; white-space: nowrap; }
.map-node-label strong { font: 7px var(--mono); letter-spacing: 1.2px; color: #b1c7df; }
.map-node-label span { font: 10px var(--sans); margin: 5px 0; color: #dfebf6; }
.map-node-label small { font: 6px var(--mono); letter-spacing: .8px; color: #7d99b7; }
.map-node.selected small { color: var(--mint); }
.game-overlay.idle .overlay-actions { z-index: 1; }
@container (min-width: 260px) and (max-width: 380px) {
  .map-node { width: 34px; height: 34px; }
  .map-number { font-size: 13px; }
  .map-node-label { width: 95px; left: calc(100% + 10px); }
  .caption-left .map-node-label { right: calc(100% + 10px); left: auto; }
  .map-node-label strong { font-size: 6px; letter-spacing: .8px; }
  .map-node-label span { font-size: 8px; margin: 3px 0; }
  .map-node-label small { font-size: 5px; letter-spacing: .5px; }
}
@media (max-width: 920px) {
  body.in-mission { position: fixed; inset: 0; height: var(--viewport-height, 100dvh); width: 100%; overflow: hidden; }
  /* Keep keyboard focus inside the visible mission when page scrolling is locked. */
  body.in-mission .game-guide { display: none; }
  .title-row, footer, .arena-caption { display: none; }
  main { padding-top: 12px; }
  .arena-section, body.in-mission .arena-section { width: min(100%, calc((var(--viewport-height, 100dvh) - 160px) * .75)); margin: 0 auto; }
  .arena-topline { height: 12px; margin: 0 0 8px; }
  .arena-controls { height: 56px; }
  .game-overlay.idle { padding: 0 15px 19px; }
  .map-heading { top: 20px; }
  .map-heading h2 { font-size: 23px; }
  .sector-trail { top: 100px; bottom: 132px; }
  .map-node { width: 44px; height: 44px; }
  .map-number { font-size: 16px; }
  .map-node-label { width: 105px; left: calc(100% + 10px); }
  .caption-left .map-node-label { right: calc(100% + 10px); left: auto; }
  .map-node-label span { font-size: 9px; margin: 4px 0; }
  .map-node-label strong { font-size: 6px; letter-spacing: 1px; }
  .map-node-label small { font-size: 5px; }
  .selected-mission { font-size: 6px; margin-bottom: 10px; }
  .launch-hint { font-size: 6px; letter-spacing: .6px; margin-top: 12px; }
  .icon-button { width: 38px; height: 38px; }
  .hud { padding: 8px 12px 0; }
  .hud-score strong { font-size: 15px; }
  .hud-score > span { font-size: 6px; margin-bottom: 3px; }
  .hud-wave { margin-right: 13px; }
  .hud-wave > span { font-size: 7px; }
  .wave-banner > strong { font-size: 6px; letter-spacing: 1px; }
  .hud-bottom { padding: 0 12px 10px; }
  .overlay-copy h2 { font-size: 29px; }
}
@media (max-width: 920px) and (max-height: 600px) {
  .site-header { height: 44px; }
  main { padding-top: 8px; }
  .arena-section, body.in-mission .arena-section { width: min(100%, calc((var(--viewport-height, 100dvh) - 124px) * .75)); }
  .arena-controls { height: 44px; }
  .map-heading { top: 12px; }
  .map-heading h2 { font-size: 18px; }
  .map-heading p { display: none; }
  .sector-trail { top: 70px; bottom: 112px; }
  .map-node { width: 34px; height: 34px; }
  .map-number { font-size: 13px; }
  .map-node-label { width: 90px; }
  .map-node-label span { font-size: 7px; }
  .selected-mission { font-size: 5px; }
  .game-overlay.idle { padding-bottom: 14px; }
  .launch-button { padding: 12px; font-size: 8px; }
  .launch-hint { font-size: 5px; margin-top: 9px; }
}
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  .map-heading { top: 8px; }
  .map-heading h2 { font-size: 13px; margin: 4px 0; }
  .map-heading .eyebrow { font-size: 4px; }
  .sector-trail { top: 48px; bottom: 85px; left: 12%; right: 12%; }
  .map-node { width: 22px; height: 22px; }
  .map-number { font-size: 8px; }
  .map-node-label { width: 60px; left: calc(100% + 5px); }
  .caption-left .map-node-label { right: calc(100% + 5px); }
  .map-node-label strong { font-size: 4px; letter-spacing: 0; }
  .map-node-label span { font-size: 5px; margin: 2px 0; }
  .map-node-label small { display: none; }
  .selected-mission { font-size: 4px; letter-spacing: .1px; margin-bottom: 6px; }
  .game-overlay.idle { padding: 0 10px 10px; }
  .launch-button { font-size: 6px; padding: 8px; }
  .launch-hint { font-size: 4px; letter-spacing: 0; margin-top: 6px; }
  .hud { padding: 4px 7px 0; }
  .hud-score strong { font-size: 10px; }
  .hud-score > span, .hud-wave > span { font-size: 4px; }
  .hud-wave { margin: 0 8px 0 auto; }
  .icon-button { width: 22px; height: 22px; }
  .wave-banner > strong { font-size: 4px; line-height: 7px; letter-spacing: .5px; }
  .boss-hud > div:first-child { font-size: 4px; margin-bottom: 2px; }
  .boss-track { height: 2px; }
  .game-overlay.paused, .game-overlay.gameover { padding: 12px; gap: 12px; }
  .overlay-copy h2 { font-size: 18px; }
  .overlay-copy p { font-size: 6px; }
  .restart-button { font-size: 5px; padding: 6px 0; }
  .overlay-secondary { gap: 12px; }
}

/* Run decisions share the arena, with combat controls kept outside the flight path. */
.mode-switch { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid #344258; background: #080f20; }
.mode-switch button { background: transparent; color: #8b9bb3; font: 8px var(--mono); letter-spacing: 1px; padding: 9px 13px; min-height: 32px; }
.mode-switch button[aria-pressed="true"] { background: #a3ffe31a; color: var(--mint); }
.mode-switch button span { color: #bba1ff; margin-left: 6px; }
.map-heading { top: 21px; }
.map-heading h2 { margin: 7px 0 12px; }
.sector-trail { top: 125px; bottom: 207px; }
.game-overlay.idle { padding-bottom: 19px; }
.overlay-actions { max-width: 340px; }
.starter-picker { text-align: left; margin-bottom: 14px; }
.starter-picker > .tiny-label { font-size: 7px; display: block; margin-bottom: 7px; }
.starter-picker > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.starter-picker button { display: grid; grid-template-columns: 22px 1fr; align-items: center; text-align: left; gap: 2px 4px; min-height: 53px; padding: 7px; background: #0d1a2b; border: 1px solid #33475f; color: #a8bad2; }
.starter-picker button b { grid-row: span 2; color: #9eeedd; font-size: 21px; font-weight: 400; text-align: center; }
.starter-picker button strong { font: 8px var(--mono); letter-spacing: 1px; }
.starter-picker button small { font: 7px/1.3 var(--mono); color: #8ba1b9; }
.starter-picker button[aria-pressed="true"] { color: #d2fff0; border-color: #90ead1; background: #16403c88; box-shadow: inset 0 0 20px #9bffe30a; }
.starter-picker button:disabled { opacity: .65; }
.starter-picker button:disabled[aria-pressed="true"] { opacity: 1; }
.daily-brief { position: absolute; top: 124px; bottom: 212px; left: 15px; right: 15px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.daily-orbit { font: 55px/1 var(--mono); color: #b49bff; text-shadow: 0 0 28px #a381ff66; }
.daily-brief h3 { margin: 0; font: 13px var(--mono); letter-spacing: 2px; }
.daily-brief p { margin: 0; font: 9px/1.7 var(--mono); color: #b0bfd4; }
.daily-brief strong { color: var(--mint); font: 11px var(--mono); }
.daily-brief > span:last-child { font: 7px var(--mono); letter-spacing: 1px; color: #c2a9ff; }
.arena-controls { gap: 14px; }
.overdrive-button { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex: 1; min-height: 41px; padding: 8px 12px 13px; max-width: 230px; margin-left: auto; background: #131c30; border: 1px solid #3d4d70; font: 8px var(--mono); letter-spacing: .7px; color: #c5b6e9; }
.overdrive-button:disabled { opacity: .78; }
.overdrive-button strong { color: #d6d0ff; margin-left: 7px; font-size: 9px; }
.overdrive-button kbd { min-width: 18px; font-size: 7px; padding: 2px 4px; }
.overdrive-button > i { position: absolute; height: 3px; left: 0; right: 0; bottom: 0; background: #26314b; overflow: hidden; }
.overdrive-button > i > b { display: block; height: 100%; width: 0; background: #ad8bff; box-shadow: 0 0 12px #b29aff; }
.overdrive-button.ready { background: #a68aff25; border-color: #b79dff; box-shadow: 0 0 20px #b18aff22; color: #fff; }
.overdrive-button.active { background: #8cffe525; border-color: #a3ffe3; color: #bffff0; }
.overdrive-button.active > i > b { width: 100% !important; background: var(--mint); }
.run-build-card { border: 1px solid #35435b; background: linear-gradient(125deg,#17263888,#231b3d44); margin-top: 20px; padding: 14px; }
.run-build-card p { color: #d0f4ef; font: 10px/1.8 var(--mono); margin: 9px 0; }
.run-build-card > span:last-child { color: #8297b4; font: 6px/1.8 var(--mono); letter-spacing: .7px; }
.game-overlay.upgrade { padding: 20px; background: #070e1beF; backdrop-filter: blur(5px); justify-content: center; pointer-events: auto; }
.reward-panel { width: 100%; max-width: 420px; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; text-align: left; padding: 4px; scrollbar-width: thin; scrollbar-color: #557687 #101a2b; }
.reward-panel h2 { font: italic 900 27px/1.1 var(--sans); letter-spacing: -.6px; margin: 9px 0; }
.reward-panel > p { font: 10px/1.6 var(--mono); color: #a5b9cd; margin: 0 0 14px; }
.upgrade-options { display: grid; gap: 8px; }
.build-option { position: relative; min-height: 75px; text-align: left; padding: 11px 57px 11px 13px; border: 1px solid #3a4d65; background: linear-gradient(120deg,#14283b,#171b30); color: #d2f7ed; }
.build-option strong { display: block; font: 12px var(--sans); margin-bottom: 6px; }
.build-option > span { display: block; font: 9px/1.5 var(--mono); color: #a6b8cf; }
.build-option > small { position: absolute; right: 10px; top: 13px; font: 6px var(--mono); letter-spacing: .6px; color: #7ca8b9; }
.build-option[aria-pressed="true"] { border-color: var(--mint); background: linear-gradient(120deg,#1c4c48,#182b3b); box-shadow: inset 3px 0 var(--mint); }
.route-options { margin: 14px 0; }
.route-options > .tiny-label { display: block; margin-bottom: 7px; font-size: 7px; }
.route-options > div { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.route-options button { min-height: 58px; background: #0c1929; border: 1px solid #32485d; padding: 9px; text-align: left; }
.route-options button strong { display: block; font: 7px var(--mono); letter-spacing: .7px; margin-bottom: 5px; }
.route-options button span { display: block; font: 8px/1.5 var(--mono); color: #8fa7c0; }
.route-options button[aria-pressed="true"] { border-color: var(--mint); color: var(--mint); }
.route-options button:last-child[aria-pressed="true"] { border-color: #ffb58e; color: #ffb58e; }
.reward-panel .launch-button { margin-top: 12px; }
.reward-hint { display: block; text-align: center; font: 6px/1.5 var(--mono); letter-spacing: .6px; color: #7491a4; margin-top: 10px; }
body.choosing-upgrade .arena { touch-action: pan-y; }
.game-overlay.victory { background: #070e1bed; justify-content: center; gap: 30px; backdrop-filter: blur(5px); padding: 25px; }
.boss-hud > div:first-child > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-right: 8px; }
.mission-intel { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font: 8px/1.5 var(--mono); color: #9bb5c8; margin: -3px 0 12px; }
.sector-trail { top: 130px; bottom: 235px; }
.route-options > .encounter-preview { display: block; padding: 9px 10px; border-left: 2px solid #5a8e9d; background: #142a3a66; margin-bottom: 9px; }
.encounter-preview > strong { display: block; font: 8px/1.4 var(--mono); letter-spacing: .4px; color: #c5eee4; }
.encounter-preview > p { font: 9px/1.5 var(--mono); color: #a0b9cd; margin: 5px 0; }
.encounter-preview > span { display: block; font: 7px/1.5 var(--mono); color: #e2cea9; }
@media (max-width: 560px) {
  .overlay-actions { max-width: 310px; }
  .mode-switch button { font-size: 7px; padding: 8px 12px; }
  .map-heading { top: 17px; }
  .map-heading h2 { font-size: 22px; }
  .sector-trail { top: 122px; bottom: 222px; }
  .mission-intel { font-size: 7px; margin-bottom: 10px; }
  .encounter-preview > strong { font-size: 7px; }
  .encounter-preview > p { font-size: 8px; }
  .encounter-preview > span { font-size: 6px; }
  .starter-picker { margin-bottom: 11px; }
  .starter-picker button { min-height: 48px; padding: 6px; grid-template-columns: 17px 1fr; }
  .starter-picker button b { font-size: 18px; }
  .starter-picker button strong { font-size: 7px; }
  .starter-picker button small { font-size: 6px; }
  .map-node { width: 36px; height: 36px; }
  .map-node-label { width: 97px; }
  .map-number { font-size: 13px; }
  .arena-controls { gap: 10px; }
  .overdrive-button { min-height: 38px; padding: 7px 9px 11px; font-size: 7px; letter-spacing: .3px; max-width: 185px; }
  .overdrive-button strong { font-size: 8px; margin-left: 4px; }
  .overdrive-button kbd { display: none; }
  .daily-brief { top: 112px; bottom: 198px; gap: 9px; }
  .daily-orbit { font-size: 40px; }
  .daily-brief h3 { font-size: 12px; }
  .daily-brief p { font-size: 8px; }
  .game-overlay.upgrade { padding: 14px; }
  .reward-panel h2 { font-size: 23px; }
  .reward-panel > p { font-size: 9px; margin-bottom: 10px; }
  .build-option { min-height: 66px; padding: 10px 50px 10px 11px; }
  .build-option strong { font-size: 11px; margin-bottom: 4px; }
  .build-option > span { font-size: 8px; }
  .route-options { margin: 10px 0; }
  .route-options button { min-height: 56px; padding: 8px; }
  .route-options button strong { font-size: 6px; letter-spacing: .4px; }
  .route-options button span { font-size: 7px; }
  .reward-hint { font-size: 5px; }
}
@media (max-width: 920px) and (max-height: 600px) {
  .map-heading { top: 12px; }
  .map-heading h2 { font-size: 18px; margin: 5px 0 8px; }
  .mode-switch button { padding: 6px 10px; min-height: 27px; font-size: 6px; }
  .sector-trail { top: 104px; bottom: 201px; }
  .starter-picker button { min-height: 43px; }
  .starter-picker > .tiny-label { font-size: 6px; margin-bottom: 5px; }
  .daily-brief { top: 94px; bottom: 184px; gap: 6px; }
  .daily-orbit { font-size: 29px; }
  .daily-brief p { font-size: 7px; }
  .daily-brief h3 { font-size: 9px; }
  .daily-brief > span:last-child { font-size: 6px; }
  .overdrive-button { min-height: 33px; }
}
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  .arena-section, body.in-mission .arena-section { width: min(48vw, calc((var(--viewport-height, 100dvh) - 96px) * .75)); }
  .site-header { height: 36px; }
  main { padding-top: 5px; }
  .arena-topline { margin-bottom: 4px; }
  .map-heading { top: 7px; }
  .map-heading h2 { font-size: 12px; margin: 3px 0 5px; }
  .mode-switch { padding: 2px; }
  .mode-switch button { font-size: 5px; padding: 4px 6px; min-height: 20px; }
  .sector-trail { top: 74px; bottom: 143px; }
  .mission-intel { font-size: 5px; line-height: 1.4; margin: 0 0 5px; -webkit-line-clamp: 1; }
  .map-node { width: 23px; height: 23px; }
  .map-node-label { width: 60px; }
  .map-number { font-size: 9px; }
  .starter-picker { margin-bottom: 7px; }
  .starter-picker > .tiny-label, .starter-picker button small { display: none; }
  .starter-picker button { display: flex; justify-content: center; gap: 4px; min-height: 28px; padding: 4px; }
  .starter-picker button b { font-size: 12px; }
  .starter-picker button strong { font-size: 5px; }
  .game-overlay.idle { padding: 0 12px 9px; }
  .daily-brief { top: 70px; bottom: 132px; gap: 5px; }
  .daily-orbit { display: none; }
  .daily-brief p { font-size: 6px; }
  .daily-brief strong { font-size: 8px; }
  .overdrive-button { min-height: 29px; font-size: 5px; padding: 5px 6px 9px; gap: 3px; }
  .overdrive-button strong { font-size: 6px; margin-left: 3px; }
  .arena-controls { gap: 8px; padding: 0 8px; height: 40px; }
  .bomb-glyph { font-size: 19px; }
  .bomb-button { font-size: 5px; }
  .game-overlay.upgrade { padding: 10px; }
  .reward-panel { max-height: 100%; }
  .reward-panel h2 { font-size: 17px; }
}

/* Hangar choices replace the map while Launch stays in its own fixed area. */
.hangar-toggle { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 36px; padding: 7px 10px; margin-bottom: 10px; border: 1px solid #426174; background: #142735; text-align: left; font: 9px var(--mono); color: #b8d8dd; }
.hangar-toggle strong { font-size: 7px; font-weight: 400; letter-spacing: .5px; color: var(--mint); white-space: nowrap; }
.hangar-toggle[aria-expanded="true"] { border-color: var(--mint); background: #1b3b3b; }
.sector-trail { bottom: 280px; }
.daily-brief { bottom: 265px; }
.hangar-panel { position: absolute; top: 20px; bottom: 278px; left: 20px; right: 20px; padding: 4px 5px 10px; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; scrollbar-width: thin; scrollbar-color: #557687 #101a2b; text-align: left; }
body.hangar-open .arena { touch-action: pan-y; }
.hangar-panel h2 { margin: 5px 0 12px; font: italic 900 23px/1.1 var(--sans); letter-spacing: -.5px; }
.ship-picker, .livery-picker { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.ship-picker button { min-width: 0; min-height: 48px; border: 1px solid #3e5267; padding: 8px 5px; background: #112031; text-align: center; }
.ship-picker strong, .livery-picker strong { display: block; font: 10px var(--mono); letter-spacing: .3px; }
.ship-picker small, .livery-picker small { display: block; font: 8px/1.6 var(--mono); color: #9db2c7; margin-top: 4px; }
.ship-picker button[aria-pressed="true"], .livery-picker button[aria-pressed="true"] { border-color: var(--mint); color: #d8fff3; background: #1a403e; }
.ship-picker button:disabled[aria-pressed="true"] { opacity: 1; }
.ship-detail { font: 9px/1.6 var(--mono); color: #b1c7d6; margin: 9px 0 15px; }
.livery-heading { display: flex; justify-content: space-between; gap: 6px; margin-bottom: 7px; }
.livery-heading > span:last-child { font: 7px var(--mono); color: #748fa7; }
.livery-picker button { min-height: 46px; padding: 6px 4px; display: flex; align-items: center; justify-content: center; gap: 6px; background: #112031; border: 1px solid #3e5267; }
.livery-picker i { display: block; flex-shrink: 0; width: 12px; height: 24px; transform: skew(-12deg); background: linear-gradient(#c7fff4, #53c6d8); box-shadow: 0 0 12px #79f9e622; }
.livery-picker .solar i { background: linear-gradient(#ffecc6, #ff8b45); }
.livery-picker .void i { background: linear-gradient(#e9d4ff, #9474f4); }
.livery-detail { font: 9px/1.6 var(--mono); color: #8fa6bd; margin: 9px 0 0; }
.arena-controls { gap: 9px; }
.dodge-button { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 41px; padding: 6px 8px; background: #142330; border: 1px solid #3d5969; font: 7px var(--mono); letter-spacing: .3px; }
.dodge-button strong { display: block; margin-top: 3px; font-size: 7px; color: #a7bfd2; font-weight: 400; }
.dodge-button.ready { border-color: #83bcb9; }
.dodge-button.ready strong { color: var(--mint); }
.dodge-button kbd { font-size: 6px; padding: 2px 3px; }
.overdrive-button { min-width: 0; gap: 5px; padding-left: 8px; padding-right: 8px; }
.sound-button { min-width: 26px; min-height: 44px; padding-left: 3px; flex-shrink: 0; }
.sector-trail.horizontal > svg { display: none; }
.sector-trail.horizontal:before { content: ""; position: absolute; top: 27%; left: 20%; right: 20%; height: 1px; background: linear-gradient(90deg,#a3ffe3,#577da366); }
.sector-trail.horizontal .map-node-label, .sector-trail.horizontal .caption-left .map-node-label { top: calc(100% + 6px); left: 50%; right: auto; width: 82px; text-align: center; transform: translateX(-50%); }
.sector-trail.horizontal .map-node-label span { overflow: hidden; text-overflow: ellipsis; }
.sector-trail.horizontal .map-node-label small { display: none; }
@media (max-width: 560px) {
  .hangar-toggle { min-height: 34px; padding: 7px 8px; margin-bottom: 8px; }
  .sector-trail { bottom: 264px; }
  .daily-brief { bottom: 252px; }
  .hangar-panel { top: 15px; bottom: 261px; left: 12px; right: 12px; }
  .hangar-panel h2 { font-size: 20px; margin-bottom: 10px; }
  .ship-picker, .livery-picker { gap: 4px; }
  .ship-picker strong, .livery-picker strong { letter-spacing: 0; }
  .ship-detail { margin-bottom: 12px; }
  .livery-heading .tiny-label { font-size: 8px; }
  .livery-picker button { gap: 4px; }
  .livery-picker i { width: 8px; height: 21px; }
  .arena-controls { padding: 0 8px; gap: 6px; }
  .dodge-button { min-height: 44px; min-width: 54px; padding: 4px 5px; font-size: 7px; }
  .dodge-button kbd { display: none; }
  .overdrive-button { min-height: 44px; padding: 5px 6px 9px; font-size: 6px; }
  .overdrive-button strong { display: block; margin: 3px 0 0; font-size: 7px; }
  .bomb-button { min-height: 44px; }
}
@media (max-width: 920px) and (max-height: 600px) {
  .hangar-toggle { min-height: 29px; margin-bottom: 6px; }
  .sector-trail { top: 98px; bottom: 226px; }
  .daily-brief { bottom: 227px; }
  .hangar-panel { top: 12px; bottom: 235px; }
  .hangar-panel h2 { font-size: 17px; }
  .dodge-button { min-height: 44px; font-size: 6px; }
  .dodge-button kbd { display: none; }
  .dodge-button strong { font-size: 6px; }
  .overdrive-button { min-height: 44px; }
}
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  .arena-section, body.in-mission .arena-section { width: min(48vw, calc((var(--viewport-height, 100dvh) - 140px) * .75)); }
  .arena-controls { height: 80px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 7px; padding: 4px 7px; }
  .bomb-button, .dodge-button, .overdrive-button, .sound-button { min-height: 32px; margin: 0; width: 100%; justify-content: center; }
  .bomb-button { font-size: 6px; }
  .bomb-glyph { font-size: 19px; }
  .sound-button { padding: 0; }
  .overdrive-button { font-size: 6px; padding: 3px 4px 6px; max-width: none; }
  .overdrive-button strong { display: inline; margin-left: 3px; font-size: 6px; }
  .hangar-toggle { min-height: 28px; padding: 5px; flex-wrap: wrap; gap: 3px; }
  .sector-trail { top: 71px; bottom: 134px; }
  .sector-trail.horizontal .map-node-label, .sector-trail.horizontal .caption-left .map-node-label { width: 48px; top: calc(100% + 3px); }
  .sector-trail.horizontal .map-node-label span { font-size: 4px; margin: 2px 0 0; }
  .daily-brief { top: 68px; bottom: 170px; }
  .hangar-panel { top: 7px; bottom: 171px; left: 7px; right: 7px; }
  .hangar-panel h2 { font-size: 12px; }
  .ship-picker, .livery-picker { grid-template-columns: 1fr; }
  .ship-picker button { padding: 6px; }
  .livery-heading { flex-direction: column; }
  .livery-picker button { flex-direction: row; }
}

/* Optional feedback controls stay reachable in the scrolling flight manual. */
.feedback-settings { margin: 22px 0; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.feedback-settings h3 { margin: 0 0 12px; font: 10px var(--mono); letter-spacing: 1.5px; color: var(--mint); }
.feedback-setting { display: grid; grid-template-columns: minmax(145px, 1fr) 1.4fr; align-items: center; gap: 12px; margin-top: 10px; }
.feedback-setting button { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 12px; background: #142330; border: 1px solid #3d5969; font: 10px var(--mono); letter-spacing: .5px; }
.feedback-setting button[aria-pressed="true"] { border-color: var(--mint); }
.feedback-setting button strong { font-size: 9px; color: var(--mint); }
.feedback-setting p { margin: 0; font: 11px/1.6 var(--mono); color: #acbcd0; }
@media (max-width: 560px) { .feedback-setting { grid-template-columns: 1fr; gap: 6px; margin-top: 16px; } }
/* Size setup content from the actions' real height instead of guessed map offsets. */
.game-overlay.idle { display: grid; grid-template-rows: minmax(0, 1fr) auto; align-items: stretch; justify-content: normal; }
.game-overlay.idle .campaign-view { position: relative; inset: auto; width: 100%; min-height: 0; overflow: hidden; }
.game-overlay.idle .overlay-actions { justify-self: center; z-index: auto; }
.game-overlay.idle .sector-trail { top: 130px; bottom: 16px; }
.game-overlay.idle .hangar-panel { top: 16px; bottom: 12px; left: 0; right: 0; }
.game-overlay.idle .daily-brief { top: 124px; bottom: 12px; overflow-y: auto; justify-content: flex-start; overscroll-behavior: contain; touch-action: pan-y; scrollbar-width: thin; }
.game-overlay.idle .launch-button { min-height: 44px; }
body:not(.in-mission) .arena { touch-action: pan-y; }
@media (max-width: 560px) {
  .game-overlay.idle .sector-trail { top: 122px; bottom: 12px; }
  .game-overlay.idle .hangar-panel { top: 15px; bottom: 10px; }
  .game-overlay.idle .daily-brief { top: 112px; bottom: 10px; }
}
@media (max-width: 920px) and (max-height: 600px) {
  .game-overlay.idle .sector-trail { top: 98px; bottom: 10px; }
  .game-overlay.idle .hangar-panel { top: 12px; bottom: 8px; }
  .game-overlay.idle .daily-brief { top: 94px; bottom: 8px; }
}
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  .game-overlay.idle .map-heading > .eyebrow, .game-overlay.idle .map-heading h2, .game-overlay.idle .launch-hint { display: none; }
  .game-overlay.idle .sector-trail { top: 44px; bottom: 10px; }
  .game-overlay.idle .hangar-panel { top: 7px; bottom: 8px; }
  .game-overlay.idle .daily-brief { top: 40px; bottom: 8px; }
}

/* Keep flight information readable on dark panels and bright nebula artwork. */
:root { --muted: #b4c2d7; --line: #344258; }
body.controller-active button:focus { outline: 2px solid var(--mint); outline-offset: 5px; }
.title-note, .mission-cycle, .record-caption, .rail-bottom, .rail-bottom strong,
.rail-mark, .version, .arena-topline > span:last-child, .arena-caption,
.arena-caption > span:last-child, .ship-name p, .ship-class, .ship-stat,
.loadout-heading > span:last-child, .upgrade p, .upgrade-code,
.secondary-upgrades, .controls-card > p, .control-line, .touch-note,
footer, footer a, .livery-heading > span:last-child, .livery-detail,
.key-diagram > span { color: var(--muted); }
.tiny-label, .sector-tag, .sector p { color: #b8c7dc; }
.tiny-label, .sector-tag, .record-caption, .rail-bottom, .rail-heading,
.arena-topline, .ship-name p, .ship-class, .ship-stat,
.loadout-heading > span:last-child, .upgrade strong, .upgrade p,
.upgrade-code, .secondary-upgrades, .controls-card > p, .control-line,
.touch-note, footer { font-size: 10px; line-height: 1.5; letter-spacing: .6px; }
.sector p, .title-note { font-size: 11px; }
.sector, .sector.visited, .sector.active { opacity: 1; }
.sector:not(.active):not(.visited) .sector-node { border-style: dashed; color: #bdcce0; }
.sector-node { color: #bdcce0; }
.record-card, .run-build-card { background: #111c2c; }
.run-build-card > span:last-child { color: var(--muted); font-size: 9px; }
.schematic-label { color: var(--muted); font-size: 9px; }
button:disabled, .starter-picker button:disabled, .overdrive-button:disabled { opacity: 1; }
button:disabled { border-color: #53647a; }
.map-node.locked { opacity: 1; border: 1px dashed #8a9cb5; color: #c4d5e8; background: #111d2e; box-shadow: none; }
.map-node-label { padding: 5px 7px; border-radius: 3px; background: #091422f2; }
.map-node-label strong { color: #d3e1f2; font-size: 9px; line-height: 1.4; letter-spacing: .6px; }
.map-node-label span { font-size: 11px; line-height: 1.3; margin: 3px 0; }
.map-node-label small { color: #b8cadf; font-size: 9px; line-height: 1.4; letter-spacing: .4px; }
.map-heading .eyebrow { font-size: 10px; line-height: 1.5; color: #c3d0e2; }
.map-heading { padding: 6px 0; background: linear-gradient(90deg, transparent, #07101ee6 15%, #07101ee6 85%, transparent); }
.mode-switch button { color: #c3d0e2; font-size: 10px; letter-spacing: .5px; }
.game-overlay.idle { background: linear-gradient(#07101e66, #07101e22 40%, #07101e99); }
.starter-picker > .tiny-label, .selected-mission, .mission-intel, .launch-hint {
  color: #c7d7e8; background: #091422f2; border-radius: 2px;
}
.starter-picker > .tiny-label { font-size: 9px; padding: 3px 5px; }
.starter-picker button { color: #d1deee; }
.starter-picker button strong { font-size: 9px; letter-spacing: .5px; }
.starter-picker button small { color: #b9cce0; font-size: 9px; }
.starter-picker button[aria-pressed="true"] { background: #173c38; }
.selected-mission { font-size: 9px; line-height: 1.5; letter-spacing: .6px; padding: 4px; margin-bottom: 7px; }
.mission-intel { font-size: 10px; padding: 5px 7px; }
.launch-hint { font-size: 9px; line-height: 1.4; letter-spacing: .3px; padding: 4px; margin-top: 9px; }
.hangar-toggle, .ship-detail, .livery-detail { font-size: 10px; }
.hangar-toggle strong, .ship-picker small, .livery-picker small { font-size: 9px; }
.hangar-panel, .daily-brief { background: #091422ed; padding: 7px; border-radius: 3px; }
.daily-brief p { font-size: 11px; }
.daily-brief > span:last-child, .livery-heading > span:last-child { font-size: 9px; }
.hud-score > span, .hull > span { font-size: clamp(8px, 2cqw, 10px); color: #c0d2e7; letter-spacing: 1px; }
.hud-wave > span { font-size: clamp(8px, 2cqw, 10px); color: #d6e3f3; letter-spacing: .5px; }
.hud-score strong { font-size: clamp(16px, 4cqw, 22px); }
.weapon-status { font-size: clamp(8px, 2cqw, 11px); letter-spacing: .4px; gap: 3px; }
.weapon-status > span:last-child { font-size: clamp(8px, 1.8cqw, 10px); color: #c0d2e7; letter-spacing: .5px; }
.boss-hud { padding: 4px 6px; background: #091422f2; border-radius: 3px; }
.boss-hud > div:first-child { font-size: clamp(8px, 1.8cqw, 10px); color: #ffbac8; letter-spacing: .5px; }
.wave-banner > strong { display: inline-block; max-width: 100%; padding: 3px 6px; font-size: clamp(8px, 1.8cqw, 10px); background: #091422f2; border-radius: 3px; }
.bomb-button, .dodge-button, .overdrive-button { font-size: 9px; letter-spacing: .2px; }
.dodge-button strong, .overdrive-button strong { font-size: 9px; }
.dodge-button strong { color: #c0d2e7; }
.bomb-button kbd, .dodge-button kbd, .overdrive-button kbd { font-size: 8px; }
.arena-caption { font-size: 9px; }
.reward-panel > p, .build-option > span, .route-options button span,
.encounter-preview > p { color: #c0d2e7; font-size: 11px; }
.build-option > small, .reward-hint, .route-options button strong,
.route-options > .tiny-label, .encounter-preview > strong, .encounter-preview > span { font-size: 10px; }
.build-option > small, .reward-hint { color: #bdd3e5; }
.route-options > .encounter-preview { background: #142a3a; }
@media (max-width: 560px) {
  .arena-topline { font-size: 9px; letter-spacing: .5px; }
  .map-node-label { width: 103px; padding: 4px 5px; }
  .map-node-label span { font-size: 10px; }
  .map-node-label strong, .map-node-label small { font-size: 8px; }
  .map-heading .eyebrow { font-size: 9px; }
  .mode-switch button { font-size: 9px; }
  .starter-picker button { grid-template-columns: 15px 1fr; padding: 5px 4px; gap: 2px; }
  .starter-picker button strong, .starter-picker button small { font-size: 8px; letter-spacing: 0; }
  .starter-picker button b { font-size: 17px; }
  .selected-mission, .launch-hint { font-size: 8px; }
  .mission-intel { font-size: 9px; margin-bottom: 8px; }
  .bomb-button, .dodge-button, .overdrive-button { font-size: 8px; }
  .dodge-button strong, .overdrive-button strong { font-size: 8px; }
}
@media (max-width: 920px) and (max-height: 600px) {
  .starter-picker button strong { font-size: 8px; }
  .selected-mission, .launch-hint { font-size: 8px; }
  .mission-intel { font-size: 9px; }
}
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  .map-node-label { padding: 3px 4px; }
  .map-node-label strong { font-size: 8px; }
  .sector-trail.horizontal .map-node-label span { font-size: 8px; white-space: normal; }
  .selected-mission { font-size: 8px; margin-bottom: 4px; padding: 2px; }
  .mission-intel { font-size: 8px; line-height: 1.35; margin-bottom: 5px; padding: 3px; }
  .starter-picker button strong { font-size: 8px; }
  .launch-button { font-size: 9px; }
  .bomb-button, .dodge-button, .overdrive-button { font-size: 8px; }
  .dodge-button strong, .overdrive-button strong { font-size: 8px; }
  .boss-hud { left: 18%; width: 64%; padding: 3px; }
  .hud { padding-left: 5px; padding-right: 5px; }
  .hud-wave { margin-right: 6px; }
  .hud-score strong { font-size: 14px; }
  .hull > span { margin-bottom: 3px; }
  .hud-bottom { padding-left: 5px; padding-right: 5px; padding-bottom: 4px; }
}

/* Setup text flows above the map; small screens can scroll it without moving Launch. */
.game-overlay.idle .campaign-view {
  display: flex; flex-direction: column; overflow-x: hidden; overflow-y: auto;
  overscroll-behavior: contain; touch-action: pan-y; scrollbar-width: thin;
  scrollbar-color: #667f97 #091422; scroll-padding: 8px;
}
.game-overlay.idle .map-heading { position: relative; inset: auto; flex-shrink: 0; margin: 10px 8px 0; }
.game-overlay.idle .daily-brief { position: relative; inset: auto; flex-shrink: 0; width: 100%; margin: 10px 0; padding: 12px; overflow: visible; }
.game-overlay.idle .sector-trail {
  position: relative; inset: auto; flex: 1 0 210px; min-height: 210px;
  width: 86%; margin: 18px 7% 24px;
}
.map-node-label { top: 50%; transform: translateY(-50%); }
.map-node { scroll-margin: 28px 8px; }
.game-overlay.idle .sector-trail.horizontal { flex: 1 0 auto; min-height: 0; width: 100%; margin: 8px 0 12px; }
.sector-trail.horizontal:before { display: none; }
.sector-trail.horizontal #map-nodes { position: relative; inset: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; height: auto; padding: 5px; }
.sector-trail.horizontal .map-node {
  position: relative; top: auto !important; left: auto !important; transform: none;
  width: 100%; height: auto; min-height: 82px; padding: 6px 3px;
  display: flex; flex-direction: column; justify-content: flex-start; gap: 4px; border-radius: 5px; scroll-margin-block: 8px;
}
.sector-trail.horizontal .map-node-label, .sector-trail.horizontal .caption-left .map-node-label {
  position: static; width: 100%; padding: 0; transform: none; background: none; text-align: center;
}
.sector-trail.horizontal .map-node-label strong { font-size: 8px; letter-spacing: .3px; white-space: normal; }
.sector-trail.horizontal .map-node-label span { font-size: 9px; white-space: normal; overflow: visible; }
.sector-trail.horizontal .map-node-label small { display: block; font-size: 8px; white-space: normal; margin-top: 3px; }
@media (max-width: 920px) {
  .game-overlay.idle .map-heading { margin: 0; padding: 2px 0; }
  .mode-switch { max-width: 100%; }
  .mode-switch button { min-width: 0; min-height: 32px; padding: 7px 6px; font-size: 9px; letter-spacing: .2px; }
  .game-overlay.idle .map-heading > .eyebrow, .game-overlay.idle .map-heading h2 { display: none; }
  .game-overlay.idle .sector-trail { flex-basis: 130px; min-height: 130px; margin-top: 18px; margin-bottom: 24px; }
  .game-overlay.idle .sector-trail.horizontal { flex-basis: auto; min-height: 0; margin: 5px 0 10px; }
}
@media (max-height: 600px) {
  .game-overlay.idle .map-heading > .eyebrow, .game-overlay.idle .map-heading h2,
  .game-overlay.idle .launch-hint, .game-overlay.idle .selected-mission,
  .starter-picker > .tiny-label, .starter-picker button small { display: none; }
  .starter-picker { margin-bottom: 7px; }
  .starter-picker button { display: flex; justify-content: center; gap: 4px; min-height: 32px; padding: 4px; }
  .starter-picker button b { font-size: 14px; }
  .mode-switch button span { display: none; }
  .mission-intel { margin-top: 0; }
}
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  body:not(.in-mission) .arena-section { width: min(720px, calc(100vw - 32px)); }
  body:not(.in-mission) .arena { height: calc(var(--viewport-height, 100dvh) - 140px); aspect-ratio: auto; }
  body:not(.in-mission) #game { object-fit: cover; }
  .game-overlay.idle { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); gap: 14px; padding: 10px; }
  .game-overlay.idle .overlay-actions { width: 100%; max-width: none; align-self: center; }
  .game-overlay.idle .mission-intel { -webkit-line-clamp: 2; font-size: 9px; line-height: 1.4; }
  .game-overlay.idle .hangar-panel { top: 0; bottom: 0; }
}

/* The game remains first; these static instructions are readable without JavaScript. */
.game-guide { max-width: 1040px; margin: 48px auto 0; padding: 30px; border: 1px solid #33465b; border-radius: 6px; background: #0d1522; color: #d2dfef; font-size: 15px; line-height: 1.75; }
.game-guide .eyebrow { color: #b7c9dc; font-size: 11px; line-height: 1.5; }
.game-guide h2 { margin: 0 0 15px; color: #f0f5fb; font-size: clamp(23px, 3vw, 30px); line-height: 1.25; letter-spacing: -.4px; }
.game-guide h3 { margin: 0 0 12px; color: #e9eef7; font-size: 18px; line-height: 1.4; }
.game-guide p { margin: 0 0 16px; }
.guide-intro { max-width: 850px; }
.guide-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 28px; }
.game-guide ol { margin: 0 0 16px; padding-left: 23px; }
.game-guide li { padding-left: 3px; margin-bottom: 12px; }
.game-faq { margin-top: 24px; border-top: 1px solid #33465b; padding-top: 25px; }
.game-faq details { border-bottom: 1px solid #33465b; }
.game-faq summary { padding: 15px 4px; color: #a3ffe3; font-weight: 700; cursor: pointer; }
.game-faq summary:focus-visible { outline: 2px solid #a3ffe3; outline-offset: 2px; }
.game-faq details p { padding: 0 4px 2px; }
@media (max-width: 920px) { .game-guide { max-width: 540px; padding: 24px; margin-top: 32px; } .guide-columns { grid-template-columns: minmax(0, 1fr); gap: 20px; } }
@media (max-width: 560px) { .game-guide { padding: 20px 17px; margin-top: 26px; } }

/* Prioritize flight status and choices over decorative metadata on small screens. */
@media (max-width: 920px) {
  .game-overlay.idle .map-heading { position: sticky; top: 0; z-index: 2; background: #07101ef2; }
  .mode-switch button, .launch-button, .restart-button,
  .hangar-toggle, .hangar-toggle strong, .starter-picker button strong,
  .ship-picker strong, .livery-picker strong { font-size: 12px; letter-spacing: .2px; }
  .mode-switch button, .hangar-toggle, .starter-picker button { min-height: 40px; }
  .starter-picker button { grid-template-columns: 14px minmax(0, 1fr); gap: 3px; }
  .starter-picker button small, .ship-picker small, .livery-picker small,
  .ship-detail, .livery-detail, .daily-brief p, .daily-brief strong { font-size: 11px; line-height: 1.5; }
  .hangar-toggle { flex-wrap: wrap; gap: 4px 8px; }
  .mission-intel, .selected-mission { font-size: 12px; line-height: 1.4; letter-spacing: 0; }
  .mission-intel { display: block; -webkit-line-clamp: unset; }
  .launch-hint { display: none; }
  .game-overlay.idle { padding-bottom: 12px; }
  .game-overlay.idle .sector-trail:not(.horizontal) { flex-basis: 156px; min-height: 156px; }
  .map-node-label strong, .sector-trail.horizontal .map-node-label strong { font-size: 10px; letter-spacing: .2px; }
  .map-node-label span, .sector-trail.horizontal .map-node-label span { font-size: 12px; line-height: 1.3; white-space: normal; }
  .map-node-label small, .sector-trail.horizontal .map-node-label small { font-size: 10px; letter-spacing: 0; }
  .map-node.locked .map-node-label > span { display: block; }
  .sector-trail.horizontal .map-node { min-height: 108px; padding: 8px 4px; }
  .game-overlay.upgrade { padding: 12px; }
  .reward-panel { min-height: 0; max-height: 100%; }
  .build-option { padding-right: 58px; }
  .build-option strong { font-size: 14px; line-height: 1.3; }
  .reward-panel > p, .build-option > span, .route-options button strong,
  .route-options button span, .encounter-preview > strong,
  .encounter-preview > p, .encounter-preview > span { font-size: 12px; line-height: 1.5; letter-spacing: 0; }
  .route-options > div:not(.encounter-preview) { grid-template-columns: minmax(0, 1fr); }
  .reward-hint { display: none; }
  .hud-wave > span, .hull > span, .weapon-status,
  .boss-hud > div:first-child, .wave-banner > strong { font-size: 12px; letter-spacing: .2px; line-height: 1.3; }
  .hud-score > span, .weapon-status > span:last-child { font-size: 10px; letter-spacing: .2px; }
  .hud-score strong { font-size: 18px; }
  .weapon-status { max-width: 72%; }
  .wave-banner > strong { white-space: normal; }
  .arena-controls { display: grid; grid-template-columns: auto auto minmax(0, 1fr) 36px; gap: 6px; padding: 0 6px; height: 56px; }
  .bomb-button, .dodge-button, .overdrive-button { width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 4px; font-size: 12px; letter-spacing: 0; justify-content: center; }
  .bomb-button { gap: 3px; }
  .bomb-glyph { font-size: 20px; }
  .bomb-button strong, .dodge-button strong, .overdrive-button strong { font-size: 12px; }
  .bomb-button strong { margin-left: 0; }
  .overdrive-button { max-width: none; padding-bottom: 7px; }
  .overdrive-button strong { display: block; margin: 2px 0 0; }
  .bomb-button kbd, .dodge-button kbd, .overdrive-button kbd { display: none; }
  .sound-button { width: 36px; padding: 0; }
  .overlay-copy p { font-size: 12px; line-height: 1.5; }
}
@media (max-width: 560px) {
  .starter-picker button { padding: 6px 3px; }
  .starter-picker button small { font-size: 10px; }
  .ship-picker, .livery-picker { grid-template-columns: minmax(0, 1fr); }
  .livery-picker button { justify-content: flex-start; padding-left: 12px; }
}
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  .arena-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); height: 80px; gap: 4px; padding: 4px; }
  .bomb-button, .dodge-button, .overdrive-button, .sound-button { min-height: 32px; }
  .dodge-button strong, .overdrive-button strong { display: inline; margin: 0 0 0 3px; font-size: 10px; }
  .overdrive-button strong { display: block; margin: 0; }
  .sound-button { width: 100%; }
  .hud { padding: 4px 5px 0; }
  .hud-score > span { display: none; }
  .hud-score strong { font-size: 14px; letter-spacing: 0; }
  .hud-wave { margin: 0 4px 0 auto; }
  .icon-button { width: 38px; height: 38px; flex-shrink: 0; }
  .wave-banner { top: 20%; }
  .boss-hud { top: 20%; left: 6%; width: 88%; }
  .hud-bottom { padding: 0 5px 5px; }
  .hull > span { font-size: 10px; }
  .game-overlay.idle .mission-intel { font-size: 12px; line-height: 1.4; }
}

/* The opt-in local report shares the flight manual's scrolling region. */
.playtest-settings { margin: 22px 0; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.playtest-settings h3 { margin: 0 0 12px; color: var(--mint); font: 12px/1.5 var(--mono); letter-spacing: 1px; }
.playtest-settings p { font-size: 14px; line-height: 1.6; color: #c0d2e7; }
.playtest-settings button { min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid #3d5969; background: #142330; font: 12px/1.5 var(--mono); }
#playtest-toggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; text-align: left; }
#playtest-toggle[aria-pressed="true"] { border-color: var(--mint); }
#playtest-toggle strong { color: var(--mint); }
.playtest-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.playtest-report { white-space: pre-line; padding: 12px; background: #091422; border: 1px solid var(--line); }
@media (max-width: 560px) { .playtest-actions { grid-template-columns: minmax(0, 1fr); } }

/* A portrait field stays 3:4. Use tall-phone space for status and touch actions,
   rather than stretching the world or leaving a large empty area below it. */
@media (max-width: 920px) {
  body.in-mission {
    --flight-top: 52px;
    --flight-bottom: 48px;
    --flight-deck: 124px;
    --flight-header: 66px;
    padding-top: env(safe-area-inset-top, 0px);
  }
  body.in-mission .site-header { height: var(--flight-header); padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
  body.in-mission .nav-active { min-width: 44px; justify-content: center; font-size: 12px; letter-spacing: .2px; }
  body.in-mission .nav-help { min-height: 44px; font-size: 12px; letter-spacing: .2px; }
  body.in-mission main { padding: 8px max(12px, env(safe-area-inset-right, 0px)) 0 max(12px, env(safe-area-inset-left, 0px)); }
  body.in-mission .arena-section {
    width: min(100%, calc((var(--viewport-height, 100dvh) - var(--flight-header) - var(--flight-top) - var(--flight-bottom) - var(--flight-deck) - 76px - var(--boss-space, 0px) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) * .75));
    margin: 0 auto;
  }
  body.in-mission .arena-topline { height: 20px; margin-bottom: 8px; font-size: 12px; letter-spacing: .2px; }
  body.in-mission .arena { display: grid; grid-template-rows: var(--flight-top) auto var(--flight-bottom); aspect-ratio: auto; }
  body.in-mission #game { grid-row: 2; grid-column: 1; height: auto; aspect-ratio: 3 / 4; }
  body.in-mission .hud { position: relative; grid-row: 1; grid-column: 1; height: var(--flight-top); padding: 5px 10px; align-items: center; background: #091422; }
  body.in-mission .hud-score > span { font-size: 12px; margin-bottom: 2px; }
  body.in-mission .hud-score strong { font-size: 20px; }
  body.in-mission .hud-wave { margin: 0 10px 0 auto; }
  body.in-mission .hud-wave > span { font-size: 12px; }
  body.in-mission .wave-pips { margin-top: 5px; }
  body.in-mission .icon-button { width: 44px; height: 44px; }
  body.in-mission .hud-bottom { position: relative; grid-row: 3; grid-column: 1; height: var(--flight-bottom); padding: 5px 10px; align-items: center; background: #091422; }
  body.in-mission .hull > span { margin-bottom: 4px; font-size: 12px; }
  body.in-mission .weapon-status { font-size: 12px; max-width: 63%; line-height: 1.3; }
  body.in-mission .weapon-status > span:last-child { font-size: 12px; line-height: 1.3; }
  body.in-mission .combo { position: absolute; bottom: calc(var(--flight-bottom) + 9px); left: 10px; padding: 3px 5px; border-radius: 3px; background: #091422e8; font-size: 14px; }
  body.in-mission .combo:empty { display: none; }
  body.in-mission .boss-hud { top: calc(var(--flight-top) + 8px); left: 8%; width: 84%; }
  body.in-mission .wave-banner { top: calc(var(--flight-top) + 8px); left: 5%; right: 5%; }
  body.in-mission .game-overlay { top: var(--flight-top); bottom: var(--flight-bottom); }
  body.in-mission .game-overlay .launch-button, body.in-mission .restart-button { min-height: 44px; }
  body.in-mission .arena-controls { height: var(--flight-deck); grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(44px, 1fr)); gap: 6px; padding: 8px; }
  body.in-mission .bomb-button, body.in-mission .dodge-button,
  body.in-mission .overdrive-button, body.in-mission .arena-controls .sound-button { min-height: 44px; width: 100%; font-size: 13px; border: 1px solid #476476; background: #142330; }
  body.in-mission .bomb-button, body.in-mission .arena-controls .sound-button { display: flex; align-items: center; justify-content: center; gap: 8px; }
  body.in-mission .dodge-button strong, body.in-mission .overdrive-button strong { display: inline; margin: 0 0 0 5px; font-size: 13px; }
  body.in-mission .dodge-button.ready { border-color: #83bcb9; }
  body.in-mission .overdrive-button.ready { background: #302641; border-color: #b79dff; }
  body.in-mission .overdrive-button.active { background: #173c39; border-color: var(--mint); }
  body.in-mission .overdrive-button strong { display: block; margin: 2px 0 0; }
  body.in-mission .overdrive-button { padding: 6px 4px 9px; }
  body.in-mission .arena-controls .sound-button { padding: 6px; }
  body.in-mission .arena-controls .sound-button:after { content: 'Sound off'; font: 12px var(--mono); }
  body.in-mission .arena-controls .sound-button[aria-pressed="true"]:after { content: 'Sound on'; }
  body.in-mission .arena-caption { display: flex; min-height: 28px; margin: 8px 0 0; padding-bottom: max(8px, env(safe-area-inset-bottom, 0px)); font-size: 12px; line-height: 1.4; letter-spacing: 0; }
  body.in-mission .arena-caption .caption-dot { flex-shrink: 0; }
  body.in-mission #flight-status { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  body.in-mission .arena-caption > span:last-child { display: none; }
}
@media (max-width: 560px) {
  body.in-mission { --flight-header: 54px; }
}
/* Move status into the field in stages as browser chrome reduces height, so
   opening a status row does not suddenly shrink a width-limited phone field. */
@media (max-width: 920px) and (max-height: 839px) {
  body.in-mission { --flight-bottom: 0px; }
  body.in-mission .hud-bottom { position: absolute; height: 48px; background: none; }
  body.in-mission .hull, body.in-mission .weapon-status { padding: 3px; background: #091422e8; border-radius: 3px; }
  body.in-mission .combo { bottom: 52px; }
}
@media (max-width: 920px) and (max-height: 799px) {
  body.in-mission { --flight-top: 0px; --flight-bottom: 0px; --flight-deck: 104px; --flight-header: 44px; }
  body.in-mission .arena { display: block; aspect-ratio: auto; }
  body.in-mission #game { height: auto; }
  body.in-mission .hud { position: absolute; height: 52px; background: linear-gradient(#091422f5, #091422d9); }
  body.in-mission .hud-score > span { display: none; }
  body.in-mission .hud-score strong { font-size: 18px; }
  body.in-mission .hud-wave { margin-right: 6px; }
  body.in-mission .wave-banner, body.in-mission .boss-hud { top: 56px; }
}
/* Landscape spends its spare horizontal space on controls beside the field. */
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  body.in-mission { --flight-header: 44px; }
  body.in-mission main { padding-top: 6px; }
  body.in-mission .arena-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(170px, .8fr); grid-template-rows: 28px minmax(0, 1fr) auto; column-gap: 16px; width: min(640px, calc((var(--viewport-height, 100dvh) - 86px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) * 1.35)); }
  body.in-mission .arena-topline { grid-column: 1 / -1; grid-row: 1; }
  body.in-mission .arena { grid-column: 1; grid-row: 2 / 4; align-self: start; }
  body.in-mission .arena-controls { grid-column: 2; grid-row: 2; align-self: center; height: 124px; }
  body.in-mission .arena-caption { grid-column: 2; grid-row: 3; margin: 0; }
  body.in-mission .hud { padding: 4px 6px; }
  body.in-mission .hud-score strong { font-size: 16px; }
  body.in-mission .hud-wave > span { font-size: 12px; letter-spacing: 0; }
  body.in-mission .wave-pips i { width: 10px; }
  body.in-mission .hud-bottom { padding: 4px 6px; }
  body.in-mission .dodge-button strong, body.in-mission .overdrive-button strong { display: block; margin: 2px 0 0; font-size: 12px; }
}

/* Combat essentials stay in the flight deck; settings stay in navigation. */
.site-header .sound-button, .focus-button { min-width: 44px; min-height: 44px; padding: 10px; border: 1px solid #426071; border-radius: 4px; background: #142330; }
.site-header .sound-button { display: grid; place-items: center; width: 44px; }
.site-header .sound-button svg { width: 21px; height: 21px; }
.focus-button { color: #c8efe8; font: 12px var(--mono); letter-spacing: .2px; }
.focus-button[aria-pressed="true"] { border-color: #83bcb9; }
.arena-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 6px 8px; }
.arena-controls > button { width: 100%; min-width: 0; min-height: 44px; justify-content: center; margin: 0; }
.boss-hud { left: 10%; width: 80%; padding: 8px 10px; border: 1px solid #6d536b; border-radius: 4px; background: #091422f2; }
.boss-hud > div:first-child { font: 12px/1.3 var(--mono); letter-spacing: .3px; gap: 5px; }
.boss-hud > div:first-child > span:last-child { flex-shrink: 0; color: #ffb8c6; }
.boss-phase { color: #eff5fc; font: 12px/1.4 var(--mono); letter-spacing: .1px; margin: 4px 0 7px; }
.boss-track { height: 7px; border-radius: 2px; overflow: hidden; }
.boss-hud.defenses { border-color: #846eaa; }
.boss-hud.defenses .boss-track > div { background: #c5a1ff; box-shadow: 0 0 12px #c5a1ff77; }
.cannon-notice { position: absolute; bottom: 14%; left: 8%; right: 8%; z-index: 4; pointer-events: none; opacity: 0; padding: 9px; background: #241721f5; border: 1px solid #ffb38e; border-radius: 4px; color: #ffe3c7; text-align: center; font: 700 13px/1.4 var(--mono); }
.cannon-notice.visible { opacity: 1; }
.compact-map-title { display: none; }
.game-overlay.idle .hangar-panel { position: relative; inset: auto; grid-row: 1 / -1; min-height: 0; width: 100%; padding: 14px; pointer-events: auto; }
.hangar-back { position: sticky; top: 0; z-index: 1; display: block; width: 100%; min-height: 44px; margin-bottom: 15px; padding: 10px; background: #162e3a; border: 1px solid #83bcb9; color: #bafdec; font: 12px var(--mono); text-align: left; }
.hangar-panel .eyebrow { font-size: 11px; }
.build-option { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; column-gap: 10px; row-gap: 5px; padding: 12px; min-height: 80px; }
.build-option strong { flex-basis: 100%; font: 700 16px/1.3 var(--sans); margin: 0; }
.build-option > small { position: static; font: 12px/1.4 var(--mono); letter-spacing: 0; color: #c4eee6; }
.build-option > span { font: 12px/1.4 var(--mono); color: #bacee2; }
.reward-panel > p, .route-options button strong, .route-options button span,
.encounter-preview > strong, .encounter-preview > p, .encounter-preview > span { font-size: 12px; line-height: 1.45; letter-spacing: 0; }
.reward-panel .eyebrow, .route-options > .tiny-label { font-size: 11px; }
.route-options button { min-height: 72px; padding: 11px; }
.reward-hint { display: none; }

@media (min-width: 921px) {
  body.focused-play { position: fixed; inset: 0; height: var(--viewport-height, 100dvh); overflow: hidden; }
  body.focused-play .site-header { height: 52px; max-width: none; padding: 0 24px; }
  body.focused-play .title-row, body.focused-play .left-rail,
  body.focused-play .right-rail, body.focused-play .game-guide,
  body.focused-play footer, body.focused-play .system-status { display: none; }
  body.focused-play main { width: 100%; max-width: none; padding: 8px 20px 0; }
  body.focused-play .game-layout { display: block; }
  body.focused-play .arena-section { width: min(100%, calc((var(--viewport-height, 100dvh) - 168px - var(--boss-space, 0px)) * .75)); max-width: none; margin: 0 auto; }
  body.focused-play .arena-topline { height: 18px; margin-bottom: 6px; font-size: 12px; letter-spacing: .2px; }
  body.focused-play .arena-controls { height: 56px; }
  body.focused-play .arena-caption { margin-top: 5px; height: 20px; font-size: 11px; line-height: 1.4; letter-spacing: 0; }
  body.focused-play .arena-caption > span:last-child { display: none; }
  body.focused-play .reward-panel { max-width: 540px; }
  body.focused-play .reward-panel h2 { font-size: 27px; }
  body.focused-play .hud-wave > span, body.focused-play .weapon-status,
  body.focused-play .hull > span { font-size: 12px; letter-spacing: .2px; }
  body.focused-play .weapon-status > span:last-child { font-size: 11px; letter-spacing: .2px; }
  body.focused-play .icon-button { width: 44px; height: 44px; }
}
@media (max-width: 920px) {
  .site-header nav { gap: 8px; }
  .nav-active { display: none; }
  .site-header .nav-help { min-height: 44px; font-size: 12px; padding: 10px 5px; letter-spacing: .2px; }
  .site-header .sound-button { min-width: 44px; }
  .game-overlay.idle .map-heading h2 { display: block; margin: 3px 0 10px; font-size: 25px; }
  .game-overlay.idle .map-heading .desktop-map-title { display: none; }
  .compact-map-title { display: inline; }
  .mode-switch { width: 100%; }
  .mode-switch button { flex: 1; min-height: 44px; }
  .arena-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.in-mission { --flight-deck: 124px; }
  body.in-mission .arena-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: minmax(44px, 1fr) minmax(44px, 1fr); }
  body.in-mission .overdrive-button { grid-column: 1 / -1; }
  body.in-mission .boss-hud { left: 5%; width: 90%; padding: 7px 9px; }
  body.in-mission .boss-hud > div:first-child, body.in-mission .boss-phase { font-size: 12px; }
  body.in-mission .cannon-notice { bottom: calc(var(--flight-bottom) + 60px); }
  .game-overlay.idle .hangar-panel { padding: 12px; }
  .build-option { padding: 11px; }
  .build-option strong { font-size: 15px; }
}
@media (max-width: 560px) {
  .site-header { padding-left: 12px; padding-right: 12px; }
  .brand-light { display: none; }
  .brand { font-size: 9px; letter-spacing: .7px; }
}
@media (max-width: 920px) and (max-height: 799px) {
  body.in-mission { --flight-deck: 104px; --flight-header: 46px; }
}
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  body.in-mission { --flight-header: 46px; }
  body.in-mission .arena-controls { height: 146px; }
  body.in-mission .arena-section { grid-template-columns: minmax(0, 1fr) minmax(180px, .8fr); width: min(640px, calc((var(--viewport-height, 100dvh) - 88px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) * 1.35)); }
  .game-overlay.idle .hangar-panel { grid-column: 1 / -1; }
  .game-overlay.idle .map-heading h2 { font-size: 20px; margin-bottom: 5px; }
  .game-overlay.idle .mode-switch button { min-height: 44px; }
  body.in-mission .boss-hud { top: 54px; padding: 5px; }
  body.in-mission .boss-phase { margin-bottom: 4px; }
  body.in-mission .boss-hud > div:first-child { font-size: 11px; }
}


/* A guardian's progress row replaces the sector strip, outside all targets. */
body { --boss-space: 0px; }
body.boss-active { --boss-space: 50px; }
body.boss-active .arena-topline, body.boss-active .wave-banner { display: none; }
body .arena-section > .boss-hud { position: static; inset: auto; width: 100%; height: 68px; margin: 0 0 6px; padding: 8px 10px; }
@media (max-width: 920px) {
  body.boss-active { --boss-space: 46px; }
  .game-overlay.idle .map-heading { position: relative; top: auto; }
}
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  body.in-mission.boss-active .arena-section {
    grid-template-rows: 74px minmax(0, 1fr) auto;
    width: min(640px, calc((var(--viewport-height, 100dvh) - 134px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) * .75 + 196px));
  }
  body.in-mission .arena-section > .boss-hud { grid-column: 1 / -1; grid-row: 1; }
}


.weapon-status .weapon-short-hud { display: none; }
body .arena-section > .boss-hud > div:first-child { margin: 0; line-height: 16px; }
body .arena-section > .boss-hud .boss-phase { margin: 3px 0 5px; line-height: 16px; }
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  /* Spare width holds status beside the world, keeping every target visible. */
  body.in-mission .arena-section {
    grid-template-columns: 156px minmax(0, 1fr) 180px;
    width: min(100%, calc((var(--viewport-height, 100dvh) - 88px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) * .75 + 368px));
  }
  body.in-mission.boss-active .arena-section {
    width: min(100%, calc((var(--viewport-height, 100dvh) - 134px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) * .75 + 368px));
  }
  body.in-mission .arena-frame { grid-column: 2; grid-row: 2 / 4; align-self: start; }
  body.in-mission .arena-controls, body.in-mission .arena-caption { grid-column: 3; }
  body.in-mission .hud { top: 0; left: -172px; right: auto; width: 156px; height: auto; display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 6px; padding: 4px 6px; background: #091422; border: 1px solid #334457; }
  body.in-mission .hud-score { grid-column: 1; grid-row: 1; align-self: center; }
  body.in-mission .hud-score strong { font-size: 16px; white-space: nowrap; }
  body.in-mission .hud-wave { grid-column: 1 / -1; grid-row: 2; margin: 0; text-align: left; }
  body.in-mission .hud-wave > span { display: block; white-space: nowrap; font-size: 12px; }
  body.in-mission .wave-pips { display: none; }
  body.in-mission #pause { grid-column: 2; grid-row: 1; width: 44px; height: 44px; }
  body.in-mission .hud-bottom { top: 84px; bottom: auto; left: -172px; right: auto; width: 156px; height: auto; padding: 8px 6px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 12px 6px; background: #091422; border: 1px solid #334457; }
  body.in-mission .hud-bottom .hull { grid-column: 1; grid-row: 1; }
  body.in-mission .weapon-status { grid-column: 1 / -1; grid-row: 2; max-width: none; width: 100%; text-align: left; }
  body.in-mission #weapon-hud { display: none; }
  body.in-mission .weapon-status .weapon-short-hud { display: block; font-size: 12px; white-space: nowrap; }
  body.in-mission .weapon-status > span:last-child { white-space: nowrap; }
  body.in-mission .combo { position: static; grid-column: 2; grid-row: 1; align-self: center; min-width: 0; padding: 2px; font-size: 12px; white-space: nowrap; }
  body.in-mission #flight-status { white-space: normal; overflow: visible; text-overflow: clip; }
}

/* Status may occupy a gutter; world and menu clipping stay on the inner arena. */
.arena-frame { position: relative; min-width: 0; touch-action: none; overscroll-behavior: none; }
body.mission-menu .arena-frame { touch-action: pan-y; }
body.in-mission .arena-frame > .hud, body.in-mission .arena-frame > .hud-bottom { position: absolute; }
body.mission-menu .arena-frame > .hud, body.mission-menu .arena-frame > .hud-bottom { visibility: hidden; }
.tips-replay { min-height: 44px; padding: 10px 14px; background: #152735; border: 1px solid #67899c; color: #d5f9ef; font: 12px/1.4 var(--mono); }
#flight-status.flight-tip { color: #c6ffed; }

/* Results reserve space for Retry/Map while the flight report scrolls. */
.game-overlay.gameover, .game-overlay.victory {
  display: grid; grid-template-rows: minmax(0, 1fr) auto; align-items: stretch;
  justify-content: normal; gap: 14px; padding: 20px; pointer-events: auto;
  background: #080f1cf5;
}
.flight-results .overlay-copy {
  width: 100%; max-width: 520px; min-height: 0; justify-self: center;
  overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y;
  scrollbar-width: thin; scrollbar-color: #7f9cae #101a2b; padding: 4px 8px;
  text-align: left;
}
.flight-results .overlay-copy:focus-visible { outline: 2px solid var(--mint); outline-offset: -2px; }
.flight-results .launch-tag { font: 11px/1.4 var(--mono); letter-spacing: .6px; }
.flight-results .overlay-copy h2 { font-size: 27px; margin: 12px 0 8px; }
.flight-results .overlay-copy > p { max-width: none; margin: 0; font: 13px/1.5 var(--mono); color: #dfebf6; }
.flight-results .overlay-actions { justify-self: center; width: 100%; max-width: 520px; }
.flight-results .launch-button { min-height: 44px; font-size: 12px; letter-spacing: .6px; }
.flight-results .restart-button { min-height: 44px; margin-top: 4px; font-size: 12px; letter-spacing: .3px; }
.flight-results .launch-hint { font-size: 11px; line-height: 1.4; letter-spacing: 0; margin-top: 6px; color: #bdccdf; }
.run-debrief { margin-top: 18px; color: #e2edf7; }
.run-debrief h3, .run-debrief h4 { margin: 16px 0 8px; font: 700 12px/1.4 var(--mono); letter-spacing: .6px; color: #c0f5e8; }
.run-debrief .debrief-progress { margin: 0 0 4px; font: 700 14px/1.5 var(--mono); }
.run-debrief .debrief-ship { margin: 0; font: 12px/1.5 var(--mono); color: #c5d6e8; }
.debrief-threat { margin-top: 14px; padding: 12px; border: 1px solid #8197ae; background: #16263a; }
.debrief-threat > span { display: block; margin-bottom: 4px; font: 11px/1.4 var(--mono); color: #d5e3f2; }
.debrief-threat strong { display: block; font: 700 16px/1.4 var(--sans); color: #ffcfab; }
.run-debrief .debrief-threat p { margin: 6px 0 0; max-width: none; font: 13px/1.5 var(--sans); color: #e1edf8; }
.debrief-metrics, .debrief-abilities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 14px 0 0; }
.debrief-metrics > div, .debrief-abilities > div { min-width: 0; padding: 9px 10px; background: #122031; border: 1px solid #42566d; }
.run-debrief dt { font: 12px/1.4 var(--mono); color: #c8d9ec; }
.run-debrief dd { margin: 4px 0 0; font: 700 17px/1.4 var(--mono); color: #c0ffec; overflow-wrap: anywhere; }
.debrief-abilities { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; }
.run-debrief .debrief-build { max-width: none; margin: 0; font: 13px/1.6 var(--sans); color: #e1edf8; overflow-wrap: anywhere; }
.run-debrief .debrief-note { max-width: none; margin: 14px 0 0; font: 12px/1.5 var(--sans); color: #b9cce0; }
body.in-mission.flight-results .arena-controls, body.in-mission.flight-results .arena-caption { display: none; }
@media (max-width: 920px) {
  body.in-mission.flight-results .arena-section { display: block; width: min(100%, 600px); }
  body.in-mission.flight-results .arena-frame { height: calc(var(--viewport-height, 100dvh) - var(--flight-header) - 52px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); }
  body.in-mission.flight-results .arena { display: block; height: 100%; aspect-ratio: auto; }
  body.in-mission.flight-results #game { width: 100%; height: 100%; object-fit: contain; }
  body.in-mission.flight-results .game-overlay { inset: 0; padding: 12px; gap: 10px; }
  .flight-results .overlay-copy h2 { font-size: 24px; }
}
@media (max-width: 920px) and (max-height: 450px) and (orientation: landscape) {
  body.in-mission.flight-results .game-overlay { grid-template-columns: minmax(0, 1fr) 170px; grid-template-rows: minmax(0, 1fr); gap: 16px; }
  .flight-results .overlay-copy { grid-column: 1; grid-row: 1; }
  .flight-results .overlay-actions { grid-column: 2; grid-row: 1; align-self: center; }
  .flight-results .overlay-copy .launch-tag { display: none; }
  .flight-results .overlay-copy h2 { font-size: 22px; margin: 0 0 6px; }
  .flight-results .run-debrief { margin-top: 10px; }
  .flight-results .debrief-threat { margin-top: 0; }
  .flight-results .launch-hint { font-size: 11px; }
}
@media (max-width: 560px) and (max-height: 600px) and (orientation: portrait) {
  .game-overlay.idle .map-heading h2 { margin: 3px 0 6px; font-size: 23px; }
  .game-overlay.idle .sector-trail.horizontal { margin: 4px 0; }
  .sector-trail.horizontal #map-nodes { padding: 2px; }
  .sector-trail.horizontal .map-node { min-height: 66px; padding: 4px 2px; }
  .sector-trail.horizontal .map-number, .sector-trail.horizontal .map-node-label strong { display: none; }
  .sector-trail.horizontal .map-node-label span { margin: 2px 0; }
}
