/* Reference hero treatment; the existing journey retains its own UI after orbit. */
.hero-nav{display:none}.hero-pass{display:none}
.copy{top:18.8%;left:17.3%;right:3.6%;padding:0;text-align:left}
.copy .eyebrow{font-size:clamp(9px,.8vw,13px);letter-spacing:.2em;color:#acb3bb;margin:0 0 2.4vh}
.copy h1{font-family:var(--font-display);line-height:1;letter-spacing:-.045em;text-shadow:none;font-weight:500}
.hero-lead{font-size:clamp(42px,6.4vw,100px);line-height:1.02}
.hero-above{font-family:var(--font-body);font-size:clamp(90px,18.2vw,275px);font-weight:700;letter-spacing:-.055em;line-height:1.03;margin-left:-3.4vw;margin-top:2.6vh;background:linear-gradient(#f3f6f7 25%,#e5e9ec 45%,#5b687b 82%,#17263a 100%);background-clip:text;-webkit-background-clip:text;color:transparent}
.hero-aside{position:absolute;right:0;top:4.6vh;width:22%;text-align:right;font-family:var(--font-display)}
.hero-aside h2{font-size:clamp(17px,2.55vw,38px);font-weight:300;letter-spacing:-.055em;color:#9fa3a9;margin:0 0 2.2vh;white-space:nowrap}
.hero-aside p{font-size:clamp(10px,1.12vw,17px);font-weight:300;line-height:1.75;color:#c0c5ce;margin:0}
body.orbit-ui header{padding:2vh 4.8vw}
body.orbit-ui .brand{font-size:clamp(12px,1.5vw,22px);gap:5px;letter-spacing:-.055em}
body.orbit-ui .brand svg{width:clamp(17px,2vw,29px);height:auto}
body.orbit-ui .wallet{margin-left:4px}
body.orbit-ui #sound,body.orbit-ui .chapter{display:none}
body.orbit-ui .hero-nav,body.cloud-ui .hero-nav{display:flex;align-items:center;gap:clamp(18px,3vw,42px);padding:9px 10px 9px 20px;border:1px solid #b9c4d56b;border-right-color:#111821;border-radius:60px;background:linear-gradient(110deg,#4b5567a6,#1118207a);box-shadow:inset 0 1px 0 #ffffff12;backdrop-filter:blur(16px)}
.hero-nav a{color:#f4f6f9;text-decoration:none;font-size:clamp(9px,.95vw,14px);white-space:nowrap}
.hero-nav a:hover{color:#b9d7f6}.hero-nav .hero-contact{background:#f5f7f7;color:#182436;border-radius:30px;padding:9px 17px}
body.orbit-ui .coordinates{left:2%;top:29%;writing-mode:horizontal-tb;transform:none;font-size:clamp(9px,.85vw,13px);letter-spacing:0;gap:12px;color:#eef3f7}
body.orbit-ui .coordinates span:nth-child(2),body.orbit-ui .hero-pass{display:block;font-size:clamp(9px,.85vw,13px);color:#98a4b5}
body.orbit-ui .coordinates:after{content:'';height:8.5vh;width:1px;background:#a9b4c275;margin-top:16px;margin-left:7px}
body.orbit-ui footer{inset:0;pointer-events:none}
body.orbit-ui .altitude{position:absolute;right:4.8%;top:62.5%;font-size:clamp(16px,1.7vw,26px);gap:8px;min-width:0;letter-spacing:-.03em}
body.orbit-ui .altitude .small-label{text-transform:capitalize;letter-spacing:0;font-size:clamp(9px,.85vw,13px);color:#a3abb8}
body.orbit-ui .altitude>span:last-child{padding:8px 17px;border:1px solid #b7c5df70;border-radius:40px;background:linear-gradient(110deg,#7184a45a,#1c273a38)}
body.orbit-ui .unit{font-size:10px;text-transform:lowercase}
body.orbit-ui #scroll{position:absolute;left:50%;bottom:11%;transform:translateX(-50%);width:clamp(80px,10.8vw,158px);height:clamp(80px,10.8vw,158px);padding:0;justify-content:center;gap:5px;background:#f5f7f7;color:#17253a;border:8px solid #657081;border-radius:50%;outline:1px solid #bcc4d2;box-shadow:0 0 0 8px #939dae24;font-size:clamp(8px,.75vw,12px);letter-spacing:0;pointer-events:auto}
body.orbit-ui #scroll-label{font-size:0}body.orbit-ui #scroll-label:after{content:'Scroll to descend';font-size:clamp(8px,.75vw,12px)}
body.orbit-ui .scroll-line{background:none;width:auto;height:auto}body.orbit-ui .scroll-line:after{content:'↓';font-size:22px;font-weight:300}
body.orbit-ui .progress{display:none}
body.orbit-ui .credits,body.orbit-ui .terrain-credit{opacity:0;pointer-events:none}
#stage{transform:none;transform-origin:50% 50%}
@media(max-width:600px){
 body.orbit-ui header{padding:18px 20px;align-items:flex-start;flex-wrap:wrap;gap:18px}
 body.orbit-ui .hero-nav,body.cloud-ui .hero-nav{width:100%;justify-content:space-between;gap:10px;padding:7px 8px 7px 14px}
 .hero-nav a{font-size:10px}.hero-nav .hero-contact{padding:8px 12px}
 .copy{left:9%;right:8%;top:25%}.copy .eyebrow{font-size:9px;margin-bottom:16px}
 .hero-lead{font-size:clamp(40px,10vw,60px)}.hero-above{font-size:24vw;margin:12px 0 0 -1vw}
 .hero-aside{top:27vh;width:65%;right:0}.hero-aside h2{font-size:22px;margin-bottom:10px}.hero-aside p{font-size:11px;line-height:1.6}
 body.orbit-ui .coordinates{top:18%;left:9%;flex-direction:row;gap:14px;font-size:8px}body.orbit-ui .coordinates span:nth-child(2),body.orbit-ui .hero-pass{font-size:8px}body.orbit-ui .coordinates:after{display:none}
 body.orbit-ui .altitude{top:auto;bottom:9%;right:7%;font-size:16px}body.orbit-ui #scroll{left:20%;bottom:9%;width:78px;height:78px}
}

body.orbit-ui .altitude .small-label{font-size:0}body.orbit-ui .altitude .small-label:after{content:"Altitude";font-size:clamp(9px,.85vw,13px)}

/* Carry the same controls into the full-globe descent composition. */
body.orbit-ui:not(.hero-orbit) .coordinates{opacity:0}
body.orbit-ui:not(.hero-orbit) .descent-copy{padding-left:9.5vw;padding-right:28vw;background:linear-gradient(90deg,#02081270,transparent 80%)}
body.orbit-ui:not(.hero-orbit) .descent-copy h2{font-weight:400;font-size:clamp(29px,3.7vw,58px);letter-spacing:-.045em;line-height:1.22}
body.orbit-ui:not(.hero-orbit) .descent-copy .eyebrow{font-size:11px;letter-spacing:.22em}
.logo-intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#03080d;transition:opacity .65s ease,visibility .65s;}
.logo-intro.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.logo-intro-lockup{display:flex;align-items:center;gap:18px;color:#e7efef}
.logo-intro svg{width:70px;height:70px;stroke:currentColor;stroke-width:.8;fill:none;overflow:visible;animation:logo-turn 1.7s cubic-bezier(.2,.7,.2,1) both}
.logo-intro svg *{stroke-dasharray:120;stroke-dashoffset:120;animation:logo-draw 1.4s ease forwards}
.logo-intro svg ellipse{animation-delay:.2s}.logo-intro svg path{animation-delay:.4s}
.logo-intro-wordmark{font-size:clamp(30px,4vw,52px);letter-spacing:-.055em;animation:logo-word 1s .5s both}
.logo-intro-wordmark .wallet{font-weight:300}
.logo-intro-skip{position:absolute;bottom:36px;right:40px;font-size:11px;letter-spacing:.1em;color:#a5b2bd;padding:12px}
@keyframes logo-draw{to{stroke-dashoffset:0}}
@keyframes logo-turn{from{opacity:0;transform:rotate(-35deg) scale(.85)}to{opacity:1;transform:none}}
@keyframes logo-word{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:600px){body.orbit-ui:not(.hero-orbit) .descent-copy{padding:125px 8vw 150px}.logo-intro svg{width:52px;height:52px}.logo-intro-lockup{gap:12px}}
@media(prefers-reduced-motion:reduce){.logo-intro{display:none}}
/* Planet first, logo second, then interface and individually revealed words. */
.copy h1 .hero-word{display:inline-block}
.hero-above{background:none;-webkit-text-fill-color:initial}
.hero-above .hero-word{background:linear-gradient(#f3f6f7 25%,#e5e9ec 45%,#5b687b 82%,#17263a 100%);background-clip:text;-webkit-background-clip:text;color:transparent}
.planet-intro{background:transparent;pointer-events:none}
.planet-intro .logo-intro-skip{pointer-events:auto}
.planet-intro .logo-intro-lockup{filter:drop-shadow(0 3px 18px #000);transform:translateY(-12vh)}
.planet-intro:not(.logo-playing) .logo-intro-lockup{visibility:hidden}
.planet-intro:not(.logo-playing) svg,.planet-intro:not(.logo-playing) svg *, .planet-intro:not(.logo-playing) .logo-intro-wordmark{animation-play-state:paused}
.opening-sequence:not(.opening-reveal) header,.opening-sequence:not(.opening-reveal) footer,.opening-sequence:not(.opening-reveal) .coordinates{opacity:0;pointer-events:none}
.opening-sequence:not(.opening-reveal) .copy .hero-word,.opening-sequence:not(.opening-reveal) .copy .eyebrow,.opening-sequence:not(.opening-reveal) .hero-aside{opacity:0}
.opening-reveal header,.opening-reveal footer,.opening-reveal .coordinates{animation:opening-ui .9s .15s both}
.opening-reveal .copy .eyebrow{animation:opening-ui .8s .35s both}
.opening-reveal .copy .hero-word{animation:opening-word .85s calc(.6s + var(--word)*.28s) both}
.opening-reveal .hero-aside{animation:opening-ui 1s 1.7s both}
@keyframes opening-ui{from{opacity:0}to{opacity:1}}
@keyframes opening-word{from{opacity:0;transform:translateY(22px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@media(prefers-reduced-motion:reduce){.opening-reveal .copy .hero-word,.opening-reveal header,.opening-reveal footer,.opening-reveal .coordinates,.opening-reveal .hero-aside{animation:none}}

.opening-sequence:not(.opening-reveal) .copy .eyebrow{opacity:0!important}

/* Headline begins only at the full-globe scroll checkpoint. */
body:not(.globe-copy-visible) .copy{visibility:hidden;pointer-events:none}
body.globe-copy-visible .copy{visibility:visible}
.globe-copy-visible .copy .hero-word{animation:opening-word .85s calc(var(--word)*.24s) both}
.globe-copy-visible .copy .eyebrow{animation:opening-ui .7s both}
.globe-copy-visible .hero-aside{animation:opening-ui .9s 1s both}
@media(prefers-reduced-motion:reduce){.globe-copy-visible .copy .hero-word,.globe-copy-visible .copy .eyebrow,.globe-copy-visible .hero-aside{animation:none}}

/* Supplied stacked wordmark, revealed over the live planet. */
.planet-intro .supplied-logo{display:block;position:relative;width:min(680px,88vw);aspect-ratio:727/250;transform:translateY(-13vh);filter:drop-shadow(0 5px 28px #0006)}
.supplied-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;will-change:transform,opacity,clip-path}
.logo-playing .opening-earth{animation:earth-lockup-reveal 1.45s cubic-bezier(.16,1,.3,1) both}
.logo-playing .opening-wallet{animation:wallet-lockup-reveal 1.2s .75s cubic-bezier(.16,1,.3,1) both}
.opening-earth{clip-path:inset(0 0 34% 0)}.opening-wallet{clip-path:inset(69% 0 0 0)}
@keyframes earth-lockup-reveal{from{opacity:0;transform:translateY(18px);clip-path:inset(0 100% 34% 0);filter:blur(5px)}to{opacity:1;transform:translateY(0);clip-path:inset(0 0 34% 0);filter:blur(0)}}
@keyframes wallet-lockup-reveal{from{opacity:0;transform:translateY(15px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.opening-sequence:not(.opening-reveal) .credits,.opening-sequence:not(.opening-reveal) .terrain-credit{opacity:0;pointer-events:none}
@media(max-width:600px){.planet-intro .supplied-logo{width:94vw;transform:translateY(-10vh)}}
.opening-sequence:not(.opening-reveal) header,.opening-sequence:not(.opening-reveal) footer,.opening-sequence:not(.opening-reveal) .coordinates,.opening-sequence:not(.opening-reveal) .credits,.opening-sequence:not(.opening-reveal) .terrain-credit{visibility:hidden!important}
@media(max-width:600px){.opening-sequence #stage{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}.opening-sequence:not(.opening-reveal) #stage{transform:none}}

/* Opening is reserved for the supplied logo; UI follows the journey. */
body:not(.descending) footer,body:not(.descending) .coordinates,body:not(.descending) .copy,body:not(.descending) .credits,body:not(.descending) .terrain-credit{visibility:hidden!important;pointer-events:none!important}
body:not(.cloud-ui) header{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
body.cloud-ui header{animation:cloud-header-in 1s ease both}
body.cloud-ui header #sound,body.cloud-ui header .chapter{display:none}
@keyframes cloud-header-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){body.cloud-ui header{padding:20px 18px;flex-wrap:wrap;gap:14px}body.cloud-ui .hero-nav{gap:13px;padding:7px 8px 7px 13px;margin-left:auto}body.cloud-ui .hero-nav a{font-size:9px}body.cloud-ui .hero-nav .hero-contact{padding:7px 10px}}
@media(prefers-reduced-motion:reduce){body.cloud-ui header{animation:none}}
/* Planet scene is visual-only; navigation enters with the clouds. */
#journey .copy,.coordinates{display:none!important}
body:not(.cloud-ui) footer,body:not(.cloud-ui) .credits,body:not(.cloud-ui) .terrain-credit{display:none!important}
.descent-copy,#scroll,footer .progress{display:none!important}
