/* Art-directed screenshot windows. Position is layout, not animation, so
   reduced motion never changes the portion of the real capture on display. */
section[id]{scroll-margin-top:0}
.journey-globe{position:absolute;width:min(850px,100vw);height:auto;left:50%;top:-120px;transform:translateX(-50%);pointer-events:none;opacity:.62}
.globe-grid{fill:none;stroke:var(--champagne);stroke-width:.7;opacity:.25}
.globe-orbit{fill:none;stroke:var(--champagne);stroke-width:1;opacity:.2}
.globe-sphere{transform-box:fill-box;transform-origin:center;animation:globe-arrival 2400ms var(--ease) both}
.globe-traveler{fill:none;stroke:var(--champagne);stroke-width:2;stroke-linecap:round;stroke-dasharray:2 98;stroke-dashoffset:100;opacity:0;animation:world-crossing 2800ms 240ms var(--ease) both}
@keyframes globe-arrival{from{opacity:0;transform:rotate(-28deg) scale(.78)}to{opacity:1;transform:rotate(0) scale(1)}}
@keyframes world-crossing{0%{stroke-dashoffset:100;opacity:0}15%{opacity:.9}85%{opacity:.9}100%{stroke-dashoffset:0;opacity:0}}
.journey-greeting{padding:120px 0 140px}
.journey-greeting-grid{grid-template-columns:.9fr 1.1fr;gap:72px}
.journey-copy{max-width:540px}
.journey-copy h2{font-size:clamp(54px,6.5vw,94px)}
.capture-greeting{width:100%;max-width:620px}
.capture-greeting img{height:auto;aspect-ratio:1320/900;object-position:50% 100%;border-radius:28px}
.journey-capture figcaption{font-size:11px;line-height:1.6;color:var(--smoke)}
.journey-greeting .journey-capture figcaption{color:var(--linen)}
.journey-recommendation{padding:130px 0 160px}
.recommendation-grid{grid-template-columns:.85fr 1.15fr;gap:80px}
.recommendation-copy h2{font-size:clamp(58px,7.2vw,108px)}
.recommendation-copy .eyebrow,.choice-copy .eyebrow,.experiences-heading .eyebrow{color:var(--smoke)}
.recommendation-copy h2 em{color:var(--graphite)}
.quote{color:var(--graphite)!important}
.capture-recommendation{z-index:1;width:100%;max-width:650px}
.capture-recommendation img{height:auto;aspect-ratio:1320/1040;object-position:50% 32.28%;border-radius:30px}
.paris-word{bottom:-105px;right:0;font-size:clamp(180px,25vw,360px);color:var(--linen)}
.journey-choice{padding:110px 0 120px}
.choice-grid{display:block}
.choice-copy{max-width:850px;margin:0 auto 64px;text-align:center}
.choice-copy h2{font-size:clamp(54px,6.3vw,90px)}
.choice-copy>p:not(.eyebrow){margin-inline:auto}
.choice-compare{max-width:1100px;margin:auto;grid-template-columns:1fr 52px 1fr;gap:18px;align-items:center}
.capture-compare img{height:auto;aspect-ratio:1320/1040;border-radius:28px}
.compare-before img{object-position:50% 32.28%}
.compare-after img{object-position:50% 35.23%}
.compare-after{transform:translateY(-20px)}
.compare-arrow{text-align:center;font-size:32px}
.capture-compare figcaption{font-size:11px;text-align:center;margin-top:18px}
.journey-experiences{padding:120px 0 140px}
.experiences-grid{display:block}
.experiences-heading{position:static;max-width:1000px;text-align:center;margin:0 auto 72px}
.experiences-heading h2{font-size:clamp(52px,6.5vw,94px)}
.experiences-heading>p:not(.eyebrow){max-width:580px;margin-inline:auto}
.capture-experiences{width:100%;max-width:1140px;margin-inline:auto}
.experience-sheet{min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;padding-bottom:32px}
.experience-window{position:relative!important;inset:auto!important;transform:none;width:100%;height:auto;aspect-ratio:1100/650;overflow:hidden;border-radius:24px;background:var(--parchment);box-shadow:0 16px 44px rgba(20,17,15,.12);border:1px solid var(--linen)}
.experience-window-top{grid-column:1/-1;width:66%;justify-self:center}
.experience-window-bottom{aspect-ratio:1100/620;margin-top:32px}
.experience-window img{position:absolute;width:120%;max-width:none;height:auto;left:-3.636%;top:0!important;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none;object-fit:initial;transform:none!important}
.experience-window-top img{margin-top:-58.182%}
.experience-window-middle img{margin-top:-120%}
.experience-window-bottom img{margin-top:-181.636%}
.capture-experiences figcaption{max-width:none;text-align:center;margin-top:4px}

/* Three distinct gestures: conversation approaches, destination settles,
   then the experience collection opens. No pinned or scroll-jacked scene. */
