/* A single spatial stage beneath all four chapters. */
.scene-journey,.scene-journey body{height:100%;overflow:hidden;overscroll-behavior:none}
.scene-journey main{touch-action:pinch-zoom}
.scene-journey footer{position:fixed;bottom:18px;left:24px;right:140px;z-index:8;background:none;padding:0;border:0;min-height:0;gap:18px;justify-content:flex-start;opacity:0;visibility:hidden;transition:opacity .25s}
.scene-journey footer .brand,.scene-journey footer p{display:none}
.scene-journey footer button{margin:0;padding:0}
.scene-journey[data-journey-end="true"] footer{opacity:1;visibility:visible}
.scene-controls{position:absolute;z-index:9;right:22px;bottom:20px;display:flex;gap:6px}
.scene-controls button{width:44px;height:44px;border-radius:50%;background:#faf6e8d9;color:#30483e;border:1px solid #ffffff65;font-size:25px;line-height:1;transition:background .18s,opacity .18s,transform .18s}
.scene-controls button:hover{background:#fff9eb;transform:translateY(-1px)}
.scene-controls button:active{transform:scale(.94)}
.scene-controls button:disabled{opacity:.3;cursor:default;transform:none}
@media(max-width:700px){.scene-controls{right:14px;bottom:calc(12px + env(safe-area-inset-bottom))}.scene-journey footer{left:18px;right:120px;bottom:calc(25px + env(safe-area-inset-bottom));gap:12px;font-size:11px}.scene-journey footer button{font-size:12px}}
.continuous-journey main{--journey-height:100dvh;height:var(--journey-height)!important;background:radial-gradient(ellipse at 74% 70%,#d6dac5,#f4f1e6 63%)}
.continuous-journey .nav{position:fixed}
.continuous-journey .scene,.continuous-journey .scene-frame{background:none;isolation:auto;overflow:visible;pointer-events:none}
.continuous-journey .scene{z-index:3;will-change:opacity}
.continuous-journey .scene .world,.continuous-journey .river-media,.continuous-journey .hero-shade,.continuous-journey .river-shade,.continuous-journey .night-shade,.continuous-journey .sanctuary-shade,.continuous-journey .night-character,.continuous-journey .sunlight,.continuous-journey .lantern-glow,.continuous-journey .foreground,.continuous-journey .air-leaves{display:none}
.continuous-journey .scene button,.continuous-journey .scene a{pointer-events:auto}
/* Before the animation modules arrive, show exactly the final first scene. */
.journey-boot .scene:not(.hero){visibility:hidden;opacity:0}
.journey-boot .hero .world{display:block;transform:none;will-change:auto}
.journey-boot .hero-shade{display:block;background:linear-gradient(90deg,#f6f0ddc4,#f6f0dd55 35%,transparent 65%)}
.journey-stage{position:absolute;inset:0;z-index:1;isolation:isolate;overflow:hidden;clip-path:inset(0 round 0px);transform-origin:50% 50%;will-change:transform}
.journey-landscape{position:absolute;inset:0;transform-origin:50% 60%;will-change:transform}
.journey-landscape .world{display:block;transform:none;will-change:auto}
.journey-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.journey-film.ready{opacity:1}
.journey-shade{position:absolute;inset:0;background:linear-gradient(90deg,#f6f0ddc4,#f6f0dd55 35%,transparent 65%);pointer-events:none}
.journey-dusk{position:absolute;inset:0;background:linear-gradient(100deg,#122f3ae6,#183b4499 60%,#142c35bb);opacity:0;mix-blend-mode:multiply}
.journey-canopy{position:absolute;inset:0;background:linear-gradient(90deg,#12382c66,transparent 65%);opacity:0;pointer-events:none}
.journey-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 80% 45%,#f6da8d33,transparent 48%);opacity:0;mix-blend-mode:screen}
.continuous-journey .hero-character{filter:contrast(1.055) saturate(1.055);transform-origin:50% 88%;will-change:transform}
.continuous-journey .river-copy{color:#fff7df;text-shadow:0 2px 24px #18382850}
.continuous-journey .scene-whisper{display:none}
.continuous-journey .night-copy{color:#fff5df;text-shadow:0 2px 25px #142e3940}
.continuous-journey .phone-stage{transform:translate(0);rotate:0deg}
.continuous-journey .phone-shadow{display:none}
.continuous-journey .phone{box-shadow:0 12px 40px #253e242c,0 0 0 2px #8f8e7d}
@media(max-width:700px){
 .continuous-journey main{
  --hero-copy-top:max(88px,calc(var(--journey-height)*.115));
  --hero-font:clamp(42px,12.8vw,64px);--hero-button-gap:20px;--hero-button-height:50px;
  --hello-bottom:calc(56px + env(safe-area-inset-bottom));--hello-height:45px;
  --hero-copy-bottom:calc(var(--hero-copy-top) + var(--hero-font)*2.02 + var(--hero-button-gap) + var(--hero-button-height));
  /* Account for the rig's transparent margins; keep its visible feet above Hello. */
  --hero-miro-height:max(100px,min(calc((var(--journey-height) - var(--hello-bottom) - var(--hello-height) - 26px - var(--hero-copy-bottom))/.8),145vw));
  --hero-miro-bottom:calc(var(--hello-bottom) + var(--hello-height) + 12px - var(--hero-miro-height)*.076);
 }
 .scene-journey .phone-stage{height:min(60svh,calc(var(--journey-height) - 320px));bottom:calc(76px + env(safe-area-inset-bottom))}
 .continuous-journey .hero-copy{top:var(--hero-copy-top);left:18px;right:18px;display:flex;flex-direction:column;align-items:center}
 .continuous-journey .hero-copy h1{font-size:var(--hero-font);line-height:1.01}
 .continuous-journey .hero-copy .primary{margin-top:var(--hero-button-gap);height:var(--hero-button-height);min-height:var(--hero-button-height);padding:12px 23px}
 .continuous-journey .hero-character{height:var(--hero-miro-height);max-height:none;bottom:var(--hero-miro-bottom);left:0;width:100%}
 .continuous-journey .hello{bottom:var(--hello-bottom);height:var(--hello-height);min-height:var(--hello-height)}
 .continuous-journey .scroll-invite{bottom:calc(8px + env(safe-area-inset-bottom));height:40px;width:56px;left:50%;right:auto;margin-left:-28px}
 .continuous-journey .nav{top:env(safe-area-inset-top);left:22px;right:22px}
 .journey-shade,.journey-boot .hero-shade{background:linear-gradient(180deg,#f6f0dde0, #f6f0dd70 26%,transparent 53%)}
 .journey-canopy{background:linear-gradient(180deg,#13382ca6,transparent 57%)}
 .continuous-journey .phone-stage{transform:translateX(-50%)}
 .continuous-journey .river-copy,.continuous-journey .night-copy{left:0;right:0;top:13%;text-align:center}
 .continuous-journey .river-copy h2,.continuous-journey .night-copy h2{font-size:clamp(62px,16vw,100px)}
}
@media(max-width:700px) and (max-height:620px){
 .continuous-journey main{--hero-copy-top:max(78px,calc(env(safe-area-inset-top) + 68px));--hero-font:clamp(40px,12.4vw,51px);--hero-button-gap:15px;--hero-button-height:46px;--hello-bottom:calc(50px + env(safe-area-inset-bottom));--hello-height:42px}
 .continuous-journey .nav .brand{height:65px;width:94px}
 .continuous-journey .scroll-invite{bottom:calc(4px + env(safe-area-inset-bottom))}
}
