/* MANO A MÁQUINA — base.css v3 (piel v4, destilada de mockups/v4).
   Componentes globales reutilizables. Consume SOLO tokens.css: cero hex,
   cero rgba(), cero font-family fuera de var(--...). Regla de oro: patrón que
   aparece ≥2 veces = clase de componente. Utilidades one-off van en util.css. */

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--fondo); color:var(--tinta);
  font-family:var(--font-body); font-size:var(--fs-16); line-height:1.5;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
a:hover{color:var(--azul)}
svg{max-width:100%;display:block}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}

/* contenido: ocupa todo el ancho (sin márgenes de fondo a los lados).
   La lectura se acota por sección (prosa ≤65ch) y por los paddings. */
.page{width:100%;background:var(--fondo);color:var(--tinta)}
.page-inner{width:100%;background:var(--papel);color:var(--tinta)}
.page-wrap{width:100%;overflow-x:clip;display:block}
/* Lectura acotada al artboard (1320px), centrada; el fondo papel sigue full-bleed
   (se adapta a la pantalla, sin márgenes beige). Hero, quiniela, topbar y banda
   quedan full-bleed (fondos de color). */
.sec,.manifiesto,.newsletter,.campana-final,.la-jornada,.combate,.veredicto{
  max-width:var(--maxw);margin-inline:auto;
}

/* ---------- texto / microtipografía ---------- */
.mono{font-family:var(--font-data);font-variant-numeric:tabular-nums}
.prosa{
  font-family:var(--font-body); font-size:var(--fs-16); line-height:1.6;
  text-align:left; max-width:65ch; text-transform:none; letter-spacing:0;
  text-wrap:pretty;
}
.kicker{
  font-family:var(--font-data); font-weight:700; font-size:var(--fs-11);
  letter-spacing:.22em; text-transform:uppercase;
}
.dim{opacity:.7}
.pos{color:var(--verde)}
.neg{color:var(--rojo)}

/* ---------- topbar (nav) ---------- */
.topbar{
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--sp-6); padding:clamp(14px,2vw,18px) clamp(20px,4vw,48px); flex-wrap:wrap;
  border-bottom:var(--b-3) solid var(--tinta); background:var(--papel);
}
.topbar .brand{
  font-family:var(--font-display); font-size:var(--fs-24);
  letter-spacing:.02em; text-transform:uppercase; text-decoration:none; color:var(--tinta);
}
.topbar > .links{
  display:flex; align-items:center; gap:30px; flex-wrap:wrap;
  font-family:var(--font-data); font-size:var(--fs-11);
  letter-spacing:.18em; text-transform:uppercase;
}
.topbar > .links a{text-decoration:none; color:inherit}
.topbar > .links a.on{box-shadow:inset 0 -8px 0 var(--amarillo)}
.topbar > .links .soon{opacity:.45; cursor:default}
.topbar > .cta-suscribir{
  font-family:var(--font-data); font-weight:700; font-size:var(--fs-11);
  letter-spacing:.18em; text-transform:uppercase; text-decoration:none;
  border-bottom:var(--b-2) solid var(--tinta); padding-bottom:var(--sp-1);
}
.topbar .nav-menu{display:none}

/* ---------- banda de estado (En directo / Todavía sin empezar) ---------- */
.banda{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-6);
  padding:clamp(14px,2vw,18px) clamp(20px,4vw,48px); flex-wrap:wrap; border-bottom:var(--b-3) solid var(--tinta);
  background:var(--papel);
}
.banda .estado{
  display:flex; align-items:baseline; gap:18px;
}
.banda .estado .live{
  display:flex; align-items:center; gap:10px;
  font-family:var(--font-display); font-size:var(--fs-32); line-height:1;
  letter-spacing:.05em; text-transform:uppercase;
}
.banda .estado .live .dot{width:12px;height:12px;border-radius:50%;background:var(--verde-claro);display:block}
.banda .estado.pre .dot{background:var(--rojo)}
.banda .estado .banda-jornada{
  font-family:var(--font-data); font-weight:700; font-size:var(--fs-15);
  letter-spacing:.2em; text-transform:uppercase;
}
.banda .estado .banda-jornada-m{display:none}
.banda .meta{
  display:flex; align-items:center; gap:26px;
  font-family:var(--font-data); font-size:var(--fs-13);
  letter-spacing:.16em; text-transform:uppercase; opacity:.8;
}

/* ---------- breadcrumb (ficha) ---------- */
.breadcrumb{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4);
  padding:15px var(--sp-8) 17px; flex-wrap:wrap;
  font-family:var(--font-data); font-size:var(--fs-11);
  letter-spacing:.18em; text-transform:uppercase;
  border-bottom:var(--b-2) solid var(--tinta);
}
.breadcrumb .ruta{display:flex; align-items:center; gap:14px}
.breadcrumb .ruta a{text-decoration:none; border-bottom:var(--b-1) solid var(--linea-punteada); padding-bottom:var(--sp-1)}
.breadcrumb .sep{opacity:.45}
.breadcrumb .puesto{display:flex; align-items:baseline; gap:10px}
.breadcrumb .puesto .n{font-family:var(--font-display); font-size:var(--fs-30); line-height:1}

/* ---------- secciones (scaffolding) ---------- */
/* Filete de sección FULL-BLEED a 3px (Marina 29-ago): las secciones van
   centradas a --maxw pero su filete debe cruzar la pantalla entera, como el
   de topbar/hero — antes moría en el borde de la sección y en pantallas
   anchas quedaba corto (y .la-jornada duplicaba el cierre del hero con su
   border-top propio). El contenido no cambia; solo la línea. */
.sec,.la-jornada,.manifiesto,.newsletter,.veredicto{position:relative}
.sec::after,.la-jornada::after,.manifiesto::after,.newsletter::after,.veredicto::after{
  content:""; position:absolute; bottom:0; left:50%; width:100vw;
  transform:translateX(-50%); border-bottom:var(--b-3) solid var(--tinta);
}

.sec{padding:38px var(--pad-seccion) 40px; display:flex; flex-direction:column; gap:18px}
.sec-head{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:var(--sp-4)}
.sec-title{
  font-family:var(--font-heading); font-weight:900; font-size:var(--fs-34);
  line-height:1.05; letter-spacing:-.02em; text-transform:uppercase;
}
.sec-sub{
  font-family:var(--font-data); font-size:var(--fs-11);
  letter-spacing:.2em; text-transform:uppercase; opacity:.72;
}
.sec-title-sm{font-size:var(--fs-24)}

/* ---------- hero del líder (desde jornada 1) ---------- */
.hero-lider{
  position:relative; background:var(--bg); color:var(--tinta); overflow:hidden;
  border-bottom:var(--b-2) solid var(--tinta);
}
.hero-lider .forma{position:absolute; left:250px; top:52%; display:none}
.hero-lider .stage{
  position:relative; display:grid; grid-template-columns:minmax(0,min(440px,42vw)) minmax(0,1fr);
  align-items:center; gap:20px; padding:clamp(32px,4vw,48px) clamp(24px,4vw,56px) clamp(36px,5vw,56px);
}
.hero-lider .mask{width:100%; max-width:min(440px,42vw); height:auto; object-fit:contain; display:block;
  margin-left:-24px; filter:var(--mask-grade) drop-shadow(var(--ds-lg));}
.hero-lider .mask-link{display:block; transition:transform .18s ease}
.hero-lider .mask-link:hover{transform:scale(1.05) translateY(-6px)}
.hero-lider .copy{display:flex; flex-direction:column; gap:20px; min-width:0}
.hero-lider .pill{
  font-family:var(--font-data); font-weight:700; font-size:var(--fs-12);
  letter-spacing:.24em; text-transform:uppercase;
}
.hero-lider .nom-ret{display:flex; flex-wrap:wrap; align-items:flex-end; gap:6px 30px}
.hero-lider .nombre{
  font-family:var(--font-display); font-size:clamp(56px,8vw,124px); line-height:1;
  letter-spacing:-.01em; text-transform:uppercase; text-decoration:none; color:inherit;
}
.hero-lider .retorno{
  font-family:var(--font-display); font-size:clamp(40px,5vw,76px); line-height:1;
  padding-bottom:6px;
}
.hero-lider .filete{width:100%; height:0; border-top:var(--b-2) solid var(--tinta)}
.hero-lider .cita{max-width:58ch; font-size:var(--fs-19); line-height:1.55; text-wrap:pretty}
.hero-lider .cita strong{font-weight:600}
.hero-lider .stats{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 32px;
  border-top:var(--b-2) solid var(--tinta); border-bottom:var(--b-2) solid var(--tinta);
  padding:18px 0;
}
.hero-lider .stats .k{display:flex; flex-direction:column; gap:7px}
.hero-lider .stats .k .l{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.16em; text-transform:uppercase}
.hero-lider .stats .k .v{font-family:var(--font-display); font-size:var(--fs-34); line-height:1}
.hero-lider .cta-row{display:flex; flex-wrap:wrap; align-items:center; gap:28px; margin-top:var(--sp-1)}
.hero-lider .fila-forma{position:absolute}

/* ---------- hero día 0 (cartel de temporada) ---------- */
.hero-arranque{
  background:var(--hero-bg,var(--cartel-claude)); color:var(--tinta);
  border-bottom:var(--b-3) solid var(--tinta); display:flex; flex-direction:column;
}
/* .hero-cab: mini-cabecera de marca ("Mano a Máquina [· en directo] / filete /
   jornada"), reutilizada tal cual dentro de .hero-arranque y .hero-directo
   (mockups "Temporada 1 Arranque" y "Hero jornada 12"). */
.hero-cab{
  padding:16px var(--pad-seccion) 14px; display:flex; flex-direction:column;
  align-items:center; gap:7px; border-bottom:var(--b-3) solid var(--tinta); text-align:center;
}
.hero-cab .presenta{font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.34em; text-transform:uppercase}
.hero-cab .liga{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.3em; text-transform:uppercase}
.hero-cab .filete{width:100%; height:0; border-top:var(--b-3) solid var(--tinta)}
.hero-arranque .stage{
  position:relative; padding:46px var(--pad-seccion) 76px;
  min-height:680px; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
}
.hero-arranque .stage .centro{position:relative; z-index:15; display:flex; flex-direction:column; align-items:center; gap:16px}
.hero-arranque .wordmark{
  font-family:var(--font-display); font-size:clamp(56px,11vw,158px); line-height:.82;
  letter-spacing:-.02em; text-transform:uppercase; text-shadow:var(--shadow-wordmark);
}
.hero-arranque .sub{font-family:var(--font-data); font-weight:700; font-size:clamp(15px,2vw,23px); letter-spacing:.12em; text-transform:uppercase; max-width:38ch; line-height:1.45}
.hero-arranque .sub .marcado{box-shadow:inset 0 -8px 0 var(--amarillo)}
.hero-arranque .prosa{max-width:60ch; font-size:var(--fs-17); line-height:1.55; text-align:center}
.hero-arranque .stage .filete{width:280px; height:0; border-top:var(--b-2) solid var(--tinta); margin:2px 0}
/* estrella gigante de fondo (el "cartel de temporada" del mockup) */
.hero-arranque .estrella{
  position:absolute; top:2px; left:50%;
  width:clamp(344px,38vw,520px); height:clamp(320px,36vw,486px);
  transform:translate(calc(-50% - 16px)) rotate(-3deg); background:var(--c-minimax);
  clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 92%,50% 70%,21% 92%,32% 57%,2% 35%,39% 35%);
  z-index:1;
}
.hero-arranque .estrella.eco{transform:translateX(-50%) rotate(-3deg); top:18px; background:var(--cartel-eco-minimax)}
/* máscaras dispersas (desktop): efecto "poster" del mockup, con rotación y sombra */
.hero-arranque .masks{position:absolute; inset:0}
.hero-arranque .masks a{
  position:absolute; display:flex; flex-direction:column; align-items:center; gap:5px;
  width:clamp(140px,16vw,218px); text-decoration:none; color:var(--tinta);
  transition:transform .18s ease; z-index:8;
}
.hero-arranque .masks a:nth-child(n):hover{transform:rotate(0deg) scale(1.07) translateY(-8px); z-index:20}
.hero-arranque .masks img{width:100%; height:auto; object-fit:contain; filter:var(--mask-hero) drop-shadow(var(--ds-hero))}
.hero-arranque .masks .nm{font-family:var(--font-display); font-size:var(--fs-20); line-height:1.05; letter-spacing:.02em; text-transform:uppercase; text-align:center}
.hero-arranque .masks .modelo{font-family:var(--font-data); font-size:9px; letter-spacing:.14em; text-transform:uppercase; opacity:.8}
/* posiciones exactas del mockup (px→%) + z-index + rotación */
.hero-arranque .masks a:nth-child(1){left:3.3%; top:8%; transform:rotate(-10deg); width:clamp(140px,16.5vw,218px); z-index:9}
.hero-arranque .masks a:nth-child(2){left:12.7%; top:39%; transform:rotate(7deg); width:clamp(132px,15.6vw,206px); z-index:8}
.hero-arranque .masks a:nth-child(3){left:3.9%; top:58%; transform:rotate(-6deg); width:clamp(126px,14.8vw,196px); z-index:7}
.hero-arranque .masks a:nth-child(4){right:3.3%; top:8%; transform:rotate(9deg); width:clamp(138px,16.4vw,216px); z-index:9}
.hero-arranque .masks a:nth-child(5){right:12.3%; top:39%; transform:rotate(-7deg); width:clamp(132px,15.6vw,206px); z-index:8}
.hero-arranque .masks a:nth-child(6){right:3.9%; top:58%; transform:rotate(6deg); width:clamp(126px,14.8vw,196px); z-index:7}
.hero-arranque .stats{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:var(--b-3) solid var(--tinta); background:inherit; color:var(--tinta);
}
.hero-arranque .stats .k{
  display:flex; flex-direction:column; align-items:center; gap:4px; padding:16px 10px;
  border-right:var(--b-2) solid var(--tinta);
}
.hero-arranque .stats .k:last-child{border-right:0}
.hero-arranque .stats .k .l{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.18em; text-transform:uppercase}
.hero-arranque .stats .k .v{font-family:var(--font-display); font-size:var(--fs-34); line-height:1}
.hero-arranque .cierre{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--sp-4);
  padding:12px var(--pad-seccion); border-top:var(--b-3) solid var(--tinta);
  font-family:var(--font-data); font-weight:700; font-size:var(--fs-11);
  letter-spacing:.2em; text-transform:uppercase;
}
.hero-arranque .cierre a{text-decoration:none; border-bottom:var(--b-2) solid var(--tinta); padding-bottom:var(--sp-1)}
.hero-arranque .cierre .votar-m{display:none}

/* ---------- hero EN DIRECTO (con datos) — remix 29-ago ----------------
   Misma piel naranja/verde que el cartel de arranque, pero el contenido es el
   estado de la liga: cartel del líder a la izq. (el que lleva el cinturón) +
   editorial "Les dimos $10.000…" + bloque "Líder actual" a la derecha, y debajo
   banda de stats (Líder/Capital en juego/Listón BTC/Listón S&P) + franja. ----- */
.hero-directo{
  position:relative; background:var(--hero-bg,var(--hero-fondo)); color:var(--tinta);
  border-bottom:var(--b-3) solid var(--tinta); overflow:hidden;
}
.hero-directo .hd-grid{
  position:relative; z-index:3; display:grid;
  /* 420px: "un pelín más ancho" que los 392px del mockup (Marina, 29-ago) */
  grid-template-columns:minmax(0,420px) minmax(0,1fr); gap:clamp(28px,5vw,64px);
  align-items:start; padding:clamp(24px,3.4vw,40px) var(--pad-seccion) clamp(28px,4vw,48px);
}
/* estrella verde gigante, detrás de la columna editorial: ancla arriba del
   grid (mockup "Hero jornada 12": top:40px/22px dentro del mismo contenedor
   que la tarjeta+copy) — vive dentro de .hd-grid, no del header entero, para
   no invadir las bandas de stats/franja de debajo. */
