/* Transición de página: línea azul que barre con velo oscuro detrás (RTL-aware) */
html.pt::before{content:"";position:fixed;top:0;bottom:0;left:0;right:0;z-index:2147482000;pointer-events:none;background:linear-gradient(105deg,#000a19 60%,#001a3d 100%);transform:translateX(-101%);will-change:transform}
html.pt::after{content:"";position:fixed;top:0;bottom:0;left:0;width:1px;z-index:2147482001;pointer-events:none;background:linear-gradient(180deg,rgba(13,118,236,.15),#3B96FF 35%,#8ec8ff 50%,#3B96FF 65%,rgba(13,118,236,.15));box-shadow:0 0 14px 1px rgba(13,118,236,.7);transform:translateX(-8px);will-change:transform}

/* ENTRADA: la página carga cubierta; la línea barre y el velo se retira tras ella,
   mientras el contenido aparece con fade-in */
html.pt-cover::before{transform:translateX(0)}
html.pt-cover::after{transform:translateX(-8px)}
html.pt-cover body{opacity:0}
html.pt-reveal::before{transform:translateX(101%);transition:transform .85s cubic-bezier(.7,0,.25,1)}
html.pt-reveal::after{transform:translateX(calc(100vw + 8px));transition:transform .85s cubic-bezier(.7,0,.25,1)}
html.pt-reveal body{opacity:1;transition:opacity .9s ease}

/* SALIDA: la línea barre y el velo entra detrás cubriendo la página */
html.pt-wipe::before{transform:translateX(0);transition:transform .65s cubic-bezier(.7,0,.25,1)}
html.pt-wipe::after{transform:translateX(calc(100vw + 8px));transition:transform .65s cubic-bezier(.7,0,.25,1)}

/* RTL: el barrido va de derecha a izquierda */
html[dir="rtl"].pt::before{transform:translateX(101%)}
html[dir="rtl"].pt::after{left:auto;right:0;transform:translateX(8px)}
html[dir="rtl"].pt-cover::before{transform:translateX(0)}
html[dir="rtl"].pt-cover::after{transform:translateX(8px)}
html[dir="rtl"].pt-reveal::before{transform:translateX(-101%)}
html[dir="rtl"].pt-reveal::after{transform:translateX(calc(-100vw - 8px))}
html[dir="rtl"].pt-wipe::before{transform:translateX(0)}
html[dir="rtl"].pt-wipe::after{transform:translateX(calc(-100vw - 8px))}

@media (prefers-reduced-motion:reduce){
  html.pt::before,html.pt::after{transition:none !important}
}
