/* ============================================================
   REZOLVE IT — Scroll Animations & Transitions
   ============================================================ */

/* === FADE UP (default) === */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.animate-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* === SLIDE LEFT === */
.animate-slide-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.animate-slide-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* === SLIDE RIGHT === */
.animate-slide-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.animate-slide-right.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* === SCALE === */
.animate-scale {
  opacity: 0;
  transform: scale(0.95);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.animate-scale.is-visible {
  opacity: 1;
  transform: scale(1);
}

/* === STAGGER DELAYS === */
.stagger-1 { transition-delay: 0ms; }
.stagger-2 { transition-delay: 100ms; }
.stagger-3 { transition-delay: 200ms; }
.stagger-4 { transition-delay: 300ms; }
.stagger-5 { transition-delay: 400ms; }
.stagger-6 { transition-delay: 500ms; }

/* === HERO TEXT REVEAL === */
.hero-text-reveal {
  opacity: 0;
  transform: translateY(40px);
  animation: heroReveal 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.hero-text-reveal:nth-child(2) { animation-delay: 0.12s; }
.hero-text-reveal:nth-child(3) { animation-delay: 0.24s; }
.hero-text-reveal:nth-child(4) { animation-delay: 0.36s; }
.hero-text-reveal:nth-child(5) { animation-delay: 0.48s; }

@keyframes heroReveal {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* === GRADIENT SHIMMER === */
@keyframes gradientShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.gradient-animate {
  background-size: 200% 200%;
  animation: gradientShift 8s ease infinite;
}

/* === PULSE GLOW (for hero background) === */
@keyframes pulseGlow {
  0%, 100% { opacity: 0.6; transform: translateX(-50%) scale(1); }
  50%      { opacity: 1; transform: translateX(-50%) scale(1.05); }
}

.hero__glow {
  animation: pulseGlow 6s ease-in-out infinite;
}

/* === NAV ENTRANCE === */
@keyframes navSlideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.nav {
  animation: navSlideDown 0.6s ease forwards;
}

/* === PREFERS REDUCED MOTION === */
@media (prefers-reduced-motion: reduce) {
  .animate-on-scroll,
  .animate-slide-left,
  .animate-slide-right,
  .animate-scale {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .hero-text-reveal {
    opacity: 1;
    transform: none;
    animation: none;
  }

  .hero__glow {
    animation: none;
  }

  .gradient-animate {
    animation: none;
  }

  .nav {
    animation: none;
  }

  .testimonials__track {
    transition: none;
  }
}
