/* scroll reveal — elements start visible without JS (html.js enables the hidden start state) */
.js [data-reveal]{opacity:0;transform:translateY(34px) scale(.985);transition:opacity var(--t3) var(--ease),transform var(--t3) var(--ease);transition-delay:calc(var(--d,0) * 90ms);will-change:opacity,transform}
.js [data-reveal="left"]{transform:translateX(-40px)}
.js [data-reveal="right"]{transform:translateX(40px)}
.js [data-reveal="zoom"]{transform:scale(.92)}
.js [data-reveal].in{opacity:1;transform:none}
[data-parallax]{will-change:transform}
.hero__bg img{transform:scale(1.08)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .js [data-reveal]{opacity:1;transform:none}
  .statement .w{opacity:1}
  .hero__visual .phone{animation:none}
}
