/* All keyframe animations for amIrug.xyz */

@keyframes float {
    0% {
        transform: translateY(0px) rotateX(10deg) rotateY(-10deg);
    }
    50% {
        transform: translateY(-10px) rotateX(15deg) rotateY(5deg);
    }
    100% {
        transform: translateY(0px) rotateX(10deg) rotateY(-10deg);
    }
}

@keyframes glitch {
    0%, 5%, 95%, 100% {
        text-shadow: 0 0 5px #00ff00, 0 0 10px #00ff00, 0 0 20px #00ff00;
        transform: translateY(0px) rotateX(10deg) rotateY(-10deg);
    }
    1%, 4% {
        text-shadow: -2px 0 #0f0, 2px 0 #00ff00;
        transform: translateY(2px) rotateX(12deg) rotateY(-12deg);
    }
    2%, 3% {
        text-shadow: 2px 0 #0f0, -2px 0 #00ff00;
        transform: translateY(-2px) rotateX(8deg) rotateY(-8deg);
    }
}

@keyframes move {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 30px 30px;
    }
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes blink-text {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
    100% {
        opacity: 1;
    }
}

@keyframes typing {
    from { width: 0 }
    to { width: 100% }
}

@keyframes blink-caret {
    from, to { border-color: transparent }
    50% { border-color: #00ff00; }
}

@keyframes pulse {
    0% { text-shadow: 0 0 5px #00ff00, 0 0 10px #00ff00; }
    50% { text-shadow: 0 0 15px #00ff00, 0 0 30px #00ff00; }
    100% { text-shadow: 0 0 5px #00ff00, 0 0 10px #00ff00; }
}

@keyframes rotate3D {
    0% { transform: rotateX(10deg) rotateY(0deg); }
    25% { transform: rotateX(5deg) rotateY(90deg); }
    50% { transform: rotateX(-5deg) rotateY(180deg); }
    75% { transform: rotateX(-10deg) rotateY(270deg); }
    100% { transform: rotateX(10deg) rotateY(360deg); }
}

@keyframes blink {
    0%, 49% { opacity: 1; }
    50%, 100% { opacity: 0; }
}

@keyframes pulse-plus {
    0% { opacity: 0.6; }
    50% { opacity: 1; }
    100% { opacity: 0.6; }
}