:root{--ink:#edf2ed;--muted:#a3b3c3;--navy:#090f19;--settled:#b7e6ca;--warning:#f0c18e;--destination:#64e9f0;color:var(--ink);background:var(--navy);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}#app{width:100vw;height:100vh;position:relative;overflow:hidden}canvas{width:100%;height:100%;display:block}canvas:focus-visible{outline-offset:-3px;outline:2px solid #aac9e5}.hud{z-index:2;background:#111a27e8;border:1px solid #344252;border-radius:4px;padding:14px 16px;font-size:13px;position:absolute;top:20px;left:20px}h1{margin:0 0 12px;font-size:17px;font-weight:600}h1 span{color:#a3b3c3;margin-left:10px;font-size:12px;font-weight:400}p{margin:6px 0}.readouts p{justify-content:space-between;gap:24px;display:flex}meter{width:100%;height:14px;display:block}strong{font-variant-numeric:tabular-nums;font-weight:500}#status{color:#b0c5d5;min-height:20px;margin:10px 0}#status[data-state=thrust]{color:#b7e6ca}#status[data-state=collision],#status[data-state=exhausted]{color:#e7be8f}.legend{color:#a3b3c3;font-size:12px}.buttons{gap:8px;margin-top:10px;display:flex}button{font:inherit;color:#e0e8ef;cursor:pointer;background:#233348;border:1px solid #60768b;border-radius:3px;padding:6px 14px}button:focus-visible{outline-offset:3px;outline:2px solid #e2ecf5}button:disabled{opacity:.45;cursor:default}.failure{z-index:4;background:#111a27;border:1px solid #60768b;max-width:420px;padding:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.failure p{margin:0 0 16px}.motion-aid{z-index:2;pointer-events:none;color:var(--ink);text-shadow:0 2px 4px var(--navy), 0 0 8px var(--navy);position:absolute}.motion-aid[hidden],.motion-aid [hidden]{display:none}.motion-row{top:var(--ship-clearance);text-align:center;width:min(440px,100vw - 24px);position:absolute;left:0;transform:translate(-50%)}.motion-guidance{margin:0 0 5px;font-size:24px;font-weight:600;line-height:30px}.motion-aid[data-state=holding] .motion-guidance{color:var(--settled)}.motion-aid[data-state=collision] .motion-guidance,.motion-aid[data-state=exhausted] .motion-guidance{color:var(--warning)}.spin-caption{color:var(--muted);font-size:16px;line-height:21px}.spin-cues{justify-content:center;gap:20px;margin-top:3px;display:flex}.spin-cue{width:126px}.cue-label{font-size:17px;font-weight:600;line-height:22px}.spin-direction{justify-content:center;align-items:center;gap:3px;height:32px;display:flex}.spin-direction strong{font-size:20px;font-weight:600}.spin-direction svg{width:50px;height:32px;overflow:visible}.motion-aid svg{filter:drop-shadow(0 2px 2px var(--navy))}.motion-aid svg path,.drift-arrow line{fill:none;stroke:currentColor;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}.spin-cue[data-direction=negative] svg{transform:scaleX(-1)}.spin-cue[data-axis=pitch][data-direction=negative] svg{transform:scaleY(-1)}.spin-cue[data-direction=still] svg{display:none}.spin-cue[data-direction=still] .spin-direction{color:var(--muted)}.spin-strength{background:#a3b3c32b;height:4px;margin:2px 10px 3px}.spin-strength i{background:var(--ink);height:100%;display:block}.stop-key{font-size:17px;line-height:24px}kbd{border:1px solid var(--muted);min-width:25px;font:inherit;background:#111a27;border-radius:3px;padding:0 4px;font-weight:600;display:inline-block}.drift-cue{left:calc(-1 * var(--ship-clearance) - 150px);text-align:center;width:140px;position:absolute;top:-68px}.drift-cue>.cue-label{font-size:20px}.drift-arrow{width:120px;height:100px;margin:0 auto;display:block}.drift-arrow circle{fill:currentColor}.drift-depth{white-space:nowrap;font-size:20px;font-weight:600;line-height:25px}.depth-symbol{vertical-align:-2px;margin-right:5px;font-size:31px}.drift-depth small{color:var(--muted);font-size:16px;font-weight:400;line-height:18px;display:block}@media (height<=660px){.drift-cue{left:min(calc(var(--ship-clearance) + 10px), calc(50vw - 152px))}.motion-row{top:calc(var(--ship-clearance) + 13px)}.motion-guidance{margin-bottom:0}.spin-caption{line-height:18px}.spin-cues{margin-top:0}.spin-strength{margin:1px 10px 2px}}.flight-hints{z-index:2;background:#111a27e8;border-left:3px solid #90b3cb;border-radius:3px;width:330px;padding:12px 14px;position:absolute;top:20px;right:20px}.flight-hints[hidden],.flight-hints [hidden]{display:none}.hint-header{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;font-size:16px;display:flex}.hint-header button{padding:4px 8px;font-size:16px}.flight-hints h2{margin:10px 0 6px;font-size:21px;font-weight:600;line-height:27px}.flight-hints p{margin:0;font-size:20px;line-height:27px}.flight-hints[data-warning=true]{border-left-color:var(--warning)}.flight-hints[data-warning=true] h2{color:var(--warning)}#status[data-state=arrived]{color:var(--destination)}.motion-aid[data-state=arrived] .motion-guidance{color:var(--destination);white-space:pre-line;font-size:30px;line-height:36px}.destination-marker{z-index:1;width:196px;color:var(--destination);pointer-events:none;background:#091720ed;border:1px solid #64e9f099;border-radius:3px;align-items:center;gap:8px;padding:8px 10px;display:flex;position:absolute;transform:translate(-50%,-50%)}.destination-marker strong{letter-spacing:.04em;font-size:18px;font-weight:650;line-height:23px;display:block}.destination-detail{color:#c6f5f5;font-size:16px;line-height:21px;display:block}.destination-direction{text-align:center;flex:0 0 26px;font-size:34px;line-height:36px;display:block}.destination-target{z-index:1;pointer-events:none;width:34px;height:34px;color:var(--destination);filter:drop-shadow(0 2px 2px var(--navy));position:absolute;transform:translate(-50%,-50%)}.destination-target svg{width:100%;height:100%}.destination-target path{fill:none;stroke:currentColor;stroke-width:2.5px}.destination-marker[hidden],.destination-target[hidden]{display:none}.mission-objective{max-width:275px;color:var(--destination);margin:0 0 12px;font-size:17px;font-weight:600;line-height:23px}.mission-dialog{overscroll-behavior:contain;width:min(620px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink,#edf2ed);background:#111a27;border:1px solid #60768b;border-radius:6px;margin:auto;padding:22px 24px;font:18px/1.4 system-ui,sans-serif;overflow-y:auto;box-shadow:0 16px 60px #0009}.mission-dialog::backdrop{background:#030812c9}.mission-dialog [hidden]{display:none}.mission-dialog h2{margin:2px 0 14px;font-size:28px;font-weight:650;line-height:1.2}.mission-dialog p{margin:10px 0}.mission-dialog .mission-kicker{color:var(--muted,#a3b3c3);letter-spacing:.06em;margin:0;font-size:18px}.mission-dialog .mission-muted,.mission-retry-key{color:#bdcbd7}.mission-briefing p+p{margin-top:14px}.mission-latest{color:var(--muted,#a3b3c3)}.mission-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0 20px;display:grid}.mission-stats dt{color:#bdcbd7}.mission-stats dd{font-variant-numeric:tabular-nums;margin:3px 0 0;font-size:23px;font-weight:600}.mission-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.mission-dialog button{min-height:44px;font:inherit;cursor:pointer;padding:8px 16px}.mission-dialog .mission-primary{color:#091720;background:#a8e4e7;border-color:#c5f5f5;font-size:20px;font-weight:650}.mission-feedback{border-top:1px solid #344252;margin-top:20px;padding-top:14px}.mission-feedback summary{cursor:pointer;font-size:20px}.mission-feedback label{margin:14px 0 6px;display:block}.mission-dialog textarea{resize:vertical;width:100%;max-width:100%;color:var(--ink,#edf2ed);font:inherit;background:#090f19;border:1px solid #60768b;border-radius:3px;padding:10px;line-height:1.4;display:block}.mission-dialog textarea:focus-visible,.mission-feedback summary:focus-visible{outline-offset:3px;outline:2px solid #c5f5f5}.mission-dialog .mission-copy-status{color:#c5f5f5;min-height:1.4em}.mission-dialog .mission-report{margin-top:10px}@media (width<=520px){.mission-dialog{padding:18px}.mission-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
