@charset "UTF-8";
.mission-telemetry{position:absolute;right:5%;top:185px;width:200px;pointer-events:none}.fuel-track{height:5px;background:#70878638;border-radius:3px;overflow:hidden}.fuel-track i{display:block;height:100%;width:100%;background:#a5dbca}.fuel-track.low i{background:#edb777}.terrain-site{font:8px Consolas,monospace;letter-spacing:1px;color:#87a5a1;margin-top:18px}
@media(max-width:1000px){.mission-telemetry{top:160px;width:165px}}
@media(max-width:640px){.mission-telemetry{top:138px;right:6%;width:125px}.terrain-site{font-size:7px}}
:root{color-scheme:dark;--ink:#111b20;--paper:#f0eee4;--muted:#a3b0b5;--line:#bbcac72b;--amber:#edb777;--mint:#a5dbca;--font:"Bahnschrift","DIN Alternate","Franklin Gothic Medium",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--font);font-weight:400}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;transition:background .18s,color .18s,transform .18s}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible{outline:2px solid var(--amber);outline-offset:6px}button:hover:not(:disabled){transform:translateY(-1px)}[hidden]{display:none!important}#game{position:relative;width:100%;height:100dvh;min-height:580px;overflow:hidden;background:#111b20}#viewport,canvas,.vignette{position:absolute;inset:0;width:100%;height:100%;display:block}.vignette{pointer-events:none;background:linear-gradient(90deg,#07111694 0%,transparent 51%),linear-gradient(0deg,#091116c9,transparent 26%,transparent 85%,#09111675)}header{position:absolute;inset:0 0 auto;height:112px;display:flex;align-items:center;justify-content:space-between;margin:0 48px;border-bottom:1px solid var(--line);z-index:2}.brand{display:flex;gap:13px;text-decoration:none;color:var(--paper);font-size:25px;letter-spacing:5px;align-items:center}.brand svg{width:40px;fill:none;stroke:var(--amber);stroke-width:1.3}.brand-sub{display:block;letter-spacing:2.1px;font-size:8px;margin-top:4px}.header-center{font:10px Consolas,monospace;letter-spacing:1.7px;display:flex;align-items:center;gap:12px}.muted{color:#677578}.live-dot{display:inline-block;width:5px;height:5px;background:var(--mint);border-radius:50%;box-shadow:0 0 10px #93dfb977}nav{display:flex;align-items:center;gap:10px}button.quiet{background:none;border:0;color:var(--paper);font-size:13px;margin-right:15px}.quiet span{margin-left:10px;color:var(--amber)}.icon{border:1px solid var(--line);width:33px;height:33px;background:#10212a50;color:var(--paper);border-radius:50%;font-size:17px}.icon[aria-pressed=true]{color:var(--amber);border-color:var(--amber)}.eyebrow{font:10px Consolas,monospace;letter-spacing:2.1px;color:var(--amber)}.short-line{display:inline-block;width:24px;height:1px;background:var(--amber);vertical-align:middle;margin-right:10px}.intro{position:absolute;left:7%;top:25%;z-index:1}.intro h1{font-weight:300;font-stretch:condensed;font-size:clamp(64px,7vw,112px);line-height:.92;letter-spacing:-4px;margin:26px 0;color:#f3f1e8}.intro p{font-size:15px;line-height:1.75;color:#aebabd;margin:0 0 28px}.intro-actions{display:flex;gap:12px}.primary,.secondary{padding:17px 22px;min-width:163px;text-align:left;font-size:13px;border:1px solid var(--amber);border-radius:2px;display:flex;align-items:center;justify-content:space-between;gap:26px}.primary{background:var(--amber);color:#15232a}.secondary{background:#12242e5e;color:var(--paper);border-color:#c4d0d352}.primary:hover{background:#ffd299}.secondary:hover{background:#263e47}.loading{margin-top:22px;font:9px Consolas,monospace;letter-spacing:1.5px;color:#b2bcba}.location-tag{position:absolute;right:6%;top:44%;display:flex;align-items:center;gap:13px;font:10px Consolas,monospace;letter-spacing:1.2px;color:#c4cdc9b0;pointer-events:none}.location-tag small{display:block;font-size:8px;letter-spacing:1px;margin-top:7px;color:#92a3a4}.cross{font-size:27px;font-weight:100;color:var(--amber)}footer{position:absolute;bottom:0;left:48px;right:48px;height:104px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;z-index:3}.mission,.circuit-info{display:flex;gap:20px;align-items:center}.mission-number{font-size:39px;font-weight:300;opacity:.65;line-height:1}.mission strong,.circuit-info strong{display:block;font:10px Consolas,monospace;letter-spacing:1.4px}.mission div>span,.circuit-info div>span{display:block;font-size:10px;color:#95a4a8;margin-top:8px;letter-spacing:.3px}.neural-mark{color:var(--amber);font-size:33px}.flight-controls{display:flex;gap:5px}.flight-controls button{border:1px solid transparent;color:#d7ddd9;background:none;font-size:11px;padding:10px 15px}.flight-controls button:hover{border-color:var(--line)}.instruments{position:absolute;left:5%;top:150px;width:220px;pointer-events:none}.altitude{display:flex;align-items:center;gap:14px;margin:15px 0 26px}.altitude>span{font-size:54px;letter-spacing:-2px;font-weight:300;font-variant-numeric:tabular-nums}.altitude small{font:8px/1.7 Consolas,monospace;letter-spacing:1px;color:#9eadaf}.readout{display:flex;align-items:center;justify-content:space-between;position:relative;margin:13px 0;font:9px Consolas,monospace;letter-spacing:.7px;color:#99adaf}.readout strong{font-size:13px;font-weight:400;color:var(--paper);font-variant-numeric:tabular-nums}.readout i{width:4px;height:4px;border-radius:50%;position:absolute;right:-10px;background:var(--mint)}.flight-divider{height:1px;background:var(--line);margin:22px 0}.dopamine-track{height:3px;background:#70878638;position:relative}.dopamine-track:before{content:"";height:7px;width:1px;background:#657b7e;position:absolute;left:50%;top:-2px}.dopamine-track i{position:absolute;left:50%;height:3px;background:var(--mint)}.changed{font:9px Consolas,monospace;color:#88a7a4;margin-top:12px}.flight-status{position:absolute;top:148px;right:5%;font:9px Consolas,monospace;letter-spacing:1.5px;display:flex;align-items:center;gap:10px}.result{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);width:360px;padding:34px;background:#0e1d24ef;border:1px solid #a9bbad40;box-shadow:0 18px 80px #0007;z-index:4;backdrop-filter:blur(16px)}.result h2{font-size:58px;font-weight:300;letter-spacing:-2px;margin:18px 0 12px;line-height:1}.result p{font-size:13px;line-height:1.65;color:#a6b7ba}.result-stats{display:flex;gap:36px;margin:25px 0}.result-stats span{display:block;font:8px Consolas,monospace;color:#849ba0;letter-spacing:1px}.result-stats strong{font-size:25px;display:block;font-weight:300;margin-top:9px}.result .primary{width:100%}.error{position:absolute;z-index:12;top:115px;left:50%;transform:translateX(-50%);max-width:85%;padding:16px 24px;background:#602c26;color:#fff0dc;font-size:13px;border:1px solid #ce8f6a}.touch-controls{position:absolute;bottom:127px;left:50%;transform:translateX(-50%);gap:12px;display:flex;z-index:4}.touch-controls button{width:52px;height:44px;background:#10232eb0;border:1px solid #afc2bd55;color:#e4e7dc;border-radius:3px;touch-action:none;user-select:none;font-size:22px}.touch-controls button[data-action="2"]{width:94px;font:10px Consolas,monospace;letter-spacing:2px}.touch-controls button.active{background:var(--amber);color:var(--ink)}dialog{width:min(530px,90vw);max-height:85dvh;padding:40px;color:var(--paper);background:#14242b;border:1px solid #899f9959;box-shadow:0 24px 100px #000a}dialog::backdrop{background:#07111899;backdrop-filter:blur(8px)}dialog h2{font-size:38px;font-weight:300;margin:20px 0}dialog p{font-size:13px;line-height:1.8;color:#afbbbd}dialog dl{display:grid;grid-template-columns:1fr 1.3fr;gap:14px 20px;font-size:12px;margin:26px 0}dialog dt{font-family:Consolas,monospace;color:var(--amber)}dialog dd{margin:0;color:#bdc7c7}dialog .guide-note{font-size:11px;color:#91a5aa}dialog hr{border:0;border-top:1px solid var(--line);margin:25px 0}.close{position:absolute;top:14px;right:18px;background:none;border:none;color:#b3c3c4;font-size:26px}.playing .location-tag{opacity:.35}.playing .circuit-info{display:none}.playing .vignette{background:linear-gradient(0deg,#091116c9,transparent 23%,transparent 85%,#09111675)}
@media(min-width:1600px){.intro{top:27%}.instruments{top:180px}}
@media(max-width:1000px){header{margin:0 28px;height:90px}.header-center{display:none}.intro{left:6%;top:24%}.intro h1{font-size:84px}.location-tag{top:34%}footer{left:28px;right:28px}.instruments{top:122px;width:185px}.flight-status{top:122px}.circuit-info strong{font-size:8px;letter-spacing:.8px}}
@media(max-width:640px){#game{min-height:650px}header{margin:0 20px;height:80px}.brand{font-size:18px;letter-spacing:3px;gap:8px}.brand svg{width:30px}.brand-sub{font-size:6px;letter-spacing:1.3px}nav{gap:7px}.quiet{margin-right:0!important;font-size:11px!important}.quiet span{display:none}#fullscreen{display:none}.icon{width:28px;height:28px;font-size:14px}.intro{left:7%;top:20%}.intro .eyebrow{font-size:8px;letter-spacing:1.2px}.intro h1{font-size:70px;letter-spacing:-3px;margin-top:22px}.intro p{font-size:12px;line-height:1.7}.primary,.secondary{min-width:134px;padding:14px 15px;font-size:11px;gap:16px}.intro-actions{gap:8px}.loading{font-size:8px}.location-tag{right:7%;top:68%;font-size:8px;gap:8px}.location-tag small{font-size:7px}footer{left:20px;right:20px;height:92px}.mission-number{font-size:30px}.mission{gap:12px}.mission strong{font-size:8px;letter-spacing:1px}.mission div>span{font-size:9px}.circuit-info{display:none}.instruments{left:7%;top:105px;width:135px}.instruments .eyebrow{font-size:8px;letter-spacing:.7px}.altitude{gap:8px;margin:10px 0 14px}.altitude>span{font-size:40px}.altitude small{font-size:6px}.readout{font-size:7px;letter-spacing:.1px;margin:11px 0}.readout strong{font-size:10px}.flight-divider{margin:15px 0}.flight-status{top:103px;right:6%;font-size:7px;letter-spacing:.7px;max-width:130px}.playing .mission{display:none}.playing .flight-controls{width:100%;justify-content:space-between}.flight-controls button{padding:10px;font-size:11px}.result{width:300px;top:47%;padding:25px}.result h2{font-size:50px}.touch-controls{bottom:110px}.changed{font-size:7px}.playing .location-tag{display:none}dialog{padding:30px}.guide-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.touch-controls{left:auto;right:5%;transform:none}
.touch-controls button{height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:none}
.touch-controls button:disabled{cursor:default;opacity:1}
.touch-controls button kbd{font:22px/1 Consolas,monospace;letter-spacing:0}
.touch-controls button span{font:8px/1 Consolas,monospace;letter-spacing:1px}
.touch-controls button.active{border-color:var(--amber);box-shadow:0 0 18px #edb77755,inset 0 -3px 0 #aa703c;transform:translateY(1px)}
.action-caption{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);white-space:nowrap;font:8px Consolas,monospace;letter-spacing:1px;color:var(--amber);pointer-events:none}
@media(max-width:640px){.touch-controls{left:50%;right:auto;transform:translateX(-50%)}}
.fly-pilot{position:absolute;bottom:calc(100% - 5px);left:50%;transform:translateX(-50%);width:260px;height:132px;overflow:visible;pointer-events:none;filter:drop-shadow(0 5px 7px #071319bb)}
.fly-operated .action-caption{bottom:calc(100% + 136px)}
.fly-body{transform-origin:130px 65px;transition:transform 35ms linear}
.fly-pilot[data-press="1"] .fly-body{transform:rotate(-5deg)}
.fly-pilot[data-press="2"] .fly-body{transform:translateY(2px)}
.fly-pilot[data-press="3"] .fly-body{transform:rotate(5deg)}
.fly-pilot[data-press]:not([data-press="rest"]) .fly-wing{opacity:.82}
@media(max-width:640px){.fly-pilot{width:222px;height:113px;bottom:calc(100% - 4px)}.fly-operated .action-caption{bottom:calc(100% + 119px)}}
.target-settings{border:1px solid var(--line);padding:14px 17px;margin:0 0 18px;max-width:360px;background:#10242bd9;border-radius:3px}.target-settings legend{font:9px Consolas,monospace;letter-spacing:1.6px;color:var(--mint);padding:0 6px}.target-switch{display:flex;gap:10px;align-items:center;font-size:14px}.target-settings input{accent-color:var(--amber)}.target-switch input{width:18px;height:18px;margin:0}.speed-label{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);margin:14px 0 5px}.speed-label output{color:var(--paper);font-family:Consolas,monospace}.target-settings input[type=range]{width:100%;cursor:pointer}.target-settings input:disabled{opacity:.35}.intro .target-settings p{font-size:10px;line-height:1.4;margin:7px 0 0}.intro{top:19%}.intro h1{font-size:clamp(62px,6vw,92px);margin:18px 0}.intro>p{margin-bottom:16px}
@media(max-width:640px){.intro{top:17%;right:7%}.intro h1{font-size:56px;margin:14px 0}.intro .eyebrow{font-size:7px}.target-settings{padding:10px 13px;margin-bottom:12px}.target-switch{font-size:12px}.speed-label{margin-top:10px}.intro .target-settings p{font-size:9px}.intro .loading{margin-top:14px}.location-tag{display:none}#game{min-height:760px}}
.memory-switch{margin-top:10px;font-size:12px}.memory-switch input{flex-shrink:0}#memory-status strong{font-size:10px}#memory-note{color:var(--mint)}
@media(max-width:640px){.memory-switch{font-size:11px}#memory-status strong{font-size:8px}.intro h1{font-size:50px}.intro{top:15%}}
.mission-settings{display:grid;grid-template-columns:360px 280px;gap:14px}.mission-settings .target-settings{min-width:0;max-width:none;margin-bottom:16px}.intro{top:15%;max-height:calc(85% - 110px);overflow-y:auto;padding-right:8px}.intro h1{font-size:clamp(54px,5.5vw,82px)}.atmosphere-settings p:last-child{color:var(--muted)}
@media(max-width:900px){.mission-settings{grid-template-columns:320px 250px}.intro{left:5%}}
@media(max-width:640px){.mission-settings{grid-template-columns:1fr;gap:0}.intro{left:7%;top:100px;max-height:calc(100% - 200px);padding-right:6px}.intro h1{font-size:42px;margin:10px 0}.intro h1 br{display:none}.intro>p{margin:8px 0 12px}.intro .eyebrow{font-size:7px}.mission-settings .target-settings{margin-bottom:10px;padding:8px 12px}.atmosphere-settings p:last-child{display:none}.intro .loading{margin-top:10px}.speed-label{margin-top:8px}.target-switch{font-size:11px}}
/* Settings live in the page flow: short screens scroll the page, never a nested panel. */
#game:not(.playing){height:auto;min-height:100dvh;padding:140px 7% 132px}
#game:not(.playing) .intro{position:relative;inset:auto;width:min(654px,100%);max-height:none;overflow:visible;padding:0}
#game:not(.playing) .intro h1{font-size:clamp(48px,5.5vw,76px)}
#game:not(.playing) .intro h1 br{display:none}
.mission-settings{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.target-settings{background:#10242b80}
.intro #export-note{margin-top:10px}
@media(max-width:1000px){#game:not(.playing){padding-top:118px}}
@media(max-width:640px){#game:not(.playing){padding:102px 7% 118px}.mission-settings{grid-template-columns:1fr}#game:not(.playing) .intro h1{font-size:42px}}
/* The fly keyboard follows the physical landing pad in world space. */
.touch-controls.pad-following{left:var(--pad-x);right:auto;top:var(--keys-y);bottom:auto;transform:translateX(-50%) scale(var(--pilot-scale));transform-origin:top center;width:222px;gap:12px;pointer-events:none}
.pad-following .fly-pilot{width:260px;height:132px;bottom:calc(100% - 5px)}
.pad-following.fly-operated .action-caption{bottom:calc(100% + 136px)}
.pad-following button{flex-shrink:0}

/* Keep the entire flight and its footer visible on smaller phones. */
@media(max-width:640px){#game.playing{min-height:560px}}

/* Repeated play taps must not zoom the page or select/call out HUD text. */
#game.playing{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#game button,#game button *{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
/* Held engine controls own their gestures; retain pointer cancellation/release. */
#game .touch-controls button,#game .touch-controls button *{touch-action:none}
