/* RECUPERO / Cosmos → atmosphere → field notes → city → people.
   One owner for every chapter; no historical theme overrides. */
body.hero-cinematic {
  --journey-ink:#173447; --journey-muted:#536873; --journey-paper:#e4e3db;
  --journey-line:#17344730; --journey-signal:#08798b; --journey-night:#081623;
}
body.hero-cinematic .section { position:relative; padding:100px clamp(24px,6vw,112px); }
body.hero-cinematic .section-topline { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:0 0 24px; margin-bottom:62px; border-bottom:1px solid var(--journey-line); }
body.hero-cinematic .section .eyebrow { font-size:10px; letter-spacing:.17em; color:var(--journey-signal); }
body.hero-cinematic .section-side { font-size:9px; letter-spacing:.1em; color:var(--journey-muted); }
body.hero-cinematic :where(.journey-world) section h2 { margin:0; font-size:clamp(38px,4.6vw,72px); font-weight:500; line-height:1.07; letter-spacing:-.055em; color:var(--journey-ink); }
body.hero-cinematic :where(.journey-world) section h2 em { font-style:normal; color:var(--journey-signal); }
body.hero-cinematic :where(.journey-world) section h3 { font-weight:550; letter-spacing:-.025em; color:var(--journey-ink); }
body.hero-cinematic :where(.journey-world) section p { font-size:15px; line-height:1.85; color:var(--journey-muted); }
body.hero-cinematic .editorial-heading { display:grid; grid-template-columns:1.2fr .7fr; gap:8vw; align-items:end; }
body.hero-cinematic .editorial-heading p { max-width:420px; }
body.hero-cinematic .section :is(a,button):focus-visible { outline-color:var(--journey-signal); }
.particle-stage { position:relative; isolation:isolate; }
.particle-canvas { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.will-reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }
.will-reveal.is-visible { opacity:1; transform:none; }

/* One sticky camera owns galaxy, event horizon and cloud traversal. The same
   landscape remains behind it and the chapters below: there is no scene seam. */
