@charset "UTF-8";
:root{color-scheme:light;font-family:Arial,Helvetica,sans-serif;font-synthesis:none;background:#f6f4ec;color:#142b32;--ink:#142b32;--muted:#54686a;--mint:#b5f2d5;--line:#cbd4ca}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,select,input:not([type=checkbox]){min-height:46px}button{border:1px solid var(--ink);border-radius:9px;padding:.7rem 1rem;background:#fffdf7;color:var(--ink);cursor:pointer;font-weight:700}button:hover:not(:disabled){background:#d8efe1}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible,summary:focus-visible{outline:3px solid #a35016;outline-offset:4px}canvas:focus-visible{outline-color:#f3b49c;outline-offset:-5px}.skip{position:absolute;top:-80px;left:12px;padding:1rem;background:white;z-index:5}.skip:focus{top:10px}header,main,footer{max-width:1280px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:.65rem;font-size:1.1rem;font-weight:800;text-decoration:none}.wordmark img{width:36px;height:36px}.wordmark span{font-family:monospace;font-weight:400;font-size:.78rem;margin-left:.6rem}.language{display:flex;gap:.25rem}.language button{border-color:var(--line);min-width:46px;font-size:.8rem;padding:.5rem}.language [aria-pressed=true]{background:var(--ink);color:white}main{padding:0 2rem 2rem}.intro{display:flex;align-items:end;justify-content:space-between;gap:2rem;padding:2rem 0}.eyebrow{font-family:monospace;letter-spacing:.05em;text-transform:uppercase;font-size:.78rem;color:var(--muted)}h1{font-size:clamp(2rem,4.4vw,3.5rem);line-height:1.05;letter-spacing:-.055em;max-width:17ch;margin:.7rem 0 0}.intro>p{max-width:36ch;font-size:1rem;line-height:1.5;margin:0}.intro>p span{display:block;font-size:.85rem;color:var(--muted);margin-top:.6rem}.flight-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:1.5rem;align-items:start}.flight{background:var(--ink);color:#eef6ee;border-radius:18px;overflow:hidden;border:1px solid var(--ink);box-shadow:0 7px 0 #c5d2c5}.flight:focus{outline:none}.flight-top{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;color:#b7cac7;font-family:monospace;font-size:.75rem;border-bottom:1px solid #ffffff20}.hud{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.5rem .6rem}.hud>div{display:grid;gap:.3rem}.hud small{font-size:.7rem;color:#b7cac7}.hud strong{font-size:1.75rem;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.hud strong span{font-size:.9rem;color:#b7cac7}.course-progress{display:flex;gap:.6rem;padding:0 1.5rem .25rem}.course-progress span{width:24px;height:24px;border:1px solid #759089;border-radius:50%;font:12px monospace;display:grid;place-items:center}.course-progress .done{background:var(--mint);color:var(--ink)}.course-progress .current{border:2px solid #f4d8a1;color:#f4d8a1}#scene{display:block;width:100%;height:auto;max-height:390px;object-fit:contain}.launch-deck{padding:.3rem 1.5rem 1rem}.cue{font-size:.88rem;font-weight:700;min-height:2.6em;margin:0 0 .5rem;display:flex;align-items:center;color:#cfdbd7}.cue[data-ready=true]{color:var(--mint)}.flight-buttons{display:flex;gap:.65rem}.launch{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--mint);color:var(--ink);flex:1;border:0;font-size:1.15rem;min-height:56px}.launch span{font-size:1.8rem}.launch[data-ready=true]{background:#f4d8a1}.launch:focus-visible,.flight button:focus-visible{outline-color:#f3b49c}.keyboard{font-size:.73rem;line-height:1.5;color:#b7cac7;margin:.8rem 0 0}.mission{padding:1.2rem 0 0 1rem}.mission h2{font-size:1.35rem;letter-spacing:-.03em;margin:.9rem 0}.mission ol{padding-left:1.35rem;font-size:.92rem;line-height:2}.mission>p:not(.eyebrow){font-size:.84rem;line-height:1.6}.best{background:#e7eadc;border:1px solid var(--line);border-radius:12px;padding:1.1rem;display:grid;gap:.6rem;margin:1.5rem 0}.best small{font-size:.75rem}.best strong{font-size:2rem;letter-spacing:-.05em}.best span{font-size:.75rem;line-height:1.4}.fine{font-size:.8rem;color:var(--muted);line-height:1.6}.utilities{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:1.3rem 0}.utilities button{font-size:.8rem}.utilities>span{font-size:.85rem;margin-left:auto}.status{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.75rem}.status p{margin:.3rem 0}.warning{color:#923917;font-weight:bold}#notice{font-size:.84rem;line-height:1.5;min-height:1.5em}.result{border:1px solid var(--ink);background:#fffdf7;border-radius:16px;padding:1.5rem;margin:1.5rem 0}.result:focus{outline:none}.result h2{font-size:2rem;letter-spacing:-.04em;margin:.7rem 0}.result p{line-height:1.5}.result canvas{width:100%;max-width:800px;height:auto;display:block;margin:1.5rem auto;border:1px solid var(--line);border-radius:9px}.result-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0}.yellow{background:#f4d8a1}.result label{font-size:.82rem;font-weight:bold}.result input{display:block;width:100%;margin-top:.5rem;padding:.75rem;background:white;color:var(--ink);border:1px solid var(--line);border-radius:8px;font-size:.8rem}.settings{border-top:1px solid var(--line);padding:1rem 0}.settings h2{font-size:1rem}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;max-width:780px}.field{display:grid;gap:.5rem}.field label,.check{font-size:.85rem;font-weight:bold}.field select{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:.7rem;background:white;color:var(--ink)}.check{display:flex;gap:.7rem;align-items:center;min-height:44px}.check input{width:22px;height:22px;accent-color:var(--ink)}.backup{border-top:1px solid var(--line);padding:1rem 0}.backup summary{cursor:pointer;padding:.75rem 0;font-weight:700;min-height:44px}.backup p{font-size:.85rem;line-height:1.5}.backup-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}.file-label{display:grid;gap:.5rem;font-size:.8rem}.file-label input{max-width:100%;font-size:.8rem}footer{padding:1.5rem 2rem 2rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}footer nav{display:flex;gap:1rem;flex-wrap:wrap;margin:.6rem 0}footer a{display:inline-flex;align-items:center;min-height:44px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:900px){.flight-layout{grid-template-columns:minmax(0,1fr) 220px;gap:1rem}.mission{padding-left:0}.intro{align-items:start}.intro>p{max-width:30ch}h1{font-size:2.6rem}}
@media(max-width:650px){header{padding:.8rem 1rem}.wordmark span{display:none}main{padding:0 1rem 1rem}.intro{padding:1.2rem 0;display:block}h1{font-size:2.25rem;max-width:20ch}.intro>p{margin-top:1rem;max-width:none;font-size:.9rem}.intro>p span{font-size:.8rem}.flight-layout{display:flex;flex-direction:column;gap:1rem}.flight{width:100%;border-radius:12px}.flight-top{padding:.75rem .85rem;font-size:.65rem;gap:.5rem}.hud{padding:.7rem 1rem .5rem}.hud strong{font-size:1.4rem}.hud small{font-size:.65rem}.course-progress{padding:0 1rem .25rem;gap:.5rem}.course-progress span{width:21px;height:21px}#scene{max-height:250px}.launch-deck{padding:0 1rem .8rem}.cue{font-size:.8rem;min-height:2.8em}.launch{font-size:.95rem;min-height:52px}.flight-buttons #pause{padding:.7rem;font-size:.8rem}.keyboard{font-size:.67rem}.mission{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem;padding:1rem 0 0}.mission>.eyebrow{display:none}.mission h2{grid-column:1;margin:0;font-size:1.05rem}.mission ol{grid-column:1;font-size:.8rem;margin:.5rem 0}.mission>.best{grid-column:2;grid-row:1/4;margin:0;padding:.85rem}.mission>.best strong{font-size:1.6rem}.mission>p{grid-column:1/-1;margin:.25rem 0}.utilities{gap:.5rem}.utilities button{font-size:.73rem;padding:.7rem}.utilities>span{width:100%;margin:0;font-size:.75rem}.settings-grid{grid-template-columns:1fr;gap:1rem}.status{gap:.3rem}.result{padding:1rem}.result h2{font-size:1.5rem}.result-actions button{flex:1 1 150px;font-size:.8rem}.result canvas{margin:1rem 0}.backup-actions{display:grid}.file-label input{width:100%}footer{padding:1.2rem 1rem}.intro .eyebrow{font-size:.65rem}body[data-phase=orbit] .intro,body[data-phase=flight] .intro,body[data-phase=paused] .intro,body[data-phase=landed] .intro,body[data-phase=miss] .intro{display:none}body:not([data-phase=ready]) .flight-layout{margin-top:1rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){button,select,.flight,.best,.result{border:1px solid CanvasText}.course-progress span{border-color:CanvasText}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline-color:Highlight}}

/* A launch stays focusable while its flight ignores further activation. */
.launch[aria-disabled=true]{opacity:.6;cursor:wait}.result-score{background:#e7eadc;border-radius:10px;padding:1rem;font-size:.9rem}.result-score strong{font-size:1.8rem;margin-right:.5rem}.result-score span{font-size:.8rem}
