@keyframes rise-in { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: translateY(0); } }
@keyframes hero-in { from { opacity: 0; transform: translateY(34px); } to { opacity: 1; transform: translateY(0); } }
@keyframes scroll-pulse { 0%, 100% { transform: translateY(0); opacity: .55; } 50% { transform: translateY(8px); opacity: 1; } }
@keyframes orbit { to { transform: rotate(360deg); } }
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

.hero__eyebrow { animation: hero-in .85s .08s both cubic-bezier(.2,.8,.2,1); }
.hero h1 { animation: hero-in .85s .18s both cubic-bezier(.2,.8,.2,1); }
.hero__copy { animation: hero-in .85s .3s both cubic-bezier(.2,.8,.2,1); }
.hero__actions { animation: hero-in .85s .42s both cubic-bezier(.2,.8,.2,1); }
.scroll-cue__dot { animation: scroll-pulse 1.8s infinite ease-in-out; }
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal[data-delay="1"] { transition-delay: .12s; }
.reveal[data-delay="2"] { transition-delay: .24s; }
.reveal[data-delay="3"] { transition-delay: .36s; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } .reveal { opacity: 1; transform: none; } }
