#ov{
  --frame:clamp(8px,0.9vw,14px);
  --blue:#2B46E2; --blue-2:#33B6FF; --blue-lt:#ADE2FF; --blue-deep:#2840DB;
  --fg:#FFFFFF; --fg-60:rgba(255,255,255,.6); --fg-38:rgba(255,255,255,.38);
  --dsp:'Plus Jakarta Sans',ui-sans-serif,system-ui,sans-serif;
  --bdy:'Roboto',ui-sans-serif,system-ui,sans-serif;
  --ease:cubic-bezier(.26,1,.32,1);
}
#ov .k{font-family:var(--dsp);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
#ov{--sr:clamp(18px,1.8vw,28px)}
#ov .scene{position:fixed;inset:var(--frame);overflow:hidden;cursor:grab;
  border-radius:var(--sr);
  background-color:#2143E9}
/* El fondo es un foco de luz al centro —la referencia de dLocal— y no una
   apertura desde el borde superior. Las paradas salen de medir el original:
   el eje horizontal cae bastante más rápido que el vertical, de ahí la
   elipse angosta. Sigue en una capa propia para poder escalarla, y ahora
   crece desde su propio centro; el color plano de abajo queda fijo para
   que no haya un salto de tono al arrancar. */
#ov .scene::before{content:"";position:absolute;inset:0;z-index:0;
  pointer-events:none;transform-origin:78% 78%;border-radius:var(--sr);
  background-image:radial-gradient(45% 62% at 78% 78%,
    #4C6FF3 0%,#4869F2 18%,#4163F1 40%,#3A5AF0 62%,
    #3556F0 71%,#2B4BEC 86%,#2143E9 100%)}
body.rv-on #ov .scene::before{animation:sceneIn 1.15s var(--rve) both}
@keyframes sceneIn{
  from{opacity:0;transform:scale(1.12)}
  to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  #ov .scene::before{opacity:1;transform:none}
  body.rv-on #ov .scene::before{animation:none}}
{cursor:grabbing}
/* La trama del fondo: fichas redondeadas de 20 px con 2 px de aire y un
   radio apenas marcado, en cinco intensidades entre 0,4 y 2,6 % de blanco.
   La variación de tono es lo que impide que se lea como grilla: casi todas
   desaparecen y unas pocas agarran algo de luz. Mosaico de 16×16 (352 px)
   para que la repetición caiga fuera del ojo.

   El movimiento va por zonas, no por capas enteras: una base fija con el
   primer sorteo y encima tres manchas grandes con el segundo, cada una en
   su rincón y con su propio período (53, 71 y 97 s, sin múltiplos comunes).
   Cuando una mancha sube, las fichas de ese sector cambian de tono; las del
   resto no se enteran. Es lo que saca la sensación de que respira todo junto.

   Las cuatro capas se recortan con una máscara que abre un hueco en el
   centro: ahí la trama casi no existe, que es donde está la luz y donde
   vive el contenido. */
#ov{--texA:url("../../img/textures/texture-tiles-a.svg");
    --texB:url("../../img/textures/texture-tiles-b.svg");
    --tex-hole:radial-gradient(40% 52% at 48% 44%,
      rgba(0,0,0,.12) 0%,rgba(0,0,0,.45) 50%,#000 100%)}
/* ojo: una capa con máscara se compone aparte y se escapa del
   overflow:hidden redondeado de la escena —las esquinas quedaban en
   punta—, así que cada una tiene que traer su propio radio */
#ov .scene::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  border-radius:var(--sr);
  background-image:var(--texA);background-size:352px 352px;
  -webkit-mask-image:var(--tex-hole);mask-image:var(--tex-hole)}
#ov .tex-z{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;
  border-radius:var(--sr);
  background-image:var(--texB);background-size:352px 352px;
  animation:texZone 60s ease-in-out infinite alternate}
#ov .tex-z.z1{background-position:0 0;animation-duration:53s;animation-delay:-11s;
  -webkit-mask-image:radial-gradient(58% 64% at 15% 20%,#000 0%,transparent 74%),var(--tex-hole);
          mask-image:radial-gradient(58% 64% at 15% 20%,#000 0%,transparent 74%),var(--tex-hole);
  -webkit-mask-composite:source-in;mask-composite:intersect}
#ov .tex-z.z2{background-position:-97px 61px;animation-duration:71s;animation-delay:-38s;
  -webkit-mask-image:radial-gradient(54% 70% at 86% 36%,#000 0%,transparent 76%),var(--tex-hole);
          mask-image:radial-gradient(54% 70% at 86% 36%,#000 0%,transparent 76%),var(--tex-hole);
  -webkit-mask-composite:source-in;mask-composite:intersect}
#ov .tex-z.z3{background-position:143px -29px;animation-duration:97s;animation-delay:-64s;
  -webkit-mask-image:radial-gradient(66% 52% at 44% 96%,#000 0%,transparent 78%),var(--tex-hole);
          mask-image:radial-gradient(66% 52% at 44% 96%,#000 0%,transparent 78%),var(--tex-hole);
  -webkit-mask-composite:source-in;mask-composite:intersect}
@keyframes texZone{from{opacity:0}to{opacity:.85}}
@media(prefers-reduced-motion:reduce){
  #ov .tex-z{animation:none;opacity:.4}}
/* ── coverflow ── */
#ov .stage{position:absolute;inset:clamp(66px,7vh,96px) 0 clamp(28px,3vh,44px);z-index:10;display:grid;place-items:center;perspective:2600px}
#ov .deck{position:relative;width:100%;height:min(78vh,760px);transform-style:preserve-3d}
#ov .pane{position:absolute;left:50%;top:50%;width:clamp(190px,18vw,300px);height:100%;
  border-radius:18px;border:0;overflow:hidden;
  background:linear-gradient(150deg,rgba(255,255,255,.28),rgba(255,255,255,.09));
  backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  box-shadow:0 26px 60px rgba(20,42,190,.22);
  cursor:pointer;will-change:transform,opacity;transition:width .38s var(--ease),background .32s,box-shadow .38s}
#ov .pane.on{width:clamp(460px,44vw,680px);
  background:linear-gradient(150deg,rgba(255,255,255,.34),rgba(255,255,255,.14));
  box-shadow:0 34px 80px rgba(20,42,190,.3)}
#ov .pane .fig{position:absolute;inset:0;opacity:.72;transition:opacity .34s var(--ease)}
#ov .pane.on .fig{opacity:1}
#ov .pane .fig::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--card-a-52),rgba(7,13,56,.18) 44%,var(--card-b-92) 100%);mix-blend-mode:multiply}
#ov .pane .in{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(20px,2.1vw,34px);transition:padding .32s var(--ease)}
#ov .pane .pn{font-family:var(--dsp);font-size:11px;font-weight:700;letter-spacing:.18em;
  color:rgba(255,255,255,.76);transition:font-size .36s var(--ease),letter-spacing .36s var(--ease)}
#ov .pane.on:not(.intro) .pn{font-size:clamp(30px,3vw,46px);font-weight:800;letter-spacing:-.03em;
  line-height:1;color:rgba(255,255,255,.28)}
#ov .pane .pt{max-width:12ch;font-family:var(--dsp);font-size:clamp(17px,1.6vw,24px);font-weight:620;letter-spacing:-.04em;line-height:1.05;transition:opacity .28s var(--ease),font-size .36s var(--ease)}
#ov .pane.on .pt{font-size:clamp(34px,3.7vw,56px);letter-spacing:-.06em}
#ov .pane:not(.on) .pt{opacity:.72}
#ov .card-copy{display:flex;flex-direction:column;align-items:flex-start}
#ov .card-tag{display:block;margin-bottom:12px;font:700 8.5px var(--dsp);letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.62);opacity:0;transform:translateY(8px);transition:.26s var(--ease)}
#ov .card-desc{max-width:48ch;max-height:0;margin-top:0;overflow:hidden;font-size:clamp(13px,1.05vw,16px);line-height:1.55;color:rgba(255,255,255,.74);opacity:0;transform:translateY(8px);transition:max-height .36s var(--ease),margin .3s var(--ease),opacity .26s ease,transform .3s var(--ease)}
#ov .pane.on:not(.intro) .card-copy{margin-top:auto;padding-bottom:clamp(34px,3.4vw,58px)}
#ov .pane.on:not(.intro) .in{justify-content:flex-start}
#ov .pane.on:not(.intro) .card-foot{position:absolute;left:clamp(20px,2.1vw,34px);
  right:clamp(20px,2.1vw,34px);bottom:clamp(20px,2.1vw,34px);width:auto;margin-top:0}
