:root{--ink: #f4f5f7;--ink-dim: #9aa0a8;--case: #0a0a0c;--accent: #ffcc00;--good: #35d07f;--bad: #ff4d4d;--safe-t: env(safe-area-inset-top, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--font: ui-sans-serif, -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-num: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-radio: "B612 Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--min-aspect: 1.7778;--max-aspect: 2.2;--vw: 100vw;--vh: 100vh;--stage-w: min(var(--vw), var(--vh) * 2.2);--stage-h: min(var(--vh), var(--vw) / 1.7778);--u: calc(var(--stage-h) / 100);--gutter-l: calc(2.56 * var(--u) + var(--safe-l));--gutter-r: calc(2.05 * var(--u) + var(--safe-r));--stick-size: calc(34 * var(--u));--panel-w: calc(69.7 * var(--u));--tape-w: calc(14.9 * var(--u));--tape-gap: calc(2.56 * var(--u));--comms-peek: calc(19 * var(--u))}@supports (height: 100dvh){:root{--vw: 100dvw;--vh: 100dvh}}@font-face{font-family:B612 Mono;src:url(./b612mono-400-BDgzQEaT.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:B612 Mono;src:url(./b612mono-700-wbdMaN5I.woff2) format("woff2");font-weight:700;font-display:swap}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--case);color:var(--ink);font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none}body{position:fixed;inset:0}body{background:#000}#stage{position:absolute;left:50%;top:50%;width:var(--stage-w);height:var(--stage-h);transform:translate(-50%,-50%);overflow:hidden;background:var(--case)}#app{position:absolute;inset:0}.screen{position:absolute;inset:0;display:none}.screen.is-active{display:block}.screen--start,.screen--end{display:none;place-items:center;background:radial-gradient(circle at 50% 40%,#16181c,#08090b 70%)}.screen--start.is-active,.screen--end.is-active{display:grid}.panel{padding:calc(16px + var(--safe-t)) calc(20px + var(--safe-r)) calc(16px + var(--safe-b)) calc(20px + var(--safe-l));text-align:center;max-width:calc(143.59 * var(--u))}.title{margin:0 0 calc(1.54 * var(--u));font-size:calc(7 * var(--u));font-weight:700;letter-spacing:.16em;text-transform:uppercase}.title--sm{font-size:calc(4.4 * var(--u));letter-spacing:.12em}.subtitle{margin:0 0 calc(3.4 * var(--u));color:var(--ink-dim);font-size:calc(2.4 * var(--u))}.hint{margin:calc(2.6 * var(--u)) 0 0;color:var(--ink-dim);font-size:calc(2 * var(--u));line-height:1.5}.hint em{color:var(--ink);font-style:normal;font-weight:600}.btn{appearance:none;border:0;border-radius:calc(256.15 * var(--u));padding:calc(2.2 * var(--u)) calc(12.98 * var(--u));font:inherit;font-size:calc(2.8 * var(--u));font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;transition:transform .08s ease,filter .15s ease}.btn:active{transform:scale(.96)}.btn--primary{background:var(--accent);color:#16181c}.btn--ghost{background:transparent;color:var(--ink-dim);border:1px solid #2c2f35;margin-top:calc(2.56 * var(--u))}.results{display:flex;justify-content:center;gap:calc(8.66 * var(--u));margin:calc(3 * var(--u)) 0 calc(3.6 * var(--u))}.result{display:flex;flex-direction:column;gap:calc(1.03 * var(--u))}.result__value{font-family:var(--font-num);font-size:calc(5 * var(--u));font-weight:700;font-variant-numeric:tabular-nums}.result--primary .result__value{color:var(--accent);font-size:calc(7 * var(--u))}.result__label{font-size:calc(1.8 * var(--u));color:var(--ink-dim);text-transform:uppercase;letter-spacing:.1em}.horizon{position:absolute;inset:0;overflow:hidden;background:#2b7fc4}.horizon__ball,.horizon__roll{position:absolute;will-change:transform;transform-origin:50% 50%;pointer-events:none}.horizon__ball-svg,.horizon__roll-svg{display:block}.horizon__fixed{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.horizon__ladder-text{fill:#fff;font-family:var(--font-num);font-weight:600}.horizon__rollscale{filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}.horizon__symbol{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.7))}.horizon__symbol circle{fill:var(--accent);stroke:none}.screen--game.is-ontarget .horizon__symbol{stroke:var(--good)}.screen--game.is-ontarget .horizon__symbol circle{fill:var(--good)}.hud{position:absolute;top:calc(calc(1.54 * var(--u)) + var(--safe-t));left:calc(calc(2.56 * var(--u)) + var(--safe-l));display:flex;gap:calc(6.49 * var(--u));padding:calc(1.28 * var(--u)) calc(3.59 * var(--u));border-radius:calc(2.56 * var(--u));background:#0a0a0c8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:none}.hud__item{display:flex;flex-direction:column;align-items:center;line-height:1.1}.hud__label{font-size:calc(2.05 * var(--u));letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}.hud__value{font-family:var(--font-num);font-size:calc(3.6 * var(--u));font-weight:700;font-variant-numeric:tabular-nums}.hud__value.is-low{color:var(--bad)}.stick{position:absolute;left:var(--gutter-l);top:50%;transform:translateY(-50%);width:var(--stick-size);height:var(--stick-size);border-radius:calc(4.62 * var(--u));background:#0a0a0c6b;border:1.5px solid rgba(244,245,247,.28);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);touch-action:none;transition:background .15s ease,border-color .15s ease}.stick.stick--active{background:#0a0a0c8f;border-color:#ffcc008c}.stick__guide{position:absolute;background:#f4f5f729}.stick__guide--h{left:12%;right:12%;top:50%;height:calc(.26 * var(--u))}.stick__guide--v{top:12%;bottom:12%;left:50%;width:calc(.26 * var(--u))}.stick__home{position:absolute;left:50%;top:50%;width:calc(3.08 * var(--u));height:calc(3.08 * var(--u));margin:calc(-1.54 * var(--u)) 0 0 calc(-1.54 * var(--u));border-radius:50%;border:1px solid rgba(244,245,247,.34)}.stick__knob{position:absolute;left:50%;top:50%;width:calc(11.28 * var(--u));height:calc(11.28 * var(--u));margin:calc(-5.64 * var(--u)) 0 0 calc(-5.64 * var(--u));border-radius:50%;background:radial-gradient(circle at 38% 32%,#fff,#e6e8ec 55%,#b9bdc4);box-shadow:0 2px 8px #00000080;will-change:transform;pointer-events:none}.rightpanel{position:absolute;right:var(--gutter-r);top:calc(calc(1.03 * var(--u)) + var(--safe-t));bottom:calc(calc(1.03 * var(--u)) + var(--safe-b));display:flex;flex-direction:column;align-items:center;gap:calc(1.03 * var(--u));width:var(--panel-w)}.attitude-window{position:absolute;top:0;bottom:0;left:calc(var(--gutter-l) + var(--stick-size) + calc(3.08 * var(--u)));right:calc(var(--gutter-r) + var(--panel-w) + var(--tape-gap) + var(--tape-w) + calc(3.08 * var(--u)));pointer-events:none}.alt-tape{position:absolute;right:calc(var(--gutter-r) + var(--panel-w) + var(--tape-gap));top:15%;bottom:15%;width:var(--tape-w);border-radius:calc(1.54 * var(--u));background:#0a0a0c8c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:none;overflow:hidden}.alt-tape__svg{display:block}.alt-tape__tick-label{fill:#fff;font-family:var(--font-num);font-variant-numeric:tabular-nums}.alt-tape__band{fill:#35d07f33}.alt-tape__band-edge{stroke:var(--good);stroke-width:1.4;stroke-opacity:.85}.alt-tape__readout{position:absolute;left:calc(-.77 * var(--u));right:calc(-.77 * var(--u));top:50%;transform:translateY(-50%);padding:calc(.77 * var(--u)) calc(1.03 * var(--u));background:#0a0a0c;border:1.5px solid var(--ink);border-radius:calc(1.03 * var(--u));text-align:center;font-family:var(--font-num);font-size:calc(3.33 * var(--u));font-weight:700;font-variant-numeric:tabular-nums;transition:border-color .12s ease,color .12s ease}.alt-tape__readout.is-bust{border-color:var(--bad);color:var(--bad)}.task{position:relative;width:100%;padding:calc(1.28 * var(--u)) calc(2.56 * var(--u)) calc(1.79 * var(--u));border-radius:calc(2.56 * var(--u));background:#0a0a0c99;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-align:center;flex:none}.task__text{font-size:calc(2.9 * var(--u));font-weight:600;letter-spacing:.02em;white-space:nowrap;min-height:1.25em;line-height:1.25}.task__bar{margin-top:calc(1.28 * var(--u));height:calc(1.28 * var(--u));border-radius:calc(.77 * var(--u));background:#f4f5f729;overflow:hidden}.task__bar-fill{height:100%;width:100%;border-radius:calc(.77 * var(--u));background:var(--accent);transform-origin:left center}.task__bar-fill.is-urgent{background:var(--bad)}.task__flash{position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%,-4px);padding:calc(.77 * var(--u)) calc(2.56 * var(--u));border-radius:calc(256.15 * var(--u));font-family:var(--font-num);font-size:calc(2.2 * var(--u));font-weight:700;white-space:nowrap;opacity:0;pointer-events:none}.task__flash.is-shown{animation:flash-in 1.15s ease-out forwards}.task__flash.is-good{background:#35d07feb;color:#06120c}.task__flash.is-bad{background:#ff4d4deb;color:#1a0505}@keyframes flash-in{0%{opacity:0;transform:translate(-50%,-10px)}12%{opacity:1;transform:translate(-50%)}70%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}.dial{flex:1 1 0;min-height:0;width:100%;display:grid;place-items:center;overflow:hidden;touch-action:none;transition:filter .15s ease}.dial.dial--active{filter:drop-shadow(0 0 10px rgba(255,204,0,.35))}.dial svg{display:block}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#060709d1;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:10}.overlay[hidden]{display:none}.rotate-hint{position:fixed;inset:0;display:none;place-content:center;text-align:center;background:var(--case);z-index:100}.rotate-hint__icon{font-size:54px;margin-bottom:10px}.rotate-hint p{margin:0;color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;font-size:13px}@media(orientation:portrait)and (pointer:coarse){.rotate-hint{display:grid}}.banner{position:absolute;left:calc(var(--gutter-l) + var(--stick-size) + calc(3.08 * var(--u)));right:calc(var(--gutter-r) + var(--panel-w) + var(--tape-gap) + var(--tape-w) + calc(3.08 * var(--u)));top:24%;display:flex;flex-direction:column;align-items:center;gap:calc(.77 * var(--u));padding:calc(1.79 * var(--u)) calc(3.59 * var(--u));border-radius:calc(2.56 * var(--u));background:#0a0a0ce0;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-align:center;pointer-events:none;opacity:0}.banner[hidden]{display:none}.banner.is-shown{animation:banner-in .45s cubic-bezier(.16,1,.3,1) forwards}.banner__title{color:var(--accent);font-size:calc(3 * var(--u));font-weight:700;line-height:1.15;letter-spacing:.05em;text-transform:uppercase}.banner__subtitle{color:var(--ink);font-size:calc(2.1 * var(--u));line-height:1.25}@keyframes banner-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.alt-warning{position:absolute;right:calc(var(--gutter-r) + var(--panel-w) + var(--tape-gap));top:calc(15% - 26px);width:var(--tape-w);text-align:center;pointer-events:none;animation:warn-pulse .7s ease-in-out infinite}.alt-warning[hidden]{display:none}.alt-warning__text{display:block;font-size:calc(2.05 * var(--u));font-weight:700;letter-spacing:.1em;color:var(--bad)}.alt-warning__count{display:block;font-family:var(--font-num);font-size:calc(3.85 * var(--u));font-weight:700;color:var(--bad)}@keyframes warn-pulse{0%,to{opacity:1}50%{opacity:.35}}.screen--game.is-bust .alt-tape{animation:tape-flash .7s ease-in-out infinite}@keyframes tape-flash{0%,to{box-shadow:inset 0 0 0 2px #ff4d4de6}50%{box-shadow:inset 0 0 0 2px #ff4d4d26}}.streak{display:flex;justify-content:center;gap:calc(.77 * var(--u));margin-top:calc(1.03 * var(--u));min-height:calc(2.82 * var(--u))}.streak__mark{font-size:calc(2.56 * var(--u));line-height:1;font-weight:700}.streak__mark.is-hit{color:var(--good)}.streak__mark.is-miss{color:var(--bad)}.streak.is-critical{animation:warn-pulse .7s ease-in-out infinite}.rightpanel,.alt-tape{opacity:0;transition:opacity .8s ease;pointer-events:none}.screen--game.reveal-compass .rightpanel{opacity:1;pointer-events:auto}.screen--game.reveal-altitude .alt-tape{opacity:1}.screen--game .horizon,.screen--game .horizon__fixed{animation:fade-in 1.2s ease forwards}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.horizon__wings-guide{opacity:0;transition:opacity .7s ease}.horizon.show-wings-guide .horizon__wings-guide{opacity:.9}.dial-guide{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .6s ease;color:var(--accent)}.dial-guide.is-shown{opacity:1}.dial-guide__wedge{fill:#35d07f38}.dial-guide__rim{fill:var(--good);opacity:.85}.dial-guide__arrow{animation:warn-pulse 1.1s ease-in-out infinite}.dial{position:relative}.comms{position:absolute;left:50%;top:calc(100% - var(--comms-peek));z-index:20;width:min(calc(112 * var(--u)),calc(var(--stage-w) - var(--panel-w) - var(--tape-w) - 8 * var(--u)));padding:calc(2 * var(--u)) calc(2.6 * var(--u));border-radius:calc(3 * var(--u)) calc(3 * var(--u)) 0 0;background:#1c1e22f0;border:1px solid #35383f;border-bottom:0;box-shadow:0 -6px 26px #00000080;font-family:var(--font-radio);opacity:0;pointer-events:none;transform:translate(calc(-50% - (var(--panel-w) + var(--tape-w) + var(--tape-gap)) / 2));transition:transform 1s cubic-bezier(.22,1,.36,1),opacity .5s ease,border-radius .6s ease}.comms.is-visible{opacity:1;pointer-events:auto}.comms.is-centred{transform:translate(-50%,calc(-50% + var(--comms-peek) - var(--stage-h) / 2));border-radius:calc(3 * var(--u));border-bottom:1px solid #35383f}.comms__log{display:flex;flex-direction:column;gap:calc(.9 * var(--u));-webkit-mask-image:linear-gradient(to bottom,#000 42%,rgba(0,0,0,.45) 74%,transparent 100%);mask-image:linear-gradient(to bottom,#000 42%,rgba(0,0,0,.45) 74%,transparent 100%)}.comms__log:empty{display:none}.comms__line{padding:calc(.5 * var(--u)) calc(1.2 * var(--u));border-radius:calc(1 * var(--u));font-size:calc(2.7 * var(--u));line-height:1.4;animation:comms-in .4s ease-out;transition:opacity .55s ease,font-weight .55s ease,background-color .55s ease}.comms__line:nth-child(1){opacity:1;font-weight:700;background:#ffcc0017}.comms__line:nth-child(2){opacity:.5}.comms__line:nth-child(3){opacity:.26}.comms__line:nth-child(n+4){opacity:.13}.comms__from{display:inline-block;margin-right:calc(1.5 * var(--u));font-size:.82em;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.comms__line--pilot{color:var(--accent);text-align:right}.comms__line--tower{color:var(--ink)}.comms__line--system{color:var(--ink-dim);text-align:center}@keyframes comms-in{0%{opacity:0;transform:translateY(calc(-2.4 * var(--u)));background-color:#ffcc0057}55%{opacity:1;transform:translateY(0)}to{opacity:1;transform:translateY(0);background-color:#ffcc0017}}.comms__composer{display:flex;align-items:center;gap:calc(2 * var(--u));margin-top:calc(1.5 * var(--u))}.comms__composer[hidden]{display:none}.comms__log:empty+.comms__composer{margin-top:0}.comms__callsign{flex:0 1 auto;width:9em;min-width:0;padding:calc(1.3 * var(--u)) calc(2 * var(--u));border-radius:calc(1.8 * var(--u));border:1px solid #4a4e57;background:#101216;color:var(--accent);font-family:var(--font-radio);font-size:calc(2.9 * var(--u));font-weight:700}.comms__callsign:focus{outline:none;border-color:var(--accent)}.comms__ready{flex:1 1 auto;color:var(--ink);font-size:calc(2.9 * var(--u));white-space:nowrap}.comms__send{flex:none;width:calc(8.7 * var(--u));height:calc(8.7 * var(--u));padding:calc(1.5 * var(--u));border:0;border-radius:50%;background:var(--accent);color:#16181c;cursor:pointer;touch-action:manipulation;transition:transform .08s ease}.comms__send:active{transform:scale(.92)}.comms__send svg{display:block;width:100%;height:100%}.screen--start .panel{transform:translateY(calc(-24 * var(--u)));transition:opacity .6s ease,transform .6s ease}.screen--start.is-departing .panel{opacity:0;transform:translateY(calc(-28 * var(--u)))}.end__note{margin:calc(1.03 * var(--u)) 0 0;color:var(--ink-dim);font-size:calc(2 * var(--u));letter-spacing:.04em}#res-rank{font-size:calc(2.8 * var(--u))}