.hero-directo .estrella{
  position:absolute; top:2%; right:6%;
  width:clamp(360px,40vw,560px); height:clamp(336px,37vw,522px);
  transform:rotate(-3deg); background:var(--c-minimax);
  clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 92%,50% 70%,21% 92%,32% 57%,2% 35%,39% 35%);
  z-index:1;
}
.hero-directo .estrella.eco{transform:translateX(60px) rotate(-3deg); background:var(--cartel-eco-minimax)}
/* cartel del líder (fondo del color del luchador vía f-<slug>): tratamiento
   póster del mockup "Hero jornada 12" — sin borde fijo, ligeramente rotado; el
   marco solo aparece como anillo (box-shadow) al pasar el ratón. */
.hero-directo .hd-cartel{
  position:relative; display:flex; flex-direction:column; align-items:center; text-align:center;
  background:var(--bg); color:var(--tinta); text-decoration:none; overflow:hidden;
  padding:clamp(16px,2vw,24px) 18px 0; transform:rotate(-2deg); cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease;
}
.hero-directo .hd-cartel:hover{transform:rotate(-1deg) translateY(-6px); box-shadow:0 0 0 var(--b-2) var(--tinta)}
.hero-directo .hd-cartel .forma{position:absolute; left:50%; top:38%; width:78%; height:70%; display:none}
.hero-directo .hd-cartel .forma.eco{display:block; background:var(--eco); transform:translate(calc(-50% + 8px), calc(-50% + 6px)) rotate(-4deg)}
.hero-directo .hd-cartel .forma.capa{display:block; background:var(--capa); transform:translate(calc(-50% - 4px), calc(-50% - 4px)) rotate(-4deg)}
.hero-directo .hd-cartel .cab{position:relative; z-index:2; width:100%; display:flex; flex-direction:column; align-items:center; gap:6px}
.hero-directo .hd-cartel .presenta{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.26em; text-transform:uppercase}
/* a sangre: compensa el padding lateral de 18px del cartel (mockup: el filete
   y la banda de stats llegan de borde a borde) */
.hero-directo .hd-cartel .filete{width:calc(100% + 36px); height:0; border-top:var(--b-3) solid var(--tinta)}
.hero-directo .hd-cartel .liga{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase}
.hero-directo .hd-cartel .mask{position:relative; z-index:2; width:104%; max-width:none; height:258px; margin:10px 0 2px; object-fit:contain; filter:var(--mask-grade) drop-shadow(var(--ds-md))}
.hero-directo .hd-cartel .nombre{position:relative; z-index:2; font-family:var(--font-display); font-size:clamp(40px,4.6vw,56px); line-height:.9; letter-spacing:-.01em; text-transform:uppercase}
.hero-directo .hd-cartel .retorno{position:relative; z-index:2; font-family:var(--font-display); font-size:clamp(28px,3vw,40px); line-height:1; padding-bottom:4px}
.hero-directo .hd-cartel .apodo{position:relative; z-index:2; font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase; opacity:.9; margin-top:8px}
.hero-directo .hd-cartel .apodo .motor{font-weight:700}
.hero-directo .hd-cartel .stats{
  position:relative; z-index:2; width:calc(100% + 36px); margin:14px -18px 0;
  border-top:var(--b-3) solid var(--tinta); border-bottom:var(--b-3) solid var(--tinta);
  display:grid; grid-template-columns:repeat(3,1fr); padding:10px 0; font-family:var(--font-data);
}
.hero-directo .hd-cartel .stats div{display:flex; flex-direction:column; align-items:center; gap:3px; font-size:var(--fs-10); letter-spacing:.16em; text-transform:uppercase}
.hero-directo .hd-cartel .stats div + div{border-left:var(--b-3) solid var(--tinta)}
.hero-directo .hd-cartel .stats div b{font-family:var(--font-display); font-weight:400; font-size:27px; line-height:1}
/* columna editorial */
.hero-directo .hd-copy{position:relative; z-index:3; display:flex; flex-direction:column; gap:16px; min-width:0}
.hero-directo .hd-kicker{
  font-family:var(--font-display); font-weight:400; font-size:clamp(34px,5.2vw,72px);
  line-height:.94; letter-spacing:-.02em; text-transform:uppercase;
  text-shadow:5px 5px 0 var(--papel);
}
.hero-directo .hd-kicker span{display:block}
/* sub y prosa del hero: más grandes por decisión de Marina (29-ago, "más grande
   y no más ancho que el titular") — desviación consciente del mockup jornada-12
   (15px); el precedente del tamaño es el sub del hero de arranque (23px/38ch). */
.hero-directo .hd-sub{font-family:var(--font-data); font-weight:700; font-size:clamp(13px,1.4vw,18px); letter-spacing:.12em; line-height:1.45; text-transform:uppercase; max-width:83ch; text-wrap:balance}
.hero-directo .hd-prosa{max-width:76ch; font-size:var(--fs-19); line-height:1.55; text-wrap:pretty}
.hero-directo .hd-copy .filete{width:100%; height:0; border-top:var(--b-3) solid var(--tinta)}
.hero-directo .hd-lider{display:flex; flex-direction:column; gap:8px}
.hero-directo .hd-lider .kicker{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.24em; text-transform:uppercase}
.hero-directo .hd-lider .lidera{font-family:var(--font-display); font-size:clamp(26px,3.4vw,46px); line-height:.98; letter-spacing:-.01em; text-transform:uppercase}
.hero-directo .hd-lider .nums{font-family:var(--font-data); font-weight:700; font-size:var(--fs-15); letter-spacing:.1em; font-variant-numeric:tabular-nums}
/* giro de líder (detectar_giro.py → giros.jsonl): nota de cadencia en el hero */
.hero-directo .hd-giro{margin-top:8px; padding-top:10px; border-top:var(--b-1) solid var(--linea-media); display:flex; flex-direction:column; gap:3px}
.hero-directo .hd-giro .k{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase; color:var(--rojo)}
.hero-directo .hd-giro .f{font-family:var(--font-body); font-size:var(--fs-14); line-height:1.5; text-transform:none; letter-spacing:0; max-width:52ch}
.hero-directo .hd-ctas{display:flex; flex-wrap:wrap; align-items:center; gap:26px}
/* botones sólidos tipo póster (mockup "Hero jornada 12"): fondo/borde llenos,
   hover = pop 3D (translate + sombra dura) + cambio de color, no subrayado. */
.hero-directo .hd-ctas .cta,
.hero-directo .hd-ctas .cta-ghost{
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 26px; border:var(--b-2) solid var(--tinta);
  text-decoration:none; border-bottom:var(--b-2) solid var(--tinta);
  transition:transform .14s ease, box-shadow .14s ease, background .14s ease, color .14s ease;
}
.hero-directo .hd-ctas .cta{background:var(--tinta); color:var(--papel)}
.hero-directo .hd-ctas .cta-ghost{background:var(--tinta); color:var(--papel)}
.hero-directo .hd-ctas .cta:hover{background:var(--azul); color:var(--papel); border-bottom-color:var(--tinta); transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--tinta)}
.hero-directo .hd-ctas .cta-ghost:hover{background:var(--amarillo); color:var(--tinta); border-bottom-color:var(--tinta); transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--tinta)}
.hero-directo .hd-ctas .cta:active,
.hero-directo .hd-ctas .cta-ghost:active{transform:translate(0,0); box-shadow:none}
.hero-directo .hd-ctas .cta:focus-visible,
.hero-directo .hd-ctas .cta-ghost:focus-visible{outline:var(--b-3) solid var(--tinta); outline-offset:3px}
/* más grueso (Marina 29-ago): la línea fina en bold sin velo y el subrayado del
   parte diario a 3px — desviación consciente del mockup jornada-12 (12px/2px). */
.hero-directo .hd-fine{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.16em; text-transform:uppercase; opacity:.85}
.hero-directo .hd-fine-cta a{font-family:var(--font-data); font-weight:700; font-size:var(--fs-13); letter-spacing:.18em; text-transform:uppercase; text-decoration:none; border-bottom:var(--b-2) solid var(--tinta); padding-bottom:3px; transition:color .14s ease, border-color .14s ease}
.hero-directo .hd-fine-cta a:hover{color:var(--papel); border-bottom-color:var(--papel)}
/* banda de stats */
.hero-directo .hd-stats{
  position:relative; z-index:3; display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:var(--b-2) solid var(--tinta); background:inherit; color:var(--tinta);
}
.hero-directo .hd-stats .k{display:flex; flex-direction:column; align-items:center; gap:5px; padding:16px 10px; border-right:var(--b-3) solid var(--tinta)}
.hero-directo .hd-stats .k:last-child{border-right:0}
.hero-directo .hd-stats .k .l{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.18em; text-transform:uppercase}
.hero-directo .hd-stats .k .v{font-family:var(--font-display); font-size:var(--fs-34); line-height:1}
/* franja de cierre */
.hero-directo .hd-strip{
  position:relative; z-index:3; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px var(--sp-6);
  padding:12px var(--pad-seccion); border-top:var(--b-2) solid var(--tinta);
  font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase;
}
.hero-directo .hd-strip .persigue{color:var(--tinta)}
.hero-directo .hd-strip a{text-decoration:none; border-bottom:var(--b-2) solid var(--tinta); padding-bottom:var(--sp-1)}
.hero-directo .hd-strip a:hover{color:var(--azul); border-bottom-color:var(--azul)}

/* ---------- formas geométricas del cartel (también en hero-lider) ---------- */
.f-deepseek-analyst{--bg:var(--cartel-deepseek); --eco:var(--cartel-eco-deepseek); --capa:var(--c-deepseek)}
.f-claude-analyst{--bg:var(--cartel-claude); --eco:var(--cartel-eco-claude); --capa:var(--c-claude)}
.f-minimax-analyst{--bg:var(--cartel-minimax); --eco:var(--cartel-eco-minimax); --capa:var(--c-minimax)}
.f-kimi-analyst{--bg:var(--cartel-kimi); --eco:var(--cartel-eco-kimi); --capa:var(--c-kimi)}
.f-baseline{--bg:var(--cartel-baseline); --eco:var(--cartel-eco-baseline); --capa:var(--c-baseline)}
.f-solo-dip{--bg:var(--cartel-solo-dip); --eco:var(--cartel-eco-solo-dip); --capa:var(--c-solo-dip)}
.f-tighten{--bg:var(--cartel-tighten); --eco:var(--cartel-eco-tighten); --capa:var(--c-tighten)}
.f-solo-momo{--bg:var(--cartel-solo-momo); --eco:var(--cartel-eco-solo-momo); --capa:var(--c-solo-momo)}

/* ---------- cartel de luchador v4 (1:1.55, geometría en cqw) ---------- */
.poster{
  position:relative; width:100%; aspect-ratio:1/1.55; overflow:hidden; text-align:center;
  background:var(--bg); color:var(--tinta); container-type:inline-size;
}
.poster .forma{position:absolute; left:50%; display:none}
.poster .forma.eco{background:var(--eco)}
.poster .forma.capa{background:var(--capa)}
.poster .cuerpo{position:relative; height:100%; display:flex; flex-direction:column; align-items:center}
.poster .cab{
  width:100%; padding:3.75cqw 5.4cqw 0;
  display:flex; flex-direction:column; align-items:center; gap:1.25cqw;
}
.poster .presenta{font-family:var(--font-data); font-weight:700; font-size:2.3cqw; letter-spacing:.26em; text-transform:uppercase}
.poster .filete{width:100%; border-top:max(.42cqw,var(--b-1)) solid var(--tinta)}
.poster .liga{font-family:var(--font-data); font-size:2.3cqw; letter-spacing:.24em; text-transform:uppercase}
.poster .mask{
  width:108%; max-width:none; height:74.2cqw; flex:0 0 auto;
  object-fit:contain; object-position:center top; display:block; margin:-2.9cqw 0 0;
  filter:var(--mask-grade) drop-shadow(var(--ds-md));
}
.poster .nombre{
  font-family:var(--font-display); font-weight:400; font-size:13.75cqw;
  line-height:.86; letter-spacing:-.01em; text-transform:uppercase;
  width:100%; padding:0 4.2cqw; margin-top:.4cqw;
}
.poster .apodo{
  font-family:var(--font-data); font-weight:700; font-size:2.3cqw;
  letter-spacing:.2em; text-transform:uppercase; margin-top:1.7cqw; padding:0 4.2cqw;
}
.poster .pie{
  width:100%; padding:0 5cqw; margin-top:auto;
  display:flex; flex-direction:column; align-items:center; gap:2.9cqw;
}
.poster .stats{
  width:100%; border-top:max(.42cqw,var(--b-1)) solid var(--tinta); border-bottom:max(.42cqw,var(--b-1)) solid var(--tinta);
  display:grid; grid-template-columns:repeat(4,1fr); padding:2.9cqw 0;
  font-family:var(--font-data);
}
.poster .stats div{display:flex; flex-direction:column; align-items:center; gap:.6cqw; font-size:2.3cqw; text-transform:uppercase}
.poster .stats div b{font-family:var(--font-display); font-weight:400; font-size:5cqw; line-height:1}
.poster .stats div b.ops{font-family:var(--font-data); font-size:2.2cqw; letter-spacing:0; text-transform:none; line-height:1.3; overflow-wrap:break-word; max-width:100%}
.poster .capital{font-family:var(--font-data); font-size:2.5cqw; letter-spacing:.08em; text-transform:uppercase}
.poster .motor{max-width:46ch; font-family:var(--font-data); font-size:2.8cqw; line-height:1.7; text-align:center; text-wrap:pretty}
.poster .motor b{font-weight:700; letter-spacing:.1em; text-transform:uppercase}
.poster .barra{
  width:100%; background:var(--tinta); color:var(--papel); padding:2.1cqw;
  margin-top:3.3cqw; font-family:var(--font-data); font-weight:700;
  font-size:2.3cqw; letter-spacing:.18em; text-transform:uppercase;
}

/* geometría de la forma por luchador (px→cqw ÷4.8, del mockup) */
.f-deepseek-analyst .forma{display:block; top:44.6cqw; width:77.5cqw; height:82.5cqw;
  clip-path:polygon(62% 0%,100% 7%,52% 42%,80% 45%,24% 100%,36% 54%,13% 50%)}
.f-deepseek-analyst .forma.eco{transform:translate(calc(-50% + 7.1cqw), calc(-50% + 1.7cqw))}
.f-deepseek-analyst .forma.capa{transform:translate(calc(-50% + 4.2cqw), calc(-50% - 1.7cqw))}
.f-claude-analyst .forma{display:block; top:44.6cqw; width:72.5cqw; height:72.5cqw;
  clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.f-claude-analyst .forma.eco{transform:translate(calc(-50% + 2.9cqw), calc(-50% + 1.7cqw)) rotate(-7deg)}
.f-claude-analyst .forma.capa{transform:translate(-50%, calc(-50% - 1.25cqw)) rotate(-7deg)}
.f-minimax-analyst .forma{display:block; top:44.6cqw; width:68.75cqw; height:68.75cqw;
  clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%)}