#ov .card-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;margin-top:10px}
#ov .card-go{display:inline-flex;align-items:center;gap:15px;padding:8px 8px 8px 20px;border-radius:99px;background:#fff;color:#2B46E2;font:750 10px var(--dsp);letter-spacing:.12em;text-transform:uppercase;opacity:0;pointer-events:none;transform:translateY(8px);transition:.26s var(--ease)}
#ov .card-go i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#2B46E2;color:#fff;font-style:normal}
#ov .card-go:hover{transform:translateY(-2px)}
#ov .pane.on .card-tag,#ov .pane.on .card-desc,#ov .pane.on .card-go{opacity:1;transform:none}
#ov .pane.on .card-desc{max-height:140px;margin-top:16px}
#ov .pane.on .card-go{pointer-events:auto}
/* ── HUD ── */
#ov .mark{position:absolute;left:clamp(20px,3vw,44px);top:clamp(22px,3vw,40px);z-index:30;
  display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 9px;color:var(--fg-60)}
/* mismo armado que el header y la barra del capítulo: "The" arriba,
   "Local Code" abajo y el endoso apoyado en ese último renglón */
#ov .mark{--lg:clamp(18px,1.7vw,26px);align-items:flex-end;gap:calc(var(--lg)*.6)}
#ov .mark b{order:0;display:block;font-family:var(--dsp);font-size:var(--lg);
  font-weight:800;letter-spacing:-.045em;line-height:.9;color:#fff;white-space:nowrap}
#ov .mark b span{display:block}
#ov .mark b .t2{display:inline;font-style:normal;color:var(--blue-lt)}
#ov .mark em{order:1;font-style:normal;font-family:var(--dsp);
  font-size:calc(var(--lg)*.36);font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;line-height:1;margin-right:-.2em;
  position:relative;top:calc(var(--lg)*.045);color:var(--fg-38)}
#ov .mark img{order:2;display:block;width:calc(var(--lg)*2.9);height:auto;
  margin-left:0;margin-bottom:calc(var(--lg)*.04)}
#ov .arrows{position:absolute;left:clamp(18px,2.8vw,44px);right:clamp(18px,2.8vw,44px);top:50%;z-index:30;display:flex;justify-content:space-between;transform:translateY(-50%);pointer-events:none}
#ov .arrows button{display:grid;place-items:center;width:clamp(48px,4vw,58px);height:clamp(48px,4vw,58px);
  border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);font-size:15px;
  backdrop-filter:blur(10px);pointer-events:auto;transition:.24s var(--ease)}
#ov .arrows button:hover:not(:disabled){background:#fff;color:var(--blue);border-color:#fff}
#ov .hint{position:absolute;right:clamp(20px,3vw,44px);bottom:clamp(24px,3vw,42px);z-index:30;
  color:var(--fg-38);transition:opacity .5s}
#ov .hint.gone{opacity:0}
#ov .mark,#ov .arrows,#ov .hint{transition:opacity .34s ease}
/* ═══════════ variante: tarjetas blancas, tipografía azul ═══════════ */
#ov .pane,#ov .pane.on{background:#fff;color:var(--k);border:1px solid var(--k-14);
  backdrop-filter:none;-webkit-backdrop-filter:none}
