/* ═══════════════════════════════════════════════════════════════════════════
   CAPA 1 · NÚCLEO — invariante
   Motor de Plataformas · EL ASTILLERO
   Layout, retícula, tipografía fluida, movimiento, impresión.
   CERO color de marca aquí: todo viene de var(--*) que define Capa 2.
   No se toca al dar de alta un sitio nuevo.
   ═══════════════════════════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box}
body,h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

:root{
  --t-hero:clamp(2.4rem,7.6vw,4.6rem);
  --t-h2:clamp(1.6rem,4.4vw,2.6rem);
  --t-h3:clamp(1.1rem,2.6vw,1.35rem);
  --t-lead:clamp(1.02rem,2.5vw,1.22rem);
  --t-body:clamp(.95rem,2.1vw,1.04rem);
  --t-small:clamp(.84rem,1.9vw,.92rem);
  --t-eye:clamp(.64rem,1.6vw,.72rem);
  --pad-sec:clamp(56px,9vw,110px);
  --pad-x:clamp(22px,5.2vw,40px);
  --gap:clamp(16px,3vw,24px);
  --mx:1080px;
  --mx-narrow:760px;
}

body{
  background:var(--paper);
  color:var(--fg);
  font-family:var(--font-bdy);
  font-size:var(--t-body);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--brand);color:#fff}

.wrap{max-width:var(--mx);margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x);width:100%}
/* narrow constriñe el contenido, NO el contenedor: todas las secciones
   comparten el mismo borde izquierdo, sin importar el ancho de su columna */
.wrap.narrow{max-width:var(--mx)}
.wrap.narrow>*{max-width:var(--mx-narrow)}
section{padding-top:var(--pad-sec);padding-bottom:var(--pad-sec)}
.stack{display:flex;flex-direction:column;gap:var(--gap)}
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:var(--gap)}
.g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:var(--gap)}

h1,h2,h3{font-family:var(--font-dsp);line-height:1.05;letter-spacing:-.03em;text-wrap:balance;font-weight:400}
h2{font-size:var(--t-h2)}
h3{font-size:var(--t-h3);letter-spacing:-.02em}
p{color:var(--fg-2);max-width:66ch}
strong,b{color:var(--fg);font-weight:400}
.mn{font-family:var(--font-mn);font-variant-numeric:tabular-nums}

/* eyebrow */
.eye{
  font-family:var(--font-mn);font-size:var(--t-eye);
  letter-spacing:.22em;text-transform:uppercase;color:var(--brand);
  display:flex;align-items:center;gap:11px;font-weight:500;
}
.eye::before{content:"";width:26px;height:2px;background:var(--brand);flex:0 0 auto}
.on-dark .eye{color:var(--tint)}
.on-dark .eye::before{background:var(--tint)}

.lead{font-size:var(--t-lead);color:var(--fg-2);line-height:1.55;max-width:58ch}
.on-dark, .on-dark h1,.on-dark h2,.on-dark h3{color:var(--fg-inv)}
.on-dark p,.on-dark .lead{color:var(--fg-inv-2)}
.on-dark strong,.on-dark b{color:var(--fg-inv)}

/* ─── superficies ─── */
.dark{
  background:
    radial-gradient(112% 76% at 84% -8%, var(--ink-glow) 0%, transparent 60%),
    radial-gradient(86% 60% at -6% 10%, rgba(16,71,171,.26) 0%, transparent 56%),
    var(--ink);
  color:var(--fg-inv);position:relative;overflow:hidden;
}
.deep{background:linear-gradient(168deg,var(--ink-2) 0%,var(--ink) 72%);color:var(--fg-inv);position:relative;overflow:hidden}
.tint-bg{background:var(--surface)}
.rule{border-top:1px solid var(--line)}
.on-dark .rule,.dark .rule,.deep .rule{border-top-color:var(--ink-line)}

