/* ============================================
   ANIMATIONS - Global Keyframes
   ============================================ */
@keyframes slideInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes slideInDown {
  from { opacity: 0; transform: translateY(-20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes fadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}
@keyframes flash {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
/* === Utility classes === */
.animate-slide-in-up { animation: slideInUp var(--transition-normal); }
.animate-slide-in-down { animation: slideInDown var(--transition-normal); }
.animate-fade-in { animation: fadeIn var(--transition-normal); }
.animate-fade-out { animation: fadeOut var(--transition-normal); }
.animate-spin { animation: spin 1s linear infinite; }
.animate-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
.animate-flash { animation: flash 0.8s ease; }
