/* ====================================
   ANIMATIONS
==================================== */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes waveFlow {
    0% {
        clip-path: path('M 0,0 C 20,20 50,0 100,20 L 100,0 L 0,0');
    }
    50% {
        clip-path: path('M 0,0 C 50,30 80,10 100,30 L 100,0 L 0,0');
    }
    100% {
        clip-path: path('M 0,0 C 30,10 60,30 100,10 L 100,0 L 0,0');
    }
}

@keyframes waveFlowFast {
    0% {
        clip-path: path('M 0,0 C 20,20 50,0 100,20 L 100,0 L 0,0');
    }
    50% {
        clip-path: path('M 0,0 C 50,35 80,15 100,35 L 100,0 L 0,0');
    }
    100% {
        clip-path: path('M 0,0 C 30,15 60,35 100,15 L 100,0 L 0,0');
    }
}

@keyframes pulseBackground {
    0% {
        opacity: 0.3;
        transform: scale(1);
    }
    100% {
        opacity: 0.6;
        transform: scale(1.2);
    }
}

@keyframes badgePulse {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.05);
    }
}

@keyframes gridMove {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 22px 22px;
    }
}

@keyframes pulse {
    0%, 100% {
        opacity: 0.3;
    }
    50% {
        opacity: 0.6;
    }
}

/* Movimentação de Padrões */
@keyframes moveHexagons {
    0% { background-position: 0 0, 0 0, 40px 70px, 40px 70px; }
    100% { background-position: 80px 0, 80px 0, 120px 70px, 120px 70px; }
}

@keyframes moveDiagonals {
    0% { background-position: 0 0; }
    100% { background-position: 40px 40px; }
}

@keyframes moveWaves {
    0% { background-position: 0 0; }
    100% { background-position: 0 80px; }
}

@keyframes moveTriangles {
    0% { background-position: 0 0; }
    100% { background-position: 60px 60px; }
}