/* =================== TEXTOS: ENTRADA PALABRA POR PALABRA =================== */
.fx-t .w{display:inline-block;opacity:0;transform:translateY(.5em);filter:blur(6px);
  transition:opacity .7s ease,transform .9s cubic-bezier(.19,1,.22,1),filter .7s ease;transition-delay:calc(var(--i,0) * 26ms)}
.fx-t.txt-in .w{opacity:1;transform:none;filter:none}

/* =================== RESALTES: MÁQUINA DE ESCRIBIR + DEGRADADO A ROJO =================== */
.tw{--tw-from:var(--ink);color:transparent !important;-webkit-text-fill-color:transparent;
  background-image:linear-gradient(90deg,var(--tw-from) 0%,var(--tw-from) 25%,#f43b51 40%,#ff8fa1 55%,#f43b51 70%,#ff8fa1 85%,#f43b51 100%);
  background-size:400% 100%;background-position:0% 50%;-webkit-background-clip:text;background-clip:text;
  transition:background-position 1.5s cubic-bezier(.65,0,.35,1)}
/* estado final: el degradado rosa → rojo se queda en las letras (no pasar a color sólido)
   y el brillo rosa recorre las letras de izquierda a derecha, en bucle continuo.
   El tramo rojo/rosa del degradado se repite cada 30 %, y 100 % → 60 % avanza justo un tramo: el bucle no salta */
.tw.done{background-position:100% 50%;animation:twFlow 3s linear 1.5s infinite}
@keyframes twFlow{from{background-position:100% 50%}to{background-position:60% 50%}}
.tw .c{visibility:hidden}
.tw .c.on{visibility:visible}
.tw-caret{display:inline-block;width:.07em;min-width:2px;height:.92em;margin-left:.03em;vertical-align:-.1em;background:var(--accent);
  -webkit-text-fill-color:initial;animation:twBlink .75s steps(1) infinite;transition:opacity .4s}
.tw-caret.off{opacity:0}
@keyframes twBlink{50%{opacity:0}}

/* en fondos oscuros el degradado parte del blanco */
.contact .tw,.li-sec .tw,.step.dark .tw,.ref.cta .tw,.principle .tw{--tw-from:#fff}
/* dentro del botón rojo el resalte se mantiene blanco */
.xp-btn .tw{background-image:linear-gradient(90deg,#fff,#fff)}
/* exportación a PDF y movimiento reducido: estado final */
.export .tw,.export .tw.done{background-position:100% 50%;animation:none}
.export .tw .c{visibility:visible}
.export .fx-t .w{opacity:1;transform:none;filter:none}
@media (prefers-reduced-motion:reduce){
  .fx-t .w{opacity:1;transform:none;filter:none}
  .tw .c{visibility:visible}
  .tw,.tw.done{background-position:100% 50%;animation:none}
}
