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

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

@keyframes pulseAccent {
  0%, 100% { box-shadow: 0 0 0 0 rgba(212, 160, 23, 0.4); }
  50% { box-shadow: 0 0 0 8px rgba(212, 160, 23, 0); }
}

.animate-fade-up { animation: fadeInUp var(--transition-base) ease both; }
.animate-fade-in { animation: fadeIn var(--transition-base) ease both; }
.animate-fade-up:nth-child(2) { animation-delay: 60ms; }
.animate-fade-up:nth-child(3) { animation-delay: 120ms; }
.animate-fade-up:nth-child(4) { animation-delay: 180ms; }

.pulse-accent { animation: pulseAccent 2s infinite; }

@media (prefers-reduced-motion: reduce) {
  .animate-fade-up, .animate-fade-in, .pulse-accent { animation: none; }
}
