/* ============================================
   MONARCH LEAK — ANIMATIONS
   ============================================ */

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideIn { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } }
@keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
@keyframes glow { 0%, 100% { box-shadow: 0 0 20px rgba(124,58,237,0.2); } 50% { box-shadow: 0 0 30px rgba(124,58,237,0.4); } }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes timerProgress { from { --progress: 0%; } to { --progress: 100%; } }

.animate-fadeIn { animation: fadeIn 0.5s ease forwards; }
.animate-fadeInUp { animation: fadeInUp 0.5s ease forwards; opacity: 0; }
.animate-fadeInDown { animation: fadeInDown 0.3s ease forwards; }
.animate-slideIn { animation: slideIn 0.3s ease forwards; }

.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.2s; }
.delay-3 { animation-delay: 0.3s; }
.delay-4 { animation-delay: 0.4s; }
.delay-5 { animation-delay: 0.5s; }

/* Card stagger animation */
.card { opacity: 0; animation: fadeInUp 0.4s ease forwards; }
.content-grid .card:nth-child(1) { animation-delay: 0.05s; }
.content-grid .card:nth-child(2) { animation-delay: 0.1s; }
.content-grid .card:nth-child(3) { animation-delay: 0.15s; }
.content-grid .card:nth-child(4) { animation-delay: 0.2s; }
.content-grid .card:nth-child(5) { animation-delay: 0.25s; }
.content-grid .card:nth-child(6) { animation-delay: 0.3s; }
.content-grid .card:nth-child(7) { animation-delay: 0.35s; }
.content-grid .card:nth-child(8) { animation-delay: 0.4s; }
.content-grid .card:nth-child(9) { animation-delay: 0.45s; }
.content-grid .card:nth-child(10) { animation-delay: 0.5s; }
.content-grid .card:nth-child(11) { animation-delay: 0.55s; }
.content-grid .card:nth-child(12) { animation-delay: 0.6s; }

/* Featured glow */
.card.featured { animation: glow 3s ease-in-out infinite, fadeInUp 0.4s ease forwards; }

/* Hover effects */
.hover-lift { transition: transform var(--transition-base), box-shadow var(--transition-base); }
.hover-lift:hover { transform: translateY(-4px); box-shadow: var(--shadow-glow); }

/* Loading spinner */
.spinner { width: 24px; height: 24px; border: 3px solid var(--border); border-top-color: var(--accent); border-radius: 50%; animation: spin 0.6s linear infinite; }

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