/* Open the remembered landscape as a window; the camera moves the whole scene together. */
.river-world,.river-camera{position:absolute;inset:0;isolation:isolate}
.river-camera{transform-origin:50% 88%;transform:scale(var(--scene-scale,1));will-change:transform}
.river-world{clip-path:ellipse(var(--window-x,100%) var(--window-y,100%) at 50% 48%);will-change:clip-path}
.river-play{background:#e0e5d9}
.river-camera:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,#76664710,transparent 37%,#20372d12);pointer-events:none}
.river-play:before,.river-play:after{display:none}
.river-shimmer{position:absolute;inset:0 0 25%;z-index:2;pointer-events:none;opacity:.13;background:repeating-radial-gradient(ellipse at 24% 22%,transparent 0 71px,#e9edda35 73px,transparent 75px 161px);background-size:190% 150%;mix-blend-mode:screen;animation:river-breathe 19s ease-in-out infinite alternate;animation-play-state:paused}
.river-is-visible .river-shimmer{animation-play-state:running}
.enhanced-motion .river-intro{background:none;clip-path:none;opacity:var(--river-intro-opacity,1);transform:none;justify-content:center;color:#f1eddd;text-shadow:0 2px 25px #20392c80;}
.river-intro p{font-size:clamp(54px,8vw,125px);line-height:1.5;letter-spacing:.12em;margin:22px 0 16px;transform:translateY(var(--intro-drift,0px))}
.river-intro>small{font-family:var(--serif);font-size:12px;letter-spacing:.25em}
.river-intro>span{font-size:8px;letter-spacing:.24em}
.river-caption,.river-fieldnote,.river-instruction{opacity:var(--river-ui,1);transition:opacity .25s ease}
.river-fieldnote{font-size:19px;top:7%;right:5.5%;line-height:2;letter-spacing:.24em;transform:translateY(var(--fieldnote-y,0px))}
.river-scene-label{padding-top:18px;padding-bottom:18px}
.river-scene-label:after{content:"";position:absolute;z-index:10;top:0;left:0;height:1px;width:var(--scene-progress,0%);background:#738773}
.river-dog{filter:saturate(.82) drop-shadow(0 1px .35px #493e3730)}
.dog-ground-shadow{width:57%;left:22%;height:3.2%;bottom:1.7%;background:#433a2b82;filter:blur(3px);opacity:.52}
.dog-illustration{overflow:visible}.dog-illustration canvas{overflow:visible}
.swimming-fish>img{animation:none;transform:scaleY(.77) skewY(var(--fin-angle,0deg));transition:filter .3s}
.swimming-fish{filter:drop-shadow(0 6px 3px #253c3440);opacity:.79}
.swimming-fish:focus-visible{outline-offset:1px;border-radius:50%}
.enhanced-motion .hero-film{height:165svh}
.enhanced-motion .hero-photo{clip-path:inset(var(--film-inset-y,7%) var(--film-inset-x,4.7%) round var(--film-radius,3px));}
.enhanced-motion .film-copy{transform:none;opacity:1}
.film-copy .film-eyebrow{opacity:var(--film-eyebrow,0);transform:translateY(calc((1 - var(--film-eyebrow,0))*12px))}
.film-copy p{font-size:clamp(64px,8.4vw,138px);line-height:1.46;margin:27px 0;}
.film-line{display:block;overflow:hidden}
.film-line>span{display:block;opacity:var(--film-line-one,0);transform:translateY(calc((1 - var(--film-line-one,0))*100%));will-change:transform}
.film-line:nth-child(2)>span{opacity:var(--film-line-two,0);transform:translateY(calc((1 - var(--film-line-two,0))*100%));color:#edc4a6}
.film-after{opacity:var(--film-after,0);transform:translateY(calc((1 - var(--film-after,0))*12px))}
.chapter-bridge{height:clamp(390px,62svh,670px);padding:7% 8.5%;background:#293b32;isolation:isolate;}
.chapter-bridge:before{content:"";position:absolute;inset:0;z-index:-2;background:#4b332b;opacity:var(--ember-warmth,0)}
.chapter-bridge:after{content:"";position:absolute;right:-7%;top:-30%;width:70%;aspect-ratio:1;border-radius:50%;z-index:-1;background:radial-gradient(circle,#c17e4640,transparent 65%);opacity:var(--ember-warmth,0);transform:scale(var(--ember-scale,1))}
.chapter-bridge>span{font-size:9px;letter-spacing:.24em;color:#e6e7d6;opacity:.65}
.chapter-bridge p{margin-top:35px;transform:none!important;font-size:clamp(54px,7.8vw,124px);line-height:1.5;white-space:normal;width:100%;letter-spacing:.04em;font-weight:400}
.chapter-bridge p>span{display:block;transform:translateX(var(--cold-shift,0px));opacity:var(--cold-opacity,1)}
.chapter-bridge p>i{display:block;text-align:right;margin:0;transform:translateX(var(--warm-shift,0px));color:#e9b899}
.chapter-bridge>svg{top:17%;right:9%;opacity:.32;width:100px;transform:rotate(-12deg)}
.ember-caption{position:absolute;left:8.5%;bottom:9%;font-size:10px;letter-spacing:.16em;color:#e8d1b9;opacity:var(--ember-warmth,0)}
.portrait-art canvas{position:absolute;inset:0;width:100%;height:100%;visibility:hidden;}
.portrait-art.rig-ready canvas{visibility:visible}.portrait-art.rig-ready img{visibility:hidden}
.portrait-art,.dog-mode .portrait-art{transform:none;transition:none}
.companion-is-visible .buddy{opacity:0;pointer-events:none}
.motion-quiet .river-world{clip-path:none}.motion-quiet .river-camera{transform:none}.motion-quiet .river-shimmer{animation:none}
.motion-quiet .river-caption,.motion-quiet .river-fieldnote,.motion-quiet .river-instruction{opacity:1;transform:none}
.motion-quiet .chapter-bridge:before,.motion-quiet .chapter-bridge:after{opacity:.45}
.motion-quiet .chapter-bridge p>span,.motion-quiet .chapter-bridge p>i{transform:none;opacity:1}
.motion-quiet .ember-caption{opacity:1}
@keyframes river-breathe{to{background-position:10% 4%;opacity:.2}}
@media(max-width:700px){
 .enhanced-motion .hero-film{height:155svh}.enhanced-motion .river-stage{height:195svh}
 .river-intro p{font-size:47px;letter-spacing:.06em}.river-intro>small{font-size:10px}.river-intro>span{font-size:6px}
 .river-fieldnote{font-size:14px;right:6%;top:6%}
 .film-copy p{font-size:58px}.film-copy .film-eyebrow{font-size:7px}.film-after{font-size:10px}
 .chapter-bridge{height:380px;padding:45px 7%}.chapter-bridge p{font-size:clamp(39px,10.7vw,68px);margin-top:42px;line-height:1.8}
 .chapter-bridge>span{font-size:7px}.chapter-bridge>svg{width:63px;top:14%;right:7%}
 .ember-caption{font-size:8px;left:7%;bottom:12%}
}
@media(prefers-reduced-motion:reduce){.river-world{clip-path:none!important}.river-camera{transform:none!important}.river-shimmer{animation:none!important}.chapter-bridge p>span,.chapter-bridge p>i{transform:none!important;opacity:1!important}.river-caption,.river-fieldnote,.river-instruction{opacity:1!important;transform:none!important}}
