/* Fix for e-con containers */
[data-gsap-animate="true"] {
    opacity: 0;
}
[data-gsap-processed="true"] {
    opacity: 0;
}
.e-con.gsap-reveal-me {
    transform-style: preserve-3d;
    backface-visibility: hidden;
    will-change: transform, opacity, filter; /* Optimizes for animation */
}

/* Optional: Improve blur performance */
.e-con.gsap-reveal-me {
    transform: translateZ(0);
}

.gsap-text-appear .line,
.gsap-text-appear-2 .line {
    overflow: hidden;
    color: inherit;
}

.gsap-text-appear .line span,
.gsap-text-appear-2 .line span {
    color: inherit;
}

.gsap-text-appear .line .word,
.gsap-text-appear-2 .line .word {
    color: inherit;
}

.gsap-reveal-me {
    overflow: hidden;
    opacity: 0;
}

.gsap-animation.elementor-element:where(:not(.e-con)):where(:not(.e-div-block-base)) .elementor-widget-container, 
.gsap-animation.elementor-element:where(:not(.e-con)):where(:not(.e-div-block-base)):not(:has(.elementor-widget-container)) {
    transition: none !important;
}
.gsap-animation.e-con:where(:not(.e-div-block-base)) {
    transition: none !important;
}
.e-con:where(:not(.e-div-block-base)){
    transition: none !important;
}

/* Continuous vertical float (Image up down effect) */
.gsap-image-up-down {
    animation-name: gsap-image-up-down;
    animation-duration: var(--gsap-float-duration, 4s);
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    will-change: transform;
}

@keyframes gsap-image-up-down {
    0%,
    100% {
        transform: translateY(calc(-1 * var(--gsap-float-distance, 2%)));
    }
    50% {
        transform: translateY(var(--gsap-float-distance, 2%));
    }
}
