@keyframes boot-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.72; transform: scale(0.97); }
}

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

@keyframes fog-drift {
  from { transform: translateX(-2%) scale(1); opacity: 0.85; }
  to { transform: translateX(3%) scale(1.04); opacity: 1; }
}

@keyframes sky-breathe {
  from { filter: hue-rotate(0deg) brightness(1); }
  to { filter: hue-rotate(8deg) brightness(1.06); }
}

@keyframes water-shimmer {
  from { background-position: 0 0, 0 0; }
  to { background-position: 0 0, 80px 0; }
}

@keyframes window-open {
  from {
    opacity: 0;
    transform: scale(0.92) translateY(12px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes pop-in {
  from { opacity: 0; transform: translateY(-6px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes dock-rise {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes spotlight-in {
  from { opacity: 0; transform: translateY(-20px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes notif-in {
  from { opacity: 0; transform: translateX(40px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes siri-spin {
  to { transform: rotate(360deg); }
}

@keyframes siri-pulse {
  0%, 100% { transform: scale(1); filter: brightness(1); }
  50% { transform: scale(1.06); filter: brightness(1.15); }
}

@keyframes music-progress {
  from { width: 8%; }
  to { width: 92%; }
}

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