#ov .pane{box-shadow:0 24px 56px rgba(8,16,58,.26)}
#ov .pane.on{box-shadow:0 34px 84px rgba(8,16,58,.36)}
#ov .pane .fig{display:none}
#ov .pane .pn{color:var(--k-58)}
#ov .pane.on:not(.intro) .pn{color:var(--k-14)}
#ov .card-tag{color:var(--k-58)}
#ov .card-desc{color:var(--k-72)}
#ov .card-go{background:var(--k);color:#fff}
#ov .card-go i{background:#fff;color:var(--k)}
/* ── ajustes v8: fondo más silencioso + animación azul apenas visible ── */
#ov .pane .fig{display:block;opacity:.42;transition:opacity .34s var(--ease)}
#ov .pane.on .fig{opacity:.6}
#ov .pane .fig::after{display:none}
#ov .pane:not(.on){box-shadow:0 12px 30px rgba(8,16,58,.12);border-color:var(--k-14)}
#ov .pane:not(.on) .pt{opacity:.5}
#ov .pane:not(.on) .pn{color:var(--k-28)}
@media(max-width:820px){#ov .deck{height:min(70vh,610px)}
#ov .pane{width:145px}
#ov .pane.on{width:min(82vw,390px)}
#ov .arrows{left:10px;right:10px}
#ov .arrows button{width:44px;height:44px;background:rgba(8,17,63,.48)}
#ov .mark,#ov .hint{display:none}}
#ov .card-go i{transition:transform .3s var(--ease)}
@keyframes goNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
#ov .scene{transition:right .5s var(--ease)}
/* ═══════════ 5 · carátula fija + tarjetas pasando a la derecha ═══════════ */
#ov .mark{display:none}
#ov .arrows{display:none}
#ov .stage{inset:clamp(26px,3.1vh,44px) 0 clamp(42px,4.9vh,72px) clamp(320px,32vw,492px)}
#ov .deck{height:min(82vh,840px)}
#ov .pane{width:clamp(146px,12.5vw,215px)}
#ov .pane.on{width:clamp(360px,32.5vw,530px)}

/* referencia siempre a mano, abajo a la derecha, debajo de la pista de scroll */
#ov .ov-foot{position:absolute;right:clamp(20px,3vw,44px);bottom:clamp(14px,1.8vw,24px);
  z-index:32;display:flex;align-items:center;gap:14px;opacity:0;
  font-family:var(--dsp);font-size:11.5px;font-weight:600;letter-spacing:.01em;
  color:rgba(255,255,255,.5);transition:opacity .34s ease}
#ov .ov-foot a{transition:color .22s var(--ease)}
#ov .ov-foot a:hover{color:#fff}
#ov .ov-foot s{width:1px;height:11px;background:rgba(255,255,255,.24);text-decoration:none}
body.rv-on #ov .ov-foot{opacity:1}
@media(max-width:820px){#ov .ov-foot{bottom:14px;right:16px;font-size:10.5px}}
#ov .pane.on:not(.intro) .card-copy{padding-bottom:clamp(60px,5.8vw,96px)}
#ov .card-foot{justify-content:flex-start}
/* el velo de la portada tapa la trama del fondo, así que la vuelve a
   poner encima: si no, la columna del logotipo quedaba lisa */
#ov .cover-bg{position:absolute;left:0;top:0;bottom:0;z-index:105;pointer-events:none;
  border-radius:var(--sr) 0 0 var(--sr);
  width:clamp(450px,47vw,735px);
  background-image:linear-gradient(90deg,rgba(22,48,200,.97) 0%,rgba(22,48,200,.93) 58%,rgba(22,48,200,0) 100%)}
/* el velo tapa la trama del fondo, así que la repone encima. Va en su
   propia capa para poder apagarla hacia la derecha, que es donde el velo
   termina y empieza el centro de la pantalla */
#ov .cover-bg::after{content:"";position:absolute;inset:0;pointer-events:none;
  border-radius:var(--sr) 0 0 var(--sr);
  background-image:var(--texA);background-size:352px 352px;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 26%,transparent 88%);
          mask-image:linear-gradient(90deg,#000 0%,#000 26%,transparent 88%)}
#ov .cover{position:absolute;left:clamp(34px,4.4vw,82px);top:clamp(26px,3.2vw,50px);bottom:clamp(22px,2.8vw,44px);
  width:clamp(310px,33vw,500px);z-index:110;display:flex;flex-direction:column;justify-content:center}
#ov .cover-title{font-family:var(--dsp);font-size:clamp(52px,5.6vw,102px);font-weight:800;
  line-height:.83;letter-spacing:-.066em}
/* El titular de la portada va por keyframes, no por transición. Una
   transición sólo arranca si el navegador ya pintó el estado inicial, y
   acá la carátula pasa de visibility:hidden a visible en el mismo cuadro
   en que se le pide entrar: el "antes" nunca llegaba a existir y el
   titular aparecía puesto. La animación no depende de eso.
   El recorrido también es mayor: 12 px se pierden en un cuerpo de 100 px. */
#ov .cover-title.rv-rise{opacity:0;transform:translateY(30px)}
#ov .cover-title.rv-rise.in{animation:covTitleIn 1.05s var(--rve) var(--b,0ms) both}
@keyframes covTitleIn{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  #ov .cover-title.rv-rise{opacity:1;transform:none}
  #ov .cover-title.rv-rise.in{animation:none}}
/* La portada usa el logotipo original, con bajada y endoso. El font-size
   del h1 sigue siendo la unidad de escala: 4.05em de alto deja "The local
   code" en 2.38em, el mismo cuerpo que tenía armado con texto, así que
   todos los breakpoints que ya ajustaban el título siguen valiendo.
   inline-block para que el text-align:center del layout móvil lo centre. */
#ov .cover-mark{display:inline-block;vertical-align:top;margin-left:-.125em;
  height:3.09em;width:auto;max-width:100%}
#ov .cover-mark .lc-ink{fill:var(--lc-ink,#fff)}
#ov .cover-mark .lc-alt{fill:var(--lc-alt,#B8E1FC)}
/* La entrada dejó de ser un bloque: sube letra por letra. El escalonado
   dentro del renglón es corto (28 ms) y el salto entre renglones más
   largo (100 ms), así se lee "The / local / code" en ese orden y no como
   doce piezas sueltas; bajada y endoso cierran. El desplazamiento va en
   unidades del viewBox, o sea que escala solo con el logotipo. --b es el
   retardo general que ya fijaba el script; --d, el propio de cada letra. */
#ov .cover-title.rv-rise{opacity:1;transform:none}
#ov .cover-title.rv-rise.in{animation:none}
#ov .cover-mark .lc-g{opacity:0;transform:translateY(44px)}
#ov .cover-title.in .lc-g{animation:lcGlyphIn .58s var(--rve) both;
  animation-delay:calc(var(--b,0ms) + var(--d,0ms))}
