/* CONTENEDORES DE EFECTO - COPIA ESTO */
    .xioleni-effect-wrapper {
        display: inline-block;
        position: relative;
        text-align: inherit;
    }

    .xioleni-effect-content {
        display: inline-block;
        text-align: inherit;
    }

    /* EFECTOS POR CARÁCTER */
    .xioleni-char-effect {
        display: inline-block;
        position: relative;
        animation-fill-mode: both;
    }

    /* INTERACCIONES MEJORADAS */
    [class*="xioleni-text-interaccion-"] {
        display: inline-block;
        transition: all 0.3s ease;
    }

    .xioleni-text-interaccion-zoom:hover {
        transform: scale(1.1);
    }

    .xioleni-text-interaccion-shake:hover {
        animation: xioleniShake 0.5s infinite;
    }

    .xioleni-text-interaccion-pulse:hover {
        animation: xioleniPulse 1s infinite;
    }

    .xioleni-text-interaccion-rotate:hover {
        transform: rotate(5deg);
    }

    .xioleni-text-interaccion-expand:hover {
        letter-spacing: 2px;
    }

    /* BUCLE INFINITO */
    [class*="xioleni-text-bucle-"] {
        display: inline-block;
        animation-iteration-count: infinite;
    }

    .xioleni-text-bucle-pulse {
        animation: xioleniPulse 1.5s infinite;
    }

    .xioleni-text-bucle-swing {
        animation: xioleniSwing 3s infinite;
        transform-origin: top center;
    }

    .xioleni-text-bucle-spin {
        animation: xioleniSpin 4s infinite linear;
    }

    .xioleni-text-bucle-wave .xioleni-char-effect {
        animation: xioleniWaveChar 1.5s infinite ease-in-out;
    }

    /* === SISTEMA DE EFECTOS SEGURO === */
    .xioleni-char-effect-container {
        display: inline-block !important;
        position: relative;
        unicode-bidi: plaintext;
        line-height: inherit !important;
        vertical-align: baseline !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .xioleni-char-effect-wrapper {
        display: inline-block !important;
        position: relative;
        vertical-align: baseline !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .xioleni-char-effect {
        display: inline-block !important;
        position: relative;
        transform-origin: center center;
        backface-visibility: hidden;
        animation-fill-mode: both;
        vertical-align: baseline !important;
    }

    /* Animaciones específicas */
    @keyframes xioleniRain {
        0% { transform: translateY(-20px); opacity: 0; }
        100% { transform: translateY(0); opacity: 1; }
    }

    @keyframes xioleniSpin {
        0% { transform: rotateZ(0); }
        100% { transform: rotateZ(360deg); }
    }

    @keyframes xioleniWave {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(-5px); }
    }

    @keyframes xioleniPulse {
        0%, 100% { transform: scale(1); }
        50% { transform: scale(1.1); }
    }

    /* Clases de efectos */
    .xioleni-rain-effect .xioleni-char-effect {
        animation: xioleniRain 0.6s forwards;
    }

    .xioleni-spin-effect .xioleni-char-effect {
        animation: xioleniSpin 2s infinite linear;
    }

    .xioleni-wave-effect .xioleni-char-effect {
        animation: xioleniWave 1.5s infinite ease-in-out;
    }

    .xioleni-pulse-effect .xioleni-char-effect {
        animation: xioleniPulse 1s infinite ease-in-out;
    }

    /* === SISTEMA BASE PARA EFECTOS - NO MODIFICAR === */

    /* ===== SOLUCIÓN ESPECÍFICA PARA EL MURO ===== */
    .xioleni-post-content {
        all: initial; /* Reset para el contenedor */
        font-family: inherit;
        color: inherit;
        white-space: normal !important;
    }

    .xioleni-post-content > * {
        display: inline !important;
        white-space: normal !important;
        vertical-align: baseline !important;
    }

    /* Contenedores de efectos */
    .xioleni-post-content .xioleni-effect-container,
    .xioleni-post-content .xioleni-effect-wrapper {
        display: inline-block !important;
        white-space: nowrap !important;
        vertical-align: baseline !important;
    }

    /* Efectos individuales */
    .xioleni-post-content [class*="xioleni-text-"] {
        display: inline-block !important;
        position: relative;
        unicode-bidi: plaintext;
        vertical-align: baseline !important;
    }

    /* Alineaciones preservadas */
    .xioleni-post-content .xioleni-text-left {
        text-align: left !important;
        display: inline-block !important;
    }

    .xioleni-post-content .xioleni-text-center {
        text-align: center !important;
        display: inline-block !important;
    }

    .xioleni-post-content .xioleni-text-right {
        text-align: right !important;
        display: inline-block !important;
    }

    /* Efectos por carácter */
    .xioleni-post-content .xioleni-per-char-effect {
        display: inline-block !important;
        white-space: nowrap !important;
        vertical-align: baseline !important;
    }

    .xioleni-post-content .xioleni-char-effect {
        display: inline-block !important;
        position: relative;
        vertical-align: baseline !important;
    }

    /* ===== CORRECCIONES ESPECÍFICAS PARA EL MURO ===== */
    .xioleni-post-content {
        font-family: inherit;
        color: inherit;
        line-height: normal;
        white-space: normal !important;
    }

    /* Contenedor principal para preservar efectos */
    .xioleni-post-content .xioleni-effect-preserver {
        display: inline-block;
        position: relative;
        white-space: nowrap;
    }

    /* Correcciones para efectos de bucle */
    .xioleni-post-content .xioleni-text-bucle-swing {
        display: inline-block !important;
        animation: xioleniSwing 3s ease-in-out infinite !important;
        transform-origin: top center !important;
    }

    /* Correcciones para efectos de interacción */
    .xioleni-post-content .xioleni-text-interaccion-zoom:hover {
        transform: scale(1.1) !important;
    }

    .xioleni-post-content .xioleni-text-interaccion-rotate:hover {
        animation: xioleniSpin 2s linear infinite !important;
    }

    .xioleni-post-content .xioleni-text-interaccion-pulse:hover {
        animation: xioleniPulse 1s infinite !important;
    }

    .xioleni-post-content .xioleni-text-interaccion-shake:hover {
        animation: xioleniShake 0.5s infinite !important;
    }

    /* Correcciones para efectos de entrada */
    .xioleni-post-content .xioleni-text-entrada-slide-left {
        animation: none !important; /* Eliminar animación del contenedor principal */
        display: inline !important;
        float: none !important;
        position: relative !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-right {
        animation: none !important; /* Eliminar animación del contenedor principal */
        display: inline !important;
        float: none !important;
        position: relative !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-up {
        animation: none !important; /* Eliminar animación del contenedor principal */
        display: inline !important;
        float: none !important;
        position: relative !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-down {
        animation: none !important; /* Eliminar animación del contenedor principal */
        display: inline !important;
        float: none !important;
        position: relative !important;
    }

    /* Aplicar animaciones solamente a los spans internos para mantener el flujo de texto */
    .xioleni-post-content .xioleni-text-entrada-slide-left span,
    .xioleni-post-content .xioleni-text-entrada-slide-right span,
    .xioleni-post-content .xioleni-text-entrada-slide-up span,
    .xioleni-post-content .xioleni-text-entrada-slide-down span {
        display: inline-block !important;
        vertical-align: baseline !important;
        font-size: inherit !important;
        font-family: inherit !important;
        line-height: inherit !important;
        color: inherit !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        background: none !important;
    }

    /* Asegurar compatibilidad con degradados */
    .xioleni-post-content [class*="xioleni-text-entrada-slide"][style*="background-clip"],
    .xioleni-post-content [class*="xioleni-text-entrada-slide"][style*="-webkit-background-clip"],
    .xioleni-post-content [class*="xioleni-text-entrada-slide"][data-has-gradient="true"],
    .xioleni-post-content [class*="xioleni-text-entrada-slide"][data-xioleni-has-gradient="true"] {
        -webkit-background-clip: text !important;
        background-clip: text !important;
        color: transparent !important;
    }

    /* Typewriter - solución especial */
    .xioleni-post-content .xioleni-tw-container {
        display: inline-flex !important;
        vertical-align: top !important;
        margin-right: 0.5em !important;
    }

    /* Correcciones para preservar efectos y degradados en publicación */
    .xioleni-post-content [data-xioleni-has-gradient="true"],
    .xioleni-post-content [data-gradient-css],
    .xioleni-post-content [data-xioleni-gradient],
    .xioleni-post-content [data-xioleni-gradient-fixed="true"],
    .xioleni-post-content [style*="background-clip: text"],
    .xioleni-post-content [style*="-webkit-background-clip: text"] {
        color: transparent !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        display: inline-block !important;
    }

    /* Forzar color transparente en elementos con degradado y efecto */
    [class*="xioleni-text-"] [data-xioleni-has-gradient="true"],
    [class*="xioleni-text-"] [data-gradient-css],
    [class*="xioleni-text-"] [data-xioleni-gradient],
    [class*="xioleni-text-"] [data-xioleni-gradient-fixed="true"],
    [class*="xioleni-text-"] [style*="background-clip: text"],
    [class*="xioleni-text-"] [style*="-webkit-background-clip: text"] {
        color: transparent !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
    }

    /* Garantizar que los elementos con efectos preserven los degradados */
    .xioleni-text-entrada-typewriter[style*="background-clip"],
    .xioleni-text-bucle-typewriter-loop[style*="background-clip"],
    .xioleni-text-entrada-rain[style*="background-clip"],
    .xioleni-text-entrada-slide-left[style*="background-clip"],
    .xioleni-text-entrada-slide-right[style*="background-clip"],
    .xioleni-text-entrada-slide-up[style*="background-clip"],
    .xioleni-text-entrada-slide-down[style*="background-clip"],
    .xioleni-text-bucle-pulse[style*="background-clip"],
    .xioleni-text-bucle-swing[style*="background-clip"],
    .xioleni-text-bucle-wave[style*="background-clip"],
    .xioleni-text-bucle-spin[style*="background-clip"],
    .xioleni-text-interaccion-zoom[style*="background-clip"],
    .xioleni-text-interaccion-shake[style*="background-clip"],
    .xioleni-text-interaccion-pulse[style*="background-clip"],
    .xioleni-text-interaccion-rotate[style*="background-clip"],
    .xioleni-text-interaccion-expand[style*="background-clip"] {
        color: transparent !important;
        display: inline-block !important;
    }

    /* Misma regla para degradados con -webkit-background-clip */
    .xioleni-text-entrada-typewriter[style*="-webkit-background-clip"],
    .xioleni-text-bucle-typewriter-loop[style*="-webkit-background-clip"],
    .xioleni-text-entrada-rain[style*="-webkit-background-clip"],
    .xioleni-text-entrada-slide-left[style*="-webkit-background-clip"],
    .xioleni-text-entrada-slide-right[style*="-webkit-background-clip"],
    .xioleni-text-entrada-slide-up[style*="-webkit-background-clip"],
    .xioleni-text-entrada-slide-down[style*="-webkit-background-clip"],
    .xioleni-text-bucle-pulse[style*="-webkit-background-clip"],
    .xioleni-text-bucle-swing[style*="-webkit-background-clip"],
    .xioleni-text-bucle-wave[style*="-webkit-background-clip"],
    .xioleni-text-bucle-spin[style*="-webkit-background-clip"],
    .xioleni-text-interaccion-zoom[style*="-webkit-background-clip"],
    .xioleni-text-interaccion-shake[style*="-webkit-background-clip"],
    .xioleni-text-interaccion-pulse[style*="-webkit-background-clip"],
    .xioleni-text-interaccion-rotate[style*="-webkit-background-clip"],
    .xioleni-text-interaccion-expand[style*="-webkit-background-clip"] {
        color: transparent !important;
        display: inline-block !important;
    }

    /* Forzar colores normales para elementos con efectos pero sin degradado */
    .xioleni-text-entrada-typewriter:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-bucle-typewriter-loop:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-entrada-rain:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-entrada-slide-left:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-entrada-slide-right:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-entrada-slide-up:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-entrada-slide-down:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-bucle-pulse:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-bucle-swing:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-bucle-wave:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-bucle-spin:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-interaccion-zoom:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-interaccion-shake:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-interaccion-pulse:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-interaccion-rotate:not([style*="background-clip"]):not([style*="-webkit-background-clip"]),
    .xioleni-text-interaccion-expand:not([style*="background-clip"]):not([style*="-webkit-background-clip"]) {
        color: inherit !important;
    }

    /* El color de texto debe ser transparente para elementos con degradado */
    [style*="background-clip: text"],
    [style*="-webkit-background-clip: text"],
    [data-has-gradient="true"],
    [data-xioleni-has-gradient="true"],
    [data-xioleni-gradient-fixed="true"] {
        color: transparent !important;
    }

    /* Aplicar !important a todos los estilos inline de background y background-clip para elementos con efectos */
    .xioleni-post-content [class*="xioleni-text-"] {
        background-image: var(--xioleni-bg-image, none) !important;
        background: var(--xioleni-bg, inherit) !important;
        -webkit-background-clip: var(--xioleni-bg-clip, inherit) !important;
        background-clip: var(--xioleni-bg-clip, inherit) !important;
        color: var(--xioleni-color, inherit) !important;
    }

    /* Asegurar que los elementos con efecto puedan mostrar su contenido */
    .xioleni-post-content [class*="xioleni-text-"] {
        display: inline-block !important;
        max-width: 100% !important;
    }

    /* SOLUCIÓN DEFINITIVA PARA GRADIENTES Y COLORES */
    /* Selector con la mayor especificidad posible para forzar color transparente */
    html body div span[style*="background-clip: text"],
    html body div span[style*="-webkit-background-clip: text"],
    html body div span[data-has-gradient="true"],
    html body div span[data-xioleni-has-gradient="true"],
    html body div span[data-gradient-css],
    html body div span[data-xioleni-gradient] {
        color: transparent !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        display: inline-block !important;
    }

    /* Selector para publicación */
    html body .xioleni-post-content span[style*="background-clip: text"],
    html body .xioleni-post-content span[style*="-webkit-background-clip: text"],
    html body .xioleni-post-content span[data-has-gradient="true"],
    html body .xioleni-post-content span[data-xioleni-has-gradient="true"],
    html body .xioleni-post-content span[data-gradient-css],
    html body .xioleni-post-content span[data-xioleni-gradient] {
        color: transparent !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        display: inline-block !important;
    }

    /* Selector para ID específico de elementos con degradado */
    [id^="xioleni-gradient-"] {
        color: transparent !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
    }

    /* Esta regla anula cualquier otra para textos con degradado */
    [id][style*="background-clip: text"] {
        color: transparent !important;
    }

    /* Reglas para degradados específicos por efecto */
    span.xioleni-text-entrada-typewriter[style*="background-clip: text"],
    span.xioleni-text-entrada-rain[style*="background-clip: text"],
    span.xioleni-text-entrada-slide-left[style*="background-clip: text"],
    span.xioleni-text-entrada-slide-right[style*="background-clip: text"],
    span.xioleni-text-entrada-slide-up[style*="background-clip: text"],
    span.xioleni-text-entrada-slide-down[style*="background-clip: text"],
    span.xioleni-text-bucle-pulse[style*="background-clip: text"],
    span.xioleni-text-bucle-swing[style*="background-clip: text"],
    span.xioleni-text-bucle-wave[style*="background-clip: text"],
    span.xioleni-text-bucle-spin[style*="background-clip: text"],
    span.xioleni-text-interaccion-zoom[style*="background-clip: text"],
    span.xioleni-text-interaccion-shake[style*="background-clip: text"],
    span.xioleni-text-interaccion-pulse[style*="background-clip: text"],
    span.xioleni-text-interaccion-rotate[style*="background-clip: text"],
    span.xioleni-text-interaccion-expand[style*="background-clip: text"] {
        color: transparent !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
    }

    /* Reglas para distintos navegadores */
    @media screen and (-webkit-min-device-pixel-ratio:0) {
        [style*="background-clip: text"] {
            color: transparent !important;
        }
    }

    @-moz-document url-prefix() {
        [style*="background-clip: text"] {
            color: transparent !important;
        }
    }

    /* Reglas para iOS */
    @supports (-webkit-touch-callout: none) {
        [style*="background-clip: text"] {
            color: transparent !important;
        }
    }

    /* Reglas para publicación */
    .xioleni-post-content [class*="xioleni-text-"][style*="background-clip: text"],
    .xioleni-post-content [class*="xioleni-text-"][data-has-gradient="true"] {
        color: transparent !important;
    }

    /* Reglas para preservar color normal en elementos con efectos */
    .xioleni-text-entrada-typewriter:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-entrada-rain:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-entrada-slide-left:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-entrada-slide-right:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-entrada-slide-up:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-entrada-slide-down:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-bucle-pulse:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-bucle-swing:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-bucle-wave:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-bucle-spin:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-interaccion-zoom:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-interaccion-shake:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-interaccion-pulse:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-interaccion-rotate:not([style*="background-clip: text"]):not([data-has-gradient="true"]),
    .xioleni-text-interaccion-expand:not([style*="background-clip: text"]):not([data-has-gradient="true"]) {
        color: inherit;
    }

    /* Reglas para la publicación de color normal */
    .xioleni-post-content [class*="xioleni-text-"]:not([style*="background-clip: text"]):not([data-has-gradient="true"]) {
        color: inherit;
    }

    /* Reglas para preservar alineación de texto con efectos */
    /* ... código existente ... */

    /* SOLUCIÓN MEJORADA PARA EFECTOS Y COLORES */
    /* Estas reglas modifican el comportamiento para evitar que el color blanco fijo se aplique a los textos con efectos */

    /* 1. REGLA PARA MANTENER COLORES PERSONALIZADOS EN EFECTOS */
    /* Esta regla asegura que los elementos con efectos hereden su color original y no tengan color blanco fijo */
    span[class*="xioleni-text-"]:not([style*="background-clip"]):not([style*="-webkit-background-clip"]):not([data-has-gradient="true"]):not([data-xioleni-has-gradient="true"]) {
        color: inherit !important; /* Hereda el color sin sobreescribirlo con blanco */
    }

    /* 2. APLICAR COLOR NORMAL A LOS EFECTOS SIN DEGRADADO */
    .xioleni-text-entrada-typewriter:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-entrada-rain:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-entrada-slide-left:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-entrada-slide-right:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-entrada-slide-up:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-entrada-slide-down:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-bucle-pulse:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-bucle-swing:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-bucle-wave:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-bucle-spin:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-interaccion-zoom:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-interaccion-shake:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-interaccion-pulse:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-interaccion-rotate:not([style*="background-clip"]):not([data-has-gradient="true"]),
    .xioleni-text-interaccion-expand:not([style*="background-clip"]):not([data-has-gradient="true"]) {
        color: inherit !important; /* Asegura que se hereda el color original */
    }

    /* 3. REGLA PARA ELEMENTOS CON COLOR PERSONALIZADO DENTRO DE EFECTOS */
    [class*="xioleni-text-"][style*="color:"],
    [class*="xioleni-text-"][style*="color="],
    [class*="xioleni-text-"][data-xioleni-color],
    [class*="xioleni-text-"][data-original-color],
    [class*="xioleni-text-"][data-color-hsla] {
        color: var(--xioleni-color, attr(data-xioleni-color)) !important;
    }

    /* 4. ELIMINAR COLOR BLANCO FIJO DE LOS CARACTERES DENTRO DE EFECTOS */
    span[class*="xioleni-text-"] span.xioleni-char-effect {
        color: inherit !important; /* Las letras individuales heredan el color del contenedor */
    }

    /* 5. PRESERVAR COLORES PERSONALIZADOS EN LA PUBLICACIÓN */
    .xioleni-post-content [class*="xioleni-text-"]:not([style*="background-clip"]):not([data-has-gradient="true"]) {
        color: inherit !important;
    }

    /* 6. ASEGURAR QUE LOS COLORES SE PRESERVEN EN EFECTOS DE TIPO RAIN, SLIDE, ETC. */
    .xioleni-text-entrada-rain span,
    .xioleni-text-entrada-slide-left span,
    .xioleni-text-entrada-slide-right span,
    .xioleni-text-entrada-slide-up span,
    .xioleni-text-entrada-slide-down span,
    .xioleni-text-bucle-wave span {
        color: inherit !important;
    }

    /* 7. MANTENER COLOR PARA HOVER EN EFECTOS DE INTERACCIÓN */
    [class*="xioleni-text-interaccion-"]:hover:not([style*="background-clip"]):not([data-has-gradient="true"]) {
        color: inherit !important;
    }

    /* 8. ANULAR COLORES FIJOS ESPECÍFICOS EN EFECTOS */
    /* Sobrescribe cualquier color fijo (#fff, white, etc) que pudiera estar en los efectos */
    .xioleni-text-interaccion-glow:hover {
        text-shadow: 0 0 10px rgba(255, 255, 255, 0.7), 0 0 20px rgba(255, 215, 0, 0.5);
        color: inherit !important; /* Antes era #ffcc00, ahora hereda el color */
        transition: all 0.3s ease;
    }

    .xioleni-text-interaccion-blur:hover {
        text-shadow: 0 0 5px rgba(0, 0, 0, 0.8);
        color: inherit !important; /* Antes era transparent, ahora hereda */
        transition: all 0.3s ease;
    }

    /* SOLUCIÓN DEFINITIVA PARA GRADIENTES Y COLORES */
    /* ... código existente ... */

    /* Correcciones para efectos de entrada */
    .xioleni-post-content .xioleni-text-entrada-slide-left {
        animation: none !important; /* Eliminar animación del contenedor principal */
        display: inline !important;
        float: none !important;
        position: relative !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-right {
        animation: none !important; /* Eliminar animación del contenedor principal */
        display: inline !important;
        float: none !important;
        position: relative !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-up {
        animation: none !important; /* Eliminar animación del contenedor principal */
        display: inline !important;
        float: none !important;
        position: relative !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-down {
        animation: none !important; /* Eliminar animación del contenedor principal */
        display: inline !important;
        float: none !important;
        position: relative !important;
    }

    /* NUEVAS REGLAS PARA CORREGIR EL PROBLEMA DE SALTOS DE LÍNEA */
    /* Asegurar que los efectos de entrada se muestren inline */
    .xioleni-text-entrada-slide-left,
    .xioleni-text-entrada-slide-right,
    .xioleni-text-entrada-slide-up,
    .xioleni-text-entrada-slide-down {
        display: inline !important;
        vertical-align: baseline !important;
        white-space: normal !important;
        position: relative !important;
    }

    /* Regla específica para evitar saltos de línea */
    span.xioleni-text-entrada-slide-left,
    span.xioleni-text-entrada-slide-right,
    span.xioleni-text-entrada-slide-up,
    span.xioleni-text-entrada-slide-down {
        display: inline !important;
        float: none !important;
        clear: none !important;
        white-space: normal !important;
        line-height: inherit !important;
        position: static !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Corregir el espaciado y alineación de los spans dentro de los efectos */
    .xioleni-text-entrada-slide-left span,
    .xioleni-text-entrada-slide-right span,
    .xioleni-text-entrada-slide-up span,
    .xioleni-text-entrada-slide-down span {
        display: inline-block !important;
        vertical-align: baseline !important;
        position: relative !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Asegurar que los efectos funcionen letra por letra */
    .xioleni-text-entrada-slide-left span,
    .xioleni-text-entrada-slide-right span,
    .xioleni-text-entrada-slide-up span, 
    .xioleni-text-entrada-slide-down span {
        animation-fill-mode: forwards !important;
        animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1) !important;
        opacity: 0;
        white-space: normal !important;
    }

    /* Prevenir que los efectos de entrada causen saltos de línea en el post publicado */
    .xioleni-post-content span[class*="xioleni-text-entrada-slide"] {
        display: inline !important;
        float: none !important;
        position: relative !important;
    }

    /* Ajuste específico para mantener los efectos de entrada alineados con textos adyacentes */
    .xioleni-post-content span[class*="xioleni-text-entrada-slide"] + *,
    * + .xioleni-post-content span[class*="xioleni-text-entrada-slide"] {
        display: inline !important;
        vertical-align: baseline !important;
    }

    /* Forzar comportamiento inline para los efectos de entrada */
    span[class*="xioleni-text-entrada-"],
    .xioleni-post-content span[class*="xioleni-text-entrada-"] {
        display: inline !important;
        position: relative !important;
        float: none !important;
        white-space: normal !important;
    }

    /* Regla para preservar las animaciones en el mismo contenedor */
    .xioleni-post-content [class*="xioleni-text-entrada-slide"] {
        position: relative !important;
        z-index: 1 !important;
        transform: translateZ(0) !important; /* Forzar aceleración hardware */
        backface-visibility: hidden !important; /* Mejora rendimiento */
        will-change: transform, opacity !important; /* Optimización para navegadores modernos */
    }

    /* Asegurar que los efectos de entrada se comporten como texto inline */
    span[class*="xioleni-text-entrada-"] {
        display: inline !important;
        vertical-align: baseline !important;
        position: relative !important;
        float: none !important;
        clear: none !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        white-space: normal !important;
        line-height: inherit !important;
        transform: none !important;
        transition: none !important;
    }

    /* Forzar comportamiento inline para textos adyacentes */
    span[class*="xioleni-text-entrada-"] + *,
    * + span[class*="xioleni-text-entrada-"] {
        display: inline !important;
        vertical-align: baseline !important;
    }

    /* Corrección para los efectos de entrada en el muro */
    .xioleni-post-content .xioleni-text-entrada-slide-left,
    .xioleni-post-content .xioleni-text-entrada-slide-right,
    .xioleni-post-content .xioleni-text-entrada-slide-up,
    .xioleni-post-content .xioleni-text-entrada-slide-down {
        display: inline !important;
        float: none !important;
        position: relative !important;
        visibility: visible !important; /* Asegurar visibilidad */
        opacity: 1 !important; /* Asegurar opacidad */
    }

    /* Corregir animaciones para spans dentro de efectos de entrada en el muro */
    .xioleni-post-content .xioleni-text-entrada-slide-left span {
        display: inline-block !important;
        opacity: 1 !important; /* Mostrar los caracteres */
        animation: xioleniFixedSlideLeft 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-right span {
        display: inline-block !important;
        opacity: 1 !important;
        animation: xioleniFixedSlideRight 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-up span {
        display: inline-block !important;
        opacity: 1 !important;
        animation: xioleniFixedSlideUp 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-down span {
        display: inline-block !important;
        opacity: 1 !important;
        animation: xioleniFixedSlideDown 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards !important;
    }

    /* Asegurar que los elementos en el muro sean visibles */
    .xioleni-post-content [class*="xioleni-text-entrada-slide"] {
        visibility: visible !important;
        opacity: 1 !important;
    }

    /* Modificar animaciones para asegurar visibilidad al final */
    @keyframes xioleniFixedSlideLeft {
        0% { transform: translateX(-40px); opacity: 0; }
        70% { opacity: 0.7; }
        100% { transform: translateX(0); opacity: 1; }
    }

    @keyframes xioleniFixedSlideRight {
        0% { transform: translateX(40px); opacity: 0; }
        70% { opacity: 0.7; }
        100% { transform: translateX(0); opacity: 1; }
    }

    @keyframes xioleniFixedSlideUp {
        0% { transform: translateY(30px); opacity: 0; }
        70% { opacity: 0.7; }
        100% { transform: translateY(0); opacity: 1; }
    }

    @keyframes xioleniFixedSlideDown {
        0% { transform: translateY(-30px); opacity: 0; }
        70% { opacity: 0.7; }
        100% { transform: translateY(0); opacity: 1; }
    }

    /* Garantizar que los efectos de entrada se preserven en el muro */
    .xioleni-post-content [class*="xioleni-text-entrada-slide"] {
        animation: none !important; /* Quitar animación del contenedor */
        display: inline !important;
        position: relative !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    /* Garantizar que los spans dentro de los efectos se animen correctamente */
    .xioleni-post-content [class*="xioleni-text-entrada-slide"] span {
        animation-duration: 1.2s !important;
        animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1) !important;
        animation-fill-mode: forwards !important;
    }

    /* Asegurar que cada caracter inicie con opacidad 0 para que se muestre con la animación */
    .xioleni-post-content [class*="xioleni-text-entrada-slide"] span {
        opacity: 0 !important;
        animation-delay: calc(0.03s * var(--xioleni-char-index, 0)) !important;
        transform-origin: center !important;
        will-change: transform, opacity !important;
    }

    /* Forzar animación específica para cada tipo de efecto */
    .xioleni-post-content .xioleni-text-entrada-slide-left span {
        animation-name: xioleniMuroSlideLeft !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-right span {
        animation-name: xioleniMuroSlideRight !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-up span {
        animation-name: xioleniMuroSlideUp !important;
    }

    .xioleni-post-content .xioleni-text-entrada-slide-down span {
        animation-name: xioleniMuroSlideDown !important;
    }

    /* Definir animaciones específicas para muro */
    @keyframes xioleniMuroSlideLeft {
        0% { transform: translateX(-30px); opacity: 0; }
        100% { transform: translateX(0); opacity: 1; }
    }

    @keyframes xioleniMuroSlideRight {
        0% { transform: translateX(30px); opacity: 0; }
        100% { transform: translateX(0); opacity: 1; }
    }

    @keyframes xioleniMuroSlideUp {
        0% { transform: translateY(20px); opacity: 0; }
        100% { transform: translateY(0); opacity: 1; }
    }

    @keyframes xioleniMuroSlideDown {
        0% { transform: translateY(-20px); opacity: 0; }
        100% { transform: translateY(0); opacity: 1; }
    }

    /* Script para iniciar animaciones en el muro */
    .xioleni-post-content [class*="xioleni-text-entrada-slide"] span.xioleni-animating {
        opacity: 1 !important;
        animation-play-state: running !important;
    }

    /* Eliminar la raya fucsia del editor */
    .xioleni-tw-effect {
        display: inline-block !important;
        overflow: hidden;
        white-space: nowrap;
        vertical-align: bottom;
        animation-timing-function: steps(1, end);
        border: none !important; /* Eliminar cualquier borde */
    }

    .xioleni-final-effect {
        display: inline-block !important;
        vertical-align: baseline !important;
        overflow: hidden;
        white-space: nowrap;
        animation-timing-function: steps(1, end);
        max-width: 100%;
        width: auto;
        border: none !important; /* Eliminar cualquier borde */
    }

    /* Correcciones específicas para display block en el muro */
    .xioleni-post-content * {
        display: inline !important;
    }

    /* Excepciones para elementos que necesitan otros displays */
    .xioleni-post-content div[data-xioleni-align="true"],
    .xioleni-post-content .xioleni-text-center,
    .xioleni-post-content .xioleni-text-right,
    .xioleni-post-content .xioleni-text-justify {
        display: block !important;
    }

    /* Corregir comportamiento de efectos de entrada en el muro */
    .xioleni-post-content span[class*="xioleni-text-entrada-"] {
        display: inline !important;
        white-space: normal !important;
        float: none !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        position: static !important;
        vertical-align: baseline !important;
    }

    /* Forzar display inline para los contenedores de efectos de entrada */
    .xioleni-post-content [class*="xioleni-text-entrada-slide"] {
        display: inline !important;
        position: static !important;
        float: none !important;
        clear: none !important;
        white-space: normal !important;
        line-height: inherit !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        vertical-align: baseline !important;
        transform: none !important;
        animation: none !important;
    }

    /* Asegurar que los spans dentro de efectos mantengan las animaciones */
    .xioleni-post-content [class*="xioleni-text-entrada-slide"] span {
        display: inline-block !important;
        vertical-align: baseline !important;
        position: relative !important;
        animation-fill-mode: forwards !important;
        animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1) !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Eliminar cualquier borde o raya en cualquier elemento del editor */
    #xioleni-editor [class*="xioleni-text-"] {
        border: none !important;
    }

    /* Forzar que los spans de caracteres sean contiguos sin romper el flujo del texto */
    .xioleni-post-content [class*="xioleni-text-entrada-slide"] span {
        float: none !important;
        position: relative !important;
        display: inline-block !important;
    }

    /* Hacer que los elementos con texto de efecto de entrada no causen saltos de línea en el muro */
    .xioleni-post-content p,
    .xioleni-post-content div,
    .xioleni-post-content span {
        white-space: normal !important;
    }

    /* Ajuste crítico para prevenir saltos de línea en muro */
    .xioleni-post-content span[class*="xioleni-text-entrada-slide"] + span,
    .xioleni-post-content span + span[class*="xioleni-text-entrada-slide"] {
        display: inline !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Correcciones para visualización de efectos en el editor */
    #xioleni-editor .xioleni-char-effect {
        display: inline-block !important;
        opacity: 1 !important; /* Esto es clave para que se vean en el editor */
        position: relative !important;
        vertical-align: baseline !important;
    }

    /* Animaciones para los efectos de entrada en el editor */
    #xioleni-editor .xioleni-text-entrada-slide-left .xioleni-char-effect {
        animation: xioleniFixedSlideLeft 0.6s forwards !important;
        animation-delay: calc(0.05s * var(--xioleni-char-index, 0)) !important;
    }

    #xioleni-editor .xioleni-text-entrada-slide-right .xioleni-char-effect {
        animation: xioleniFixedSlideRight 0.6s forwards !important;
        animation-delay: calc(0.05s * var(--xioleni-char-index, 0)) !important;
    }

    #xioleni-editor .xioleni-text-entrada-slide-up .xioleni-char-effect {
        animation: xioleniFixedSlideUp 0.6s forwards !important;
        animation-delay: calc(0.05s * var(--xioleni-char-index, 0)) !important;
    }

    #xioleni-editor .xioleni-text-entrada-slide-down .xioleni-char-effect {
        animation: xioleniFixedSlideDown 0.6s forwards !important;
        animation-delay: calc(0.05s * var(--xioleni-char-index, 0)) !important;
    }