:root{--bg:#0B0820;--surface:#17123A;--ink:#EDE9FF;--sun:#FFB347;--mint:#7AE7C7;--rule:#2A2360;--dim:#A9A1D6;--d:"Syne",sans-serif;--b:"Outfit",sans-serif}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.05rem/1.6 var(--b);overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(1px 1px at 12% 20%,#fff8 50%,transparent),radial-gradient(1px 1px at 72% 12%,#fff6 50%,transparent),radial-gradient(1.5px 1.5px at 40% 70%,#fff5 50%,transparent),radial-gradient(1px 1px at 88% 60%,#fff7 50%,transparent),radial-gradient(1px 1px at 25% 88%,#fff5 50%,transparent),radial-gradient(1px 1px at 60% 40%,#fff4 50%,transparent);background-size:420px 420px}
a{color:var(--sun)}
:focus-visible{outline:3px solid var(--mint);outline-offset:3px}
.skip{position:absolute;left:-999px;background:var(--sun);color:var(--bg);padding:.6rem 1rem;z-index:99}.skip:focus{left:1rem;top:1rem}
h1,h2,h3{font-family:var(--d);font-weight:800;line-height:1;margin:0 0 .5em;letter-spacing:-.02em}
h1{font-size:clamp(2.4rem,6.5vw,5.2rem)}h2{font-size:clamp(1.6rem,3.4vw,2.6rem)}h3{font-size:1.3rem;font-weight:700}
.eyebrow{font-family:var(--d);text-transform:uppercase;letter-spacing:.22em;font-size:.75rem;color:var(--mint);font-weight:700}
header.bar{position:relative;z-index:10;display:flex;justify-content:space-between;align-items:flex-start;padding:1.2rem 2rem;gap:1rem}
.logo{font-family:var(--d);font-weight:800;color:var(--ink);text-decoration:none;font-size:1.2rem;line-height:1.1}
.logo small{display:block;font:400 .78rem var(--b);color:var(--dim);letter-spacing:.05em}
.orbitnav{position:relative;width:250px;height:250px;flex:none}
.orbitnav svg.rings{position:absolute;inset:0}
.orbitnav a{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--ink);font-size:.74rem;font-weight:600;white-space:nowrap}
.orbitnav a i{width:14px;height:14px;border-radius:50%;background:var(--surface);border:2px solid var(--dim);display:block}
.orbitnav a[aria-current=page] i{background:var(--sun);border-color:var(--sun);box-shadow:0 0 0 5px rgba(255,179,71,.18)}
.orbitnav a:hover i{border-color:var(--mint)}
.orbitnav .core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#FFD9A0,var(--sun));}
.navbtn{display:none;background:var(--surface);color:var(--ink);border:1px solid var(--rule);font:600 .95rem var(--b);padding:.6rem 1rem;border-radius:999px;cursor:pointer}
.mobilelist{display:none}
main{position:relative;z-index:1}
.wrap{max-width:1180px;margin:0 auto;padding:0 2rem}
/* system */
.system{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;padding:1rem 0 2rem;text-align:center}
.system h1{max-width:16ch}.system .lead{max-width:56ch;color:var(--dim);margin:0 auto 1rem}
.orrery{position:relative;width:min(640px,100%);aspect-ratio:1;margin:1rem auto;overflow:clip}
.orrery .orbit{position:absolute;left:50%;top:50%;border:1px dashed var(--rule);border-radius:50%;transform:translate(-50%,-50%)}
.orrery .spin{position:absolute;inset:0;animation:spin var(--t) linear infinite}
.orrery .planet{position:absolute;translate:-50% -50%;border:0;border-radius:50%;cursor:pointer;color:var(--bg);font:700 .78rem var(--d);display:flex;align-items:center;justify-content:center;text-align:center;padding:4px;animation:spin var(--t) linear infinite reverse}
.orrery .planet[aria-pressed=true]{outline:3px solid var(--ink);outline-offset:6px}
.orrery .core{position:absolute;left:50%;top:50%;width:24%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFE2B5,var(--sun) 55%,#E07A1F);display:flex;align-items:center;justify-content:center;color:var(--bg);font:800 clamp(.8rem,2vw,1.1rem)/1.05 var(--d);text-align:center;padding:.5rem}
@keyframes spin{to{transform:rotate(360deg)}}
.orrery.paused .spin,.orrery.paused .planet{animation-play-state:paused}
.ctrl{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;background:var(--sun);color:var(--bg);border:0;border-radius:999px;padding:.8rem 1.4rem;font:700 1rem var(--b);text-decoration:none;cursor:pointer}
.btn.line{background:transparent;color:var(--ink);border:1px solid var(--dim)}
.brief{background:var(--surface);border:1px solid var(--rule);border-radius:22px;padding:2.2rem;margin:2rem 0 4rem;display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:2rem;scroll-margin-top:1rem}
.brief .tele{font-family:var(--d);font-size:.8rem;color:var(--dim);line-height:1.9;border-right:1px solid var(--rule);padding-right:1.5rem}
.brief .tele b{color:var(--mint);display:block;font-size:1rem}
.brief ul{padding-left:1.1rem}
/* missions */
.patches{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.5rem;padding:2rem 0 4rem}
.patch{grid-column:span 3;background:var(--surface);border-radius:26px;padding:1.8rem;border:1px solid var(--rule);display:grid;grid-template-columns:120px minmax(0,1fr);gap:1.4rem;align-items:start}
.patch:nth-child(3n){grid-column:span 6}
.patch svg{width:120px;height:120px}
.patch dl{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;font-size:.92rem;margin:.8rem 0 0}.patch dt{color:var(--mint);font-weight:600}.patch dd{margin:0;color:var(--dim)}
/* manual */
.manual{display:grid;grid-template-columns:220px minmax(0,1fr);gap:3rem;padding:2rem 0 4rem}
.manual nav ol{list-style:none;padding:0;position:sticky;top:1rem;border-left:2px solid var(--rule)}
.manual nav a{display:block;padding:.4rem 1rem;color:var(--dim);text-decoration:none}.manual nav a:hover{color:var(--sun)}
.chapter{border-bottom:1px solid var(--rule);padding:0 0 3rem;margin-bottom:3rem}
.chapter svg{width:100%;max-width:640px;height:auto;display:block;margin:1.2rem 0;background:var(--surface);border-radius:16px}
.callout{border-left:4px solid var(--sun);background:rgba(255,179,71,.08);padding:1rem 1.2rem;border-radius:0 12px 12px 0}
/* ground control */
.console{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1.5rem;padding:1rem 0 4rem}
.panel{background:var(--surface);border:1px solid var(--rule);border-radius:18px;padding:1.8rem;position:relative}
.panel h2{font-size:1.4rem}
.panel .lamp{position:absolute;top:1.2rem;right:1.2rem;width:10px;height:10px;border-radius:50%;background:var(--mint)}
.readout{margin:0}.readout div{padding:.7rem 0;border-bottom:1px dashed var(--rule)}.readout dt{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mint);font-family:var(--d)}.readout dd{margin:.15rem 0 0;overflow-wrap:anywhere}
label{display:block;font-weight:600;margin:1rem 0 .35rem;font-size:.95rem}
.opt{color:var(--dim);font-weight:400}
input,textarea,select{width:100%;background:var(--bg);border:1px solid var(--rule);color:var(--ink);border-radius:10px;padding:.8rem;font:1rem var(--b)}
textarea{min-height:150px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.radios{display:flex;flex-wrap:wrap;gap:.5rem;border:0;padding:0;margin:1rem 0 0}.radios legend{font-weight:600;margin-bottom:.4rem}
.radios label{margin:0;display:flex;gap:.4rem;align-items:center;border:1px solid var(--rule);border-radius:999px;padding:.4rem .9rem;font-weight:500}
.radios input{width:auto;accent-color:var(--sun)}
.status{margin-top:1rem;padding:1rem;border:1px solid var(--mint);border-radius:12px;display:none}.status.show{display:block}
.prose{max-width:70ch;padding:1rem 0 4rem}.prose h2{font-size:1.6rem;margin-top:2rem}
footer{position:relative;z-index:1;border-top:1px solid var(--rule);padding:2rem;color:var(--dim);font-size:.9rem}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}
@media (max-width:900px){.patch,.patch:nth-child(3n){grid-column:span 6}.manual{grid-template-columns:1fr}.manual nav ol{position:static}.console{grid-template-columns:1fr}}
@media (max-width:767px){
 header.bar{padding:1rem;align-items:center;flex-wrap:wrap}.orbitnav{display:none}.navbtn{display:inline-block}
 .mobilelist{width:100%}.mobilelist.open{display:block}.mobilelist ul{list-style:none;padding:0;margin:.5rem 0 0}.mobilelist a{display:flex;gap:.7rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--rule);color:var(--ink);text-decoration:none}.mobilelist a::before{content:"";width:10px;height:10px;border-radius:50%;border:2px solid var(--dim)}.mobilelist a[aria-current=page]::before{background:var(--sun);border-color:var(--sun)}
 .wrap{padding:0 1rem}.brief{grid-template-columns:1fr;padding:1.3rem}.brief .tele{border-right:0;border-bottom:1px solid var(--rule);padding:0 0 1rem}
 .patch{grid-template-columns:1fr;padding:1.3rem}.row{grid-template-columns:1fr}.orrery .planet{font-size:.62rem}
}
@media (prefers-reduced-motion:reduce){.orrery .spin,.orrery .planet{animation-play-state:paused!important}*{transition:none!important;scroll-behavior:auto!important}}