@keyframes lcGlyphIn{
  from{opacity:0;transform:translateY(44px)}
  to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  #ov .cover-mark .lc-g{opacity:1;transform:none}
  #ov .cover-title.in .lc-g{animation:none}}
/* una sola medida para la columna: la bajada fija el ancho (los 46ch que
   tenía, resueltos a mano para que el índice pueda usar el mismo número)
   y el índice y su línea se cuelgan de ahí */
#ov .cover{--lead-fs:clamp(13.5px,1vw,16px);--measure:calc(var(--lead-fs) * 27)}
#ov .cover-lead{max-width:var(--measure);margin-top:clamp(28px,3.2vw,42px);font-size:var(--lead-fs);
  line-height:1.6;color:rgba(255,255,255,.7)}
/* el cierre de la bajada, en negrita e itálica: sube también de opacidad,
   si no la negrita sobre azul se lee más apagada que la redonda */
#ov .cover-lead b{font-weight:700;color:rgba(255,255,255,.94)}
#ov .cover-lead i{font-style:italic}
/* El "by" se alinea por línea base con el logo, no por centro de caja:
   es todo mayúsculas y el logo es casi toda minúscula, así que centrar
   las cajas dejaba el "by" flotando sobre la altura de x de "local".
   El margen negativo compensa el letter-spacing, que también se aplica
   después de la última letra y abría un hueco fantasma. */
/* la línea no puede estar puesta antes que el índice: se dibuja de
   izquierda a derecha justo cuando empiezan a entrar los renglones */
#ov .cover-index{position:relative;align-self:flex-start;width:min(100%,var(--measure));
  margin-top:clamp(34px,4.4vh,54px);
  padding-top:clamp(24px,3.2vh,38px)}
#ov .cover-index::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:rgba(255,255,255,.26);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .95s var(--rve)}
#ov .cover-index.rule-in::before{transform:none}
/* el índice se arma en dos columnas que miden lo que mide su texto: así el
   bloque encoge hasta el contenido y la línea de arriba deja de sobrar */
#ov .cover-index ol{list-style:none;display:grid;grid-auto-flow:column;
  grid-template-rows:repeat(3,auto);grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(11px,1.1vw,18px)}
#ov .cover-index li{break-inside:avoid}
#ov .cover-index button{display:flex;align-items:baseline;gap:9px;width:100%;padding:clamp(4px,.6vh,7px) 0;
  color:rgba(255,255,255,.58);transition:color .24s var(--ease)}
#ov .cover-index em{font-style:normal;font-family:var(--dsp);font-size:9px;font-weight:700;
  letter-spacing:.12em;color:rgba(255,255,255,.36);transition:color .24s var(--ease)}
#ov .cover-index b{font-family:var(--dsp);font-size:clamp(11.5px,.92vw,13.5px);font-weight:500;
  letter-spacing:-.02em;white-space:nowrap;color:currentColor}
#ov .cover-index button:hover{color:#fff}
#ov .cover-index button.on{color:#fff}
#ov .cover-index button.on em{color:var(--blue-2)}
@media(max-width:1080px){#ov .cover-index ol{grid-auto-flow:row;grid-template-rows:none}
#ov .cover{width:clamp(240px,32vw,320px)}
#ov .stage{inset:34px 0 34px clamp(295px,40vw,400px)}
#ov .cover-bg{width:clamp(330px,46vw,460px)}}
@media(max-width:820px){#ov .cover{position:static;width:auto;height:auto;padding:clamp(18px,4vw,26px) clamp(18px,4vw,26px) 0}
#ov .cover-bg{display:none}
#ov .cover-index{display:none}
#ov .cover-title{font-size:clamp(40px,12vw,64px)}
#ov .cover-lead{display:none}
#ov .stage{inset:auto 0 20px 0;top:38vh}
#ov .deck{height:min(56vh,460px)}
#ov .pane{width:132px}
#ov .pane.on{width:min(74vw,320px)}}
/* ══════════════════════════════════════════════════════════════════
   v11 · CADA TARJETA ES UN PÓSTER
   Tres recetas tomadas de la referencia:
     geo   — papel claro + retícula de círculos con foto recortada
     plain — fondo liso + racimo de círculos en contorno
     photo — foto a sangre + marca sólida calada
   Sistema compartido: círculos que se tocan, cortados por diámetros
   y arcos. Cambia el par fondo/acento en cada capítulo.
   ══════════════════════════════════════════════════════════════════ */
#ov .pane{--pad:clamp(22px,2.5vw,40px)}
#ov .pane,#ov .pane.on{
  background:var(--bg);color:var(--ink);border:0;border-radius:14px;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  box-shadow:0 16px 40px rgba(4,10,44,.34)}
#ov .pane.on{box-shadow:0 34px 88px rgba(4,10,44,.46)}
#ov .pane:not(.on){box-shadow:0 12px 30px rgba(4,10,44,.26)}
/* ── zona gráfica ── */
#ov .pane .fig{display:block;position:absolute;inset:0;opacity:1;overflow:hidden}
#ov .pane .fig::after{display:none}
#ov .pane.on .fig{opacity:1}
#ov .art{position:absolute;display:block;overflow:visible}
#ov .art-bg{position:absolute;inset:0;width:100%;height:100%}
/* el posicionamiento del arte vive en el bloque v12 */
#ov .pane[data-style="plain"] .art-bg{opacity:.9}
/* photo — la marca sólida flota sobre la foto */
#ov .pane[data-style="photo"] .fig::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(4,10,30,.55) 0%,rgba(4,10,30,.08) 30%,rgba(4,10,30,.62) 62%,rgba(4,10,30,.93) 100%)}
/* ── tipografía y bloques del póster ── */
#ov .pane .in{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
  justify-content:space-between;padding:var(--pad)}
#ov .card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
#ov .pane[data-style="photo"] .pn{filter:drop-shadow(0 1px 6px rgba(0,0,0,.55))}
#ov .pane .pn,#ov .pane:not(.on) .pn,#ov .pane.on:not(.intro) .pn{
  font-family:var(--dsp);font-size:9.5px;font-weight:700;letter-spacing:.2em;
  line-height:1;color:var(--ink-45)}
