:root{--bg: #050507;--ink: #ece9e2;--muted: #8e8a83;--blue: #4f8df5;--amber: #f2b544;--line: rgba(236,233,226,.14);--card: rgba(8,8,12,.7)}:root[data-theme=light]{--bg: #050507}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink)}body{font:16px/1.5 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}.app{position:relative;height:100dvh;overflow:hidden}.stars{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 16px 84px;gap:10px;overflow:auto}.screen>*{flex-shrink:0}.app[data-screen=intro] .screen[data-for=intro],.app[data-screen=flight] .screen[data-for=flight],.app[data-screen=touchdown] .screen[data-for=touchdown],.app[data-screen=failed] .screen[data-for=failed]{display:flex}.kicker{font:500 12px IBM Plex Mono,monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin:0}h1{font:500 clamp(48px,9vw,104px)/1 "IBM Plex Mono",monospace;letter-spacing:-.03em;margin:0}h2{font:500 clamp(24px,4vw,36px)/1.15 "IBM Plex Mono",monospace;margin:0;letter-spacing:-.01em}.lede{max-width:580px;margin:4px 0 10px;font-size:17px}.hint,.fine{color:var(--muted);max-width:560px;margin:0;font-size:14px}.form{display:flex;flex-direction:column;gap:12px;width:min(92vw,440px)}.field{display:flex;flex-direction:column;text-align:left;gap:4px;font:500 12px IBM Plex Mono,monospace;letter-spacing:.14em;color:var(--muted)}.field input{font:600 22px IBM Plex Mono,monospace;letter-spacing:.08em;text-transform:uppercase;background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--line);padding:6px 0;outline:none}.field input:focus{border-color:var(--blue)}.drop{display:grid;place-items:center;min-height:180px;border:1px dashed var(--line);border-radius:16px;cursor:pointer;overflow:hidden;position:relative;color:var(--muted)}.drop:hover,.drop.over{border-color:var(--blue);color:var(--ink)}.drop img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.drop img:not([hidden])+span{position:absolute;bottom:10px;left:0;right:0;font-size:12px;color:var(--ink);text-shadow:0 1px 8px #000}.btn{font:500 15px Inter,sans-serif;padding:12px 22px;border-radius:999px;border:1px solid var(--line);background:#05050780;color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:disabled{opacity:.35;cursor:default}.btn.ghost{color:var(--ink)}.row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px}.hud{position:absolute;top:18px;left:18px;right:18px;display:flex;gap:22px;flex-wrap:wrap;justify-content:center;font:500 12px IBM Plex Mono,monospace;letter-spacing:.14em}.hud-row{display:flex;flex-direction:column;gap:2px;color:var(--muted)}.hud-row b{color:var(--ink);font-weight:500;font-size:15px}.coast{position:relative;width:min(80vw,520px);height:180px}.earth{position:absolute;left:10%;top:50%;width:120px;height:120px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 35%,#9fd0ff,#2f6fd0,#0b2a66 70%,#02060f);box-shadow:0 0 40px #4f8df559;transition:width 1.5s,height 1.5s}.moon{position:absolute;left:90%;top:50%;width:36px;height:36px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 40% 40%,#d8d6d0,#8f8d88 55%,#3a3936);transition:width 1.5s,height 1.5s}.count{font:500 clamp(56px,12vw,120px)/1 "IBM Plex Mono",monospace;margin:0;min-height:1em;letter-spacing:-.04em}.log{font:400 12px/1.7 IBM Plex Mono,monospace;color:var(--muted);max-width:520px;text-align:left;width:min(92vw,520px)}.log div:before{content:"› ";color:var(--blue)}.film{width:min(92vw,960px);aspect-ratio:16/9;background:#000;border-radius:12px;border:1px solid var(--line)}.card{display:flex;gap:22px;align-items:center;flex-wrap:wrap;justify-content:center;max-width:960px;margin-top:10px}.patch{width:220px;height:220px}.facts{text-align:left;max-width:600px;display:flex;flex-direction:column;gap:6px}.facts .row{justify-content:flex-start}@media(max-width:720px){.facts{text-align:center}.facts .row{justify-content:center}}.credits{position:absolute;left:16px;bottom:12px;font-size:12px;color:var(--muted);max-width:min(92vw,560px)}.credits summary{cursor:pointer}.credits details[open]{background:var(--card);padding:10px 12px;border-radius:10px}.screen{justify-content:flex-start}.screen:before,.screen:after{content:"";flex:1 0 0}.lede{text-wrap:pretty}.film{width:min(92vw,960px,calc((100dvh - 410px) * 16 / 9));min-width:min(92vw,480px)}@media(max-height:860px)and (min-width:721px){.drop{min-height:140px}}.credits summary{display:inline-block;background:#050507b8;padding:2px 8px;margin-left:-8px;border-radius:999px}.credits details[open] summary{background:none}.fine a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;white-space:nowrap}.fine a:hover{text-decoration-color:var(--blue)}.status{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}.status:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:8px;vertical-align:2px}.status.offline:before{background:var(--amber)}.gallery{width:min(92vw,440px);margin-top:14px;display:flex;flex-direction:column;gap:10px}.gallery-title{display:flex;align-items:center;gap:12px;font:500 12px IBM Plex Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.gallery-title:after{content:"";flex:1;height:1px;background:var(--line)}.gallery-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mission{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:6px;border-radius:10px}.mission-frame{display:block;aspect-ratio:16/9;overflow:hidden;border-radius:10px;border:1px solid var(--line);background:#000;transition:border-color .2s}.mission-frame img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.35);transform-origin:50% 92%}.mission:hover .mission-frame,.mission:focus-visible .mission-frame{border-color:var(--blue)}.mission:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.mission-name{display:flex;justify-content:space-between;gap:8px;font:500 13px IBM Plex Mono,monospace;letter-spacing:.08em;color:var(--ink)}.mission-jump{color:var(--muted);font-weight:400;letter-spacing:.04em}