/* ─── barra superior ─── */
.topbar{
  position:sticky;top:0;z-index:40;
  background:rgba(6,11,24,.86);
  backdrop-filter:saturate(150%) blur(14px);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  border-bottom:1px solid var(--ink-line);
}
.topbar .row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:14px;padding-bottom:14px}
.topbar img{height:34px;width:auto}
.topbar nav{display:flex;gap:clamp(14px,2.6vw,28px);align-items:center}
.topbar nav a{
  font-family:var(--font-mn);font-size:var(--t-eye);
  letter-spacing:.16em;text-transform:uppercase;color:var(--fg-inv-2);
  border-bottom:1px solid transparent;padding-bottom:2px;transition:color .2s,border-color .2s;
}
.topbar nav a:hover{color:var(--fg-inv);border-bottom-color:var(--tint)}
@media (max-width:640px){
  .topbar nav{display:none}
  .topbar .row{padding-top:12px;padding-bottom:12px}
  .topbar img{height:30px}
}

/* ─── hero ─── */
.hero{padding-top:clamp(60px,11vw,120px);padding-bottom:clamp(60px,11vw,120px)}
.hero h1{font-size:var(--t-hero);letter-spacing:-.04em}
.hero h1 .soft{color:var(--tint)}
.iso-wm{
  position:absolute;z-index:0;pointer-events:none;opacity:.035;
  filter:brightness(0) invert(1);
  width:min(34vw,340px);right:-3%;top:-7%;
  animation:spin60 60s linear infinite;
}
@keyframes spin60{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.hero > *:not(.iso-wm){position:relative;z-index:2}

/* ─── ficha de datos ─── */
.facts{display:flex;flex-direction:column;border-top:1px solid var(--ink-line)}
.fact{display:grid;grid-template-columns:minmax(96px,150px) 1fr;gap:10px 18px;
  padding:13px 0;border-bottom:1px solid var(--ink-line);align-items:baseline}
.fact .k{font-family:var(--font-mn);font-size:var(--t-eye);letter-spacing:.18em;
  text-transform:uppercase;color:var(--fg-inv-3)}
.fact .v{color:var(--fg-inv);font-size:var(--t-body);line-height:1.4}
@media (max-width:520px){.fact{grid-template-columns:1fr;gap:4px}}

/* ─── hilo / timeline ─── */
.thread{display:flex;flex-direction:column;gap:0}
.node{display:grid;grid-template-columns:auto 1fr;gap:0 22px;position:relative}
.node .dot{width:14px;height:14px;border-radius:50%;background:var(--brand);
  margin-top:7px;position:relative;z-index:2;flex:0 0 auto}
.node .line{grid-column:1;width:2px;background:var(--line-2);margin:0 auto;min-height:22px}
.node.on .dot{background:var(--brand);box-shadow:0 0 0 6px var(--brand-dim)}
.node .body{padding-bottom:30px}
.node .when{display:block;font-family:var(--font-mn);font-size:var(--t-eye);letter-spacing:.18em;
  text-transform:uppercase;color:var(--fg-3);margin-bottom:7px}
.node .what{font-family:var(--font-dsp);font-size:var(--t-h3);letter-spacing:-.02em;color:var(--fg);margin-bottom:6px}
.node .where{font-size:var(--t-small);color:var(--fg-2)}

/* ─── tarjeta ─── */
.card{
  background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);
  padding:clamp(24px,4vw,34px);
  box-shadow:0 1px 2px rgba(2,6,23,.04),0 12px 34px -20px rgba(2,6,23,.18);
}
.card.on-ink{background:rgba(255,255,255,.04);border-color:var(--ink-line)}

/* ─── cita ─── */
.quote{
  border-left:3px solid var(--brand);padding-left:clamp(20px,3.4vw,30px);
  font-family:var(--font-dsp);font-size:clamp(1.2rem,3.1vw,1.7rem);
  line-height:1.3;letter-spacing:-.025em;color:var(--fg);
}
.on-dark .quote{color:var(--fg-inv);border-left-color:var(--tint)}
.quote .who{display:block;font-family:var(--font-mn);font-size:var(--t-eye);
  letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);margin-top:18px;line-height:1.8}
.on-dark .quote .who{color:var(--fg-inv-3)}

