/* Wicion V32.3 · Dedicatoria / padres · marco interior + efectos de nombres */

/* Marco interior dentro de la sección, separado del borde exterior */
.family-message{
    position:relative;
}
.family-message.has-padres-inner-frame::after{
    content:"";
    position:absolute;
    z-index:4;
    inset:var(--padres-frame-inset,8px);
    border:var(--padres-frame-width,1px) solid var(--padres-frame-color,#c6a75e);
    border-radius:var(--padres-frame-radius,0px);
    pointer-events:none;
    box-sizing:border-box;
}
.family-message .section-inner{
    position:relative;
    z-index:2;
}

/* Los efectos solo se aplican a padre / madre / padrino / madrina. */
.family-message .wpe-target{
    position:relative;
    will-change:auto;
}

.family-message .wpe-letter{
    display:inline-block;
    white-space:pre;
}

/* ======================================================
   MÁQUINA DE ESCRIBIR V32.3
   El cursor es un nodo real que JS mueve tras cada letra.
   ====================================================== */
.family-message .wpe-typewriter .wpe-letter{
    opacity:1;
}

/* Cursor recto, compacto y SIN heredar Great Vibes/Parisienne/etc. */
.family-message .wpe-cursor{
    display:inline-block;
    width:auto;
    margin:0 0 0 1px;
    padding:0;
    font-family:Arial,Helvetica,sans-serif !important;
    font-style:normal !important;
    font-weight:400 !important;
    font-size:.92em !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    transform:none !important;
    vertical-align:baseline;
    color:currentColor;
    animation:wpeCursorV323 .68s steps(1,end) infinite;
}
.family-message .wpe-cursor-finish{
    opacity:0;
    animation:none;
}
@keyframes wpeCursorV323{
    0%,48%{opacity:1}
    49%,100%{opacity:0}
}

/* Flotar */
.family-message .wpe-float{
    animation:wpeFloatV32 var(--wpe-motion-duration,2.8s) ease-in-out infinite;
    animation-play-state:paused;
}
.family-message .wpe-float.wpe-visible{
    animation-play-state:running;
}
@keyframes wpeFloatV32{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-7px)}
}

/* Entrada elegante desde abajo */
.family-message .wpe-fadeup{
    opacity:0;
    transform:translateY(24px);
}
.family-message .wpe-fadeup.wpe-started{
    animation:wpeFadeUpV32 var(--wpe-motion-duration,.8s) cubic-bezier(.2,.8,.2,1) forwards;
}
@keyframes wpeFadeUpV32{
    to{opacity:1;transform:none}
}

/* Resplandor suave */
.family-message .wpe-glow{
    opacity:.25;
    filter:blur(2px);
}
.family-message .wpe-glow.wpe-started{
    animation:wpeGlowV32 var(--wpe-motion-duration,1.1s) ease-out forwards;
}
@keyframes wpeGlowV32{
    0%{opacity:.2;filter:blur(3px);text-shadow:0 0 0 currentColor}
    55%{opacity:1;filter:blur(0);text-shadow:0 0 18px currentColor,0 0 30px currentColor}
    100%{opacity:1;filter:none;text-shadow:none}
}

/* Trazado letra por letra */
.family-message .wpe-trace .wpe-letter{
    opacity:0;
    color:transparent;
    -webkit-text-stroke:1px currentColor;
}
.family-message .wpe-trace.wpe-started .wpe-letter{
    animation:wpeTraceV32 .66s cubic-bezier(.2,.8,.2,1) forwards;
    animation-delay:var(--wpe-delay,0ms);
}
@keyframes wpeTraceV32{
    0%{opacity:0;transform:scale(.86)}
    42%{opacity:1;color:transparent;-webkit-text-stroke:1px currentColor;transform:scale(1.04)}
    100%{opacity:1;color:inherit;-webkit-text-stroke:0 transparent;transform:scale(1)}
}

/* Onda letra por letra */
.family-message .wpe-wave .wpe-letter{
    opacity:0;
    transform:translateY(14px);
}
.family-message .wpe-wave.wpe-started .wpe-letter{
    animation:wpeWaveV32 .64s cubic-bezier(.2,.85,.2,1) forwards;
    animation-delay:var(--wpe-delay,0ms);
}
@keyframes wpeWaveV32{
    0%{opacity:0;transform:translateY(14px) rotate(-2deg)}
    65%{opacity:1;transform:translateY(-3px) rotate(1deg)}
    100%{opacity:1;transform:none}
}

@media (prefers-reduced-motion: reduce){
    .family-message .wpe-target,
    .family-message .wpe-letter{
        animation:none!important;
        opacity:1!important;
        transform:none!important;
        filter:none!important;
        text-shadow:none!important;
        -webkit-text-stroke:0!important;
        color:inherit!important;
    }
    .family-message .wpe-cursor{
        animation:none!important;
    }
}
