@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--mint:#b6ff63;--text:#e9eff8;--muted:#78899e}*{box-sizing:border-box}body{margin:0;background:#080e19;color:var(--text);font-family:'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit;color:inherit;border:0}button:focus-visible,a:focus-visible{outline:2px solid var(--mint);outline-offset:5px}header{height:80px;border-bottom:1px solid #202a36;display:flex;align-items:center;justify-content:space-between;padding:0 5%}.brand{font-size:17px;font-weight:800;letter-spacing:2px;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:12px}.logo{font-size:32px;color:var(--mint)}.edition{font:10px monospace;color:var(--muted);margin-left:20px;letter-spacing:1px}.quiet{background:transparent;color:#a0aec0;font:10px monospace;letter-spacing:1px;border:1px solid #344052;padding:10px 14px}main{max-width:1240px;margin:auto;padding:42px 40px 0}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{font:10px monospace;letter-spacing:2px;color:var(--mint);display:flex;align-items:center;gap:8px}.eyebrow>span{width:6px;height:6px;background:var(--mint)}h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(38px,5vw,68px);font-weight:800;letter-spacing:-1px;line-height:1;margin:12px 0}h1 em{color:var(--mint);font-style:normal}.intro p{font-size:13px;color:#8b9aad;margin:0}.record{text-align:right;display:flex;flex-direction:column;gap:8px}.record span,.record small{font:9px monospace;color:var(--muted);letter-spacing:2px}.record strong{font:30px monospace;letter-spacing:3px}.record small{color:var(--mint);font-size:8px}.game-shell{border:1px solid #314052;border-radius:8px;overflow:hidden;box-shadow:0 24px 80px #0005}.toolbar{height:42px;background:#121c2a;padding:0 20px;display:flex;justify-content:space-between;align-items:center;font:9px monospace;letter-spacing:1.5px;color:#9eafc1}.live,.game-footer i{display:inline-block;background:var(--mint);width:5px;height:5px;border-radius:50%;margin-right:8px}.toolbar-right{display:flex;align-items:center;gap:20px}.toolbar button{background:none;font:10px monospace}.toolbar button:last-child{font-size:23px;color:#8a9ab0}kbd{display:inline-block;border:1px solid #3c4857;padding:2px 4px;border-radius:3px;font:9px monospace;color:#b6c2cf}#arena{position:relative;aspect-ratio:1000/650;overflow:hidden;background:#080f1e;touch-action:none}canvas{display:block;width:100%;height:100%}.hud{position:absolute;top:22px;left:25px;right:25px;display:flex;justify-content:space-between;pointer-events:none}.hud label{display:block;font:8px monospace;letter-spacing:2px;color:#8a99ad;margin-bottom:7px}.hud strong{font:21px monospace;letter-spacing:2px}.wave{text-align:center}.hull{text-align:right}.hull strong{color:var(--mint);font-size:18px}#overlay{position:absolute;inset:0;display:grid;place-items:center;background:#080f1e75;backdrop-filter:blur(2px)}#overlay[hidden]{display:none}.overlay-content{text-align:center;max-width:90%;}.overlay-content .eyebrow{justify-content:center;font-size:9px}.orbit{font-size:60px;color:var(--mint);text-shadow:0 0 45px #b6ff6360;line-height:1;margin-bottom:22px}h2{font:700 clamp(26px,4.4vw,53px)/1.04 'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;margin:16px 0;letter-spacing:.3px}h2 em{color:var(--mint);font-style:normal}.overlay-content p{font-size:12px;line-height:1.7;color:#a1afbf}.primary{background:var(--mint);color:#172114;padding:16px 26px;font-weight:800;font-size:12px;letter-spacing:1px;min-width:200px;margin:15px 0;border-radius:3px;box-shadow:0 0 30px #b6ff6314}.primary:hover{background:#ceff99;transform:translateY(-1px)}.primary span{margin-left:32px}.overlay-content>small{display:block;font:8px monospace;letter-spacing:1px;color:#76889f}.bottom-hud{position:absolute;bottom:18px;left:25px;right:25px;display:flex;align-items:center;justify-content:space-between;gap:20px}.pulse-info{display:flex;gap:10px;align-items:center;font:8px monospace;letter-spacing:1px}.meter{height:5px;width:160px;background:#243047}.meter i{display:block;height:100%;width:0;background:var(--mint);box-shadow:0 0 10px #b6ff6355}.pulse-info b{color:var(--mint);width:30px}#pulse{background:#141f2d;border:1px solid #3e4e60;padding:9px 12px;font:9px monospace}#pulse.ready{border-color:var(--mint);color:var(--mint);box-shadow:0 0 20px #b6ff6322}.game-footer{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#101927;color:#8594a9;font:8px monospace;letter-spacing:1px}.instructions{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}.instructions article{display:flex;gap:15px}.number{font:11px monospace;color:var(--mint);border-top:1px solid #536a43;padding-top:8px}h3{font-size:12px;font-weight:600;margin:5px 0 8px}.instructions p{color:#8190a5;font-size:10px;line-height:1.9;margin:0}footer{border-top:1px solid #202b3b;display:flex;justify-content:space-between;margin-top:32px;padding:22px 0;color:#536477;font:8px monospace;letter-spacing:1px}footer b{color:var(--mint);font-size:17px;margin-left:12px}#banner{position:absolute;top:42%;width:100%;text-align:center;font:700 38px 'Barlow Condensed',Impact,sans-serif;color:var(--mint);pointer-events:none;text-shadow:0 0 20px #000}#bossbar{position:absolute;top:85px;width:40%;left:30%;text-align:center;font:8px monospace;letter-spacing:2px;color:#ff749d}#bossbar>div{height:4px;background:#3c1c3c;margin-top:8px}#bossbar i{display:block;height:100%;background:#ff749d}.choices{display:flex;gap:10px;margin-top:20px}.choice{background:#152232;border:1px solid #3d5365;border-radius:5px;padding:18px 12px;width:165px;text-align:left}.choice:hover{border-color:var(--mint);background:#20332d}.choice b{display:block;color:var(--mint);font-size:12px;margin-bottom:8px}.choice span{font-size:10px;color:#a7b5c6;line-height:1.5}#arena:fullscreen{aspect-ratio:auto;height:100vh;width:100vw}#arena:fullscreen canvas{object-fit:contain}@media(max-width:640px){header{height:60px;padding:0 20px}.edition{display:none}main{padding:25px 12px 0}.intro{margin-bottom:22px}.record strong{font-size:20px}.record span{font-size:7px}.intro p{font-size:10px}h1{font-size:37px}.eyebrow{font-size:8px;letter-spacing:1px}#arena{aspect-ratio:4/5}canvas{object-fit:fill}.hud{top:15px;left:15px;right:15px}.hud strong{font-size:16px}.orbit{font-size:40px;margin-bottom:15px}h2{font-size:34px}.overlay-content p{font-size:11px}.bottom-hud{left:12px;right:12px;gap:8px}.meter{width:65px}.pulse-info{gap:5px;font-size:7px}#pulse{padding:10px 8px}.instructions{gap:15px;grid-template-columns:1fr}.instructions article{gap:16px}.instructions p br{display:none}.instructions p{font-size:11px}footer{font-size:6px;gap:10px}.choices{gap:6px}.choice{padding:12px 8px;width:95px}.choice b{font-size:11px}.choice span{font-size:9px}}

