/* Fade in up animation */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.fade-in-up {
  animation: fadeInUp 0.6s ease-out forwards;
}

/* Slide up animation */
@keyframes slideUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}
.slide-up {
  animation: slideUp 0.5s ease-out forwards;
}

/* Scale in animation */
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.9); }
  to   { opacity: 1; transform: scale(1); }
}
.scale-in {
  animation: scaleIn 0.4s ease-out forwards;
}

/* ——— Scroll reveal (new) ——— */
@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-30px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(30px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes scaleUp {
  from { opacity: 0; transform: scale(0.95); }
  to   { opacity: 1; transform: scale(1); }
}
.fade-in-left { animation: fadeInLeft 0.7s ease-out forwards; }
.fade-in-right { animation: fadeInRight 0.7s ease-out forwards; }
.scale-up { animation: scaleUp 0.6s ease-out forwards; }

/* ——— Shimmer for buttons (new) ——— */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* ——— Pulse dot for scroll indicator (new) ——— */
@keyframes pulseDot {
  0%, 100% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(1.5); opacity: 1; }
}

/* ——— Ticker for stats counter (new) ——— */
@keyframes countUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
