@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");
/* ============================================================
   TOPSA — diseño nuevo, parte 1: header + hero.
   Tokens primero: el tema claro es el base y el oscuro solo
   redefine variables. Nada de color suelto en las reglas.
   ============================================================ */
/* Oscuro es el tema por defecto (decision de Ricky, 21 ago 2026): la foto del
   hero es nocturna y en oscuro es donde luce. El claro es opcion del visitante. */
:root{
  --tn-bg:#0A0A0A;
  --tn-bg-0:rgba(10,10,10,0);
  --tn-ink:#F2EFEA;
  --tn-muted:#A8A199;
  --tn-rule:#2A2825;
  --tn-orange:#FF6A00;
  --tn-orange-ink:#FF6A00;
  --tn-on-orange:#FFFFFF;
  --tn-orange-hover:#E65F00;
  --tn-pill-bg:transparent;
  --tn-pill-line:#4A4743;
  --tn-row:#141311;
  --tn-row-line:#2A2825;
  --tn-row-soft:rgba(255,255,255,.03);
  --tn-sans:Inter,"Helvetica Neue",Arial,sans-serif;
}
:root[data-theme="light"]{
  --tn-bg:#F7F5F1; --tn-bg-0:rgba(247,245,241,0);
  --tn-ink:#111111; --tn-muted:#5D5954; --tn-rule:#DDD9D2;
  --tn-pill-bg:#FFFFFF; --tn-pill-line:#111111;
  --tn-orange-ink:#BF4700;
  --tn-row:#111111; --tn-row-line:#111111;
  --tn-row-soft:rgba(17,17,17,.03);
}

.tn{position:relative;font-family:var(--tn-sans);color:var(--tn-ink);background:var(--tn-bg);-webkit-font-smoothing:antialiased;line-height:1.5}
.tn *,.tn *::before,.tn *::after{box-sizing:border-box}
.tn a{color:inherit;text-decoration:none}
.tn button{font:inherit;color:inherit}
.tn img{display:block;max-width:100%;height:auto}
/* OJO: ".tn button" y ".tn a" pesan (0,1,1). Cualquier regla de color sobre un
   boton o enlace con UNA sola clase (0,1,0) pierde contra ellas aunque venga
   despues: por eso las reglas de color de abajo llevan ".tn " delante. */
/* Foco visible con teclado en todo lo clicable (el anillo por defecto del
   navegador se perdia sobre fondo oscuro o lo recortaba un overflow:hidden). */
.tn a:focus-visible,.tn button:focus-visible{outline:2px solid var(--tn-orange);outline-offset:2px}
.tn-shell{width:min(100% - 2*var(--tn-pad,48px),1440px);margin:0 auto}
@media (max-width:700px){.tn{--tn-pad:20px}}

/* ---------- Header ---------- */
/* El header flota sobre la foto: hero y header son una sola pieza. El fondo
   lo pone el degradado superior del hero, no el header. */
.tn-hd{position:absolute;top:0;left:0;right:0;z-index:20;background:transparent}
/* La fila va por encima del menu movil (que es hijo del mismo header): sin
   esto el overlay tapaba el logo, los toggles y la X para cerrarlo. */
.tn-hd__in{position:relative;z-index:16;min-height:76px;display:flex;align-items:center;gap:28px}
.tn-logo{flex:0 0 auto;display:block}
.tn-logo img{height:22px;width:auto}
/* Dos recortes del logo oficial: el tema decide cual se ve. Los selectores
   llevan .tn-logo delante porque topsa20.css (que sigue cargando) trae
   ".topsa20 img{display:block}" y le ganaba a una clase sola. */
.tn-logo img{display:none}
.tn-logo .tn-logo__claro{display:block}
:root[data-theme="light"] .tn-logo .tn-logo__claro{display:none}
:root[data-theme="light"] .tn-logo .tn-logo__oscuro{display:block}
.tn-nav{display:flex;gap:34px;margin-left:64px;font-size:15.5px;font-weight:500}
.tn-nav a{opacity:.9;transition:color .18s ease,opacity .18s ease}
.tn-nav a:hover{color:var(--tn-orange);opacity:1}
.tn-hd__right{margin-left:auto;display:flex;align-items:center;gap:18px}
.tn-lang{display:inline-flex;gap:2px;font-size:12.5px;font-weight:600;letter-spacing:.04em}
.tn-lang button{appearance:none;background:none;border:0;padding:6px 5px;cursor:pointer;color:var(--tn-muted);border-radius:4px}
.tn-lang button[aria-pressed="true"]{color:var(--tn-ink)}
.tn-lang button:hover{color:var(--tn-orange)}
.tn-theme{appearance:none;width:36px;height:36px;display:grid;place-items:center;background:none;border:0;border-radius:50%;cursor:pointer;color:var(--tn-muted)}
.tn .tn-theme{color:var(--tn-muted)}
.tn-theme:hover{color:var(--tn-orange)}
.tn-theme svg{width:18px;height:18px}
/* Mismo motivo que el logo: ".topsa20 svg{display:block}" del CSS viejo. */
.tn-theme .tn-theme__sun{display:none}
:root[data-theme="light"] .tn-theme .tn-theme__sun{display:block}
:root[data-theme="light"] .tn-theme .tn-theme__moon{display:none}
.tn-pill{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:0 20px;border-radius:999px;
  border:1px solid var(--tn-pill-line);background:var(--tn-pill-bg);font-size:14px;font-weight:500;cursor:pointer;
  transition:border-color .18s ease,color .18s ease}
.tn-pill:hover{border-color:var(--tn-orange);color:var(--tn-orange)}
.tn-pill svg{width:18px;height:18px}
.tn-burger{display:none;appearance:none;width:44px;height:44px;border:0;background:none;cursor:pointer;color:var(--tn-ink);place-items:center}
.tn .tn-burger{color:var(--tn-ink)}
.tn-burger svg{width:24px;height:24px}
.tn-burger .tn-burger__x{display:none}
.tn-burger.is-open .tn-burger__bars{display:none}
.tn-burger.is-open .tn-burger__x{display:block}

/* Menu movil a pantalla completa (referencia: onceespiritus.mx): items
   centrados en mayusculas espaciadas, el activo con una raya naranja. El fondo
   sigue al tema. Mientras esta abierto, el header se fija arriba para que la X
   siempre este a la vista. */
.tn-menu{display:none;position:fixed;inset:0;z-index:15;background:var(--tn-bg);
  padding:100px var(--tn-pad,48px) 40px;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:auto;overscroll-behavior:contain}
.tn-menu:not([hidden]){display:flex}
.tn-menu__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:38px}
.tn-menu__list a{display:inline-block;position:relative;padding:4px 2px;font-size:21px;font-weight:400;letter-spacing:.24em;text-transform:uppercase;color:var(--tn-ink);opacity:.7;transition:opacity .18s ease}
.tn-menu__list a.is-on,.tn-menu__list a:hover{opacity:1}
.tn-menu__list a.is-on::after{content:"";position:absolute;left:50%;bottom:-12px;width:40px;height:1.5px;background:var(--tn-orange);transform:translateX(-50%)}
.tn-menu .tn-pill{margin-top:64px}
.tn-menu-open .tn-hd{position:fixed}

/* ---------- Hero ---------- */
.tn-hero{position:relative;background:var(--tn-bg);overflow:hidden}
/* La foto solo ocupa el lado derecho: a pantalla completa el navegador la
   agrandaba hasta que el letrero tapaba todo. La franja izquierda es fondo liso. */
.tn-hero__bg{position:absolute;top:0;bottom:0;right:0;left:33%}
.tn-hero__bg img{width:100%;height:100%;object-fit:cover;object-position:62% 35%}
/* el velo solo protege la columna del texto; a la derecha la foto va limpia */
.tn-hero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,var(--tn-bg) 0%,var(--tn-bg-0) 200px),
             linear-gradient(90deg,var(--tn-bg) 0%,var(--tn-bg-0) 26%)}
/* En claro el texto es oscuro sobre foto oscura: la transicion necesita ser mas
   larga para que el final del titular siga leyendose. En oscuro no hace falta. */
:root[data-theme="light"] .tn-hero__bg::after{
  background:linear-gradient(180deg,var(--tn-bg) 0%,var(--tn-bg-0) 200px),
             linear-gradient(90deg,var(--tn-bg) 0%,var(--tn-bg) 12%,var(--tn-bg-0) 52%)}
.tn-hero__in{position:relative;min-height:min(860px,100vh);display:flex;flex-direction:column;justify-content:center;padding:130px 0 56px}
.tn-hero__copy{max-width:800px}
.tn-h1{margin:0 0 30px;font-size:clamp(40px,4.9vw,62px);line-height:1.06;letter-spacing:-.025em;font-weight:500;text-wrap:balance}
.tn-h1 em{font-style:normal;color:var(--tn-orange);display:block}
.tn-sub{margin:0 0 38px;max-width:36ch;font-size:clamp(15px,1.15vw,17px);line-height:1.55;color:var(--tn-muted);opacity:.9}
.tn-cta{display:flex;flex-wrap:wrap;gap:14px}
.tn-btn{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 28px;border-radius:6px;font-size:16px;font-weight:500;
  border:1px solid transparent;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}
.tn-btn svg{width:18px;height:18px}
.tn-btn--o{background:var(--tn-orange);border-color:var(--tn-orange);color:#fff}
/* Con ".tn a/button{color:inherit}" ganando, en tema claro el boton naranja
   salia con texto negro (hero "Explorar soluciones" y "Continuar"/"Enviar"). */
.tn .tn-btn--o{color:#fff}
.tn-btn--o:hover{background:var(--tn-orange-hover);border-color:var(--tn-orange-hover)}
.tn-btn--g{background:transparent;border-color:var(--tn-pill-line);color:var(--tn-ink)}
.tn .tn-btn--g{color:var(--tn-ink)}
.tn-btn--g:hover{border-color:var(--tn-orange);color:var(--tn-orange)}

/* DIGITAL — OPERACION — FISICO, con el isotipo marcando el centro */
.tn-ejes{margin-top:clamp(64px,10vh,120px);max-width:420px}
.tn-ejes__row{display:flex;align-items:center;gap:18px;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--tn-ink)}
.tn-ejes__row i{flex:1;height:1px;background:var(--tn-muted);opacity:.45}
.tn-ejes__base{position:relative;margin-top:14px;height:1px;background:var(--tn-muted);opacity:.45}
.tn-ejes__mark{position:absolute;left:50%;top:-8px;width:22px;height:16px;transform:translateX(-50%);background:var(--tn-bg);display:grid;place-items:center}
.tn-ejes__mark svg{width:18px;height:12px}

.tn-nav a,.tn-pill{white-space:nowrap}
@media (max-width:1240px){
  .tn-hd__in{gap:20px}
  .tn-nav{margin-left:32px;gap:22px;font-size:14.5px}
  .tn-hd__right{gap:12px}
  .tn-pill{padding:0 16px}
}
@media (max-width:1100px){
  .tn-nav,.tn-hd__right .tn-pill{display:none}
  .tn-burger{display:grid;margin-left:2px}
  .tn-hd__right{gap:8px}
}

/* ---------- Proyectos: carrusel ----------
   Deriva sola y despacio; se detiene al pasar el mouse o tocar; se arrastra
   con mouse y con el dedo (scroll nativo); barra de progreso abajo. Sin
   flechas, a proposito. Las tarjetas se duplican por JS para que el bucle
   no tenga corte. */
.tn-eyebrow{margin:0 0 14px;color:var(--tn-orange-ink);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.tn-h2{margin:0;font-size:clamp(32px,3.4vw,46px);line-height:1.08;letter-spacing:-.02em;font-weight:500;text-wrap:balance}
.tn-h2 em{font-style:normal;color:var(--tn-orange);display:block}
.tn-pr{padding:96px 0 80px;background:var(--tn-bg)}
.tn-pr__head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;align-items:end;margin-bottom:44px}
.tn-pr__intro{margin:0;max-width:46ch;color:var(--tn-muted);font-size:15.5px;line-height:1.65;justify-self:end}
.tn-car{position:relative}
.tn-car__track{overflow:hidden;cursor:grab;touch-action:pan-y;
  padding:4px max(var(--tn-pad,48px),calc((100% - 1440px)/2)) 4px}
.tn-car__rail{display:flex;gap:18px;width:max-content;will-change:transform}
.tn-car__track.is-dragging{cursor:grabbing}
.tn-car__track:focus-visible{outline:2px solid var(--tn-orange);outline-offset:-2px}
.tn-card{flex:0 0 clamp(280px,25vw,400px);min-width:0;user-select:none}
.tn-card__media{aspect-ratio:3/2;overflow:hidden;border-radius:6px;border:1px solid var(--tn-rule);background:var(--tn-rule)}
.tn-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.tn-card:hover .tn-card__media img{transform:scale(1.03)}
.tn-card__t{margin:16px 0 4px;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--tn-ink)}
.tn-card__tags{margin:0;font-size:12px;color:var(--tn-muted)}
.tn-car__bar{position:relative;height:2px;margin-top:44px;background:var(--tn-rule);border-radius:2px;overflow:hidden}
.tn-car__bar i{position:absolute;top:0;left:0;height:100%;width:25%;background:var(--tn-orange);border-radius:2px}
@media (max-width:900px){
  .tn-pr{padding:64px 0 56px}
  .tn-pr__head{grid-template-columns:1fr;gap:18px;margin-bottom:28px}
  .tn-pr__intro{justify-self:start}
  .tn-card{flex-basis:min(76vw,340px)}
  .tn-car__bar{margin-top:32px}
}


