/*
 * EUDS vNext — Motion
 * Animations and transitions with reduced-motion support
 */

/* ═══════════════════════════════════════
   ENTRY ANIMATIONS
   ═══════════════════════════════════════ */
@keyframes euds-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

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

@keyframes euds-fade-scale {
  from {
    opacity: 0;
    transform: scale(0.97);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* ═══════════════════════════════════════
   ANIMATION CLASSES
   ═══════════════════════════════════════ */
.euds-animate-in {
  animation: euds-fade-up var(--euds-duration-enter) var(--euds-ease-out) both;
}

.euds-animate-in--delay-1 {
  animation-delay: 80ms;
}

.euds-animate-in--delay-2 {
  animation-delay: 160ms;
}

.euds-animate-in--delay-3 {
  animation-delay: 240ms;
}

.euds-animate-fade {
  animation: euds-fade-in var(--euds-duration-slow) var(--euds-ease-out) both;
}

.euds-animate-scale {
  animation: euds-fade-scale var(--euds-duration-enter) var(--euds-ease-out) both;
}

/* ═══════════════════════════════════════
   HOVER STATES
   ═══════════════════════════════════════ */
.euds-hover-lift {
  transition: transform var(--euds-duration-base) var(--euds-ease-out);
}

.euds-hover-lift:hover {
  transform: translateY(-3px);
}

.euds-hover-glow {
  transition: box-shadow var(--euds-duration-base) var(--euds-ease-out);
}

.euds-hover-glow:hover {
  box-shadow: var(--euds-shadow-glow);
}

/* ═══════════════════════════════════════
   REDUCED MOTION — Accessibility
   ═══════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .euds-animate-in,
  .euds-animate-fade,
  .euds-animate-scale {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .euds-hover-lift:hover {
    transform: none;
  }
}
