@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 20px, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.animate-fade-in-up {
    animation: fadeInUp 0.5s ease-out forwards;
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.animate-scale-in {
    animation: scaleIn 0.3s ease-out forwards;
}

@keyframes vibrantPulse {

    0%,
    100% {
        box-shadow: 0 0 15px rgba(255, 0, 0, 0.4);
        transform: scale(1);
    }

    50% {
        box-shadow: 0 0 25px rgba(255, 0, 0, 0.7);
        transform: scale(1.02);
    }
}

.animate-vibrant-pulse {
    animation: vibrantPulse 2s infinite;
}

.no-scrollbar::-webkit-scrollbar {
    display: none;
}

.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.fade-enter-active,
.fade-leave-active {
    transition: opacity 0.3s ease;
}

.fade-enter-from,
.fade-leave-to {
    opacity: 0;
}

body {
    background-color: #0f0f0f;
    color: white;
    font-family: 'Roboto', sans-serif;
}