/* ============================================================
   NEXIUN COMPANY — animations.css
   Animaciones reutilizables: fade in, slide up, glow, hover, scale
   ============================================================ */

@keyframes nxFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

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

@keyframes nxSlideDown {
  from { opacity: 0; transform: translateY(-30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes nxScaleIn {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes nxGlowPulse {
  0%, 100% { box-shadow: 0 0 15px rgba(109, 40, 217, 0.4); }
  50% { box-shadow: 0 0 35px rgba(109, 40, 217, 0.8); }
}

.nx-anim-fade {
  animation: nxFadeIn 1s ease forwards;
}

.nx-anim-slide-up {
  animation: nxSlideUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.nx-anim-slide-down {
  animation: nxSlideDown 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.nx-anim-scale {
  animation: nxScaleIn 0.7s ease forwards;
}

.nx-anim-delay-1 { animation-delay: 0.15s; }
.nx-anim-delay-2 { animation-delay: 0.3s; }
.nx-anim-delay-3 { animation-delay: 0.45s; }
.nx-anim-delay-4 { animation-delay: 0.6s; }

/* Hover genérico de escala suave para elementos interactivos */
.nx-hover-scale {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.nx-hover-scale:hover {
  transform: scale(1.04);
}

/* Respeto a usuarios que prefieren menos movimiento */
@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;
  }
}