/* ─── botón ─── */
.btn{
  display:inline-flex;align-items:center;gap:11px;
  background:var(--brand);color:#fff;
  font-family:var(--font-bdy);font-size:var(--t-body);
  padding:15px 28px;border-radius:var(--r-pill);
  border:1px solid transparent;
  transition:background .2s,transform .18s;
}
.btn:hover{background:var(--brand-lift);transform:translateY(-1px)}
.btn.ghost{background:transparent;border-color:var(--ink-line);color:var(--fg-inv)}
.btn.ghost:hover{background:rgba(255,255,255,.07);border-color:var(--tint)}
.btn:focus-visible,.utility-link:focus-visible,.text-link:focus-visible,.maker-signature a:focus-visible{
  outline:3px solid var(--tint);outline-offset:4px
}

/* ─── video vertical (recap) ─── */
.vwrap{max-width:420px;margin-inline:auto;width:100%}
.vframe{
  position:relative;width:100%;aspect-ratio:9/16;
  border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--ink-line);background:var(--ink-2);
}
.vframe video,.vframe iframe{width:100%;height:100%;object-fit:cover;border:0;display:block}

/* ─── galería ─── */
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr));gap:12px}
.gal a{display:block;position:relative;aspect-ratio:4/5;overflow:hidden;
  border-radius:var(--r);background:var(--surface);border:1px solid var(--line-2)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.gal a:hover img{transform:scale(1.045)}

/* ─── estado vacío (contenido aún no publicado) ─── */
.empty{
  border:1px dashed var(--line-2);border-radius:var(--r-lg);
  padding:clamp(34px,6vw,58px);text-align:center;
}
.on-dark .empty,.dark .empty,.deep .empty{border-color:var(--ink-line)}
.empty .t{font-family:var(--font-mn);font-size:var(--t-eye);letter-spacing:.2em;
  text-transform:uppercase;color:var(--fg-3);line-height:2}
.on-dark .empty .t,.dark .empty .t,.deep .empty .t{color:var(--fg-inv-3)}

/* ─── pie ─── */
footer{background:var(--ink);color:var(--fg-inv-3);padding-top:clamp(46px,7vw,72px);padding-bottom:clamp(38px,6vw,56px)}
footer img{height:38px;width:auto;margin-bottom:22px}
footer .tag{font-family:var(--font-dsp);font-size:clamp(1.3rem,3.2vw,1.7rem);
  color:var(--fg-inv);letter-spacing:-.02em;margin-bottom:22px}
footer a{color:var(--fg-inv-2);border-bottom:1px solid rgba(255,255,255,.2)}
footer a:hover{color:var(--fg-inv)}
footer .fine{font-family:var(--font-mn);font-size:var(--t-eye);line-height:2.1;
  letter-spacing:.08em;color:var(--fg-inv-3);margin-top:26px;padding-top:22px;border-top:1px solid var(--ink-line)}

/* ─── firma de autoría · rúbrica, nunca protagonista ─── */
.maker-signature{margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.075);display:flex;justify-content:flex-end;align-items:baseline;gap:12px;opacity:.58;transition:opacity .25s ease}
.maker-signature:hover{opacity:.88}
.maker-unit{display:flex;align-items:baseline;gap:6px;min-width:0;white-space:nowrap}
.maker-unit>span{font-family:var(--font-mn);font-size:.48rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-inv-3)}
.maker-signature a{border:0;color:var(--fg-inv-2);line-height:1;transition:color .25s ease}
.maker-signature a:hover{color:var(--fg-inv)}
.maker-soul{font-family:var(--font-bdy);font-size:.76rem;letter-spacing:.015em}
.maker-xplorers{font-family:var(--font-dsp);font-size:.79rem;font-style:italic;letter-spacing:.005em}
.maker-mark{font-family:var(--font-mn);font-size:.56rem;color:var(--fg-inv-3)}
@media(max-width:640px){footer{padding-bottom:calc(112px + env(safe-area-inset-bottom))}.maker-signature{justify-content:flex-start;flex-wrap:wrap;gap:9px 12px}.maker-unit>span{font-size:.46rem}.maker-mark{display:none}}

