@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(40px);}
  100% { opacity: 1; transform: translateY(0);}
}
@keyframes btnGlow {
  0% { box-shadow: 0 0 8px #4e8cff44;}
  60% { box-shadow: 0 0 20px #7cf9da88;}
  100% { box-shadow: 0 0 8px #4e8cff44;}
}
@keyframes planetRotate {
  0% { transform: rotate(0);}
  100% { transform: rotate(360deg);}
}
@keyframes timelineFade {
  0% { opacity:0; transform: translateY(30px);}
  100% { opacity:1; transform: translateY(0);}
}
@keyframes pulseStar {
  0%,100%{opacity:.7;}
  40%{opacity:1;}
  80%{opacity:0.25;}
}
@keyframes slideUp {
  from { opacity:0; transform:translateY(50px);}
  to   { opacity:1; transform:translateY(0);}
}
@keyframes pingFlash {
  0% { filter: brightness(2); }
  100% { filter: brightness(1); }
}