.f-minimax-analyst .forma.eco{transform:translate(calc(-50% + 3.1cqw), calc(-50% + 2.1cqw)) rotate(12deg)}
.f-minimax-analyst .forma.capa{transform:translate(-50%, -50%) rotate(12deg)}
.f-kimi-analyst .forma{display:block; top:44.6cqw; width:70cqw; height:70cqw; border-radius:50%}
.f-kimi-analyst .forma.eco{transform:translate(calc(-50% - .6cqw), calc(-50% + 2.7cqw))}
.f-kimi-analyst .forma.capa{transform:translate(calc(-50% - 3.3cqw), -50%)}
.f-kimi-analyst .forma.corte{display:block; width:62.5cqw; height:62.5cqw; border-radius:50%;
  background:var(--bg); transform:translate(calc(-50% - 32.9cqw), calc(-50% - 7.1cqw))}
.f-baseline .forma{display:block; top:44.6cqw; width:67.9cqw; height:67.9cqw;
  clip-path:polygon(38% 0%,62% 0%,62% 38%,100% 38%,100% 62%,62% 62%,62% 100%,38% 100%,38% 62%,0% 62%,0% 38%,38% 38%)}
.f-baseline .forma.eco{transform:translate(calc(-50% + 2.7cqw), calc(-50% + 2.7cqw)) rotate(10deg)}
.f-baseline .forma.capa{transform:translate(-50%, -50%) rotate(10deg)}
.f-solo-dip .forma{display:block; top:49.6cqw; width:78.3cqw; height:73.3cqw;
  clip-path:polygon(0% 0%,100% 0%,50% 100%)}
.f-solo-dip .forma.eco{transform:translate(calc(-50% + 3.1cqw), calc(-50% + 2.9cqw)) rotate(-4deg)}
.f-solo-dip .forma.capa{transform:translate(-50%, -50%) rotate(-4deg)}

/* hero-lider: la forma va a tamaño fijo en px (el hero no es container, no
   admite cqw). Se reutiliza el clip-path/color del cartel; solo se fija el
   tamaño y los offsets del eco/capa. */
.hero-lider .forma{top:52%; left:250px; width:520px; height:520px}
.hero-lider .forma.eco{transform:translate(calc(-50% + 22px), calc(-50% + 20px))}
.hero-lider .forma.capa{transform:translate(-50%, -50%)}
.hero-lider .forma.corte{display:none}
/* identidad-cartel (ficha): igual, tamaño fijo en px */
.identidad-cartel .forma{top:250px; left:50%; width:340px; height:340px}
.identidad-cartel .forma.eco{transform:translate(calc(-50% + 10px), calc(-50% + 8px))}
.identidad-cartel .forma.capa{transform:translate(-50%, -50%)}
.identidad-cartel .forma.corte{display:none}

/* rejilla de carteles (3 col) */
.roster{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; justify-items:center}
.roster .cell{display:block; width:100%; max-width:394px; text-decoration:none}
.roster .cell .poster{width:100%; max-width:480px; margin:0 auto; transition:box-shadow .18s ease}
.roster .cell:hover .poster{box-shadow:0 0 0 4px var(--tinta), var(--shadow-hard)}

/* ---------- variantes del cartel: recortado y hueco ---------- */
.poster.retired{border:var(--b-2) dashed var(--linea-fuerte); filter:saturate(.35)}
.poster.retired .barra{background:var(--sombra); color:var(--papel)}
.poster.placeholder{--bg:var(--papel); --capa:var(--sombra); --eco:var(--papel); border:var(--b-2) dashed var(--linea-fuerte)}
.poster.placeholder .nombre{opacity:.4}
.poster.placeholder .apodo{opacity:.6}
.poster.placeholder .barra{background:var(--sombra); color:var(--papel)}
.cartel-cta{display:flex; justify-content:center; padding-top:24px; border-top:var(--b-1) solid var(--linea-media)}

/* ---------- cartel reducido (carrusel móvil, px fijos del mockup) ---------- */
.roster-swipe .cell-mini{display:block; flex:0 0 auto; text-decoration:none; scroll-snap-align:start}
.poster-mini{position:relative; width:252px; height:392px; overflow:hidden; text-align:center; background:var(--bg); color:var(--tinta); scroll-snap-align:start}
.poster-mini .forma{position:absolute; left:50%; display:none}
.poster-mini .forma.eco{background:var(--eco)}
.poster-mini .forma.capa{background:var(--capa)}
.poster-mini .cuerpo{position:relative; height:100%; display:flex; flex-direction:column; align-items:center}
.poster-mini .cab{width:100%; padding:11px 14px 0; display:flex; flex-direction:column; align-items:center; gap:4px}
.poster-mini .presenta{font-family:var(--font-data); font-weight:700; font-size:var(--fs-8); letter-spacing:.22em; text-transform:uppercase}
.poster-mini .filete{width:100%; border-top:var(--b-2) solid var(--tinta)}
.poster-mini .liga{font-family:var(--font-data); font-size:var(--fs-8); letter-spacing:.2em; text-transform:uppercase}
.poster-mini .mask{width:108%; max-width:none; height:190px; flex:0 0 auto; object-fit:contain; object-position:center top; display:block; margin:-6px 0 0; filter:var(--mask-grade) drop-shadow(var(--ds-md))}
.poster-mini .nwrap{width:100%; padding:0 12px; display:flex; flex-direction:column; align-items:center; gap:4px}
.poster-mini .nombre{font-family:var(--font-display); font-weight:400; font-size:var(--fs-38); line-height:.86; text-transform:uppercase; text-align:center}
.poster-mini .nombre.sm{font-size:var(--fs-34)}
.poster-mini .apodo{font-family:var(--font-data); font-weight:700; font-size:var(--fs-8); letter-spacing:.18em; text-transform:uppercase}
.poster-mini .pie{width:100%; margin-top:auto; background:var(--tinta); color:var(--crema); display:grid; grid-template-columns:repeat(2,1fr); font-variant-numeric:tabular-nums}
.poster-mini .pie .stats div{padding:9px 6px; display:flex; flex-direction:column; align-items:center; gap:2px; font-family:var(--font-data)}
.poster-mini .pie .stats div + div{border-left:var(--b-1) solid var(--hair-blanco-35)}
.poster-mini .pie .stats div span{font-size:var(--fs-8); letter-spacing:.14em; text-transform:uppercase; opacity:.8}
.poster-mini .pie .stats div b{font-family:var(--font-display); font-weight:400; font-size:var(--fs-20); line-height:1}
/* geometría de la forma por luchador (px medidos del mockup móvil) */
.poster-mini.f-deepseek-analyst .forma{display:block; top:118px; width:196px; height:208px}
.poster-mini.f-deepseek-analyst .forma.eco{transform:translate(calc(-50% + 18px), calc(-50% + 6px))}
.poster-mini.f-deepseek-analyst .forma.capa{transform:translate(calc(-50% + 10px), calc(-50% - 4px))}
.poster-mini.f-claude-analyst .forma{display:block; top:118px; width:184px; height:184px}
.poster-mini.f-claude-analyst .forma.eco{transform:translate(calc(-50% + 8px), calc(-50% + 6px)) rotate(-7deg)}
.poster-mini.f-claude-analyst .forma.capa{transform:translate(-50%, calc(-50% - 4px)) rotate(-7deg)}
.poster-mini.f-minimax-analyst .forma{display:block; top:118px; width:176px; height:176px}
.poster-mini.f-minimax-analyst .forma.eco{transform:translate(calc(-50% + 8px), calc(-50% + 6px)) rotate(12deg)}
.poster-mini.f-minimax-analyst .forma.capa{transform:translate(-50%, -50%) rotate(12deg)}
.poster-mini.f-kimi-analyst .forma{display:block; top:118px; width:180px; height:180px; border-radius:50%}
.poster-mini.f-kimi-analyst .forma.eco{transform:translate(calc(-50% - 2px), calc(-50% + 7px))}
.poster-mini.f-kimi-analyst .forma.capa{transform:translate(calc(-50% - 9px), -50%)}
.poster-mini.f-baseline .forma{display:block; top:118px; width:174px; height:174px}
.poster-mini.f-baseline .forma.eco{transform:translate(calc(-50% + 7px), calc(-50% + 7px)) rotate(10deg)}
.poster-mini.f-baseline .forma.capa{transform:translate(-50%, -50%) rotate(10deg)}
.poster-mini.f-solo-dip .forma{display:block; top:130px; width:198px; height:186px}
.poster-mini.f-solo-dip .forma.eco{transform:translate(calc(-50% + 8px), calc(-50% + 8px)) rotate(-4deg)}
.poster-mini.f-solo-dip .forma.capa{transform:translate(-50%, -50%) rotate(-4deg)}

/* ---------- La jornada (franja) ----------
   Nombre de clase deliberadamente NO "jornada": esa clase ya existía y sigue
   viva, scoped, en `.decision summary .jornada` (columna "Jornada" del acta/
   operaciones) — usar el mismo nombre aquí colaba este grid+bordes dentro de
   ese span y lo rompía (línea doble en la ficha, hallazgo real 29-ago). */
.la-jornada{
  padding:26px var(--pad-seccion); display:grid;
  grid-template-columns:minmax(0,1fr) 420px; gap:var(--sp-11);
}
.la-jornada .izq{display:flex; flex-direction:column; gap:10px}
.la-jornada .izq .jornada-n{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.22em; text-transform:uppercase}
.la-jornada .izq .enjuego{max-width:58ch; font-size:var(--fs-16); line-height:1.6}
.la-jornada .izq .shortlist{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.1em; text-transform:uppercase; opacity:.75}
.la-jornada .izq .fine{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.1em; text-transform:uppercase; opacity:.6}
.la-jornada .liston-card{
  border:var(--b-2) solid var(--tinta); padding:18px 20px; display:flex; flex-direction:column; gap:12px;
}
.la-jornada .liston-card .fila{display:flex; align-items:center; gap:12px}
.la-jornada .liston-card .fila .txt{display:flex; flex-direction:column; gap:2px}
.la-jornada .liston-card .fila .txt .l1{font-family:var(--font-data); font-weight:700; font-size:var(--fs-13); letter-spacing:.14em; text-transform:uppercase}
.la-jornada .liston-card .fila .txt .l2{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.1em; text-transform:uppercase; opacity:.7}
.la-jornada .liston-card .fila .v{margin-left:auto; font-family:var(--font-display); font-size:var(--fs-38); line-height:1}
.la-jornada .liston-card .nota{font-size:var(--fs-14); line-height:1.55; opacity:.85}

/* ---------- El combate de la semana (home, mockup "Hero jornada 12") ----------
   Distinto del .combate (1vs1 de la escalera, combate_html/combate.html):
   nombre de clase adrede sin ese token para no repetir el fallo de ".jornada"
   (colar estilos de un componente en otro por compartir nombre). Toggle
   7 jornadas/Temporada en CSS puro: dos radios ocultos + combinador `~`,
   sin JS — mismo criterio que el resto del sitio (<details> en vez de JS). */
.combate-semana{padding:38px var(--pad-seccion) 42px; border-bottom:var(--b-2) solid var(--tinta); display:flex; flex-direction:column; gap:24px}
.combate-semana > input[type="radio"]{position:absolute; opacity:0; pointer-events:none}
.combate-semana > .cab{display:flex; flex-direction:column; gap:14px}
.combate-semana .rango-toggle{display:flex; flex-wrap:wrap; align-items:center; gap:18px}
.combate-semana .rango-toggle .btns{display:flex; align-items:stretch; border:var(--b-2) solid var(--tinta)}
.combate-semana .rango-toggle .btns label{
  padding:7px 12px; cursor:pointer; font-family:var(--font-data); font-weight:700;
  font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase;
}
.combate-semana .rango-toggle .btns label[for^="cs-rango-todo"]{border-left:var(--b-2) solid var(--tinta)}
.combate-semana .rango-toggle .nota{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.16em; text-transform:uppercase; opacity:.72}
.combate-semana .comparativa{display:flex; flex-direction:column; gap:8px}
.combate-semana .comparativa > .nota{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase; opacity:.7}
.combate-semana .vista{display:none}
.combate-semana > input[id^="cs-rango-7"]:checked ~ .cab .btns label[for^="cs-rango-7"],
.combate-semana > input[id^="cs-rango-todo"]:checked ~ .cab .btns label[for^="cs-rango-todo"]{background:var(--tinta); color:var(--papel)}
.combate-semana > input[id^="cs-rango-7"]:checked ~ .vista.v7{display:block}
.combate-semana > input[id^="cs-rango-todo"]:checked ~ .vista.vtodo{display:block}

/* ---------- disco de listón (glifo) ---------- */
.disc{
  width:44px; height:44px; border-radius:50%; background:var(--sombra); color:var(--papel);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-data); font-weight:700; font-size:var(--fs-22); line-height:1; flex:none;
}
.disc.sm{width:26px; height:26px; font-size:var(--fs-14)}
.disc.xs{width:22px; height:22px; font-size:var(--fs-12)}
.disc.xs.ticker{font-size:8px}

/* ---------- El combate de la semana (página combate.html) ---------- */
.combate{max-width:var(--maxw); margin-inline:auto; padding:46px var(--pad-seccion) 56px; display:flex; flex-direction:column; gap:28px}
.combate-cab{display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center}
.combate-cab .kicker{font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.3em; text-transform:uppercase; color:var(--rojo)}
.combate-pregunta{font-family:var(--font-display); font-size:clamp(30px,4.5vw,56px); line-height:1.02; letter-spacing:-.01em; text-transform:uppercase; max-width:26ch; text-wrap:balance}
.combate-historia{max-width:62ch; font-size:var(--fs-18); line-height:1.6; opacity:.85; text-wrap:pretty}
.combate-ring{display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:24px; align-items:stretch}
.vs-box{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:0 6px}
.vs-box .vs{font-family:var(--font-display); font-size:clamp(48px,8vw,96px); line-height:.9; color:var(--rojo); text-shadow:var(--shadow-wordmark)}
.vs-box .vs-dif{font-family:var(--font-data); font-weight:700; font-size:var(--fs-15); letter-spacing:.08em; white-space:nowrap}
.vs-box .vs-sub{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.16em; text-transform:uppercase; opacity:.6; white-space:nowrap}
.combate-nota{max-width:70ch; margin-inline:auto; font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase; opacity:.6; text-align:center; line-height:1.7}
.tabs{display:flex; align-items:stretch; border:var(--b-2) solid var(--tinta)}
.tabs .tab{
  padding:7px 12px; cursor:pointer; font-family:var(--font-data); font-weight:700;
  font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase;
}
.tabs .tab + .tab{border-left:var(--b-2) solid var(--tinta)}
.tabs .tab.on{background:var(--tinta); color:var(--papel)}

