/* ===== ELEMENTOR EDITOR FIX ===== */
.elementor-editor-active .reveal-once,
.elementor-editor-active .reveal-repeat,
.elementor-editor-active .reveal-group-once > *,
.elementor-editor-active .reveal-group-repeat > *,

.elementor-editor-preview .reveal-once,
.elementor-editor-preview .reveal-repeat,
.elementor-editor-preview .reveal-group-once > *,
.elementor-editor-preview .reveal-group-repeat > * {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
}

/* ===== BASE ===== */
.reveal-once,
.reveal-repeat {
    opacity: 0;
    transform: translateY(20px) translateZ(0);
    transition: all 0.6s cubic-bezier(0.22, 1, 0.36, 1);
    backface-visibility: hidden;
    will-change: opacity, transform;
}

/* ===== DIRECTIONS ===== */
.reveal-once.from-left,
.reveal-repeat.from-left {
    transform: translateX(-30px) translateZ(0);
}

.reveal-once.from-right,
.reveal-repeat.from-right {
    transform: translateX(30px) translateZ(0);
}

.reveal-once.zoom-in,
.reveal-repeat.zoom-in {
    transform: scale(0.9) translateZ(0);
}

/* ===== VISIBLE ===== */
.reveal-once.is-visible,
.reveal-repeat.is-visible {
    opacity: 1;
    transform: none;
}

/* ===== GROUP ===== */
.reveal-group-once > *,
.reveal-group-repeat > * {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.6s ease;
}

.reveal-group-once > *.is-visible,
.reveal-group-repeat > *.is-visible {
    opacity: 1;
    transform: none;
}

/* ===== FLOAT ===== */
@keyframes float {
    0%,100%{ transform:translateY(0);}
    50%{ transform:translateY(-10px);}
}

.float-slow {
    animation: float 4s ease-in-out infinite;
}

/* ===== HOVER ===== */
.hover-lift {
    transition: 0.3s;
}
.hover-lift:hover {
    transform: translateY(-5px);
}

/* ===== REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce) {
    .reveal-once,
    .reveal-repeat,
    .reveal-group-once > *,
    .reveal-group-repeat > *,
    .float-slow {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
        transition: none !important;
    }
}
