/* Scroll reveal */
.fade-in {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.55s ease, transform 0.55s ease;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Pulse glow on CTA hover */
@keyframes pulseGlow {

    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(244, 63, 94, 0.4);
    }

    50% {
        box-shadow: 0 0 0 12px rgba(244, 63, 94, 0);
    }
}

.btn-cta:hover {
    animation: pulseGlow 1.2s ease infinite;
}

/* Badge shimmer */
@keyframes shimmer {
    0% {
        background-position: -200% center;
    }

    100% {
        background-position: 200% center;
    }
}

.hero-badge {
    background-size: 200%;
    animation: shimmer 3s linear infinite;
}