@keyframes rainbow {
    100% {
        --angle: 1turn;
    }
}

@keyframes holographic-text {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

@keyframes cyberpunk-border {
    0% { filter: hue-rotate(0deg) brightness(1); }
    50% { filter: hue-rotate(180deg) brightness(1.2); }
    100% { filter: hue-rotate(360deg) brightness(1); }
}

@keyframes holographic-spin {
    100% { --holographic-angle: 360deg; }
}

@keyframes liquid-flow {
    0%, 100% { transform: rotate(0deg) scale(1); }
    33% { transform: rotate(120deg) scale(1.2); }
    66% { transform: rotate(240deg) scale(0.8); }
}

@keyframes matrix-scan {
    0% { transform: translateY(-100%); }
    100% { transform: translateY(100%); }
}

@keyframes glitch-text {
    0% { text-shadow: 0 0 10px #00ff00; }
    100% { text-shadow: 2px 0 0 #ff0000, -2px 0 0 #0000ff, 0 0 10px #00ff00; }
}

@keyframes glitch-shake {
    0% { transform: translate(0); }
    10% { transform: translate(-1px, -1px); }
    20% { transform: translate(1px, 1px); }
    30% { transform: translate(-1px, 1px); }
    40% { transform: translate(1px, -1px); }
    50% { transform: translate(-1px, -1px); }
    60% { transform: translate(1px, 1px); }
    70% { transform: translate(-1px, 1px); }
    80% { transform: translate(1px, -1px); }
    90% { transform: translate(-1px, -1px); }
    100% { transform: translate(0); }
}

@keyframes plasma-float {
    0%, 100% { transform: translate(0, 0) scale(1); }
    25% { transform: translate(50px, -30px) scale(1.2); }
    50% { transform: translate(-30px, 50px) scale(0.8); }
    75% { transform: translate(40px, 20px) scale(1.1); }
}

@keyframes plasma-glow {
    0% { text-shadow: 0 0 20px rgba(255, 255, 255, 0.8); }
    100% { text-shadow: 0 0 30px #ff006e, 0 0 40px #3a86ff; }
}

@keyframes crystalline-refract {
    0%, 100% { transform: translateX(-100%); }
    50% { transform: translateX(100%); }
}

@keyframes crystalline-shimmer {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

@keyframes quantum-orbit {
    100% { --quantum-rotation: 360deg; }
}

@keyframes quantum-pulse {
    0% { 
        transform: scale(1);
        opacity: 0.3;
    }
    100% { 
        transform: scale(1.1);
        opacity: 0.7;
    }
}

@keyframes quantum-particle-orbit-1 {
    100% { transform: rotate(360deg); }
}

@keyframes quantum-particle-orbit-2 {
    100% { transform: rotate(-360deg) scale(1.2); }
}

@keyframes quantum-core-pulse {
    0% {
        transform: scale(1);
        filter: blur(5px) brightness(1);
    }
    100% {
        transform: scale(1.2);
        filter: blur(2px) brightness(2);
    }
}

@keyframes quantum-ring-spin {
    100% { transform: rotate(360deg); }
}

@keyframes quantum-energy-scan {
    100% { transform: rotate(360deg); }
}

@keyframes quantum-text-glow {
    0% { 
        text-shadow: 
            0 0 10px rgba(255, 255, 255, 1),
            0 0 20px rgba(0, 255, 255, 0.8),
            0 0 30px rgba(255, 0, 255, 0.6),
            0 1px 3px rgba(0, 0, 0, 1),
            0 2px 6px rgba(0, 0, 0, 0.8);
        transform: perspective(1000px) translateZ(10px) scale(1);
    }
    100% { 
        text-shadow: 
            0 0 15px rgba(255, 255, 255, 1),
            0 0 30px rgba(0, 255, 255, 1),
            0 0 45px rgba(255, 0, 255, 0.8),
            0 1px 3px rgba(0, 0, 0, 1),
            0 2px 6px rgba(0, 0, 0, 0.8);
        transform: perspective(1000px) translateZ(10px) scale(1.05);
    }
}

@keyframes quantum-explosion {
    0% { 
        transform: scale(1.1) rotateY(15deg) rotateX(10deg) translateZ(20px);
        filter: brightness(1.1) saturate(1.5) hue-rotate(0deg);
    }
    25% {
        transform: scale(1.5) rotateY(180deg) rotateX(90deg) translateZ(50px);
        filter: brightness(1.2) saturate(2) hue-rotate(90deg);
    }
    50% {
        transform: scale(2) rotateY(360deg) rotateX(180deg) translateZ(100px);
        filter: brightness(1.4) saturate(2) hue-rotate(180deg);
    }
    75% {
        transform: scale(1.8) rotateY(540deg) rotateX(270deg) translateZ(80px);
        filter: brightness(1.3) saturate(1.8) hue-rotate(270deg);
    }
    100% {
        transform: scale(1.1) rotateY(720deg) rotateX(360deg) translateZ(20px);
        filter: brightness(1.2) saturate(1.5) hue-rotate(360deg);
    }
}

@keyframes quantum-shockwave {
    0% {
        transform: scale(1);
        opacity: 0.8;
        filter: blur(30px);
    }
    50% {
        transform: scale(3);
        opacity: 1;
        filter: blur(20px);
    }
    100% {
        transform: scale(6);
        opacity: 0;
        filter: blur(80px);
    }
}

@keyframes quantum-core-explosion {
    0% {
        transform: scale(1);
        filter: blur(5px) brightness(1);
    }
    25% {
        transform: scale(0.5);
        filter: blur(2px) brightness(5);
    }
    50% {
        transform: scale(3);
        filter: blur(20px) brightness(3);
    }
    75% {
        transform: scale(2);
        filter: blur(10px) brightness(2);
    }
    100% {
        transform: scale(1);
        filter: blur(5px) brightness(1);
    }
}

@keyframes quantum-text-explosion {
    0% {
        transform: perspective(1000px) rotateX(0deg) scale(1);
        filter: blur(0px);
    }
    25% {
        transform: perspective(1000px) rotateX(90deg) scale(1.5);
        filter: blur(2px);
    }
    50% {
        transform: perspective(1000px) rotateX(180deg) scale(2);
        filter: blur(5px);
    }
    75% {
        transform: perspective(1000px) rotateX(270deg) scale(1.5);
        filter: blur(2px);
    }
    100% {
        transform: perspective(1000px) rotateX(360deg) scale(1);
        filter: blur(0px);
    }
}

@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-8px); }
}

@keyframes refract {
    0%, 100% { 
        transform: perspective(1000px) rotateX(0deg) rotateY(0deg);
        filter: blur(20px) hue-rotate(0deg);
    }
    25% { 
        transform: perspective(1000px) rotateX(1deg) rotateY(-0.5deg);
        filter: blur(22px) hue-rotate(90deg);
    }
    50% { 
        transform: perspective(1000px) rotateX(-0.5deg) rotateY(1deg);
        filter: blur(18px) hue-rotate(180deg);
    }
    75% { 
        transform: perspective(1000px) rotateX(0.5deg) rotateY(-1deg);
        filter: blur(24px) hue-rotate(270deg);
    }
}

@keyframes holographic {
    0%, 100% { 
        background-position: 0% 50%;
        opacity: 0.3;
    }
    50% { 
        background-position: 100% 50%;
        opacity: 0.6;
    }
}

@keyframes shine {
    0% { left: -100%; opacity: 0; }
    50% { opacity: 1; }
    100% { left: 100%; opacity: 0; }
}

@keyframes chromatic-shift {
    0%, 100% {
        text-shadow: 
            0 0 20px rgba(255, 255, 255, 0.8),
            -2px -2px 0 rgba(255, 0, 128, 0.6),
            2px 2px 0 rgba(0, 128, 255, 0.6);
    }
    33% {
        text-shadow: 
            0 0 20px rgba(255, 255, 255, 0.8),
            -2px -2px 0 rgba(0, 255, 128, 0.6),
            2px 2px 0 rgba(255, 128, 0, 0.6);
    }
    66% {
        text-shadow: 
            0 0 20px rgba(255, 255, 255, 0.8),
            -2px -2px 0 rgba(128, 0, 255, 0.6),
            2px 2px 0 rgba(255, 255, 0, 0.6);
    }
}

@keyframes ripple {
    0% {
        transform: scale(0);
        opacity: 0.8;
    }
    100% {
        transform: scale(2);
        opacity: 0;
    }
}

@keyframes cyberpunk-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); box-shadow: 0 0 50px #00ffff, 0 0 70px #ff00ff; }
    100% { transform: scale(1); }
}