#ov .card-copy{display:flex;flex-direction:column;align-items:flex-start;margin-top:auto}
#ov .pane.on:not(.intro) .card-copy{margin-top:auto;padding-bottom:clamp(44px,5vw,82px)}
#ov .pane .card-tag{display:block;margin-bottom:clamp(9px,1vw,14px);
  font:700 8.5px var(--dsp);letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-45);opacity:1;transform:none}
#ov .pane .pt{max-width:14ch;font-family:var(--dsp);font-weight:700;
  font-size:clamp(15px,1.45vw,20px);line-height:1.02;letter-spacing:-.02em;
  text-transform:uppercase;color:var(--ink);opacity:1}
#ov .pane.on .pt{font-size:clamp(27px,2.85vw,42px);letter-spacing:-.028em;line-height:.98;max-width:13ch}
#ov .pane:not(.on) .pt{opacity:.9}
#ov .pane .card-desc{max-width:44ch;color:var(--ink-70);
  font-size:clamp(12px,.95vw,14.5px);line-height:1.5}
#ov .pane.on .card-desc{max-height:120px;margin-top:clamp(12px,1.2vw,18px)}
#ov .card-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;
  width:100%;margin-top:clamp(14px,1.5vw,22px)}
#ov .pane.on:not(.intro) .card-foot{position:static;left:auto;right:auto;bottom:auto;
  width:100%;margin-top:clamp(14px,1.5vw,22px)}
#ov .pane .card-go{background:var(--acc);color:var(--bg);
  font:750 10px var(--dsp);letter-spacing:.12em}
#ov .pane .card-go i{background:var(--bg);color:var(--acc)}
/* colapsada: sólo marca, número y titular — como un póster mirado de lejos */
#ov .pane:not(.on) .card-desc{max-height:0;margin-top:0;opacity:0}
#ov .pane:not(.on) .card-foot{margin-top:clamp(12px,1.2vw,18px)}
@media(max-width:820px){#ov .pane .pt{font-size:clamp(13px,3.6vw,17px)}
#ov .pane.on .pt{font-size:clamp(22px,5.8vw,30px)}
#ov .pane[data-style="plain"] .art{top:36%;right:auto;height:34%;width:auto;aspect-ratio:4/3}
#ov .pane .card-desc{font-size:12.5px}
#ov .pane.on .card-desc{max-height:96px}}
/* ── número de capítulo ── */
#ov .pane .pn,#ov .pane:not(.on) .pn,#ov .pane.on:not(.intro) .pn{
  font-family:var(--dsp);font-weight:700;letter-spacing:-.02em;line-height:1;
  font-size:clamp(15px,1.35vw,19px);color:var(--ink);opacity:.5}
#ov .pane.on .pn,#ov .pane.on:not(.intro) .pn{font-size:clamp(22px,2.1vw,30px);opacity:.55}
/* ── titular en caja alta y baja ── */
#ov .pane .pt{text-transform:none;font-weight:700;letter-spacing:-.035em;
  font-size:clamp(16px,1.55vw,21px);line-height:1.02;max-width:13ch}
#ov .pane.on .pt{font-size:clamp(29px,3.05vw,45px);letter-spacing:-.045em;line-height:.97;max-width:12ch}
#ov .pane[data-style="plain"] .art{
  left:var(--pad);right:auto;width:calc(100% - var(--pad)*2);bottom:auto;
  aspect-ratio:auto;transform:none}
#ov .pane[data-style="plain"] .art{top:18%;height:38%}
#ov .pane.on[data-style="plain"] .art{top:16%;height:41%}
@media(max-width:820px){#ov .pane .pt{font-size:clamp(14px,3.8vw,18px)}
#ov .pane.on .pt{font-size:clamp(23px,6vw,31px)}
#ov .pane.on .pn{font-size:20px}
#ov .pane[data-style="plain"] .art,#ov .pane.on[data-style="plain"] .art{top:14%;height:26%}}
/* ══════════════════════════════════════════════════════════════════
   v13 · COVERFLOW DE PÓSTERS  (ref. Obscura)
   1. Todas las tarjetas comparten proporción y tamaño real. La del
      frente no ensancha: sólo cambia la escala. Nada de animar `width`
      (eso disparaba reflow en cada paso); el movimiento es 100% transform.
   2. Perspectiva más corta y giro mucho más grande: la vecina se ve
      de canto y las lejanas muestran el dorso espejado, como en la ref.
   3. Muelle real, integrado en tiempo — ver POS en el script.
   ══════════════════════════════════════════════════════════════════ */
#ov .stage{perspective:1450px;perspective-origin:50% 50%}
#ov .deck{height:min(84vh,860px)}
#ov .pane,#ov .pane.on{
  width:clamp(186px,min(31.5vw,50vh),430px);height:auto;aspect-ratio:71/100;
  border-radius:12px;transform-origin:50% 50%;
  backface-visibility:visible;-webkit-backface-visibility:visible;
  will-change:transform,opacity;
  transition:box-shadow .4s var(--ease);
  box-shadow:0 16px 44px rgba(4,10,44,.26)}
#ov .pane.on{box-shadow:0 42px 96px rgba(4,10,44,.44)}
#ov .pane:not(.on){box-shadow:0 14px 34px rgba(4,10,44,.22)}
/* ── una sola tipografía para todas: la escala hace el resto ── */
#ov .pane .pn,#ov .pane:not(.on) .pn,#ov .pane.on .pn,#ov .pane.on:not(.intro) .pn{
  font-size:clamp(19px,1.85vw,27px);opacity:.5}
#ov .pane .pt,#ov .pane:not(.on) .pt,#ov .pane.on .pt{
  font-size:clamp(26px,2.65vw,40px);letter-spacing:-.045em;line-height:.97;
  max-width:12ch;opacity:1}
#ov .pane .card-tag{margin-bottom:clamp(10px,1.1vw,16px)}
#ov .pane .card-copy,#ov .pane.on:not(.intro) .card-copy{margin-top:auto;padding-bottom:0}
#ov .pane[data-style="plain"] .art,#ov .pane.on[data-style="plain"] .art{top:16%;height:41%}
/* bajada y botón: aparecen por opacidad, sin mover la caja (cero reflow) */
#ov .pane .card-desc,#ov .pane:not(.on) .card-desc,#ov .pane.on .card-desc{
  max-height:none;margin-top:clamp(10px,1.1vw,16px);
  opacity:0;transform:none;transition:opacity .32s var(--ease)}