.js .capture-greeting,.js .capture-recommendation{transition:opacity 420ms var(--ease),transform 420ms var(--ease)}
.js .capture-greeting.pending{transform:perspective(1200px) translate3d(40px,16px,0) rotateY(-6deg) scale(.97)}
.js .capture-recommendation.pending{transform:translate3d(0,32px,0) rotate(2deg) scale(.96)}
.choice-compare .compare-after{transition:opacity 420ms var(--ease) 120ms,transform 420ms var(--ease) 120ms}
.js .choice-compare.pending .compare-after{opacity:0;transform:translate3d(32px,8px,0) rotate(3deg)}
.experience-window{transition:opacity 420ms var(--ease),transform 420ms var(--ease)}
.experience-window-middle{transition-delay:60ms}.experience-window-bottom{transition-delay:120ms}
.js .capture-experiences.pending .experience-window-top{transform:translateY(24px) scale(.96)}
.js .capture-experiences.pending .experience-window-middle{transform:translate3d(-32px,24px,0) rotate(-3deg)}
.js .capture-experiences.pending .experience-window-bottom{transform:translate3d(32px,24px,0) rotate(3deg)}
.js .journey .scroll-directed.reveal:not(.pending) .experience-window{animation:none;opacity:1;transition:none}
.js .journey .scroll-directed.reveal:not(.pending) .experience-window-top{transform:translateY(calc((1 - var(--journey-open,1)) * 24px)) rotate(calc(-1.2deg - (1 - var(--journey-open,1)) * 4deg)) scale(calc(.94 + var(--journey-open,1) * .06))}
.js .journey .scroll-directed.reveal:not(.pending) .experience-window-middle{transform:translate3d(calc((1 - var(--journey-open,1)) * 32%),calc((1 - var(--journey-open,1)) * -95%),0) rotate(calc(1.5deg + (1 - var(--journey-open,1)) * 8deg)) scale(calc(.86 + var(--journey-open,1) * .14))}
.js .journey .scroll-directed.reveal:not(.pending) .experience-window-bottom{transform:translate3d(calc((1 - var(--journey-open,1)) * -32%),calc((1 - var(--journey-open,1)) * -100%),0) rotate(calc(-.7deg - (1 - var(--journey-open,1)) * 8deg)) scale(calc(.86 + var(--journey-open,1) * .14))}

@media(max-width:980px){
 .journey-greeting-grid,.recommendation-grid{grid-template-columns:1fr;gap:48px}
 .journey-copy,.recommendation-copy{max-width:660px;margin-inline:auto;text-align:center}
 .journey-copy>p:last-child,.recommendation-copy>p:not(.eyebrow),.quote{margin-inline:auto}
 .capture-greeting,.capture-recommendation{justify-self:center;max-width:620px}
 .choice-compare{gap:12px;grid-template-columns:1fr 28px 1fr}
 .paris-word{bottom:-100px}
}
@media(max-width:640px){
 .journey-globe{width:620px;max-width:none;top:-80px;opacity:.4}
 .closing-inner{width:100%;min-width:0}
 .closing h2{font-size:clamp(50px,17vw,74px)}
 .journey-greeting,.journey-recommendation,.journey-choice,.journey-experiences{padding:80px 0 88px}
 .journey .wrap{width:calc(100% - 40px)}
 .journey-copy h2,.recommendation-copy h2,.choice-copy h2,.experiences-heading h2{font-size:clamp(42px,12vw,64px);line-height:1;letter-spacing:-.055em}
 .capture-greeting img{aspect-ratio:1320/940;object-position:50% 100%;border-radius:20px}
 .capture-recommendation img{aspect-ratio:1320/1040;object-position:50% 32.28%;border-radius:20px}
 .journey-capture figcaption{font-size:10px}
 .paris-word{font-size:112px;bottom:-58px;right:4px}
 .choice-copy{margin-bottom:36px}
 .choice-compare{display:block;max-width:450px}
 .compare-before,.compare-arrow{display:none}
 .compare-after{transform:none}
 .capture-compare img{aspect-ratio:1320/1040;border-radius:20px}
 .capture-compare figcaption{font-size:11px}
 .experiences-heading{margin-bottom:40px}
 .experience-sheet{display:grid;grid-template-columns:1fr;gap:20px;padding:0;min-height:0}
 .experience-window,.experience-window-top{grid-column:auto;width:100%;height:auto;aspect-ratio:1100/650;margin:0;border-radius:18px}
 .experience-window-bottom{aspect-ratio:1100/620}
 .experience-window img{width:120%;left:-3.636%;height:auto;transform:none!important}
 .capture-experiences figcaption{margin-top:18px}
 .js .capture-greeting.pending,.js .capture-recommendation.pending{transform:translateY(16px)}
 .js .capture-experiences.pending .experience-window{transform:translateY(8px)}
}
@media(prefers-reduced-motion:reduce){
 .globe-sphere{animation:none;transform:none;opacity:1}.globe-traveler{display:none}
 .js .journey .scroll-directed.reveal:not(.pending) .experience-window{transform:none}
 .js .journey .reveal,.js .journey .reveal.pending{opacity:1;transform:none}
 .choice-compare .compare-after,.js .choice-compare.pending .compare-after,.js .capture-experiences .experience-window{opacity:1;transform:none;transition:none}
}
