/* Pre-anim states apply only before an element is marked as played */
.gfe-anim:not(.gfe-played)[data-gfe-preset^="fade"] { opacity: 0; }
.gfe-anim:not(.gfe-played)[data-gfe-preset="fade-up"]    { transform: translate3d(0, 20px, 0); }
.gfe-anim:not(.gfe-played)[data-gfe-preset="fade-down"]  { transform: translate3d(0, -20px, 0); }
.gfe-anim:not(.gfe-played)[data-gfe-preset="fade-left"]  { transform: translate3d(20px, 0, 0); }
.gfe-anim:not(.gfe-played)[data-gfe-preset="fade-right"] { transform: translate3d(-20px, 0, 0); }
.gfe-anim:not(.gfe-played)[data-gfe-preset="scale-in"]   { transform: scale(0.95); opacity: 0; }
.gfe-anim:not(.gfe-played)[data-gfe-preset="rotate-in"]  { transform: rotate(-4deg); opacity: 0; transform-origin: 50% 60%; }

/* --- NIEUWE PRE-ANIM STATES --- */

/* Wrapper voor image reveal moet zichtbaar zijn (opacity: 1) */
.gfe-anim:not(.gfe-played)[data-gfe-preset="image-reveal-clip"] {
    opacity: 1; 
    transform: none;
}
/* De IMG tag zelf is wel verborgen via clip-path */
.gfe-anim:not(.gfe-played)[data-gfe-preset="image-reveal-clip"] img {
    opacity: 1 !important; /* Moet 1 zijn voor GSAP */
    transform: scale(1.1);
    clip-path: inset(0 100% 0 0);
}

/* Pre-state voor button-pop */
.gfe-anim:not(.gfe-played)[data-gfe-preset="button-pop"] {
    opacity: 0;
    transform: scale(0.8);
}
/* Pre-state voor button-shake (begint gewoon onzichtbaar) */
.gfe-anim:not(.gfe-played)[data-gfe-preset="button-shake"] {
    opacity: 0;
    transform: none;
}
/* --- EINDE NIEUWE STATES --- */


.gfe-anim { 
    /* clip-path toegevoegd voor betere performance */
    will-change: transform, opacity, clip-path; 
}
.gfe-split span { display: inline-block; }

/* /assets/css/gfe-presets.css */
.gfe-wipe-outer { vertical-align: top; }
.gfe-wipe-cover { pointer-events: none; }

