/* A single pinned journey: mountain, descent, then the material on the bench. */
.journey{height:640svh;background:#09191f}
.mountain-stage{height:100svh;min-height:0}
.scene-anchor{position:absolute;left:0;width:1px;height:1px;pointer-events:none;scroll-margin-top:0}
.descent-anchor{top:calc(18% - 18svh)}
.ski-anchor{top:calc(79% - 79svh)}
.arrival-tone{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,rgba(9,25,31,.8),rgba(9,25,31,.12) 80%);opacity:0}
.journey-end{top:36svh;bottom:auto;max-width:800px;pointer-events:none}
.journey-end h2{color:#fff;font-family:Anton,Impact,sans-serif;font-weight:400;font-size:clamp(60px,7.5vw,108px);line-height:1.06;text-shadow:0 3px 20px #041d2380}
.journey .descent-photo{position:absolute;inset:0;z-index:11;opacity:0;pointer-events:none;background:#09191f}
.journey .descent-photo img{width:100%;height:100%;object-fit:cover;object-position:center;will-change:transform}
.journey .descent-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#09191f 0%,transparent 48%,#09191f55 100%)}
.journey .descent-photo figcaption{z-index:1;bottom:15%;font-family:Anton,Impact,sans-serif;font-weight:400}
/* The transparent ski layer must let hero links receive clicks. Only its ready stage is interactive. */
.journey .ski-section{position:absolute;inset:0;height:100%;background:transparent;z-index:12;isolation:auto;scroll-margin-top:0;pointer-events:none}
.journey .ski-section::before{opacity:var(--bench,0);background:linear-gradient(#09191feb,#09191f),repeating-linear-gradient(0deg,transparent 0 79px,#f1f4f30a 80px)}
.journey .ski-section::after{content:'';position:absolute;inset:108px 0 0;z-index:0;pointer-events:none;opacity:var(--bench,0);background:repeating-linear-gradient(0deg,transparent 0 79px,#f1f4f309 80px),repeating-linear-gradient(90deg,transparent 0 79px,#f1f4f309 80px)}
.journey .ski-stage{position:absolute;inset:0;height:100%;min-height:0;overflow:visible;z-index:1;padding-top:138px;padding-bottom:30px;pointer-events:none;visibility:hidden}
.journey .ski-object-area{height:min(68svh,740px);opacity:0;will-change:transform,opacity;pointer-events:none}
.journey .ski-copy{opacity:0;will-change:transform,opacity}
.journey .ski-section[data-ready=true] .ski-stage{pointer-events:auto}
.journey .ski-controls button{min-height:44px}
.thesis{background:var(--pine);color:var(--snow);padding-top:85px;padding-bottom:85px}
.thesis .label,.thesis-foot{color:#b3c2c8}.thesis .hairline{background:#f1f4f330}
@media(min-width:701px) and (max-width:1100px){.journey .ski-copy h2{font-size:clamp(40px,5.1vw,56px)}.journey .ski-copy .label{margin-bottom:12px}.journey .ski-copy>p{margin-top:16px}.journey .ski-controls{margin-top:16px}.journey .ski-detail{padding-top:18px}.journey .ski-detail h3{font-size:28px}}
@media(max-width:809px){.journey{height:600svh}.journey-end{top:39svh;max-width:calc(100% - 44px)}.journey-end h2{font-size:clamp(46px,11.8vw,82px)}.journey .descent-photo img{object-position:44% 50%}.journey .descent-photo figcaption{bottom:17%;font-size:clamp(38px,10vw,70px)}.journey .ski-section::after{top:84px}}
@media(max-width:700px){.journey .ski-stage{padding:108px 22px 22px}.journey .ski-object-area{height:28svh;min-height:175px}.journey .ski-copy{display:contents}.journey .ski-copy h2,.journey .ski-controls,.journey .ski-detail{opacity:var(--copy,0);transform:translateY(var(--copy-y,24px));will-change:transform,opacity}.journey .ski-copy h2{font-size:clamp(34px,10vw,43px)}.thesis{padding-block:65px}}
/* Same content, in normal reading order, when movement is disabled or space is tight. */
@media(prefers-reduced-motion:reduce),(max-height:620px),(scripting:none){
 .journey{height:auto}.mountain-stage{height:auto;overflow:visible;position:relative;display:flex;flex-direction:column;padding-top:calc(var(--scene-height) + var(--nav-height))}
 .mountain-photo{height:calc(var(--scene-height)*1.35);transform:none!important}.mountain-tone{bottom:auto}.intro-title{visibility:visible!important;opacity:1!important}
 .arrival-tone,.route-caption,.journey-end,.scene-anchor,.route-svg{display:none}
 .journey .descent-photo{position:relative;inset:auto;width:100%;height:70svh;min-height:340px;opacity:1!important}.journey .descent-photo img{transform:none!important}.journey .descent-photo figcaption{opacity:1!important}
 .journey .ski-section{position:relative;inset:auto;height:auto;--bench:1!important;--copy:1!important;--copy-y:0px!important;background:var(--pine);scroll-margin-top:108px}
 .journey .ski-stage{position:relative;inset:auto;visibility:visible!important;height:auto;min-height:750px;padding-top:80px;pointer-events:auto}
 .journey .ski-object-area,.journey .ski-copy{opacity:1!important;transform:none!important}.journey .ski-assembly{transform:rotate(-25deg)!important}
 .journey .ski-copy h2,.journey .ski-controls,.journey .ski-detail{opacity:1!important;transform:none!important}
}
