@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(60px); 
        filter: blur(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
}

@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

.animate-float {
    animation: float 6s ease-in-out infinite; 
}


.reveal, .fade-in-left, .fade-in-right {
    opacity: 0;
    will-change: transform, opacity;
    
    transition: all 1.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal { transform: translateY(60px); }
.fade-in-left { transform: translateX(-60px); }
.fade-in-right { transform: translateX(60px); }


.reveal.active, 
.fade-in-left.active, 
.fade-in-right.active {
    opacity: 1;
    transform: translate(0);
}

.delay-100 { transition-delay: 200ms; }
.delay-200 { transition-delay: 400ms; }
.delay-300 { transition-delay: 600ms; }
.delay-400 { transition-delay: 800ms; }


.hover-scale {
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.hover-scale:hover {
    transform: scale(1.03); 
}


@media (max-width: 768px) {
    .reveal, .fade-in-left, .fade-in-right {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}