/* ============================================
   Animations - Beleza Marcada Admin Hotsite
   ============================================ */

/* Logo Entrance Animation */
@keyframes logo-entrance {
    0% {
        opacity: 0;
        transform: scale(0.8) translateY(20px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Continuous Logo Float */
@keyframes logo-float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}

/* Glow Pulse Effect */
@keyframes glow-pulse {
    0%, 100% {
        opacity: 0.4;
        transform: scale(1);
    }
    50% {
        opacity: 0.7;
        transform: scale(1.05);
    }
}

/* Fade Up Animation */
@keyframes fade-up {
    0% {
        opacity: 0;
        transform: translateY(40px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Fade In Animation */
@keyframes fade-in {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

/* Scale In Animation */
@keyframes scale-in {
    0% {
        opacity: 0;
        transform: scale(0.9);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* Slide In From Left */
@keyframes slide-in-left {
    0% {
        opacity: 0;
        transform: translateX(-60px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Slide In From Right */
@keyframes slide-in-right {
    0% {
        opacity: 0;
        transform: translateX(60px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Button Shine Effect */
@keyframes btn-shine {
    0% {
        transform: translateX(-100%) skewX(-15deg);
    }
    100% {
        transform: translateX(200%) skewX(-15deg);
    }
}

/* Counter Animation */
@keyframes count-up {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Floating Elements */
@keyframes float-slow {
    0%, 100% {
        transform: translate(0, 0) rotate(0deg);
    }
    25% {
        transform: translate(10px, -15px) rotate(2deg);
    }
    50% {
        transform: translate(-5px, -25px) rotate(-1deg);
    }
    75% {
        transform: translate(-10px, -10px) rotate(1deg);
    }
}

@keyframes float-medium {
    0%, 100% {
        transform: translate(0, 0);
    }
    50% {
        transform: translate(-15px, -20px);
    }
}

/* Pulse Ring */
@keyframes pulse-ring {
    0% {
        transform: scale(0.8);
        opacity: 1;
    }
    100% {
        transform: scale(1.5);
        opacity: 0;
    }
}

/* Bounce */
@keyframes bounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

/* Scroll Indicator */
@keyframes scroll-bounce {
    0%, 100% {
        transform: translateY(0);
        opacity: 1;
    }
    50% {
        transform: translateY(10px);
        opacity: 0.5;
    }
}

/* Dashboard Float */
@keyframes dashboard-float {
    0%, 100% {
        transform: perspective(1000px) rotateX(2deg) rotateY(-2deg) translateY(0);
    }
    50% {
        transform: perspective(1000px) rotateX(0deg) rotateY(0deg) translateY(-10px);
    }
}

/* Card Hover Lift */
@keyframes card-lift {
    0% {
        transform: translateY(0);
        box-shadow: var(--shadow-md);
    }
    100% {
        transform: translateY(-8px);
        box-shadow: var(--shadow-lg);
    }
}

/* Gradient Flow */
@keyframes gradient-flow {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

/* Typewriter cursor */
@keyframes blink {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0;
    }
}

/* Check mark animation */
@keyframes check-in {
    0% {
        stroke-dashoffset: 24;
    }
    100% {
        stroke-dashoffset: 0;
    }
}

/* Number counter */
@keyframes number-pop {
    0% {
        transform: scale(0.5);
        opacity: 0;
    }
    70% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}