/* ─── reveal ─── */
.rv{transition:opacity .55s ease,transform .55s ease}
.rv.pre{opacity:0;transform:translateY(16px)}

@media print{
  .topbar,.iso-wm{display:none}
  .rv{opacity:1!important;transform:none!important}
  section{break-inside:avoid;padding:22px 0}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
  .scroll-progress{display:none}
}

/* ─── progreso de lectura ─── */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:80;pointer-events:none;background:transparent}
.scroll-progress span{display:block;width:100%;height:100%;background:var(--tint);transform:scaleX(0);transform-origin:left center;will-change:transform}

/* ── cta-bar · barra de conversión fija en móvil — componente reutilizable
      del núcleo (alta 260820). Solo consume var(--*), cero color propio. ── */
.cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--ink);border-top:1px solid var(--ink-line)}
.cta-bar .t{color:var(--fg-inv-2);font-size:var(--t-small);line-height:1.3;min-width:0;flex:1}
.cta-bar .btn{flex:0 0 auto;padding:12px 14px;font-size:.84rem;white-space:nowrap}
@media(max-width:720px){.cta-bar{display:flex}body{padding-bottom:76px}}

/* ── hero con retrato · humaniza y compacta (componente reutilizable, 260820) ── */
.hero.compacto{padding-top:clamp(24px,4vw,44px);padding-bottom:0}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,310px);gap:clamp(20px,3vw,38px);align-items:end}
.hero-grid>.stack{padding-bottom:clamp(24px,4vw,44px)}
.hero-photo{position:relative;z-index:2;align-self:end;margin:0}
.hero-photo img{display:block;width:100%;height:auto;
  -webkit-mask-image:linear-gradient(180deg,#000 82%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 82%,transparent 100%)}
@media(max-width:860px){
  .hero-grid{grid-template-columns:1fr}
  .hero-photo{max-width:230px;margin:0 auto}
}
.hero.compacto h1{font-size:clamp(2.1rem,4.6vw,3.6rem);text-wrap:balance}

/* ── animación · entradas, stagger y pulso (260820). El bloque global de
      prefers-reduced-motion (arriba) mata TODO esto — narrativa corre igual. ── */
html{scroll-behavior:smooth}
@keyframes nuRise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes nuPhoto{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes nuBar{from{transform:translateY(110%)}to{transform:none}}
.hero .stack>*{animation:nuRise .75s cubic-bezier(.22,.7,.3,1) backwards}
.hero .stack>*:nth-child(2){animation-delay:.1s}
.hero .stack>*:nth-child(3){animation-delay:.2s}
.hero .stack>*:nth-child(4){animation-delay:.3s}
.hero .stack>*:nth-child(5){animation-delay:.42s}
.hero-photo{animation:nuPhoto .9s cubic-bezier(.22,.7,.3,1) .35s backwards}
.hero-photo figcaption{position:absolute;right:10px;bottom:10px;padding:5px 8px;background:rgba(6,11,24,.76);color:var(--fg-inv-2);font-family:var(--font-mn);font-size:9px;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:720px){.cta-bar{animation:nuBar .5s cubic-bezier(.22,.7,.3,1) .7s backwards}}
.rv>*{transition:opacity .6s ease,transform .6s cubic-bezier(.22,.7,.3,1)}
.rv.pre>*{opacity:0;transform:translateY(16px)}
.rv:not(.pre)>*:nth-child(2){transition-delay:.07s}
.rv:not(.pre)>*:nth-child(3){transition-delay:.14s}
.rv:not(.pre)>*:nth-child(4){transition-delay:.21s}
.rv:not(.pre)>*:nth-child(5){transition-delay:.28s}

/* ── co-branding · dos instituciones a la par (componente 260820) ── */
.cobrand{display:flex;align-items:center;gap:16px}
.cobrand .div{width:1px;height:26px;background:var(--ink-line);flex-shrink:0}
footer .cobrand{margin-bottom:22px}
footer .cobrand img{margin-bottom:0}

/* ── experiencia de encuentro · instancia de congreso ──
      Movimiento contenido para orientar atención, no para distraer. ── */
.experiencia-mente-capital .topbar .marca-cluster{height:30px;opacity:.82}
.experiencia-mente-capital .topbar .marca-comunidad{height:46px}
.experiencia-mente-capital footer .marca-comunidad{height:52px}
.experiencia-mente-capital .cobrand .div{height:34px;background:var(--tint);opacity:.56}
.experiencia-mente-capital .pon{transition:border-color .35s,transform .45s cubic-bezier(.22,.7,.3,1),box-shadow .45s ease}
.experiencia-mente-capital .pon .marco img{transition:transform .7s cubic-bezier(.22,.7,.3,1),filter .5s ease}
.experiencia-mente-capital .pon:hover,.experiencia-mente-capital .pon:focus-within{border-color:var(--brand);transform:translateY(-6px);box-shadow:0 18px 34px rgba(6,11,24,.14)}
.experiencia-mente-capital .pon:hover .marco img,.experiencia-mente-capital .pon:focus-within .marco img{transform:scale(1.045);filter:contrast(1.04)}
@media (prefers-reduced-motion:no-preference){
  .experiencia-mente-capital .hero{background-size:112% 112%;animation:menteAura 16s ease-in-out infinite}
  .experiencia-mente-capital .rv:not(.pre) .calendar-card::after{animation:plannerSweep 1.15s cubic-bezier(.22,.7,.3,1) .35s both}
  .experiencia-mente-capital .rv:not(.pre) .venue-type span{animation:plannerStamp .8s cubic-bezier(.22,.7,.3,1) .48s both}
}
@keyframes menteAura{0%,100%{background-position:0% 0%}50%{background-position:100% 28%}}
@keyframes plannerSweep{from{opacity:0;transform:translate3d(-110%,0,0) skewX(-12deg)}35%{opacity:.85}to{opacity:0;transform:translate3d(180%,0,0) skewX(-12deg)}}
@keyframes plannerStamp{from{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:640px){
  .experiencia-mente-capital .topbar .marca-cluster{height:26px}
  .experiencia-mente-capital .topbar .marca-comunidad{height:36px}
  .experiencia-mente-capital .cobrand{gap:12px}
  .experiencia-mente-capital .cobrand .div{height:28px}
}

/* ── Event Utility Rail · agenda y llegada reutilizables ── */
.planner{background:radial-gradient(100% 90% at 100% 0%,rgba(27,85,196,.28),transparent 62%),linear-gradient(168deg,var(--ink-2),var(--ink) 76%)}
.planner-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:18px;margin-top:18px}
.planner-card{position:relative;overflow:hidden;border:1px solid var(--ink-line);border-radius:var(--r-lg);background:rgba(255,255,255,.035);box-shadow:0 28px 70px -42px rgba(0,0,0,.72)}
.calendar-card{padding:clamp(26px,4vw,40px);display:flex;flex-direction:column;min-height:100%}
.calendar-card::after{content:"";position:absolute;inset:-20% auto -20% -30%;width:32%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(96,165,250,.24),transparent);opacity:0}
.utility-index{font-family:var(--font-mn);font-size:var(--t-eye);letter-spacing:.19em;text-transform:uppercase;color:var(--tint);margin-bottom:18px}
.planner-card h3{font-size:clamp(1.45rem,3vw,2rem);color:var(--fg-inv);margin-bottom:12px}
.planner-card p{color:var(--fg-inv-2)}
.utility-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:28px}
.utility-actions .btn{padding:13px 18px;font-size:var(--t-small)}
.venue-card{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(0,1.3fr)}
.venue-type{min-height:310px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 25% 18%,rgba(96,165,250,.24),transparent 48%),var(--ink);border-right:1px solid var(--ink-line)}
.venue-type span{font-family:var(--font-dsp);font-size:clamp(4rem,10vw,7rem);line-height:.8;letter-spacing:-.08em;color:var(--fg-inv)}
.venue-type small{font-family:var(--font-mn);font-size:var(--t-eye);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-inv-3)}
.venue-photo{position:relative;min-height:310px;border-right:1px solid var(--ink-line)}
.venue-photo img{width:100%;height:100%;object-fit:cover}
.venue-credit{position:absolute;left:12px;bottom:10px;font-family:var(--font-mn);font-size:10px;color:#fff;background:rgba(6,11,24,.78);padding:5px 8px}
.venue-copy{padding:clamp(26px,4vw,40px);display:flex;flex-direction:column;min-width:0}
.route-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:24px}
.utility-link{position:relative;display:flex;flex-direction:column;gap:7px;min-height:96px;padding:14px 12px;border:1px solid var(--ink-line);border-radius:var(--r);color:var(--fg-inv);font-size:var(--t-small);text-align:left;background:transparent;cursor:pointer;transition:background .25s,border-color .25s,transform .35s cubic-bezier(.22,.7,.3,1)}
.route-index{font-family:var(--font-mn);font-size:10px;letter-spacing:.14em;color:var(--tint)}
.route-icon{display:block;width:22px;height:22px;color:var(--fg-inv-2)}
.route-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.route-label{font-family:var(--font-mn);font-size:10px;line-height:1.25;letter-spacing:.04em;color:var(--fg-inv)}
.utility-link:hover{background:rgba(255,255,255,.07);border-color:var(--tint);transform:translateY(-3px)}
.utility-link:focus-visible{outline:2px solid var(--tint);outline-offset:3px}
.utility-copy.is-copied{border-color:var(--tint);background:rgba(96,165,250,.12)}
.venue-share{align-self:flex-start;display:inline-flex;align-items:center;gap:9px;margin-top:12px;padding:9px 12px;border:1px solid transparent;border-radius:var(--r-pill);background:transparent;color:var(--fg-inv-2);font-family:var(--font-mn);font-size:10px;letter-spacing:.07em;cursor:pointer;transition:color .2s,background .2s,border-color .2s}
.venue-share svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.venue-share:hover,.venue-share.is-copied{color:var(--fg-inv);background:rgba(255,255,255,.07);border-color:var(--ink-line)}
.venue-share:focus-visible{outline:2px solid var(--tint);outline-offset:3px}
.whatsapp-fallback{margin:14px 0 0;font-family:var(--font-mn);font-size:11px;color:var(--fg-2)}
.whatsapp-fallback a{color:var(--brand);text-decoration:underline;text-underline-offset:4px}
.venue-note{font-size:var(--t-small);margin-top:auto;padding-top:22px}
.text-link{color:var(--tint);border-bottom:1px solid rgba(96,165,250,.45);white-space:nowrap}
.thread .line{transform-origin:top;transition:transform .75s cubic-bezier(.22,.7,.3,1)}
.rv.pre .thread .line{transform:scaleY(0)}
@media(max-width:800px){.planner-grid{grid-template-columns:1fr}.venue-card{grid-template-columns:1fr}.venue-type,.venue-photo{min-height:220px;border-right:0;border-bottom:1px solid var(--ink-line)}.route-links{grid-template-columns:1fr}.utility-link{min-height:auto;flex-direction:row;align-items:center}.route-index{width:26px}.route-icon{flex:0 0 22px}.route-label{font-size:11px}.venue-share{margin-top:14px}.utility-actions .btn{width:100%;justify-content:center}}