/* contendiente: ficha compacta del ring (máscara + nombre + retorno + 3 stats) */
.contendiente{
  position:relative; display:flex; flex-direction:column; align-items:center; gap:10px;
  text-align:center; text-decoration:none; color:var(--tinta);
  background:var(--bg); border:var(--b-2) solid var(--tinta);
  padding:18px 16px 16px; box-shadow:var(--shadow-hard); transition:transform .18s ease;
}
.contendiente:hover{transform:translateY(-4px)}
.contendiente .c-cab{font-family:var(--font-data); font-weight:700; font-size:var(--fs-10); letter-spacing:.2em; text-transform:uppercase; opacity:.8}
.contendiente .mask{width:min(190px,64%); height:190px; object-fit:contain; filter:var(--mask-grade) drop-shadow(var(--ds-md))}
.contendiente .c-nombre{font-family:var(--font-display); font-size:var(--fs-40); line-height:.9; letter-spacing:-.01em; text-transform:uppercase}
.contendiente .c-ret{font-family:var(--font-display); font-size:var(--fs-34); line-height:1}
.contendiente .c-ret.pos{color:var(--verde)}
.contendiente .c-ret.neg{color:var(--rojo)}
.contendiente .c-stats{width:100%; display:grid; grid-template-columns:repeat(3,1fr); border-top:var(--b-2) solid var(--tinta); border-bottom:var(--b-2) solid var(--tinta)}
.contendiente .c-stats div{display:flex; flex-direction:column; gap:3px; padding:9px 4px; border-right:var(--b-1) solid var(--linea-media)}
.contendiente .c-stats div:last-child{border-right:0}
.contendiente .c-stats span{font-family:var(--font-data); font-size:var(--fs-9); letter-spacing:.14em; text-transform:uppercase; opacity:.7}
.contendiente .c-stats b{font-family:var(--font-data); font-weight:700; font-size:var(--fs-15); letter-spacing:.02em}
.contendiente .c-ver{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.16em; text-transform:uppercase; border-bottom:var(--b-3) solid var(--tinta); padding-bottom:2px}
.contendiente .c-disc{width:120px; height:120px; border-radius:50%; background:var(--sombra); color:var(--papel); display:flex; align-items:center; justify-content:center; font-family:var(--font-data); font-weight:700; font-size:var(--fs-48); margin:18px 0 6px}
.contendiente.hold{background:var(--papel); border-style:dashed; box-shadow:none}
.contendiente.hold .c-cab{color:var(--sombra)}

/* carta "referencia" del listón (Nivel 1) */
.referencia{
  border:var(--b-2) dashed var(--linea-fuerte); color:var(--tinta); text-align:center;
  padding:var(--sp-11) 26px 34px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:8px;
}
.referencia .disc{width:min(120px,30vw); height:min(120px,30vw); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-data); font-size:40px; color:var(--papel); margin-bottom:6px; background:var(--sombra);}
.referencia .nombre{font-family:var(--font-heading); font-weight:900; font-size:clamp(28px,3.4vw,40px); line-height:1}
.referencia .tipo{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.14em; text-transform:uppercase; opacity:.7}
.referencia .ret{font-family:var(--font-data); font-size:var(--fs-16); font-weight:700}
.referencia .fine{font-family:var(--font-body); font-size:var(--fs-13); opacity:.7; line-height:1.5; max-width:42ch}

/* ---------- listones (bloque 4 col) ---------- */
.listones-block{display:flex; flex-direction:column; gap:12px; border-top:var(--b-2) solid var(--tinta); padding-top:18px}
.listones-title{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase}
.listones{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:var(--b-2) solid var(--tinta)}
.listones .liston{
  padding:16px 18px; display:flex; flex-direction:column; gap:6px;
  border-right:var(--b-1) solid var(--linea-media);
}
.listones .liston:last-child{border-right:0}
.listones .liston .cab{display:flex; align-items:center; gap:9px; font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.16em; text-transform:uppercase; opacity:.75}
.listones .liston .v{font-family:var(--font-display); font-size:var(--fs-30); line-height:1}
.listones .liston .nota{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.08em; opacity:.7}
/* cifra del componente listón (valor + pct vivos) — lo usan home y combate */
.listones .liston .cifra{display:flex; align-items:baseline; gap:10px; font-variant-numeric:tabular-nums}
.listones .liston .cifra .v{font-family:var(--font-data); font-weight:700; font-size:var(--fs-19)}
.listones .liston .cifra .pct{font-family:var(--font-data); font-size:var(--fs-12)}

/* listones en el combate (celdas flex) */
.listones-fila{display:flex; flex-wrap:wrap; align-items:stretch; border-top:var(--b-1) solid var(--linea-media); border-bottom:var(--b-1) solid var(--linea-media)}
.listones-fila .liston{flex:1; min-width:180px; padding:11px 16px; display:flex; flex-direction:column; gap:4px; border-right:var(--b-1) solid var(--linea-suave)}
.listones-fila .liston:last-child{border-right:0}
.listones-fila .liston .v{font-family:var(--font-data); font-weight:700; font-size:var(--fs-19); letter-spacing:-.01em; line-height:1.1}
.listones-fila .liston .pct{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.04em; opacity:.8}

/* ---------- marco del gráfico + leyenda ---------- */
.chart-box{display:flex; flex-direction:column; gap:14px}
.chart{position:relative; width:100%}
.chart .axis-y{
  position:absolute; left:-30px; top:58%; transform:rotate(-90deg); transform-origin:left top;
  font-family:var(--font-data); font-weight:700; font-size:var(--fs-11);
  letter-spacing:.3em; text-transform:uppercase; opacity:.6;
}
.leyenda{display:flex; flex-wrap:wrap; align-items:center; gap:14px 30px}
.leyenda .item{display:flex; align-items:center; gap:9px}
.leyenda .item .barra{width:18px; height:5px; display:block}
.leyenda .item .nm{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.1em; text-transform:uppercase; opacity:.8}
.leyenda .item .v{font-family:var(--font-data); font-weight:700; font-size:var(--fs-17); letter-spacing:.02em}
.eje-x{display:flex; justify-content:space-between; font-family:var(--font-data); font-size:var(--fs-10); opacity:.7}

/* ---------- stat-row (label … valor, punteado) ---------- */
.statlist{display:flex; flex-direction:column; gap:9px; font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.06em}
.stat-row{display:flex; justify-content:space-between; gap:12px; border-bottom:var(--b-1) dotted var(--linea-punteada); padding-bottom:7px}
.stat-row .l{opacity:.72; text-transform:uppercase; letter-spacing:.14em; font-size:var(--fs-11)}
.stat-row .v{font-weight:700; text-align:right}

/* ---------- clasificación (grid-table) ---------- */
.clasif-col{grid-template-columns:44px 76px 180px minmax(0,1fr) 104px 104px 108px 96px 84px 100px 116px}
.clasif{display:flex; flex-direction:column; gap:0; min-width:1060px}
.tabla-scroll{overflow-x:auto}
.clasif-head{
  display:grid; gap:0; border-bottom:var(--b-2) solid var(--tinta); padding-bottom:10px;
  font-family:var(--font-data); font-weight:700; font-size:var(--fs-11);
  letter-spacing:.14em; text-transform:uppercase; opacity:.85;
}
.clasif-head .r{text-align:right}
.clasif-row{
  display:grid; gap:0; align-items:center; padding:15px 0;
  border-bottom:var(--b-1) solid var(--linea-suave);
  font-family:var(--font-data); font-size:var(--fs-15); letter-spacing:.02em;
}
.clasif-row:last-of-type{border-bottom:var(--b-2) solid var(--tinta)}
.clasif-row .rank{font-family:var(--font-display); font-size:var(--fs-22); line-height:1}
.clasif-row .delta{font-family:var(--font-data); font-size:var(--fs-12); font-weight:700; margin-left:8px; letter-spacing:.04em}
.clasif-row .delta.up{color:var(--verde)}
.clasif-row .delta.down{color:var(--rojo)}
.clasif-row .mask{width:60px; height:60px; object-fit:contain; filter:var(--mask-grade) drop-shadow(var(--ds-sm))}
.clasif-row .spark{display:block; padding:0 30px}
.clasif-row .fighter{display:flex; flex-direction:column; gap:3px; text-decoration:none; color:var(--tinta)}
.clasif-row .fighter .nombre{font-family:var(--font-display); font-size:var(--fs-24); line-height:1; text-transform:uppercase}
.clasif-row .fighter .casta{font-family:var(--font-data); font-size:var(--fs-10); letter-spacing:.12em; text-transform:uppercase; opacity:.65}
.clasif-row .num{text-align:right}
.clasif-row .ret{text-align:right; font-family:var(--font-display); font-size:var(--fs-22); line-height:1}
.clasif-row .capital{text-align:right; font-family:var(--font-display); font-size:var(--fs-22); line-height:1}
.clasif-row.descenso .rank{box-shadow:inset 4px 0 0 var(--rojo)}
.clasif-row.awaiting{opacity:.6}
.nota-descenso{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.12em; text-transform:uppercase; opacity:.7; margin-top:12px}

/* ---------- La factura ---------- */
.factura{display:flex; flex-direction:column; gap:10px}
.factura-fila{
  display:grid; grid-template-columns:130px minmax(0,1fr) 90px; gap:14px; align-items:center;
  font-family:var(--font-data); font-size:var(--fs-13); letter-spacing:.08em;
  text-transform:uppercase;
}
.factura-fila .barra{height:16px; background:var(--hair); display:block; overflow:hidden}
.factura-fila .barra .fill{display:block; height:100%}
.factura-fila .v{text-align:right; font-weight:700}
.factura-total{
  font-family:var(--font-data); font-weight:700; font-size:var(--fs-13);
  letter-spacing:.14em; text-transform:uppercase;
  border-top:var(--b-2) solid var(--tinta); padding-top:14px;
}

/* ---------- reparto de jornadas (barras) ---------- */
.reparto{display:flex; flex-direction:column; gap:9px; font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.08em; text-transform:uppercase}
.reparto .fila{display:flex; align-items:center; gap:10px}
.reparto .fila .l{width:74px; opacity:.75}
.reparto .fila .track{flex:1; height:12px; background:var(--hair); display:block}
.reparto .fila .track .fill{display:block; height:100%}
.reparto .fila .v{width:46px; text-align:right; font-weight:700}

/* ---------- quiniela (fondo azul full-bleed) ---------- */
.quiniela{
  background:var(--azul-vivo); color:var(--crema); padding:28px var(--pad-seccion) 48px;
  display:flex; flex-direction:column; gap:28px;
}
.quiniela .cab{display:flex; flex-direction:column; align-items:center; text-align:center}
/* estrellas como sujetalibros simétricos: 28px por encima y por debajo de cada
   fila (mismo ritmo que el gap de la sección) — pixel perfect, Marina 29-ago */
.quiniela .estrellas{font-size:var(--fs-34); line-height:1; letter-spacing:.3em; padding:0 0 28px}
.quiniela .cab .estrellas:last-child{padding-top:28px; padding-bottom:0}
.quiniela .filete{width:100%; height:0; border-top:var(--b-3) solid var(--crema)}
.quiniela .titulo-wrap{width:100%; padding:16px var(--sp-6) 20px; display:flex; flex-direction:column; align-items:center; gap:8px}
.quiniela .kicker{font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.3em; text-transform:uppercase}
.quiniela h2{font-family:var(--font-display); font-size:var(--fs-104); line-height:.88; letter-spacing:.01em; text-transform:uppercase}
.quiniela .estado-row{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px}
.quiniela .pildora{border:var(--b-2) solid var(--crema); padding:5px 12px; font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase}
.quiniela .estado-row .fine{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.18em; text-transform:uppercase; opacity:.85}
.quiniela .masks{display:flex; flex-wrap:nowrap; align-items:flex-end; justify-content:center; padding:16px 0 18px}
.quiniela .masks .voto{
  display:flex; flex-direction:column; align-items:center; gap:9px;
  text-decoration:none; color:var(--crema); position:relative; z-index:2; margin:0;
  background:none; border:0; padding:0; cursor:pointer; font:inherit; text-align:center;
  transition:transform .18s ease;
}
/* abanico (solapado, rotado) como el mockup: márgenes negativos + z-index + rotación */
.quiniela .masks .voto:nth-child(1){margin-left:0; transform:rotate(-7deg); z-index:2}
.quiniela .masks .voto:nth-child(2){margin-left:-30px; transform:rotate(6deg); z-index:3}
.quiniela .masks .voto:nth-child(3){margin-left:-26px; transform:rotate(-4deg); z-index:4}
.quiniela .masks .voto:nth-child(4){margin-left:-32px; transform:rotate(8deg); z-index:5}
.quiniela .masks .voto:nth-child(5){margin-left:-26px; transform:rotate(-6deg); z-index:3}
.quiniela .masks .voto:nth-child(6){margin-left:-30px; transform:rotate(5deg); z-index:2}
.quiniela .masks .voto:nth-child(n):hover{transform:rotate(0deg) scale(1.04); z-index:9}
.quiniela .masks img{width:196px; height:196px; object-fit:contain; filter:var(--mask-grade) drop-shadow(var(--ds-lg))}
/* el más votado agranda su máscara: 220×220 en votada, 240×269 en cerrada (mockup) */
.quiniela .masks .voto.grande{z-index:9}
.quiniela.votada .masks .voto.grande img{width:220px; height:220px}
.quiniela.descubierta .masks .voto.grande img{width:240px; height:269px}
.quiniela .masks .nm{font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.16em; text-transform:uppercase}
.quiniela .masks .votar{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase; border:var(--b-2) solid var(--crema); padding:5px 11px}
.quiniela .masks .pct{font-family:var(--font-data); font-weight:700; font-size:var(--fs-20); letter-spacing:.02em; line-height:1; color:var(--crema)}
.quiniela .masks .sub{font-family:var(--font-data); font-size:10px; letter-spacing:.14em; text-transform:uppercase; opacity:.65}
/* corona de 9 estrellas en arco sobre el ganador (mockup: 9 ★ posicionadas) */
.quiniela .masks .corona{position:absolute; left:50%; top:-4px; width:0; height:0; pointer-events:none; z-index:9}
.quiniela .masks .corona i{position:absolute; font-style:normal; color:var(--amarillo); font-size:20px; line-height:1; transform:translate(-50%,-50%)}
.quiniela .masks .corona i:nth-child(1){left:-122px; top:96px}
.quiniela .masks .corona i:nth-child(2){left:-92px; top:56px}
.quiniela .masks .corona i:nth-child(3){left:-63px; top:23px}
.quiniela .masks .corona i:nth-child(4){left:-33px; top:2px}
.quiniela .masks .corona i:nth-child(5){left:0; top:-6px}
.quiniela .masks .corona i:nth-child(6){left:33px; top:2px}
.quiniela .masks .corona i:nth-child(7){left:63px; top:23px}
.quiniela .masks .corona i:nth-child(8){left:92px; top:56px}
.quiniela .masks .corona i:nth-child(9){left:122px; top:96px}
.quiniela .pasos{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:var(--b-2) solid var(--tinta); border-bottom:var(--b-2) solid var(--hair-blanco-suave);
}
.quiniela .paso{padding:18px 22px; display:flex; gap:12px; border-right:var(--b-1) solid var(--hair-blanco)}
.quiniela .paso:last-child{border-right:0}
.quiniela .paso .n{font-family:var(--font-display); font-size:var(--fs-30); line-height:.9}
.quiniela .paso .t{font-size:var(--fs-15); line-height:1.55; opacity:.92; text-wrap:pretty}
.quiniela .pie{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px;
  font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.14em; text-transform:uppercase;
}
.quiniela .pie b{font-weight:700}
.quiniela .pie .right{opacity:.85}

