/* Magnific + local motion finishing; this file owns the section frame and contact. */
.immersion{background:var(--bg);border-block:1px solid var(--line);padding:110px var(--shell);position:relative;isolation:isolate}
.immersion [hidden]{display:none!important}
.journey-stage{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;align-items:center;position:relative}
.journey-window{grid-column:2;grid-row:1;position:relative;border-radius:24px;overflow:hidden;aspect-ratio:16/9;background:var(--bg);box-shadow:none;border:0}
.journey-poster,.journey-poster img,.journey-last-frame,#journey-film{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:50% 50%}
/* Fade the actual 16:9 media, including its edges inside a portrait viewport. */
.journey-poster img,.journey-last-frame,#journey-film{mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent),linear-gradient(180deg,transparent,#000 10%,#000 88%,transparent);mask-composite:intersect}
@media(max-width:700px){
 .journey-last-frame,#journey-film{mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent),linear-gradient(180deg,transparent,#000 2%,#000 98%,transparent)}
}
.journey-poster{transition:opacity .35s ease}
#journey-film,.journey-last-frame{opacity:0;transition:opacity .35s ease}
.journey-last-frame{pointer-events:none;transform:translateX(0) scale(1);transform-origin:center;transition:opacity .4s ease,transform 1.1s cubic-bezier(.16,1,.3,1)}
.journey-window-label{position:absolute;bottom:0;left:0;right:0;padding:50px 24px 20px;background:none;font-size:9px;letter-spacing:.12em;color:#e4defb}
.journey-window-label span{margin-inline:8px;color:#a398ff}
.journey-preview{grid-column:1;grid-row:1;min-width:0}
.journey-preview h2{font-size:clamp(42px,4.8vw,76px);line-height:1.03;margin:24px 0;letter-spacing:-.058em}
.journey-preview em{font-style:normal;color:#a3c7f5}
.journey-description{max-width:370px;font-size:15px;line-height:1.7;color:#b9b5cc}
.journey-enter{padding:0;background:none;margin-top:28px;min-height:44px}
.journey-cue{display:none}
.journey-arrival{grid-column:1/-1;position:relative;text-align:center;padding:100px 20px 10px;max-width:920px;margin:auto}
.journey-arrival h2{font-size:clamp(42px,5.1vw,76px);line-height:1.06;margin:28px 0;letter-spacing:-.055em}
.journey-arrival h2 span{color:#a3c7f5}
.journey-arrival>p:not(.eyebrow):not(.hours){max-width:600px;font-size:15px;line-height:1.75;margin-inline:auto;color:#c1bdd4}
.journey-arrival .hero-actions{margin-top:32px;gap:16px}
.journey-arrival .hours{font-size:10px;margin-top:30px;color:#a8a2bb}
.journey-replay{background:transparent;margin-top:24px;min-height:44px;padding:4px 12px;color:#cac2e7}
.journey-play{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);background:#f1ecff;color:#181323;border:1px solid #bdb0e9;border-radius:50px;padding:16px 24px;min-height:52px;white-space:nowrap;font-size:13px;box-shadow:0 12px 50px #0008}
.journey-play span{margin-right:10px}
.journey-hud{position:absolute;z-index:6;top:110px;left:var(--shell);right:var(--shell);display:flex;align-items:center;justify-content:space-between;gap:24px}
.journey-wordmark{color:#ded6fa;font-size:10px;letter-spacing:.11em}
.journey-wordmark i{color:#9483c4;font-style:normal;margin:0 12px}
.journey-controls{display:flex;gap:18px;align-items:center}
.journey-controls button{background:#0b0c18c9;border:1px solid #73698e;color:#eee8ff;font-size:11px;padding:10px 16px;min-height:44px;border-radius:30px}
.journey-controls button:hover{background:#34264e}
.journey-chapter{position:absolute;z-index:4;bottom:58px;left:var(--shell);max-width:600px;pointer-events:none;padding:28px 32px;border-left:1px solid #aaa0e8;background:linear-gradient(90deg,#090a12e6,#090a12a8 78%,transparent)}
.journey-chapter-index{color:#c5bcf2;font-size:10px;letter-spacing:.12em}
.journey-chapter p{font-size:clamp(22px,2.3vw,36px);color:#f2eeff;letter-spacing:-.035em;margin-top:10px}
.journey-progress{height:2px;max-width:220px;margin-top:20px;background:#5a536c}
.journey-progress i{display:block;height:100%;width:100%;transform-origin:left;transform:scaleX(0);background:#a3c7f5}
.immersion.is-enhanced{padding:0}
.is-enhanced .journey-stage{--journey-shell:max(var(--shell),calc((100% - 1320px)/2));--journey-gap:clamp(48px,5vw,80px);--journey-column:calc((100% - 2 * var(--journey-shell) - var(--journey-gap))/2);display:block;height:100svh;min-height:680px;overflow:hidden;background:var(--bg)}
.is-enhanced .journey-window{position:absolute;aspect-ratio:auto;will-change:width,height,left,top,border-radius;z-index:0;margin:0;box-shadow:none;container-type:size}
.is-enhanced .journey-poster img,.is-enhanced #journey-film,.is-enhanced .journey-last-frame{inset:auto;left:50%;top:50%;width:min(100cqw,calc(100cqh * 16 / 9));height:auto;aspect-ratio:16/9;translate:-50% -50%}
@media(max-width:700px){
 /* Keep the poster and film on the same axis as the frame opens. On a short
    screen, the pinned stage can be taller than the visible viewport. */
 .immersion.is-enhanced :is(.journey-poster img,#journey-film){top:min(50%,50svh)}
}
.is-enhanced .journey-preview{position:absolute;z-index:2;left:var(--journey-shell);top:50%;transform:translateY(-50%);width:var(--journey-column);max-width:none;will-change:opacity,transform}
.is-enhanced .journey-preview h2{font-size:clamp(46px,4.9vw,80px)}
.is-enhanced .journey-cue{display:flex;position:absolute;bottom:45px;left:var(--shell);right:var(--shell);justify-content:space-between;font-size:11px;color:#d0c5ee;letter-spacing:.02em;pointer-events:none}
.journey-cue i{font-size:23px;font-style:normal}
.is-enhanced .journey-arrival{position:absolute;z-index:3;inset:0;max-width:none;padding:145px var(--shell) 75px;display:flex;justify-content:center;align-items:center;flex-direction:column;background:linear-gradient(90deg,#090a1299,#090a1233 70%);animation:journey-arrive .7s ease both}
.is-enhanced .journey-arrival h2{max-width:1000px}
.is-enhanced .journey-arrival>p:not(.eyebrow):not(.hours){max-width:620px}
.immersion[data-state=playing] #journey-film,.immersion[data-state=paused] #journey-film{opacity:1}
.immersion[data-state=playing] .journey-poster,.immersion[data-state=paused] .journey-poster{opacity:0}
.immersion[data-state=arrived] .journey-last-frame{opacity:1;transform:none}
.immersion[data-state=arrived] .journey-poster,.immersion[data-state=arrived] #journey-film{opacity:0}
.immersion[data-state=arrived] .journey-window{border-color:transparent}
@keyframes journey-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes journey-mobile-arrive{from{opacity:0}to{opacity:1}}
@media(max-width:1000px) and (prefers-reduced-motion:no-preference){
 .immersion.is-enhanced #journey-film{transition-duration:.52s}
 .immersion.is-enhanced[data-state=playing][data-fading] #journey-film{opacity:0}
}
@media(max-width:1000px){
 .immersion{padding:80px var(--shell)}.journey-stage{grid-template-columns:1fr;gap:40px}.journey-preview{grid-column:1;grid-row:1}.journey-window{grid-column:1;grid-row:2;aspect-ratio:16/10}.journey-description{max-width:580px}.journey-preview h2 br:nth-child(2){display:none}.journey-arrival{padding-top:50px}
 .is-enhanced .journey-stage{min-height:760px}.is-enhanced .journey-preview{left:7%;top:13%;transform:none;width:86%;max-width:none}.is-enhanced .journey-preview h2{font-size:clamp(36px,5.5vw,56px);margin:20px 0}.is-enhanced .journey-preview h2 br{display:none}.is-enhanced .journey-description{max-width:540px;font-size:14px}.journey-enter{margin-top:18px}.is-enhanced .journey-cue{left:7%;right:7%;bottom:35px}.journey-hud{top:100px;left:7%;right:7%}.journey-wordmark{font-size:8px;max-width:200px;line-height:1.8}.journey-wordmark i{margin:0 5px}.journey-controls{gap:8px}.journey-controls button{font-size:10px;padding:9px 12px}.journey-chapter{bottom:65px;left:7%;max-width:86%;padding:20px 24px}.journey-chapter p{font-size:28px}.journey-arrival h2{font-size:52px}.journey-arrival>p:not(.eyebrow):not(.hours){font-size:14px}
}
@media(max-width:600px){
 .journey-preview h2{font-size:42px}.journey-description{font-size:13px}.is-enhanced .journey-stage{min-height:680px}.is-enhanced .journey-preview{top:13%;}.is-enhanced .journey-preview h2{font-size:38px;max-width:340px}.is-enhanced .journey-preview h2 br{display:initial}.is-enhanced .journey-description{font-size:12px;line-height:1.65;max-width:320px}.journey-preview .eyebrow{font-size:9px}.journey-enter{font-size:11px;margin-top:15px}.journey-window-label{font-size:7px;padding:32px 16px 16px}.journey-window-label span{margin-inline:4px}.journey-hud{top:86px;gap:14px}.journey-wordmark{font-size:7px;max-width:130px}.journey-controls{gap:7px}.journey-controls button{font-size:9px;padding:8px 10px}.journey-chapter{bottom:42px;padding:20px}.journey-chapter p{font-size:25px;max-width:270px}.journey-arrival h2{font-size:39px}.journey-arrival>p:not(.eyebrow):not(.hours){font-size:12px}.journey-arrival .hero-actions{flex-direction:column;gap:14px}.journey-arrival .hours{font-size:8px}.is-enhanced .journey-arrival{padding:135px 24px 55px}.journey-arrival .button{min-height:48px;font-size:12px}.journey-replay{font-size:11px;margin-top:18px}.journey-play{font-size:12px;padding:14px 20px;min-height:48px}.journey-progress{max-width:160px}
}
.immersion:not(.is-enhanced)[data-state=arrived] .journey-last-frame{transform:none}
.is-enhanced .journey-arrival{text-align:left;align-items:flex-start;background:linear-gradient(90deg,#090a12ed 0%,#090a12a6 48%,#090a1226 100%)}
.is-enhanced .journey-arrival h2{max-width:850px;width:70%;font-size:clamp(42px,4.8vw,76px)}
.is-enhanced .journey-arrival>p:not(.eyebrow):not(.hours){margin-inline:0;max-width:590px}
.is-enhanced .journey-arrival .hero-actions{justify-content:flex-start}
@media(max-width:1000px){.immersion[data-state=arrived] .journey-last-frame{transform:none}.is-enhanced .journey-arrival{align-items:center;text-align:center;background:#090a12a6}.is-enhanced .journey-arrival h2{width:100%;font-size:clamp(39px,6vw,58px)}.is-enhanced .journey-arrival .hero-actions{justify-content:center}}
@media(prefers-reduced-motion:reduce){.journey-arrival{animation:none}.journey-poster,#journey-film,.journey-last-frame{transition:none}}
