/* Retro cartridge edition: sharp borders, pixel-scaled art, red boot-logo branding. */
:root{--cream:#fff3c4;--gold:#ffd45b;--navy:#081b35;--muted:#96b8cd}
body{font-family:'Courier New',monospace;background:#081b35}
#world{image-rendering:pixelated;image-rendering:crisp-edges}
.vignette{background:linear-gradient(180deg,#03172a55,transparent 40%,#04162933);box-shadow:inset 0 0 100px #06132344}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.brand{font-family:'Courier New',monospace;font-size:11px;letter-spacing:1px}.brand-mark{font-family:'Courier New',monospace;font-style:normal;border:2px solid #ffcd66;box-shadow:3px 3px #071627}.brand-mark span{background:#103359}
.icon-button,.destination,.primary,.crew-panel,.character,.modal-card,.toast,.arrival-footer,kbd,.progress-track,.progress-track>div,.boost-meter>div,#touch-controls button{border-radius:0}
.icon-button{border-width:2px;background:#081a36}.edition{font-size:10px;font-weight:bold;text-shadow:2px 2px #122d43}.selection{padding-top:100px}
.intro{position:relative}.eyebrow{font-size:10px;letter-spacing:2px;text-shadow:2px 2px #112a44}
.intro .game-logo{width:min(520px,76vw);height:160px;margin:13px auto 9px;position:relative;overflow:hidden;background:#07172bf0;box-shadow:4px 4px 0 #09203f;border:2px solid #efba694d}
.game-logo img{position:absolute;width:155%;max-width:none;height:auto;left:-27.5%;top:-24px;image-rendering:pixelated;mix-blend-mode:normal}
.intro p{font:700 13px 'Courier New',monospace;letter-spacing:1px;margin-bottom:13px;color:#fff4cc;text-shadow:2px 2px #1b2d50}
.destination{background:#061b3cd9;border:1px solid #efbb63;font-size:9px;font-weight:bold;letter-spacing:1px;padding:8px 15px}
.crew-panel{background:#081b36f5;border:2px solid #75a8ad;box-shadow:5px 5px 0 #020e25,inset 0 0 0 3px #122d4a;backdrop-filter:none;padding:20px 24px 18px;width:min(1160px,100%)}
.step{font-size:9px;letter-spacing:2px}.crew-heading h2{font:bold 22px 'Courier New',monospace;letter-spacing:1px;text-shadow:2px 2px #48616a;margin-top:9px}.crew-count{font-size:9px;color:#8eb9c5}.crew-count span{color:#ffcb5b}
.characters{gap:8px}.character{border:2px solid #315771;background:linear-gradient(#173456 70%,#254c5c 70%,#254c5c 92%,#13253e 92%);padding-bottom:10px;box-shadow:inset 0 0 0 2px #0c2440;color:#b5d2df}.character canvas{width:80px;max-width:100%;height:96px;margin:0 auto;image-rendering:pixelated}.character:hover{background:#2f5871;transform:translateY(-3px)}.character[aria-pressed=true]{border:2px solid #ffd15d;background:linear-gradient(#425d69 70%,#739878 70%,#739878 92%,#253f48 92%);box-shadow:0 0 0 2px #ffd15d44;color:#fff3c4}.character[aria-pressed=true]:after{border-radius:0;content:'►';font-size:10px;background:#ffd15d;right:4px;top:4px}.character-label{font:bold 10px 'Courier New',monospace;letter-spacing:-.35px}.character-number{font-size:8px;opacity:.7}
.pilot-info>span{font:bold 16px 'Courier New',monospace;color:#ffda6d}.pilot-info small{font-size:10px;color:#a6c1cb}.primary{border:2px solid #fff1aa;border-right-color:#ca8530;border-bottom-color:#ca8530;box-shadow:4px 4px 0 #030f27;background:#ffca50;font:bold 12px 'Courier New',monospace;letter-spacing:1px;padding:15px 25px}.primary:hover{background:#ffe58a}.primary span{font-family:monospace}.menu-foot{width:min(1160px,100%);font-size:8px;color:#d6e4d3;font-weight:bold;text-shadow:1px 1px #061b30}
.hud{filter:drop-shadow(2px 2px #04152b)}.hud small,.flight-bottom small{font-size:9px}.hud b{font-size:13px}.hud-block>span{font-size:9px}.flight-center strong{font:bold 38px 'Courier New',monospace}.flight-center strong span{font:10px 'Courier New',monospace}.hud-block{width:240px}.progress-track{height:8px;border:2px solid #0d2647}.toast{font-weight:bold;border:2px solid #eab957;background:#081c39ed}.flight-bottom{font-size:9px;font-weight:bold;filter:drop-shadow(2px 2px #071b32)}#speed{font:bold 24px 'Courier New',monospace}.text-button{font-weight:bold}
.modal-card{border:3px solid #88b2b5;background:#0b2142;box-shadow:7px 7px #020c20}.modal h2{font:bold 29px 'Courier New',monospace}.modal p{font-family:'Courier New',monospace}.arrival h2{font:bold clamp(30px,5vw,68px) 'Courier New',monospace;letter-spacing:-2px;text-shadow:4px 4px #092240}.arrival h2 em{font-style:normal}.arrival-heading p{font:bold 14px 'Courier New',monospace;text-shadow:2px 2px #102b40}.arrival-footer{border:2px solid #7aa4a5;background:#081d38f5;box-shadow:5px 5px #051329}.arrival-footer h3{font:bold 20px 'Courier New',monospace}.arrival-footer p{font-size:10px}.boost-meter>div{height:8px;border:2px solid #a0bfc0}
@media(min-height:850px){.selection{padding-top:105px}.character canvas{height:110px;width:92px}}
@media(max-width:760px){.selection{padding-top:100px}.intro .game-logo{height:110px;width:350px;max-width:89vw;margin:12px auto}.game-logo img{top:-13px}.intro .eyebrow{font-size:7px}.intro p{font-size:10px}.destination{font-size:7px;padding:7px 9px}.crew-panel{padding:16px 13px}.crew-heading h2{font-size:19px}.characters{grid-template-columns:repeat(9,99px);padding-bottom:9px}.character canvas{height:96px;width:80px}.character-label{font-size:9px}.pilot-info>span{font-size:14px}.pilot-info small{font-size:9px;max-width:150px}.primary{font-size:10px;padding:13px 14px}.crew-heading{margin-bottom:13px}.boarding-footer{gap:10px}.menu-foot{font-size:6px}.hud-block{width:150px}.hud b{font-size:10px}.hud small{font-size:7px}.hud-block>span{font-size:7px}.flight-center strong{font-size:30px}.flight-center{top:90px}.toast{font-size:9px;letter-spacing:.5px;padding:10px 12px}.arrival h2{font-size:30px}.arrival-footer h3{font-size:15px}.arrival-footer p{font-size:8px}.arrival-heading p{font-size:11px}}
@media(max-height:700px) and (min-width:761px){.selection{padding-top:80px}.intro .game-logo{width:410px;height:125px;margin:8px auto}.game-logo img{top:-17px}.intro p{font-size:10px}.character canvas{height:72px;width:60px}.crew-panel{padding:12px 20px}.crew-heading h2{font-size:18px}.crew-heading{margin-bottom:9px}.primary{padding:12px 20px}.destination{padding:5px 10px}.menu-foot{padding-top:10px}}
@media(max-height:600px) and (max-width:760px){body:has(#selection:not([hidden])){overflow-y:auto}.selection{position:relative;min-height:740px}.intro .game-logo{height:102px;width:330px}.crew-panel{margin-top:170px}.menu-foot{padding-bottom:12px}}

/* Display the supplied standalone header intact, at its exact 456:145 ratio. */
.intro .game-logo{width:min(520px,86vw);height:auto;aspect-ratio:456/145;overflow:visible;background:#000;border:0;box-shadow:none}
.game-logo img{position:static;display:block;width:100%;max-width:100%;height:auto;left:auto;top:auto;image-rendering:auto}
.brand img{display:block;width:174px;height:auto}
@media(max-width:760px){.intro .game-logo{width:min(350px,89vw)}.brand img{width:138px}}
@media(max-height:700px) and (min-width:761px){.intro .game-logo{width:410px}}

/* One sprite pixel is always an integer square; cards scroll instead of squeezing. */
#actors{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;image-rendering:pixelated}
.characters{grid-template-columns:repeat(9,minmax(110px,1fr));overflow-x:auto;padding-bottom:8px}
.character canvas{display:block;width:96px;height:112px;min-width:96px;max-width:none;flex-shrink:0;image-rendering:pixelated}
.intro .game-logo{aspect-ratio:427/122;background:transparent}
.game-logo img,.brand img{background:transparent}
