/* ==========================================================================
   ELYON AI — Animations
   Keyframes globales reutilizables. Las animaciones específicas de un solo
   componente viven junto a ese componente en components.css.
   ========================================================================== */

@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

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

@keyframes fade-in-down {
  from { opacity: 0; transform: translateY(-24px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes scale-in {
  from { opacity: 0; transform: scale(0.94); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes spin-slow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Clases de entrada utilitarias, en cascada manual con --delay */
.anim-in {
  animation: fade-in-up var(--duration-slow) var(--ease-out-expo) both;
  animation-delay: var(--delay, 0s);
}

@media (prefers-reduced-motion: reduce) {
  .anim-in,
  .float-dash,
  .eyebrow::before {
    animation: none !important;
  }
}
