@keyframes neonPulse {
    0% {
        box-shadow: 0 0 10px rgba(255, 40, 80, 0.4),
                    0 0 30px rgba(255, 40, 80, 0.2);
    }
    50% {
        box-shadow: 0 0 18px rgba(255, 40, 80, 0.9),
                    0 0 40px rgba(255, 40, 80, 0.6);
    }
    100% {
        box-shadow: 0 0 10px rgba(255, 40, 80, 0.4),
                    0 0 30px rgba(255, 40, 80, 0.2);
    }
}

@keyframes gradientShift {
    0% {
        transform: translate3d(0, 0, 0);
    }
    50% {
        transform: translate3d(-20px, 10px, 0);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

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

@keyframes glow {
    0%, 100% {
        text-shadow: 0 0 10px rgba(255, 40, 80, 0.6);
    }
    50% {
        text-shadow: 0 0 18px rgba(255, 40, 80, 1);
    }
}

@keyframes glitch {
    0% {
        transform: translate(0);
    }
    20% {
        transform: translate(-1px, 1px);
    }
    40% {
        transform: translate(1px, -1px);
    }
    60% {
        transform: translate(-1px, -1px);
    }
    80% {
        transform: translate(1px, 1px);
    }
    100% {
        transform: translate(0);
    }
}

/* Helper classes */
.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.fade-in.is-visible {
    opacity: 1;
    transform: translateY(0);
}