/* ---------- veredicto + newsletter ---------- */
.veredicto{padding:var(--sp-11) var(--pad-seccion) 46px; display:flex; flex-direction:column; gap:32px}
.veredicto .grid{display:grid; grid-template-columns:minmax(0,1fr) 470px; gap:var(--sp-16); align-items:start}
.veredicto .izq{display:flex; flex-direction:column; gap:22px}
.veredicto .head-row{display:flex; flex-wrap:wrap; align-items:center; gap:14px}
.veredicto .star{color:var(--rojo); font-size:var(--fs-30); line-height:1}
.veredicto h2{font-family:var(--font-display); font-size:var(--fs-104); line-height:.9; letter-spacing:-.01em; text-transform:uppercase; margin:6px 0 4px}
.veredicto .lead{max-width:54ch; font-size:var(--fs-21); line-height:1.5}
.veredicto .lead strong{font-weight:600}
.veredicto .cita,.estilo .cita{border-left:var(--b-4) solid var(--rojo); padding-left:20px; margin-top:10px; display:flex; flex-direction:column; gap:8px}
.veredicto .cita .txt,.estilo .cita .txt{font-style:italic; font-size:var(--fs-19); line-height:1.45; text-wrap:pretty}
.veredicto .cita .firma,.estilo .cita .firma{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.16em; text-transform:uppercase; opacity:.72}
.veredicto-card{border:var(--b-2) solid var(--tinta); display:flex; flex-direction:column}
.veredicto-card .cab{background:var(--tinta); color:var(--papel); padding:12px 18px; display:flex; align-items:center; justify-content:space-between; gap:12px; font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.18em; text-transform:uppercase}
.veredicto-card .body{padding:20px 22px; display:flex; flex-direction:column; gap:12px}
.veredicto-card .body .t{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-26); line-height:1.08; letter-spacing:-.01em}
.veredicto-card .body .d{font-size:var(--fs-15); line-height:1.6; text-wrap:pretty}
.veredicto-card .body .skeleton{display:flex; flex-direction:column; gap:7px}
.veredicto-card .body .skeleton i{height:11px; background:var(--hair); width:100%}
.veredicto-card .pie{border-top:var(--b-2) solid var(--tinta); padding:14px 18px; display:flex; align-items:center; justify-content:space-between; gap:12px; font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase}
.veredicto-card .pie a{text-decoration:none; font-weight:700; border-bottom:var(--b-3) solid var(--amarillo); padding-bottom:3px}
.pasos-4{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 40px; padding-top:4px}
.paso-4{display:flex; gap:12px; align-items:flex-start; border-top:var(--b-1) solid var(--linea-media); padding-top:12px}
.paso-4 .d{display:flex; flex-direction:column; gap:4px}
.paso-4 .n{font-family:var(--font-display); font-size:var(--fs-26); line-height:.9; color:var(--azul)}
.sec.cambia .paso-4 .n{color:var(--rojo-vivo)}
.paso-4 .cuerpo{display:flex; flex-direction:column; gap:4px}
.paso-4 .cuerpo .t{font-family:var(--font-heading); font-weight:700; font-size:var(--fs-16); line-height:1.15}
.paso-4 .cuerpo .d{font-size:var(--fs-14); line-height:1.5; opacity:.8; text-wrap:pretty}
.newsletter{padding:40px var(--pad-seccion) 44px; display:grid; grid-template-columns:minmax(0,1fr) 470px; gap:48px; align-items:center}
.newsletter .izq{display:flex; flex-direction:column; gap:12px}
.newsletter .head-row{display:flex; flex-wrap:wrap; align-items:center; gap:12px}
.newsletter .star{color:var(--rojo-vivo); font-size:var(--fs-26); line-height:1}
.newsletter h3{font-family:var(--font-display); font-weight:400; font-size:var(--fs-64); line-height:.92; letter-spacing:-.01em; text-transform:uppercase}
.newsletter h3.heading{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-34); letter-spacing:-.02em; text-transform:uppercase}
.newsletter .izq p{max-width:60ch; font-size:var(--fs-19); line-height:1.55}
.newsletter .cuenta{display:flex; flex-wrap:wrap; align-items:center; gap:18px; font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase}
.newsletter .cuenta .cd{background:var(--rojo-vivo); color:var(--crema); padding:6px 11px; font-weight:700}
.newsletter .cuenta .apuntados{opacity:.7}
.newsletter .form{display:flex; flex-direction:column; gap:12px}
.newsletter .form .campo{display:flex; align-items:stretch; border:var(--b-2) solid var(--tinta)}
.newsletter .form .campo input{flex:1; padding:15px 16px; font-family:var(--font-data); font-size:var(--fs-14); letter-spacing:.06em; border:0; background:var(--papel); color:var(--tinta)}
.newsletter .form .campo input::placeholder{opacity:.55}
.newsletter .form .campo button{background:var(--tinta); color:var(--papel); padding:15px 20px; font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.18em; text-transform:uppercase; border:0; cursor:pointer}
.newsletter .form .campo button:hover{background:var(--azul)}
.newsletter .form .fino{display:flex; flex-wrap:wrap; gap:16px; font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.12em; text-transform:uppercase; opacity:.65}
.veredicto .newsletter{border-top:var(--b-2) solid var(--tinta); border-bottom:0; padding:26px 0 34px; grid-template-columns:minmax(0,1fr) 460px; gap:var(--sp-11)}
/* anidada dentro de .veredicto: sin filete propio (lo pone la sección madre) */
.veredicto .newsletter::after{content:none}

/* ---------- manifiesto (día 0) ---------- */
.manifiesto{padding:42px var(--pad-seccion) 44px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,420px); gap:48px; align-items:start}
.manifiesto .izq{display:flex; flex-direction:column; gap:18px}
.manifiesto .head-row{display:flex; align-items:center; gap:12px}
.manifiesto .star{color:var(--rojo-vivo); font-size:var(--fs-26); line-height:1}
.manifiesto .head-row .kicker{letter-spacing:.24em}
.manifiesto .titulo{font-family:var(--font-display); font-size:var(--fs-66); line-height:.92; letter-spacing:-.01em; text-transform:uppercase; max-width:20ch; text-wrap:balance}
.manifiesto .prosa{max-width:62ch; font-size:var(--fs-18); line-height:1.6; text-wrap:pretty}
.manifiesto .pregunta{max-width:60ch; font-family:var(--font-data); font-size:var(--fs-14); line-height:1.8; border-top:var(--b-2) solid var(--tinta); border-bottom:var(--b-2) solid var(--tinta); padding:14px 0; text-wrap:pretty}
.manifiesto .correcciones{display:flex; flex-direction:column; gap:14px}
.manifiesto .correcciones .t{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase; opacity:.8}
.manifiesto .correcciones .list{display:flex; flex-direction:column}
.manifiesto .fila{display:flex; gap:12px; border-top:var(--b-1) solid var(--linea-media); padding:12px 0}
.manifiesto .fila img{width:44px; height:44px; object-fit:contain; flex:none}
.manifiesto .fila .disc{width:44px; height:44px; border:var(--b-2) dashed var(--linea-fuerte); display:flex; align-items:center; justify-content:center; font-family:var(--font-data); font-weight:700; font-size:var(--fs-16); flex:none}
.manifiesto .fila .txt{display:flex; flex-direction:column; gap:3px}
.manifiesto .fila .l1{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.12em; text-transform:uppercase}
.manifiesto .fila .l2{font-size:var(--fs-14); line-height:1.5; opacity:.85}
.manifiesto .fine{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase; opacity:.7}

/* ---------- campana final + footer ---------- */
.campana-final{padding:34px var(--pad-seccion) 30px; display:flex; flex-direction:column; gap:22px}
.campana-final .head{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:16px; border-bottom:var(--b-2) solid var(--tinta); padding-bottom:18px}
.campana-final .head .t{font-family:var(--font-display); font-size:var(--fs-44); line-height:1; text-transform:uppercase}
.campana-final .head .s{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.16em; text-transform:uppercase; opacity:.75}
.campana-final .cols{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px}
.campana-final .cols p{font-size:var(--fs-15); line-height:1.6; opacity:.85; text-wrap:pretty}
.footer{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase; opacity:.6; border-top:var(--b-1) solid var(--linea-media); padding-top:16px}

/* ---------- botones / chips / ctas ---------- */
.btn{display:inline-block; background:var(--tinta); color:var(--papel); padding:14px 20px; font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.18em; text-transform:uppercase; text-decoration:none; border:0; cursor:pointer}
.btn:hover{background:var(--azul); color:var(--papel)}
.btn-rojo{background:var(--rojo); color:var(--crema)}
.btn-rojo:hover{background:var(--tinta); color:var(--crema)}
.btn-ghost{background:transparent; color:var(--tinta); border:var(--b-2) solid var(--tinta)}
.chip{display:inline-block; border:var(--b-2) solid var(--tinta); padding:5px 11px; font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase; color:var(--tinta); text-decoration:none}
.chip-color{background:var(--capa); color:var(--crema); border-color:var(--capa)}
.cta{font-family:var(--font-data); font-weight:700; font-size:var(--fs-13); letter-spacing:.18em; text-transform:uppercase; text-decoration:none; border-bottom:var(--b-3) solid var(--tinta); padding-bottom:4px}
.cta-ghost{font-family:var(--font-data); font-size:var(--fs-13); letter-spacing:.18em; text-transform:uppercase; text-decoration:none; border-bottom:var(--b-1) solid var(--linea-fuerte); padding-bottom:4px}

/* ---------- empty state ---------- */
.empty{border:var(--b-2) dashed var(--linea-fuerte); background:var(--papel); padding:34px 24px; text-align:center}
.empty .empty-t{font-family:var(--font-heading); font-weight:800; font-size:var(--fs-20); color:var(--tinta)}
.empty .empty-s{font-family:var(--font-body); font-size:var(--fs-15); opacity:.7; margin-top:8px; line-height:1.5}

/* ===================================================================
   FICHA DE LUCHADOR
   =================================================================== */

/* identidad (cabecera) */
.identidad{display:grid; grid-template-columns:400px minmax(0,1fr); gap:0; border-bottom:var(--b-2) solid var(--tinta)}
.identidad-cartel{
  position:relative; background:var(--bg); color:var(--tinta); overflow:hidden;
  padding:22px 26px 24px; display:flex; flex-direction:column; align-items:center;
  justify-content:space-between; gap:14px; border-right:var(--b-2) solid var(--tinta);
}
.identidad-cartel .forma{position:absolute; left:50%; top:250px}
.identidad-cartel .ribbon{font-size:var(--fs-10); line-height:1; letter-spacing:.4em}
.identidad-cartel .cab{position:relative; width:100%; display:flex; flex-direction:column; align-items:center; gap:7px; text-align:center}
.identidad-cartel .cab .filete{width:100%; height:0; border-top:var(--b-2) solid var(--tinta)}
.identidad-cartel .cab .casta{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.24em; text-transform:uppercase}
.identidad-cartel .mask{position:relative; width:108%; max-width:none; height:320px; object-fit:contain; filter:var(--mask-grade) drop-shadow(var(--ds-lg))}
.identidad-cartel .nombre{position:relative; font-family:var(--font-display); font-size:var(--fs-62); line-height:.88; text-transform:uppercase; text-align:center}
.identidad-cartel .apodo{position:relative; font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase; text-align:center}
.identidad-cartel .pie{position:relative; width:100%; display:flex; flex-direction:column; align-items:center; gap:6px}
.identidad-copy{padding:34px var(--pad-seccion) 30px; display:flex; flex-direction:column; gap:20px}
.identidad-copy .chips{display:flex; flex-wrap:wrap; align-items:center; gap:12px}
.identidad-copy .ret-row{display:flex; flex-wrap:wrap; align-items:flex-end; gap:0 26px}
.identidad-copy .ret{font-family:var(--font-display); font-size:var(--fs-92); line-height:.86; color:var(--sombra)}
.identidad-copy .ret.pos{color:var(--verde)}
.identidad-copy .ret.neg{color:var(--rojo)}
.identidad-copy .ret-note{font-family:var(--font-data); font-size:var(--fs-13); letter-spacing:.16em; text-transform:uppercase; padding-bottom:12px; line-height:1.7}
.identidad-copy .wl{display:flex; flex-wrap:wrap; align-items:baseline; gap:20px; font-family:var(--font-data); font-size:var(--fs-15); font-weight:700; letter-spacing:.14em; text-transform:uppercase}
.identidad-copy .wl .racha{color:var(--azul)}
.identidad-copy .wl .fechas{font-weight:400; opacity:.75}
.identidad-copy .motor{border-top:var(--b-2) solid var(--tinta); padding-top:16px; display:flex; flex-direction:column; gap:8px}
.identidad-copy .motor .m{font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.18em; text-transform:uppercase}
.identidad-copy .motor .d{max-width:64ch; font-size:var(--fs-16); line-height:1.6; text-wrap:pretty}
.identidad-copy .ctas{display:flex; flex-wrap:wrap; align-items:center; gap:26px; margin-top:auto}

/* cifras (3 grandes + banda + detalle + reparto) */
.cifras-3{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:var(--b-1) solid var(--linea-media)}
.cifras-3 .k{padding:26px var(--sp-10); display:flex; flex-direction:column; gap:6px; border-right:var(--b-1) solid var(--linea-media)}
.cifras-3 .k:last-child{border-right:0}
.cifras-3 .k .l{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase}
.cifras-3 .k .v{font-family:var(--font-data); font-weight:700; font-size:var(--fs-42); letter-spacing:-.02em; line-height:1.05; color:var(--sombra)}
.cifras-3 .k .v.pos{color:var(--verde)}
.cifras-3 .k .v.neg{color:var(--rojo)}
.cifras-3 .k .s{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.1em; text-transform:uppercase; opacity:.7}
.cifras-banda{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:center; padding:16px var(--pad-seccion); border-bottom:var(--b-2) solid var(--tinta)}
.cifras-banda .k{display:flex; align-items:baseline; gap:10px; padding-right:26px; border-right:var(--b-1) solid var(--linea-media); margin-right:26px}
.cifras-banda .k:last-child{border-right:0; margin-right:0}
.cifras-banda .k .l{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.16em; text-transform:uppercase; opacity:.72}
.cifras-banda .k .v{font-family:var(--font-data); font-weight:700; font-size:var(--fs-18); letter-spacing:.02em}
.detalle{display:grid; grid-template-columns:minmax(0,1fr) 340px; border-bottom:var(--b-2) solid var(--tinta)}
.detalle .col{padding:24px var(--pad-seccion); display:flex; flex-direction:column; gap:12px}
.detalle .col + .col{border-left:var(--b-2) solid var(--tinta)}
.detalle .col .t{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase; opacity:.8}
.detalle .grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 44px; font-family:var(--font-data); font-size:var(--fs-13); letter-spacing:.06em}
.detalle .col.narrow{padding:24px 30px}

/* estilo */
.estilo{padding:30px var(--pad-seccion); border-bottom:var(--b-2) solid var(--tinta); display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:var(--sp-11); align-items:start}
.estilo .izq{display:flex; flex-direction:column; gap:12px}
.estilo .izq .t{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-24); letter-spacing:-.02em; text-transform:uppercase}
.estilo .izq .d{max-width:64ch; font-size:var(--fs-17); line-height:1.6; text-wrap:pretty}

/* curva + resumen */
.curva{padding:30px var(--pad-seccion) 34px; border-bottom:var(--b-2) solid var(--tinta); display:flex; flex-direction:column; gap:18px}
.curva .head{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:16px}
.curva .head .t{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-24); letter-spacing:-.02em; text-transform:uppercase}
.curva .head .s{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase; opacity:.72}
.curva .resumen{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:var(--b-2) solid var(--tinta); padding-top:18px}
.curva .resumen .k{display:flex; flex-direction:column; gap:6px; padding:0 24px; border-right:var(--b-1) solid var(--linea-media)}
.curva .resumen .k:first-child{padding-left:0}
.curva .resumen .k:last-child{border-right:0}
.curva .resumen .k .l{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.16em; text-transform:uppercase; opacity:.72}
.curva .resumen .k .v{font-family:var(--font-display); font-size:var(--fs-30); line-height:1}
.curva .resumen .k .s{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.1em; opacity:.7}

/* chart de ficha (calcado del mockup v4): overlays sobre el SVG. La máscara se
   ancla al final de la línea (right:-4px); debajo, el chip de equity, el badge
   circular ₿ (52px) y la cifra del listón. Numeración de jornadas bajo el eje. */
