.reveal { animation: fade-up 0.55s ease both; }
.delay-1 { animation-delay: 0.08s; }
.delay-2 { animation-delay: 0.16s; }

.spinner { animation: spin 0.7s linear infinite; }
.glow-ring { animation: glow 2.8s ease-in-out infinite; }

.progress.is-indeterminate .progress-bar { animation: indeterminate 1.1s ease-in-out infinite; }

@keyframes fade-up {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes glow {
  0%, 100% { box-shadow: 0 0 0 rgba(139, 92, 246, 0.15); }
  50% { box-shadow: 0 0 28px rgba(6, 182, 212, 0.35); }
}
@keyframes indeterminate {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(320%); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
}
