/* --- SCROLL ANIMATION SYSTEM --- */
.scroll-anim {
    opacity: 0;
    transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: transform, opacity;
}

.scroll-anim.animate-active {
    opacity: 1;
    transform: none !important;
}

/* Kategori Variasi */
.fade-in { opacity: 0; }
.slide-up { transform: translateY(50px); }
.slide-down { transform: translateY(-50px); }
.slide-left { transform: translateX(-50px); }
.slide-right { transform: translateX(50px); }
.zoom-in { transform: scale(0.85); }
.zoom-out { transform: scale(1.15); }

/* Navigation Extra Anim */
.text-animate-down {
    animation: slideDownNav 0.5s forwards ease-out;
}
@keyframes slideDownNav {
    from { transform: translateY(-100%); }
    to { transform: translateY(0); }
}

/* Typing Cursor Pulse */
.cursor {
    animation: blink 0.7s infinite;
    font-weight: 300;
}
@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}