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

@keyframes shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}

@keyframes hero-spin-cw {
  to { transform: rotate(360deg); }
}

@keyframes hero-spin-ccw {
  to { transform: rotate(-360deg); }
}

@keyframes hero-wobble {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}

@keyframes hero-breathe {
  0%, 100% { opacity: 0.15; }
  50% { opacity: 0.25; }
}

@keyframes hero-rule-grow {
  from { width: 0; }
  to { width: 60%; }
}

@media (prefers-reduced-motion: reduce) {
  .float-slow, .pulse-dot { animation: none; }
}