/* ---------- Soluciones: filas oscuras con foto ---------- */
.tn-sol{padding:40px 0 96px;background:var(--tn-bg)}
.tn-sol__in{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:56px;align-items:start}
.tn-sol .tn-h2{font-size:clamp(30px,2.7vw,44px)}
.tn-h2--inline em{display:inline}
.tn-sol__intro{margin:32px 0 26px;max-width:400px;color:var(--tn-muted);font-size:15.5px;line-height:1.65}
.tn-link{display:inline-flex;align-items:center;gap:8px;color:var(--tn-ink);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.tn .tn-link{color:var(--tn-ink)}
.tn-link svg{width:16px;height:16px;transition:transform .2s ease}
.tn-link:hover svg{transform:translateX(3px);color:var(--tn-orange)}
.tn-sol__list{display:flex;flex-direction:column;gap:9px}
/* .tn delante: ".tn button{color:inherit}" le ganaba y en tema claro el titulo salia negro sobre negro. */
/* Filas delgadas (100px): la foto va en posicion absoluta para que no imponga
   su altura; el padding derecho le reserva el sitio. Las cuatro caben en una pantalla. */
.tn .tn-row{appearance:none;position:relative;display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:18px;
  min-height:100px;padding:12px 52% 12px 18px;border:1px solid var(--tn-row-line);border-radius:8px;overflow:hidden;
  background:var(--tn-row);color:#F2EFEA;text-align:left;cursor:pointer;font:inherit;transition:border-color .2s ease}
.tn .tn-row:hover{border-color:var(--tn-orange)}
.tn-row__ic{width:60px;height:60px;display:grid;place-items:center;border:1px solid #3A3733;border-radius:6px;color:#F2EFEA}
.tn-row__ic svg{width:28px;height:28px}
.tn-row__body{display:flex;flex-direction:column;gap:1px;min-width:0}
.tn-row__n{color:var(--tn-orange);font-size:12.5px;font-weight:500}
.tn-row__t{font-size:17px;font-weight:500;letter-spacing:.03em;text-transform:uppercase;line-height:1.2}
.tn-row__d{color:#A8A199;font-size:13px}
.tn-row__arrow{display:grid;place-items:center;width:26px;height:26px;margin-right:0;justify-self:end;transition:transform .2s ease}
.tn-row__arrow svg{width:24px;height:24px}
.tn-row:hover .tn-row__arrow{transform:translateX(4px)}
/* La foto entra con un corte diagonal y se funde con el fondo de la fila. */
/* Las imagenes de Ricky son tiras de fila completa (1698x202) con el lado
   izquierdo ya oscuro: van de fondo en toda la fila y el contenido encima. */
.tn-row__media{position:absolute;inset:0;z-index:0;overflow:hidden}
.tn-row__ic,.tn-row__body,.tn-row__arrow{position:relative;z-index:1}
.tn-row__media img{width:100%;height:100%;object-fit:cover;object-position:right center;transition:transform .6s ease}
.tn-row:hover .tn-row__media img{transform:scale(1.04)}
.tn-row__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--tn-row) 0%,rgba(20,19,17,.6) 30%,rgba(20,19,17,0) 50%)}

/* Franja de capacidades */
.tn-caps{margin-top:48px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;padding:22px 26px;border:1px solid var(--tn-rule);border-radius:8px}
.tn-caps__label{display:inline-flex;align-items:center;gap:12px;font-size:13.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--tn-ink)}
.tn-caps__label svg{width:22px;height:22px;color:var(--tn-orange)}
.tn-caps__viewport,.tn-caps__track{display:contents}
.tn-caps__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px 0;font-size:14.5px;color:var(--tn-ink)}
.tn-caps__list+.tn-caps__list{display:none}
.tn-caps__list li{display:inline-flex;align-items:center}
.tn-caps__list li+li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--tn-orange);margin:0 22px}
@media (max-width:1320px){
  .tn .tn-row{padding-right:40%}
  .tn-row__media::after{background:linear-gradient(90deg,var(--tn-row) 0%,rgba(20,19,17,.6) 45%,rgba(20,19,17,0) 64%)}
}
@media (max-width:1100px){
  .tn-sol__in{grid-template-columns:1fr;gap:36px}
  .tn-sol__intro{max-width:52ch}
}
@media (max-width:900px){
  .tn-sol{padding:8px 0 64px}
  .tn .tn-row{grid-template-columns:52px minmax(0,1fr) 96px;height:auto;padding:14px 14px 14px 14px;gap:14px}
  .tn-row__ic{width:52px;height:52px}
  .tn-row__ic svg{width:26px;height:26px}
  .tn-row__t{font-size:16px}
  .tn-row__d{font-size:13px}
  /* En movil la tira completa solo mostraria una mancha: la foto va contenida
     en una miniatura con marco, enfocada en su parte reconocible. La fila
     entera es el boton, asi que la flecha sobra. */
  .tn-row__arrow{display:none}
  .tn-row__media{position:static;display:block;width:96px;height:72px;border-radius:6px;border:1px solid #3A3733;justify-self:end}
  .tn-row__media img{object-position:76% 50%}
  .tn-row__media::after{display:none}
  /* Capacidades: etiqueta arriba y una sola linea que se desplaza sola. */
  .tn-caps{margin-top:36px;padding:18px 0 18px;gap:14px 0;flex-direction:column;align-items:flex-start;overflow:hidden}
  .tn-caps__label{padding:0 18px}
  .tn-caps__viewport{display:block;width:100%;overflow:hidden;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
  .tn-caps__track{display:flex;width:max-content;animation:tn-marq 26s linear infinite}
  .tn-caps__track:hover,.tn-caps__track:active{animation-play-state:paused}
  .tn-caps__list,.tn-caps__list+.tn-caps__list{display:flex;flex-wrap:nowrap;gap:0;white-space:nowrap}
  /* Las dos formas del selector para que el primer punto de cada lista pese lo
     mismo que "li+li::before" de escritorio: si no, la costura del bucle
     (Consultoria -> Marketplaces) quedaba con 14px y el resto con 22px. */
  .tn-caps__list li::before,.tn-caps__list li+li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--tn-orange);margin:0 14px}
  @keyframes tn-marq{to{transform:translateX(-50%)}}
  @media (prefers-reduced-motion:reduce){
    .tn-caps__track{animation:none}
    .tn-caps__viewport{overflow-x:auto;mask-image:none;-webkit-mask-image:none}
    /* Sin animacion la copia sobra: se veia la lista dos veces al deslizar. */
    .tn-caps__list+.tn-caps__list{display:none}
  }
}


/* ---------- Diagnostico: pantalla completa ---------- */
.tn-diag{position:fixed;inset:0;z-index:30;background:var(--tn-bg);color:var(--tn-ink);overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column}
.tn-diag[hidden]{display:none}
.tn-diag__bar{position:sticky;top:0;z-index:2;height:3px;background:var(--tn-rule)}
.tn-diag__bar i{display:block;height:100%;width:0;background:var(--tn-orange);transition:width .45s ease}
.tn-diag__top{display:flex;align-items:center;gap:16px;padding:18px var(--tn-pad,48px) 0}
.tn-diag__brand img{height:18px}
.tn-diag__title{color:var(--tn-muted);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding-left:16px;border-left:1px solid var(--tn-rule)}
.tn-diag__x{margin-left:auto;appearance:none;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--tn-rule);border-radius:50%;background:none;color:var(--tn-ink);cursor:pointer;transition:border-color .18s ease,color .18s ease}
.tn .tn-diag__x{color:var(--tn-ink)}
.tn-diag__x:hover{border-color:var(--tn-orange);color:var(--tn-orange)}
.tn-diag__x svg{width:18px;height:18px}
.tn-diag__body{width:min(100% - 2*var(--tn-pad,48px),1240px);margin:0 auto;padding:44px 0 96px;flex:1;
  display:grid;grid-template-columns:340px minmax(0,1fr);gap:56px;align-items:start}