.journey-world { position:relative; isolation:isolate; overflow:clip; margin-top:-24svh; }
.world-scenery { position:sticky; top:0; height:100svh; margin-bottom:-100svh; overflow:hidden; pointer-events:none; background:#030913; }
.world-sky { position:absolute; inset:0; background:linear-gradient(#76a8c9,#a7cbe0 62%,#9cbfd5); }
.world-land { position:absolute; inset:0; transform-origin:58% 65%; mask-image:linear-gradient(transparent,#000 16%); }
.world-land img { width:100%; height:100%; object-fit:cover; }
.world-aerial-wash { position:absolute; inset:0; background:linear-gradient(180deg,#b5d9ec70,#bbd9eac9 38%,#b4d0e2e0 68%,#9bbdd5ce); }
.world-drift { position:absolute; inset:-20% -5%; background:url('/static/img/journey/atmosphere.webp') center / cover no-repeat; opacity:.18; mask-image:radial-gradient(ellipse at 5% 60%,#000,transparent 53%); }
.altitude-track { position:absolute; right:20px; top:50%; display:flex; align-items:center; gap:15px; writing-mode:vertical-rl; font:8px Consolas,monospace; letter-spacing:.14em; color:#234b61; opacity:0; }
.altitude-track i { display:block; position:relative; width:1px; height:94px; background:#325d7733; }
.altitude-track b { position:absolute; left:-2px; top:0; width:5px; height:5px; border-radius:50%; background:#1d627d; }
.journey-world > section { position:relative; }
.galaxy-transit { min-height:700px; }
.galaxy-transit.is-scroll-linked { height:620svh; }
.galaxy-transit::before { content:''; position:absolute; z-index:1; top:-32svh; height:75svh; inset-inline:0; pointer-events:none; background:url('/static/img/recupero-galaxy-v1.webp') center 72% / cover; mask-image:linear-gradient(transparent,#0008 45%,transparent); opacity:var(--bridge-opacity,.65); }
.galaxy-transit-stage { position:relative; height:100svh; min-height:600px; overflow:hidden; isolation:isolate; opacity:var(--arrival-opacity,1); mask-image:linear-gradient(transparent,#000 var(--arrival-feather,0px)); }
.galaxy-transit.is-scroll-linked .galaxy-transit-stage { position:sticky; top:0; min-height:0; }
.galaxy-transit-stage.has-arrived { mask-image:none; }
.galaxy-transit.is-scroll-linked :is(.descent-poster,.cloud-wing,.cloud-mist,.descent-picture,.atmospheric-night,#galaxy-transit-canvas),.world-land,.world-sky,.world-aerial-wash,.world-drift { will-change:transform,opacity; }
.journey-world.is-lean :is(.cloud-wing,.world-drift) { display:none; }
.passage-anchor { position:absolute; top:55%; scroll-margin-top:0; }
.galaxy-poster,.descent-picture,.city-picture { position:absolute; inset:0; }
.galaxy-poster { background:#030913; opacity:var(--space-opacity,1); }
.galaxy-poster img { width:100%; height:100%; object-fit:cover; }
#galaxy-transit-canvas { position:absolute; inset:0; width:100%; height:100%; opacity:var(--space-opacity,1); }
.passage-night { position:absolute; inset:0; background:#000; opacity:var(--night-opacity,0); }
.descent-picture { opacity:var(--cloud-opacity,0); }
.descent-poster { width:100%; height:100%; object-fit:cover; transform-origin:50% 62%; transform:translateY(var(--poster-y,0%)) scale(var(--poster-scale,1)); }
.atmospheric-night { position:absolute; inset:0; opacity:var(--atmosphere-shade,0); background:linear-gradient(#01060ee0, #04142960 55%,#12324d15); }
.cloud-wing { position:absolute; inset:-8% -10%; background:url('/static/img/journey/atmosphere.webp') center 72% / cover; opacity:var(--wing-opacity,0); pointer-events:none; }
.cloud-wing-left { mask-image:radial-gradient(ellipse at 0% 66%,#000 10%,#000b 24%,transparent 55%); transform:translate(var(--wing-left-x,0%),var(--wing-y,0%)) scale(var(--wing-scale,1)); }
.cloud-wing-right { mask-image:radial-gradient(ellipse at 100% 68%,#000 10%,#000a 22%,transparent 57%); transform:translate(var(--wing-right-x,0%),var(--wing-y,0%)) scale(var(--wing-scale,1)); }
.cloud-mist { position:absolute; inset:0; pointer-events:none; opacity:var(--mist-opacity,0); background:radial-gradient(ellipse at 20% 75%,#c1d7e5d4,transparent 67%),radial-gradient(ellipse at 88% 35%,#d1e2eae6,transparent 68%); }
.galaxy-transit-copy { position:absolute; top:18%; left:6vw; width:min(550px,43vw); opacity:var(--galaxy-copy-opacity,1); transform:translateY(var(--galaxy-copy-y,0px)); }
.galaxy-transit-copy .eyebrow { color:#a5c5d1; font-size:9px; letter-spacing:.17em; }
body.hero-cinematic .galaxy-transit-copy h2 { margin-top:26px; color:#eaf2f5; font-size:clamp(42px,5vw,76px); text-shadow:0 3px 30px #01040a; }
body.hero-cinematic .galaxy-transit-copy h2 em { color:#a5d6e3; }
body.hero-cinematic .galaxy-transit-copy p { max-width:405px; margin-top:28px; color:#b0c1cb; font-size:14px; text-shadow:0 2px 8px #01040a; }
.galaxy-transit-caption { display:block; margin-top:34px; color:#8ca9b9; font:8px Consolas,monospace; letter-spacing:.15em; }
.descent-copy { position:absolute; top:17%; left:6vw; right:6vw; opacity:var(--descent-copy-opacity,0); transform:translateY(var(--descent-copy-y,18px)); }
body.hero-cinematic .descent-copy h2 { color:#edf2f1; font-size:clamp(38px,4.8vw,74px); text-shadow:0 2px 25px #07132380; margin-top:22px; }
body.hero-cinematic .descent-copy h2 em { color:#d1e1e6; }
.descent-copy .eyebrow { color:#d2e2e8; font-size:9px; }
.passage-footer { position:absolute; inset:auto 6vw 32px; display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--passage-label-color,#c4d6de); opacity:var(--passage-footer-opacity,1); }
.passage-footer > span { font:9px Consolas,monospace; letter-spacing:.12em; }
.passage-footer a { font-size:12px; padding:12px 0; border-bottom:1px solid currentColor; }
.passage-footer a span { margin-left:25px; }
.passage-footer:focus-within { opacity:1; }
.passage-stills { position:relative; background:#030913; }
.passage-stills figure { position:relative; margin:0; }
.passage-stills img { display:block; width:100%; height:70svh; object-fit:cover; }
.passage-stills figcaption { position:absolute; bottom:10%; left:6vw; color:#e8eef3; font:11px Consolas,monospace; letter-spacing:.14em; }
.galaxy-transit.is-scroll-linked .passage-stills { display:none; }
.galaxy-transit:not(.is-scroll-linked) #galaxy-transit-canvas { display:none; }


/* Field notes held in the same descending atmosphere. */
body.hero-cinematic .mission-log-section { background:transparent; padding-top:85px; }
.mission-log-intro { display:grid; grid-template-columns:1.2fr .7fr; align-items:end; gap:7vw; }
.mission-log { margin-top:65px; border-top:2px solid #a2c0c6; border-bottom:1px solid var(--journey-line); padding:30px 0; }
.integration-head { display:flex; justify-content:space-between; align-items:center; gap:22px; padding-bottom:25px; }
.integration-head > div > span { font:9px Consolas,monospace; letter-spacing:.14em; color:var(--journey-muted); }
body.hero-cinematic .integration-head h3 { font-size:clamp(23px,2.2vw,34px); margin-top:13px; }
.integration-head button { background:none; border:0; border-bottom:1px solid #7e969d; padding:10px 0; color:var(--journey-muted); font-size:12px; white-space:nowrap; }
.mission-log-rule { display:flex; justify-content:space-between; border-block:1px solid var(--journey-line); padding:12px 0; font:9px Consolas,monospace; letter-spacing:.15em; color:var(--journey-muted); }
.mission-log-body { display:grid; grid-template-columns:235px 1fr; gap:44px; padding:34px 0 25px; }
.mission-person { border-right:1px solid var(--journey-line); padding-right:25px; }
.example-avatar { display:grid; place-items:center; width:48px; height:48px; border:1px solid #7a979e; border-radius:50%; font-size:14px; color:var(--journey-muted); margin-bottom:24px; }
.integration-person strong { display:block; font-size:19px; font-weight:550; color:var(--journey-muted); }
.integration-person small { display:block; font:9px Consolas,monospace; color:var(--journey-muted); margin-top:7px; }
.log-facts { margin:22px 0 0; display:grid; gap:16px; }
.log-facts dt { font:8px Consolas,monospace; color:var(--journey-muted); letter-spacing:.04em; }
.log-facts dd { margin:4px 0 0; color:var(--journey-muted); font-size:12px; }
#integration-count { display:block; font:10px Consolas,monospace; color:var(--journey-muted); padding-top:25px; }
.log-channels { display:flex; flex-wrap:wrap; gap:0 20px; border-bottom:1px solid var(--journey-line); padding:20px 0; }
.log-channel { display:inline-flex; align-items:center; gap:7px; padding:10px 0; background:none; border:0; font-size:11px; color:var(--journey-muted); }
.log-channel::before { content:'+'; font-size:16px; color:var(--journey-muted); }
.log-channel[aria-pressed="true"] { color:var(--journey-muted); font-weight:650; }
.log-channel[aria-pressed="true"]::before { content:'✓'; }
.mission-events { min-height:210px; }
.integration-event { position:relative; display:grid; grid-template-columns:24px 1fr; gap:5px 16px; padding:18px 0; border-bottom:1px solid var(--journey-line); }
.integration-event:last-child { border-bottom:0; }
.integration-event .icon { width:19px; height:19px; color:var(--journey-muted); grid-row:1/4; }
.integration-event > strong { font-size:14px; font-weight:550; color:var(--journey-muted); }
body.hero-cinematic .integration-event p { font-size:12px; margin:0; }
.integration-event small { font:9px Consolas,monospace; color:var(--journey-muted); }
.integration-signal { display:none; }
body.hero-cinematic .integration-empty { max-width:510px; margin:24px 0; font-size:14px; }
.mission-log-footer { display:grid; grid-template-columns:235px 1fr; gap:44px; border-top:1px solid var(--journey-line); padding-top:22px; }
.mission-log-footer > span { font:9px Consolas,monospace; letter-spacing:.15em; color:var(--journey-muted); }
body.hero-cinematic .integration-summary { font-size:12px; }

/* A single line of travel across three stations. */
body.hero-cinematic .orbital-journey-section { background:transparent; }
.journey-intro { display:grid; grid-template-columns:1fr .7fr; gap:8vw; align-items:end; }
.orbit-journey { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:55px; margin-top:75px; padding-top:50px; }
.orbit-track { position:absolute; top:20px; left:0; right:0; height:1px; background:#507c8e45; }
.orbit-track span { display:block; height:2px; width:100%; background:#228296; transform:scaleX(var(--route-progress,1)); transform-origin:left; }
.orbit-stop { position:relative; }
.orbit-index { position:absolute; top:-65px; color:var(--journey-muted); font:9px Consolas,monospace; }
.orbit-node { position:absolute; top:-34px; width:9px; height:9px; border:1px solid #25758a; border-radius:50%; background:#243c43; }
.orbit-copy > small { color:var(--journey-muted); font:10px Consolas,monospace; letter-spacing:.15em; }
body.hero-cinematic .orbit-copy h3 { font-size:clamp(22px,2vw,30px); line-height:1.2; margin:20px 0; }
body.hero-cinematic .orbit-copy p { font-size:13px; }
.orbit-meta { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:25px; color:var(--journey-muted); font-size:10px; }
.journey-closing { display:flex; justify-content:space-between; gap:50px; margin-top:68px; padding-top:23px; border-top:1px solid var(--journey-line); }
.journey-closing > span { color:var(--journey-muted); font:9px Consolas,monospace; letter-spacing:.1em; }
body.hero-cinematic .journey-closing p { font-size:12px; max-width:650px; }

/* Event line and navigation chart. */
body.hero-cinematic .conversation-chapter { background:transparent; }
.event-line { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:30px; padding:0; margin:70px 0 0; }
.event-line li { position:relative; padding-top:54px; border-top:1px solid #365e7147; }
.event-line time { position:absolute; top:-32px; color:var(--journey-muted); font:10px Consolas,monospace; }
.event-dot { position:absolute; top:-4px; width:7px; height:7px; border-radius:50%; background:#197b8d; }
body.hero-cinematic .event-line h3 { font-size:25px; margin-bottom:15px; }
body.hero-cinematic .event-line p { font-size:13px; max-width:240px; }
body.hero-cinematic .conversation-closing { padding-top:35px; margin-top:55px; border-top:1px solid #365e7147; font-size:17px; }
.conversation-closing strong { color:var(--journey-muted); }
body.hero-cinematic .navigation-chapter { background:transparent; }
.navigation-layout { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; }
.navigation-layout > div > p { max-width:410px; margin-top:30px; }
.navigation-chart { position:relative; overflow:hidden; min-height:470px; padding:28px 32px 28px 0; border-top:1px solid #91acb45c; border-bottom:1px solid #91acb45c; }
.navigation-map { position:absolute; z-index:0; inset:0; width:100%; height:100%; stroke:#436d7f24; stroke-width:1; }
.navigation-map .chart-route { stroke:#188293; stroke-width:1.5; stroke-dasharray:700; stroke-dashoffset:calc(700 * (1 - var(--route-progress,1))); }
.navigation-map circle { fill:#188293; stroke:none; }
.navigation-chart > :not(svg) { position:relative; }
.chart-reference { display:block; font:9px Consolas,monospace; color:var(--journey-muted); letter-spacing:.1em; }
.chart-label { display:block; font:10px Consolas,monospace; color:var(--journey-muted); margin-top:43px; }
body.hero-cinematic .navigation-chart h3 { font-size:42px; line-height:1.02; margin-top:12px; }
.navigation-chart dl { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:35px; }
.navigation-chart dt { font:9px Consolas,monospace; color:var(--journey-muted); }
.navigation-chart dd { margin:7px 0 0; font-size:14px; color:var(--journey-muted); }
body.hero-cinematic .navigation-chart > p { margin-top:27px; font-size:12px; max-width:360px; }
.navigation-chart p span { display:block; font:9px Consolas,monospace; color:var(--journey-muted); margin-bottom:8px; }

/* Observatory: one 360° reading, no synthetic dashboard. */
body.hero-cinematic .observatory-editorial { background:transparent; }
.observatory-layout { display:grid; grid-template-columns:1.05fr 1fr; gap:7vw; align-items:center; }
.observatory-copy > p { max-width:460px; margin-top:28px; }
.observatory-note { border-top:1px solid var(--journey-line); padding-top:22px; margin-top:40px; }
.observatory-note span { display:block; color:var(--journey-muted); font:9px Consolas,monospace; letter-spacing:.14em; margin-bottom:12px; }
.observatory-note strong { font-size:14px; font-weight:450; color:var(--journey-muted); }
.observatory-visual { position:relative; min-height:420px; }
.observatory-orbit { position:absolute; left:50%; top:46%; width:76%; height:76%; border:1px solid #315f7752; border-radius:50%; transform:translate(-50%,-50%) rotate(-28deg); }
.observatory-orbit.orbit-two { height:42%; width:88%; }
.observatory-core { position:absolute; left:50%; top:46%; transform:translate(-50%,-50%); display:grid; text-align:center; }
.observatory-core strong { font-size:clamp(70px,8vw,126px); font-weight:300; letter-spacing:-.08em; line-height:1.1; color:var(--journey-muted); }
.observatory-core small { color:var(--journey-muted); font:8px Consolas,monospace; letter-spacing:.16em; margin-top:15px; }
.observatory-axis { position:absolute; color:var(--journey-muted); font:9px Consolas,monospace; letter-spacing:.12em; background:#243c43; padding:8px; }
.axis-a { top:4%; left:42%; } .axis-b { top:42%; right:0; } .axis-c { bottom:15%; left:40%; } .axis-d { top:42%; left:0; }
body.hero-cinematic .observatory-visual > p { position:absolute; bottom:0; inset-inline:0; text-align:center; font-size:11px; }

/* Evidence: existing dated pilot figures, editorial columns. */
body.hero-cinematic .field-proof-section { background:transparent; }
.field-proof-heading { display:grid; grid-template-columns:1.2fr .65fr; gap:7vw; align-items:end; }
.field-proof-stamp { display:block; margin-top:35px; font:9px Consolas,monospace; color:var(--journey-muted); letter-spacing:.12em; }
.field-proof-ledger { display:grid; grid-template-columns:repeat(4,1fr); margin-top:70px; border-top:1px solid #99b2b96b; border-bottom:1px solid var(--journey-line); }
.field-proof-ledger article { padding:30px 30px 35px; border-left:1px solid var(--journey-line); }
.field-proof-ledger article:first-child { padding-left:0; border-left:0; }
.ledger-index { display:block; font:9px Consolas,monospace; color:var(--journey-muted); margin-bottom:35px; }
.field-proof-ledger strong { display:block; font-size:clamp(35px,4.1vw,66px); font-weight:450; color:var(--journey-ink); line-height:1; letter-spacing:-.055em; font-variant-numeric:tabular-nums; }
body.hero-cinematic .field-proof-ledger h3 { font-size:13px; margin-top:20px; }
body.hero-cinematic .field-proof-ledger p { font-size:11px; margin-top:12px; }
.field-proof-foot { display:grid; grid-template-columns:1fr 1.3fr; gap:40px; margin-top:25px; }
.field-proof-foot > span { font:9px Consolas,monospace; letter-spacing:.12em; color:var(--journey-muted); }
body.hero-cinematic .field-proof-foot p { font-size:10px; }

/* Continuity, manifesto and implementation: route → street. */
body.hero-cinematic .continuity-section { background:transparent; }
.continuity-heading,.manifesto-heading,.launch-heading { display:grid; grid-template-columns:1.2fr .7fr; gap:8vw; align-items:end; }
.continuity-route { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:40px; margin-top:70px; padding-top:42px; }
.continuity-line { position:absolute; inset:8px 0 auto; height:1px; background:#47798c50; }
.continuity-line span { display:block; width:100%; height:2px; background:#2a8092; transform:scaleX(var(--route-progress,1)); transform-origin:left; }
.continuity-route article { position:relative; }
.continuity-node { position:absolute; top:-42px; width:19px; height:19px; border-radius:50%; background:#243c43; border:1px solid #2f8395; color:var(--journey-muted); font:8px Consolas,monospace; display:grid; place-items:center; }
.continuity-route .icon { width:23px; height:23px; color:var(--journey-muted); margin-bottom:25px; }
body.hero-cinematic .continuity-route h3 { font-size:20px; line-height:1.25; }
body.hero-cinematic .continuity-route p { font-size:12px; margin-top:12px; }
.continuity-closing { display:flex; justify-content:space-between; gap:25px; border-top:1px solid var(--journey-line); padding-top:25px; margin-top:60px; font-size:14px; color:var(--journey-muted); }
.continuity-closing strong { font-weight:500; }
.continuity-closing span { color:var(--journey-muted); }
body.hero-cinematic .manifesto-section { overflow:hidden; background:transparent; }
.manifesto-section::after { content:''; position:absolute; width:560px; height:560px; right:-270px; bottom:-290px; border:1px solid #35677625; border-radius:50%; box-shadow:0 0 0 70px #35677606; pointer-events:none; }
.manifesto-spread { display:grid; grid-template-columns:1fr 1fr; border-block:1px solid var(--journey-line); margin-top:65px; }
.manifesto-spread article { padding:35px 55px 45px 0; }
.manifesto-spread article + article { border-left:1px solid var(--journey-line); padding-left:55px; }
.manifesto-spread span { display:block; color:var(--journey-muted); font:10px Consolas,monospace; letter-spacing:.13em; margin-bottom:35px; }
body.hero-cinematic .manifesto-spread h3 { font-size:clamp(26px,2.6vw,40px); line-height:1.15; max-width:500px; }
body.hero-cinematic .manifesto-spread p { font-size:13px; margin-top:22px; max-width:470px; }
.manifesto-principles { display:flex; flex-wrap:wrap; gap:17px 35px; margin-top:25px; font-size:9px; letter-spacing:.08em; color:var(--journey-muted); }
body.hero-cinematic .launch-section { background:transparent; }
.launch-route { list-style:none; position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:40px; margin:72px 0 0; padding:0; }
.launch-route::before { content:''; position:absolute; top:8px; inset-inline:0; height:1px; background:#46748766; }
.launch-route li { position:relative; padding-top:43px; }
.launch-dot { position:absolute; top:1px; left:0; width:14px; height:14px; border:1px solid #316d80; border-radius:50%; background:#243c43; }
.launch-live .launch-dot { background:#1c7c90; }
.launch-route small { display:block; color:var(--journey-muted); font:9px Consolas,monospace; margin-bottom:24px; }
body.hero-cinematic .launch-route h3 { font-size:22px; }
body.hero-cinematic .launch-route p { font-size:12px; margin-top:15px; }
.launch-caption { display:flex; justify-content:space-between; gap:25px; border-top:1px solid var(--journey-line); padding-top:25px; margin-top:60px; }
.launch-caption span { color:var(--journey-muted); font:9px Consolas,monospace; letter-spacing:.1em; }
.launch-caption strong { font-size:13px; font-weight:500; color:var(--journey-muted); }

/* Cartography dissolves into a real city; the next window is an office. */
.urban-descent { position:relative; background:transparent; }
.urban-stage { position:relative; height:900px; height:100svh; min-height:620px; overflow:hidden; isolation:isolate; }
.city-image { position:absolute; inset:-8% 0; width:100%; height:116%; max-width:none; object-fit:cover; object-position:center; transform:translateY(var(--city-y,0%)) scale(var(--city-scale,1)); }
.city-shade { position:absolute; inset:0; background:linear-gradient(90deg,#091623c9,transparent 75%),linear-gradient(0deg,#0b1929,transparent 25%,transparent 80%,#b7c6ca00); }
.urban-map { position:absolute; inset:0; background:transparent; opacity:var(--map-opacity,0); transform:scale(var(--map-scale,1)); }
.urban-map svg { width:100%; height:100%; fill:none; stroke:#244e6250; stroke-width:1; }
.urban-map .city-route { stroke:#3a8292; stroke-width:2; }
.city-copy { position:absolute; z-index:2; top:25%; left:6vw; right:6vw; opacity:var(--city-copy-opacity,1); transform:translateY(var(--city-copy-y,0px)); }
.city-copy .eyebrow { color:#b7c7cd; font-size:9px; }
body.hero-cinematic .city-copy h2 { font-size:clamp(53px,7.5vw,118px); color:#e8eceb; margin-top:26px; }
body.hero-cinematic .city-copy h2 em { color:#e0cbb0; }
body.hero-cinematic .city-copy p { font-size:15px; margin-top:30px; color:#c4cdd0; }
.city-footnote { position:absolute; z-index:2; left:6vw; bottom:35px; font:9px Consolas,monospace; color:#b6bdbe; letter-spacing:.13em; }
.urban-descent.is-scroll-linked { height:230svh; }
.is-scroll-linked .urban-stage { position:sticky; top:0; }
.office-chapter { position:relative; min-height:760px; height:100svh; max-height:1150px; overflow:hidden; background:transparent; }
.office-copy { position:relative; padding:160px 6vw 100px; max-width:920px; }
.office-copy .eyebrow { color:#c6d2d4; font-size:9px; }
body.hero-cinematic .office-copy h2 { font-size:clamp(43px,5vw,76px); color:#edf0ec; margin-top:32px; }
body.hero-cinematic .office-copy h2 em { color:#e1ceb4; }
body.hero-cinematic .office-copy p { color:#c0cacc; max-width:450px; margin:30px 0; font-size:15px; }
.office-copy .btn { background:#b1d8d9; color:#153342; border:0; border-radius:3px; min-height:54px; padding:16px 22px; gap:25px; box-shadow:none; }
.office-copy .btn:hover { background:#d0e8e5; transform:translateY(-2px); }
.existing-client { display:block; width:fit-content; margin-top:26px; font-size:11px; color:#afbfc6; }
.existing-client span { margin-left:12px; color:#e0e8e8; border-bottom:1px solid #9cbbc67a; padding-bottom:4px; }
body.hero-cinematic .public-footer { position:relative; z-index:2; background:#0c171d; border-color:#8ea6b52b; color:#d0dde2; }

@media(min-width:1800px) { body.hero-cinematic .section { padding-inline:max(6vw,calc((100vw - 1650px)/2)); } }
@media(max-width:1100px) {
  .galaxy-transit-copy { width:min(590px,52vw); }
  .field-proof-ledger article { padding-inline:20px; }
  .continuity-route,.launch-route { gap:25px; }
}
@media(max-width:900px) {
  body.hero-cinematic .section { padding-block:75px; }
  body.hero-cinematic .section-topline { margin-bottom:42px; }
  body.hero-cinematic .section-side { display:none; }
  .mission-log-intro,.journey-intro,.observatory-layout,.field-proof-heading,.continuity-heading,.manifesto-heading,.launch-heading,.navigation-layout,body.hero-cinematic .editorial-heading { grid-template-columns:1fr; gap:30px; }

  .galaxy-transit-copy { width:min(620px,68vw); }
  .mission-log-body,.mission-log-footer { grid-template-columns:190px 1fr; gap:28px; }
  .orbit-journey { gap:30px; }
  .event-line { grid-template-columns:repeat(2,1fr); gap:65px 30px; }
  .navigation-chart { max-width:700px; width:100%; }
  .observatory-visual { max-width:570px; width:100%; margin:auto; }
  .field-proof-ledger { grid-template-columns:1fr 1fr; }
  .field-proof-ledger article:nth-child(3) { border-left:0; padding-left:0; }
  .field-proof-ledger article:nth-child(n+3) { border-top:1px solid var(--journey-line); }
  .field-proof-ledger strong { font-size:56px; }
  .continuity-route,.launch-route { grid-template-columns:1fr 1fr; row-gap:60px; }
  .continuity-line,.launch-route::before { display:none; }
  .continuity-route article,.launch-route li { border-top:1px solid var(--journey-line); padding-top:30px; }
  .continuity-node { top:-10px; }
  .launch-dot { top:-7px; }
  .office-copy { padding-top:130px; }
}
@media(max-width:600px) {
  body.hero-cinematic .section { padding:62px 24px; }
  body.hero-cinematic .public-nav { gap:12px; padding-inline:20px; }
  body.hero-cinematic .public-nav .public-brand { flex:1 1 auto; min-width:0; }
  body.hero-cinematic .public-nav .public-brand img { max-width:clamp(110px,32vw,135px); }
  body.hero-cinematic .public-nav .nav-actions-public { flex:0 0 auto; margin:0; }
  body.hero-cinematic .public-nav .nav-login { --nav-access-padding:10px; min-width:0; width:auto; flex:none; }
  body.hero-cinematic .public-nav .nav-login-label { font-size:10px; }
  body.hero-cinematic .public-nav .nav-login-arrow { width:13px; }
  body.hero-cinematic .public-nav .menu-toggle { flex:0 0 30px; width:30px; height:40px; padding:6px; gap:5px; flex-direction:column; align-items:center; justify-content:center; border:0; background:transparent; box-shadow:none; }
  body.hero-cinematic .public-nav .menu-toggle span { flex:none; width:18px; height:1px; background:#d4e4eb; }
  body.hero-cinematic :where(.journey-world) section h2 { font-size:clamp(34px,10.2vw,48px); }
  body.hero-cinematic :where(.journey-world) section p { font-size:14px; }

  .galaxy-transit-copy { top:14%; left:24px; width:calc(100% - 48px); }
  body.hero-cinematic .galaxy-transit-copy h2 { font-size:clamp(35px,10vw,48px); }
  body.hero-cinematic .galaxy-transit-copy p { max-width:330px; font-size:12px; }
  .galaxy-transit-caption { font-size:7px; }

  .descent-copy { top:15%; left:24px; right:24px; }
  .descent-copy .eyebrow { font-size:8px; }
  .mission-log { margin-top:42px; }
  .integration-head { align-items:start; }
  .integration-head > div > span { font-size:8px; line-height:1.7; }
  body.hero-cinematic .integration-head h3 { font-size:25px; }
  .mission-log-rule { font-size:7px; letter-spacing:.05em; }
  .mission-log-body { grid-template-columns:1fr; padding-top:24px; gap:20px; }
  .mission-person { display:grid; grid-template-columns:48px 1fr; gap:5px 18px; padding:0 0 22px; border-right:0; border-bottom:1px solid var(--journey-line); }
  .example-avatar { grid-row:1/3; margin:0; }
  .integration-person strong { font-size:17px; }
  #integration-count { padding-top:7px; grid-column:2; }
  .log-facts { grid-column:1/-1; grid-template-columns:1fr 1fr; gap:16px; margin-top:18px; }
  .mission-events { min-height:150px; }
  .mission-log-footer { grid-template-columns:1fr; gap:12px; }
  .log-channels { gap:0 15px; }
  .log-channel { font-size:10px; }
  .orbit-journey { grid-template-columns:1fr; padding:0 0 0 28px; margin-top:50px; gap:45px; }
  .orbit-track { top:0; bottom:0; left:3px; right:auto; width:1px; height:auto; }
  .orbit-track span { width:1px; height:100%; transform:scaleY(var(--route-progress,1)); transform-origin:top; }
  .orbit-index { position:static; display:block; margin-bottom:12px; }
  .orbit-node { left:-29px; top:3px; }
  body.hero-cinematic .orbit-copy h3 { font-size:26px; margin:14px 0; }
  .journey-closing,.continuity-closing,.launch-caption { flex-direction:column; gap:15px; margin-top:45px; }
  .event-line { grid-template-columns:1fr; gap:0; margin-top:40px; padding-left:24px; }
  .event-line li { padding:0 0 34px 22px; border-top:0; border-left:1px solid #365e7147; }
  .event-line time { position:static; display:block; margin-bottom:13px; }
  .event-dot { top:4px; left:-4px; }
  body.hero-cinematic .event-line h3 { font-size:26px; margin-bottom:9px; }
  .conversation-closing { margin-top:20px; }
  .navigation-chart { padding-right:8px; }
  .navigation-chart dd { font-size:12px; }
  .observatory-visual { min-height:350px; }
  .observatory-core strong { font-size:83px; }
  .observatory-axis { font-size:8px; }
  .field-proof-heading { gap:30px; }
  .field-proof-ledger { margin-top:40px; }
  .field-proof-ledger article { padding:24px 13px; }
  .field-proof-ledger strong { font-size:38px; }
  body.hero-cinematic .field-proof-ledger h3 { font-size:11px; }
  body.hero-cinematic .field-proof-ledger p { font-size:10px; }
  .ledger-index { margin-bottom:24px; }
  .field-proof-foot { grid-template-columns:1fr; gap:13px; }
  .continuity-route,.launch-route { grid-template-columns:1fr; padding-left:25px; gap:0; margin-top:44px; }
  .continuity-route article,.launch-route li { border-top:0; border-left:1px solid #4b798859; padding:0 0 36px 24px; }
  .continuity-node { top:0; left:-10px; }
  .launch-dot { top:0; left:-7px; }
  .continuity-route .icon { margin-bottom:18px; }
  .manifesto-spread { grid-template-columns:1fr; margin-top:42px; }
  .manifesto-spread article,.manifesto-spread article + article { padding:28px 0; border-left:0; }
  .manifesto-spread article + article { border-top:1px solid var(--journey-line); }
  .manifesto-spread span { margin-bottom:22px; }
  .manifesto-principles { flex-direction:column; gap:15px; font-size:8px; }
  .urban-descent.is-scroll-linked { height:180svh; }
  .urban-stage { min-height:640px; }
  .city-image { object-position:64% center; }
  .city-copy { left:24px; right:24px; top:23%; }
  body.hero-cinematic .city-copy h2 { font-size:58px; }
  body.hero-cinematic .city-copy p { font-size:13px; }
  .city-copy .eyebrow,.city-footnote { font-size:8px; }
  .city-footnote { left:24px; bottom:28px; }
  .office-chapter { min-height:800px; height:auto; }
  .office-copy { padding:340px 24px 70px; }
  body.hero-cinematic .office-copy h2 { font-size:39px; }
  body.hero-cinematic .office-copy p { font-size:13px; }
  .office-copy .btn { font-size:12px; padding:15px 18px; gap:15px; }
  .existing-client { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .will-reveal { opacity:1; transform:none; transition:none; }
  .city-image,.city-copy { transform:none; }
  .city-copy { opacity:1; }
}

/* Aerial reading: translucent atmosphere, with the valley retained at every
   altitude. Component surfaces never replace the shared scene. */
.journey-world .section { --journey-ink:#e3e9e7; --journey-muted:#b6c6ca; --journey-signal:#a9cbd0; --journey-line:#b0c5ca35; }
.mission-log-section::before { content:''; position:absolute; top:-1px; inset-inline:0; height:1px; background:transparent; }
.journey-world > .section { padding-top:120px; padding-bottom:120px; }
.journey-world > .section + .section { padding-top:100px; }
.mission-log { background:linear-gradient(100deg,#cce4ec28,transparent); }
.city-picture { opacity:var(--urban-photo-opacity,1); mask-image:linear-gradient(transparent,#000 var(--urban-feather,0px)); }
.city-shade { opacity:var(--urban-photo-opacity,1); }
.urban-map { mask-image:linear-gradient(transparent,#0007 40%,transparent); }
.office-chapter { margin-top:-1px; }
@media(max-width:900px) {
  .journey-world > .section { padding-block:90px; }
  .altitude-track { right:9px; font-size:7px; }
}
@media(max-width:600px) {
  .journey-world { margin-top:-16svh; }
  .galaxy-transit.is-scroll-linked { height:560svh; }
  .galaxy-transit-copy { top:13%; left:24px; width:calc(100% - 48px); }
  .galaxy-poster img { object-position:60% center; }
  body.hero-cinematic .galaxy-transit-copy p { max-width:300px; }
  .galaxy-transit-caption { margin-top:22px; }
  .descent-copy { left:24px; right:24px; }
  .passage-footer { left:24px; right:24px; bottom:24px; align-items:start; flex-direction:column; gap:10px; }
  .passage-footer > span { font-size:8px; }
  .passage-footer a { font-size:11px; }
  .world-land { transform-origin:58% 57%; }
  .altitude-track { display:none; }
  .journey-world > .section,.journey-world > .section + .section { padding:76px 24px; }
  .cloud-wing { background-image:url('/static/img/journey/atmosphere-mobile.webp'); }
  .world-drift { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  .journey-world { margin-top:0; }
  .world-land,.world-drift { transform:none; }
  .galaxy-transit-stage { mask-image:none; opacity:1; }
  .galaxy-transit::before,.cloud-wing,.cloud-mist,.altitude-track { display:none; }
  .galaxy-transit-copy { opacity:1; transform:none; }
  .city-picture,.city-shade { opacity:1; }
}

/* The light sky lasts only through cloud exit. Terrain then gains scale, warmth
   and detail. A shared interior holds both the human chapter and final CTA. */
.world-streets { position:absolute; inset:0; opacity:0; transform-origin:63% 57%; }
.world-streets img { width:100%; height:100%; object-fit:cover; }
.world-earth-tint { position:absolute; inset:0; opacity:0; background:linear-gradient(100deg,#303429e6,#5a514160 72%,#403c3270); }
.world-night { position:absolute; inset:0; opacity:0; background:linear-gradient(90deg,#071822e8,#0a1d25b5 48%,#09182085); }
.world-streets,.world-earth-tint,.world-night { will-change:transform,opacity; }
.world-drift { opacity:.09; }
.altitude-track { color:#b4c7cd; }
.altitude-track i { background:#c0d1d638; }
.altitude-track b { background:#bed6d5; }
body.hero-cinematic .journey-world .section .eyebrow { color:#a9cbd0; }
.mission-log { background:transparent; border-top-color:#92adb5; }
.mission-log-rule,.mission-log-footer,.mission-person,.log-channels,.integration-event { border-color:var(--journey-line); }
.example-avatar { border-color:#9abbc35c; }
.integration-head button { border-color:#91b0ba70; }
.log-channel[aria-pressed="true"],#integration-count { color:#a1d5d7; }
.log-channel::before { color:#a1bfc6; }
.log-channel[aria-pressed="true"]::before { color:#bce2dc; }
.observatory-axis { background:transparent; color:#c7d7db; }
.observatory-orbit { border-color:#bed2d24a; }
.observatory-core strong { color:#e2ebe7; }
.mission-log::before { display:none; }
.arrival-world { position:relative; isolation:isolate; overflow:clip; }
.arrival-backdrop { position:sticky; top:0; height:100svh; margin-bottom:-100svh; overflow:hidden; background:#0c171d; opacity:var(--interior-opacity,1); }
.arrival-office-picture { position:absolute; inset:0; transform:scale(var(--interior-scale,1)); transform-origin:60% 55%; }
.arrival-office-picture img { width:100%; height:100%; object-fit:cover; object-position:60% center; }
.arrival-office-shade { position:absolute; inset:0; background:linear-gradient(90deg,#0c171eea,#0c171ecf 38%,#0c171e25 82%),linear-gradient(0deg,#0c171d,transparent 28%); }
.arrival-backdrop,.arrival-office-picture { will-change:transform,opacity; }
.arrival-world > section { position:relative; }
.urban-stage.has-arrived .city-picture { mask-image:none; }
.journey-world.is-lean :is(.arrival-backdrop,.arrival-office-picture,.city-image) { will-change:auto; }
.journey-world.is-lean :is(.arrival-office-picture,.city-image) { transform:none; }
.journey-world.is-lean .arrival-threshold { display:none; }
body.hero-cinematic:has(.journey-world.is-lean) .public-nav { backdrop-filter:none; }
.urban-descent.is-scroll-linked { height:310svh; }
.city-image { transform-origin:75% 58%; will-change:transform; }
.arrival-threshold { position:absolute; inset:-5%; opacity:var(--threshold-opacity,0); background:linear-gradient(90deg,transparent,#09151cd9 22%,#09151c 47%,#09151cf0 69%,transparent); transform:translateX(var(--threshold-x,110%)); pointer-events:none; }
.city-footnote { opacity:var(--city-footnote-opacity,1); }
.ground-intelligence { min-height:900px; display:flex; align-items:center; background:transparent; }
.ground-intelligence-copy { width:min(620px,50%); }
body.hero-cinematic .ground-intelligence h2 { margin-top:28px; font-size:clamp(38px,3.65vw,59px); line-height:1.1; color:#e6ece9; }
body.hero-cinematic .ground-intelligence h2 em { color:#d4c4ac; }
body.hero-cinematic .ground-intelligence-copy > p { max-width:530px; margin-top:28px; color:#bfccd0; font-size:14px; }
.ground-principles { display:grid; grid-template-columns:1fr 1fr; gap:27px 36px; margin-top:45px; }
.ground-principles > div { padding-top:18px; border-top:1px solid #bccccc38; }
.ground-principles span { font:9px Consolas,monospace; color:#a2b7bb; margin-right:15px; }
.ground-principles strong { font-size:18px; font-weight:500; color:#e0e7e5; }
body.hero-cinematic .ground-principles p { font-size:11px; line-height:1.7; color:#b1c1c7; margin-top:12px; }
body.hero-cinematic .ground-intelligence-copy > .ground-ai-scope { font-size:10px; color:#93a7af; margin-top:25px; }
.office-copy { padding-top:170px; }
.office-chapter::after { content:''; position:absolute; inset:auto 0 0; height:25%; background:linear-gradient(transparent,#0c171d); pointer-events:none; }
.office-copy { position:relative; z-index:1; }
.journey-world:not(.has-descent-motion) :is(.world-aerial-wash,.world-drift,.world-sky) { display:none; }
.journey-world:not(.has-descent-motion) .world-night { opacity:1; }
.journey-world:not(.has-descent-motion) .world-earth-tint { opacity:.4; }
@media(max-width:900px) {
  .ground-intelligence-copy { width:min(620px,76%); }
}
@media(max-width:600px) {
  .world-night { background:linear-gradient(#0a1c26c9,#0a1c26db); }
  .world-earth-tint { background:linear-gradient(#363a30b8,#38382ae0); }
  .urban-descent.is-scroll-linked { height:270svh; }
  .arrival-office-picture img { object-position:center; }
  .arrival-office-shade { background:linear-gradient(0deg,#0c171de8,#0c171dcc 62%,#0c171d70); }
  .ground-intelligence { min-height:980px; }
  .ground-intelligence-copy { width:100%; }
  body.hero-cinematic .ground-intelligence h2 { font-size:35px; }
  .ground-intelligence .eyebrow { font-size:8px; line-height:1.7; }
  .ground-principles { gap:24px 18px; }
  .ground-principles strong { font-size:17px; }
  .ground-principles span { margin-right:8px; }
  .office-copy { padding:245px 24px 100px; }
  .office-chapter { min-height:790px; }
}
@media(prefers-reduced-motion:reduce) {
  .world-aerial-wash,.world-drift,.world-sky { display:none; }
  .world-land { opacity:1; }
  .world-night { opacity:1; }
  .world-earth-tint { opacity:.4; }
  .arrival-backdrop { opacity:1; }
  .arrival-threshold { display:none; }
  .urban-descent.is-scroll-linked { height:auto; }
}
