.scroll-reveal{transition:opacity 430ms ease var(--reveal-delay,0ms),translate 620ms cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}.scroll-reveal.is-leaving{transition:opacity 300ms ease,translate 380ms ease}.scroll-reveal:focus-within{transition:none}.hero-top.scroll-reveal{transition:opacity 250ms ease,translate 320ms ease}
.photo-frame{position:relative;overflow:hidden;height:340px}.parallax-frame{overflow:hidden}.parallax-frame>.parallax-image{position:absolute!important;inset:-36px 0 auto;width:100%;height:calc(100% + 72px)!important;max-width:none;object-fit:cover;translate:0 var(--photo-y,0px);scale:1.035;transform:none;transition:scale 500ms ease}.gallery-item:hover .parallax-image{scale:1.065}.gallery-page .photo-frame{height:420px}.gallery-page .gallery-item:first-child .photo-frame{height:min(65vh,680px)}
.book-cta::after{content:'';position:absolute;inset:0;border:1px solid currentColor;opacity:0;pointer-events:none}.book-cta.cta-visible::after{animation:booking-pulse 3.8s ease-in-out infinite}@keyframes booking-pulse{0%,100%{opacity:0;transform:scale(.97)}45%{opacity:.65;transform:scale(1)}}.motion-paused .book-cta::after{animation-play-state:paused}
@media(max-width:950px){.photo-frame{height:300px}}@media(max-width:600px){.photo-frame{height:210px}.gallery-item:first-child .photo-frame{height:260px}.gallery-page .photo-frame,.gallery-page .gallery-item:first-child .photo-frame{height:360px}.scroll-reveal{transition-duration:350ms,480ms}}
@media(prefers-reduced-motion:reduce){.parallax-frame>.parallax-image{translate:none;scale:1}.book-cta::after{animation:none!important}.gallery-item:hover .parallax-image{scale:1}}

@media(prefers-reduced-motion:reduce){.scroll-reveal,.parallax-image{transition:none!important}}