.tn-diag__side{position:sticky;top:24px;display:grid;gap:22px}
.tn-diag__main{min-width:0}
.tn-diag__cab{margin-bottom:26px}
.tn-diag__cab .tn-diag__q{font-size:clamp(24px,2.6vw,34px)}
.tn-diag__cab .tn-diag__hint{margin-bottom:0}
.tn-diag__prog{display:grid;gap:10px}
.tn-diag__prog__row{display:flex;justify-content:space-between;font-size:13px;color:var(--tn-muted)}
.tn-diag__prog__row b{color:var(--tn-ink);font-weight:500}
.tn-diag__prog__bar{height:2px;background:var(--tn-rule)}
.tn-diag__prog__bar i{display:block;height:100%;width:0;background:var(--tn-orange);transition:width .4s ease}
.tn-tip{display:flex;gap:14px;padding:18px;border:1px solid var(--tn-rule);border-radius:8px;font-size:13.5px;line-height:1.5;color:var(--tn-muted)}
.tn-tip svg{flex:0 0 auto;width:22px;height:22px;color:var(--tn-orange)}
.tn-tip b{display:block;color:var(--tn-ink);font-weight:500;margin-bottom:4px}
.tn-live{padding:18px;border:1px solid var(--tn-rule);border-radius:8px;background:var(--tn-row-soft,transparent)}
.tn-live__t{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--tn-ink)}
.tn-live ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tn-live li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--tn-ink)}
.tn-live li::before{content:"";width:16px;height:16px;border-radius:50%;border:1.5px solid var(--tn-orange);background:radial-gradient(circle,var(--tn-orange) 0 3px,transparent 3.5px)}
.tn-live__vacio{margin:0;font-size:13.5px;color:var(--tn-muted)}
/* Acordeon del paso 1 */
.tn-acc{display:grid;gap:10px}
.tn-acc__it{border:1px solid var(--tn-rule);border-radius:8px;overflow:hidden;transition:border-color .18s ease}
.tn-acc__it.is-on{border-color:var(--tn-orange)}
.tn .tn-acc__hd{appearance:none;width:100%;display:flex;align-items:center;gap:14px;padding:15px 18px;background:transparent;border:0;color:var(--tn-ink);font:inherit;font-size:15.5px;text-align:left;cursor:pointer}
.tn-acc__box{flex:0 0 auto;width:20px;height:20px;border:1.5px solid var(--tn-muted);border-radius:4px;display:grid;place-items:center;transition:background-color .15s ease,border-color .15s ease}
.tn-acc__box svg{width:12px;height:12px;color:#fff;opacity:0}
.tn-acc__it.is-on .tn-acc__box{background:var(--tn-orange);border-color:var(--tn-orange)}
.tn-acc__it.is-on .tn-acc__box svg{opacity:1}
.tn-acc__chev{margin-left:auto;width:18px;height:18px;color:var(--tn-muted);transition:transform .2s ease}
.tn-acc__row{display:flex;align-items:stretch}
.tn-acc__row .tn-acc__hd{flex:1;min-width:0}
.tn-acc__ic{flex:0 0 auto;width:24px;height:24px;color:var(--tn-ink)}
.tn-acc__ic svg{width:24px;height:24px}
.tn-acc__it.is-on .tn-acc__ic{color:var(--tn-orange)}
.tn .tn-acc__help{appearance:none;flex:0 0 auto;width:48px;border:0;border-left:1px solid var(--tn-rule);background:transparent;color:var(--tn-muted);cursor:pointer;display:grid;place-items:center;transition:color .15s ease,background-color .15s ease}
.tn .tn-acc__help:hover,.tn .tn-acc__help.is-on{color:var(--tn-orange);background:var(--tn-row-soft,transparent)}
/* Dentro de .tn-acc__it (overflow:hidden) el anillo hacia afuera se recorta. */
.tn .tn-acc__hd:focus-visible,.tn .tn-acc__help:focus-visible{outline-offset:-2px}
.tn-acc__help svg{width:22px;height:22px}
.tn-acc__ayuda{padding:14px 18px 16px;border-top:1px solid var(--tn-rule);background:var(--tn-row-soft,transparent)}
.tn-acc__ayuda[hidden]{display:none}
.tn-acc__ayuda dl{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:8px 16px;font-size:13.5px;line-height:1.5}
.tn-acc__ayuda dt{color:var(--tn-orange-ink);font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding-top:2px}
.tn-acc__ayuda dd{margin:0;color:var(--tn-ink)}
@media (max-width:700px){.tn-acc__ayuda dl{grid-template-columns:1fr;gap:4px}.tn-acc__ayuda dd{margin-bottom:8px}}
.tn-acc__it.is-on .tn-acc__chev{transform:rotate(180deg)}
.tn-acc__panel{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:4px 18px 18px 52px;border-top:1px solid var(--tn-rule);background:var(--tn-row-soft,transparent)}
.tn-acc__panel[hidden]{display:none}
.tn-acc__lbl{flex:0 0 100%;padding-top:12px;font-size:13px;color:var(--tn-muted)}
.tn .tn-chip{appearance:none;padding:10px 16px;border:1px solid var(--tn-rule);border-radius:6px;background:transparent;color:var(--tn-ink);font:inherit;font-size:14px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.tn .tn-chip:hover{border-color:var(--tn-muted)}
.tn .tn-chip[aria-pressed="true"]{border-color:var(--tn-orange);background:rgba(255,106,0,.08)}
.tn-chips{display:flex;flex-wrap:wrap;gap:10px 12px}
.tn-chips .tn-chip{padding:13px 18px;font-size:15px}
.tn-diag__falta{margin:14px 0 0;color:var(--tn-orange-ink);font-size:13.5px;min-height:1.2em}
@media (max-width:1000px){
  .tn-diag__body{grid-template-columns:1fr;gap:28px;padding:30px 0 80px}
  /* El lateral se disuelve en la columna unica y el panel en vivo pasa
     DESPUES de la lista, para que aparezca conforme se marca. */
  .tn-diag__side{display:contents}
  .tn-diag__side .tn-tip{display:none}
  .tn-diag__live-m{order:1}
  .tn-acc__panel{padding-left:18px}
}
.tn-diag__q{margin:0 0 10px;font-size:clamp(26px,3vw,40px);font-weight:500;line-height:1.12;letter-spacing:-.02em;text-wrap:balance}
.tn-diag__hint{margin:0 0 28px;color:var(--tn-muted);font-size:14.5px}
.tn-diag__insight{margin:0 0 16px;color:var(--tn-orange);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.tn-diag__paso{margin:0 0 16px;color:var(--tn-muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.tn-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tn-opts--1{grid-template-columns:1fr}
.tn .tn-opt{appearance:none;display:flex;align-items:center;gap:14px;padding:15px 18px;border:1px solid var(--tn-rule);border-radius:8px;
  background:transparent;color:var(--tn-ink);text-align:left;font:inherit;font-size:15px;line-height:1.35;cursor:pointer;transition:border-color .18s ease}
.tn .tn-opt:hover{border-color:var(--tn-muted)}
.tn-opt::before{content:"";flex:0 0 auto;width:18px;height:18px;border:1.5px solid var(--tn-muted);border-radius:4px;transition:background-color .15s ease,border-color .15s ease}
.tn-opt--radio::before{border-radius:50%}
.tn .tn-opt[aria-pressed="true"]{border-color:var(--tn-orange)}
.tn-opt[aria-pressed="true"]::before{background:var(--tn-orange);border-color:var(--tn-orange);box-shadow:inset 0 0 0 3px var(--tn-bg)}
.tn-diag__otro{margin-top:10px}
.tn-diag__acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:30px}
.tn-diag__acts .tn-link{margin-left:auto}
.tn .tn-btn[disabled]{opacity:.38;cursor:not-allowed}
.tn-diag__wait{display:flex;flex-direction:column;align-items:center;gap:18px;padding:80px 0;color:var(--tn-muted)}
.tn-diag__spin{width:34px;height:34px;border-radius:50%;border:2px solid var(--tn-rule);border-top-color:var(--tn-orange);animation:tn-spin .9s linear infinite}
@keyframes tn-spin{to{transform:rotate(360deg)}}
.tn-diag__err{padding:40px 0;color:var(--tn-muted)}
.tn-diag__err p{margin:0 0 18px}
/* Resultado */
.tn-diag__sum{margin:0 0 28px;font-size:17px;line-height:1.6;color:var(--tn-ink)}
.tn-opps{display:grid;gap:10px;margin:0 0 40px}
.tn-opp{display:grid;gap:5px;padding:18px 20px;border:1px solid var(--tn-rule);border-radius:8px}
.tn-opp--main{border-color:var(--tn-orange)}
.tn-opp__cat{display:flex;align-items:center;gap:10px;color:var(--tn-muted);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase}
.tn-opp__tier{display:inline-block;padding:3px 8px;border-radius:999px;border:1px solid var(--tn-rule);color:var(--tn-muted);font-size:10.5px;letter-spacing:.1em}
.tn-opp--main .tn-opp__tier{border-color:var(--tn-orange);color:var(--tn-orange-ink)}
.tn-opp__name{margin:0;font-size:18px;font-weight:500;line-height:1.25}
.tn-opp__exp{margin:2px 0 0;color:var(--tn-muted);font-size:14.5px;line-height:1.55}
.tn-diag__h3{margin:0 0 6px;font-size:22px;font-weight:500;letter-spacing:-.01em}
.tn-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}
.tn-form label{display:grid;gap:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--tn-muted)}
.tn .tn-form input[type="text"],.tn .tn-form input[type="tel"],.tn .tn-form input[type="email"],.tn .tn-diag__otro input{
  width:100%;min-height:48px;padding:0 14px;border:1px solid var(--tn-rule);border-radius:6px;background:transparent;color:var(--tn-ink);font:inherit;font-size:16px;text-transform:none;letter-spacing:0}
.tn .tn-form input:focus,.tn .tn-diag__otro input:focus{outline:none;border-color:var(--tn-orange)}
.tn-form__full{grid-column:1/-1}
.tn-form .tn-consent{display:flex;align-items:flex-start;gap:12px;font-size:13.5px;color:var(--tn-muted);line-height:1.5;text-transform:none;letter-spacing:0}
.tn-consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--tn-orange)}
.tn .tn-consent input:focus-visible{outline:2px solid var(--tn-orange);outline-offset:2px}
.tn-form__msg{grid-column:1/-1;margin:0;color:var(--tn-orange-ink);font-size:14px;min-height:1.2em}
.tn-diag__ok{padding:40px 0;text-align:center}
.tn-diag__ok .tn-diag__q{margin-bottom:14px}
@media (max-width:700px){
  .tn-diag__top{padding-top:14px}
  .tn-diag__body{padding:34px 0 80px}
  .tn-opts{grid-template-columns:1fr}
  .tn-form{grid-template-columns:1fr}
  .tn-diag__acts .tn-btn{width:100%;justify-content:center}
  .tn-diag__acts .tn-link{margin:6px auto 0}
}

/* ---------- Movil: la foto arriba con el letrero completo, el texto abajo ----------
   La foto es apaisada; a esta altura el recorte "cover" deja visible justo el
   tramo del letrero (del 33% al 93% del ancho original) si se centra en 63%. */
@media (max-width:900px){
  .tn{--tn-pad:20px;--tn-foto:clamp(340px,46vh,380px)}
  .tn-hd__in{min-height:68px;gap:14px}
  .tn-logo img{height:18px}
  .tn-hd__right{gap:8px}
  .tn-nav,.tn-hd__right .tn-pill{display:none}
  .tn-burger{display:grid;margin-left:2px}
  .tn-menu:not([hidden]){display:flex}
  .tn-hero__bg{left:0;bottom:auto;height:var(--tn-foto)}
  .tn-hero__bg img{object-position:63.5% 50%}
  .tn-hero__bg::after,
  :root[data-theme="light"] .tn-hero__bg::after{
    background:linear-gradient(180deg,var(--tn-bg) 0%,var(--tn-bg-0) 96px),
               linear-gradient(180deg,var(--tn-bg-0) 48%,var(--tn-bg) 84%)}
  .tn-hero__in{min-height:0;justify-content:flex-start;padding:calc(var(--tn-foto) - 64px) 0 36px}
  .tn-hero__copy{max-width:none}
  .tn-h1{font-size:clamp(38px,11vw,48px);margin-bottom:22px}
  .tn-sub{margin-bottom:28px;max-width:none}
  .tn-cta{flex-direction:column;gap:10px}
  .tn-btn{width:100%;justify-content:center}
  .tn-ejes{margin-top:44px;max-width:none}
}


/* ---------- Clientes (v91): una sola fila compacta ----------
   flecha · título · logos · flecha. Hereda los tokens del sitio; en oscuro la
   fila lleva un fondo apenas más claro (--tn-row-soft) como en el mockup. */
.tn-cli{padding:0;border-top:1px solid var(--tn-rule);border-bottom:1px solid var(--tn-rule);background:var(--tn-row-soft)}
.tn-cli__defs{position:absolute;width:0;height:0;overflow:hidden}
.tn-cli__fila{display:flex;align-items:center;gap:28px;min-height:150px;padding:22px 0}
.tn-cli__head{flex:0 0 auto;width:min(260px,26vw);padding-right:8px}
.tn-cli__t{font-size:clamp(18px,1.6vw,22px);font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0 0 8px;color:var(--tn-ink)}
.tn-cli__sub{margin:0;font-size:13.5px;line-height:1.45;color:var(--tn-muted)}
.tn .tn-cli__btn,.tn .tn-cli__btn:hover,.tn .tn-cli__btn:focus{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;padding:0;border-radius:50%;
  border:1px solid var(--tn-pill-line);background:var(--tn-pill-bg);color:var(--tn-muted);cursor:pointer;transition:border-color .18s ease,color .18s ease}