/* Keep the arena's coordinate system and every control visible in fullscreen. */
#game{cursor:crosshair}.toolbar button:last-child{font-size:10px;color:var(--mint)}
.game-shell:fullscreen,.game-shell.expanded{position:fixed;inset:0;z-index:1000;width:100vw;height:100dvh;border:0;border-radius:0;display:flex;flex-direction:column;align-items:center;background:#050a12}
.game-shell:fullscreen .toolbar,.game-shell.expanded .toolbar{width:100%;flex:0 0 42px}
.game-shell:fullscreen #arena,.game-shell.expanded #arena{width:min(100vw,calc((100dvh - 74px)*1000/650));height:auto;aspect-ratio:1000/650;flex:none;margin:auto}
.game-shell:fullscreen .game-footer,.game-shell.expanded .game-footer{width:100%;flex:0 0 32px}
.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:420px;margin:18px auto 0}.choice{width:auto;min-width:0}.bottom-hud{pointer-events:none}.bottom-hud button{pointer-events:auto}
@media(max-height:550px){.game-shell:fullscreen h2,.game-shell.expanded h2{font-size:27px;margin:8px 0}.game-shell:fullscreen .orbit,.game-shell.expanded .orbit{display:none}.choices{margin-top:6px;gap:5px}.choice{padding:8px}.overlay-content p{margin:6px 0}.primary{padding:10px;margin:6px}}

