@keyframes particleFall { 0% { transform: translateY(0) translateX(0); opacity: 0; } 5% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateY(100vh) translateX(30px); opacity: 0; } }
@keyframes flickerFade { 0% { opacity: 0; transform: scale(0); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0; transform: scale(1); } }
@keyframes emberRise { 0% { transform: translateY(0) translateX(0); opacity: 1; } 100% { transform: translateY(-300px) translateX(var(--drift, 20px)); opacity: 0; } }
@keyframes toastSlide { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes adminSweep {
    0% {
        background-position: 0% 50%;
    }

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

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

@keyframes badgePulse {

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

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

@keyframes badgeGlow {

    0%,
    100% {
        box-shadow: 0 0 5px currentColor;
    }

    50% {
        box-shadow: 0 0 20px currentColor, 0 0 40px currentColor;
    }
}

@keyframes badgeShine {
    0% {
        filter: brightness(1);
    }

    50% {
        filter: brightness(1.4);
    }

    100% {
        filter: brightness(1);
    }
}

@keyframes badgeRainbow {
    0% {
        filter: hue-rotate(0deg);
    }

    100% {
        filter: hue-rotate(360deg);
    }
}

@keyframes badgeShimmer {

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

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

@keyframes badgeRotate {
    0% {
        filter: hue-rotate(0deg);
    }

    100% {
        filter: hue-rotate(360deg);
    }
}

@keyframes badgeBounce {

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

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

@keyframes badgeFlicker {

    0%,
    100% {
        opacity: 1;
    }

    25% {
        opacity: 0.6;
    }

    50% {
        opacity: 1;
    }

    75% {
        opacity: 0.7;
    }
}