@keyframes holographic-burst {
    0% { transform: scale(1); filter: hue-rotate(0deg) brightness(1); }
    50% { transform: scale(1.15) rotateY(20deg) rotateX(15deg); filter: hue-rotate(180deg) brightness(2); }
    100% { transform: scale(1); filter: hue-rotate(360deg) brightness(1); }
}

@keyframes liquid-ripple {
    0% { transform: scale(1); }
    30% { transform: scale(1.05); }
    60% { transform: scale(0.98); }
    100% { transform: scale(1); }
}

@keyframes ripple-expand {
    0% { transform: scale(0); opacity: 1; }
    100% { transform: scale(2); opacity: 0; }
}

@keyframes crack-spread {
    0% {
        background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
        opacity: 0;
    }
    20% {
        background-size: 40% 40%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
        opacity: 1;
    }
    40% {
        background-size: 80% 80%, 50% 50%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
    }
    60% {
        background-size: 120% 120%, 90% 90%, 60% 60%, 60% 60%, 0% 0%, 0% 0%;
    }
    80% {
        background-size: 150% 150%, 120% 120%, 100% 100%, 100% 100%, 70% 70%, 70% 70%;
    }
    100% {
        background-size: 180% 180%, 150% 150%, 130% 130%, 130% 130%, 110% 110%, 110% 110%;
        opacity: 0.4;
    }
}

