/* Animations */
@keyframes pulse-caret {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes pop {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    100% {
        transform: scale(0);
        opacity: 0;
        top: -20px;
    }
}

@keyframes keyPress {
    0%, 100% {
        background: #0a0a0a;
        color: #444;
        border-color: #222;
        transform: translateY(0);
        box-shadow: 0 1px 0 #111;
    }
    50% {
        background: #fff;
        color: #000;
        border-color: #fff;
        transform: translateY(2px);
        box-shadow: 0 0 15px rgba(255, 255, 255, 0.4);
    }
}

@keyframes loadProgress {
    from { width: 0%; }
    to { width: 100%; }
}

@keyframes glowPulse {
    0%, 100% { text-shadow: 0 0 20px rgba(255, 255, 255, 0.2); }
    50% { text-shadow: 0 0 40px rgba(255, 255, 255, 0.8); }
}

@keyframes shake {
    10%, 90% { transform: translate3d(-1px, 0, 0); }
    20%, 80% { transform: translate3d(2px, 0, 0); }
    30%, 50%, 70% { transform: translate3d(-4px, 0, 0); }
    40%, 60% { transform: translate3d(4px, 0, 0); }
}

@keyframes skullPulse {
    0%, 100% {
        transform: scale(1);
        filter: drop-shadow(0 0 5px rgba(239, 68, 68, 0.4));
    }
    50% {
        transform: scale(1.1);
        filter: drop-shadow(0 0 12px rgba(239, 68, 68, 0.9));
    }
}