/* ========================================
   Animation Keyframes & Utilities
   ======================================== */

/* -------- Fade In Up -------- */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* -------- Fade In -------- */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* -------- Scale In -------- */
@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* -------- Slide In Left -------- */
@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-60px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* -------- Slide In Right -------- */
@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(60px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* -------- Count Up Number Glow -------- */
@keyframes numberGlow {
  0%, 100% { text-shadow: 0 0 0 transparent; }
  50% { text-shadow: 0 0 20px rgba(232, 154, 0, 0.3); }
}

/* -------- Pulse Glow -------- */
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0, 102, 179, 0.4); }
  50% { box-shadow: 0 0 0 12px rgba(0, 102, 179, 0); }
}

/* -------- Banner Slide Transition -------- */
@keyframes bannerSlideIn {
  from {
    opacity: 0;
    transform: scale(1.05);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* -------- Gradient Shift -------- */
@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* -------- Scroll Reveal Utility Classes -------- */
.reveal {
  opacity: 1;
  transform: translateY(20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

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

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* -------- Animation Utility Classes -------- */
.animate-fadeInUp {
  animation: fadeInUp 0.8s ease forwards;
}

.animate-fadeIn {
  animation: fadeIn 0.6s ease forwards;
}

.animate-scaleIn {
  animation: scaleIn 0.5s ease forwards;
}

.animate-slideInLeft {
  animation: slideInLeft 0.8s ease forwards;
}

.animate-slideInRight {
  animation: slideInRight 0.8s ease forwards;
}