.fleet{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px auto;max-width:580px}.ship,.mode,.secondary{background:#142332;border:1px solid #3e5064;border-radius:4px;color:#d5dfeb;padding:13px;text-align:left}.ship b{display:block;color:var(--mint);font-size:15px;margin-bottom:7px}.ship span{display:block;font-size:11px;line-height:1.4}.ship small{display:block;font:8px monospace;margin-top:10px;color:#8cacc4}.ship:disabled{opacity:.45;cursor:default}.selected{border-color:var(--mint);background:#26382b}.mode-row{display:flex;gap:8px;justify-content:center}.mode{font:10px monospace;min-width:150px;text-align:center}.mode small{display:block;font-size:9px;margin-top:5px;color:#9aafbd}.overlay-content{max-height:calc(100% - 100px);overflow:auto;padding:10px 8px;scrollbar-width:thin}.overlay-content h2{font-size:clamp(28px,3.5vw,44px)}.run-reward{color:var(--mint);font:700 38px monospace;margin:15px 0}.run-reward span{font-size:12px}.reward-track{height:5px;max-width:280px;margin:18px auto;background:#26364a}.reward-track i{display:block;height:100%;background:var(--mint)}.end-actions{display:flex;align-items:center;gap:10px;justify-content:center}.secondary{font-size:10px;font-weight:700;text-align:center;padding:17px}.mission-hud{position:absolute;left:25px;right:25px;bottom:62px;display:flex;justify-content:space-between;gap:8px;font:10px monospace;color:#82d9d9;pointer-events:none}#dash{margin-left:auto;background:#142330;border:1px solid #506174;padding:9px 12px;font:9px monospace}#dash.ready{color:#8deaff;border-color:#498b9a}.bottom-hud{gap:10px}#overlay{z-index:3}.hud,.bottom-hud,.mission-hud{z-index:2}#banner{z-index:1}.overlay-content>small{line-height:1.6}
@media(max-width:640px){.fleet{gap:5px}.ship{padding:9px 6px}.ship b{font-size:12px}.ship span{font-size:9px}.ship small{font-size:7px}.mode{min-width:0;padding:9px}.mission-hud{left:12px;right:12px;font-size:8px}.end-actions{gap:5px;flex-wrap:wrap}.overlay-content p br{display:none}.overlay-content h2{font-size:28px;margin:8px 0}.pulse-info>span{display:none}#dash{padding:9px 7px}.overlay-content{max-height:calc(100% - 70px)}.run-reward{font-size:28px;margin:8px}}
@media(max-height:550px){.overlay-content h2{font-size:25px}.fleet{margin:6px auto}.ship{padding:7px}.ship span{font-size:9px}.mode{padding:7px}}

#music{color:var(--mint);white-space:nowrap}@media(max-width:640px){.toolbar{padding:0 10px;letter-spacing:.5px}.toolbar-right{gap:10px}.toolbar button{font-size:8px}.toolbar button:last-child{font-size:8px}}

.game-shell{position:relative}#music-panel{position:absolute;top:45px;right:12px;z-index:20;width:min(370px,calc(100% - 24px));max-height:calc(100% - 60px);overflow:auto;padding:20px;background:#142130;border:1px solid #536879;border-radius:6px;box-shadow:0 15px 60px #000b}#music-panel[hidden]{display:none}.music-panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;font-size:17px}.music-panel-heading button{background:transparent;padding:6px}.file-label{display:block;font-size:12px;margin-bottom:10px}#mp3-file{max-width:100%;font-size:11px;color:#c5d3df}#mp3-file::file-selector-button{background:var(--mint);border:0;border-radius:3px;padding:9px;margin-right:8px;color:#142130;cursor:pointer}#track-status{font-size:12px;line-height:1.6;color:#b6ff63;overflow-wrap:anywhere}.volume-label{display:flex;align-items:center;gap:12px;font-size:12px;margin:18px 0}.volume-label input{min-width:0;accent-color:var(--mint)}#music-panel small{display:block;color:#9cb0c0;font-size:10px;line-height:1.7;margin-top:15px}#audio-settings{white-space:nowrap}@media(max-width:640px){.toolbar-right{gap:7px}.toolbar{font-size:8px}.toolbar kbd{display:none}#music-panel{padding:15px}}

.volume-label input{flex:1}.volume-label output{width:34px;font:10px monospace;color:var(--mint)}

.toolbar-right{gap:12px}@media(max-width:640px){.toolbar{height:auto;min-height:42px;flex-wrap:wrap;gap:7px;padding:8px}.toolbar-right{flex-wrap:wrap;gap:8px}.game-shell:fullscreen .toolbar,.game-shell.expanded .toolbar{flex-basis:64px}.game-shell:fullscreen #arena,.game-shell.expanded #arena{width:min(100vw,calc((100dvh - 96px)*1000/650))}}

.mode-row{flex-wrap:wrap}.mode{flex:1;min-width:0;max-width:220px}

/* Hangar progression panels keep fleet, modules, and contracts one click away. */
#overlay:has(.hangar-tabs) .overlay-content{width:min(760px,94%);max-width:94%;max-height:calc(100% - 40px);padding:8px 12px}
#overlay:has(.hangar-tabs) h2{font-size:28px;margin:9px 0}
.pilot-track{max-width:540px;margin:12px auto;text-align:left}.pilot-track>div:first-child{display:flex;justify-content:space-between;gap:10px;font:10px monospace}.pilot-track b{color:var(--mint)}.pilot-track span,.pilot-track small{color:#93aabd}.pilot-track small{display:block;font:9px monospace;margin-top:6px}.progress-meter{height:5px;background:#26364a;border-radius:3px;overflow:hidden;margin:7px 0}.progress-meter i{display:block;height:100%;background:var(--mint);transition:width .3s}
.hangar-tabs{display:flex;gap:8px;justify-content:center;margin:12px auto}.hangar-tabs button{background:#142332;border:1px solid #3e5064;border-radius:3px;padding:9px 14px;font:10px monospace}.hangar-tabs button.selected{border-color:var(--mint);background:#26382b;color:var(--mint)}
.fleet{grid-template-columns:repeat(5,minmax(0,1fr));max-width:720px}.ship{padding:10px}.ship b{font-size:14px}.ship span{font-size:10px}.ship small{font-size:8px}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px auto;max-width:680px}.module{background:#142332;border:1px solid #3e5064;border-radius:4px;padding:12px;text-align:left}.module b,.module span,.module small{display:block}.module b{font-size:12px;color:var(--mint);margin-bottom:6px}.module span{font-size:10px;line-height:1.5;color:#b2c2cf}.module small{font:8px monospace;margin-top:9px;color:#91acbe}.module.selected{border-color:var(--mint);background:#26382b}.module:disabled{opacity:.48;cursor:default}.panel-hint{margin:10px 0;font-size:11px!important}
.contract-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px auto;max-width:680px}.contract{border:1px solid #344b5f;background:#122331;border-radius:4px;padding:13px;text-align:left}.contract b{font-size:12px;color:#d4efbe}.contract b span{display:block;font:8px monospace;color:#8aafba;margin-top:5px}.contract p{font-size:10px!important}.contract small{font:9px monospace;color:var(--mint)}.career-stats{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;font:9px monospace;color:#92b9cb;margin:13px 0}.loadout-line{font:9px/1.6 monospace;color:#87b9c2;margin-top:12px}.career-result{border-top:1px solid #33445a;border-bottom:1px solid #33445a;margin:14px auto;padding:12px;max-width:450px}.career-result>strong{font:12px monospace;color:var(--mint)}.career-result p{font-size:10px!important;margin:6px 0}.build-summary{max-width:420px;font:10px/1.7 monospace;color:#88b5c7;margin:10px auto}
@media(max-width:640px){.fleet{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.ship{padding:8px}.ship b{font-size:12px}.ship span{font-size:9px}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-grid{grid-template-columns:1fr}.contract{padding:10px}.pilot-track{margin:8px auto}.hangar-tabs{margin:8px auto}.career-stats{gap:8px}.mode small{font-size:8px}#overlay:has(.hangar-tabs) .overlay-content{max-height:calc(100% - 30px)}}
@media(max-height:550px){#overlay:has(.hangar-tabs) h2{font-size:22px}.ship{padding:7px}.ship span{font-size:9px}.module{padding:8px}.module span{font-size:9px}.pilot-track{margin:7px auto}.hangar-tabs{margin:7px auto}}

.ship-preview{display:block;width:100%;height:62px;margin:0 auto 7px;filter:drop-shadow(0 0 7px #ffffff15)}.ship:disabled{opacity:.65}.ship:disabled .ship-preview{opacity:.8}.ship b{margin-bottom:6px}.mode-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:720px;margin:12px auto}.mode{width:100%;max-width:none;padding:11px 7px}.nightmare-mode{border-color:#8c4262!important;color:#ff99b1!important}.nightmare-mode.selected{background:#402337!important;border-color:#ff739f!important;box-shadow:0 0 18px #ff527f20}.nightmare-details{font:9px/1.6 monospace!important;letter-spacing:.4px;color:#ff9bb2!important;max-width:660px;margin:8px auto!important}
@media(max-width:640px){.mode-row{grid-template-columns:repeat(2,minmax(0,1fr))}.ship-preview{height:48px}.nightmare-details{font-size:8px!important}}
@media(max-height:550px){.ship-preview{height:40px}.ship span{font-size:8px}.nightmare-details{font-size:8px!important}}
