/* ============================================================
   animations.css — Movimiento
   ============================================================ */

[data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity 0.8s var(--ease), transform 0.8s var(--ease); will-change: opacity, transform; }
[data-reveal].is-visible { opacity: 1; transform: none; }
[data-reveal][data-delay="1"] { transition-delay: 0.08s; }
[data-reveal][data-delay="2"] { transition-delay: 0.16s; }
[data-reveal][data-delay="3"] { transition-delay: 0.24s; }

.hero__body > * { animation: rise 1s var(--ease) both; }
.hero__body > *:nth-child(1) { animation-delay: 0.10s; }
.hero__body > *:nth-child(2) { animation-delay: 0.20s; }
.hero__body > *:nth-child(3) { animation-delay: 0.30s; }
.hero__body > *:nth-child(4) { animation-delay: 0.40s; }
.hero__body > *:nth-child(5) { animation-delay: 0.50s; }

@keyframes rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes wa-pulse { 0% { transform: scale(1); opacity: 0.5; } 70% { transform: scale(1.55); opacity: 0; } 100% { transform: scale(1.55); opacity: 0; } }
@keyframes menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
  [data-reveal] { opacity: 1; transform: none; }
  .line-chart .line { stroke-dashoffset: 0 !important; }
  .bar-chart .bar { transform: none !important; }
}
