/*======================================
    Scroll Animations (Replaces GSAP)
    CSS-based animations triggered by 
    IntersectionObserver in theme.js
========================================*/

/*----- Fade Up Animation (.pf_fadeup) -----*/
.pf_fadeup {
    opacity: 0;
    transform: translateY(70px);
    transition: opacity 1s ease, transform 1s ease;
}
.pf_fadeup.pf-nfadeup-active,
.pf_fadeup.pf-fadeup-active {
    opacity: 1;
    transform: translateY(0);
}

/*----- Zoom In Animation (.pf_zoomIn) -----*/
.pf_zoomIn {
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 1s ease, transform 1s ease;
}
.pf_zoomIn.pf-nzoomin-active,
.pf_zoomIn.pf-zoomin-active {
    opacity: 1;
    transform: scale(1);
}

/*----- Split Text Animation (.split) -----*/
.split {
    opacity: 0;
    transition: opacity 0.8s ease;
}
.split.pf-nsplit-active,
.split.pf-split-active {
    opacity: 1;
}

/*----- Text Animation (.text-anm) - Character stagger -----*/
.text-anm .pf-char {
    display: inline-block;
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.text-anm.pf-ntext-anm-active .pf-char,
.text-anm.pf-text-anm-active .pf-char {
    opacity: 1;
    transform: translateX(0);
}

/*----- Text Animation Two (.text-anm-two) - Looping elastic -----*/
.text-anm-two .pf-char-loop {
    display: inline-block;
    animation: pfCharElastic 3s ease-in-out infinite;
}

@keyframes pfCharElastic {
    0% {
        opacity: 0;
        transform: translateY(50px);
    }
    15% {
        opacity: 1;
        transform: translateY(0);
    }
    85% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-20px);
    }
}

/*----- Smooth Wrapper Fix (removed ScrollSmoother) -----*/
#smooth-wrapper {
    overflow: clip;
}
#smooth-content {
    will-change: auto;
}