:root{--night:#07172b;--deep:#0c253e;--panel:#102d48;--line:#31516a;--sky:#6ed7ef;--lime:#d7ee73;--orange:#ff9d5c;--white:#eefaff;--muted:#99b4c6;font:15px/1.5 ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;background:var(--night);color:var(--white);color-scheme:dark}
*{box-sizing:border-box}
html[data-large=yes]{font-size:18px}
body{margin:0;min-width:280px;background:radial-gradient(circle at 20% 0,#123f63 0,transparent 34rem),var(--night)}
button,a,input{font:inherit}
button{color:inherit}
.skip{position:fixed;top:-5rem;left:1rem;background:var(--lime);color:var(--night);padding:.7rem 1rem;z-index:30}
.skip:focus{top:1rem}
header{height:72px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(1rem,4vw,4rem);border-bottom:1px solid #6ed7ef33;background:#07172be8;backdrop-filter:blur(15px);position:sticky;top:0;z-index:10}
.brand{display:flex;gap:.7rem;align-items:center;background:none;border:0;letter-spacing:.18em;font-weight:900;cursor:pointer}
.brand-orbit{width:35px;height:35px;border:1px solid var(--sky);border-radius:50%;display:grid;place-items:center;position:relative}
.brand-orbit:after{content:"";position:absolute;width:45px;border-top:1px solid var(--orange);transform:rotate(-25deg)}
.brand-orbit i{width:7px;height:10px;border-radius:50%;background:var(--lime)}
.header-right{display:flex;align-items:center;gap:1rem;font-size:0.8rem;color:var(--muted)}
.plain,.secondary{background:transparent;border:1px solid var(--line);padding:.66rem .9rem;border-radius:.35rem;cursor:pointer}
.plain:hover,.secondary:hover{border-color:var(--sky)}
.primary{background:var(--lime);color:var(--night);border:0;border-radius:.35rem;padding:.85rem 1.15rem;font-weight:900;cursor:pointer}
.primary:hover{background:#efffa1}
button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
button:disabled{opacity:.34;cursor:not-allowed}
.overline{font-size:0.8rem;color:var(--sky);letter-spacing:.17em;text-transform:uppercase;font-weight:800}
.home-hero{min-height:calc(100vh - 72px);display:grid;grid-template-columns:1fr minmax(370px,.8fr);align-items:center;gap:6vw;padding:clamp(3rem,8vw,8rem) clamp(1.2rem,7vw,7rem)}
.hero-copy h1{font:800 clamp(3.4rem,7vw,7.3rem)/.9 system-ui,sans-serif;letter-spacing:-.06em;margin:.5rem 0 1.5rem;max-width:10ch}
.hero-copy h1 span{color:var(--sky);font-weight:300}
.hero-copy>p:not(.overline){font:400 clamp(1rem,1.4vw,1.25rem)/1.7 system-ui,sans-serif;color:var(--muted);max-width:52rem}
.hero-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin:2rem 0}
.science-note{border-left:2px solid var(--orange);padding-left:1rem;color:var(--muted);font-size:0.8rem;max-width:39rem}
.science-note b{color:var(--orange)}
.hero-instrument{position:relative;display:grid;place-items:center}
.dial{width:min(38vw,500px);aspect-ratio:1;border-radius:50%;border:1px solid #6ed7ef55;background:radial-gradient(circle,#174869 0,#0b243e 60%,#07172b 61%);box-shadow:inset 0 0 80px #6ed7ef1c,0 0 90px #6ed7ef16;position:relative;overflow:hidden}
.dial:before,.dial:after{content:"";position:absolute;inset:10%;border:1px dashed #6ed7ef44;border-radius:50%}
.dial:after{inset:28%}
.balloon-mark{position:absolute;left:52%;top:24%;animation:float 5s ease-in-out infinite}
.balloon-mark i{display:block;width:55px;height:72px;border-radius:50%;background:linear-gradient(90deg,var(--orange),#ffd0a9 50%,var(--orange));clip-path:polygon(20% 0,80% 0,100% 40%,67% 87%,58% 100%,42% 100%,33% 87%,0 40%)}
.balloon-mark b{display:block;width:18px;height:15px;border:2px solid var(--lime);margin:8px auto}
.dial-cloud{position:absolute;width:130px;height:28px;border-radius:50%;background:#b3ecff20;filter:blur(5px)}
.c1{top:60%;left:8%}
.c2{top:35%;right:2%;width:90px}
.alt{position:absolute;color:var(--muted);font-size:0.8rem}
.a1{left:10%;top:48%}
.a2{left:28%;top:20%}
.a3{right:20%;top:12%}
.mission-count{position:absolute;bottom:5%;right:5%;background:var(--lime);color:var(--night);padding:1rem;display:grid;clip-path:polygon(0 0,100% 0,100% 75%,88% 100%,0 100%)}
.mission-count strong{font:900 2rem system-ui}
.mission-count span{font-size:0.8rem}
.resume-strip{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin:-2rem clamp(1.2rem,7vw,7rem) 4rem;padding:1.1rem 1.25rem;border:1px solid var(--sky);background:#102d48;border-radius:.5rem;box-shadow:0 20px 65px #0007}
.resume-strip h2{font:800 clamp(1.45rem,3vw,2.35rem)/1 system-ui,sans-serif;letter-spacing:-.035em;margin:.15rem 0}
.resume-strip p{color:var(--muted);margin:.25rem 0;font:400 0.8rem/1.5 system-ui,sans-serif}
.resume-strip>div:last-child{display:flex;gap:.5rem;flex-wrap:wrap;flex:0 0 auto}
.mission-section{padding:6rem clamp(1.2rem,7vw,7rem);background:#091b2f;border-top:1px solid var(--line)}
.programme-desk{padding:6rem clamp(1.2rem,7vw,7rem);background:#dbe9e7;color:#0a2233;border-block:1px solid #8fb0b3}
.programme-desk .overline{color:#17677a}
.programme-desk .section-title>p:last-child{color:#46636a}
.programme-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:1.5rem 0;border:1px solid #789ba0;border-radius:.5rem;overflow:hidden;background:#edf6f4}
.programme-stats article{display:grid;padding:1rem 1.2rem;border-right:1px solid #a8c1c1}
.programme-stats article:last-child{border:0}
.programme-stats strong{font:900 clamp(1.8rem,3vw,2.8rem)/1 system-ui;color:#bc4e26}
.programme-stats span{text-transform:uppercase;letter-spacing:.1em;font-size:0.8rem;color:#48666c;margin-top:.35rem}
.programme-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,.65fr);gap:.8rem;align-items:start}
.calendar-panel,.badge-panel,.recent-log{background:#f4f8f5;border:1px solid #8fa9a9;border-radius:.55rem;padding:1rem;box-shadow:0 18px 45px #1c47552a}
.panel-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.85rem}
.panel-head h3{font:800 1.55rem/1 system-ui;margin:.1rem 0;letter-spacing:-.03em}
.panel-head>span{font-size:0.8rem;text-transform:uppercase;letter-spacing:.1em;color:#527076;text-align:right}
.sounding-calendar{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}
.sounding-day{min-width:0;display:grid;grid-template-columns:1fr auto;text-align:left;gap:.12rem;padding:.55rem;border:1px solid #adc1bf;background:#e7efec;color:#163744;border-radius:.28rem;cursor:pointer}
.sounding-day:hover{border-color:#17677a;transform:translateY(-2px)}
.sounding-day>span{font-size:0.8rem;letter-spacing:.09em;color:#49686e}
.sounding-day>i{grid-row:1/3;grid-column:2;color:#8b9c98;font-style:normal}
.sounding-day>strong{font-size:0.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sounding-day>small{grid-column:1/-1;font-size:0.8rem;color:#294c55;letter-spacing:.04em}
.sounding-day.complete{background:#d9edca;border-color:#78a56b}
.sounding-day.complete>i{color:#4f8b42}
.badge-grid{display:grid;gap:.4rem}
.flight-badge{display:grid;grid-template-columns:auto 1fr auto;gap:.55rem;align-items:center;padding:.55rem;border:1px solid #a3b7b3;background:#e1e8e5;border-radius:.28rem;color:#183944}
.flight-badge>span{display:grid;place-items:center;width:38px;height:30px;border:1px dashed #57717a;font-size:0.8rem;font-weight:900}
.flight-badge div{display:grid}
.flight-badge strong{font-size:0.8rem}
.flight-badge small{font-size:0.8rem;color:#365b63}
.flight-badge>b{font-size:0.8rem;letter-spacing:.08em;color:#3b5c63}
.flight-badge.unlocked{background:#fff5dc;border-color:#d59c57;color:#0a2233}
.flight-badge.unlocked>span{background:#bc4e26;border-color:#bc4e26;color:#fff}
.flight-badge.unlocked>b{color:#a13f1d}
.recent-log{margin-top:.8rem}
.log-row{display:grid;grid-template-columns:90px 1fr auto;gap:.7rem;align-items:center;padding:.65rem;border-top:1px solid #b5c6c3}
.log-row>span{font-size:0.8rem;color:#527076}
.log-row>div,.log-row>b{display:grid}
.log-row strong{font-size:0.8rem}
.log-row small{font-size:0.8rem;color:#587379}
.log-row>b{text-align:right;color:#a33f1d;font-size:0.8rem}
.empty-log{color:#587379;font-size:0.8rem;border-top:1px solid #b5c6c3;padding-top:.8rem}
.section-title{display:grid;grid-template-columns:1fr 1fr;align-items:end;margin-bottom:2rem}
.section-title h2{font:750 clamp(2.4rem,4vw,4.5rem)/1 system-ui;margin:.2rem 0;letter-spacing:-.04em}
.section-title>p:last-child{color:var(--muted);font-size:0.8rem}
.mission-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}
.mission-card{text-align:left;background:var(--panel);border:1px solid var(--line);padding:1rem;display:grid;grid-template-columns:auto 90px 1fr auto;align-items:center;gap:.8rem;cursor:pointer;border-radius:.45rem}
.mission-card:hover{border-color:var(--sky);transform:translateX(4px)}
.mission-index{color:var(--lime);font-weight:900}
.mission-card strong,.mission-card small{display:block}
.mission-card small{color:var(--muted);font-size:0.8rem}
.mission-card em{font-style:normal;font-size:0.8rem;color:var(--orange)}
.wind-mini{display:grid;grid-template-columns:repeat(6,1fr);height:28px;align-items:center;gap:3px}
.wind-mini i{display:block;height:2px;background:var(--sky);width:calc(var(--wind)*4px + 3px);transform:scaleX(var(--dir));transform-origin:center}
.flight{max-width:1800px;margin:auto;padding:1.5rem clamp(.7rem,2.5vw,2.7rem) 4rem}
.flight-head{display:grid;grid-template-columns:auto 1fr auto;gap:1.4rem;align-items:start;margin-bottom:1.2rem}
.flight-head h1{font:800 clamp(2.3rem,4vw,4.2rem)/1 system-ui;margin:.1rem 0 .5rem;letter-spacing:-.045em}
.flight-head p{margin:.25rem 0;color:var(--muted)}
.turn-readout{border-left:1px solid var(--line);padding-left:1.2rem;display:grid}
.turn-readout span{font-size:0.8rem;color:var(--muted);letter-spacing:.15em}
.turn-readout strong{font-size:2rem;color:var(--lime)}
.turn-readout i{font-size:0.8rem;color:var(--muted);font-style:normal}
.flight-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.65fr);gap:.9rem;align-items:start;min-width:0}
.flight-grid>*{min-width:0}
.variation-strip{display:flex;align-items:center;gap:1rem;padding:.65rem .8rem;margin:-.3rem 0 .8rem;border:1px solid #d7ee7366;background:#d7ee730e;border-radius:.35rem}
.variation-strip span{font-size:0.8rem;letter-spacing:.13em;color:var(--lime);white-space:nowrap}
.variation-strip p{margin:0;color:var(--muted);font-size:0.8rem}
.chart-panel,.console{background:#0b2238;border:1px solid var(--line);border-radius:.55rem}
.chart-panel{padding:.7rem;position:sticky;top:86px}
.sky-chart{width:100%;height:auto;display:block}
.chart-scroll{width:100%;max-width:100%;min-width:0;overflow:auto;border-radius:.45rem;overscroll-behavior-inline:contain}
.chart-scroll:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.wind-table{margin:.55rem .65rem;padding:.5rem .65rem;border:1px solid var(--line);font-size:0.8rem;color:var(--muted)}
.wind-table summary{color:var(--white);font-weight:900;cursor:pointer}
.wind-table table{width:100%;border-collapse:collapse;margin-top:.45rem;text-align:left}
.wind-table th,.wind-table td{padding:.32rem;border-top:1px solid #31516a66}
.wind-table p{margin:.45rem 0 0}
.layer-line{stroke:#bceeff24;stroke-width:1}
.layer-label{fill:#94b7ca;font:700 18px monospace}
.wind-arrow path{stroke:var(--sky);fill:none;stroke-width:3}
.wind-arrow text{fill:#97c6d8;text-anchor:middle;font:700 17px monospace}
.wind-arrow.west{transform-box:fill-box;transform-origin:center;scale:-1 1}
.wind-arrow.west text{scale:-1 1}
.target{fill:#d7ee7330;stroke:var(--lime);stroke-width:2;stroke-dasharray:8 5}
.target-label{fill:var(--lime);font:800 17px monospace;text-anchor:middle}
.sample circle{fill:#0c2942;stroke:var(--orange);stroke-width:3}
.sample path{stroke:var(--orange);stroke-width:2}
.sample text{fill:var(--orange);font:800 17px monospace;text-anchor:middle}
.sample.collected circle{fill:var(--lime);stroke:var(--lime)}
.sample.collected path{stroke:var(--night)}
.trajectory{fill:none;stroke:var(--lime);stroke-width:4;stroke-linejoin:round;stroke-linecap:round}
.planned-trajectory{fill:none;stroke:var(--orange);stroke-width:3;stroke-dasharray:9 8;stroke-linecap:round;opacity:.92}
.planned-points circle{fill:#0b2238;stroke:var(--orange);stroke-width:3}
.history-points circle{fill:var(--lime)}
.balloon ellipse{fill:var(--orange);stroke:#ffe4c9;stroke-width:2}
.balloon path{fill:none;stroke:var(--orange);stroke-width:2}
.position-tag{fill:var(--white);font:800 17px monospace}
.chart-key{display:flex;gap:1rem;flex-wrap:wrap;padding:.7rem;color:var(--muted);font-size:0.8rem}
.chart-key i{display:inline-block;width:14px;height:8px;margin-right:.3rem}
.turn-tape{display:flex;gap:.35rem;overflow-x:auto;padding:.25rem .65rem .7rem;scroll-snap-type:x proximity}
.turn-chip{flex:0 0 105px;display:grid;text-align:left;background:#0c2942;border:1px solid var(--line);padding:.45rem;color:var(--white);border-radius:.25rem;cursor:pointer;scroll-snap-align:start}
.turn-chip>span{font-size:0.8rem;color:var(--sky)}
.turn-chip>b{font-size:0.8rem}
.turn-chip>small{font-size:0.8rem;color:var(--muted)}
.turn-chip.current{border-color:var(--lime);background:#183447;opacity:1}
.key-balloon{background:var(--orange);border-radius:50%}
.key-sample{border:2px solid var(--orange);border-radius:50%}
.key-target{border:2px dashed var(--lime)}
.key-plan{height:0!important;border-top:2px dashed var(--orange)}
.console{padding:.8rem}
.mission-brief{border-left:2px solid var(--orange);padding:.55rem .7rem;margin-bottom:.8rem;background:#102a40}
.mission-brief>strong{font-size:0.8rem;color:var(--orange)}
.mission-brief>p:last-child{font:400 0.8rem/1.5 system-ui,sans-serif;color:var(--muted);margin:.3rem 0 0}
.telemetry{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);margin-bottom:.8rem}
.telemetry div{display:grid;padding:.65rem;border:1px solid #31516a55}
.telemetry span,.panel-title{font-size:0.8rem;color:var(--muted);letter-spacing:.12em}
.telemetry strong{color:var(--sky)}
.objectives{border:1px solid var(--line);padding:.7rem;margin-bottom:.8rem}
.panel-title{margin:.1rem 0 .5rem}
.panel-title span{float:right;color:var(--orange)}
.objective{display:flex;gap:.55rem;align-items:center;padding:.42rem 0;border-top:1px solid #31516a66}
.objective>span{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:50%;font-size:0.8rem}
.objective div{display:grid}
.objective small{color:var(--muted);font-size:0.8rem}
.objective.done>span{background:var(--lime);border-color:var(--lime);color:var(--night)}
.forecast{display:grid;gap:.4rem}
.gust-tape{border:1px solid var(--line);padding:.6rem;margin-bottom:.8rem}
.gust-tape>div{display:flex;flex-wrap:wrap;gap:.3rem}
.gust-tape span{display:grid;place-items:center;min-width:50px;padding:.3rem;border:1px solid #31516a77;background:#0c2942;color:var(--muted);font-size:0.8rem}
.gust-tape span b{font-size:0.8rem;color:var(--sky)}
.gust-tape span.now{border-color:var(--orange);color:var(--orange)}
.action{display:flex;align-items:center;gap:.6rem;text-align:left;border:1px solid var(--line);background:#0c2942;padding:.65rem;cursor:pointer;border-radius:.25rem}
.action>span{font-size:1.4rem;color:var(--sky);width:30px;text-align:center}
.action div{display:grid}
.action b{font-size:0.8rem}
.action small{font-size:0.8rem;color:var(--muted)}
.action:hover{border-color:var(--lime)}
.action.recommended{border-color:var(--lime);box-shadow:inset 4px 0 var(--lime);background:#183447}
.action.recommended:after{content:"SOLVER";margin-left:auto;font-size:0.8rem;color:var(--lime)}
.flight-plan{display:grid;gap:.55rem;margin-top:.8rem;padding:.7rem;border:1px solid #e89a5a88;background:#0f2a41;border-radius:.35rem;scroll-margin-top:88px}
.plan-heading{display:flex;justify-content:space-between;gap:.7rem;align-items:start}
.plan-heading .panel-title{margin-bottom:.15rem;color:var(--orange)}
.plan-heading strong{font-size:0.8rem}
.plan-heading>span{flex:0 0 auto;padding:.22rem .38rem;border:1px solid #e89a5a66;color:var(--orange);font:800 0.8rem monospace}
.plan-empty{margin:0;color:var(--muted);font-size:0.8rem;line-height:1.45}
.flight-plan ol{display:grid;gap:.25rem;list-style:none;padding:0;margin:0;counter-reset:plan}
.flight-plan li{display:grid;grid-template-columns:auto 1fr auto;gap:.45rem;align-items:center;padding:.38rem .45rem;border-left:2px solid var(--orange);background:#091d30}
.flight-plan li b{color:var(--orange);font:800 0.8rem monospace}
.flight-plan li span{font-size:0.8rem;font-weight:800}
.flight-plan li small{color:var(--muted);font-size:0.8rem}
.plan-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem}
.plan-action{display:grid;text-align:left;padding:.45rem;border:1px solid var(--line);background:#0b2238;color:var(--white);cursor:pointer;border-radius:.25rem}
.plan-action:hover{border-color:var(--orange)}
.plan-action b{font-size:0.8rem}
.plan-action small{font-size:0.8rem;color:var(--muted)}
.plan-controls{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:.3rem}
.plan-controls button{font-size:0.8rem;padding:.48rem .3rem}
.utility{display:grid;grid-template-columns:repeat(2,1fr);gap:.35rem;margin-top:.7rem}
.utility .plain{font-size:0.8rem;padding:.55rem .3rem}
.notice{min-height:1.4em;color:var(--orange);font-size:0.8rem}
.result{display:grid;gap:.45rem;padding:.85rem;margin-bottom:.8rem;border:1px solid var(--lime);background:#152f3d;scroll-margin-top:88px}
.result strong{font:900 1.7rem system-ui;color:var(--lime)}
.result span,.result li{font-size:0.8rem;color:var(--muted)}
.result.failed{border-color:var(--orange)}
.result.failed strong{color:var(--orange);font-size:1rem}
.result ul{padding-left:1rem;margin:.2rem 0}
.result>div{display:flex;gap:.4rem}
.result .primary{justify-self:start}
.result-heading{display:flex;align-items:center;gap:.7rem!important}
.result-heading .overline{margin:.1rem 0}
.flight-medal{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;border:2px solid currentColor;font-size:0.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.medal-gold{color:#f1d36b;background:#f1d36b15}
.medal-silver{color:#c2d4db;background:#c2d4db15}
.medal-bronze{color:#e69b6b;background:#e69b6b15}
.debrief-grid{display:grid!important;grid-template-columns:repeat(3,1fr);gap:.35rem!important;margin:.3rem 0}
.debrief-grid p{display:grid;margin:0;padding:.45rem;background:#0b2638;border:1px solid #31516a66}
.debrief-grid span{font-size:0.8rem;letter-spacing:.08em}
.debrief-grid b{font-size:0.8rem;color:var(--white)}
.qualification{display:grid;padding:.5rem;background:#d7ee7314;border-left:2px solid var(--lime);font-size:0.8rem;color:var(--white)}
.qualification b{color:var(--lime);font-size:0.8rem;letter-spacing:.1em}
.result-actions{display:flex!important;flex-wrap:wrap;gap:.4rem!important}
footer{display:flex;justify-content:space-between;padding:1.4rem clamp(1rem,4vw,4rem);border-top:1px solid var(--line);font-size:0.8rem;color:var(--muted)}
footer nav{display:flex;gap:1rem}
footer a{color:var(--muted)}
.legal{max-width:780px;margin:5rem auto;padding:0 1.2rem;font-family:system-ui,sans-serif}
.legal h1{font-size:4rem;letter-spacing:-.05em}
.legal a{color:var(--sky)}
.legal li{margin:.8rem 0}
dialog{border:1px solid var(--line);background:var(--panel);border-radius:.5rem;padding:0;box-shadow:0 30px 100px #0009;max-width:420px;width:calc(100% - 2rem)}
dialog::backdrop{background:#020914cc;backdrop-filter:blur(4px)}
dialog form{display:grid;gap:.9rem;padding:1.2rem}
.dialog-head{display:flex;align-items:center;justify-content:space-between}
.dialog-head h2{margin:0}
.dialog-head button{border:0;background:none;font-size:2rem}
.danger{border:1px solid var(--orange);background:none;color:var(--orange);padding:.7rem}
@keyframes float{50%{transform:translateY(-15px) rotate(2deg)}
}
html[data-motion=reduced] *{animation:none!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}
}
html[data-contrast=strong]{--muted:#c6dce8;--line:#7398af}
.status{white-space:nowrap}
@media(max-width:950px){.home-hero{grid-template-columns:1fr}
.dial{width:min(80vw,480px)}
.programme-grid{grid-template-columns:1fr}
.flight-grid{grid-template-columns:1fr}
.chart-panel{position:relative;top:auto}
.flight-head{grid-template-columns:1fr auto}
.flight-head>button{grid-column:1/-1;justify-self:start}
.section-title{grid-template-columns:1fr}
.mission-card{grid-template-columns:auto 80px 1fr}
.mission-card em{grid-column:3}
}
@media(max-width:1024px){
.flight{padding-inline:clamp(.5rem,1.5vw,1.2rem)}
.flight-grid{gap:.7rem}
.programme-stats{grid-template-columns:repeat(2,1fr)}
.programme-stats article:nth-child(2){border-right:0}
.programme-stats article:nth-child(-n+2){border-bottom:1px solid #a8c1c1}
.sounding-calendar{grid-template-columns:repeat(3,1fr)}
.mission-grid{grid-template-columns:1fr}
.hero-copy h1{font-size:clamp(3rem,8vw,4.6rem)}
.chart-scroll .sky-chart{width:900px;max-width:none}
}
@media(max-width:768px){
.home-hero{padding-inline:clamp(.75rem,3vw,1.5rem)}
.programme-desk,.mission-section{padding-inline:clamp(.75rem,3vw,1.5rem)}
.sounding-calendar{grid-template-columns:repeat(2,1fr);max-height:460px;overflow:auto}
.plan-choice{grid-template-columns:1fr}
.plan-action{min-height:52px}
.utility{grid-template-columns:1fr 1fr}
.debrief-grid{grid-template-columns:repeat(2,1fr)}
.chart-scroll .sky-chart{width:820px;max-width:none}
.turn-tape{padding-bottom:.9rem}
}
@media(max-width:600px){header{padding-inline:.7rem}
.header-right>span{display:none}
.brand{font-size:0.8rem}
.home-hero{padding-top:3rem}
.hero-copy h1{font-size:3.6rem}
.resume-strip{display:grid;margin:-1.5rem .75rem 2rem;gap:.8rem}
.resume-strip>div:last-child{display:grid;grid-template-columns:1fr 1fr}
.mission-grid{grid-template-columns:1fr}
.programme-desk,.mission-section{padding-inline:.75rem}
.programme-stats{grid-template-columns:repeat(2,1fr)}
.programme-stats article:nth-child(2){border-right:0}
.programme-stats article:nth-child(-n+2){border-bottom:1px solid #a8c1c1}
.sounding-calendar{grid-template-columns:repeat(2,1fr);max-height:440px;overflow:auto}
.panel-head{align-items:start}
.flight-badge{grid-template-columns:auto 1fr}
.flight-badge>b{grid-column:2}
.log-row{grid-template-columns:1fr auto}
.log-row>span{grid-column:1/-1}
.mission-card{grid-template-columns:auto 60px 1fr}
.flight{padding-inline:.35rem}
.flight-head{gap:.5rem}
.turn-readout strong{font-size:1.4rem}
.chart-panel{padding:.2rem}
.chart-scroll .sky-chart{width:820px;max-width:none}
.chart-key{gap:.5rem}
.utility{grid-template-columns:1fr}
.plan-controls{grid-template-columns:1fr}
.flight-plan li{grid-template-columns:auto 1fr}
.flight-plan li small{grid-column:2}
.debrief-grid{grid-template-columns:1fr}
.variation-strip{align-items:flex-start;flex-direction:column;gap:.25rem}
.console{padding:.55rem}
footer{display:grid;gap:.7rem}
}
@media(max-width:375px){
.hero-actions{display:grid;gap:.5rem}
.hero-actions>*{width:100%}
.home-hero{padding-inline:.65rem}
.programme-desk,.mission-section{padding-inline:.65rem}
.sounding-calendar{grid-template-columns:1fr 1fr}
.utility{grid-template-columns:1fr}
.result-actions,.plan-controls{display:grid;gap:.4rem}
.result-actions>*,.plan-controls>*{width:100%}
.chart-scroll .sky-chart{width:760px;max-width:none}
.telemetry{grid-template-columns:1fr 1fr}
}
@media(max-width:360px){
header{padding-inline:.4rem}.brand{padding-inline:.25rem}.brand>span:last-child{display:none}.header-right{gap:.3rem}.plain{padding-inline:.65rem}
.home-hero{padding:2.5rem .8rem}.hero-copy h1{font-size:3.05rem}.hero-actions{display:grid}.hero-actions>*{width:100%}.dial{width:min(88vw,320px)}
.programme-desk,.mission-section{padding-inline:.55rem}.calendar-panel,.badge-panel,.recent-log{padding:.7rem}.mission-card{grid-template-columns:auto 48px minmax(0,1fr);gap:.5rem;padding:.75rem}.mission-card em{grid-column:3}
.flight{padding-inline:0}.flight-head{padding-inline:.45rem}.flight-head h1{font-size:2rem}.turn-readout{padding-left:.65rem}.chart-panel{border-radius:0;padding:.25rem}.console{margin-inline:.35rem}.plan-choice{grid-template-columns:1fr}.plan-action{min-height:52px}.chart-key{gap:.45rem;padding-inline:.45rem}.wind-table{margin-inline:.35rem}
footer nav{display:flex;flex-wrap:wrap;gap:.35rem}dialog{width:calc(100% - .8rem)}
}

@media(pointer:coarse){button{min-height:44px}}

.wind-table summary{min-height:44px;display:flex;align-items:center}
.dialog-head button{min-width:44px;min-height:44px;padding:0;display:grid;place-items:center}

button{min-width:44px;min-height:44px}
header a,footer a{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
dialog label,details>summary,.file-button{min-height:44px}

.more-games{margin:3rem 0 0;border-top:1px solid var(--line);padding-top:1.6rem}
.more-games h2{margin:.2rem 0 .4rem}
.more-games>p{color:var(--muted);max-width:60ch}
.more-games-list{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.more-games-list li{min-width:0;border:1px solid var(--line);border-radius:.4rem;background:var(--panel);padding:.7rem .85rem;display:grid;gap:.2rem}
.more-games-list a{display:inline-flex;align-items:center;min-height:44px;color:var(--sky);font-weight:800}
.more-games-list span{color:var(--muted);font-size:0.8rem;line-height:1.55}
@media(max-width:768px){.more-games-list{grid-template-columns:1fr}}
.layer-label-end{text-anchor:end}

/* First-mission walkthrough */
.coach{display:flex;justify-content:space-between;align-items:center;gap:1.4rem;flex-wrap:wrap;margin:0 0 1rem;padding:1rem 1.15rem;border:1px solid var(--lime);border-left:5px solid var(--lime);border-radius:.9rem;background:#0d243c}
.coach>div:first-child{min-width:0;flex:1 1 320px}
.coach strong{display:block;font-size:1.1rem;font-weight:800;margin:.15rem 0 .3rem}
.coach p:last-child{margin:0;font-size:.8125rem;line-height:1.55;max-width:72ch;opacity:.88}
.coach-actions{display:flex;gap:.5rem;flex-wrap:wrap;flex:0 0 auto}
.coach-actions button{min-height:44px}

/* Chart scroll affordance */
.chart-shell{position:relative;min-width:0}
.chart-shell .chart-scroll-note{display:none;margin:.45rem 0 0;font-size:12px;line-height:1.5;opacity:.8}
.chart-shell[data-scrollable=yes] .chart-scroll-note{display:block}
.chart-shell[data-scrollable=yes] .chart-scroll{box-shadow:inset -14px 0 14px -14px #000,inset 14px 0 14px -14px #000;scrollbar-width:thin}
.chart-shell[data-scrollable=yes] .chart-scroll::-webkit-scrollbar{height:9px}
.chart-shell[data-scrollable=yes] .chart-scroll::-webkit-scrollbar-thumb{background:#3d6a86;border-radius:9px}
.chart-shell[data-scrollable=yes] .chart-scroll::-webkit-scrollbar-track{background:#0d243c}

/* Result arithmetic and standing */
.score-breakdown{list-style:none;margin:.85rem 0 0;padding:0;display:grid;gap:.22rem}
.score-breakdown li{display:flex;justify-content:space-between;gap:.9rem;border-bottom:1px solid #ffffff22;padding:.4rem 0;font-size:.8125rem}
.score-breakdown li b{font-variant-numeric:tabular-nums}
.score-breakdown li.total{border-bottom:0;border-top:2px solid var(--lime);font-weight:800;font-size:.95rem}
.standing-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;margin-top:.85rem}
.standing-row article{min-width:0;display:grid;border:1px solid #ffffff26;border-radius:.6rem;padding:.55rem .6rem}
.standing-row b{font-size:1.05rem;font-weight:800;color:var(--lime)}
.standing-row span{font-size:12px;text-transform:uppercase;letter-spacing:.07em;opacity:.75;margin-top:.15rem}

/* Shortcut and statistics dialogs */
.shortcut-list{display:grid;gap:.4rem;margin:.9rem 0 0}
.shortcut-list>div{display:grid;grid-template-columns:150px 1fr;gap:.7rem;align-items:baseline;border-top:1px solid #ffffff22;padding-top:.4rem}
.shortcut-list dt{font-weight:800;font-size:.8125rem;letter-spacing:.04em}
.shortcut-list dd{margin:0;font-size:.8125rem;line-height:1.5;opacity:.85}
.stats-list{display:grid;gap:.2rem;margin:.9rem 0 0}
.stats-list>div{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #ffffff22;padding:.45rem 0;font-size:.8125rem}
.stats-list dd{margin:0;font-weight:800;font-variant-numeric:tabular-nums}
.stats-note{font-size:.8125rem;line-height:1.55;margin-top:.8rem;opacity:.85}
#stats-open-button{min-height:44px}

/* Bigger, clearer preference controls */
dialog label{padding:.2rem 0;cursor:pointer}
dialog label input[type=checkbox]{width:24px;height:24px;min-width:24px;flex:0 0 auto;accent-color:var(--lime)}

button:active:not(:disabled){transform:translateY(1px)}
@media(prefers-reduced-motion:reduce){button:active:not(:disabled){transform:none}}
html[data-motion=reduced] button:active:not(:disabled){transform:none}
@media(max-width:900px){.standing-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.standing-row{grid-template-columns:1fr}.shortcut-list>div{grid-template-columns:1fr}.coach-actions{width:100%}.coach-actions button{flex:1 1 auto}}

/* A long dialog title must never overlap its close control */
.dialog-head{gap:.6rem;flex-wrap:nowrap}
.dialog-head h2{min-width:0;overflow-wrap:anywhere}
.dialog-head button{flex:0 0 auto;position:relative;z-index:1}
dialog{max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain}
.dialog-head{position:sticky;top:0;z-index:2;background:var(--panel);padding-block:.25rem}
dialog{box-sizing:border-box;max-width:min(420px,calc(100vw - 1.5rem))}
#stats-body,#shortcuts-dialog>p,#shortcuts-dialog .shortcut-list{padding-inline:1.2rem}
#stats-body{padding-bottom:1.2rem}
#shortcuts-dialog .shortcut-list{padding-bottom:1.2rem}
.stats-list>div,.shortcut-list>div{flex-wrap:wrap}
.stats-list dt,.stats-list dd,.shortcut-list dt,.shortcut-list dd{min-width:0;overflow-wrap:anywhere}

.update-prompt{position:fixed;z-index:40;right:16px;bottom:16px;max-width:min(340px,calc(100vw - 32px));display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--white);box-shadow:0 14px 40px rgba(0,0,0,.3)}
.update-prompt-text{margin:0;font-size:.875rem;line-height:1.45}
.update-prompt-actions{display:flex;flex-wrap:wrap;gap:8px}
.update-prompt button{min-width:44px;min-height:44px;padding:0 16px;border-radius:6px;font:inherit;font-size:.875rem;cursor:pointer}
.update-prompt-reload{border:1px solid transparent;background:var(--sky);color:#07172b;font-weight:700}
.update-prompt-dismiss{border:1px solid var(--line);background:transparent;color:inherit}
@media(prefers-reduced-motion:no-preference){.update-prompt{animation:update-prompt-in .18s ease-out}
@keyframes update-prompt-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}
@media(max-width:560px){.update-prompt{left:12px;right:12px;bottom:84px;max-width:none}}
.par-note,.next-note{margin:.5rem 0 0;font-size:12px;line-height:1.55;opacity:.85}
.plan-track{margin:.35rem 0 .5rem;font-size:12px;line-height:1.55;opacity:.85}
.recovery-countdown{display:block;margin-top:.2rem;font-size:12px;color:var(--lime)}
.profile-samples{margin:.35rem 0 0;padding-left:1.1rem;font-size:12px;line-height:1.6}
.share-preview{margin-top:.7rem;border:1px solid #2b5573;border-radius:.5rem;padding:.6rem .7rem;background:#0d243c}
.share-preview pre{margin:.35rem 0;white-space:pre-wrap;word-break:break-word;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}
.share-preview .share-state{margin:.2rem 0 .45rem;font-size:12px;opacity:.85}
.share-preview button{min-height:44px}
.flight-plan{border:2px solid #2b5573;border-radius:.6rem;padding:.7rem}

/* Play screen in one view: a compact mission line; the chart sized to the space under the header; the three
   controls, the telemetry and the objectives first in the console, the brief, gusts and flight plan after. On a
   phone the whole chart fits the width (labels set larger to stay readable) and the controls follow it. */
.flight{padding-top:.5rem!important;padding-bottom:1.5rem!important}
.flight-head{margin-bottom:.5rem;align-items:center;gap:1rem}
.flight-head h1{font-size:clamp(1.6rem,2.8vw,2.4rem);margin:0 0 .2rem}
.flight-head>*{min-width:0}
.brief-more{display:none}
.chart-panel{padding:.5rem;top:auto;position:relative}
.chart-shell .sky-chart{max-height:calc(var(--ux-fit-h,480px) - 8px);width:auto;max-width:100%;margin:0 auto}
.console{display:flex;flex-direction:column;gap:.5rem;padding:.6rem;max-height:var(--ux-fit-h,calc(100vh - 100px));overflow:auto}
.console>*{margin:0!important}
.console>#result-slot{order:0}
.console>.forecast{order:1}
.console>.telemetry{order:2}
.console>.objectives{order:3}
.console>.utility{order:4}
.console>.notice{order:5}
.console>:is(.mission-brief,.gust-tape,.flight-plan){order:6}
.telemetry{grid-template-columns:repeat(4,1fr)}
.telemetry div{padding:.35rem .45rem}
.telemetry span{font-size:.625rem}
.forecast .action{min-height:44px;padding:.35rem .6rem}
.objectives .objective{padding-block:.2rem}
@media(max-width:950px){
.flight-head{grid-template-columns:auto 1fr!important;gap:.25rem .6rem;position:relative}
.flight-head>button{grid-column:1!important;grid-row:1}
.flight-head>.turn-readout{grid-column:2;grid-row:1;justify-self:end;display:flex;align-items:baseline;gap:.4rem}
.flight-head>div:not(.turn-readout){grid-column:1/-1;grid-row:2}
.flight-head .overline{display:none}
.flight-head h1{font-size:1.35rem}
.flight-head .flight-brief{font-size:.75rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.flight.brief-open .flight-head .flight-brief{display:block}
.brief-more{display:inline-flex;position:absolute;top:1px;right:96px;align-items:center;min-height:44px;padding:0 .2rem;border:0;background:none;font:700 .75rem/1 inherit;text-decoration:underline;text-underline-offset:3px;color:inherit;cursor:pointer}
.flight-grid{display:flex!important;flex-direction:column;gap:.4rem;min-width:0;max-width:100%}
.flight>*{min-width:0;max-width:100%}
#result-slot .result{grid-template-columns:minmax(0,1fr)}
#result-slot .result>*{min-width:0}
#result-slot .standing-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}
#result-slot .standing-row b{overflow-wrap:anywhere}
.chart-panel,.console{display:contents}
.chart-shell{order:1;width:100%}
.chart-scroll .sky-chart{width:100%!important;max-width:100%!important;max-height:none}
.chart-shell .chart-scroll-note{display:none!important}
.layer-label,.wind-arrow text,.target-label,.sample text,.position-tag{font-size:30px}
.console>#result-slot{order:2}
.console>.forecast{order:3;grid-template-columns:repeat(3,minmax(0,1fr))}
.forecast .action{min-width:0;overflow-wrap:anywhere}
.console>*,.chart-panel>*{max-width:100%;min-width:0}
.chart-panel>.turn-tape{overflow-x:auto}
.console>.forecast>.panel-title{grid-column:1/-1;margin:0;font-size:.6875rem}
.forecast .action{flex-direction:column;align-items:flex-start;gap:.1rem;padding:.3rem .4rem}
.forecast .action>span{width:auto;font-size:1.1rem;line-height:1}
.forecast .action b,.forecast .action small{font-size:.6875rem}
.forecast .action.recommended:after{display:none}
.console>.telemetry{order:4}
.console>.utility{order:5;display:grid;grid-template-columns:repeat(4,1fr);gap:.3rem}
.utility button{min-height:44px;font-size:.6875rem;padding:0 .2rem}
.console>.objectives{order:6}
.console>.notice{order:7}
.chart-panel>:is(.wind-table,.chart-key,.turn-tape){order:8}
.console>:is(.mission-brief,.gust-tape,.flight-plan){order:9}
}
