/* Reveal-on-scroll. Uses the standalone translate/scale properties so it
   never fights Tailwind's transform utilities or hover scales. */
.reveal-ready .reveal {
  opacity: 0;
  translate: 0 28px;
  transition:
    opacity 700ms cubic-bezier(0.22, 1, 0.36, 1),
    translate 900ms cubic-bezier(0.22, 1, 0.36, 1),
    scale 900ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}
.reveal-ready .reveal[data-reveal="pop"] {
  translate: 0 18px;
  scale: 0.92;
}
.reveal-ready .reveal[data-reveal="rise"] {
  translate: 0 60px;
}
.reveal-ready .reveal[data-reveal="zoom"] {
  translate: 0 40px;
  scale: 0.96;
}
.reveal-ready .reveal.is-in {
  opacity: 1;
  translate: none;
  scale: none;
}

.parallax {
  transform: translate3d(0, var(--parallax-y, 0px), 0);
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .reveal-ready .reveal {
    opacity: 1;
    translate: none;
    scale: none;
    transition: none;
  }
  .parallax {
    transform: none;
  }
}
