/* Base hidden state */
.ravielson-reveal {
    opacity: 1; /* Default visible, hidden by .rv-fade-yes */
    transition-property: opacity, transform, filter;
    transition-duration: var(--re-duration, 800ms);
    transition-delay: var(--re-delay, 0ms);
    transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1); /* Out Quart - very gradual and professional */
    will-change: opacity, transform;
    
    /* Variable defaults */
    --rv-tx: 0px;
    --rv-ty: 0px;
    --rv-scale: 1;
    
    transform: translate(var(--rv-tx), var(--rv-ty)) scale(var(--rv-scale));
}

/* Fade component */
.rv-fade-yes {
    opacity: 0;
}

/* Slide components */
.rv-slide-up    { --rv-ty: var(--rv-slide-dist, 50px); }
.rv-slide-down  { --rv-ty: calc(-1 * var(--rv-slide-dist, 50px)); }
.rv-slide-left  { --rv-tx: var(--rv-slide-dist, 50px); }
.rv-slide-right { --rv-tx: calc(-1 * var(--rv-slide-dist, 50px)); }

/* Zoom components */
.rv-zoom-in  { --rv-scale: var(--rv-zoom-scale, 0.8); }
.rv-zoom-out { --rv-scale: var(--rv-zoom-scale, 1.2); }

/* Revealed state - Resets everything to mid-ground */
.ravielson-reveal.is-revealed {
    opacity: 1 !important;
    transform: translate(0, 0) scale(1) !important;
}

/* Ensure Elementor doesn't clip our reveals */
.elementor-widget.ravielson-reveal,
.elementor-column.ravielson-reveal,
.elementor-section.ravielson-reveal {
    overflow: visible !important;
}

/* EDITOR FIX: Force visibility in Elementor Editor environment */
.elementor-edit-mode .ravielson-reveal,
.elementor-edit-mode [class*="rv-fade-"],
.elementor-edit-mode [class*="rv-slide-"],
.elementor-edit-mode [class*="rv-zoom-"],
.elementor-editor-active .ravielson-reveal {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
    visibility: visible !important;
}
