@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(8px); }
}
@keyframes orb-float {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(30px, -20px) scale(1.05); }
  66% { transform: translate(-20px, 15px) scale(0.95); }
}
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(102, 179, 255, 0.5); }
  50% { box-shadow: 0 0 0 12px rgba(102, 179, 255, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-scroll { animation: none; }
  .hero-orb { animation: none; }
  .roadmap-step[data-status="current"] .roadmap-node { animation: none; }
  .reveal { transition-duration: 0.01ms; }
}

.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); }
.reveal.revealed { opacity: 1; transform: translateY(0); }
.reveal-left { transform: translateX(-24px); }
.reveal-left.revealed { transform: translateX(0); }
.reveal-right { transform: translateX(24px); }
.reveal-right.revealed { transform: translateX(0); }
.reveal-up { transform: translateY(24px); }
.reveal-up.revealed { transform: translateY(0); }
.reveal-scale { transform: scale(0.96); }
.reveal-scale.revealed { transform: scale(1); }
