/* ==================================================
   ANIMATIONS
   ================================================== */
.anim-fade-up {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity var(--transition-smooth), transform var(--transition-smooth);
    will-change: opacity, transform;
}
.anim-fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}

.anim-load-nav, .anim-load-title, .anim-load-text, .anim-load-btn {
    opacity: 0;
    animation: fadeUpLoad 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.anim-load-title { animation-delay: 0.2s; }
.anim-load-text { animation-delay: 0.4s; }
.anim-load-btn { animation-delay: 0.6s; }

@keyframes fadeUpLoad {
    0% { opacity: 0; transform: translateY(30px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes heroScale {
    0% { transform: scale(1.05); }
    100% { transform: scale(1); }
}
