/* =============================================================
   animations.css — Motion
   Keyframes and the scroll-reveal classes toggled by the
   IntersectionObserver in js/animations.js.
   ============================================================= */

/* ---------- Keyframes ---------- */

/* Bouncing scroll indicator in the hero */
@keyframes bounce {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(8px);
  }
}

/* Fade + rise used by hero title/subtitle/indicator on load */
@keyframes fadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---------- Scroll reveal ----------
   Elements start hidden/offset; the IntersectionObserver adds
   `.visible` when they enter the viewport. Delay modifiers
   stagger sibling reveals. */
.reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 {
  transition-delay: 0.1s;
}

.reveal-delay-2 {
  transition-delay: 0.22s;
}

.reveal-delay-3 {
  transition-delay: 0.34s;
}
