/* ==========================================================================
   CRYPTOBIT - Animations
   ========================================================================== */

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-20px); }
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInLeft {
    from { opacity: 0; transform: translateX(-40px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes glow {
    0%, 100% { box-shadow: 0 0 15px rgba(123, 47, 247, 0.4); }
    50% { box-shadow: 0 0 35px rgba(123, 47, 247, 0.8); }
}

@keyframes pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}

.animate-float { animation: float 5s ease-in-out infinite; }
.animate-glow { animation: glow 3s ease-in-out infinite; }
.animate-pulse { animation: pulse 2.5s ease-in-out infinite; }
.animate-shake { animation: shake 0.4s ease; }

.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.reveal.active { opacity: 1; transform: translateY(0); }

.reveal-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.reveal-left.active { opacity: 1; transform: translateX(0); }

.reveal-right {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.reveal-right.active { opacity: 1; transform: translateX(0); }

.delay-1 { transition-delay: 0.15s; animation-delay: 0.15s; }
.delay-2 { transition-delay: 0.3s; animation-delay: 0.3s; }
.delay-3 { transition-delay: 0.45s; animation-delay: 0.45s; }
.delay-4 { transition-delay: 0.6s; animation-delay: 0.6s; }