/* KEYFRAMES */
@keyframes heroZoom {
    0% { background-size: 100%; }
    100% { background-size: 110%; }
}

@keyframes pulse-orb {
    0%, 100% { transform: scale(1); opacity: 0.6; }
    50% { transform: scale(1.1); opacity: 1; }
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

@keyframes scroll-bounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(6px); }
}

@keyframes badgeFadeUp {
    0% { opacity: 0; transform: translateY(20px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ANIMATION UTILITIES */
.animate-fade-in {
    animation: fadeIn 0.8s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}

.animate-pulse {
    animation: pulse-orb 8s ease-in-out infinite;
}

.animate-blink {
    animation: blink 2s infinite;
}