@keyframes fragment-scatter {
    0% {
        transform: scale(0) rotate(0deg);
        opacity: 0;
    }
    30% {
        opacity: 1;
    }
    100% {
        transform: scale(1.5) rotate(15deg) translate(20px, -15px);
        opacity: 0;
    }
}

@keyframes impact-pulse {
    0% {
        transform: translate(-50%, -50%) scale(0);
        opacity: 1;
    }
    50% {
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) scale(8);
        opacity: 0;
    }
}

@keyframes glitch-breach {
    0% { transform: translate(0); filter: brightness(1); }
    10% { transform: translate(-3px, 2px); filter: brightness(2) hue-rotate(90deg); }
    20% { transform: translate(2px, -3px); filter: brightness(0.5) hue-rotate(180deg); }
    30% { transform: translate(-2px, -2px); filter: brightness(3) hue-rotate(270deg); }
    40% { transform: translate(3px, 3px); filter: brightness(0.3) hue-rotate(360deg); }
    50% { transform: translate(-1px, 3px); filter: brightness(2.5) hue-rotate(45deg); }
    60% { transform: translate(2px, -1px); filter: brightness(0.8) hue-rotate(135deg); }
    70% { transform: translate(-3px, 1px); filter: brightness(1.8) hue-rotate(225deg); }
    80% { transform: translate(1px, -2px); filter: brightness(1.2) hue-rotate(315deg); }
    90% { transform: translate(-1px, -1px); filter: brightness(1.5) hue-rotate(90deg); }
    100% { transform: translate(0); filter: brightness(1); }
}

@keyframes plasma-explosion {
    0% { transform: scale(1); }
    20% { transform: scale(1.2); }
    40% { transform: scale(0.9); }
    60% { transform: scale(1.1); }
    80% { transform: scale(0.95); }
    100% { transform: scale(1); }
}

@keyframes crystalline-shatter {
    0% { transform: scale(1) rotate(0deg); }
    25% { transform: scale(1.1) rotate(-2deg); }
    50% { transform: scale(0.8) rotate(2deg) skew(5deg); }
    75% { transform: scale(1.05) rotate(-1deg) skew(-2deg); }
    100% { transform: scale(1) rotate(0deg); }
}