@keyframes hero-bg-pan {
  0% {
    transform: scale(1.05) translate(0, 0);
  }
  100% {
    transform: scale(1.08) translate(-1%, -0.5%);
  }
}

.hero-bg-animate {
  animation: hero-bg-pan 24s ease-in-out infinite alternate;
}

@keyframes fade-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-up {
  animation: fade-up 0.7s ease-out both;
}

.animate-delay-1 {
  animation-delay: 0.1s;
}

.animate-delay-2 {
  animation-delay: 0.2s;
}

.animate-delay-3 {
  animation-delay: 0.3s;
}

@keyframes stat-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(20, 184, 166, 0.35);
  }
  50% {
    box-shadow: 0 0 0 10px rgba(20, 184, 166, 0);
  }
}

.stat-ring-pulse {
  animation: stat-pulse 2.4s ease-out infinite;
}

@keyframes count-highlight {
  from {
    color: #14b8a6;
  }
  to {
    color: #1d2b2a;
  }
}

.stat-count-updated {
  animation: count-highlight 0.6s ease;
}

.cookie-banner-enter {
  animation: fade-up 0.45s ease-out both;
}

@keyframes toast-in {
  from {
    opacity: 0;
    transform: translate(12px, -8px);
  }
  to {
    opacity: 1;
    transform: translate(0, 0);
  }
}

.form-success-toast-visible {
  animation: toast-in 0.35s ease-out both;
}