.curva .fc{position:relative; width:100%}
.curva .fc svg{width:100%; height:260px; display:block}
.curva .fc .fc-mask{position:absolute; right:-4px; top:8px; width:64px; height:64px; object-fit:contain; display:block; filter:var(--mask-grade) drop-shadow(var(--ds-sm))}
.curva .fc .fc-chip{position:absolute; right:0; top:78px; background:var(--capa); color:var(--crema); padding:4px 9px; font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.08em; font-variant-numeric:tabular-nums}
.curva .fc .fc-badge{position:absolute; right:-2px; top:121px; width:52px; height:52px; border-radius:50%; background:var(--sombra); color:var(--papel); display:flex; align-items:center; justify-content:center; font-family:var(--font-data); font-weight:700; font-size:var(--fs-26); line-height:1; box-shadow:var(--ds-sm)}
.curva .fc .fc-hold-val{position:absolute; right:0; top:177px; font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.08em; font-variant-numeric:tabular-nums; opacity:.75}
.curva .fc-days{display:grid; gap:0; font-family:var(--font-data); font-size:var(--fs-11); font-variant-numeric:tabular-nums; opacity:.7; text-align:center; padding:0 20px}

/* posición abierta */
.posicion{padding:30px var(--pad-seccion); border-bottom:var(--b-2) solid var(--tinta); display:flex; flex-direction:column; gap:16px}
.posicion .head{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:16px}
.posicion .head .t{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-24); letter-spacing:-.02em; text-transform:uppercase}
.posicion .head .latente{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.14em; text-transform:uppercase; opacity:.75}
.posicion .head .latente b{color:var(--sombra)}
.posicion .head .latente b.pos{color:var(--verde)}
.posicion .head .latente b.neg{color:var(--rojo)}
.pos-table{display:grid; grid-template-columns:78px 84px 108px 78px 84px 132px 104px 104px 112px minmax(0,1fr); gap:0 12px; align-items:center}
.pos-table.thead{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.12em; text-transform:uppercase; border-bottom:var(--b-2) solid var(--tinta); padding-bottom:9px; opacity:.72}
.pos-table.thead .r{text-align:right}
.pos-table.row{align-items:center; padding:14px 0; border-bottom:var(--b-1) solid var(--linea-media); font-family:var(--font-data); font-size:var(--fs-13)}
.pos-table.row .lado{justify-self:start; background:var(--azul); color:var(--crema); padding:4px 9px; font-weight:700; font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase}
.pos-table.row .activo{font-weight:700; letter-spacing:.1em}
.pos-table.row .r{text-align:right}
.pos-table .foot{grid-column:1 / -1; display:flex; justify-content:space-between; gap:16px; padding:12px 0; font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.08em; text-transform:uppercase; opacity:.8}
.pos-plan{margin:10px 0 14px; border-top:var(--b-1) solid var(--linea-suave); padding-top:10px; display:flex; flex-direction:column; gap:6px}
.pos-plan .bt{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.18em; text-transform:uppercase; color:var(--rojo); display:block}
.pos-plan .row{font-size:var(--fs-14); line-height:1.5; text-align:left}
.pos-plan .row b{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.08em; text-transform:uppercase; color:var(--sombra)}
.pos-total{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.08em; text-transform:uppercase; opacity:.8; margin-top:4px}
/* Variante .resumen (mockup, cierre de Operaciones recientes): valor operado +
   peajes a la izq., resultado realizado a la der., separados por un filete —
   distinta del .pos-total de una sola línea que usan Posición/Decisiones. */
.pos-total.resumen{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px;
  border-top:var(--b-2) solid var(--tinta); padding-top:16px; margin-top:8px; opacity:1;
  font-variant-numeric:tabular-nums;
}
.pos-total.resumen .izq{opacity:.72}

/* decisiones de la temporada (El Acta) */
.decisiones{padding:30px var(--pad-seccion); border-bottom:var(--b-2) solid var(--tinta); display:flex; flex-direction:column; gap:14px}
.decisiones .head{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:16px}
.decisiones .head .t{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-24); letter-spacing:-.02em; text-transform:uppercase}
.decisiones .head .s{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.14em; text-transform:uppercase; opacity:.72}
.decision{border-top:var(--b-2) solid var(--tinta)}
/* Variante tabla (Decisiones de la temporada): la fila ya cierra con
   .pos-table.row (border-bottom); el border-top de .decision duplicaba esa
   línea (hallazgo real 29-ago, "líneas dobles" en la ficha). Se apaga solo
   aquí — "Temporadas pasadas" sigue usando .decision suelto (sin tabla) y
   necesita su propio border-top. */
.decisiones .decision{border-top:0}
.decision summary{cursor:pointer; list-style:none; padding:16px 2px; display:flex; flex-wrap:wrap; gap:8px 18px; align-items:baseline}
.decision summary::-webkit-details-marker{display:none}
.decision summary .accion{font-family:var(--font-data); font-weight:700; font-size:var(--fs-13); letter-spacing:.14em; text-transform:uppercase}
.decision summary .activo{font-family:var(--font-data); font-weight:700; letter-spacing:.1em}
.decision summary .res{font-family:var(--font-data); font-weight:700}
.decision summary .extracto{font-family:var(--font-body); font-size:var(--fs-14); line-height:1.5; color:var(--tinta); flex:1 1 260px; opacity:.85}
.decision summary .jornada{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase; opacity:.7; white-space:nowrap}
.decision .error{padding:14px 2px; font-size:var(--fs-15); line-height:1.5; color:var(--rojo); text-align:left}
.decision .cuerpo{padding:0 2px 18px}
.decision .cuerpo .bloque{margin-top:12px}
.decision .cuerpo .bt{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase; opacity:.8; display:block; margin-bottom:6px}
.decision .cuerpo .prosa{font-family:var(--font-body); font-size:var(--fs-15); line-height:1.65; text-align:left; max-width:65ch}
.decision .cuerpo .obs{display:flex; flex-direction:column; gap:4px; margin-top:8px; font-size:var(--fs-14); line-height:1.5; text-align:left}
.decision .cuerpo .obs div::before{content:"— "}
.ficha-op{
  margin-top:12px; border:var(--b-2) solid var(--tinta); padding:12px 16px;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:8px 16px;
  font-family:var(--font-data); font-size:var(--fs-13);
}
.ficha-op .kv{display:flex; flex-direction:column; gap:2px}
.ficha-op .kv dt{font-family:var(--font-data); font-size:var(--fs-10); letter-spacing:.14em; text-transform:uppercase; opacity:.7}
.ficha-op .kv dd{font-weight:700}

/* operaciones recientes */
.recientes{padding:30px var(--pad-seccion); border-bottom:var(--b-2) solid var(--tinta); display:flex; flex-direction:column; gap:14px}
.recientes .head{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:16px}
.recientes .head .t{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-24); letter-spacing:-.02em; text-transform:uppercase}
.recientes .head .s{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.14em; text-transform:uppercase; opacity:.72}
/* Sin border-top propio: .pos-table.row ya cierra cada fila con su propio
   border-bottom — tenerlo aquí también duplicaba la línea (mismo hallazgo
   que en .decisiones .decision). Único uso de .reciente, no hace falta scope. */
.reciente summary{cursor:pointer; list-style:none; padding:14px 2px; display:flex; flex-wrap:wrap; gap:8px 18px; align-items:baseline}
.reciente summary::-webkit-details-marker{display:none}
.reciente .accion{font-family:var(--font-data); font-weight:700; font-size:var(--fs-13); letter-spacing:.14em; text-transform:uppercase}
.reciente .activo{font-family:var(--font-data); font-weight:700; letter-spacing:.1em}
.reciente .res{font-family:var(--font-data); font-weight:700}
.reciente .extracto{font-family:var(--font-body); font-size:var(--fs-14); line-height:1.5; flex:1 1 240px; opacity:.85}
.reciente .hora{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.12em; text-transform:uppercase; opacity:.7; white-space:nowrap}
.reciente .cuerpo{padding:0 2px 16px}
.reciente .cuerpo .prosa{font-family:var(--font-body); font-size:var(--fs-15); line-height:1.65; text-align:left; max-width:65ch}
.reciente .cuerpo .bt{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase; opacity:.8; display:block; margin:10px 0 4px}

/* Variante .tabla de .pos-table para Decisiones y Operaciones (mockup v4).
   Reutiliza el grid de .pos-table y sus celdas existentes (.chip, .activo,
   .res, .extracto, .hold, .jornada/.hora, .r); solo cambia las columnas. Última
   columna (26px) = .toggle, el indicador +/› del mockup. No toca el
   .decision/.reciente del cartel (Temporadas pasadas). */
.pos-table.tabla{grid-template-columns:106px 118px 118px 92px 90px minmax(0,1fr) 132px 26px; gap:0 14px}
.pos-table.tabla.acta{grid-template-columns:106px 118px 118px 92px 90px minmax(0,1fr) 88px 106px 26px}
summary.pos-table.tabla{display:grid; align-items:center}
.pos-table.tabla .row .res{font-weight:700}
.pos-table.tabla .row .chip{justify-self:start; padding:4px 9px; white-space:nowrap}
.pos-table.tabla .row .chip.pos{border-color:var(--verde); color:var(--verde)}
.pos-table.tabla .row .extracto{color:var(--tinta)}
.pos-table.tabla .row .hold{white-space:nowrap; font-variant-numeric:tabular-nums}
.pos-table.tabla .row .toggle{font-family:var(--font-data); font-weight:700; font-size:var(--fs-14); text-align:right; opacity:.6}
/* Hover de fila (mockup: style-hover="background:rgba(47,98,201,.06)"),
   reutilizando el token --hover-azul (ya existía en tokens.css, sin usar). */
.decision summary:hover, .reciente summary:hover{background:var(--hover-azul)}

/* Variante .ops de .pos-table.tabla, solo para Operaciones recientes: suma
   Entrada/Invalidación visibles en la fila (antes solo en el cuerpo
   desplegable). No afecta a Decisiones de la temporada
   (.pos-table.tabla.acta), que tiene su columna adicional Días hold. */
.pos-table.tabla.ops{grid-template-columns:90px 92px 92px 104px 104px 84px minmax(0,1fr) 120px 26px}

/* Acta: cuerpo a dos columnas (contenido + tarjeta Estado de la posición).
   La tarjeta reutiliza .stat-row (label/valor con borde punteado) y .chip. */
.decision .cuerpo .acta-detalle{display:grid; grid-template-columns:minmax(0,1fr) 304px; gap:36px; align-items:start; padding:6px 0 14px}
.decision .cuerpo .acta-detalle .bloque{border-top:var(--b-1) solid var(--linea-media); padding-top:14px; margin-top:8px}
/* El primer bloque no repite línea: la fila ya cerró con la suya (.pos-table.row)
   6-14px más arriba — dos líneas del mismo tono tan juntas leían como una
   sola raya doble (hallazgo real de Marina, 29-ago). */
.decision .cuerpo .acta-detalle .bloque:first-child{margin-top:0; border-top:0; padding-top:0}
.estado-posicion{border:var(--b-2) solid var(--tinta); padding:18px 20px; display:flex; flex-direction:column; gap:10px; font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.08em; text-transform:uppercase; font-variant-numeric:tabular-nums}
.estado-posicion .cab{display:flex; align-items:center; justify-content:space-between; gap:10px}
.estado-posicion .cab .t{font-weight:700; letter-spacing:.2em; font-size:var(--fs-11)}
.estado-posicion .cab .chip{background:var(--verde-claro); color:var(--crema); border-color:var(--verde-claro); padding:3px 8px; font-size:var(--fs-10)}
.estado-posicion .stat-row .v{font-weight:700}

/* citas */
.citas{padding:30px var(--pad-seccion); border-bottom:var(--b-2) solid var(--tinta); display:flex; flex-direction:column; gap:18px}
.citas .head .t{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-24); letter-spacing:-.02em; text-transform:uppercase}
.citas .head .s{font-family:var(--font-body); font-size:var(--fs-14); line-height:1.5; opacity:.75; max-width:60ch}
.cita-card{border-left:var(--b-4) solid var(--linea-fuerte); padding:4px 0 4px 20px; display:flex; flex-direction:column; gap:8px}
.cita-card.pos{border-left-color:var(--verde-claro)}
.cita-card .txt{font-style:italic; font-size:var(--fs-19); line-height:1.45; text-wrap:pretty}
.cita-card .meta{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.12em; text-transform:uppercase; opacity:.72}

/* historial */
.historial{padding:30px var(--pad-seccion); border-bottom:var(--b-2) solid var(--tinta); display:flex; flex-direction:column; gap:14px}
.historial .t{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-24); letter-spacing:-.02em; text-transform:uppercase}
.hist-table{display:grid; grid-template-columns:minmax(0,1fr) 140px 120px 120px 120px 120px; gap:0}
.hist-table.head{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase; border-bottom:var(--b-2) solid var(--tinta); padding-bottom:9px; opacity:.8}
.hist-table .row{display:contents}
.hist-table .cell{padding:13px 0; border-bottom:var(--b-1) solid var(--linea-suave); font-family:var(--font-data); font-size:var(--fs-13)}
/* Sin línea bajo la última fila: .historial ya cierra con su propio
   border-bottom de 2px justo después — duplicaba línea (mismo criterio que
   .decisiones .decision). Asume 6 columnas (ver grid-template-columns). */
.hist-table .cell:nth-last-child(-n+6){border-bottom:0}
.hist-table .r{text-align:right}

/* cómo se mide (FAQ) */
.como-mide{padding:30px var(--pad-seccion) 40px; display:flex; flex-direction:column; gap:18px}
.como-mide .t{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-24); letter-spacing:-.02em; text-transform:uppercase}
.como-mide .grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 44px}
.como-mide .faq{display:flex; flex-direction:column; gap:7px}
.como-mide .faq .q{font-family:var(--font-heading); font-weight:700; font-size:var(--fs-17); line-height:1.2}
.como-mide .faq .a{font-size:var(--fs-15); line-height:1.6; max-width:60ch}

/* ---------- rulebook / seasons / bell ---------- */
.rulebook{max-width:860px; margin:0 auto}
.rulebook .rule{font-size:var(--fs-16); line-height:1.6; margin-bottom:12px; text-align:left}
.rulebook .rule b{font-weight:700}
.rulebook h3{font-family:var(--font-heading); font-weight:800; font-size:var(--fs-20); margin:22px 0 10px}
.formula{border-top:var(--b-1) solid var(--linea-media); padding:12px 2px; margin-bottom:8px; display:grid; grid-template-columns:auto 1fr; gap:8px 16px; align-items:baseline}
.formula .fn{font-family:var(--font-data); font-size:var(--fs-14); color:var(--rojo); white-space:nowrap}
.formula .fd{font-family:var(--font-body); font-size:var(--fs-14); line-height:1.5; text-align:left}
.warn{border-left:var(--b-3) solid var(--naranja); padding:12px 16px; margin-bottom:10px; font-size:var(--fs-15); line-height:1.55; text-align:left}
.warn b{font-weight:700}
.card{border-top:var(--b-2) solid var(--tinta); border-bottom:var(--b-2) solid var(--tinta); max-width:680px; margin:24px auto; padding:24px 26px; text-align:left}
.card .c-kicker{font-family:var(--font-data); font-size:var(--fs-12); letter-spacing:.26em; text-transform:uppercase; color:var(--naranja)}
.card .c-title{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-30); line-height:1.05; margin-top:6px}
.card .c-dates{font-family:var(--font-data); font-size:var(--fs-13); opacity:.7; margin-top:10px; letter-spacing:.08em}
.card .c-body{font-size:var(--fs-16); margin-top:12px; line-height:1.6; text-align:left}
.card .c-note{font-size:var(--fs-13); opacity:.7; font-style:italic; margin-top:12px}

