/* A bounded scroll track advances the scene without moving the composition. */
html.in-journey,html.in-journey body{overscroll-behavior:none;overflow-x:clip}
#landing-journey,.journey-static #landing-journey{height:800svh;background:#000}
.landing-pin{height:100svh;position:sticky;top:0;overflow:hidden;background:#000}
.in-journey #intro{position:absolute;inset:0;height:100%;min-height:0;padding:0;margin:0;overflow:hidden;z-index:3}
.in-journey #intro header{position:absolute;top:18%;left:180px;right:32px;text-align:center;padding:0}
.in-journey #intro header h1{font-size:clamp(28px,3.2vw,48px);line-height:1.2;margin:0}
.in-journey #intro header p{font-size:clamp(17px,2vw,32px);line-height:1.35;margin:7vh 0 0}
.in-journey .intro-motion .feature-grid{position:absolute;inset:auto 32px 8% 180px;height:min(38vh,400px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:0;padding:0;perspective:none}
.reveal-card-anchor{display:grid;min-width:0;min-height:0;height:100%}
.in-journey .intro-motion .feature{display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;padding:12px;opacity:var(--card-opacity,0);transform:translate3d(var(--card-x,110vw),0,0);will-change:transform;transform-origin:center;overflow:hidden}
.in-journey .intro-motion .feature h2{font-size:clamp(17px,1.7vw,28px);line-height:1.25;margin:0 0 8px}
.in-journey .intro-motion .feature p{font-size:clamp(12px,1.3vw,22px);line-height:1.45;margin:0;flex:1}
.in-journey .intro-motion .feature-visual{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;flex:0 1 11vh;min-height:30px;width:100%;margin-top:8px}
.in-journey .intro-motion .feature-visual img{width:100%;max-width:100%;height:100%;max-height:110px;object-fit:contain;transform:none}
.reveal-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:pre-line;border:0}
.intro-motion .reveal-word{display:inline-block;opacity:var(--word-reveal,0);transform:translateY(calc((1 - var(--word-reveal,0))*10px));filter:blur(calc((1 - var(--word-reveal,0))*2px))}
.intro-motion .feature.reveal-pending{pointer-events:none}
.in-journey .intro-motion .feature:focus-visible{opacity:1;transform:none;pointer-events:auto}
@media(max-width:760px){
 .in-journey .brand,.in-journey .language{position:fixed}
 .in-journey #intro{height:calc(100% - 90px)}
 .in-journey #intro header{left:24px;right:24px;top:13%}
 .in-journey #intro header h1{font-size:clamp(24px,5.5vw,36px)}
 .in-journey #intro header p{font-size:clamp(15px,3.1vw,21px);margin-top:4vh}
 .in-journey .intro-motion .feature-grid{inset:auto 24px 3% 24px;height:48%;display:flex;flex-direction:column;gap:12px;overflow:hidden;overscroll-behavior:auto;padding:0}
 .in-journey .intro-motion.cards-complete .feature-grid{overflow-y:auto}
 .reveal-card-anchor{height:200px;flex:0 0 200px}
 .in-journey .intro-motion .feature h2{font-size:21px}
 .in-journey .intro-motion .feature p{font-size:16px}
 .in-journey .intro-motion .feature-visual{flex-basis:70px}
}
@media(prefers-reduced-motion:reduce){
 #landing-journey,.journey-static #landing-journey{height:220svh}
 .intro-motion .reveal-word,.in-journey .intro-motion .feature{opacity:1;transform:none;filter:none;will-change:auto}
 .intro-motion .feature.reveal-pending{pointer-events:auto}
}

/* Normalize visible artwork, rather than the differently padded PNG canvases. */
.in-journey .intro-motion .feature p{flex:0 0 auto;min-height:0}
.in-journey .intro-motion .feature-visual{display:block;position:relative;flex:0 0 var(--intro-icon-height,80px);height:var(--intro-icon-height,80px);min-height:0;margin-top:auto;overflow:hidden}
.in-journey .intro-motion .feature-visual img{position:absolute;max-width:none;max-height:none;margin:0;object-fit:fill;transform:none;align-self:auto}
.in-journey .intro-motion .feature:nth-child(n) .feature-visual img{width:var(--art-width);height:var(--art-height);left:var(--art-left);top:var(--art-top)}
@media(max-width:760px){.in-journey .intro-motion .reveal-card-anchor{height:320px;flex:0 0 320px}}
