@keyframes fadeUp {
  from { opacity:0; transform:translateY(40px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes scrollPulse {
  0%,100%{opacity:0.3;transform:scaleY(0.6);}
  50%{opacity:1;transform:scaleY(1);}
}
@keyframes scrollTrack {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@keyframes waPulse {
  0%,100%{box-shadow:0 4px 20px rgba(37,211,102,0.45);}
  50%{box-shadow:0 4px 32px rgba(37,211,102,0.7), 0 0 0 10px rgba(37,211,102,0.08);}
}

.reveal { opacity:0; transform:translateY(32px); transition:opacity 0.7s ease, transform 0.7s ease; }
.reveal.visible { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:0.1s; }
.reveal-delay-2 { transition-delay:0.2s; }
.reveal-delay-3 { transition-delay:0.3s; }
.reveal-delay-4 { transition-delay:0.4s; }