/* ---------- placeholder de máscara ---------- */
.mask-ph{background:var(--papel); border:var(--b-1) dashed var(--linea-fuerte); display:flex; align-items:center; justify-content:center; text-align:center; font-family:var(--font-data); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--sombra); border-radius:50%; overflow:hidden; padding:8px; line-height:1.3}

/* ---------- La Crónica (blog) ---------- */
.cronicas{display:flex; flex-direction:column}
.cronica-card{display:grid; grid-template-columns:296px minmax(0,1fr); gap:52px; align-items:center; padding:40px 0; border-bottom:var(--b-1) solid var(--linea-media); text-decoration:none; color:var(--tinta)}
.cronica-card:hover{background:color-mix(in srgb, var(--capa) 8%, transparent); color:var(--tinta)}
.cronica-cartel{position:relative; background:var(--bg); overflow:hidden; aspect-ratio:1/1.3; padding:18px 20px; display:flex; flex-direction:column; align-items:center; justify-content:space-between; text-align:center; border:var(--b-2) solid var(--tinta)}
.cronica-cartel .forma{position:absolute; left:50%; top:52%; width:240px; height:240px}
.cronica-cartel .forma.eco{background:var(--eco); transform:translate(calc(-50% + 9px), calc(-50% + 10px))}
.cronica-cartel .forma.capa{background:var(--capa); transform:translate(-50%, -50%)}
.cronica-cartel .forma.corte{display:none}
.cronica-cartel .top,.cronica-cartel .pie{position:relative; width:100%; display:flex; flex-direction:column; align-items:center; gap:7px}
.cronica-cartel .ribbon{font-size:var(--fs-10); line-height:1; letter-spacing:.4em}
.cronica-cartel .tipo{font-family:var(--font-data); font-weight:700; font-size:var(--fs-10); letter-spacing:.24em; text-transform:uppercase}
.cronica-cartel .centro{position:relative; display:flex; flex-direction:column; align-items:center; gap:2px}
.cronica-cartel .kj{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.26em; text-transform:uppercase}
.cronica-cartel .n{font-family:var(--font-display); font-size:clamp(64px,26vw,140px); line-height:.82; font-variant-numeric:tabular-nums}
.cronica-cartel .tema{font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase; text-align:center}
.cronica-cartel .sub{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.18em; text-transform:uppercase}
.cronica-card .cuerpo{position:relative; z-index:1; display:flex; flex-direction:column; gap:16px}
.cronica-card .meta{display:flex; flex-wrap:wrap; align-items:center; gap:12px; font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase}
.cronica-card .meta .chip{background:var(--capa); color:var(--crema); border-color:var(--capa); padding:5px 11px; font-weight:700}
.cronica-card .meta .dim{opacity:.72}
.cronica-card .titulo{position:relative; z-index:1; font-family:var(--font-heading); font-weight:900; font-size:clamp(28px,3.5vw,46px); line-height:1.05; letter-spacing:-.02em; text-transform:none; max-width:24ch; text-wrap:balance}
.cronica-card .titulo.titulo-veredicto{font-size:clamp(26px,3vw,38px)}
.cronica-card .extracto{max-width:60ch; font-size:var(--fs-19); line-height:1.55; text-wrap:pretty}
.cronica-card .leer{font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.18em; text-transform:uppercase; border-bottom:var(--b-3) solid var(--capa); padding-bottom:4px; align-self:flex-start}
.cronica-card .leer.dim{border-bottom-color:var(--linea-fuerte)}
.cronica-card .mascara-titulo{position:absolute; right:36px; top:104px; width:196px; height:196px; transform:translateY(-50%); object-fit:contain; pointer-events:none; z-index:0; filter:var(--mask-grade) drop-shadow(var(--ds-md))}
.cronicas-pie{display:flex; flex-wrap:wrap; align-items:center; gap:26px; padding-top:36px}

/* ---------- La Crónica · página de artículo (cronica/jornada-N.html) ---------- */
.articulo-bc{margin-bottom:34px}
.articulo{max-width:760px; margin-inline:auto; display:flex; flex-direction:column; gap:22px}
.articulo .articulo-cab{display:flex; flex-direction:column; gap:16px}
.articulo .articulo-cab .meta{display:flex; flex-wrap:wrap; align-items:center; gap:12px; font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase}
.articulo .articulo-cab .meta .chip{background:var(--capa); color:var(--crema); border-color:var(--capa); padding:5px 11px; font-weight:700}
.articulo .articulo-cab .meta .dim{opacity:.72}
.articulo-titulo{font-family:var(--font-heading); font-weight:900; font-size:clamp(32px,4.5vw,54px); line-height:1.05; letter-spacing:-.02em; text-transform:none; max-width:26ch; text-wrap:balance}
.articulo-extracto{max-width:60ch; font-size:var(--fs-19); line-height:1.55; text-wrap:pretty; opacity:.9}
.articulo-firma{display:flex; align-items:center; gap:12px; border-top:var(--b-2) solid var(--tinta); border-bottom:var(--b-1) solid var(--linea-media); padding:12px 0}
.articulo-firma .star{color:var(--rojo); font-size:var(--fs-18); line-height:1}
.articulo-firma .ribbon{font-size:var(--fs-12); line-height:1; letter-spacing:.4em; color:var(--amarillo)}
.articulo-firma .ks{font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.2em; text-transform:uppercase; opacity:.7}
.articulo .cuerpo{display:flex; flex-direction:column; gap:18px}
.articulo .cuerpo p{font-family:var(--font-body); font-size:var(--fs-18); line-height:1.65; max-width:65ch; text-wrap:pretty}
.articulo .cuerpo h2{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-26); letter-spacing:-.02em; text-transform:uppercase; margin-top:12px}
.articulo .cuerpo h3{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-22); letter-spacing:-.01em; text-transform:uppercase}
.articulo .cuerpo blockquote{border-left:var(--b-4) solid var(--capa); padding:4px 0 4px 18px; margin:6px 0; font-family:var(--font-body); font-size:var(--fs-19); line-height:1.55; font-style:italic; max-width:58ch; text-wrap:pretty}
.articulo .cuerpo blockquote cite{display:block; margin-top:10px; font-family:var(--font-data); font-style:normal; font-size:var(--fs-12); letter-spacing:.16em; text-transform:uppercase; opacity:.7}
.articulo .cuerpo ul{display:flex; flex-direction:column; gap:10px; padding-left:2px}
.articulo .cuerpo li{list-style:none; font-family:var(--font-body); font-size:var(--fs-18); line-height:1.55; max-width:65ch; text-wrap:pretty; padding-left:20px; position:relative}
.articulo .cuerpo li::before{content:"→"; position:absolute; left:0; font-family:var(--font-data); font-size:var(--fs-14); color:var(--capa)}
.articulo .cuerpo ol{display:flex; flex-direction:column; gap:10px; padding-left:26px}
.articulo .cuerpo ol li{list-style:decimal; padding-left:0}
.articulo .cuerpo ol li::before{content:none}
.articulo .datos{margin-top:6px; display:flex; flex-direction:column; gap:0}
.articulo .datos .stat-row .v{font-family:var(--font-data); font-variant-numeric:tabular-nums}

/* ---------- Al ruedo (banda CTA a combate en directo) ---------- */
.al-ruedo{background:var(--papel); color:var(--tinta); border-bottom:var(--b-2) solid var(--tinta)}
.al-ruedo .intro{display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center; max-width:70ch; margin-inline:auto; padding:clamp(40px,6vw,72px) var(--pad-seccion) clamp(30px,5vw,48px)}
.al-ruedo .intro .kicker{font-family:var(--font-data); font-weight:700; font-size:var(--fs-12); letter-spacing:.3em; text-transform:uppercase; opacity:.72}
.al-ruedo .intro h2{font-family:var(--font-display); font-size:clamp(48px,8vw,104px); line-height:.9; letter-spacing:.01em; text-transform:uppercase}
.al-ruedo .intro .prosa{font-family:var(--font-body); font-size:var(--fs-18); line-height:1.55; max-width:60ch; margin-inline:auto; text-wrap:pretty}
.al-ruedo .ring{position:relative; overflow:hidden; min-height:clamp(320px,54vw,520px); display:flex; align-items:center; justify-content:center; border-top:var(--b-2) solid var(--tinta); background:var(--tinta); color:var(--crema)}
.al-ruedo .ring .fondo{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0}
.al-ruedo .ring .velo{position:absolute; inset:0; background:var(--tinta); opacity:.5; z-index:1}
.al-ruedo .ring .arena{position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:0}
.al-ruedo .campana-lg{display:block; margin-bottom:10px; width:clamp(150px,24vw,300px); height:auto; transform-origin:50% 0%; animation:campana 3.4s ease-in-out infinite}
.al-ruedo .btn-al-ruedo{position:relative; z-index:3; display:inline-flex; align-items:center; gap:14px; background:var(--crema); color:var(--tinta); padding:16px 24px; border:var(--b-2) solid var(--tinta); font-family:var(--font-data); font-weight:700; font-size:var(--fs-13); letter-spacing:.16em; text-transform:uppercase; text-decoration:none; animation:al-ruedo-flicker .8s linear infinite}
.al-ruedo .btn-al-ruedo:hover{background:var(--rojo); color:var(--crema)}
.al-ruedo .btn-al-ruedo:hover span{box-shadow:inset 0 -3px 0 var(--tinta)}
.al-ruedo .btn-al-ruedo span{white-space:nowrap; padding-bottom:2px}
@keyframes campana{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}
@keyframes al-ruedo-flicker{0%,49.999%{background-color:var(--rojo);color:var(--crema)}50%,100%{background-color:var(--crema);color:var(--tinta)}}
@media(prefers-reduced-motion:reduce){.al-ruedo .campana-lg,.al-ruedo .btn-al-ruedo{animation:none}}

