html,body{height:100%;overflow:hidden;overscroll-behavior:none}.journey-page{background:#f0f3f3}.stage{position:fixed;inset:0;height:100svh;overflow:hidden;isolation:isolate;touch-action:pan-x pinch-zoom}.media-window{position:absolute;inset:0;overflow:hidden;background:#ced9df}.media-window>img,.media-window>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}.film{z-index:1;opacity:0;transition:opacity .12s linear}#poster{z-index:0;transition:opacity .15s}#motion-fallback{z-index:3;opacity:0}#freeze{z-index:4;opacity:0;transition:opacity .12s linear}.film::-webkit-media-controls,.film::-webkit-media-controls-start-playback-button{display:none!important;opacity:0!important}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(253,250,243,.88),rgba(253,250,243,.3) 36%,transparent 65%);z-index:5;pointer-events:none;opacity:0;transition:opacity .24s ease-out}.hero-copy,.scene-copy{position:absolute;z-index:7;left:5.5vw;transition:opacity .18s ease-out,transform .18s ease-out}.hero-copy{top:26%;max-width:760px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease-out,visibility 0s linear .24s}.hero-copy h1{font-family:var(--serif);font-weight:400;text-transform:uppercase;font-size:clamp(52px,6.2vw,108px);letter-spacing:-.035em;line-height:1.03;margin:0 0 25px}.gold-line{width:65px;height:3px;background:var(--gold);margin:28px 0}.hero-copy p{font-size:clamp(14px,1.14vw,19px);letter-spacing:.3em;text-transform:uppercase;line-height:1.75;margin:0 0 33px}.hero-copy p span{opacity:.76}.outline-button{border-radius:999px;min-height:52px;background:rgba(248,247,243,.2)}.scene-copy{bottom:17%;max-width:430px;opacity:0;visibility:hidden;pointer-events:none;padding:25px 30px 25px 0}.scene-copy:before{content:'';position:absolute;z-index:-1;inset:-35px -55px -35px -6vw;background:radial-gradient(ellipse at 32% 58%,rgba(252,250,245,.93),rgba(252,250,245,.76) 34%,transparent 74%)}.scene-copy>span{font-size:12px;letter-spacing:.16em;line-height:1.7;text-transform:uppercase;color:#81633d}.scene-copy h2{font-family:var(--serif);font-size:clamp(38px,4.1vw,66px);font-weight:400;letter-spacing:-.025em;line-height:1.02;margin:15px 0}.scene-copy p{font-size:16px;line-height:1.6;max-width:290px;margin:0;color:#345064}.journey-bottom{position:absolute;z-index:9;bottom:32px;left:5.5vw;right:5.5vw;display:flex;align-items:center;gap:16px}.travel{display:flex;align-items:center;gap:13px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;padding:10px 16px;border-radius:999px;background:rgba(248,247,243,.8);box-shadow:0 4px 20px #0829400d}.scroll-icon{width:17px;height:27px;border:1px solid currentColor;border-radius:12px;display:block;position:relative;flex-shrink:0}.scroll-icon i{height:5px;width:2px;background:currentColor;position:absolute;left:6.5px;top:5px;animation:scroll 2s ease-in-out infinite}@keyframes scroll{0%,100%{transform:translateY(0);opacity:.8}60%{transform:translateY(8px);opacity:.2}}.replay-button{margin-left:auto;width:42px;height:42px;border-radius:50%;border:1px solid rgba(8,41,64,.2);background:rgba(248,247,243,.9);font-size:24px}.replay-button:disabled{opacity:.4;cursor:default}#media-status{font-size:12px;padding:10px 16px;border-radius:18px;background:var(--paper);opacity:0;line-height:1.5}#media-status.show{opacity:1}.chapters{position:absolute;right:2.4vw;top:50%;transform:translateY(-50%);z-index:9;display:flex;flex-direction:column;gap:9px;padding:13px 10px;background:rgba(248,247,243,.89);border:1px solid rgba(8,41,64,.12);border-radius:40px;box-shadow:0 8px 30px #08294012}.chapters button{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid transparent;transition:background .25s,color .25s}.chapters span{font-size:14px;font-weight:500;letter-spacing:.02em}.chapters i{display:none}.chapters b{position:absolute;right:58px;font-size:12px;font-weight:400;letter-spacing:.03em;white-space:nowrap;background:var(--paper);padding:10px 15px;border-radius:999px;opacity:0;pointer-events:none;transform:translateX(5px);transition:opacity .2s,transform .2s}.chapters button:hover b,.chapters button:focus-visible b{opacity:1;transform:none}.chapters button.active{background:var(--navy);color:white;box-shadow:0 3px 10px #08294022}.chapters button:not(.active):hover{border-color:var(--gold);background:#eae4da}.chapters button:disabled{cursor:default}.film-progress{position:absolute;z-index:10;bottom:0;left:0;right:0;height:3px;background:#ffffff44}.film-progress i{display:block;width:0;height:3px;background:var(--gold);border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}#header.subtle{background:linear-gradient(rgba(248,247,243,.82),rgba(248,247,243,.35) 70%,transparent)}
@media(max-width:900px) and (orientation:portrait){
 .stage{background:linear-gradient(165deg,#f7f7f3 5%,#e9f0f3 56%,#f8f7f3 88%)}#header,#header.subtle{background:transparent}
 .media-window{inset:25svh 12px auto;height:43svh;max-height:480px;border-radius:24px;box-shadow:0 18px 50px #08294013}.media-window>img,.media-window>video{object-position:50% center}
 .shade{display:none}.hero-copy{left:6vw;right:6vw;top:12svh;max-width:none}.hero-copy h1{font-size:clamp(34px,9.5vw,58px);line-height:1.04;letter-spacing:-.035em;margin:0}.hero-copy .gold-line,.hero-copy p{display:none}.hero-copy .outline-button{position:absolute;top:62svh;left:0;font-size:12px;min-height:48px;padding:14px 23px;background:rgba(248,247,243,.65)}
 .scene-copy{left:6vw;right:6vw;top:70svh;bottom:auto;padding:0;max-width:none}.scene-copy:before{display:none}.scene-copy>span{font-size:12px;letter-spacing:.11em}.scene-copy h2{font-size:clamp(27px,7vw,40px);line-height:1.04;margin:8px 0}.scene-copy h2 br{display:none}.scene-copy p{font-size:14px;line-height:1.45;max-width:340px}
 .chapters{left:50%;right:auto;top:auto;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);flex-direction:row;gap:5px;padding:7px;border-radius:999px;max-width:calc(100% - 24px);box-shadow:0 7px 24px #08294014}.chapters button{width:39px;height:39px;flex-shrink:0}.chapters b{display:none}.chapters span{font-size:13px}
 .journey-bottom{left:6vw;right:6vw;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 67px);gap:6px}.travel{background:transparent;box-shadow:none;font-size:12px;letter-spacing:.06em;padding:0;gap:9px}.scroll-icon{width:14px;height:23px}.scroll-icon i{left:5px}.replay-button{width:34px;height:34px;font-size:21px;background:#ffffff66}#media-status{position:absolute;left:0;right:0;bottom:42px;max-width:100%}
 .film-progress{height:2px}.film-progress i{height:2px}
}
@media(max-width:380px) and (orientation:portrait){.chapters button{width:35px;height:35px}.chapters{gap:4px}.scene-copy p{font-size:13px}.scene-copy h2{font-size:27px}.scene-copy>span{font-size:11px}.media-window{height:41svh;top:26svh}.hero-copy{top:13svh}.scene-copy{top:69svh}}
@media(max-height:650px) and (orientation:portrait){.hero-copy{top:16svh}.media-window{top:31svh;height:32svh}.scene-copy{top:65svh}.scene-copy p{display:none}.hero-copy .outline-button{top:52svh}.journey-bottom{bottom:73px}.chapters{bottom:10px}.chapters button{width:33px;height:33px}}
@media(max-height:540px) and (orientation:landscape){#header{height:75px}.wordmark{width:175px}.hero-copy{top:25%}.hero-copy h1{font-size:40px}.hero-copy p,.gold-line{display:none}.hero-copy .outline-button{margin-top:18px;min-height:40px;padding:10px 20px}.scene-copy{bottom:19%;padding:10px 0}.scene-copy h2{font-size:33px}.scene-copy p{font-size:14px}.chapters{gap:2px;padding:7px;right:18px}.chapters button{width:31px;height:31px}.journey-bottom{bottom:17px}.travel{padding:6px 12px;font-size:11px}.replay-button{width:34px;height:34px}.chapters b{display:none}}
@media(prefers-reduced-motion:reduce){.scroll-icon i{animation:none}}
/* A single state controls the opening copy from first paint through playback.
   Delayed visibility lets opacity finish; media callbacks cannot restart it. */
.stage[data-scene="0"] .hero-copy{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.stage[data-scene="0"] .shade{opacity:.78}
/* Blend the matching enhanced opening/approach frames without delaying navigation. */
.stage[data-scene="1"] .film,.stage[data-scene="1"] #freeze,.stage[data-scene="1"] #poster{transition-duration:.18s}
/* Keep this matching-frame handoff opaque: simultaneous alpha fades exposed
   the light background and produced a flash at the start of the lounge move. */
.stage[data-transition-clip="4"] .film,.stage[data-transition-clip="4"] #freeze,.stage[data-transition-clip="4"] #poster{transition:none}
.stage[data-transition-clip="2"] .film,.stage[data-transition-clip="2"] #freeze,.stage[data-transition-clip="2"] #poster{transition:none}

/* Begin the caption on the last 200 ms; it is fully present when the move settles. */
.scene-copy{transform:translateY(10px)}
.stage:not([data-scene="0"]):not(.is-loading):not(.is-moving) .scene-copy,
.stage:not([data-scene="0"]):not(.is-loading).is-arriving .scene-copy{opacity:1;visibility:visible;transform:none}
@media(prefers-reduced-motion:reduce){.hero-copy,.scene-copy,.shade{transition:none}}