/* ── cartel · ponentes del evento — componente reutilizable (260821).
      Funciona con retrato o con monograma cuando aún no hay foto. ── */
.cartel{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:18px;margin-top:24px}
.pon{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:border-color .25s,transform .25s}
.pon:hover{border-color:var(--brand);transform:translateY(-2px)}
.pon .marco{position:relative;aspect-ratio:1/1;background:var(--ink);overflow:hidden;display:flex;align-items:center;justify-content:center}
.pon .marco img{width:100%;height:100%;object-fit:cover;object-position:top center}
.speaker-video,.voice-video{width:100%;height:100%;display:block;object-fit:cover;background:var(--ink)}
.media-credit{position:absolute;left:10px;bottom:9px;z-index:1;padding:4px 6px;background:rgba(6,11,24,.76);color:#fff;font-family:var(--font-mn);font-size:8px;letter-spacing:.08em;text-transform:uppercase}
.video-play{position:absolute;left:50%;top:50%;z-index:2;translate:-50% -50%;padding:10px 14px;border:1px solid rgba(255,255,255,.52);border-radius:var(--r-pill);background:rgba(6,11,24,.82);color:#fff;font-family:var(--font-mn);font-size:10px;letter-spacing:.08em;opacity:0;pointer-events:none;transition:opacity .2s ease;cursor:pointer}
.marco.needs-play .video-play,.voice-media.needs-play .video-play{opacity:1;pointer-events:auto}
.video-play:focus-visible{outline:2px solid var(--tint);outline-offset:3px}
.pon .mono{font-family:var(--font-dsp);font-size:clamp(2.4rem,7vw,3.4rem);letter-spacing:-.03em;color:var(--fg-inv-3);line-height:1}
.pon .cuerpo{padding:18px 20px 22px;display:flex;flex-direction:column;gap:7px;flex:1}
.pon .nom{font-family:var(--font-dsp);font-size:1.16rem;letter-spacing:-.02em;color:var(--fg);line-height:1.15}
.pon .rol{font-size:var(--t-small);color:var(--fg-2);line-height:1.45}
.pon-copy{font-size:var(--t-small);line-height:1.52;color:var(--fg);margin:2px 0 0}
.pon .tema{font-size:var(--t-small);color:var(--fg);line-height:1.45;margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}
.pon .cuando{font-family:var(--font-mn);font-size:var(--t-eye);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3)}
.badge{position:absolute;top:12px;left:12px;z-index:2;padding:5px 12px;border-radius:var(--r-pill);background:var(--brand);color:#fff;font-family:var(--font-mn);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.badge.cierre{background:var(--ink);border:1px solid var(--tint)}
.pon.destacado{grid-column:1/-1;flex-direction:row;align-items:stretch}
.pon.destacado .marco{width:min(38%,260px);aspect-ratio:auto}
.pon.destacado .cuerpo{padding:26px 28px;justify-content:center;gap:9px}
.pon.destacado .nom{font-size:clamp(1.4rem,3.4vw,1.9rem)}
@media(max-width:640px){.pon.destacado{flex-direction:column}.pon.destacado .marco{width:100%;aspect-ratio:16/10}}

/* ── voces oficiales · carril de video de la programación externa ── */
.voices-section{margin-top:clamp(56px,8vw,92px);padding-top:clamp(38px,6vw,64px);border-top:1px solid var(--line)}
.voices-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.68fr);gap:28px;align-items:end}
.voices-heading h3{font-family:var(--font-dsp);font-size:clamp(1.7rem,3.8vw,2.65rem);line-height:1.02;letter-spacing:-.035em;color:var(--fg);margin:0}
.voices-heading p{font-size:var(--t-small);line-height:1.55;color:var(--fg-2);margin:0}
.voices-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(245px,29%);gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:25px 2px 10px;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
.voice-card{scroll-snap-align:start;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);box-shadow:0 20px 45px -36px rgba(7,17,42,.48)}
.voice-media{position:relative;aspect-ratio:4/3;background:var(--ink);overflow:hidden}
.voice-body{padding:18px 18px 20px;min-height:164px;display:flex;flex-direction:column;gap:8px}
.voice-role{font-family:var(--font-mn);font-size:9px;letter-spacing:.12em;text-transform:uppercase;line-height:1.35;color:var(--fg-3)}
.voice-body h3{font-family:var(--font-dsp);font-size:1.22rem;letter-spacing:-.02em;line-height:1.05;color:var(--fg);margin:0}
.voice-body p{font-size:var(--t-small);line-height:1.52;color:var(--fg-2);margin:0}
@media(max-width:760px){.voices-heading{grid-template-columns:1fr;gap:14px}.voices-rail{grid-auto-columns:minmax(272px,82vw);padding-top:20px}.voice-body{min-height:154px}}
