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

@keyframes mIn {
    from { opacity: 0; transform: scale(.95) translateY(10px); }
    to   { opacity: 1; transform: scale(1)   translateY(0); }
}

@keyframes float {
    0%,100% { transform: translate(0,0); }
    50%     { transform: translate(var(--orb-drift-x,18px), var(--orb-drift-y,-18px)); }
}

@keyframes badge-blink {
    0%, 100% { opacity: 1; transform: translateX(-50%) scale(1); }
    50%       { opacity: .8; transform: translateX(-50%) scale(1.04); }
}

@keyframes pulse-cta {
    0%,100% { transform: scale(1);    box-shadow: 0 0 0 0   rgba(240,187,0,.5); }
    50%      { transform: scale(1.02); box-shadow: 0 0 0 14px rgba(240,187,0,0); }
}

@keyframes sunPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(245,166,35,.4); }
    50%      { box-shadow: 0 0 0 6px rgba(245,166,35,0); }
}
