/* ==========================================================================
   ANIMAÇÕES & KEYFRAMES VISUAIS
   - Pulso contínuo e salto ("Bounce & Pulse") do botão de cadastro estilo Rafael Volker
   - Efeito Shine Sweep (Reflexo de vidro / feixe de luz passando no botão)
   - Giro neon do anel do avatar
   - Radar e pulso do badge Ao Vivo
   ========================================================================== */

/* Giro suave do anel neon do avatar */
@keyframes spinRing {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

/* ==========================================================================
   ANIMAÇÃO DO BOTÃO "REALIZAR CADASTRO" ESTILO RAFAEL VOLKER
   Pulsando e pulando (Bounce + Neon Pulse Glow ritmado e contínuo)
   ========================================================================== */
@keyframes volkerBouncePulse {
    0% {
        transform: translateY(0) scale(1);
        box-shadow: 0 0 15px rgba(188, 19, 254, 0.4), 
                    0 4px 15px rgba(0, 0, 0, 0.6),
                    inset 0 0 10px rgba(188, 19, 254, 0.15);
        border-color: rgba(188, 19, 254, 0.7);
    }
    20% {
        transform: translateY(-5px) scale(1.025);
        box-shadow: 0 0 28px rgba(217, 70, 239, 0.85), 
                    0 10px 25px rgba(188, 19, 254, 0.5),
                    inset 0 0 18px rgba(240, 171, 252, 0.3);
        border-color: #f0abfc;
    }
    40% {
        transform: translateY(0) scale(0.995);
        box-shadow: 0 0 16px rgba(188, 19, 254, 0.5), 
                    0 4px 10px rgba(0, 0, 0, 0.7);
        border-color: rgba(188, 19, 254, 0.8);
    }
    60% {
        transform: translateY(-3px) scale(1.015);
        box-shadow: 0 0 24px rgba(217, 70, 239, 0.75), 
                    0 8px 20px rgba(188, 19, 254, 0.4);
        border-color: #e879f9;
    }
    80% {
        transform: translateY(0) scale(1);
        box-shadow: 0 0 18px rgba(188, 19, 254, 0.45);
        border-color: rgba(188, 19, 254, 0.75);
    }
    100% {
        transform: translateY(0) scale(1);
        box-shadow: 0 0 15px rgba(188, 19, 254, 0.4), 
                    0 4px 15px rgba(0, 0, 0, 0.6),
                    inset 0 0 10px rgba(188, 19, 254, 0.15);
        border-color: rgba(188, 19, 254, 0.7);
    }
}

/* ==========================================================================
   EFEITO SHINE SWEEP (FEIXE DE LUZ / REFLEXO DE VIDRO NÍTIDO E BRILHANTE)
   Cruza todo o botão em diagonal de forma bem visível
   ========================================================================== */
@keyframes shineSweepEffect {
    0% {
        transform: translateX(-180%) skewX(-25deg);
        opacity: 0;
    }
    15% {
        opacity: 1;
    }
    55% {
        transform: translateX(280%) skewX(-25deg);
        opacity: 1;
    }
    60% {
        opacity: 0;
    }
    100% {
        transform: translateX(280%) skewX(-25deg);
        opacity: 0;
    }
}

/* Pulsação sutil na barra de métricas */
@keyframes metricGlow {
    0% {
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5), inset 0 0 15px rgba(188, 19, 254, 0.1);
        border-color: rgba(188, 19, 254, 0.4);
    }
    100% {
        box-shadow: 0 6px 25px rgba(188, 19, 254, 0.25), inset 0 0 20px rgba(217, 70, 239, 0.2);
        border-color: rgba(217, 70, 239, 0.7);
    }
}

/* Brilho da etiqueta de parceira oficial */
@keyframes partnerGlow {
    0% {
        box-shadow: 0 0 10px rgba(217, 70, 239, 0.7), 0 2px 5px rgba(0,0,0,0.5);
    }
    100% {
        box-shadow: 0 0 22px rgba(232, 121, 249, 1), 0 0 10px rgba(188, 19, 254, 0.8);
    }
}

/* Pulsação do botão quando AO VIVO */
@keyframes livePulse {
    0% {
        box-shadow: 0 0 12px rgba(34, 197, 94, 0.4);
    }
    100% {
        box-shadow: 0 0 26px rgba(34, 197, 94, 0.8), 0 0 8px rgba(255, 255, 255, 0.8);
    }
}

/* Ondas de radar para o ponto da Live */
@keyframes liveRadar {
    0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.7);
    }
    70% {
        transform: scale(1.15);
        box-shadow: 0 0 0 10px rgba(34, 197, 94, 0);
    }
    100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(34, 197, 94, 0);
    }
}

/* Setinha indicativa descendo e subindo */
@keyframes bounceSlow {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(8px);
    }
    60% {
        transform: translateY(4px);
    }
}

/* Transição suave de abertura do player */
@keyframes expandFadeIn {
    from {
        opacity: 0;
        transform: translateY(-12px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}
