/* ==========================================================================
   EDU POINT — ANIMATIONS
   Keyframes + reduced-motion handling. Class toggles live in style.css /
   js/animation.js; this file only defines motion.
   ========================================================================== */

@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-18px); }
}

@keyframes scrollLine {
  0% { transform: scaleY(0); transform-origin: top; opacity: 1; }
  50% { transform: scaleY(1); transform-origin: top; }
  51% { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0.4; }
}

@keyframes rippleAnim {
  from { transform: scale(0); opacity: 0.65; }
  to { transform: scale(3); opacity: 0; }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes gradientGlow {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}

@keyframes spinSlow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Page transition overlay */
.page-transition {
  position: fixed; inset: 0; background: var(--color-navy); z-index: 999;
  transform: scaleY(1); transform-origin: bottom;
  transition: transform 0.7s var(--ease-in-out);
  pointer-events: none;
}
.page-transition.is-hidden { transform: scaleY(0); transform-origin: top; }

/* Staggered reveal helper — combine with reveal-up + data-delay */
.reveal-up[data-delay="1"] { transition-delay: 0.08s; }
.reveal-up[data-delay="2"] { transition-delay: 0.16s; }
.reveal-up[data-delay="3"] { transition-delay: 0.24s; }
.reveal-up[data-delay="4"] { transition-delay: 0.32s; }
.reveal-up[data-delay="5"] { transition-delay: 0.4s; }

.hero-shape { animation: gradientGlow 6s ease-in-out infinite; }


.animate-spin-slow { animation: spinSlow 18s linear infinite; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .reveal-up { opacity: 1; transform: none; }
}