#ov .pane.on .card-desc{opacity:1}
#ov .pane .card-go,#ov .pane:not(.on) .card-go{opacity:0;transform:none;pointer-events:none}
#ov .pane.on .card-go{opacity:1;pointer-events:auto}
#ov .pane:not(.on) .card-foot{margin-top:clamp(14px,1.5vw,22px)}
@media(max-width:820px){#ov .stage{inset:auto 0 18px 0;top:30vh}
#ov .deck{height:min(64vh,540px)}
#ov .pane,#ov .pane.on{width:min(62vw,286px)}
#ov .pane .pt,#ov .pane.on .pt{font-size:clamp(20px,5.4vw,26px)}
#ov .pane .pn,#ov .pane.on .pn{font-size:17px}}
#ov .cover-index em{font-size:11px!important;color:rgba(255,255,255,.45);min-width:1.6em}
#ov .card-go{font-family:"Plus Jakarta Sans dLocal","Plus Jakarta Sans",sans-serif!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.2em!important;line-height:1.2!important}
#ov .card-go{letter-spacing:.1em!important}
/* "by dLocal" ya no se corta por abajo al entrar: el svg deja ver lo que sube desde fuera del viewBox,
   y esa última línea entra con fundido y un desplazamiento corto */
#ov .cover-mark{overflow:visible}
#ov .cover-mark .lc-g:last-of-type{transform:translateY(14px)}
#ov .cover-title.in .lc-g:last-of-type{animation-name:lcByIn}
@keyframes lcByIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
/* entrada del logotipo (The local code by dLocal) más lenta */
#ov .cover-title.in .lc-g{animation-duration:1.2s!important;animation-delay:calc(var(--b,0ms) + var(--d,0ms) * 2.2)!important}
/* títulos de las tarjetas con el mismo tracking que el resto de los headings (-0.04em) */
#ov .pane .pt,#ov .pane.on .pt{letter-spacing:-.04em!important}
/* logo nuevo de la portada (con "Analysis & insights from markets of the future"): misma altura de letra que el anterior */
#ov .cover-mark.cover-mark2{height:calc(3.09em * 811 / 619)}


/* flechas ocultas hasta que el mazo terminó de entrar (las muestra 04-reveal.js) */
html:not(.ov-arrows-on) #ov .arrows{opacity:0!important;pointer-events:none}
#ov .arrows{transition:opacity .6s ease}

/* línea separatoria entre el bloque del logo y la descripción */
#ov .cover-lead::before{content:"";display:block;height:1px;width:100%;
  background:rgba(255,255,255,.28);margin-bottom:clamp(22px,2.6vw,34px)}

