.vertical-scene{position:relative;min-height:100svh;overflow:hidden;background:#eee4d5;isolation:isolate;display:flex;align-items:center;padding:100px 6.2vw;color:#fff}.vertical-photo{position:absolute;inset:-6% 0;z-index:-3;will-change:transform}.vertical-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:65% center}.vertical-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#151410df,#1514108c 42%,#15141015 85%)}.vertical-copy{max-width:490px;width:40%;position:relative}.vertical-copy h2{font-size:clamp(2.5rem,4.8vw,5rem);line-height:1.08;margin:24px 0}.vertical-copy .lead{color:#f2eadd;font-size:1.1rem;line-height:1.6;max-width:410px}.vertical-copy .eyebrow{color:#efe3ce}.vertical-copy .button{background:#efe5d5;color:#29251e;border-color:#efe5d5}.vertical-number{position:absolute;bottom:34px;left:6.2vw;font-size:.7rem;letter-spacing:.12em}.vertical-scene.scene-0{min-height:115svh}.scene-0 .vertical-photo{inset:-4% 0;transform-origin:center;overflow:hidden}.scene-0 .vertical-photo img{object-position:center}.scene-3 .vertical-photo img{object-position:center 30%}html[dir=rtl] .vertical-copy{direction:rtl;text-align:right}
@media(max-width:700px){.vertical-scene{min-height:100svh;padding:80px 25px 105px;align-items:flex-end}.vertical-copy{width:100%;max-width:none}.vertical-copy h2{font-size:clamp(2.25rem,8.5vw,3.2rem);margin:16px 0}.vertical-copy .lead{font-size:1rem;line-height:1.5}.vertical-shade{background:linear-gradient(0deg,#151410ed,#151410b0 40%,#15141010 80%)}.vertical-number{bottom:32px;left:25px}.vertical-photo img{object-position:60% center}}
@media(prefers-reduced-motion:reduce){.vertical-photo{transform:none!important;border-radius:0!important}.vertical-copy{transform:none!important;opacity:1!important}}
/* Shared architectural openings and a ribbon connect the vertical scenes. */
.vertical-journey{background:#eee4d5;position:relative;isolation:isolate}.vertical-scene{overflow:visible;background:transparent;min-height:110svh}.vertical-scene+.vertical-scene{margin-top:-12svh}.vertical-photo{inset:0;overflow:hidden;border:1px solid #c5a87c;box-shadow:0 -12px 35px #46352512;transform:none!important}.vertical-photo img{height:110%;will-change:transform}.vertical-shade{overflow:hidden}.section-bridge{position:absolute;top:-150px;right:0;width:100%;height:300px;z-index:2;pointer-events:none;overflow:visible;filter:drop-shadow(0 4px 5px #775c3c44)}.section-bridge path{fill:none;stroke:#b79b72;stroke-width:2.4;vector-effect:non-scaling-stroke;stroke-linecap:round}.scene-0 .section-bridge{display:none}.vertical-copy{z-index:3}.vertical-number{z-index:3}.scene-0{z-index:1}.scene-1{z-index:2}.scene-2{z-index:3}.scene-3{z-index:4}.scene-4{z-index:5}
@media(min-width:1100px){.scene-0 .vertical-photo img,.scene-3 .vertical-photo img,.scene-4 .vertical-photo img{object-fit:contain;object-position:right center;width:100%;height:100%;padding-left:40%;background:#b4a993}.scene-0 .vertical-photo,.scene-3 .vertical-photo,.scene-4 .vertical-photo{background:#b4a993}.vertical-scene.scene-0{min-height:110svh}}
@media(max-width:700px){.vertical-scene{min-height:110svh}.section-bridge{top:-110px;height:220px}.section-bridge path{stroke-width:1.6}}
@media(prefers-reduced-motion:reduce){.vertical-scene+.vertical-scene{margin-top:0}.section-bridge{display:none}.vertical-photo img{transform:none!important}.vertical-shade{border-radius:0!important}}
/* Camera travel, staggered typography and moving architectural light. */
.vertical-scene{--light-opacity:0;--orbit-opacity:0}
.vertical-copy>*,.section-bridge{will-change:transform,opacity}
.vertical-copy:focus-within>*{opacity:1!important;transform:none!important}
.vertical-photo:after{content:"";position:absolute;inset:-20%;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#fff8df 49%,transparent 63%);transform:translateX(var(--light-x,110%));opacity:var(--light-opacity,0);mix-blend-mode:soft-light}
.vertical-scene:after{content:"";position:absolute;right:8%;top:18%;width:clamp(180px,32vw,520px);aspect-ratio:1;border:1px solid #e5ca9c;border-radius:48% 48% 12% 12%;pointer-events:none;z-index:1;opacity:var(--orbit-opacity,0);transform:translateY(var(--orbit-y,0px)) rotate(var(--orbit-turn,0deg));box-shadow:0 0 0 18px #e5ca9c08,0 0 0 38px #e5ca9c06}
.section-bridge{height:440px;top:-190px}.section-bridge path{stroke:#dcc197;stroke-width:3}
.scene-0 .section-bridge{display:block}
.vertical-copy .button{transition:background .25s,color .25s,box-shadow .25s}
.vertical-copy .button:hover{background:#fff5e5;box-shadow:0 8px 30px #0003}
@media(max-width:700px){.section-bridge{height:300px;top:-135px}.vertical-scene:after{right:10%;top:12%;width:60vw}.vertical-copy>*{will-change:auto}}
@media(prefers-reduced-motion:reduce){.vertical-copy>*,.section-bridge{transform:none!important;opacity:1!important}.vertical-scene:after,.vertical-photo:after{display:none}.vertical-copy .button{transition:none}}
/* Kinetic typography: word reveals plus independent scroll depth. */
.kinetic-mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .025em .13em;margin:0 -.025em -.13em;perspective:700px}
.kinetic-word{display:inline-block;transform-origin:50% 100%;will-change:transform,opacity}
.vertical-copy h2{translate:0 var(--title-travel,0px)}
.vertical-copy .lead,.vertical-copy .button{translate:0 var(--body-travel,0px)}
.vertical-copy .eyebrow{translate:0 var(--label-travel,0px)}
.vertical-copy .kinetic-word{opacity:0;transform:translateY(115%) rotateX(-65deg) rotateZ(3deg);transition:transform .95s cubic-bezier(.16,1,.3,1),opacity .65s;transition-delay:var(--word-delay)}
.vertical-copy.text-ready .kinetic-word{opacity:1;transform:translateY(0) rotateX(0) rotateZ(0)}
.vertical-copy .eyebrow,.vertical-copy .lead,.vertical-copy .button{opacity:0;transform:translateY(55px);transition:transform .85s cubic-bezier(.16,1,.3,1),opacity .7s}
.vertical-copy .eyebrow{transition-delay:0s}.vertical-copy .lead{transition-delay:.32s}.vertical-copy .button{transition-delay:.48s}
.vertical-copy.text-ready .eyebrow,.vertical-copy.text-ready .lead,.vertical-copy.text-ready .button{opacity:1;transform:translateY(0)}
.vertical-copy .eyebrow:before{content:"";display:inline-block;vertical-align:middle;width:0;height:1px;background:#dcc197;margin-inline-end:0;transition:width 1s cubic-bezier(.16,1,.3,1),margin 1s}
.vertical-copy.text-ready .eyebrow:before{width:42px;margin-inline-end:14px}
.vertical-scene:before{content:attr(data-chapter);position:absolute;right:6%;top:40%;font-family:Georgia,serif;font-size:clamp(180px,27vw,420px);line-height:1;letter-spacing:-.08em;color:transparent;-webkit-text-stroke:1px #efe3ce28;pointer-events:none;z-index:1;transform:translateY(var(--chapter-y,0px))}
.vertical-copy:focus-within .kinetic-word{transform:none!important;opacity:1!important}
.home-film .motion-copy:not([hidden]) .kinetic-word{animation:word-arrive 1s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--word-delay)}
.home-film .motion-copy:not([hidden]) .lead{animation:copy-arrive .9s .32s cubic-bezier(.16,1,.3,1) both}
.home-film .motion-copy:not([hidden]) .button{animation:copy-arrive .9s .48s cubic-bezier(.16,1,.3,1) both}
@keyframes word-arrive{from{opacity:0;transform:translateY(115%) rotateX(-65deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}
@keyframes copy-arrive{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.vertical-scene:before{top:27%;right:9%;font-size:48vw}.vertical-copy h2{translate:0 calc(var(--title-travel,0px)*.5)}.vertical-copy .lead,.vertical-copy .button{translate:0 calc(var(--body-travel,0px)*.5)}}
@media(prefers-reduced-motion:reduce){.kinetic-word,.vertical-copy>*,.home-film .motion-copy>*{animation:none!important;transition:none!important;opacity:1!important;transform:none!important;translate:none!important}.vertical-scene:before{display:none}.vertical-copy .eyebrow:before{width:42px;margin-inline-end:14px}}
.vertical-journey{overflow-x:clip}
/* One continuous, scroll-drawn gold thread connects the complete vertical journey. */
.section-bridge{display:none!important}
.journey-thread{position:absolute;top:-180px;left:0;width:100%;height:calc(100% + 180px);z-index:6;pointer-events:none;overflow:visible}
.journey-thread path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.thread-shadow{stroke:#24190e;stroke-width:13;opacity:.22}
.thread-guide{stroke:#ecd4a5;stroke-width:3;opacity:.32}
.thread-gold{stroke:#d5a65c;stroke-width:8;filter:drop-shadow(0 2px 3px #26190dbb)}
.thread-edge{stroke:#fff0c5;stroke-width:2.5}
.thread-comet{stroke:#fffaf0;stroke-width:5;filter:drop-shadow(0 0 7px #ffe9a5)}
.thread-tip ellipse{vector-effect:non-scaling-stroke}
.tip-core{fill:#fff7df;stroke:#d4ab64;stroke-width:2;filter:drop-shadow(0 0 9px #ffdc88)}
.tip-halo{fill:#f5d99822;stroke:#ffe8b1;stroke-width:1.5;opacity:.8}
.thread-running .tip-halo{animation:thread-pulse 1.7s ease-in-out infinite}
@keyframes thread-pulse{50%{opacity:.25}}
@media(max-width:700px){.thread-gold{stroke-width:5}.thread-shadow{stroke-width:10}.thread-edge{stroke-width:1.5}.thread-comet{stroke-width:3}}
@media(prefers-reduced-motion:reduce){.journey-thread{display:none}}
/* Dash distances follow the same SVG geometry as the moving tip. */
.journey-thread path{vector-effect:none}
.thread-shadow{stroke-width:calc(13px * var(--thread-scale,1))}
.thread-guide{stroke-width:calc(3px * var(--thread-scale,1))}
.thread-gold{stroke-width:calc(8px * var(--thread-scale,1))}
.thread-edge{stroke-width:calc(2.5px * var(--thread-scale,1))}
.thread-comet{stroke-width:calc(5px * var(--thread-scale,1))}
@media(max-width:700px){.thread-shadow{stroke-width:calc(10px * var(--thread-scale,1))}.thread-gold{stroke-width:calc(5px * var(--thread-scale,1))}.thread-edge{stroke-width:calc(1.5px * var(--thread-scale,1))}.thread-comet{stroke-width:calc(3px * var(--thread-scale,1))}}
