@keyframes sweep { to { transform: rotate(360deg); } }
@keyframes ping { 0%,100% { transform: scale(.8); opacity:.15; } 50% { transform:scale(1.45); opacity:.55; } }
@keyframes floatA { 0%,100% { transform:translate3d(0,0,0); } 50% { transform:translate3d(0,-13px,0); } }
@keyframes floatB { 0%,100% { transform:translate3d(0,0,0); } 50% { transform:translate3d(8px,10px,0); } }
@keyframes ticker { to { transform:translateX(-50%); } }
@keyframes corePulse { 0%,100% { box-shadow:0 0 45px rgba(90,207,220,.13), inset 0 0 25px rgba(90,207,220,.08); } 50% { box-shadow:0 0 65px rgba(90,207,220,.22), inset 0 0 32px rgba(90,207,220,.12); } }
@keyframes glowPulse { 0%,100%{opacity:.06}50%{opacity:.14} }

.radar-sweep { animation:sweep 7s linear infinite; }
.signal::after { animation:ping 2.2s ease-in-out infinite; }
.signal-2::after{animation-delay:.5s}.signal-3::after{animation-delay:1s}.signal-4::after{animation-delay:1.5s}
.core-logo { animation:corePulse 3.6s ease-in-out infinite; }
.chip-a { animation:floatA 4.6s ease-in-out infinite; }.chip-b{animation:floatB 5.2s ease-in-out infinite .6s}.chip-c{animation:floatA 5.6s ease-in-out infinite 1.2s}
.ticker-track { animation:ticker 22s linear infinite; }
.popular-glow { animation:glowPulse 3s ease-in-out infinite; }

.reveal { opacity:0; transform:translateY(26px); transition:opacity .75s cubic-bezier(.2,.8,.2,1), transform .75s cubic-bezier(.2,.8,.2,1); }
.reveal.revealed { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:.09s; }.reveal-delay-2 { transition-delay:.17s; }.reveal-delay-3 { transition-delay:.25s; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity:1; transform:none; }
}