/* después del loader: textos de la portada sin animación de entrada */
html.ov-quick #ov .cover-title,html.ov-quick #ov .cover-mark .lc-g{opacity:1!important;transform:none!important;animation:none!important}
html.ov-quick body.rv-on #ov .scene::before{animation:none!important}
@media(min-width:821px){html.ov-quick body.rv-on #ov .stage{animation:none!important}}
/* mobile: el mazo entra suave desde abajo, enseguida después del loader */
@media(max-width:820px){html.ov-quick body.rv-on #ov .stage{animation:ovStageIn 1s cubic-bezier(.16,1,.3,1) .3s both!important}}
html.ov-quick #ov .arrows{transition:opacity .7s ease}

/* toda la tarjeta es clickeable */
.deck .pane{cursor:pointer}
.scene.drag .pane{cursor:grabbing}

/* índice de portada: 7 capítulos en dos columnas (4 + 3) */
#ov .cover-index ol{grid-template-rows:repeat(4,auto)!important;grid-template-columns:repeat(2,max-content)!important;column-gap:clamp(22px,2.4vw,40px)!important}
@media(max-width:1080px){#ov .cover-index ol{grid-auto-flow:row!important;grid-template-rows:none!important}}
#ov .cover-index em{display:none!important}
#ov .cover-index button{gap:0!important}
#ov .cover-index{margin-top:clamp(14px,2vh,24px)!important;padding-top:clamp(12px,1.8vh,20px)!important}
@media(min-width:821px){#ov .cover-title{font-size:clamp(44px,4.6vw,84px)!important}}
/* línea entre descripción e índice (en vez de entre logo y descripción) */
#ov .cover-lead::before{display:none!important}
#ov .cover-index{margin-top:clamp(26px,3.4vh,40px)!important;padding-top:clamp(20px,2.8vh,30px)!important}
#ov .cover-index::before{transform:none!important;background:rgba(255,255,255,.28)!important}
/* índice: filas con línea fina y flecha al final */
#ov .cover-index{padding-top:clamp(26px,3.4vh,38px)!important}
#ov .cover-index ol{grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:clamp(20px,2.2vw,34px)!important}
#ov .cover-index button{justify-content:space-between;align-items:center;padding:clamp(8px,1.1vh,11px) 0!important;border-bottom:1px solid rgba(255,255,255,.14);transition:color .24s var(--ease),border-color .24s var(--ease)}
#ov .cover-index button::after{content:"\2197";font-size:12px;line-height:1;opacity:.4;transition:opacity .24s var(--ease),transform .24s var(--ease)}
#ov .cover-index button:hover,#ov .cover-index button.on{border-bottom-color:rgba(255,255,255,.5)}
#ov .cover-index button:hover::after,#ov .cover-index button.on::after{opacity:1;transform:translate(2px,-2px)}
/* índice: sin líneas, flecha pegada al nombre */
#ov .cover-index button{justify-content:flex-start!important;gap:8px!important;border-bottom:0!important;padding:clamp(5px,.8vh,8px) 0!important}
#ov .cover-index ol{grid-template-columns:repeat(2,max-content)!important;column-gap:clamp(28px,3vw,48px)!important}
/* índice: lista vertical con riel a la izquierda y marcador del capítulo activo */
#ov .cover-index ol{display:block!important;position:relative;margin:0;padding:2px 0 2px 18px!important;border-left:1px solid rgba(255,255,255,.22)}
#ov .cover-index li{position:relative}
#ov .cover-index button{width:auto!important;justify-content:flex-start!important;gap:0!important;padding:clamp(3px,.55vh,6px) 0!important;border:0!important;border-radius:0;background:none!important;color:rgba(255,255,255,.6)}
#ov .cover-index button::after{display:none!important}
#ov .cover-index button::before{content:"";position:absolute;left:-20px;top:22%;bottom:22%;width:3px;border-radius:2px;background:#9FE3FF;transform:scaleY(0);transition:transform .3s var(--ease)}
#ov .cover-index b{font-size:clamp(12.5px,.95vw,14.5px)!important;letter-spacing:-.015em}
#ov .cover-index button:hover{color:#fff}
#ov .cover-index button.on{color:#fff}
#ov .cover-index button.on::before{transform:scaleY(1)}
/* índice como menú flotante abajo al centro (como Market Atlas); la columna vuelve a su línea original */
#ov .cover-index{display:none!important}
#ov .cover-lead::before{display:block!important}
.ov-cnav{display:none}
@media(min-width:1001px){
  .ov-cnav{display:flex;position:fixed;z-index:60;left:50%;bottom:22px;gap:2px;padding:7px;border-radius:999px;background:#fff;
    box-shadow:0 1px 2px rgba(10,18,64,.06),0 8px 22px -10px rgba(10,18,64,.25),0 22px 50px -24px rgba(10,18,64,.45);
    transform:translate(-50%,24px);opacity:0;pointer-events:none;transition:opacity .5s ease,transform .7s cubic-bezier(.22,1,.36,1)}
  .ov-cnav.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
  .ov-cnav button{display:block;padding:12px 16px;border:0;border-radius:999px;background:none;cursor:pointer;white-space:nowrap;
    font:650 12.5px/1 "Plus Jakarta Sans",ui-sans-serif,system-ui,sans-serif;color:rgba(10,18,64,.5);transition:background-color .3s ease,color .3s ease}
  .ov-cnav button:hover{background:#F7F9FF;color:#2143E9}
  .ov-cnav button.on{background:#F2F5FF;color:#2143E9}
}
@media(min-width:1001px) and (max-width:1300px){.ov-cnav button{padding:11px 11px;font-size:11.5px}}
@media(min-width:1001px){.ov-cnav{z-index:9000!important;padding:6px!important}.ov-cnav button{padding:10px 13px!important;font-size:12px!important}}
@media(min-width:1001px) and (max-width:1300px){.ov-cnav button{padding:9px 9px!important;font-size:11px!important}}
/* menú flotante alineado a la columna de la portada (no pisa Glossary / Data & Sources) */
@media(min-width:1001px){.ov-cnav{left:var(--cnx,140px)!important;bottom:28px!important;transform:translate(0,24px)!important}.ov-cnav.on{transform:none!important}}
@media(min-width:1001px) and (max-width:1300px){.ov-cnav button{padding:9px 8px!important;font-size:10.5px!important}}
/* con el menú flotante: subirlo y subir todo el contenido para que entre */
@media(min-width:1001px){.ov-cnav{bottom:40px!important}
  #ov .stage,#ov .cover,#ov .arrows{translate:0 -34px}}
/* menú flotante centrado con aparición; Glossary / Data & Sources arriba a la derecha */
@media(min-width:1001px){
  .ov-cnav{left:50%!important;transform:translate(-50%,30px)!important;opacity:0;transition:opacity .8s ease,transform 1s cubic-bezier(.16,1,.3,1)!important}
  .ov-cnav.on{transform:translate(-50%,0)!important;opacity:1}
  #ov .ov-foot{top:clamp(22px,2.6vh,34px)!important;bottom:auto!important;right:clamp(28px,3vw,48px)!important}
}
/* prueba: menú arriba al centro, Glossary abajo, contenido un poco más abajo */
@media(min-width:1001px){
  .ov-cnav{top:clamp(20px,2.6vh,30px)!important;bottom:auto!important;transform:translate(-50%,-30px)!important}
  .ov-cnav.on{transform:translate(-50%,0)!important}
  #ov .ov-foot{top:auto!important;bottom:clamp(14px,1.8vw,24px)!important}
  #ov .stage,#ov .cover,#ov .arrows{translate:0 22px!important}
}
@media(min-width:1001px){.ov-cnav{top:clamp(34px,4.4vh,50px)!important}}
/* logo un poco más grande; índice con aparición escalonada */
@media(min-width:821px){#ov .cover-title{font-size:clamp(50px,5.2vw,94px)!important}}
@media(min-width:1001px){
  .ov-cnav{transition:opacity .9s ease,transform 1.1s cubic-bezier(.16,1,.3,1)!important}
  .ov-cnav button{opacity:0;transform:translateY(-8px);transition:opacity .5s ease,transform .7s cubic-bezier(.16,1,.3,1),background-color .3s ease,color .3s ease}
  .ov-cnav.on button{opacity:1;transform:none}
  .ov-cnav.on button:nth-child(1){transition-delay:.25s,.25s,0s,0s}
  .ov-cnav.on button:nth-child(2){transition-delay:.32s,.32s,0s,0s}
  .ov-cnav.on button:nth-child(3){transition-delay:.39s,.39s,0s,0s}
  .ov-cnav.on button:nth-child(4){transition-delay:.46s,.46s,0s,0s}
  .ov-cnav.on button:nth-child(5){transition-delay:.53s,.53s,0s,0s}
  .ov-cnav.on button:nth-child(6){transition-delay:.60s,.60s,0s,0s}
  .ov-cnav.on button:nth-child(7){transition-delay:.67s,.67s,0s,0s}
}
/* prueba: menú abajo al centro, Glossary arriba a la derecha */
@media(min-width:1001px){
  .ov-cnav{top:auto!important;bottom:clamp(34px,4.4vh,50px)!important;transform:translate(-50%,30px)!important}
  .ov-cnav.on{transform:translate(-50%,0)!important}
  .ov-cnav button{transform:translateY(8px)}
  .ov-cnav.on button{transform:none}
  #ov .ov-foot{top:clamp(22px,2.6vh,34px)!important;bottom:auto!important;right:clamp(28px,3vw,48px)!important}
  #ov .stage,#ov .cover,#ov .arrows{translate:0 -22px!important}
}
/* menú tipo dock: pegado al borde inferior, solo esquinas de arriba redondeadas */
@media(min-width:1001px){
  .ov-cnav{bottom:0!important;border-radius:22px 22px 0 0!important;padding:8px 10px 10px!important;
    box-shadow:0 -10px 30px -18px rgba(10,18,64,.45)!important;transform:translate(-50%,100%)!important}
  .ov-cnav.on{transform:translate(-50%,0)!important}
  .ov-cnav button{border-radius:14px!important}
}
@media(min-width:1001px){
  html body nav.ov-cnav{border-radius:24px 24px 0 0!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;padding:12px 16px 14px!important;gap:4px!important}
  html body nav.ov-cnav button{padding:12px 16px!important}
  html body nav.ov-cnav.on button{transition-delay:0s!important}
}
@media(min-width:1001px) and (max-width:1300px){html body nav.ov-cnav button{padding:11px 10px!important}}
/* dock fijo: la barra blanca no anima, solo entran los títulos; títulos +1px */
@media(min-width:1001px){
  html body nav.ov-cnav{transform:translate(-50%,0)!important;opacity:1!important;transition:none!important;pointer-events:auto}
  html body nav.ov-cnav button{font-size:13px!important;opacity:0;transform:translateY(10px)}
  html body nav.ov-cnav.on button{opacity:1;transform:none}
  html body nav.ov-cnav.on button:nth-child(1){transition-delay:.05s,.05s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(2){transition-delay:.11s,.11s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(3){transition-delay:.17s,.17s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(4){transition-delay:.23s,.23s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(5){transition-delay:.29s,.29s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(6){transition-delay:.35s,.35s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(7){transition-delay:.41s,.41s,0s,0s!important}
}
@media(min-width:1001px) and (max-width:1300px){html body nav.ov-cnav button{font-size:12px!important}}
/* barra blanca entra desde abajo; títulos después; más radio */
@media(min-width:1001px){
  html body nav.ov-cnav{border-radius:34px 34px 0 0!important;transform:translate(-50%,100%)!important;transition:transform .8s cubic-bezier(.16,1,.3,1)!important}
  html body nav.ov-cnav.on{transform:translate(-50%,0)!important}
  html body nav.ov-cnav button{border-radius:18px!important}
  html body nav.ov-cnav.on button:nth-child(1){transition-delay:.35s,.35s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(2){transition-delay:.41s,.41s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(3){transition-delay:.47s,.47s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(4){transition-delay:.53s,.53s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(5){transition-delay:.59s,.59s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(6){transition-delay:.65s,.65s,0s,0s!important}
  html body nav.ov-cnav.on button:nth-child(7){transition-delay:.71s,.71s,0s,0s!important}
}
/* dock apoyado en el borde inferior de la tarjeta azul, radio moderado, sombra suave */
@media(min-width:1001px){
  html body nav.ov-cnav{bottom:var(--cnb,12px)!important;border-radius:20px 20px 0 0!important;background:rgba(255,255,255,.96)!important;
    -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
    box-shadow:0 -1px 0 rgba(255,255,255,.6) inset,0 -14px 34px -16px rgba(6,14,80,.45),0 -2px 8px -4px rgba(6,14,80,.18)!important}
  html body nav.ov-cnav button{border-radius:12px!important}
}
@media(min-width:1001px){html body #ov .ov-foot{right:clamp(16px,1.6vw,26px)!important}}
@media(min-width:1001px){html body nav.ov-cnav.ov-cnav{box-shadow:none!important}}
@media(min-width:1001px){html body nav.ov-cnav.ov-cnav{border:0!important;outline:0!important;background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}}

/* index fondo azul */
html body nav.ov-cnav.ov-cnav.ov-cnav{background:transparent!important}
html body nav.ov-cnav.ov-cnav button{color:rgba(255,255,255,.55)!important;background:transparent!important}
html body nav.ov-cnav.ov-cnav button:hover{color:#fff!important;background:transparent!important}
html body nav.ov-cnav.ov-cnav button.on{color:#fff!important;background:transparent!important}
@media (min-width:1001px){html body nav.ov-cnav.ov-cnav.ov-cnav.ov-cnav{top:var(--cnt,auto)!important;bottom:auto!important}}
/* index: linea abajo con indicador celeste deslizante */
@media (min-width:1001px){html body nav.ov-cnav.ov-cnav.ov-cnav{padding-bottom:10px!important}html body nav.ov-cnav.ov-cnav.ov-cnav::before{content:"";position:absolute;left:var(--cl0,12px);right:var(--cr0,12px);bottom:0;height:1px;background:rgba(255,255,255,.22);pointer-events:none}html body nav.ov-cnav.ov-cnav.ov-cnav .ov-ind{position:absolute;bottom:-1px;left:0;width:0;height:3px;border-radius:2px;background:#ADE2FF;pointer-events:none;transition:left .55s cubic-bezier(.65,0,.35,1),width .55s cubic-bezier(.65,0,.35,1)}}
@media (max-width:1000px){html body nav.ov-cnav .ov-ind{display:none}}
html body #ov .cover-lead::before{display:none!important}
@media (min-width:1001px){html body nav.ov-cnav.ov-cnav.ov-cnav.ov-cnav{left:var(--cnl,50%)!important;transform:translate(0,30px)!important}html body nav.ov-cnav.ov-cnav.ov-cnav.ov-cnav.on{transform:none!important}html body nav.ov-cnav.ov-cnav.ov-cnav button{font-size:13.5px!important}}
#ov .ov-foot .ov-ck[style*="block"]{display:flex!important;align-items:center;gap:inherit}#ov .ov-foot .ov-ck button{-webkit-appearance:none;appearance:none;background:none;border:0;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;pointer-events:auto;transition:color .22s}#ov .ov-foot .ov-ck button:hover{color:#fff}
html body #show-consent-btn:not(#x){display:none!important}
#ov .pane,#ov .pane.on{border-radius:26px!important}#ov .pane .fig,#ov .pane .in,#ov .pane .art-clip{border-radius:inherit!important}