/* variantes móvil/desktop (ocultas por defecto; se alternan en media queries) */
.hero-cab .liga .liga-m{display:none}
.listones .liston .lab-m{display:none}
.listones .liston .nota-m{display:none}
.manifiesto .izq .prosa.p-movil{display:none}
.campana-final .cols .p-movil{display:none}
.quiniela .pie .pie-m{display:none}
.cartel .sec-sub .sub-m{display:none}
.cartel .roster-swipe{display:none}
.cambia .acordeon{display:none}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .hero-lider .stage{grid-template-columns:1fr; padding-top:var(--sp-5); text-align:center}
  .hero-lider .mask{margin-left:auto; margin-right:auto; width:min(360px,80vw); height:auto}
  .hero-lider .cita{margin-left:auto; margin-right:auto}
  .hero-lider .cta-row{justify-content:center}
  .banda{flex-direction:column; align-items:flex-start; gap:6px; padding:14px var(--pad-seccion)}
  .banda .estado{flex-direction:column; align-items:flex-start; gap:5px}
  .banda .estado .live{font-size:clamp(22px,3.4vw,28px); letter-spacing:.04em}
  .banda .estado .banda-jornada{font-size:var(--fs-11); letter-spacing:.1em; opacity:.75}
  .banda .meta{font-size:var(--fs-11); letter-spacing:.1em; opacity:.75; gap:16px}
  /* máscaras dispersas → rejilla 3×2 (como el mockup móvil) */
  .hero-arranque .masks{position:static; display:grid; grid-template-columns:repeat(3,1fr); gap:10px 4px; margin-top:4px}
  .hero-arranque .masks a, .hero-arranque .masks a:nth-child(n){position:static; width:auto; transform:none; margin:0}
  .hero-arranque .masks a:hover{transform:scale(1.06)}
  .hero-arranque .masks img{width:100%}
  .la-jornada{grid-template-columns:1fr; gap:var(--sp-6)}
  .combate .grid{grid-template-columns:1fr}
  .roster{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detalle{grid-template-columns:1fr}
  .detalle .col + .col{border-left:0; border-top:var(--b-2) solid var(--tinta)}
  .estilo{grid-template-columns:1fr; gap:var(--sp-6)}
  .veredicto .grid{grid-template-columns:1fr; gap:var(--sp-8)}
  .newsletter{grid-template-columns:1fr}
  .manifiesto{grid-template-columns:1fr; gap:32px}
  .pasos-4{grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px}
  /* la máscara solapada al título solo desde 980px (en anchos menores rompe el responsive) */
  .cronica-card .mascara-titulo{display:none}
  .decision .cuerpo .acta-detalle{grid-template-columns:1fr; gap:16px}
  .decision .cuerpo .acta-detalle .estado-posicion{max-width:none}
  /* hero-directo: cartel arriba, editorial debajo */
  .hero-directo .hd-grid{grid-template-columns:minmax(0,1fr); gap:var(--sp-8)}
  .hero-directo .hd-cartel{width:min(340px,80vw); margin-inline:auto}
  .hero-directo .hd-copy{text-align:center; min-width:0; max-width:100%}
  .hero-directo .hd-kicker,.hero-directo .hd-sub,.hero-directo .hd-prosa{margin-inline:auto; max-width:100%; overflow-wrap:anywhere}
  .hero-directo .hd-lider .nums{overflow-wrap:anywhere}
  .hero-directo .hd-ctas{justify-content:center}
  .hero-directo .hd-stats{grid-template-columns:repeat(2,1fr)}
  .hero-directo .hd-stats .k{border-bottom:var(--b-2) solid var(--tinta)}
  .hero-directo .hd-stats .k:nth-child(2n){border-right:0}
  .hero-directo .hd-stats .k:nth-child(n+3){border-bottom:0}
  .hero-directo .hd-strip{justify-content:center; text-align:center}
}
@media(max-width:640px){
  /* ---- topbar: marca 19px + hamburguesa details/summary ---- */
  .topbar{padding:14px 18px; gap:12px}
  .topbar .brand{font-size:var(--fs-19)}
  .topbar > .links{display:none}
  .topbar > .cta-suscribir{display:none}
  .topbar .nav-menu{display:block}
  .topbar .nav-menu summary{display:flex; flex-direction:column; gap:4px; width:22px}
  .topbar .nav-menu summary span{height:2px; background:var(--tinta); display:block}
  .topbar .nav-menu .links{display:flex; flex-direction:column; align-items:flex-start; gap:12px; margin-top:4px}
  .topbar .nav-menu .links a{opacity:.85; font-size:var(--fs-12)}
  .topbar .nav-menu .cta-suscribir{display:inline-block; margin-top:6px}

  /* ---- banda compacta ---- */
  .banda{padding:13px 18px; gap:6px}
  .banda .estado{gap:6px}
  .banda .estado .live{gap:9px; font-size:var(--fs-22); letter-spacing:.04em}
  .banda .estado .live .dot{width:10px; height:10px}
  .banda .estado .banda-jornada{display:none}
  .banda .estado .banda-jornada-m{display:block; font-family:var(--font-data); font-size:var(--fs-11); letter-spacing:.1em; text-transform:uppercase; opacity:.75}
  .banda .meta{display:none}

  /* ---- hero-lider (heredado) ---- */
  .hero-lider .nombre{font-size:clamp(56px,17vw,88px)}
  .hero-lider .retorno{font-size:var(--fs-44)}
  .hero-lider .stats{grid-template-columns:repeat(2,1fr); gap:14px}

  /* ---- hero-cab (compartida entre hero-arranque y hero-directo) ---- */
  .hero-cab{padding:13px 18px 11px; gap:6px}
  .hero-cab .presenta{font-size:var(--fs-10); letter-spacing:.3em}
  .hero-cab .liga{font-size:var(--fs-9); letter-spacing:.24em}
  .hero-cab .liga .liga-d{display:none}
  .hero-cab .liga .liga-m{display:inline}

  /* ---- hero-arranque ---- */
  .hero-arranque .stage{justify-content:flex-start; padding:26px 18px 22px; min-height:0; gap:14px}
  .hero-arranque .wordmark{font-size:var(--fs-70); line-height:.92; letter-spacing:-.02em; text-shadow:4px 4px 0 var(--papel)}
  .hero-arranque .sub{font-size:var(--fs-14); letter-spacing:.1em; line-height:1.5}
  .hero-arranque .sub .marcado{box-shadow:inset 0 -6px 0 var(--amarillo)}
  .hero-arranque .prosa{font-size:var(--fs-15); line-height:1.55}
  .hero-arranque .estrella{top:318px; width:344px; height:320px; transform:translate(calc(-50% - 6px)) rotate(-3deg)}
  .hero-arranque .estrella.eco{top:330px; transform:translateX(calc(-50% + 12px)) rotate(-3deg)}
  .hero-arranque .masks a:nth-child(1){transform:rotate(-6deg); order:1}
  .hero-arranque .masks a:nth-child(2){transform:rotate(5deg); order:2}
  .hero-arranque .masks a:nth-child(3){transform:rotate(-4deg); order:3}
  .hero-arranque .masks a:nth-child(4){transform:rotate(-5deg); order:5}
  .hero-arranque .masks a:nth-child(5){transform:rotate(6deg); order:4}
  .hero-arranque .masks a:nth-child(6){transform:rotate(4deg); order:6}
  .hero-arranque .masks .nm{font-size:var(--fs-16); line-height:1.1}
  .hero-arranque .masks .modelo{font-weight:700; font-size:var(--fs-10); letter-spacing:.12em; opacity:.85}
  .hero-arranque .stats{grid-template-columns:repeat(2,1fr)}
  .hero-arranque .stats .k{padding:13px 8px; gap:3px}
  .hero-arranque .stats .k:nth-child(2n){border-right:0}
  .hero-arranque .stats .k:nth-child(1), .hero-arranque .stats .k:nth-child(2){border-bottom:var(--b-2) solid var(--tinta)}
  .hero-arranque .stats .k .l{font-size:var(--fs-10); letter-spacing:.16em}
  .hero-arranque .stats .k .v{font-size:var(--fs-28)}
  .hero-arranque .cierre{padding:13px 18px; gap:12px; font-size:var(--fs-11); letter-spacing:.16em; border-bottom:var(--b-2) solid var(--tinta)}
  .hero-arranque .cierre .cierre-capital{display:none}
  .hero-arranque .cierre .urna-apuntados{display:none}
  .hero-arranque .cierre .urna-las{display:none}
  .hero-arranque .cierre .votar-d{display:none}
  .hero-arranque .cierre .votar-m{display:inline}

  /* ---- hero-directo (apilado) ---- */
  .hero-directo .estrella{top:26%; right:50%; transform:translateX(50%) rotate(-3deg); width:300px; height:280px}
  .hero-directo .estrella.eco{transform:translate(calc(-50% + 24px), 0) rotate(-3deg); top:30%}
  .hero-directo .hd-grid{padding:22px 18px 26px; gap:var(--sp-6)}
  .hero-directo .hd-cartel{width:100%; padding:14px 14px 0; transform:none}
  .hero-directo .hd-cartel:hover{transform:none; box-shadow:none}
  .hero-directo .hd-cartel .mask{width:min(180px,64%)}
  .hero-directo .hd-cartel .nombre{font-size:clamp(36px,13vw,50px)}
  .hero-directo .hd-cartel .retorno{font-size:clamp(26px,9vw,34px)}
  .hero-directo .hd-cartel .stats div b{font-size:var(--fs-18)}
  .hero-directo .hd-kicker{font-size:clamp(30px,10vw,40px)}
  .hero-directo .hd-lider .lidera{font-size:clamp(24px,8.6vw,34px)}
  .hero-directo .hd-stats .k{padding:13px 8px; gap:3px}
  .hero-directo .hd-stats .k .v{font-size:var(--fs-28)}
  .hero-directo .hd-strip{padding:13px 18px; gap:12px; font-size:var(--fs-10); letter-spacing:.16em}

  /* ---- manifiesto (apilado, 1 col) ---- */
  .manifiesto{grid-template-columns:1fr; gap:0; padding:0}
  .manifiesto .izq{padding:20px 18px; gap:12px; border-bottom:var(--b-2) solid var(--tinta)}
  .manifiesto .izq .star{color:var(--rojo); font-size:var(--fs-20)}
  .manifiesto .izq .kicker{font-size:var(--fs-10); letter-spacing:.22em}
  .manifiesto .izq .titulo{font-size:var(--fs-38); line-height:.94; letter-spacing:0}
  .manifiesto .izq .prosa{font-size:var(--fs-15); line-height:1.6}
  .manifiesto .izq .prosa.p1, .manifiesto .izq .prosa.p2{display:none}
  .manifiesto .izq .prosa.p-movil{display:block}
  .manifiesto .izq .pregunta{font-size:var(--fs-12); line-height:1.7; padding:12px 0}
  .manifiesto .correcciones{padding:20px 18px; gap:10px; border-bottom:var(--b-2) solid var(--tinta)}
  .manifiesto .correcciones .t{font-size:var(--fs-10)}
  .manifiesto .correcciones .fila{gap:11px; padding:11px 0}
  .manifiesto .correcciones .fila img{width:38px; height:38px}
  .manifiesto .correcciones .fila .disc{width:38px; height:38px; font-size:var(--fs-14)}
  .manifiesto .correcciones .fila .l1{font-size:var(--fs-10)}
  .manifiesto .correcciones .fine{display:none}

  /* ---- lo que cambia (acordeón) ---- */
  .cambia .sec-sub{display:none}
  .cambia .pasos-4{display:none}
  .cambia .acordeon{display:flex; flex-direction:column}
  .acordeon-item{border-top:var(--b-1) solid var(--linea-media)}
  .acordeon-item:last-child{border-bottom:var(--b-1) solid var(--linea-media)}
  .acordeon-item summary{display:flex; align-items:center; gap:10px; padding:12px 0; font-family:var(--font-data); font-weight:700; font-size:var(--fs-11); letter-spacing:.14em; text-transform:uppercase}
  .acordeon-item summary .n{font-family:var(--font-display); font-size:var(--fs-20); line-height:1; color:var(--rojo)}
  .acordeon-item summary .mas{margin-left:auto; opacity:.5}
  .acordeon-item .d{display:flex; flex-direction:column; gap:4px; padding:0 0 12px; font-family:var(--font-body); font-size:var(--fs-14); line-height:1.5; opacity:.85}

  /* ---- contra quién (grid 2×2) ---- */
  .contra .sec-sub{display:none}
  .listones{grid-template-columns:repeat(2,1fr)}
  .listones .liston{padding:12px 13px; gap:5px; border-right:var(--b-2) solid var(--tinta); border-bottom:var(--b-2) solid var(--tinta)}
  .listones .liston:nth-child(2n){border-right:0}
  .listones .liston:nth-child(n+3){border-bottom:0}
  .listones .liston .cab{font-size:var(--fs-10); letter-spacing:.14em; gap:8px}
  .listones .liston .disc.xs{width:20px; height:20px; font-size:var(--fs-11)}
  .listones .liston .disc.xs.ticker{font-size:7px}
  .listones .liston .v{font-size:var(--fs-24)}
  .listones .liston .nota{font-size:var(--fs-9)}
  .listones .liston .lab-d, .listones .liston .nota-d{display:none}
  .listones .liston .lab-m{display:inline}
  .listones .liston .nota-m{display:block}

  /* ---- cartel de salida (swipe horizontal) ---- */
  .cartel .roster{display:none}
  .cartel .roster-swipe{display:flex; gap:14px; overflow-x:auto; padding-bottom:6px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch}
  .cartel .sec-sub .sub-d{display:none}
  .cartel .sec-sub .sub-m{display:inline}

  /* ---- quiniela ---- */
  .quiniela{padding:22px 18px 24px; gap:18px}
  .quiniela .estrellas{font-size:var(--fs-20); letter-spacing:.28em; padding-bottom:11px}
  .quiniela .cab .estrellas:last-child{padding-top:11px; padding-bottom:0}
  .quiniela .titulo-wrap{padding:12px 6px 14px; gap:7px}
  .quiniela .kicker{font-size:var(--fs-10); letter-spacing:.26em}
  .quiniela h2{font-size:var(--fs-58); line-height:.9}
  .quiniela .pildora{padding:5px 11px; font-size:var(--fs-10); letter-spacing:.18em}
  .quiniela .estado-row .fine{font-size:var(--fs-10); letter-spacing:.14em}
  .quiniela .masks{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 10px; padding:0}
  .quiniela .masks .voto{margin-left:0!important; gap:7px}
  .quiniela .masks .voto:nth-child(1){transform:rotate(-6deg)}
  .quiniela .masks .voto:nth-child(2){transform:rotate(5deg)}
  .quiniela .masks .voto:nth-child(3){transform:rotate(-4deg)}
  .quiniela .masks .voto:nth-child(4){transform:rotate(7deg)}
  .quiniela .masks .voto:nth-child(5){transform:rotate(-5deg)}
  .quiniela .masks .voto:nth-child(6){transform:rotate(4deg)}
  .quiniela .masks img{width:126px; height:126px}
  .quiniela .masks .nm{font-size:var(--fs-11); letter-spacing:.14em}
  .quiniela .masks .votar{font-size:var(--fs-10); letter-spacing:.14em; padding:5px 12px}
  .quiniela .pasos{display:flex; flex-direction:column; gap:10px; border-top:var(--b-2) solid var(--hair-blanco-suave); border-bottom:0; padding-top:14px}
  .quiniela .paso{padding:0; gap:11px; border-right:0; border-bottom:0}
  .quiniela .paso .n{font-size:var(--fs-22)}
  .quiniela .paso .t{font-size:var(--fs-14); line-height:1.5}
  .quiniela .pie{flex-direction:column; align-items:flex-start; gap:0; border-top:var(--b-1) solid var(--hair-blanco-40); padding-top:12px; font-size:var(--fs-10); letter-spacing:.12em; opacity:.85}
  .quiniela .pie .pie-d{display:none}
  .quiniela .pie .pie-m{display:inline}

  /* ---- suscripción ---- */
  .newsletter{padding:22px 18px 24px; gap:13px}
  .newsletter .head-row{gap:10px}
  .newsletter .star{color:var(--rojo); font-size:var(--fs-20)}
  .newsletter .chip{padding:4px 10px; font-size:var(--fs-10); letter-spacing:.18em}
  .newsletter h3{font-size:var(--fs-42); line-height:.92; letter-spacing:0}
  .newsletter h3.heading{font-family:var(--font-heading); font-weight:900; font-size:var(--fs-24); line-height:1.05; letter-spacing:0}
  .newsletter .izq p{font-size:var(--fs-15); line-height:1.55}
  .newsletter .cuenta{display:none}
  .newsletter .form .campo{flex-direction:column}
  .newsletter .form .campo input{padding:13px 14px; font-size:var(--fs-13); letter-spacing:.06em; border-bottom:var(--b-2) solid var(--tinta)}
  .newsletter .form .campo button{width:100%; padding:14px; text-align:center; font-size:var(--fs-12); letter-spacing:.18em}
  .newsletter .form .fino{font-size:var(--fs-10); letter-spacing:.12em; gap:14px}

  /* ---- campana final / pie ---- */
  .campana-final{padding:20px 18px 24px; gap:14px}
  .campana-final .head{border-bottom:var(--b-2) solid var(--tinta); padding-bottom:12px; gap:0}
  .campana-final .head .t{font-size:var(--fs-26); line-height:1}
  .campana-final .head .s{display:none}
  .campana-final .cols{grid-template-columns:1fr; gap:0}
  .campana-final .cols .p1, .campana-final .cols .p2{display:none}
  .campana-final .cols .p-movil{display:block; font-size:var(--fs-14); line-height:1.6; opacity:.85}
  .campana-final .footer{font-size:var(--fs-9); letter-spacing:.12em; border-top:var(--b-1) solid var(--linea-media); padding-top:12px}

  /* ---- heredado (ficha / otras páginas) ---- */
  .roster{grid-template-columns:1fr}
  /* cartel (página propia, sección #cartel): en móvil los pósters no llenan el
     ancho — 2 columnas compactas en lugar de 1 columna gigante */
  #cartel .roster{grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px}
  .veredicto .pasos{grid-template-columns:1fr 1fr; gap:14px}
  .identidad{grid-template-columns:1fr}
  .identidad-cartel{border-right:0; border-bottom:var(--b-2) solid var(--tinta); padding:14px 16px 16px; gap:8px}
  .identidad-cartel .mask{height:250px}
  .identidad-cartel .nombre{font-size:clamp(44px,15vw,62px)}
  .identidad-cartel .ribbon{font-size:9px; letter-spacing:.36em}
  .identidad-cartel .cab .casta{font-size:var(--fs-10); letter-spacing:.22em}
  .identidad-cartel .apodo{font-size:var(--fs-10); letter-spacing:.16em}
  .identidad-copy{padding:24px 20px 22px; gap:14px}
  .identidad-copy .ret{font-size:clamp(56px,19vw,92px)}
  .breadcrumb{flex-direction:column; align-items:flex-start; gap:8px}
  .cifras-3{grid-template-columns:1fr}
  .cifras-3 .k{border-right:0; border-bottom:var(--b-1) solid var(--linea-media); padding:18px 22px}
  .cifras-banda{justify-content:flex-start; padding:14px 20px}
  .posicion{overflow-x:auto}
  .pos-table{min-width:780px}
  .curva .resumen{grid-template-columns:1fr}
  .curva .resumen .k{padding:12px 0; border-right:0; border-bottom:var(--b-1) solid var(--linea-media)}
  .cronica-card{grid-template-columns:1fr; gap:22px}
  .cronica-card .titulo{font-size:clamp(34px,10.5vw,48px)}
  .cronica-card .extracto{font-size:var(--fs-16)}
  .articulo{margin-inline:0; gap:18px}
  .articulo-titulo{font-size:clamp(34px,10.5vw,48px)}
  .articulo-extracto{font-size:var(--fs-16)}
  .articulo .cuerpo p{font-size:var(--fs-16); line-height:1.6; max-width:62ch}
  .articulo .cuerpo li{font-size:var(--fs-16)}
  .articulo .cuerpo blockquote{font-size:var(--fs-17)}
  .pasos-4{grid-template-columns:1fr}
  .tabla-scroll{overflow-x:auto}
  .al-ruedo .intro{padding:34px 18px 26px}
  .al-ruedo .intro h2{font-size:clamp(40px,14vw,62px)}
  .al-ruedo .ring{min-height:320px}
  .al-ruedo .campana-lg{width:clamp(120px,38vw,190px); margin-bottom:6px}
  .al-ruedo .btn-al-ruedo{flex-wrap:wrap; justify-content:center; gap:10px}
  /* combate: el ring se apila y el VS pasa a horizontal */
  .combate{padding:30px 18px 40px; gap:22px}
  .combate-ring{grid-template-columns:1fr; gap:16px}
  .vs-box{flex-direction:row; gap:12px; padding:2px 0}
  .vs-box .vs{font-size:var(--fs-44)}
  .contendiente .mask{width:min(150px,52%); height:150px}
  .contendiente .c-nombre{font-size:var(--fs-34)}
}
