@keyframes glitchText {

    0%,
    100% {
        text-shadow: 2px 0 var(--accent-teal), -2px 0 var(--accent-pink);
        transform: translate(0);
    }

    25% {
        text-shadow: -2px 0 var(--accent-teal), 2px 0 var(--accent-pink);
        transform: translate(2px, -1px);
    }

    50% {
        text-shadow: 2px 2px var(--accent-teal), -2px -2px var(--accent-pink);
        transform: translate(-1px, 2px);
    }

    75% {
        text-shadow: -2px -2px var(--accent-teal), 2px 2px var(--accent-pink);
        transform: translate(1px, -2px);
    }
}

@keyframes fadeSlideUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes cardReveal {
    from {
        opacity: 0;
        transform: translateY(40px) scale(0.92) rotateX(10deg);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1) rotateX(0);
    }
}

@keyframes float {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }
}

@keyframes scanMove {
    from {
        top: -30%;
    }

    to {
        top: 100%;
    }
}

@keyframes dotPulse {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.4);
    }
}

@keyframes bounceArrow {

    0%,
    100% {
        transform: translateY(0) translateX(-50%);
        opacity: 0.4;
    }

    50% {
        transform: translateY(8px) translateX(-50%);
        opacity: 0.8;
    }
}

@keyframes cursorPulse {

    0%,
    100% {
        opacity: 0.6;
    }

    50% {
        opacity: 1;
    }
}