/* Keyframe Animations */

/* Gradient Shift Animation for Hero Background */
@keyframes gradient-shift {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

/* Floating Animation for Phone Mockup */
@keyframes floating {

    0%,
    100% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-20px);
    }
}

/* Pulse Animation for CTA Card */
@keyframes pulse-gradient {

    0%,
    100% {
        background-size: 100% 100%;
        opacity: 1;
    }

    50% {
        background-size: 150% 150%;
        opacity: 0.9;
    }
}

/* Gradient Border Animation */
@keyframes gradient-rotate {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

/* Glow Effect - Optimized */
@keyframes glow {

    0%,
    100% {
        box-shadow: 0 0 20px rgba(255, 107, 53, 0.3),
            0 0 40px rgba(255, 0, 110, 0.2),
            0 0 60px rgba(131, 56, 236, 0.1);
    }

    50% {
        box-shadow: 0 0 30px rgba(255, 107, 53, 0.5),
            0 0 60px rgba(255, 0, 110, 0.3),
            0 0 90px rgba(131, 56, 236, 0.2);
    }
}

/* Scale Pulse for Hover - Smoother */
@keyframes scale-pulse {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.02);
    }
}

/* Fade In Up - Custom Easing */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Fade In Left - Custom Easing */
@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-40px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Fade In Right - Custom Easing */
@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(40px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Shimmer Effect */
@keyframes shimmer {
    0% {
        background-position: -1000px 0;
    }

    100% {
        background-position: 1000px 0;
    }
}

/* Utility Classes for Animations */
.animate-float {
    animation: floating 6s cubic-bezier(0.45, 0, 0.55, 1) infinite;
    will-change: transform;
}

.animate-glow {
    animation: glow 3s cubic-bezier(0.4, 0, 0.2, 1) infinite;
    will-change: box-shadow;
}

/* AOS Custom Easing Override */
[data-aos] {
    transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}