/* ==========================================================================
   Scroll Reveal
   Pairs with public/js/scroll-reveal.js. Elements with [data-reveal] start
   hidden/offset and transition to their resting state when the
   "is-revealed" class is added by the IntersectionObserver.
   ========================================================================== */

[data-reveal] {
  opacity: 0;
  transition: opacity var(--transition-slow, 450ms ease),
    transform var(--transition-slow, 450ms ease);
  will-change: opacity, transform;
}

[data-reveal="fade"] {
  transform: translateY(24px);
}

[data-reveal="left"] {
  transform: translateX(-32px);
}

[data-reveal="right"] {
  transform: translateX(32px);
}

[data-reveal="scale"] {
  transform: scale(0.96);
}

[data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
