/* ==========================================================================
   Animations
   ========================================================================== */

[data-animate] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--duration-slow) var(--ease),
              transform var(--duration-slow) var(--ease);
}

[data-animate="fade-in"] { transform: none; }
[data-animate="roll-right"] { transform: translateX(-24px); }
[data-animate="roll-left"] { transform: translateX(24px); }

[data-animate].is-visible {
  opacity: 1;
  transform: none;
}

[data-animate-delay="100"] { transition-delay: 100ms; }
[data-animate-delay="200"] { transition-delay: 200ms; }
[data-animate-delay="300"] { transition-delay: 300ms; }
[data-animate-delay="400"] { transition-delay: 400ms; }

.hero__content {
  animation: fadeUp 0.8s var(--ease) 0.2s both;
}

.hero__stats {
  animation: fadeUp 0.8s var(--ease) 0.5s both;
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  [data-animate] { opacity: 1; transform: none; transition: none; }
  .hero__content, .hero__stats { animation: none; opacity: 1; }
}