.tn .tn-cli__btn:hover{border-color:var(--tn-orange);color:var(--tn-orange)}
.tn-cli__btn svg{width:18px;height:18px;display:block}
.tn-cli__viewport{flex:1 1 0;min-width:0;overflow:hidden;padding:6px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);
          mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent)}
.tn-cli__track{display:flex;align-items:center;gap:64px;margin:0;padding:0 32px 0 32px;list-style:none;width:max-content;will-change:transform}
.tn-cli__item{flex:0 0 auto;display:flex;align-items:center}
.tn-cli__mas{color:var(--tn-orange-ink);font-weight:600}
.tn-cli__chip{display:inline-block;padding:7px 14px;border:1px solid var(--tn-orange);border-radius:999px;color:var(--tn-orange-ink);font-size:12.5px;font-weight:600;letter-spacing:.04em;white-space:nowrap}
/* fill:currentColor aquí y no en el CSS adicional del personalizador: los símbolos
   llegan sin fill y sin esto se pintan negros sobre el tema oscuro. */
.tn-cli__logo{display:block;width:auto;color:var(--tn-ink);fill:currentColor;opacity:.82;transition:opacity .25s ease}
.tn-cli__logo *{fill:currentColor}
.tn-cli__item:hover .tn-cli__logo{opacity:1}
.tn-cli .tn-cli__viewport .tn-cli__l--adidas{height:34px;aspect-ratio:725/500}
.tn-cli .tn-cli__viewport .tn-cli__l--pemex{height:32px;aspect-ratio:4661.0894/2742.0874}
.tn-cli .tn-cli__viewport .tn-cli__l--coca-cola{height:27px;aspect-ratio:615.08/192.94}
.tn-cli .tn-cli__viewport .tn-cli__l--shell{height:29px;aspect-ratio:73/29}
.tn-cli .tn-cli__viewport .tn-cli__l--banorte{height:20px;aspect-ratio:2139.9999/308.56972}
/* UNE es un PNG cuadrado con aire alrededor: se agranda y se recorta con márgenes
   negativos para que el contenido mida como los demás (sustituye el CSS adicional del personalizador). */
.tn-cli .tn-cli__viewport .tn-cli__l--une{height:70px;width:70px;margin:-18px -10px;object-fit:contain}
.tn-cli__raster{filter:none}
:root[data-theme="light"] .tn-cli__raster{filter:brightness(0)}

@media (max-width:900px){
  .tn-cli__fila{flex-wrap:wrap;gap:14px 10px;min-height:0;padding:22px 0 20px}
  .tn-cli__head{flex:0 0 100%;width:100%;padding:0;order:-1;text-align:center}
  .tn-cli__viewport{flex:1 1 0;min-width:0}
  .tn-cli__t{margin-bottom:4px}
  .tn-cli__track{gap:44px;padding:0 20px}
  .tn-cli__logo{transform:scale(.88);transform-origin:center}
  .tn .tn-cli__btn{width:36px;height:36px}
}
@media (prefers-reduced-motion:reduce){
  .tn-cli__logo{transition:none}
}

/* ---------- Proyectos (v92): cada tarjeta es un enlace a su página ---------- */
.tn .tn-card__link,.tn .tn-card__link:visited{display:block;color:inherit;text-decoration:none;-webkit-user-drag:none}
.tn .tn-card__link:hover .tn-card__t{color:var(--tn-orange)}
.tn .tn-card__link:focus-visible{outline:2px solid var(--tn-orange);outline-offset:4px;border-radius:6px}
.tn-card__link img{pointer-events:none}

/* ---------- Proyectos (v93): enlace a la página de proyectos ---------- */
.tn-pr__side{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.tn .tn-pr__todos,.tn .tn-pr__todos:visited{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--tn-ink);text-decoration:none;border-bottom:1px solid var(--tn-orange);padding-bottom:2px;transition:color .18s ease}
.tn .tn-pr__todos:hover{color:var(--tn-orange)}
.tn-car__track.is-dragging .tn-card__link{cursor:grabbing}


/* ---------- Hero con video (v96) ----------
   El video ocupa la caja de la foto: derecha en escritorio, franja superior en
   móvil. El velo ::after sigue protegiendo el titular. */
.tn-hero__bg video{width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block;background:var(--tn-bg)}
@media (max-width:900px){.tn-hero__bg video{object-position:50% 50%}}


