@charset "UTF-8";
@font-face{font-family:"Orbitron";src:url("./assets/fonts/orbitron-latin-variable.woff2") format("woff2");font-weight:400 900;font-style:normal;font-display:swap}
:root{--display:"Orbitron",var(--mono)}
:root{color-scheme:dark;--bg:#080e16;--panel:rgba(9,17,27,.91);--line:rgba(189,212,221,.19);--muted:#8eabb9;--text:#edf4f4;--acid:#dbff7a;--cyan:#74deee;--danger:#ff877e;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--sans:Inter,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--sans)}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible{outline:0.125rem solid var(--cyan);outline-offset:0.3125rem}#game{position:fixed;inset:0;width:100%;height:100%;display:block}.screen-vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(4,10,17,.18),transparent 45%),linear-gradient(0deg,rgba(4,10,17,.4),transparent 18%)}#ui{position:fixed;inset:0;pointer-events:none}#ui button,#ui input,.scrollable{pointer-events:auto}.mono,.eyebrow,.tag,.key,.tiny,.button,.hud-label,.mission-no{font-family:var(--mono)}.eyebrow{font-size:0.75rem;letter-spacing:.19em;text-transform:uppercase;line-height:1.6;color:var(--muted)}.eyebrow.acid{color:var(--acid)}.eyebrow.cyan{color:var(--cyan)}.appbar{position:absolute;top:1.75rem;left:2.375rem;right:2.375rem;display:flex;justify-content:space-between;align-items:center;gap:1.25rem}.brand{display:flex;align-items:center;gap:0.75rem;font-size:0.875rem;font-weight:650;letter-spacing:.14em}.brand-mark{width:1.5625rem;height:1.5625rem;color:var(--acid)}.appbar-controls{display:flex;align-items:center;gap:1.1875rem}.tiny{font-size:0.75rem;letter-spacing:.07em;color:var(--muted)}.connection{display:flex;align-items:center;gap:0.4375rem}.dot{display:inline-block;width:0.3125rem;height:0.3125rem;background:var(--acid);border-radius:50%;box-shadow:0 0 0.5625rem #dbff7a77}.icon-button{border:0.0625rem solid var(--line);background:rgba(10,20,30,.5);padding:0.5625rem 0.75rem;font-family:var(--mono);font-size:0.75rem;letter-spacing:.06em;transition:color .15s,border-color .15s}.icon-button:hover{color:var(--acid);border-color:var(--acid)}.title-layout{position:absolute;left:7.4%;right:5.1%;top:21.5%;display:flex;justify-content:space-between;align-items:center;gap:7vw}.title-copy{max-width:40.625rem}.title-index{display:flex;align-items:center;gap:0.75rem;margin-bottom:1.5rem}.title-index:before{content:"";width:1.875rem;height:0.0625rem;background:var(--acid)}h1{margin:0;font-size:clamp(4.6875rem,8.25vw,8.625rem);line-height:.84;letter-spacing:-.065em;font-weight:730}h1 span{display:block}h1 .outline{color:transparent;-webkit-text-stroke:0.0625rem rgba(237,244,244,.76);margin-top:0.8125rem}h1 .title-dot{display:inline;color:var(--acid);-webkit-text-stroke:0}.title-description{font-size:1rem;line-height:1.8;color:#b8c9d1;max-width:23.125rem;margin:1.8125rem 0 1.6875rem}.title-actions{display:flex;gap:0.8125rem;align-items:center;flex-wrap:wrap}.button{min-height:2.9375rem;padding:0.875rem 1.375rem;border:0.0625rem solid var(--line);background:rgba(9,17,27,.8);font-size:0.75rem;letter-spacing:.08em;text-transform:uppercase;display:inline-flex;justify-content:center;align-items:center;gap:1.25rem;transition:background .15s,border-color .15s,transform .15s}.button:hover{border-color:var(--acid);background:rgba(28,43,41,.95)}.button.primary{background:var(--acid);color:#111b17;border-color:var(--acid);font-weight:750}.button.primary:hover{background:#eaffab;transform:translateY(-0.0625rem)}.button.ghost{border-color:transparent;background:transparent;color:#c0d0d8;padding-left:0.75rem;padding-right:0.75rem}.button.ghost:hover{color:var(--acid)}.button.full{width:100%}.arrow{font-size:1.1875rem;line-height:.8}.title-hint{margin-top:1.25rem;font-size:0.75rem;color:#7f9aaa;letter-spacing:.04em}.destination-card{width:17.5rem;flex-shrink:0;margin-top:6.875rem;position:relative;padding:1.4375rem 0 0 1.375rem;border-left:0.0625rem solid var(--line);background:linear-gradient(90deg,rgba(8,15,24,.55),transparent)}.destination-card:before{content:"";width:0.3125rem;height:0.3125rem;background:var(--acid);position:absolute;left:-0.1875rem;top:0}.destination-card h2{font-size:2.25rem;font-weight:420;letter-spacing:-.04em;margin:0.875rem 0 0.3125rem}.destination-card .destination-parent{font-size:0.75rem;color:#8fa7b4;letter-spacing:.12em;font-family:var(--mono)}.destination-card p{font-size:0.875rem;color:#a6bcc9;line-height:1.8;margin:1.375rem 0}.destination-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-top:1.125rem;border-top:0.0625rem solid var(--line)}.destination-stats strong{display:block;font-family:var(--mono);font-size:0.875rem;font-weight:450;margin-top:0.5rem}.footer{position:absolute;bottom:1.5625rem;left:2.375rem;right:2.375rem;display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem}.footer-line{border-top:0.0625rem solid var(--line);padding-top:1rem;flex:1;display:flex;justify-content:space-between;gap:0.9375rem;max-width:43.75rem}.footer-right{text-align:right;line-height:1.9}.key{display:inline-flex;align-items:center;justify-content:center;min-width:1.375rem;height:1.3125rem;padding:0.0625rem 0.3125rem;font-size:0.75rem;border:0.0625rem solid #516575;border-bottom-width:0.125rem;border-radius:0.1875rem;color:#d5e2e7;background:rgba(18,29,40,.75);vertical-align:middle}.key.small{height:1.125rem;min-width:1.125rem;font-size:0.75rem}.content-panel{position:absolute;inset:5.875rem 6% 4.6875rem;display:flex;flex-direction:column;min-height:0}.panel-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1.25rem;margin-bottom:1.5625rem}.panel-heading h2{font-size:2.375rem;letter-spacing:-.04em;font-weight:500;margin:0.5625rem 0 0}.panel-heading p{font-size:0.875rem;color:var(--muted);margin:0;line-height:1.6}.map-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(18.125rem,1fr);gap:1.875rem;flex:1;min-height:0}.moon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.625rem;align-content:start}.moon-card{position:relative;text-align:left;min-height:10rem;overflow:hidden;border:0.0625rem solid var(--line);background:rgba(9,18,27,.8);padding:1.0625rem 0.875rem 0.875rem;transition:border-color .2s,background .2s}.moon-card:hover:not(:disabled){border-color:var(--muted);background:rgba(22,37,48,.94)}.moon-card.selected{border-color:var(--acid);background:rgba(31,43,37,.88)}.moon-card:disabled{opacity:.48}.moon-card .moon-number{position:absolute;top:0.875rem;left:0.875rem;color:var(--muted);font-family:var(--mono);font-size:0.75rem;letter-spacing:.07em}.moon-visual{width:3.5625rem;height:3.5625rem;border-radius:50%;margin:0.5625rem auto 0.875rem;border:0.0625rem solid var(--moon-color);background:radial-gradient(circle at 32% 30%,transparent 0.1875rem,rgba(0,0,0,.3) 0.25rem,transparent 0.375rem),radial-gradient(circle at 67% 66%,transparent 0.375rem,rgba(0,0,0,.4) 0.4375rem,transparent 0.5625rem),radial-gradient(circle at 32% 28%,color-mix(in srgb,var(--moon-color) 22%,#0b1722),#0a141d 80%);box-shadow:inset -0.8125rem -0.3125rem 1.125rem #0008,0 0 1.375rem color-mix(in srgb,var(--moon-color) 8%,transparent);position:relative}.moon-visual:after{content:"";position:absolute;inset:0.8125rem 0.25rem;border-top:0.0625rem solid color-mix(in srgb,var(--moon-color) 35%,transparent);border-bottom:0.0625rem solid color-mix(in srgb,var(--moon-color) 20%,transparent);border-radius:50%;transform:rotate(-30deg)}.moon-name{font-size:0.9375rem;display:block;margin-bottom:0.25rem;font-weight:550}.moon-parent{display:block;font-size:0.75rem;color:var(--muted);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase}.moon-stars{font-size:0.75rem;letter-spacing:0.125rem;color:var(--acid);position:absolute;right:0.6875rem;top:0.8125rem}.moon-lock{font-size:0.75rem;position:absolute;bottom:0.8125rem;right:0.625rem;color:var(--muted);font-family:var(--mono)}.mission-panel{padding:1.4375rem;background:var(--panel);border:0.0625rem solid var(--line);overflow:auto;pointer-events:auto}.mission-panel h3{font-size:1.875rem;font-weight:450;letter-spacing:-.03em;margin:0.625rem 0}.mission-panel .description{font-size:0.875rem;color:var(--muted);line-height:1.8;margin:0 0 1.25rem}.hazard-tags{display:flex;flex-wrap:wrap;gap:0.375rem;margin-bottom:1.375rem}.tag{border:0.0625rem solid var(--line);padding:0.3125rem 0.4375rem;font-size:0.75rem;text-transform:uppercase;letter-spacing:.03em;color:#aac3ce}.mission-list{display:flex;flex-direction:column;gap:0.5rem}.mission-button{width:100%;display:flex;align-items:center;gap:0.75rem;padding:0.9375rem 0.75rem;text-align:left;background:#10202b80;border:0.0625rem solid var(--line);transition:border-color .15s}.mission-button:hover{border-color:var(--acid)}.mission-button:disabled{opacity:.45}.mission-no{font-size:0.75rem;color:var(--acid);width:1.3125rem}.mission-button strong{display:block;font-size:0.875rem;font-weight:550;margin-bottom:0.3125rem}.mission-button small{font-family:var(--mono);font-size:0.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.mission-button .mission-status{margin-left:auto;color:var(--acid);font-size:0.75rem;white-space:nowrap}.progress-box{display:flex;gap:1.75rem;align-items:center}.progress-box strong{font-family:var(--mono);font-size:1.25rem;font-weight:400;color:var(--acid)}.progress-box small{font-family:var(--mono);font-size:0.75rem;display:block;margin-top:0.3125rem;letter-spacing:.08em;color:var(--muted)}.modal-backdrop{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(3,9,15,.53);backdrop-filter:blur(0.4375rem);padding:1.875rem;pointer-events:auto}.modal{width:min(33.75rem,100%);background:rgba(10,20,29,.97);border:0.0625rem solid #53645b;box-shadow:0 1.5rem 6.25rem #0006;padding:2rem;position:relative;max-height:calc(100vh - 3.75rem);overflow:auto}.modal:before{position:absolute;content:"";left:-0.0625rem;top:-0.0625rem;width:3.4375rem;height:0.1875rem;background:var(--acid)}.modal h2{font-size:2.25rem;font-weight:450;letter-spacing:-.04em;margin:0.9375rem 0 0.9375rem;line-height:1.1}.modal p{font-size:0.875rem;color:#afc3ce;line-height:1.8}.modal .modal-actions{display:flex;gap:0.5625rem;margin-top:1.625rem;flex-wrap:wrap}.modal .modal-actions .primary{flex:1}.briefing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.875rem;padding:1.3125rem 0;margin-top:1.125rem;border-top:0.0625rem solid var(--line);border-bottom:0.0625rem solid var(--line)}.briefing-grid strong{display:block;font-family:var(--mono);font-size:0.9375rem;font-weight:450;margin-top:0.625rem}.flight-tip{background:#152b3470;border-left:0.125rem solid var(--cyan);padding:0.75rem 0.875rem;font-size:0.75rem!important;margin-top:1.25rem!important}.modal-close{position:absolute;right:0.9375rem;top:0.9375rem;padding:0.3125rem 0.5625rem;border:0.0625rem solid var(--line);background:transparent;font-size:1.0625rem}.stars-large{font-size:2.5rem;letter-spacing:0.8125rem;color:var(--acid);margin:0.75rem 0 1.4375rem}.stars-large .empty{color:#45524d}.result-score{font-family:var(--mono);font-size:2.4375rem;color:var(--acid);font-weight:400;letter-spacing:-.05em}.result-score small{font-size:0.75rem;color:var(--muted);letter-spacing:.1em;display:block;margin-top:0.3125rem}.crash .eyebrow,.crash h2{color:var(--danger)}.crash:before{background:var(--danger)}.flight-top{position:absolute;top:1.5625rem;left:1.875rem;right:1.875rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1.125rem}.flight-heading{max-width:16.875rem;background:linear-gradient(90deg,#08111ce6,#08111c66);padding:0.75rem 1.125rem 0.8125rem;border-left:0.125rem solid var(--acid)}.flight-heading h2{font-size:1rem;font-weight:500;margin:0.375rem 0 0}.telemetry{display:flex;gap:0;background:#08111ccf;border:0.0625rem solid var(--line)}.telemetry-cell{min-width:5.875rem;padding:0.75rem 1.0625rem 0.8125rem;border-left:0.0625rem solid var(--line)}.telemetry-cell:first-child{border-left:0}.hud-label{font-size:0.75rem;letter-spacing:.08em;color:var(--muted)}.telemetry-value{font-family:var(--mono);font-size:1.375rem;line-height:1;margin-top:0.625rem;white-space:nowrap}.telemetry-value small{font-size:0.75rem;color:var(--muted);margin-left:0.25rem}.telemetry-value.safe{color:var(--acid)}.telemetry-value.danger{color:var(--danger)}.flight-top-actions{display:flex;gap:0.5rem}.fuel-bar{height:0.1875rem;width:100%;background:#283c42;margin-top:0.5625rem}.fuel-bar>i{display:block;height:100%;background:var(--acid);width:100%;transition:width .12s}.flight-bottom{position:absolute;bottom:1.5rem;left:1.875rem;right:1.875rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1.5625rem}.objective{border-left:0.125rem solid var(--cyan);padding:0.625rem 0.9375rem;background:linear-gradient(90deg,#08111ce8,#08111c77);max-width:31.875rem}.objective strong{display:block;font-size:0.875rem;font-weight:450;margin-top:0.4375rem}.objective p{font-family:var(--mono);font-size:0.75rem;color:var(--muted);line-height:1.6;margin:0.5rem 0 0}.flight-controls{font-family:var(--mono);font-size:0.75rem;color:#adc3ce;display:flex;flex-wrap:wrap;gap:0.8125rem;justify-content:flex-end;max-width:27.5rem;line-height:2}.flight-controls span{white-space:nowrap}.boarding-bar{margin-top:0.75rem;height:0.1875rem;background:#233945}.boarding-bar i{display:block;height:100%;background:var(--cyan)}.manual-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4375rem;margin:1.5625rem 0}.manual-grid h3{font-family:var(--mono);font-size:0.75rem;color:var(--acid);letter-spacing:.08em;margin:0 0 0.875rem}.manual-grid p{font-size:0.75rem;margin:0.6875rem 0}.manual-list{padding:0 0 0 1.0625rem;font-size:0.875rem;color:#acc0cb;line-height:1.9}.manual-bottom{font-size:0.75rem!important;border-top:0.0625rem solid var(--line);padding-top:1.0625rem}#toast{position:fixed;left:50%;top:6.5rem;transform:translate(-50%,-0.75rem);padding:0.75rem 1.3125rem;background:#132a31f5;border:0.0625rem solid #64868b;color:#e9f7f7;font-family:var(--mono);font-size:0.75rem;opacity:0;pointer-events:none;z-index:20;transition:opacity .2s,transform .2s;max-width:90vw;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}.manual-layer{z-index:10}.instruction-line{display:flex;justify-content:space-between;gap:0.625rem;align-items:center}.mission-note{font-size:0.75rem;color:var(--muted);line-height:1.7;font-family:var(--mono);margin-top:1.25rem}.mobile-controls{position:absolute;bottom:6.25rem;left:1.25rem;right:1.25rem;display:none;justify-content:space-between;pointer-events:none}.touch-cluster{display:flex;gap:0.625rem}.touch-control{pointer-events:auto;width:3.625rem;height:3.625rem;border:0.0625rem solid #7f9fac88;background:#0c1d2bd9;color:var(--text);font-family:var(--mono);font-size:1.375rem;border-radius:50%;touch-action:none;user-select:none;-webkit-user-select:none}.touch-control.thrust{border-color:var(--acid);color:var(--acid);font-size:0.875rem;width:4.5rem;height:4.5rem}.touch-control:active{background:#3e5943}.title-launch-note{margin-top:0.875rem;font-size:0.75rem;color:var(--muted)}
@media(min-width:1700px){.title-layout{top:23%}.destination-card{margin-right:6%;width:18.75rem}.title-description{font-size:1.125rem}.content-panel{inset:6.875rem 10% 5.625rem}.moon-card{min-height:11.875rem}.moon-visual{width:4.6875rem;height:4.6875rem}}
@media(max-width:1100px){.title-layout{left:6%;right:5%;gap:1.5625rem}.destination-card{width:14.375rem}.title-description{font-size:0.875rem;max-width:20rem}.appbar{left:1.5625rem;right:1.5625rem}.map-layout{grid-template-columns:1.25fr 1fr;gap:1.0625rem}.moon-grid{grid-template-columns:repeat(2,minmax(0,1fr));overflow-y:auto;padding-right:0.1875rem;pointer-events:auto;align-content:start}.moon-card{min-height:8.75rem}.moon-visual{width:2.6875rem;height:2.6875rem;margin:0.4375rem auto 0.8125rem}.mission-panel{padding:1.1875rem}.content-panel{inset:5.5625rem 4% 4.0625rem}.telemetry-cell{min-width:4.6875rem;padding:0.75rem}.telemetry-value{font-size:1.1875rem}.flight-heading{max-width:13.125rem}.flight-top{left:1.25rem;right:1.25rem;gap:0.625rem}.flight-top-actions .icon-button{padding:0.5625rem}.flight-controls{max-width:20.625rem;font-size:0.75rem;gap:0.5625rem}.flight-bottom{left:1.25rem;right:1.25rem}.footer{left:1.5625rem;right:1.5625rem}.footer-line{max-width:34.375rem}.footer-right{font-size:0.75rem}}
@media(max-width:760px){.appbar{top:1.25rem;left:1.25rem;right:1.25rem}.brand{font-size:0.75rem;gap:0.5625rem}.brand-mark{width:1.3125rem;height:1.3125rem}.appbar-controls{gap:0.5625rem}.connection{font-size:0.75rem}.title-layout{top:19%;left:8%;display:block}.title-copy{max-width:31.25rem}h1{font-size:clamp(4.75rem,15vw,7.1875rem)}.title-index{font-size:0.75rem;margin-bottom:1.375rem}.title-description{font-size:0.875rem;max-width:19.375rem;margin-top:1.5625rem;line-height:1.7}.title-actions{gap:0.1875rem}.button{padding:0.8125rem 1.0625rem;min-height:2.75rem;font-size:0.75rem}.destination-card{display:none}.title-hint{font-size:0.75rem}.footer{bottom:1.1875rem;left:1.25rem;right:1.25rem}.footer-line{font-size:0.75rem;padding-top:0.75rem}.footer-line span:last-child{display:none}.footer-right{font-size:0.75rem}.panel-heading{margin-bottom:1.125rem;align-items:flex-start}.panel-heading h2{font-size:1.75rem;margin-top:0.375rem}.panel-heading p{font-size:0.75rem;max-width:11.25rem}.panel-heading .progress-box{gap:1.0625rem}.progress-box strong{font-size:1.0625rem}.progress-box small{font-size:0.75rem}.content-panel{inset:5.3125rem 1.25rem 3.8125rem}.map-layout{grid-template-columns:1fr;gap:0.8125rem;overflow:auto;pointer-events:auto;display:flex;flex-direction:column}.moon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.375rem;overflow:visible;flex-shrink:0}.moon-card{padding:0.5625rem 0.5rem;min-height:7.1875rem}.moon-visual{width:2.3125rem;height:2.3125rem;margin:0.8125rem auto 0.5625rem}.moon-name{font-size:0.75rem}.moon-parent{font-size:0.75rem}.moon-card .moon-number{top:0.5rem;left:0.4375rem;font-size:0.75rem}.moon-stars{font-size:0.75rem;right:0.375rem;top:0.4375rem;letter-spacing:0}.moon-lock{font-size:0.75rem;right:0.375rem;bottom:0.5rem}.mission-panel{overflow:visible;padding:1.125rem}.mission-panel h3{font-size:1.5625rem}.mission-panel .description{font-size:0.75rem;margin-bottom:0.8125rem}.hazard-tags{margin-bottom:0.875rem}.mission-button{padding:0.75rem 0.5625rem}.mission-note{font-size:0.75rem;margin-top:0.9375rem}.modal-backdrop{padding:1.125rem}.modal{padding:1.625rem 1.4375rem;max-height:calc(100dvh - 2.25rem)}.modal h2{font-size:1.9375rem}.modal p{font-size:0.875rem}.briefing-grid{gap:0.625rem;padding:1rem 0}.briefing-grid strong{font-size:0.875rem}.flight-top{top:0.9375rem;left:0.875rem;right:0.875rem;flex-wrap:wrap}.flight-heading{padding:0.5rem 0.6875rem;max-width:calc(100% - 6.875rem);flex:1}.flight-heading .eyebrow{font-size:0.75rem}.flight-heading h2{font-size:0.875rem}.flight-top-actions{position:absolute;right:0;top:0}.telemetry{order:3;width:100%;margin-top:0.125rem;justify-content:space-between}.telemetry-cell{min-width:0;flex:1;padding:0.5625rem 0.5rem}.telemetry-value{font-size:1.0625rem;margin-top:0.4375rem}.telemetry-value small{font-size:0.75rem;margin-left:0.125rem}.hud-label{font-size:0.75rem;letter-spacing:.03em}.flight-bottom{left:0.875rem;right:0.875rem;bottom:0.9375rem;display:block}.objective{padding:0.5rem 0.6875rem;max-width:100%}.objective .eyebrow{font-size:0.75rem}.objective strong{font-size:0.875rem;margin-top:0.25rem}.objective p{font-size:0.75rem;margin-top:0.3125rem}.flight-controls{margin-top:0.625rem;max-width:100%;justify-content:center;gap:0.5rem;font-size:0.75rem}.key{height:1.125rem;min-width:1.125rem;font-size:0.75rem}.manual-grid{gap:0.9375rem}.manual-grid p{font-size:0.75rem}.manual-grid h3{font-size:0.75rem}.manual-list{font-size:0.75rem}.stars-large{font-size:2rem;letter-spacing:0.625rem}.footer .tiny{font-size:0.75rem}}
@media(hover:none) and (pointer:coarse){.mobile-controls{display:flex}.flight-controls{display:none}}
@media(max-height:650px) and (min-width:761px){.title-layout{top:21%}h1{font-size:5.3125rem}.title-index{margin-bottom:1.0625rem}.title-description{font-size:0.875rem;margin:1.375rem 0 1.125rem}.destination-card{margin-top:1.875rem}.title-hint{margin-top:0.6875rem}.content-panel{top:5.0625rem;bottom:3.3125rem}.panel-heading{margin-bottom:0.9375rem}.panel-heading h2{font-size:1.75rem}.moon-card{min-height:7.8125rem}.moon-visual{width:2.1875rem;height:2.1875rem}.footer{bottom:0.9375rem}.modal{max-height:calc(100vh - 1.875rem);padding:1.5rem}.modal h2{font-size:1.8125rem}.modal p{font-size:0.875rem}.briefing-grid{padding:0.875rem 0}.manual-grid{margin:1rem 0}.manual-grid p{margin:0.5rem 0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.moon-visual.moon-art{border:0;background:none;box-shadow:none;color:var(--moon-color)}
.moon-visual.moon-art:after{display:none}
.moon-art svg{width:100%;height:100%;display:block;filter:drop-shadow(0 0 0.5rem color-mix(in srgb,var(--moon-color) 15%,transparent))}
.world-identity{font-family:var(--mono);margin:-0.1875rem 0 0.9375rem;font-size:0.75rem;letter-spacing:.1em;color:var(--cyan)}
.world-identity small{display:block;color:var(--muted);font-size:0.75rem;letter-spacing:.01em;margin-top:0.375rem;line-height:1.5}
/* Keep transient messages clear of flight instruments and modal reading. */
body:has(.modal-backdrop) #toast{opacity:0;visibility:hidden}
.progress-box strong{white-space:nowrap}
@media(max-width:760px){#toast{top:9.75rem;width:min(20.625rem,calc(100vw - 1.75rem));padding:0.625rem 0.8125rem;font-size:0.75rem}}
@media(max-height:530px) and (orientation:landscape){.appbar{top:0.875rem}.title-layout{top:4.75rem;bottom:3.25rem;left:6%;right:6%;align-items:center}.title-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(15.3125rem,1.15fr);column-gap:1.5625rem;row-gap:0.6875rem;width:100%;max-width:56.25rem}.title-index{grid-column:1/-1;margin:0;font-size:0.75rem}h1{font-size:clamp(2.8125rem,9vw,4.875rem);grid-column:1;grid-row:2/5;align-self:start}h1 .outline{margin-top:0.625rem}.title-description{grid-column:2;grid-row:2;font-size:0.875rem;line-height:1.7;margin:0;max-width:none}.title-actions{grid-column:2;grid-row:3;gap:0.25rem}.title-actions .button{font-size:0.75rem;min-height:2.3125rem;padding:0.625rem 0.8125rem}.title-hint{grid-column:2;grid-row:4;font-size:0.75rem;margin:0}.destination-card{display:none}.footer{bottom:0.8125rem}.footer-right{display:none}.footer-line{max-width:none;padding-top:0.625rem}}
@media(max-width:370px){.appbar .connection{display:none}.brand{white-space:nowrap}.title-layout{top:18%}h1{font-size:clamp(3.625rem,19vw,4.375rem)}.title-index{font-size:0.75rem;margin-bottom:1.125rem}.title-description{font-size:0.875rem;line-height:1.7;margin:1.25rem 0}.title-actions .button{font-size:0.75rem;gap:0.75rem;padding:0.75rem 0.875rem;min-height:2.5rem}.title-actions .button.ghost{padding:0.625rem 0.4375rem}.title-hint{font-size:0.75rem;margin-top:0.875rem}.title-hint .key{height:1rem;min-width:1rem;font-size:0.75rem;padding:0.0625rem 0.1875rem}.footer-right{display:none}.footer-line{font-size:0.75rem}}
.carrier-status{font-family:var(--mono);font-size:0.75rem;letter-spacing:.08em;color:var(--muted);line-height:1.4;margin-top:0.5rem}.depth-cell[hidden]{display:none}.depth-cell .telemetry-value{color:var(--cyan)}
@media(max-width:760px){.carrier-status{font-size:0.75rem;letter-spacing:.04em;margin-top:0.3125rem}.telemetry:has(.depth-cell:not([hidden])) .telemetry-cell{padding-left:0.375rem;padding-right:0.375rem}.telemetry:has(.depth-cell:not([hidden])) .telemetry-value{font-size:0.9375rem}.telemetry:has(.depth-cell:not([hidden])) .hud-label{font-size:0.75rem}}
.home-layout{top:18%;align-items:flex-start}.home-layout .title-copy{max-width:42.5rem}.home-layout .title-description{margin:1.5625rem 0 1.125rem}.campaign-status{margin:0 0 0.6875rem;letter-spacing:.11em;color:var(--muted)}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:0.5625rem;max-width:25.625rem;pointer-events:auto}.home-actions .continue-button{grid-column:1/-1;justify-content:space-between}.home-actions .button{min-height:2.8125rem;padding:0.8125rem 1.0625rem;font-size:0.75rem;gap:0.75rem}.home-actions .button:disabled{opacity:.34;background:#12202b;color:#a6bac3;border-color:var(--line);transform:none}.home-manual{font-size:0.75rem;min-height:1.875rem;padding:0.5625rem 0;margin-top:0.5625rem;gap:0.9375rem}.home-layout .title-hint{margin-top:0.6875rem}.picker-navigation{display:flex;justify-content:space-between;align-items:center;gap:0.9375rem;margin-bottom:0.8125rem}.picker-navigation .icon-button{font-size:0.75rem;letter-spacing:.03em;padding:0.5rem 0.75rem}.level-picker .panel-heading h2{margin-top:0}.level-picker .progress-box{gap:1.4375rem}
@media(max-width:760px){.home-layout{top:17%;left:8%;right:8%}.home-layout .title-description{font-size:0.875rem;margin:1.4375rem 0 1.1875rem}.home-actions{max-width:22.8125rem;gap:0.5rem}.home-actions .button{font-size:0.75rem;padding:0.75rem 0.8125rem;min-height:2.6875rem}.home-manual{font-size:0.75rem;margin-top:0.5rem;min-height:1.75rem}.campaign-status{font-size:0.75rem;margin-bottom:0.625rem}.home-layout .title-hint{font-size:0.75rem;margin-top:0.5rem}.level-picker .panel-heading{align-items:center}.level-picker .panel-heading h2{font-size:1.6875rem}.level-picker .progress-box{gap:0.875rem}.picker-navigation .eyebrow{font-size:0.75rem}.picker-navigation{margin-bottom:0.9375rem}}
@media(max-width:370px){.home-layout{top:16%}.home-layout .title-description{font-size:0.75rem;line-height:1.6;margin:1.1875rem 0 1rem}.home-actions{gap:0.4375rem}.home-actions .button{font-size:0.75rem;min-height:2.375rem;padding:0.625rem 0.6875rem}.campaign-status{font-size:0.75rem;margin-bottom:0.5625rem}.home-manual{font-size:0.75rem;min-height:1.5625rem;margin-top:0.375rem}.home-layout .title-hint{font-size:0.75rem}.level-picker .panel-heading h2{font-size:1.4375rem}.level-picker .progress-box{gap:0.625rem}.level-picker .progress-box strong{font-size:0.9375rem}.level-picker .progress-box small{font-size:0.75rem}}
@media(max-height:650px) and (orientation:portrait){.home-layout .title-hint{display:none}}
@media(max-height:650px) and (min-width:761px){.home-layout{top:17%}.home-layout .title-description{margin:1.125rem 0 0.75rem;font-size:0.875rem;line-height:1.6}.home-layout .title-index{margin-bottom:1.0625rem}.home-actions .button{min-height:2.375rem;padding:0.625rem 0.875rem;font-size:0.75rem}.home-layout .title-hint{display:none}.home-manual{margin-top:0.375rem}.campaign-status{font-size:0.75rem;margin-bottom:0.5rem}}
@media(max-height:530px) and (orientation:landscape){.home-layout{top:4.75rem;bottom:3.0625rem;align-items:center}.home-layout .title-copy{grid-template-columns:minmax(0,1fr) minmax(15.625rem,1.15fr);row-gap:0.5rem;max-width:56.25rem}.home-layout h1{grid-row:2/7;align-self:center}.home-layout .title-description{grid-column:2;grid-row:2;margin:0;font-size:0.75rem;line-height:1.6}.campaign-status{grid-column:2;grid-row:3;margin:0;font-size:0.75rem}.home-actions{grid-column:2;grid-row:4;gap:0.4375rem;width:100%;max-width:24.375rem}.home-actions .button{font-size:0.75rem;min-height:2.0625rem;padding:0.5rem 0.6875rem}.home-manual{grid-column:2;grid-row:5;min-height:1.4375rem;margin:0;padding:0.3125rem 0;justify-self:start;font-size:0.75rem}.home-layout .title-hint{grid-column:2;grid-row:6;margin:0;font-size:0.75rem;display:block}}
.pause-actions,.debrief-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:0.5625rem}.pause-actions .primary,.debrief-actions .primary{grid-column:1/-1}.debrief-actions .primary{grid-row:2}.pause-links{display:flex;justify-content:space-between;gap:0.625rem;margin-top:0.6875rem}.pause-links .button{font-size:0.75rem;padding:0.5rem 0;min-height:1.75rem}
.stage-mission-badge{display:inline-block;margin-top:0.4375rem;padding:0.1875rem 0.3125rem;border:0.0625rem solid #74deee45;background:#17373d55;color:var(--cyan);font-family:var(--mono);font-size:0.75rem;letter-spacing:.04em;white-space:nowrap}.route-badge{display:inline-block;border:0.0625rem solid #74deee55;padding:0.375rem 0.5625rem;color:var(--cyan);font-family:var(--mono);font-size:0.75rem;letter-spacing:.08em}.mission-route{list-style:none;padding:0;margin:0.875rem 0 1.125rem;border-top:0.0625rem solid var(--line)}.mission-route li{display:grid;grid-template-columns:1.6875rem 1fr;align-items:center;gap:0.75rem;padding:0.625rem 0;border-bottom:0.0625rem solid var(--line)}.route-step{display:flex;align-items:center;justify-content:center;width:1.5625rem;height:1.5625rem;border:0.0625rem solid #54717e;color:var(--cyan);font-family:var(--mono);font-size:0.75rem}.mission-route strong{display:block;font-size:0.875rem;font-weight:500;line-height:1.45}.mission-route small{display:block;margin-top:0.25rem;font-family:var(--mono);font-size:0.75rem;letter-spacing:.05em;color:var(--muted);line-height:1.5}.route-home .route-step{border-color:#dbff7a55;color:var(--acid)}.route-home strong{color:var(--acid)}.stage-tracker{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;border-bottom:0.0625rem solid var(--line);padding-bottom:0.5rem;margin-bottom:0.5625rem}.stage-summary{font-family:var(--mono);font-size:0.75rem;letter-spacing:.03em;color:var(--muted);line-height:1.5}.stage-markers{display:flex;align-items:center;gap:0.3125rem;flex-shrink:0}.stage-marker{display:inline-flex;align-items:center;justify-content:center;min-width:1.4375rem;height:1.25rem;border:0.0625rem solid #425966;color:#6e8998;font-family:var(--mono);font-size:0.75rem;padding:0 0.25rem}.stage-marker.active{color:var(--cyan);border-color:#74deee99;background:#17373d88}.stage-marker.done{color:var(--acid);border-color:#dbff7a55;background:#27362666}.stage-dock{font-size:0.75rem;letter-spacing:.04em;padding:0 0.375rem}.route-complete{display:grid;grid-template-columns:1.375rem 1fr;gap:0.3125rem 0.5625rem;padding:0.75rem 0.875rem;margin:1.125rem 0 0;border:0.0625rem solid #dbff7a44;background:#263b2b33}.route-complete>span{grid-row:1/3;align-self:center;color:var(--acid);font-size:1.3125rem}.route-complete strong{font-family:var(--mono);font-weight:500;font-size:0.75rem;letter-spacing:.03em;color:var(--acid)}.route-complete small{font-family:var(--mono);font-size:0.75rem;letter-spacing:.04em;color:var(--muted)}
@media(max-width:760px){.stage-tracker{padding-bottom:0.4375rem;margin-bottom:0.5rem;gap:0.5rem}.stage-summary{font-size:0.75rem}.stage-marker{min-width:1.3125rem;height:1.125rem;font-size:0.75rem}.stage-dock{font-size:0.75rem;padding:0 0.3125rem}.stage-markers{gap:0.25rem}.mission-route li{padding:0.5625rem 0;gap:0.625rem}.mission-route strong{font-size:0.75rem}.mission-route small{font-size:0.75rem}.route-badge{font-size:0.75rem;padding:0.3125rem 0.4375rem}.route-complete{padding:0.625rem 0.6875rem}.route-complete strong{font-size:0.75rem}}
.coin-mark{color:var(--acid);font-family:var(--mono);font-weight:400}.wallet-display{display:inline-flex;align-items:center;gap:0.4375rem;padding:0.5rem 0.625rem;border:0.0625rem solid #dbff7a33;background:#17291d55;font-family:var(--mono);font-size:0.75rem;letter-spacing:.02em;white-space:nowrap}.wallet-display .coin-mark{font-size:0.875rem}.home-actions .home-hangar{grid-column:1/-1;justify-content:space-between;border-color:#74deee55;background:#10252d9c;color:#cce4e9}.home-hangar>span{font-family:var(--mono);font-size:0.75rem;white-space:nowrap}.picker-nav-actions{display:flex;gap:0.5rem}.briefing-tools{display:flex;justify-content:center;margin-top:0.5625rem}.briefing-tools .button{min-height:1.75rem;padding:0.4375rem 0;font-size:0.75rem}.debrief-tools{display:flex;justify-content:space-between;gap:0.625rem;margin-top:0.75rem}.debrief-tools .button{min-height:1.6875rem;padding:0.4375rem 0;font-size:0.75rem}/* One benefit and one purchase control per upgrade. */
.hangar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;flex-shrink:0}
.hangar-toolbar h2{font-size:2.25rem;line-height:1.15;letter-spacing:-.04em;font-weight:500;margin:0}
.hangar-scroll{min-height:0;flex:1;overflow-y:auto;padding:.375rem .5rem .5rem .375rem;margin-left:-.375rem;scrollbar-color:#496271 transparent;scrollbar-width:thin}
.upgrade-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;align-content:start}
.upgrade-card{display:grid;grid-template-columns:2.5rem minmax(0,1fr) 6.5rem;align-items:center;gap:.875rem;min-height:7rem;padding:1rem;background:rgba(7,18,27,.96);border:1px solid var(--line)}
.upgrade-card.maxed{border-color:#dbff7a44}
.upgrade-card:focus-within{border-color:var(--cyan)}
.upgrade-icon{width:2.5rem;height:2.5rem;color:var(--cyan)}
.upgrade-icon svg{display:block;width:100%;height:100%;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.upgrade-card[data-upgrade="fuel"] .upgrade-icon,.upgrade-card[data-upgrade="tank"] .upgrade-icon{color:var(--acid)}
.upgrade-card[data-upgrade="engine"] .upgrade-icon{color:#f4c58c}
.upgrade-card[data-upgrade="stability"] .upgrade-icon{color:#b6acf3}
.upgrade-copy{min-width:0}
.upgrade-card h3{font-size:1.0625rem;line-height:1.25;font-weight:550;margin:0;letter-spacing:-.02em}
.upgrade-copy p{font-size:.875rem;line-height:1.4;color:#b5cbd4;margin:.375rem 0 .625rem}
.upgrade-rank{display:flex;align-items:center;gap:.5rem;font: .75rem/1 var(--mono);color:var(--muted);white-space:nowrap}
.rank-pips{display:inline-flex;gap:.25rem}
.rank-pips i{display:block;width:.625rem;height:.25rem;background:#334650}
.rank-pips i.installed{background:var(--acid)}
.upgrade-buy.button{display:flex;flex-direction:column;gap:.3125rem;min-height:3.625rem;width:100%;padding:.625rem .5rem;font-size:.75rem;letter-spacing:.025em}
.upgrade-buy strong{font-size:.9375rem;font-weight:650;white-space:nowrap}
.upgrade-buy:disabled{cursor:default;color:#96aeba;background:#11212b;border-color:#39505c}
.upgrade-card.maxed .upgrade-buy:disabled{color:var(--acid);background:transparent;border-color:transparent}
.hangar-footer .controller-menu-hint{margin:0;font-size:.75rem}
.coin-award{border:0.0625rem solid #dbff7a44;background:#1f322433;padding:0.9375rem;margin:1.125rem 0}.coin-award-heading{display:flex;align-items:center;justify-content:space-between;gap:0.9375rem}.coin-award-heading>div>strong{display:block;font-family:var(--mono);font-size:1.6875rem;font-weight:450;margin-top:0.5rem;color:var(--acid)}.coin-award-balance{text-align:right}.coin-award-balance>span{font-family:var(--mono);font-size:0.75rem;letter-spacing:.1em;color:var(--muted)}.coin-award-heading .coin-award-balance>strong{font-size:1.0625rem;color:var(--text)}.coin-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.5rem 1.25rem;border-top:0.0625rem solid #dbff7a22;margin-top:0.875rem;padding-top:0.75rem}.coin-breakdown>span{display:flex;justify-content:space-between;gap:0.625rem;font-size:0.75rem;color:var(--muted)}.coin-breakdown b{font-family:var(--mono);font-weight:450;color:#c8dcae}
@media(max-width:900px){.appbar-controls .connection{display:none}}
@media(max-width:600px){.wallet-display{padding:0.4375rem 0.5625rem;font-size:0.75rem;gap:0.3125rem}.wallet-display .coin-mark{font-size:0.875rem}.appbar-controls{gap:0.5625rem}.picker-nav-actions{gap:0.375rem}.picker-nav-actions .icon-button{font-size:0.75rem;padding:0.4375rem 0.5625rem}.debrief-tools .button{font-size:0.75rem}.coin-award{padding:0.75rem}.coin-award-heading>div>strong{font-size:1.5rem}.coin-award-heading .coin-award-balance>strong{font-size:0.9375rem}.coin-breakdown{gap:0.5rem 0.8125rem}.coin-breakdown>span{font-size:0.75rem}}
@media(max-width:370px){.audio-word{display:none}.appbar-controls .icon-button{padding:0.5rem 0.5625rem;font-size:0.75rem}.wallet-display{font-size:0.75rem;padding:0.4375rem 0.5rem}.hangar-heading h2{font-size:1.5rem}.hangar-wallet>strong{font-size:1.375rem}.hangar-wallet>small{font-size:0.75rem}.hangar-wallet{max-width:6rem}.hangar-heading p{font-size:0.75rem}.upgrade-rank{font-size:0.75rem;gap:0.4375rem}.rank-pips i{width:0.625rem}.upgrade-card h3{font-size:1.0625rem}.upgrade-purchase .button{font-size:0.75rem}.upgrade-purchase .button:disabled{font-size:0.75rem}.coin-breakdown{grid-template-columns:1fr}}
.fuel-capacity{font-family:var(--mono);font-size:0.75rem;color:var(--muted);margin-top:0.375rem;white-space:nowrap;letter-spacing:-.02em}.briefing-capacity{display:block;font-size:0.75rem;color:var(--muted);margin-top:0.3125rem}.equipment-strip{display:flex;flex-wrap:wrap;gap:0.3125rem;padding-bottom:0.5rem;margin-bottom:0.5rem;border-bottom:0.0625rem solid var(--line)}.equipment-chip{display:flex;flex-direction:column;gap:0.25rem;padding:0.3125rem 0.4375rem;border:0.0625rem solid #54717e55;background:#0b1d29aa;font-family:var(--mono);min-width:4.6875rem}.equipment-chip b{font-size:0.75rem;letter-spacing:.04em;font-weight:500;color:#b1c9d4}.equipment-chip small{font-size:0.75rem;letter-spacing:.02em;color:var(--muted)}.equipment-chip.active{border-color:#74deee99;background:#17414b77}.equipment-chip.active b,.equipment-chip.active small{color:var(--cyan)}.equipment-chip[data-equipment="gear"].active{border-color:#f4c58c77}.equipment-chip[data-equipment="gear"].active small{color:#f4c58c}.mobile-controls{flex-direction:column;gap:0.75rem}.mobile-flight-row{display:flex;justify-content:space-between;align-items:center;width:100%;gap:0.9375rem}.mobile-equipment{display:flex;justify-content:center;gap:0.5rem;pointer-events:none}.touch-equipment{pointer-events:auto;min-width:3.3125rem;height:2.5rem;padding:0.3125rem;border:0.0625rem solid #74deee88;border-radius:0.375rem;background:#102933e8;color:#bde6ed;font-family:var(--mono);font-size:0.75rem;touch-action:none;user-select:none;-webkit-user-select:none}.touch-equipment:active{background:#285565;color:#fff}.equipment-manual{border-top:0.0625rem solid var(--line);border-bottom:0.0625rem solid var(--line);padding:0.9375rem 0;margin:0.9375rem 0 1.25rem}.equipment-manual h3{font-family:var(--mono);font-size:0.75rem;font-weight:500;letter-spacing:.08em;color:var(--cyan);margin:0 0 0.75rem}.equipment-manual p{font-size:0.75rem;line-height:1.8;margin:0.5625rem 0}.equipment-manual strong{font-weight:550;color:#d6e8ed}.upgrade-card[data-upgrade="rcs"] .upgrade-icon{color:#91d4ff}.upgrade-card[data-upgrade="tank"] .upgrade-icon{color:#b8db8c;border-color:#b8db8c33}.upgrade-card[data-upgrade="tractor"] .upgrade-icon{color:#b2f9df}.upgrade-card[data-upgrade="repel"] .upgrade-icon{color:#c7b2fc;border-color:#c7b2fc33}
@media(max-width:760px){.fuel-capacity{font-size:0.75rem;margin-top:0.3125rem}.equipment-strip{gap:0.25rem;padding-bottom:0.4375rem;margin-bottom:0.4375rem}.equipment-chip{min-width:0;padding:0.25rem 0.3125rem;gap:0.1875rem}.equipment-chip b{font-size:0.75rem}.equipment-chip small{font-size:0.75rem}.equipment-manual p{font-size:0.75rem}.equipment-manual h3{font-size:0.75rem}}
@media(hover:none) and (pointer:coarse){.mobile-controls{bottom:13.75rem}.flight-controls{display:none}}
body:has(.flight-top) #toast{top:9.0625rem}.touch-equipment{height:2.75rem}
@media(max-width:760px){body:has(.flight-top) #toast{top:11.5625rem}}
.imagery-credits{border-top:0.0625rem solid var(--line);padding-top:0.9375rem;margin:1.25rem 0;color:var(--muted)}
.imagery-credits h3{font-family:var(--mono);font-size:0.75rem;font-weight:500;letter-spacing:.08em;color:var(--cyan);margin:0 0 0.625rem}
.imagery-credits p{font-size:0.75rem;line-height:1.65;margin:0.375rem 0;overflow-wrap:break-word}
@media(max-width:760px){.imagery-credits p{font-size:0.75rem}}
.dock-assist{border-bottom:0.0625rem solid var(--line);padding:0 0 0.6875rem;margin:0 0 0.625rem;min-width:0}
.dock-assist-heading{display:flex;justify-content:space-between;align-items:center;gap:0.5rem;flex-wrap:wrap;font-family:var(--mono);font-size:0.75rem;line-height:1.5;letter-spacing:.04em}
.dock-assist-heading b{font-weight:500;color:var(--cyan)}.dock-assist .ready{color:var(--acid)}.dock-assist .adjust{color:#ffc68b}
.dock-metrics{display:grid;grid-template-columns:1.15fr 1fr 1.1fr;gap:1rem;margin-top:0.6875rem}
.dock-metrics small{display:block;font-family:var(--mono);font-size:0.75rem;color:var(--muted);line-height:1.5;letter-spacing:.02em}
.dock-metrics strong{display:block;font-family:var(--mono);font-size:1.125rem;font-weight:400;line-height:1.2;margin-top:0.3125rem;white-space:nowrap}
.dock-metrics em{font-size:0.75rem;font-style:normal;color:var(--muted);margin-left:0.25rem}
.dock-checks{display:flex;justify-content:space-between;gap:0.75rem;flex-wrap:wrap;font-family:var(--mono);font-size:0.75rem;margin-top:0.625rem;line-height:1.5}
.docking-manual{border-top:0.0625rem solid var(--line);padding-top:0.9375rem;margin:1.25rem 0}
.docking-manual h3{font-family:var(--mono);font-size:0.75rem;font-weight:500;letter-spacing:.08em;color:var(--cyan);margin:0 0 0.625rem}
.docking-manual p{font-size:0.75rem;line-height:1.75}
@media(max-width:760px){.dock-assist{padding-bottom:0.5rem;margin-bottom:0.5rem}.dock-assist-heading{font-size:0.75rem;letter-spacing:0}.dock-metrics{gap:0.5625rem;margin-top:0.5rem}.dock-metrics small{font-size:0.75rem}.dock-metrics strong{font-size:1rem;margin-top:0.25rem}.dock-metrics em{font-size:0.75rem;margin-left:0.1875rem}.dock-checks{font-size:0.75rem;margin-top:0.5rem}.docking-manual p{font-size:0.75rem}}
.mission-site{display:block;font-family:var(--mono);font-size:0.75rem;line-height:1.55;color:var(--cyan);margin-top:0.375rem}
.site-briefing{padding:0.875rem 0;margin:1.0625rem 0;border-top:0.0625rem solid var(--line);border-bottom:0.0625rem solid var(--line)}
.site-briefing>strong{display:block;margin-top:0.5625rem;font-size:0.9375rem;font-weight:500}.site-briefing>small{display:block;font-family:var(--mono);font-size:0.75rem;color:var(--cyan);margin-top:0.375rem;line-height:1.5}.site-briefing>p{font-size:0.75rem;line-height:1.7;margin:0.5625rem 0 0}
.route-site-name{display:block;font-size:0.75rem;color:var(--cyan);margin-top:0.3125rem;line-height:1.5}.mission-route .route-site-approach{font-size:0.75rem;line-height:1.6;margin:0.375rem 0 0;color:var(--muted)}
.site-hud{margin:0.5rem 0 0.25rem;font-family:var(--mono);line-height:1.5}.site-hud b{font-size:0.75rem;font-weight:500;color:#c7dce4}.site-hud small{display:block;font-size:0.75rem;color:var(--muted);margin-top:0.1875rem}
@media(max-width:760px){.mission-site{font-size:0.75rem}.site-briefing>strong{font-size:0.875rem}.site-briefing>small{font-size:0.75rem}.site-briefing>p{font-size:0.75rem}.route-site-name{font-size:0.75rem}.mission-route .route-site-approach{font-size:0.75rem}.site-hud{margin:0.375rem 0 0.1875rem}.site-hud b{font-size:0.75rem}.site-hud small{font-size:0.75rem;margin-top:0.125rem}}

/* Home music shares the existing manual row, including short landscape. */
.home-extras{display:flex;align-items:center;gap:1.375rem;max-width:25.625rem;min-height:1.875rem;margin-top:0.5625rem}.home-extras>.button{margin:0}.home-music{font-size:0.75rem;min-height:1.875rem;padding:0.5625rem 0;gap:0.25rem;flex-direction:column;align-items:flex-start;white-space:nowrap}.home-music>small{font-size:0.75rem;line-height:1.3;font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted)}.home-music-status{font-family:var(--mono);font-size:0.75rem;line-height:1.5;letter-spacing:.025em;color:var(--muted);white-space:nowrap}.home-music-status>[aria-hidden]{color:var(--cyan);margin-right:0.3125rem}
@media(max-width:760px){.home-extras{margin-top:0.5rem;gap:1.125rem}.home-music{font-size:0.75rem;min-height:1.75rem}.home-music-status{font-size:0.75rem}}
@media(max-width:370px){.home-extras{margin-top:0.375rem;gap:0.9375rem}.home-music{font-size:0.75rem;min-height:1.5625rem}.home-music-status{font-size:0.75rem}}
@media(max-height:650px) and (min-width:761px){.home-extras{margin-top:0.375rem}}
@media(max-height:530px) and (orientation:landscape){.home-extras{grid-column:2;grid-row:5;margin:0;min-height:1.4375rem;gap:1.125rem;justify-self:start}.home-extras>.home-manual,.home-extras>.home-music{grid-column:auto;grid-row:auto;min-height:1.4375rem;margin:0;padding:0.3125rem 0;font-size:0.75rem}.home-music-status{font-size:0.75rem}}

/* Gamepad focus is explicit: programmatic focus need not match :focus-visible. */
#ui[data-controller-focus] button:focus{outline:0.125rem solid var(--cyan);outline-offset:0.1875rem;box-shadow:0 0 0 0.0625rem #07121b,0 0 0.9375rem #74deee24}
#ui[data-controller-focus] [role="dialog"]:focus{outline:0.125rem solid #74deee88;outline-offset:-0.25rem}
#ui button[data-action]{scroll-margin:0.5625rem}
.hangar-scroll,.moon-grid,.mission-panel,.map-layout,.modal{scroll-padding:0.625rem;overscroll-behavior:contain}
.manual-overlay .modal-close{position:sticky;top:0;right:auto;float:right;z-index:2;margin:-0.9375rem -0.9375rem 0 0.5rem;background:#0a141df5}
.controller-menu-hint{flex-shrink:0;font-family:var(--mono);font-size:0.75rem;line-height:1.6;letter-spacing:.015em;color:var(--muted);margin:0 0 0.75rem}
.manual-overlay .controller-menu-hint{font-size:0.75rem;margin:0.75rem 0 1.0625rem}
@media(max-width:760px){.controller-menu-hint{font-size:0.75rem;margin-bottom:0.5625rem}.manual-overlay .controller-menu-hint{font-size:0.75rem}}

/* The expanded atlas keeps a scrollable moon grid beside/before its mission list. */
.level-picker .moon-grid{min-height:0;overflow-y:auto;scrollbar-width:thin}
@media(min-width:761px){.level-picker .map-layout{overflow:hidden;grid-template-rows:minmax(0,1fr)}}
@media(max-width:760px){.level-picker .moon-grid{max-height:18.125rem;overflow-y:auto;scrollbar-width:thin;min-height:7.25rem}}
.cavern-mission-badge{display:inline-block;margin-top:0.4375rem;border:0.0625rem solid #74deee55;padding:0.1875rem 0.3125rem;font-family:var(--mono);font-size:0.75rem;letter-spacing:.035em;color:var(--cyan);background:#15313966}

/* One short checklist is the primary briefing. Additional notes are optional. */
.mission-briefing .briefing-moon{font-family:var(--mono);font-size:0.75rem;letter-spacing:.08em;margin-top:0.3125rem}
.mission-briefing .briefing-goal{font-size:1rem;line-height:1.5;color:#dce8ed;margin:1.25rem 0 0.75rem}
.briefing-chips{display:flex;flex-wrap:wrap;gap:0.4375rem;margin:0 0 0.8125rem}.briefing-chips>span{font-family:var(--mono);font-size:0.75rem;color:#b6d6df;border:0.0625rem solid #79a5b33d;background:#15313a55;padding:0.3125rem 0.5rem}
.briefing-steps{list-style:none;margin:1.125rem 0;padding:0;border-top:0.0625rem solid var(--line)}.briefing-steps>li{display:grid;grid-template-columns:1.6875rem minmax(0,1fr);gap:0.75rem;align-items:center;padding:0.75rem 0;border-bottom:0.0625rem solid var(--line)}.briefing-number{width:1.5625rem;height:1.5625rem;display:flex;align-items:center;justify-content:center;border:0.0625rem solid #8dd6dd66;background:#15313a55;font-family:var(--mono);font-size:0.75rem;color:var(--cyan)}.briefing-steps strong{font-size:0.875rem;font-weight:500;line-height:1.5;color:#d8e5ea;display:block}.briefing-steps li>div>span{font-size:0.875rem;line-height:1.6;color:#a9c2cd;display:block;margin-top:0.1875rem}
.mission-briefing .briefing-caution{font-size:0.875rem;line-height:1.6;margin:0.875rem 0 0;color:#f2cb96;padding:0.5625rem 0.75rem;border-left:0.125rem solid #d3b077;background:#493a201f}
.mission-briefing .modal-actions{margin-top:1.4375rem}.mission-briefing .briefing-tools{justify-content:space-between;gap:1.125rem;margin-top:0.75rem}.mission-briefing .briefing-tools .button{font-size:0.75rem;color:#a9c3cd}.mission-briefing .briefing-controls{margin:1.0625rem 0 0;text-align:center;font-size:0.75rem;line-height:1.8}
.briefing-notes{margin-top:1.0625rem;padding-top:0.3125rem;border-top:0.0625rem solid var(--line)}.briefing-notes[hidden]{display:none}.mission-briefing .briefing-notes>p{font-size:0.875rem;line-height:1.65;margin:0.8125rem 0}.briefing-notes .site-briefing{margin:0.9375rem 0;padding:0.75rem 0}.briefing-notes .site-briefing>strong{font-size:0.875rem}.briefing-facts{display:flex;justify-content:space-between;gap:0.9375rem;flex-wrap:wrap;font-family:var(--mono);font-size:0.75rem;line-height:1.6;color:#91acb9;padding:0.8125rem 0;border-top:0.0625rem solid var(--line)}.briefing-facts strong{display:block;margin-top:0.1875rem;font-size:0.75rem;font-weight:500;color:#c8dae1;text-transform:capitalize}.mission-briefing .briefing-notes .briefing-docking-note{font-size:0.75rem;color:var(--cyan)}
@media(max-width:760px){.mission-briefing h2{font-size:1.8125rem;margin:0.8125rem 0}.mission-briefing .briefing-goal{font-size:0.875rem;line-height:1.5;margin:1rem 0 0.6875rem}.mission-briefing .briefing-moon{font-size:0.75rem}.briefing-chips>span{font-size:0.75rem;padding:0.25rem 0.4375rem}.briefing-steps{margin:0.875rem 0}.briefing-steps>li{padding:0.625rem 0;gap:0.625rem;grid-template-columns:1.5rem minmax(0,1fr)}.briefing-number{width:1.4375rem;height:1.4375rem;font-size:0.75rem}.briefing-steps strong{font-size:0.875rem}.briefing-steps li>div>span{font-size:0.75rem}.mission-briefing .briefing-caution{font-size:0.75rem;padding:0.5rem 0.625rem}.mission-briefing .modal-actions{margin-top:1.25rem}.mission-briefing .briefing-tools{gap:0.5625rem}.mission-briefing .briefing-tools .button{font-size:0.75rem}.mission-briefing .briefing-controls{font-size:0.75rem;margin-top:0.8125rem}.mission-briefing .briefing-notes>p{font-size:0.75rem}}
@media(max-height:540px) and (orientation:landscape){.mission-briefing{width:min(42.5rem,100%);padding:1.375rem}.mission-briefing h2{font-size:1.5625rem;margin:0.5625rem 0}.mission-briefing .briefing-goal{font-size:0.875rem;margin:0.75rem 0 0.5625rem}.briefing-steps>li{padding:0.5rem 0}.briefing-steps strong{font-size:0.875rem}.mission-briefing .briefing-controls{margin-top:0.625rem}.mission-briefing .modal-actions{margin-top:0.9375rem}}

/* Scale by viewport space, independently of display pixel density. */
:root{font-size:clamp(16px,min(1.111111vw,1.777778vh),40px)}

/* Shorter copy gives the controls and objectives room to breathe. */
.button,.home-actions .button{font-size:.875rem;letter-spacing:.035em;min-height:3rem}
.icon-button,.picker-navigation .icon-button{font-size:.8125rem;min-height:2.5rem}
.tiny,.eyebrow,.hud-label{letter-spacing:.07em}
.home-layout .title-description{font-size:1.125rem;line-height:1.5;max-width:26rem}
.home-actions,.home-extras{max-width:28rem}
.home-extras .button{font-size:.8125rem;min-height:2.5rem}
.appbar .connection{font-size:.75rem}
.footer-line{max-width:none;justify-content:flex-end;padding-top:.75rem}
.modal{width:min(35rem,100%);padding:1.75rem;max-height:calc(100dvh - 2rem)}
.modal p{font-size:1rem;line-height:1.55}
.modal h2{font-size:2.25rem;line-height:1.1;margin:.5rem 0 1rem}
.modal .modal-actions{margin-top:1.5rem}
.pause-dialog{width:min(30rem,100%)}
.pause-links .button,.debrief-tools .button{font-size:.8125rem;min-height:2.5rem}
.mission-briefing .briefing-goal{font-size:1.0625rem;margin:1rem 0 .75rem;line-height:1.45}
.briefing-steps strong{font-size:1rem;line-height:1.4}
.briefing-steps li>div>span{font-size:.9375rem;line-height:1.4}
.briefing-steps>li{padding:.625rem 0}
.mission-briefing .briefing-tools .button,.mission-briefing .briefing-controls{font-size:.8125rem}
.briefing-steps{margin:1rem 0}
.mission-briefing .briefing-caution{font-size:.875rem;line-height:1.4}
.briefing-chips>span{font-size:.75rem}
.coin-award{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;margin:1rem 0}
.coin-award>strong{font:1.75rem var(--mono);color:var(--acid);white-space:nowrap}
.quick-controls{margin:1.25rem 0;border-top:1px solid var(--line)}
.quick-controls>div{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.quick-controls strong{font-size:1rem;font-weight:500}
.quick-controls .key{font-size:.8125rem;min-width:1.75rem;height:1.75rem}
.manual-list{font-size:1rem;line-height:1.6;padding-left:1.25rem}
.manual-list>li{margin:.5rem 0}
.manual-details-toggle{margin:.5rem 0 1rem;width:100%;justify-content:space-between}
#pilot-guide[hidden]{display:none}
.manual-overlay .modal-close{margin:-.75rem -.75rem 0 .5rem;min-width:2.5rem;min-height:2.5rem}
.mission-button strong{font-size:1rem;line-height:1.3}
.mission-button small,.mission-button .stage-mission-badge,.mission-button .cavern-mission-badge{font-size:.75rem}
.mission-panel .hazard-tags{margin-bottom:1rem}
.mission-panel .world-identity{font-size:.875rem;line-height:1.5}
.upgrade-purchase .button,.upgrade-purchase .button:disabled{font-size:.8125rem}
.upgrade-description,.upgrade-effect strong{font-size:.9375rem;line-height:1.5}
.hangar-heading h2{font-size:2.25rem}
.hangar-install-note{font-size:.875rem}
.footer-line>span:only-child{display:block}
@media(max-width:760px){
  .modal-backdrop{padding:1rem}
  .modal{padding:1.25rem;max-height:calc(100dvh - 2rem)}
  .modal h2{font-size:1.875rem}
  .home-layout{top:16%;left:7%;right:7%}
  .home-layout .title-description{font-size:1rem;margin:1.25rem 0}
  .home-actions .button{font-size:.8125rem;padding:.75rem;min-height:2.875rem;letter-spacing:0}
  .home-hangar>span{font-size:.8125rem}
  .home-extras{flex-wrap:wrap;gap:.75rem 1.25rem}
  .mission-briefing .briefing-goal{font-size:1rem;margin:.875rem 0 .625rem}
  .briefing-steps strong{font-size:.9375rem}
  .briefing-steps li>div>span{font-size:.875rem}
  .mission-briefing .briefing-tools{gap:.5rem;flex-wrap:wrap}
  .mission-briefing .briefing-tools .button{font-size:.75rem}
  .mission-briefing .briefing-controls{font-size:.75rem;margin:.75rem 0 0}
  .moon-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .level-picker .moon-grid{max-height:17rem}
  .moon-name{font-size:.875rem}
  .moon-parent{font-size:.75rem}
  .level-picker .progress-box>div+div{display:none}
  .panel-heading .progress-box{gap:.5rem}
  .progress-box small{font-size:.75rem}
  .hangar-heading{align-items:start}
  .hangar-heading h2{font-size:1.625rem}
  .hangar-wallet>.eyebrow{display:none}
  .hangar-wallet>strong{font-size:1.5rem;margin:0}
  .hangar-install-note{font-size:.8125rem;line-height:1.4}
  .quick-controls{margin:1rem 0}
  .quick-controls>div{gap:.5rem}
  .quick-controls .key{font-size:.75rem;min-width:1.5rem;height:1.5rem;padding:.125rem .25rem}
}
@media(max-height:540px) and (orientation:landscape){
  .home-layout .title-copy{row-gap:.375rem}
  .home-layout .title-description{font-size:.875rem;margin:0}
  .home-actions .button{min-height:2.25rem;font-size:.75rem;padding:.5rem .625rem}
  .home-extras{gap:1rem;flex-wrap:nowrap}
  .modal{padding:1.25rem}
}

/* Briefings show the action once; details are a compact site or route. */
.mission-briefing>h2{margin-top:0}
.mission-briefing .briefing-notes{margin-top:.75rem;padding-top:.625rem}
.mission-briefing .briefing-notes .briefing-site{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin:0;font-size:.875rem;line-height:1.4}
.briefing-site strong{font-weight:500;color:#c9dce4}
.briefing-site span{font-size:.75rem;color:var(--muted)}
.briefing-site span:before{content:'·';margin-right:.5rem}
.briefing-notes .briefing-route{margin:0;padding:0;border:0}
.briefing-route li{padding:.5rem 0}
.briefing-route li:first-child{padding-top:0}
.briefing-route li:last-child{padding-bottom:0;border-bottom:0}
.briefing-route strong{font-size:.875rem;line-height:1.4}
.briefing-route small{font-size:.75rem;line-height:1.4}

/* Keep the compact shop readable on phones and short displays. */
@media(max-width:900px){
  .upgrade-card{grid-template-columns:2rem minmax(0,1fr) 5.5rem;gap:.625rem;padding:.875rem}
  .upgrade-icon{width:2rem;height:2rem}
}
@media(max-width:700px){
  .hangar-toolbar{margin-bottom:1rem}
  .hangar-toolbar h2{font-size:1.75rem}
  .upgrade-grid{grid-template-columns:minmax(0,1fr);gap:.625rem}
  .upgrade-card{min-height:6.5rem;grid-template-columns:2rem minmax(0,1fr) 5.25rem;padding:.875rem .75rem}
  .upgrade-card h3{font-size:1rem}
  .upgrade-copy p{font-size:.875rem;margin:.3125rem 0 .5rem}
  .hangar-footer{align-items:center;gap:.375rem;flex-wrap:wrap}
  .hangar-footer>.tiny,.hangar-footer .controller-menu-hint{font-size:.75rem}
}
@media(max-height:560px) and (min-width:701px){
  .hangar-toolbar{margin-bottom:.75rem}
  .hangar-toolbar h2{font-size:1.75rem}
  .upgrade-card{min-height:6.25rem;padding:.75rem}
}

/* Display numerals echo the flight instruments; reading copy stays in sans. */
.mission-no,.moon-card .moon-number,.briefing-number,.route-step,.stage-marker:not(.stage-dock),
.wallet-display,.progress-box strong,.result-score,.coin-award>strong,.upgrade-buy strong,.upgrade-rank>span:last-child,
.modal .briefing-grid strong{
  font-family:var(--display);
  font-variant-numeric:lining-nums tabular-nums;
}
.result-score>small,.progress-box strong>span{font-family:var(--mono)}

/* A simple turntable beside the upgrades, using the actual flight model. */
.hangar-layout{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:1rem;align-items:start}
.hangar-layout .upgrade-card{grid-template-columns:2.25rem minmax(0,1fr) 5.5rem;gap:.75rem;padding:.875rem}
.hangar-preview{position:sticky;top:.375rem;display:flex;flex-direction:column;height:min(26rem,calc(100dvh - 14rem));min-height:9rem;padding:1rem;border:1px solid var(--line);background:radial-gradient(ellipse at 50% 42%,#142c36,#07131a 75%);overflow:hidden}
.hangar-preview h3{font:500 .75rem/1.4 var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--cyan);margin:0 0 .5rem}
.hangar-preview-stage{position:relative;flex:1;min-height:0}
.hangar-preview canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
@media(min-width:761px) and (max-width:1179px){
 .hangar-layout{grid-template-columns:minmax(0,1fr) 14rem}
 .hangar-layout .upgrade-grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:760px){
 .hangar-layout{display:flex;flex-direction:column;gap:.75rem}
 .hangar-preview{order:-1;position:relative;top:auto;flex:none;width:100%;height:12.5rem;padding:.75rem}
 .hangar-layout .upgrade-grid{width:100%;grid-template-columns:minmax(0,1fr)}
 .hangar-layout .upgrade-card{grid-template-columns:2rem minmax(0,1fr) 5.25rem;gap:.625rem;padding:.875rem .75rem}
}
@media(max-width:760px) and (max-height:700px){.hangar-preview{height:10rem}}
