/* ===========================================================
   Site-wide animations + reduced-motion.
   =========================================================== */

@keyframes pageFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
body { animation: pageFadeIn 600ms var(--ease) both; }

/* Scroll-reveal: applied to [data-reveal] and [data-scroll-fade] */
[data-reveal],
[data-scroll-fade] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 700ms var(--ease), transform 700ms var(--ease);
}
[data-reveal].is-visible,
[data-scroll-fade].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Conditional-field reveal in forms */
@keyframes condFade {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Reduced motion: turn everything off */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-delay: 0 !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  [data-reveal], [data-scroll-fade] { opacity: 1; transform: none; }
}