/* ---------- Diagnóstico v97: veredictos y "Empieza aquí" ---------- */
.tn-ver{margin:0 0 18px;padding:14px 16px 12px;border:1px solid var(--tn-rule);border-radius:8px}
.tn-ver ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
.tn-ver__it{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:baseline;font-size:14px;line-height:1.4}
.tn-ver__it b{font-weight:600}
.tn-ver__v{display:inline-block;min-width:92px;text-align:center;padding:3px 10px;border-radius:999px;border:1px solid var(--tn-rule);color:var(--tn-muted);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.tn-ver__v--mejorar{border-color:var(--tn-orange);color:var(--tn-orange-ink)}
.tn-ver__v--cambiar{background:var(--tn-orange);border-color:var(--tn-orange);color:#fff}
.tn-ver__v--crear{background:var(--tn-ink);border-color:var(--tn-ink);color:var(--tn-bg)}
.tn-ver__n{grid-column:2;color:var(--tn-muted);font-size:13px}
.tn-diag__eb{margin:0 0 10px}
.tn-opp--first{background:color-mix(in srgb,var(--tn-orange) 7%,transparent)}
.tn-opp--first .tn-opp__tier{background:var(--tn-orange);border-color:var(--tn-orange);color:#fff}
@media (max-width:640px){.tn-ver__it{grid-template-columns:1fr}.tn-ver__n{grid-column:1}}


/* ---------- Desplegables del menú (v98) ---------- */
.tn-drop{position:relative;display:flex}
.tn .tn-drop__b{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:transparent;
  font:inherit;color:inherit;cursor:pointer;white-space:nowrap;transition:color .18s ease}
.tn .tn-drop__b:hover,.tn .tn-drop__b[aria-expanded="true"]{color:var(--tn-orange)}
.tn-caret{width:14px;height:14px;transition:transform .18s ease}
.tn .tn-drop__b[aria-expanded="true"] .tn-caret{transform:rotate(180deg)}
.tn-drop__p{position:absolute;top:calc(100% + 14px);left:-14px;z-index:30;min-width:250px;padding:8px;
  display:flex;flex-direction:column;gap:1px;border-radius:10px;border:1px solid var(--tn-rule);
  background:var(--tn-bg);box-shadow:0 18px 40px -18px rgba(0,0,0,.7)}
:root[data-theme="light"] .tn-drop__p{box-shadow:0 18px 40px -20px rgba(17,17,17,.28)}
.tn-drop__p::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.tn .tn-drop__p a{display:block;padding:9px 12px;border-radius:7px;font-size:14.5px;font-weight:500;
  color:var(--tn-ink);opacity:.85;transition:background-color .16s ease,color .16s ease,opacity .16s ease}
.tn .tn-drop__p a:hover,.tn .tn-drop__p a:focus-visible{background:var(--tn-rule);color:var(--tn-orange);opacity:1}
.tn-menu__sub{list-style:none;margin:18px 0 0;padding:0 0 0 2px;display:flex;flex-direction:column;gap:16px}
.tn .tn-menu__sub a{font-size:15px;letter-spacing:.12em;opacity:.55}
.tn .tn-menu__sub a:hover{opacity:.9}

/* v99: el panel respeta [hidden]; sin esto display:flex lo dejaba siempre visible. */
.tn-drop__p[hidden]{display:none}

/* v102: portada mitad digital / mitad física */
/* TOPSA · portada mitad digital / mitad física (prefijo thx-) */
.thx{--fs:clamp(40px,min(5.3vw,10.4vh),120px);--p:50%;--thx-hd:76px;--thx-o:#FF6A00;--thx-ink:#111;--thx-crema:#F7F5F1;
  position:relative;padding-top:var(--thx-hd);background:var(--tn-bg,#0A0A0A);
  font-family:var(--tn-sans,Inter,"Helvetica Neue",Arial,sans-serif)}
.thx *,.thx *::before,.thx *::after{box-sizing:border-box}
.thx p{margin:0}
.thx img{display:block;max-width:none}
/* las imágenes que se cargan después no deben mostrar su texto alternativo ni el ícono de imagen rota */
.thx img:not([src]){visibility:hidden}

.thx-comp{position:relative;height:clamp(max(640px,min(36vw,880px)),calc(100vh - var(--thx-hd)),1200px);overflow:hidden;
  background:var(--thx-crema);container-type:size}
.thx-vis{position:absolute;inset:0}

/* ---- mitad digital ---- */
.thx-dig{position:absolute;top:0;bottom:0;left:0;width:var(--p);overflow:hidden;z-index:1;
  background:radial-gradient(120% 90% at 20% 100%,#EFEBE4 0%,var(--thx-crema) 55%)}
.thx-dig__in{--lw:min(37cqw,calc((93cqh - 2.06*var(--fs) - 270px)/.6));position:absolute;top:0;bottom:0;left:0;width:100vw;width:100cqw}
.thx-dev{position:absolute;left:3.4cqw;bottom:104px;
  display:flex;align-items:flex-end}
.thx-cel{position:relative;z-index:2;flex:none;width:calc(var(--lw)*.265);margin-right:calc(var(--lw)*-.07);
  padding:calc(var(--lw)*.011);border-radius:calc(var(--lw)*.045);background:#151515;
  box-shadow:0 0 0 1px #3a3a3a inset,0 18px 30px -14px rgba(17,17,17,.45)}
.thx-cel__scr{position:relative;aspect-ratio:540/1169;border-radius:calc(var(--lw)*.036);overflow:hidden;background:#fff}
.thx-lap{flex:none;width:var(--lw)}
.thx-lap__scr{margin:0 6%;padding:1.6% 1.6% 2%;border-radius:calc(var(--lw)*.022) calc(var(--lw)*.022) 0 0;background:#151515;
  box-shadow:0 0 0 1px #3a3a3a inset}
.thx-lap__in{position:relative;aspect-ratio:16/10;overflow:hidden;background:#fff}
.thx-lap__base{position:relative;height:calc(var(--lw)*.026);border-radius:2px 2px calc(var(--lw)*.03) calc(var(--lw)*.03);
  background:linear-gradient(180deg,#E3E1DD 0%,#BDBAB5 55%,#8F8C87 100%);box-shadow:0 22px 26px -16px rgba(17,17,17,.5)}
.thx-lap__base::before{content:"";position:absolute;top:0;left:50%;width:14%;height:38%;transform:translateX(-50%);
  border-radius:0 0 6px 6px;background:#A9A6A1}
.thx-cel__scr img,.thx-lap__in img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 0;
  opacity:0;transition:opacity .7s ease}
.thx-cel__scr img.is-on,.thx-lap__in img.is-on{opacity:1}

/* ---- mitad física ---- */
.thx-fis{position:absolute;top:0;bottom:0;right:0;left:var(--p);overflow:hidden;z-index:1;background:#0B0B0B}
.thx .thx-foto{position:absolute;top:0;height:100%;width:50vw;width:50cqw;left:max(calc(100% - 50cqw),calc((100% - 50cqw)*var(--f,.5)));
  object-fit:cover;object-position:50% 50%;opacity:0;transform:scale(1.05);
  transition:opacity .9s ease,transform 1.6s cubic-bezier(.2,.7,.2,1)}
.thx .thx-foto.is-on{opacity:1;transform:none}
.thx-fis::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(8,8,8,.66) 0%,rgba(8,8,8,.3) 34%,rgba(8,8,8,0) 62%),
             linear-gradient(0deg,rgba(8,8,8,.72) 0%,rgba(8,8,8,.35) 14%,rgba(8,8,8,0) 30%)}

/* ---- más proyectos al deslizar ---- */
.thx-mas{position:absolute;left:calc(3.4cqw + var(--lw)*1.195 + 2.4cqw);bottom:80px;display:grid;grid-auto-flow:column;grid-template-rows:auto auto;align-items:end;gap:14px 2.2cqw}
.thx .thx-win{flex:none;min-width:0;width:min(calc(var(--lw)*.44),17cqw)}
/* pantallas anchas y bajas: una sola fila de ventanas grandes junto a la laptop */
@container (min-aspect-ratio:230/100){
  .thx-mas{display:flex;align-items:flex-end}
  .thx .thx-win{width:min(calc(var(--lw)*.78),20cqw)}
}
.thx .thx-win{margin:0;display:grid;gap:7px}
.thx-win__in{position:relative;aspect-ratio:16/10;padding-top:12px;border-radius:8px;overflow:hidden;background:#E4E0D9;
  box-shadow:0 0 0 1px rgba(17,17,17,.12),0 18px 28px -18px rgba(17,17,17,.45)}
.thx-win__in::before{content:"";position:absolute;top:4px;left:8px;width:4px;height:4px;border-radius:50%;background:#A9A6A1;box-shadow:8px 0 #A9A6A1,16px 0 #A9A6A1}
.thx-win__in img{width:100%;height:100%;object-fit:cover;object-position:50% 0}
.thx-win figcaption{font-size:12px;color:#5D5954;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thx-masf{position:absolute;top:0;bottom:0;right:50vw;right:50cqw;width:20vw;width:20cqw;display:grid;grid-template-rows:1fr 1fr;gap:2px;padding:calc(7cqh + 2.06*var(--fs) + 64px) 2px 0 0;background:#0B0B0B}
.thx .thx-masf img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% 50%}
.thx .thx-masf img.thx-masf__c{object-fit:contain;background:#000}

/* ---- etiquetas ---- */
.thx-lab{position:absolute;bottom:34px;z-index:2;display:grid;gap:8px;white-space:nowrap}
.thx-lab b{font-size:19px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.thx-lab i{font-style:normal;color:var(--thx-o)}
.thx-lab span{font-size:14px;letter-spacing:.01em}
.thx-lab--d{left:3.4cqw;color:var(--thx-ink)}
.thx-lab--d span{color:#5D5954}
.thx-lab--d i{color:#C24E00}
.thx-lab--f{left:3.2cqw;color:#fff}
.thx-lab--f span{color:#E6E2DC}

/* ---- textos ---- */
.thx-txt{position:absolute;z-index:2;top:clamp(26px,7cqh,64px);left:12.2vw;right:4vw;color:var(--thx-ink);pointer-events:none}
.thx-h1{margin:0;font-size:var(--fs);font-weight:700;line-height:1.03;letter-spacing:-.035em;color:inherit}
.thx-h1 span{display:block}
.thx-h1__b{padding-left:1.9em;white-space:nowrap}
.thx-h1 em{font-style:normal;color:var(--thx-o)}
.thx-h1 b{font-weight:inherit}
.thx-lab em{font-style:normal}
.thx a.thx-btn span{display:inline}
.thx .thx-sub{margin-top:clamp(16px,3cqh,28px);font-size:clamp(16px,1.3vw,20px);line-height:1.4;color:#3B3834}
.thx a.thx-btn{pointer-events:auto;display:inline-flex;align-items:center;gap:12px;min-height:52px;margin-top:clamp(16px,2.6cqh,26px);padding:0 26px;
  border-radius:6px;background:var(--thx-o);color:#fff;font-size:16px;font-weight:600;text-decoration:none;
  transition:background-color .18s ease}
.thx a.thx-btn:hover{background:#E65F00;color:#fff}
.thx-btn svg{width:18px;height:18px}
.thx-btn:focus-visible,.thx-div:focus-visible .thx-knob,.thx-pag button:focus-visible{outline:3px solid #111;outline-offset:3px;box-shadow:0 0 0 3px #fff}
.thx-div:focus{outline:none}
.thx-txt--inv{z-index:3;top:0;bottom:0;left:0;right:0;padding:clamp(26px,7cqh,64px) 4vw 0 12.2vw;color:#fff;clip-path:inset(0 0 0 var(--p))}
.thx-txt--inv .thx-sub{color:#fff}

/* ---- divisor ---- */
.thx-div{position:absolute;top:0;bottom:0;left:var(--p);z-index:5;width:28px;margin-left:-14px;cursor:ew-resize;touch-action:pan-y;
  -webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.thx-div::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--thx-o)}
.thx-knob{position:absolute;left:50%;top:63%;width:58px;height:58px;margin:-29px 0 0 -29px;display:grid;place-items:center;border-radius:50%;
  background:#fff;color:#111;border:2px solid var(--thx-o);box-shadow:0 8px 22px -8px rgba(0,0,0,.55);transition:transform .18s ease}
.thx-knob svg{width:26px;height:26px}
.thx-div:hover .thx-knob,.thx--arrastra .thx-knob{transform:scale(1.07)}
.thx-hint{position:absolute;left:50%;top:calc(63% + 42px);transform:translateX(-50%);padding:6px 12px;border-radius:6px;background:#fff;color:#111;
  font-size:13px;white-space:nowrap;box-shadow:0 6px 18px -8px rgba(0,0,0,.5);transition:opacity .4s ease;pointer-events:none}
.thx--tocado .thx-hint{opacity:0}
.thx--arrastra{cursor:ew-resize}
.thx.thx--arrastra .thx-foto,.thx--arrastra .thx-dig{transition:none}

/* ---- crédito y paginador ---- */
.thx-pie{color:#fff}
.thx-pag{position:absolute;z-index:4;right:104px;bottom:26px}
.thx-cred{position:absolute;z-index:4;top:22px;right:3.2vw;display:grid;text-shadow:0 1px 6px rgba(0,0,0,.7);font-size:12px;letter-spacing:.09em;text-transform:uppercase;text-align:right;white-space:nowrap}
.thx-cred span{grid-area:1/1;opacity:0;transition:opacity .5s ease}
.thx-cred span.is-on{opacity:1}
.thx--angosto .thx-pag{bottom:104px}
.thx-pag{display:flex;align-items:center}
.thx-pag button{appearance:none;border:0;background:none;padding:0;margin:0;cursor:pointer;color:#fff;height:44px;width:38px;display:grid;place-items:center}
.thx-pag button i{display:block;width:26px;height:3px;border-radius:2px;background:rgba(255,255,255,.5);transition:background-color .3s ease}
.thx-pag button[aria-current="true"] i{background:var(--thx-o)}
.thx-pag button:hover i{background:#fff}
.thx-pausa{width:44px!important}
.thx-pausa svg{width:14px;height:14px}
.thx-pausa__r,.thx-pausa[aria-pressed="true"] .thx-pausa__p{display:none}
.thx-pausa[aria-pressed="true"] .thx-pausa__r{display:block}

/* ---- sección del video, justo debajo ---- */
.thx-video .tn-hero__in{min-height:min(760px,92vh);padding-top:72px}
.thx-video__nota{position:absolute;right:20px;bottom:16px;z-index:2;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--tn-muted,#A8A199)}

/* ---- tablet ---- */
@media (max-width:1100px){
  .thx-txt{left:7vw}
  .thx-txt--inv{left:0;padding-left:7vw}
  .thx-h1__b{padding-left:1.1em}
  .thx-dig__in{--lw:min(38cqw,calc((93cqh - 2.06*var(--fs) - 270px)/.6))}
  .thx .thx-win{width:min(calc(var(--lw)*.44),16.5cqw)}
}

/* ---- celular: texto arriba sobre claro, composición abajo ---- */
@media (max-width:820px){
  .thx{--thx-hd:68px}
  .thx-comp{height:auto;min-height:0;overflow:visible;container-type:normal;display:flex;flex-direction:column}
  .thx-txt{position:static;padding:30px 22px 30px;pointer-events:auto}
  .thx-txt--inv{display:none}
  .thx{--fs:clamp(34px,10.4vw,56px)}
  .thx-h1{text-wrap:balance}
  .thx-h1 span{display:inline}
  .thx-h1__b{padding-left:0;white-space:normal}
  .thx .thx-sub{margin-top:18px;font-size:17px}
  .thx a.thx-btn{margin-top:22px;width:100%;justify-content:center;min-height:54px}
  .thx-vis{position:relative;inset:auto;height:clamp(400px,112vw,560px);overflow:hidden;container-type:size}
  .thx-dig__in{--lw:54cqw}
  .thx-dev{left:5cqw;bottom:104px}
  .thx-mas{display:flex;align-items:flex-end;left:5cqw;top:20px;bottom:auto;gap:4cqw}
  .thx .thx-win{width:40cqw;gap:5px}
  .thx-win figcaption{font-size:11px}
  .thx-masf__c{display:none}
  .thx-masf{grid-template-rows:1fr}
  .thx-masf{padding-top:0}
  .thx-video__nota{bottom:auto;top:12px;right:14px}
  .thx-cel{width:calc(var(--lw)*.36);margin-right:calc(var(--lw)*-.2)}
  .thx-lab{bottom:20px;gap:5px}
  .thx-lab b{font-size:14px}
  .thx-lab span{font-size:11.5px;line-height:1.35;white-space:normal;max-width:27cqw}
  .thx-lab--d{left:5cqw}
  .thx-lab--f{left:4cqw}
  .thx-knob{top:46%;width:52px;height:52px;margin:-26px 0 0 -26px}
  .thx-hint{top:calc(46% + 36px);font-size:12px}
  .thx-div{width:44px;margin-left:-22px}
  .thx-pie{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 84px 6px 22px;background:#0B0B0B}
  .thx-cred{position:static;text-align:left;font-size:10.5px;white-space:normal;text-shadow:none}
  .thx-pag,.thx--angosto .thx-pag{position:static}
  .thx-comp{min-height:0}
}

/* ---- teléfonos ---- */
@media (max-width:599px){
  .thx-txt{padding:26px 20px 26px}
  .thx-vis{height:clamp(460px,128vw,640px);touch-action:pan-y}
  /* el celular y la laptop crecen hasta tocar la fila de ventanas: sin hueco en medio */
  .thx-dig__in{--lw:calc((100cqh - 26.9cqw - 136px)/.8)}
  .thx-dev{bottom:66px}
  .thx-mas{top:18px}
  .thx .thx-win{width:43cqw}
  .thx-lab{bottom:22px}
  .thx-lab b{font-size:15px}
  .thx-lab span{display:none}
  .thx-knob{top:52%}
  .thx-hint{top:calc(52% + 36px)}
  .thx-pie{padding:4px 80px 4px 20px;min-height:56px}
  .thx-cred{font-size:10px;line-height:1.5}
}

@media (min-width:600px) and (max-width:820px){
  .thx-dig__in{--lw:44cqw}
  .thx .thx-win{width:26cqw}
}

@media (prefers-reduced-motion:reduce){
  .thx .thx-foto,.thx-cel__scr img,.thx-lap__in img,.thx-cred span,.thx-knob,.thx-hint{transition:none}
  .thx .thx-foto{transform:none}
}

/* v103 */
/* Sección del video en celular: el texto arrancaba 64 px dentro del video y el
   titular quedaba encima de la A. Ahora empieza debajo. */
@media (max-width:900px){
  .thx-video .tn-hero__in{padding-top:calc(var(--tn-foto) + 8px)}
  .thx-video .tn-hero__bg::after,:root[data-theme="light"] .thx-video .tn-hero__bg::after,[data-theme="light"] .thx-video .tn-hero__bg::after{background:linear-gradient(180deg,var(--tn-bg-0) 78%,var(--tn-bg) 100%)}
}

/* v104: menú organizado. El panel de la hamburguesa empieza debajo de la barra
   (que ahora tiene fondo mientras está abierto) y su contenido es el componente
   tmm-* de TOPSA SEO (menu.css). */
.tn-menu{top:76px;padding:22px var(--tn-pad,48px) 48px;align-items:stretch;justify-content:flex-start;text-align:left;border-top:1px solid var(--tn-rule)}
.tn-menu:not([hidden]){display:block}
.tn-menu-open .tn-hd{background:var(--tn-bg)}
@media (max-width:900px){.tn-menu{top:68px}}
/* Rótulo dentro de un desplegable («¿Te está pasando?»). */
.tn-drop__t{display:block;margin-top:6px;padding:10px 12px 4px;border-top:1px solid var(--tn-rule);font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--tn-muted)}

/* v105: «Cómo trabajamos» con el video completo (antes, video de la A como fondo). */
.tvid{background:var(--tn-bg);padding:88px 0 72px;scroll-margin-top:76px}
.tvid__cab{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:26px 48px;margin-bottom:36px}
.tvid__h{margin:0;font-size:clamp(34px,4vw,56px);font-weight:500;line-height:1.05;letter-spacing:-.03em;color:var(--tn-ink)}
.tvid__h em{font-style:normal;color:var(--tn-orange)}
.tvid__p{margin:16px 0 0;max-width:52ch;font-size:clamp(15px,1.15vw,17px);line-height:1.55;color:var(--tn-muted)}
/* El fondo del video es #0E0E0E: si la caja no cabe a 16:9 (pantallas bajas), las bandas no se notan. */
.tvid__media{position:relative;aspect-ratio:16/9;max-height:min(84vh,900px);margin:0 auto;border-radius:14px;overflow:hidden;background:#0E0E0E;box-shadow:0 0 0 1px var(--tn-rule)}
.tvid__v{display:block;width:100%;height:100%;object-fit:contain;background:#0E0E0E}
.tvid__nota{margin:12px 2px 0;text-align:right;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--tn-muted)}
@media (max-width:900px){
  .tvid{padding:56px 0 48px;scroll-margin-top:68px}
  .tvid__cab{margin-bottom:26px}
  .tvid__cab .tn-cta{width:100%}
}
@media (max-width:700px){
  .tvid__media{aspect-ratio:9/16;max-height:86vh;border-radius:12px}
}

.tn-nav{gap:26px;margin-left:44px}
@media (max-width:1400px){
  .tn-hd__in{gap:14px}
  .tn-nav{margin-left:22px;gap:16px;font-size:14px}
  .tn-hd__right{gap:8px}
  .tn-hd__right .tn-pill{padding:0 14px;font-size:13.5px}
  .tn-hd__right .tn-pill svg{display:none}
}
@media (max-width:1240px){
  .tn-nav,.tn-hd__right .tn-pill{display:none}
  .tn-burger{display:grid;margin-left:2px}
}

/* v106: el video nuevo es la primera pantalla. Va primero el video y debajo su
   texto; la altura se limita para que el texto asome sin deslizar. La portada
   mitad y mitad ya no carga con el hueco del encabezado. */
.tvid--top{padding:calc(76px + 18px) 0 44px}
.tvid--top .tvid__media{max-height:calc(100vh - 76px - 190px);min-height:260px}
.tvid--top .tvid__cab{margin:28px 0 0;align-items:center}
.tvid--top .tvid__h{font-size:clamp(28px,3vw,44px)}
.tvid--top .tvid__nota{margin-top:10px}
.tvid--top + .thx{padding-top:0}
@media (max-width:900px){
  .tvid--top{padding:calc(68px + 12px) 0 36px}
  .tvid--top .tvid__media{max-height:calc(100vh - 68px - 150px)}
  .tvid--top .tvid__cab{margin-top:22px}
}
@media (max-width:700px){
  .tvid--top .tvid__media{max-height:calc(100vh - 68px - 110px);max-height:calc(100svh - 68px - 110px)}
}

/* v107: video de arriba fundido con el fondo. */
.tvid--top{background:#0E0E0E}
.tvid--top .tvid__media{border-radius:0;box-shadow:none;background:transparent;overflow:visible}
.tvid--top .tvid__v{background:transparent;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%),linear-gradient(180deg,transparent 0,#000 4%,#000 96%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%),linear-gradient(180deg,transparent 0,#000 4%,#000 96%,transparent 100%);
  mask-composite:intersect}
.tvid--top .tvid__v:fullscreen{-webkit-mask-image:none;mask-image:none;background:#0E0E0E}
.tvid__ctl{position:absolute;right:14px;bottom:14px;z-index:2;display:flex;gap:8px}
.tvid__b{appearance:none;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(14,14,14,.55);color:#F2EFEA;cursor:pointer;display:grid;place-items:center;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background-color .18s ease,border-color .18s ease,opacity .18s ease;opacity:.78}
.tvid__b:hover,.tvid__b:focus-visible{opacity:1;background:rgba(14,14,14,.8);border-color:var(--tn-orange)}
.tvid__b:focus-visible{outline:2px solid var(--tn-orange);outline-offset:2px}
.tvid__b svg{width:18px;height:18px;display:block}
.tvid__b span{display:grid;place-items:center}
.tvid__b .tvid__b-play,.tvid__b.is-pausado .tvid__b-pausa{display:none}
.tvid__b.is-pausado .tvid__b-play{display:grid}
@media (max-width:700px){
  /* en teléfono el video llega casi a las orillas de la pantalla */
  .tvid--top > .tn-shell{width:100%}
  .tvid--top .tvid__cab,.tvid--top .tvid__nota{padding-inline:var(--tn-pad,20px)}
  .tvid--top .tvid__nota{margin-inline:0}
  .tvid__ctl{right:12px;bottom:12px}
}
/* Tema claro: el fondo es marfil, así que el video queda como tarjeta oscura. */
:root[data-theme="light"] .tvid--top,[data-theme="light"] .tvid--top{background:var(--tn-bg)}
:root[data-theme="light"] .tvid--top .tvid__media,[data-theme="light"] .tvid--top .tvid__media{border-radius:14px;overflow:hidden;background:#0E0E0E;box-shadow:0 0 0 1px var(--tn-rule)}
:root[data-theme="light"] .tvid--top .tvid__v,[data-theme="light"] .tvid--top .tvid__v{-webkit-mask-image:none;mask-image:none;background:#0E0E0E}

/* v108: presentación interactiva a todo el ancho (el componente viene abajo). */
.tvid--tpi{padding:76px 0 40px;background:#0E0E0E}
.tvid--tpi .tvid__cab{margin:26px 0 0;align-items:center}
@media (max-width:900px){.tvid--tpi{padding:68px 0 32px}.tvid--tpi .tvid__cab{margin-top:20px}}
@media (max-width:700px){.tvid--tpi > .tn-shell{width:calc(100% - 2*var(--tn-pad,20px))}.tvid--tpi .tvid__cab,.tvid--tpi .tvid__nota{padding-inline:0}}
:root[data-theme="light"] .tvid--tpi,[data-theme="light"] .tvid--tpi{background:var(--tn-bg)}
/* TOPSA · presentación interactiva «Así trabajamos». Generado por video-presentacion/sitio.py. */
#tpi{--n:#0E0E0E;--n2:#181818;--n3:#242321;--c:#F7F5F1;--m:#A8A199;--o:#FF6A00;--l:#2E2C29}
#tpi *{box-sizing:border-box;margin:0;padding:0}
#tpi-st{position:relative;width:1920px;height:1080px;overflow:hidden;background:var(--n);color:var(--c);font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}
#tpi-st svg{display:block;width:1em;height:1em;stroke-width:1.8}
#tpi .abs{position:absolute}
#tpi [data-a]{will-change:transform,opacity}
#tpi .bg{position:absolute;inset:0;background:radial-gradient(1200px 700px at 72% 46%,#1B1A18 0%,rgba(14,14,14,0) 70%)}
#tpi .bg::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:96px 96px;mask-image:radial-gradient(900px 600px at 70% 50%,#000,transparent 75%);-webkit-mask-image:radial-gradient(900px 600px at 70% 50%,#000,transparent 75%)}
#tpi .logo{left:96px;top:70px;width:214px}
#tpi .url{right:96px;top:78px;font-size:20px;letter-spacing:.14em;text-transform:uppercase;color:var(--m)}
#tpi .centro{left:0;right:0;text-align:center}
#tpi .intro-logo{top:330px;left:660px;width:600px}
#tpi .intro-k{top:468px;font-size:26px;letter-spacing:.3em;text-transform:uppercase;color:var(--m)}
#tpi .intro-w{top:540px;display:flex;justify-content:center;gap:44px;font-size:92px;font-weight:700;letter-spacing:-.035em}
#tpi .intro-w span:last-child{color:var(--o)}
#tpi .fin-logo{top:350px;left:610px;width:700px}
#tpi .fin-t{top:500px;font-size:54px;font-weight:600;letter-spacing:-.02em}
#tpi .fin-s{top:590px;font-size:28px;color:var(--m)}
#tpi .fin-p{top:690px;display:flex;justify-content:center;gap:22px}
#tpi .pill{display:inline-flex;align-items:center;gap:12px;height:68px;padding:0 30px;border-radius:8px;font-size:28px;font-weight:600;border:1.5px solid #4A4743;color:var(--c)}
#tpi .pill--o{background:var(--o);border-color:var(--o);color:#fff}
#tpi .t{left:96px;width:540px;top:var(--y)}
#tpi .chip{--y:236px;display:inline-flex;align-items:center;gap:12px;height:44px;padding:0 18px;border-radius:6px;font-size:19px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;background:var(--n3);color:var(--c);width:auto}
#tpi .chip--o{background:var(--o);color:#fff}
#tpi .num{--y:238px;font-size:30px;font-weight:700;letter-spacing:.1em;color:var(--o)}
#tpi .num b{color:var(--m);font-weight:500;letter-spacing:.14em;font-size:20px;margin-left:14px;text-transform:uppercase}
#tpi .h{--y:300px;font-size:84px;font-weight:700;line-height:1.02;letter-spacing:-.04em}
#tpi .h--2{font-size:66px;line-height:1.05}
#tpi .p{font-size:29px;line-height:1.42;color:#D5D0C8}
#tpi .li{display:flex;align-items:flex-start;gap:16px;font-size:29px;line-height:1.3;color:#D5D0C8}
#tpi .li i{flex:none;width:10px;height:10px;margin-top:14px;border-radius:50%;background:#6D6862}
#tpi .ck{display:flex;align-items:center;gap:16px;font-size:27px;color:#8E8880}
#tpi .ck .cj{flex:none;width:34px;height:34px;border-radius:50%;border:2px solid #4A4743;display:grid;place-items:center;font-size:20px;color:transparent}
#tpi .ck.ok{color:var(--c)}
#tpi .ck.ok .cj{background:var(--o);border-color:var(--o);color:#fff}
#tpi .pasos{left:96px;top:936px;display:flex;gap:10px}
#tpi .paso{display:flex;align-items:center;gap:12px;height:54px;padding:0 20px;border-radius:8px;background:var(--n2);border:1px solid var(--l);font-size:20px;font-weight:600;color:#8E8880}
#tpi .paso svg{font-size:24px}
#tpi .paso.on{background:var(--o);border-color:var(--o);color:#fff}
#tpi .paso.hecho{color:var(--c);border-color:#4A4743}
#tpi #tpi-par{left:0;top:0;width:1920px;height:1080px}
#tpi .win,#tpi .fach{position:absolute;top:236px;width:550px;height:520px;border-radius:14px;overflow:hidden;box-shadow:0 40px 80px -40px #000,0 0 0 1px rgba(255,255,255,.07)}
#tpi .win{left:680px;background:#2A2927}
#tpi .fach{left:1274px;background:#3F3D3A}
#tpi .cap{position:absolute;top:772px;font-size:18px;letter-spacing:.14em;text-transform:uppercase;color:var(--m);display:flex;gap:10px;align-items:center}
#tpi .cap b{color:var(--o)}
#tpi .win-bar{height:40px;display:flex;align-items:center;gap:8px;padding:0 16px;background:#2A2927}
#tpi .win-bar i{width:11px;height:11px;border-radius:50%;background:#55524E}
#tpi .win-bar span{margin-left:14px;flex:1;height:22px;border-radius:11px;background:#1C1B1A;font-size:12px;line-height:22px;padding:0 12px;color:#8E8880}
#tpi .win-in{position:absolute;left:0;right:0;top:40px;bottom:0;overflow:hidden}
#tpi .capa{position:absolute;inset:0}
#tpi .sv{background:#CFCBC2;color:#4B4843;font-family:"Times New Roman",Times,serif;padding:18px 22px}
#tpi .sv h4{font-size:25px;font-weight:700;text-align:center;color:#3F3C6B;text-decoration:underline}
#tpi .sv .nav{margin-top:8px;text-align:center;font-size:13px;color:#2B3FA0;text-decoration:underline;word-spacing:5px}
#tpi .sv .img{margin-top:14px;height:170px;background:#B9B5AC;border:1px solid #9E9A92;display:grid;place-items:center;font-size:15px;color:#6A665F}
#tpi .sv .sp{width:38px;height:38px;border-radius:50%;border:4px solid #9E9A92;border-top-color:#5E5A54;margin:0 auto 10px}
#tpi .sv .tx{margin-top:14px;display:grid;gap:7px}
#tpi .sv .tx u{display:block;height:7px;background:#AAA69E;text-decoration:none}
#tpi .sv .pie{position:absolute;left:22px;right:22px;bottom:14px;font-size:13px;text-align:center;color:#6A665F}
#tpi .sn{background:#F7F5F1;color:#111;padding:0}
#tpi .sn-hd{height:54px;display:flex;align-items:center;padding:0 22px;gap:18px;border-bottom:1px solid #E4E0D9}
#tpi .sn-hd b{font-size:16px;font-weight:800;letter-spacing:.06em}
#tpi .sn-hd span{font-size:12.5px;color:#5D5954}
#tpi .sn-hd em{margin-left:auto;font-style:normal;font-size:12.5px;font-weight:600;color:#fff;background:#111;border-radius:5px;padding:7px 12px}
#tpi .sn-h{position:absolute;left:22px;top:82px;font-size:36px;font-weight:800;line-height:1.04;letter-spacing:-.035em}
#tpi .sn-h i{font-style:normal;color:var(--o)}
#tpi .sn-s{position:absolute;left:22px;top:166px;font-size:14px;color:#5D5954;width:300px;line-height:1.4}
#tpi .sn-b{position:absolute;left:22px;top:216px;height:40px;padding:0 16px;border-radius:6px;background:var(--o);color:#fff;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}
#tpi .sn-b svg{font-size:17px}
#tpi .sn-c{position:absolute;top:286px;width:158px;height:164px;border-radius:10px;background:#fff;box-shadow:0 0 0 1px #E4E0D9;padding:10px}
#tpi .sn-c i{display:block;height:92px;border-radius:7px}
#tpi .sn-c b{display:block;margin-top:10px;height:9px;width:74%;border-radius:4px;background:#111}
#tpi .sn-c u{display:block;margin-top:7px;height:8px;width:42%;border-radius:4px;background:var(--o)}
#tpi .sn-w{position:absolute;right:18px;top:78px;width:150px;height:186px;border-radius:12px;background:linear-gradient(160deg,#FF8A33,#FF6A00 55%,#D95600)}
#tpi .sn-w::after{content:"";position:absolute;left:22px;right:22px;top:26px;bottom:26px;border-radius:8px;background:rgba(255,255,255,.2)}
#tpi .sn-wa{position:absolute;right:16px;bottom:14px;width:50px;height:50px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;font-size:25px;box-shadow:0 10px 20px -8px rgba(0,0,0,.5)}
#tpi .fv{background:linear-gradient(180deg,#4B4946 0%,#3E3C39 100%)}
#tpi .fn{background:linear-gradient(180deg,#0B0B0C 0%,#131313 60%,#17110B 100%)}
#tpi .banda{position:absolute;left:34px;right:34px;top:54px;height:128px;border-radius:6px}
#tpi .fv .banda{background:#55524E;box-shadow:inset 0 0 0 1px #615E59}
#tpi .fn .banda{background:#0F0F0F;box-shadow:inset 0 0 0 1px #1F1E1C}
#tpi .rot{position:absolute;left:0;right:0;top:86px;text-align:center;font-size:62px;font-weight:800;letter-spacing:.06em;white-space:nowrap}
#tpi .fv .rot{color:#6A6661}
#tpi .fv .rot s{text-decoration:none;color:#5C5954}
#tpi .fn .rot{color:rgba(255,255,255,var(--f,0));-webkit-text-stroke:2px rgba(255,255,255,.92);clip-path:inset(-80px calc((1 - var(--r,0))*100%) -80px -40px)}
#tpi .puerta{position:absolute;left:58px;top:262px;width:134px;bottom:22px;border-radius:4px 4px 0 0}
#tpi .vit{position:absolute;left:228px;top:272px;width:268px;height:176px;border-radius:4px}
#tpi .fv .puerta,#tpi .fv .vit{background:#2F2D2B;box-shadow:inset 0 0 0 3px #4F4C48}
#tpi .fn .puerta{background:linear-gradient(180deg,#FFE9C4,#F2B869);opacity:var(--v,0);box-shadow:inset 0 0 0 3px #1F1E1C,0 0 60px rgba(255,200,120,.35)}
#tpi .fn .vit{background:linear-gradient(180deg,#FFF1D6,#F6C987);opacity:var(--v,0);box-shadow:inset 0 0 0 3px #1F1E1C,0 0 80px rgba(255,200,120,.4)}
#tpi .fn .vit::before{content:"";position:absolute;left:22px;bottom:0;width:54px;height:92px;background:rgba(17,17,17,.2);border-radius:4px 4px 0 0;box-shadow:78px 22px 0 -4px rgba(17,17,17,.18),160px 8px 0 0 rgba(17,17,17,.16)}
#tpi .piso{position:absolute;left:0;right:0;bottom:0;height:22px}
#tpi .fv .piso{background:#343230}
#tpi .fn .piso{background:#0A0A0A}
#tpi .fn .piso::after{content:"";position:absolute;left:40px;right:40px;top:0;height:22px;background:linear-gradient(180deg,rgba(255,200,120,.22),transparent);opacity:var(--v,0)}
#tpi .vinil{position:absolute;left:228px;top:458px;width:268px;text-align:center;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#EDE7DD}
#tpi .scan{top:216px;height:560px;width:3px;background:var(--o);box-shadow:0 0 22px 4px rgba(255,106,0,.7)}
#tpi .scan::before{content:"";position:absolute;right:3px;top:0;bottom:0;width:150px;background:linear-gradient(270deg,rgba(255,106,0,.22),transparent)}
#tpi .pin{display:flex;align-items:center;gap:12px;height:48px;padding:0 18px 0 7px;border-radius:24px;background:#111;border:1.5px solid var(--o);font-size:20px;font-weight:600;white-space:nowrap;box-shadow:0 14px 30px -12px #000}
#tpi .pin i{flex:none;width:34px;height:34px;border-radius:50%;background:var(--o);color:#fff;font-style:normal;font-size:18px;font-weight:800;display:grid;place-items:center}
#tpi .div{top:216px;height:560px;width:3px;background:var(--o)}
#tpi .div::after{content:"";position:absolute;left:-29px;top:250px;width:58px;height:58px;border-radius:50%;background:#fff;border:2.5px solid var(--o);box-shadow:0 10px 24px -8px #000}
#tpi .div svg{position:absolute;left:-14px;top:265px;font-size:28px;color:#111;z-index:2}
#tpi .div b{position:absolute;top:8px;height:34px;padding:0 14px;border-radius:5px;font-size:15px;font-weight:700;letter-spacing:.14em;line-height:34px;white-space:nowrap}
#tpi .div b.a{right:14px;background:#55524E;color:#fff}
#tpi .div b.d{left:14px;background:var(--o);color:#fff}
#tpi .band{left:680px;top:816px;width:1144px}
#tpi .hall{display:flex;align-items:center;gap:18px;height:84px;padding:0 26px;border-radius:12px;background:var(--n2);border:1.5px solid var(--o);font-size:24px;font-weight:600;width:max-content}
#tpi .hall svg{font-size:34px;color:var(--o)}
#tpi .hall span{font-weight:400;color:var(--m)}
#tpi .med{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
#tpi .m{padding:20px 22px 18px;border-radius:12px;background:var(--n2);border:1px solid var(--l)}
#tpi .m-t{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:600;white-space:nowrap}
#tpi .m-t svg{font-size:24px;color:var(--o)}
#tpi .m-b{margin-top:18px;height:12px;border-radius:6px;background:#2E2C29;overflow:hidden}
#tpi .m-b i{display:block;height:100%;border-radius:6px}
#tpi .m-e{margin-top:9px;display:flex;justify-content:space-between;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#77726B}
#tpi .flu{display:flex;align-items:center;gap:0}
#tpi .nodo{display:flex;align-items:center;gap:14px;height:84px;padding:0 24px;border-radius:12px;background:var(--n2);border:1px solid #4A4743;font-size:22px;font-weight:600;white-space:nowrap}
#tpi .nodo svg{font-size:30px;color:var(--o)}
#tpi .cable{position:relative;width:104px;height:3px;background:#3A3835;overflow:hidden}
#tpi .cable i{position:absolute;left:0;top:0;bottom:0;background:var(--o)}
#tpi .aviso{display:flex;align-items:center;gap:12px;height:52px;padding:0 18px 0 14px;border-radius:10px;background:#fff;color:#111;font-size:18px;font-weight:600;white-space:nowrap;box-shadow:0 18px 36px -14px #000}
#tpi .aviso svg{font-size:22px;color:var(--o)}
#tpi .nota{right:96px;top:1016px;font-size:16px;color:#77726B}
#tpi .sv-h{left:96px;top:176px;font-size:72px;font-weight:700;letter-spacing:-.04em}
#tpi .sv-s{left:96px;top:268px;font-size:28px;color:var(--m)}
#tpi .col{top:346px;width:840px;height:548px;border-radius:16px;padding:40px 44px}
#tpi .col--d{left:96px;background:var(--c);color:#111}
#tpi .col--f{left:984px;background:#191817;color:var(--c);box-shadow:inset 0 0 0 1px #33312E}
#tpi .col h5{font-size:24px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
#tpi .col h5 i{font-style:normal;color:var(--o)}
#tpi .col--d h5 i{color:#C24E00}
#tpi .it{position:absolute;left:44px;right:44px;display:flex;align-items:center;gap:22px;font-size:34px;font-weight:600;letter-spacing:-.015em}
#tpi .it svg{flex:none;font-size:38px;padding:13px;width:64px;height:64px;border-radius:12px;color:#fff;background:var(--o)}
#tpi .col--d .it svg{background:#111}
#tpi #tpi-grp{left:0;top:0;width:1920px;height:1080px;transform-origin:0 0}
#tpi .ley{display:none}
#tpi .lr{display:flex;align-items:center;gap:18px;height:62px;padding:0 24px 0 12px;border-radius:12px;background:var(--n2);border:1px solid var(--l);font-size:30px;font-weight:600}
#tpi .lr i{flex:none;width:44px;height:44px;border-radius:50%;background:var(--o);color:#fff;font-style:normal;font-size:24px;font-weight:800;display:grid;place-items:center}
#tpi-st.v{width:1080px;height:1920px}
#tpi-st.v .bg{background:radial-gradient(900px 900px at 50% 52%,#1B1A18 0%,rgba(14,14,14,0) 70%)}
#tpi-st.v .bg::after{mask-image:radial-gradient(700px 900px at 50% 52%,#000,transparent 75%);-webkit-mask-image:radial-gradient(700px 900px at 50% 52%,#000,transparent 75%)}
#tpi-st.v .logo{left:72px;top:96px;width:230px}
#tpi-st.v .url{right:72px;top:106px;font-size:22px}
#tpi-st.v #tpi-grp{transform:translate(-549.6px,594.7px) scale(.87)}
#tpi-st.v .t{left:72px;width:936px}
#tpi-st.v .chip{height:54px;font-size:22px;padding:0 22px;width:auto}
#tpi-st.v .num{font-size:36px}
#tpi-st.v .num b{font-size:24px}
#tpi-st.v .h{font-size:108px}
#tpi-st.v .h--2{font-size:80px}
#tpi-st.v .h--3{font-size:72px!important}
#tpi-st.v .p{font-size:38px}
#tpi-st.v .li{font-size:36px}
#tpi-st.v .li i{margin-top:18px;width:12px;height:12px}
#tpi-st.v .ck{font-size:32px}
#tpi-st.v .ck .cj{width:42px;height:42px;font-size:24px}
#tpi-st.v [data-y="420"]{--y:446px!important}
#tpi-st.v [data-y="478"]{--y:520px!important}
#tpi-st.v [data-y="546"]{--y:590px!important}
#tpi-st.v [data-y="614"]{--y:660px!important}
#tpi-st.v [data-y="516"]{--y:560px!important}
#tpi-st.v [data-y="584"]{--y:596px!important}
#tpi-st.v [data-y="640"]{--y:656px!important}
#tpi-st.v [data-y="696"]{--y:716px!important}
#tpi-st.v .cap{font-size:22px}
#tpi-st.v .pin{padding:0;height:58px;width:58px;border-radius:50%;justify-content:center;border-width:3px}
#tpi-st.v .pin span{display:none}
#tpi-st.v .pin i{width:46px;height:46px;font-size:26px}
#tpi-st.v .aviso{height:72px;font-size:27px;padding:0 24px 0 18px;gap:16px}
#tpi-st.v .aviso svg{font-size:32px}
#tpi-st.v .band{left:72px;top:1358px;width:936px}
#tpi-st.v .hallb{display:none}
#tpi-st.v .ley{display:grid;gap:11px}
#tpi-st.v .med{grid-template-columns:1fr 1fr;gap:20px}
#tpi-st.v .m{padding:26px 26px 22px}
#tpi-st.v .m-t{font-size:25px}
#tpi-st.v .m-t svg{font-size:30px}
#tpi-st.v .m-b{height:16px;border-radius:8px;margin-top:22px}
#tpi-st.v .m-e{font-size:16px}
#tpi-st.v .flu{flex-direction:column;align-items:flex-start}
#tpi-st.v .nodo{width:936px;height:92px;font-size:30px;gap:18px}
#tpi-st.v .nodo svg{font-size:38px}
#tpi-st.v .cable{width:4px;height:36px;margin-left:44px}
#tpi-st.v .cable i{right:0;bottom:auto;width:100%!important;height:var(--k,0%)}
#tpi-st.v .pasos{left:72px;top:1764px;gap:12px}
#tpi-st.v .paso{height:66px;font-size:25px;padding:0 22px}
#tpi-st.v .paso svg{font-size:28px}
#tpi-st.v .nota{left:72px;right:72px;top:1306px;font-size:20px;line-height:1.4}
#tpi-st.v .intro-logo{left:210px;top:640px;width:660px}
#tpi-st.v .intro-k{top:800px;font-size:30px}
#tpi-st.v .intro-w{top:890px;flex-direction:column;align-items:center;gap:6px;font-size:112px}
#tpi-st.v .fin-logo{left:170px;top:660px;width:740px}
#tpi-st.v .fin-t{top:830px;font-size:62px;line-height:1.12;padding:0 110px}
#tpi-st.v .fin-s{top:1010px;font-size:36px}
#tpi-st.v .fin-p{top:1120px;flex-direction:column;align-items:center;gap:22px}
#tpi-st.v .pill{height:84px;font-size:36px;padding:0 38px}
#tpi-st.v .sv-h{left:72px;top:226px;font-size:84px}
#tpi-st.v .sv-s{left:72px;top:336px;font-size:34px}
#tpi-st.v .col{left:72px;width:936px;height:590px;padding:40px 44px}
#tpi-st.v .col--d{top:424px}
#tpi-st.v .col--f{top:1046px}
#tpi-st.v .col h5{font-size:27px}
#tpi-st.v .it{font-size:39px}
#tpi-st.v .it:nth-child(2){top:112px!important}
#tpi-st.v .it:nth-child(3){top:204px!important}
#tpi-st.v .it:nth-child(4){top:296px!important}
#tpi-st.v .it:nth-child(5){top:388px!important}
#tpi-st.v .it:nth-child(6){top:480px!important}

/* ---- lo propio del sitio: contenedor a todo el ancho, encuadre y controles ---- */
#tpi{position:relative;background:#0E0E0E;color:#F7F5F1;overflow:hidden;font-family:Inter,"Helvetica Neue",Arial,sans-serif;line-height:normal;text-align:left;-webkit-font-smoothing:antialiased}
/* el resplandor y la retícula del video, ahora de orilla a orilla */
#tpi::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(70% 90% at 70% 46%,#1B1A18 0%,rgba(14,14,14,0) 70%)}
#tpi::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:72px 72px;
  -webkit-mask-image:radial-gradient(60% 80% at 70% 50%,#000,transparent 75%);mask-image:radial-gradient(60% 80% at 70% 50%,#000,transparent 75%)}
#tpi .tpi-vp{position:relative;z-index:1;overflow:hidden;height:56.25vw;max-height:calc(100vh - 140px)}
#tpi-st{position:absolute;left:0;top:0;transform-origin:0 0;background:transparent;overflow:visible;pointer-events:none}
/* antes de que arranque el guion nada debe verse amontonado */
#tpi [data-a]{opacity:0;visibility:hidden}
#tpi-st a,#tpi-st button,#tpi-st #tpi-div{pointer-events:auto}
#tpi-st img{max-width:none;height:auto;border-radius:0;box-shadow:none}
#tpi-st h4,#tpi-st h5{font-family:inherit}

/* enlaces y botones dentro del escenario */
#tpi a.it,#tpi a.it:visited{color:inherit;text-decoration:none;transition:color .18s ease}
#tpi a.it:hover,#tpi a.it:focus-visible{color:#FF6A00}
#tpi a.pill,#tpi a.pill:visited,#tpi button.pill{text-decoration:none;cursor:pointer;font-family:inherit;line-height:1;background:transparent;color:#F7F5F1;appearance:none}
#tpi a.pill--o,#tpi a.pill--o:visited{background:#FF6A00;color:#fff}
#tpi button.pill:hover,#tpi button.pill:focus-visible{border-color:#FF6A00;color:#FF6A00;background:transparent}
#tpi a.pill--o:hover{background:#E65F00;border-color:#E65F00;color:#fff}

/* divisor de antes/después: se arrastra */
#tpi #tpi-div{cursor:ew-resize;touch-action:pan-y;-webkit-user-select:none;user-select:none}
#tpi #tpi-div::before{content:"";position:absolute;top:0;bottom:0;left:-36px;width:75px}
#tpi #tpi-div em{position:absolute;left:50%;top:322px;transform:translateX(-50%);padding:8px 14px;border-radius:6px;background:#fff;color:#111;font-style:normal;font-size:17px;font-weight:600;white-space:nowrap;box-shadow:0 10px 24px -10px #000}
#tpi #tpi-div:focus-visible{outline:3px solid #FF6A00;outline-offset:6px}
#tpi-st.v #tpi-div::before{left:-110px;width:223px}
#tpi-st.v #tpi-div::after{left:-52px;top:226px;width:104px;height:104px;border-width:4px}
#tpi-st.v #tpi-div svg{left:-24px;top:254px;font-size:48px}
#tpi-st.v #tpi-div em{top:350px;font-size:26px;padding:12px 18px}
#tpi-st.v #tpi-div b{font-size:22px;height:44px;line-height:44px}

/* controles */
#tpi .tpi-ctl{position:relative;z-index:2;display:flex;align-items:center;gap:14px;width:min(100% - 96px,1440px);margin:0 auto;padding:10px 0 14px}
#tpi .tpi-play,#tpi .tpi-play:hover,#tpi .tpi-play:focus{flex:none;appearance:none;width:44px;height:44px;margin:0;padding:0;border-radius:50%;border:1px solid #4A4743;background:transparent;color:#F7F5F1;cursor:pointer;display:grid;place-items:center}
#tpi .tpi-play:hover,#tpi .tpi-play:focus-visible{border-color:#FF6A00;color:#FF6A00}
#tpi .tpi-play svg{width:18px;height:18px;display:block}
#tpi .tpi-play span{display:grid;place-items:center}
#tpi .tpi-play .tpi-i-play,#tpi .tpi-play.is-pausado .tpi-i-pausa{display:none}
#tpi .tpi-play.is-pausado .tpi-i-play{display:grid}
#tpi .tpi-caps{flex:none;display:flex;gap:6px;max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
#tpi .tpi-caps::-webkit-scrollbar{display:none}
#tpi .tpi-cap,#tpi .tpi-cap:hover,#tpi .tpi-cap:focus{flex:none;appearance:none;height:36px;margin:0;padding:0 14px;border-radius:18px;border:1px solid #2E2C29;background:transparent;color:#A8A199;
  font:500 13.5px/1 Inter,"Helvetica Neue",Arial,sans-serif;letter-spacing:0;text-transform:none;white-space:nowrap;cursor:pointer;transition:color .18s ease,border-color .18s ease,background-color .18s ease}
#tpi .tpi-cap:hover,#tpi .tpi-cap:focus-visible{color:#F7F5F1;border-color:#6D6862}
#tpi .tpi-cap.is-on,#tpi .tpi-cap.is-on:hover,#tpi .tpi-cap.is-on:focus{background:#FF6A00;border-color:#FF6A00;color:#fff}
#tpi .tpi-ctl :focus-visible{outline:2px solid #FF6A00;outline-offset:2px}
#tpi .tpi-rng{flex:1 1 120px;min-width:80px;height:24px;margin:0;padding:0;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;appearance:none;--v:0%}
#tpi .tpi-rng::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:linear-gradient(90deg,#FF6A00 var(--v),#2E2C29 var(--v))}
#tpi .tpi-rng::-moz-range-track{height:3px;border-radius:2px;background:#2E2C29}
#tpi .tpi-rng::-moz-range-progress{height:3px;border-radius:2px;background:#FF6A00}
#tpi .tpi-rng::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;margin-top:-5.5px;border-radius:50%;border:0;background:#FF6A00}
#tpi .tpi-rng::-moz-range-thumb{width:14px;height:14px;border-radius:50%;border:0;background:#FF6A00}

@media (max-width:900px){
  #tpi .tpi-vp{max-height:calc(100vh - 170px);max-height:calc(100svh - 170px)}
  #tpi .tpi-ctl{width:calc(100% - 40px);flex-wrap:wrap;gap:8px 12px;padding:8px 0 12px}
  #tpi .tpi-rng{order:2}
  #tpi .tpi-caps{order:3;flex:1 1 100%;margin-right:-20px;padding-right:20px}
}
@media (max-width:900px){
  #tpi .tpi-vp{height:147.2vw}
  #tpi::before{background:radial-gradient(110% 60% at 50% 52%,#1B1A18 0%,rgba(14,14,14,0) 70%)}
  #tpi::after{-webkit-mask-image:radial-gradient(90% 55% at 50% 52%,#000,transparent 75%);mask-image:radial-gradient(90% 55% at 50% 52%,#000,transparent 75%)}
}
@media print{#tpi{display:none}}
