/* The world stays full bleed; the copy and instruments occupy separate flow rows. */
.mission-hero { --scene-gutter:clamp(28px,5.5vw,108px); --scene-header-height:89px; --scene-height:max(740px,calc(100svh - var(--scene-header-height))); border-bottom:1px solid #38312b; }
.mission-hero .hero-inner.wrap { display:block; width:100%; max-width:none; min-height:0; padding:0; margin:0; }
.mission-main { grid-area:1 / 1; display:flex; align-items:center; min-width:0; padding:clamp(72px,8svh,100px) var(--scene-gutter) clamp(32px,4svh,56px); z-index:5; pointer-events:none; }
.mission-hero .hero-copy { position:relative; width:min(35vw,470px); padding:0; z-index:6; pointer-events:none; }
.mission-hero .hero-copy a { pointer-events:auto; }
.mission-hero .eyebrow { font-size:10px; letter-spacing:.16em; margin-bottom:24px; color:#d2b18e; }
.mission-hero h1 { font-size:clamp(52px,min(4.65vw,8svh),86px); line-height:1.25; font-weight:650; text-shadow:0 4px 32px #0006; }
.mission-hero .hero-manifesto { font-size:clamp(21px,min(1.6vw,2.9svh),28px); line-height:1.5; margin-top:22px; }
.mission-hero .hero-lead { font-size:13px; line-height:1.9; margin-top:14px; color:#c1bdb4; }
.mission-hero .hero-actions { margin-top:24px; gap:24px; flex-wrap:wrap; align-items:center; }
.mission-hero .hero-footnote { margin-top:16px; color:#a79f93; font-size:10px; line-height:1.8; }
.mission-hero .hero-bottom { display:none; }
.expedition { position:relative; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(min-content,1fr) auto; width:100%; min-height:var(--scene-height); margin:0; transform:none; min-width:0; isolation:isolate; --mission-dock-height:205px; }
.three-viewport { position:absolute; inset:0; height:100%; width:100%; background:#07090d; overflow:hidden; border:0; border-radius:0; isolation:isolate; }
#mars-canvas { display:block; width:100%; height:100%; touch-action:none; cursor:grab; outline:none; }
#mars-canvas:active { cursor:grabbing; }
.three-viewport::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:2; background:linear-gradient(90deg,#060809db 0%,#0608099c 27%,#06080900 51%),linear-gradient(0deg,#060809 0%,#060809d9 11%,#06080915 28%,transparent 65%,#06080930); }
.expedition-heading { position:absolute; z-index:4; left:var(--scene-gutter); top:25px; display:flex; align-items:center; gap:18px; color:#cbb597; font:9px/1.6 var(--mono); letter-spacing:.13em; pointer-events:none; }
.expedition-heading span { display:flex; align-items:center; gap:8px; }.expedition-heading i { width:4px; height:4px; background:#edbe8e; }.expedition-heading>span:last-child { color:#8c8a81; }
.world-labels { position:absolute; inset:0; z-index:3; pointer-events:none; }
.world-label { position:absolute; top:0; left:0; color:#e8e0d3; white-space:nowrap; pointer-events:none; font:10px/1.7 var(--font); text-shadow:0 1px 4px #000; }
.world-label>span { display:block; transform:translate(-50%,-155%); padding:3px 8px; border-bottom:1px solid #c4b39b88; background:#0c1012b3; border-radius:2px; backdrop-filter:blur(8px); }
.world-label i { position:absolute; top:-5px; left:-1px; width:3px; height:3px; background:#bdd6cc; border-radius:50%; box-shadow:0 0 7px #bdd6cc80; }
.world-label[data-status="waiting"] i { background:#e2b081; }.world-label[data-status="waiting"]>span { border-color:#e2b081aa; }
.view-caption { position:absolute; top:25px; right:var(--scene-gutter); z-index:4; display:flex; align-items:center; gap:22px; color:#d5c9b7; font:9px/1.8 var(--mono); letter-spacing:.04em; pointer-events:none; text-shadow:0 1px 4px #000; }
#view-hint { font-family:var(--font); font-size:10px; color:#a6a99e; }
.scene-compass { position:absolute; z-index:4; right:var(--scene-gutter); top:76px; width:22px; pointer-events:none; color:#b2b6ac; }
.scene-compass svg { width:22px; stroke:currentColor; stroke-width:1; fill:none; transform-origin:50% 60%; }.scene-compass text { text-anchor:middle; fill:currentColor; stroke:none; font:9px var(--mono); }
.orbit-message { position:absolute; z-index:4; right:var(--scene-gutter); bottom:calc(var(--mission-dock-height) + 42px); max-width:270px; padding:13px 0 13px 15px; border-left:1px solid #68736c55; color:#d5d3c7; pointer-events:none; opacity:1; transition:opacity .35s; }
.orbit-message>span { color:#829ba5; letter-spacing:.15em; font:8px var(--mono); }.orbit-message small { display:block; color:#a0a49a; font-size:9px; margin-top:10px; }
.orbit-legend { display:grid; gap:6px; margin-top:13px; font-size:10px; }.orbit-legend span { display:flex; align-items:center; gap:9px; }.orbit-legend i { display:block; height:0; width:24px; border-top:1px solid #e7b588; }.orbit-legend .flyby-key { border-color:#d1dbd7; }.orbit-legend .signal-key { border-color:#76a7bf; border-style:dashed; }
.expedition:not([data-phase="0"]):not([data-phase="5"]) .orbit-message { opacity:0; }
.orbit-legend .ascent-legend { display:none; }.orbit-legend .ascent-key { border-color:#b7d7cb; }.expedition[data-phase="5"] .entry-legend { display:none; }.expedition[data-phase="5"] .ascent-legend { display:flex; }
.three-mark { position:absolute; z-index:3; right:var(--scene-gutter); bottom:calc(var(--mission-dock-height) + 19px); color:#909589; font-size:8px; pointer-events:none; }
.scene-scale{position:absolute;z-index:4;right:var(--scene-gutter);bottom:calc(var(--mission-dock-height) + 44px);display:flex;flex-direction:column;align-items:flex-end;gap:5px;pointer-events:none;color:#bfc6b8;font:9px var(--mono)}.scene-scale i{display:block;height:5px;border:1px solid #bfc6b8;border-top:0;max-width:160px}
.three-loading,.three-fallback { position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:15px; padding-left:25%; background:#090b0d; color:#bcb5a5; font-size:12px; text-align:center; }.three-loading span { width:24px; height:24px; border:1px solid #5a4d3b; border-top-color:#e4ba84; border-radius:50%; animation:three-load 1.3s linear infinite; }.three-fallback strong { font-size:17px; }.three-fallback p { font-size:12px; }
@keyframes three-load { to { transform:rotate(360deg); } }
.mission-dock { grid-area:2 / 1; z-index:6; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); column-gap:clamp(28px,4vw,76px); row-gap:10px; margin-inline:var(--scene-gutter); padding:20px 0 8px; border-top:1px solid #83918533; }
.mission-current { grid-area:1 / 1; min-height:52px; min-width:0; display:flex; gap:12px; align-items:flex-start; pointer-events:none; }
.event-number { flex-shrink:0; padding-top:2px; color:#d6b18d; font:10px/2 var(--mono); }.mission-current h3 { font-size:14px; line-height:1.6; font-weight:500; color:#e3dccd; letter-spacing:.015em; }.mission-current p { color:#9eaa9f; font-size:11px; line-height:1.8; margin-top:4px; }.mission-current>span:last-child { display:none; }
.mission-constraints { grid-area:1 / 2; align-self:start; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:17px; pointer-events:none; }
.mission-constraints>div { padding-left:13px; border-left:1px solid #69736655; min-width:0; }.mission-constraints span { display:block; color:#8d9a90; font-size:10px; line-height:1.8; }.mission-constraints strong { display:block; font-size:11px; color:#ced4c6; line-height:1.8; font-weight:450; overflow-wrap:anywhere; }
.mission-task-strip { grid-area:2 / 1; display:flex; align-items:center; gap:7px; flex-wrap:wrap; pointer-events:none; }.mission-task-strip>span { font-size:9px; color:#99aaa2; border-bottom:1px solid #69736944; padding:4px 7px 4px 0; }.mission-task-strip small { margin-right:6px; font:8px var(--mono); color:#6c949d; }
.expedition-transport { grid-area:3 / 1 / auto / -1; display:flex; align-items:center; gap:20px; height:48px; border-top:1px solid #83918533; border-bottom:1px solid #83918522; }
.expedition-transport>button { width:44px; height:44px; padding:12px; flex-shrink:0; background:transparent; color:#aebcae; }.expedition-transport button:hover { color:#f7f0dd; }.expedition-transport svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.play-glyph { display:none; }[data-playing="false"] .pause-glyph { display:none; }[data-playing="false"] .play-glyph { display:block; }
.expedition-chapters { display:grid; grid-template-columns:repeat(6,1fr); gap:20px; flex:1; }
.expedition-chapters button { position:relative; height:46px; padding:10px 0; background:transparent; font-size:11px; letter-spacing:.15em; color:#8f9f93; }
.expedition-chapters button[aria-pressed="true"] { color:#f1c99e; }.expedition-chapters i { position:absolute; height:1px; bottom:0; left:0; right:0; background:#dfb181; transform:scaleX(var(--chapter-progress,0)); transform-origin:0; }
.mission-manifest-slot { grid-area:2 / 2; min-height:32px; z-index:8; }
.mission-manifest { width:min(100%,310px); margin-left:auto; color:#a5b2a6; }
.mission-manifest summary { display:flex; justify-content:space-between; align-items:center; gap:14px; min-height:28px; font-size:10px; cursor:pointer; list-style:none; }.mission-manifest summary::-webkit-details-marker { display:none; }.mission-manifest summary b { display:inline-block; margin-left:12px; font-size:16px; font-weight:300; color:#d5b28e; }
.mission-manifest[open] { position:absolute; right:var(--scene-gutter); top:60px; bottom:85px; width:min(620px,calc(100% - 2 * var(--scene-gutter))); overflow:auto; overscroll-behavior:contain; padding:0 24px 20px; border:1px solid #4c584e; background:#080e12f5; backdrop-filter:blur(22px); box-shadow:0 20px 100px #0009; }
.mission-manifest[open] summary { position:sticky; top:0; z-index:1; padding:15px 0; background:#080e12; border-bottom:1px solid #4c584e66; }.mission-manifest[open] summary b { transform:rotate(45deg); }
.manifest-intro { padding:18px 0 8px; font-size:11px; line-height:1.9; color:#a9b4a8; }.manifest-intro p+p { margin-top:6px; }
.task-lane { margin:18px 0; }.task-lane h4 { margin:0 0 7px; color:#d1c1a9; font-size:11px; font-weight:500; }.task-lane ul { margin:0; padding:0; list-style:none; }.task-lane li { display:grid; grid-template-columns:35px 1fr auto; gap:7px; padding:9px 0; border-top:1px solid #5a6b5a33; font-size:11px; color:#bdc8b9; }.task-lane li small { font:9px/1.8 var(--mono); color:#93b4b4; }.task-lane li em { font-style:normal; font-size:9px; color:#8c9c8b; }.task-lane li p { grid-column:2/-1; font-size:9px; color:#899a8e; line-height:1.8; }.task-lane li[data-state="active"] em { color:#a9d6d2; }.task-lane li[data-state="waiting"] em { color:#e0b38a; }.task-lane li[data-state="done"] em { color:#a5bca5; }
.manifest-source { color:#8d9d91; font-size:10px; line-height:1.9; }.manifest-source a { text-decoration:underline; text-underline-offset:3px; }
.expedition-note { grid-area:4 / 1 / auto / -1; display:flex; justify-content:space-between; gap:12px; color:#728276; font-size:8px; line-height:1.8; pointer-events:none; }
.three-viewport:fullscreen { width:100vw; height:100dvh; }.three-viewport:fullscreen::after { background:linear-gradient(0deg,#05070955,transparent 20%); }.three-viewport:fullscreen .orbit-message { bottom:60px; }.three-viewport:fullscreen .three-mark { bottom:20px; }
@media(min-width:1800px){.world-label{font-size:12px;}}
@media(max-width:1199px){.mission-hero{--scene-gutter:36px;}.mission-hero .hero-copy{width:42%;}.mission-hero h1{font-size:clamp(50px,7.5svh,58px);}.mission-hero .hero-lead{font-size:12px;}.mission-hero .hero-actions{gap:18px;}.mission-constraints{gap:8px;}.mission-constraints>div{padding-left:8px;}.mission-constraints strong{font-size:10px;}.expedition-heading>span:last-child{display:none;}.mission-task-strip{gap:4px;}.mission-task-strip>span{font-size:8px;}}
@media(max-width:960px){.mission-hero{--scene-header-height:81px;}}
@media(max-width:900px){
  .scene-scale{font-size:8px;}
  .mission-hero{--scene-height:max(900px,calc(100svh - var(--scene-header-height)));--scene-gutter:28px;}.expedition{--mission-dock-height:285px;}.mission-main{align-items:flex-start;padding:80px var(--scene-gutter) 230px;}.mission-hero .hero-copy{width:100%;max-width:440px;}.mission-hero h1{font-size:54px;line-height:1.25;}.mission-hero .eyebrow{font-size:8px;margin-bottom:20px;}.mission-hero .hero-manifesto{margin-top:16px;font-size:21px;}.mission-hero .hero-lead{font-size:12px;line-height:1.8;margin-top:9px;}.mission-hero .hero-actions{margin-top:18px;}.mission-hero .hero-actions .button{min-height:44px;font-size:11px;padding:10px 15px;gap:14px;}.mission-hero .hero-footnote{display:none;}
  .three-viewport::after{background:linear-gradient(180deg,#0608096b 0%,#06080970 28%,transparent 45%,#06080905 62%,#060809e8 79%,#060809 100%);}
  .expedition-heading{top:21px;font-size:8px;}.view-caption{top:43px;left:var(--scene-gutter);right:var(--scene-gutter);justify-content:space-between;font-size:7px;gap:8px;}#view-hint{font-size:9px;}.scene-compass{top:91px;}
  .orbit-message{max-width:190px;padding:7px 0 7px 10px;}.orbit-message>span{font-size:7px;}.orbit-message small{font-size:8px;max-width:170px;}.orbit-legend{font-size:9px;gap:4px;margin-top:7px;}.orbit-legend i{width:17px;}.three-mark{left:var(--scene-gutter);right:auto;font-size:7px;}
  .mission-dock{grid-template-columns:minmax(0,1fr);row-gap:13px;padding-top:18px;}.mission-current{grid-area:1 / 1;min-height:62px;}.mission-current h3{font-size:13px;}.mission-current p{font-size:10px;margin-top:2px;}.event-number{font-size:9px;}.mission-constraints{grid-area:2 / 1;min-height:51px;gap:9px;}.mission-constraints>div{padding-left:7px;}.mission-constraints span{font-size:9px;}.mission-constraints strong{font-size:9px;}
  .mission-task-strip{display:none;}.mission-manifest-slot{grid-area:3 / 1;}.mission-manifest{width:100%;}.mission-manifest summary{font-size:10px;min-height:32px;}.mission-manifest[open]{left:var(--scene-gutter);top:58px;bottom:83px;width:auto;padding:0 17px 20px;}.manifest-intro{font-size:12px;}.task-lane li{font-size:12px;}.task-lane li p,.manifest-source{font-size:10px;}
  .expedition-transport{grid-area:4 / 1;gap:7px;}.expedition-chapters{gap:6px;}.expedition-chapters button{font-size:10px;letter-spacing:0;}.expedition-transport>button{width:34px;padding:9px;}.expedition-note{grid-area:5 / 1;font-size:7px;}.expedition-note>span{white-space:nowrap;}.three-loading,.three-fallback{padding:230px 20px 0;}.world-label{font-size:9px;}.world-label>span{padding:2px 5px;}
}
@media(max-width:760px){.mission-hero{--scene-header-height:73px;}}
@media(max-width:400px){.mission-hero{--scene-gutter:19px;}.mission-hero h1{font-size:46px;}.mission-hero .hero-actions{gap:19px;}.mission-hero .hero-manifesto{font-size:20px;}.expedition-chapters{gap:2px;}.expedition-transport{gap:2px;}.expedition-transport>button{width:31px;}.orbit-message{right:19px;}.mission-constraints{gap:5px;}.mission-constraints strong{font-size:8px;}}
@media(prefers-reduced-motion:reduce){.three-loading span{animation:none;}}
