/* ==========================================================================
   OrbisX — Keyframe Animations
   ========================================================================== */

@media (prefers-reduced-motion: no-preference) {

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

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

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

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

  @keyframes slideUpSheet {
    from { transform: translateY(100%); }
    to   { transform: translateY(0); }
  }

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

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

  @keyframes pulse {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.5; }
  }

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

  /* Page entrance — subtle fade-in with tiny lift */
  .page-enter {
    animation: slideUp 180ms var(--ease-default);
  }

  /* Staggered list items — quieter, tighter */
  .stagger-item { animation: slideUp 220ms var(--ease-default) both; }
  .stagger-item:nth-child(1)  { animation-delay: 0ms; }
  .stagger-item:nth-child(2)  { animation-delay: 20ms; }
  .stagger-item:nth-child(3)  { animation-delay: 40ms; }
  .stagger-item:nth-child(4)  { animation-delay: 60ms; }
  .stagger-item:nth-child(5)  { animation-delay: 80ms; }
  .stagger-item:nth-child(6)  { animation-delay: 100ms; }
  .stagger-item:nth-child(7)  { animation-delay: 120ms; }
  .stagger-item:nth-child(8)  { animation-delay: 140ms; }
  .stagger-item:nth-child(9)  { animation-delay: 160ms; }
  .stagger-item:nth-child(10) { animation-delay: 180ms; }
}

/* Reduced motion: instant, no animation */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
