/* motion (js/motion.js): text and UI arrive once, photographs are there at once */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
:root { --e-out: cubic-bezier(.22, 1, .36, 1); --e-fade: cubic-bezier(.4, 0, .6, 1); }
.js .rv { opacity: 0; transform: translateY(22px); }
.rv { transition: opacity .9s var(--e-fade) var(--d, 0ms), transform 1.1s var(--e-out) var(--d, 0ms); }
.js .rv.in { opacity: 1; transform: none; }
.js .hero .rv { transform: translateY(30px); }
.js .hero .rv.in { transform: none; }
.js [data-stagger] > * { opacity: 0; transform: translateY(12px); }
[data-stagger] > * { transition: opacity .7s var(--e-fade) calc(var(--i, 0) * var(--step, 80ms) + 80ms), transform .9s var(--e-out) calc(var(--i, 0) * var(--step, 80ms) + 80ms); }
.js [data-stagger].in > * { opacity: 1; transform: none; }
/* the hero photograph settles into place, visible from the first frame */
.js .hero__img { transform: scale(1.08); transition: transform 2.6s cubic-bezier(.16, 1, .3, 1); transform-origin: 60% 40%; }
.js.is-ready .hero__img { transform: none; }
/* parallax inside photo frames */
.frame { overflow: hidden; }
.has-par [data-par] { transform: translate3d(0, var(--py, 0px), 0) scale(1.1); will-change: transform; }


@media (prefers-reduced-motion: reduce) {
  .js .rv, .js [data-stagger] > *, .js .hero__img { opacity: 1; transform: none; transition: none; }
  .has-par [data-par] { transform: none; }
}
