@keyframes pulse {
    0% { opacity: 0.6; text-shadow: 0 0 0 cyan; }
    100% { opacity: 1; text-shadow: 0 0 10px cyan; }
}

.glitch {
    animation: pulse 1s infinite alternate;
}

.cursor-blink {
    display: inline-block;
    width: 10px;
    height: 20px;
    background: cyan;
    animation: blink 1s step-end infinite;
}

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

.fade-in {
    animation: fadeIn 1s ease-out;
}

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