/* =========================================================
   CompañIA · capa de pulido (todas las slides salvo la portada)
   Lleva a las demás slides el lenguaje de la portada:
   tipografía equilibrada, líneas finas, sin brillos, mucho aire
   y una trama de puntos estática que continúa las partículas.
   Solo CSS, sin animaciones nuevas. Se carga después del <style>.
   ========================================================= */

:root {
  --hair: rgba(13, 13, 13, 0.09);
  --hair-strong: rgba(13, 13, 13, 0.16);
  --ease-ink: #1a1a1c;
}

/* ---------- Tipografía: equilibrio y ritmo ---------- */
.slide h2, .slide h3, .closer-l1, .closer-l2, .mega-cap, .diagram-punch,
.case-quote, .q-t, .platform-punch, .naval-quote, .principles-questions p {
  text-wrap: balance;
}
.slide p, .slide li, .news-b, .t-b, .case-v, .p-desc, .f-d, .agent-intro, .editorial-row p {
  text-wrap: pretty;
  hanging-punctuation: first;
}
.slide { font-kerning: normal; font-feature-settings: "kern", "liga"; }
.stat .big, .mega, .reach-number, .seq-n, .counter, .arc-line .n, .chip b, .principles-questions span {
  font-variant-numeric: tabular-nums lining-nums;
}

.beat-head h2, .statement-wrap h2, .agent-block h2 {
  letter-spacing: -0.034em;
  line-height: 1.04;
}
.beat-wrap { gap: 40px; }
.beat-head .section-num { margin-bottom: 16px; }
.beat-note, .rigor { text-wrap: balance; }

/* ---------- Eyebrow: número de sección + filete fino ---------- */
.section-num {
  display: inline-flex;
  align-items: center;
  gap: 0;
  letter-spacing: 0.01em;
}
.section-num b {
  display: inline-flex;
  align-items: center;
  margin-right: 0;
  font-variant-numeric: tabular-nums;
}
.section-num b::after {
  content: '';
  display: inline-block;
  width: 22px;
  height: 1px;
  margin: 0 12px;
  background: currentColor;
  opacity: 0.55;
}
.hero-eyebrow b::after { display: none; }

/* ---------- Superficies: líneas finas, sin brillos ---------- */
.news-card, .cmp-col, .tri, .q, .case, .roster, .floor, .eng-step, .pnode,
.flow-box, .chip, .power .p-ic, .timer {
  border-color: var(--hair);
  box-shadow: none;
}
.news-card, .cmp-col, .tri, .q, .case, .roster { border-radius: 20px; }
.news-card { padding: 26px 26px 24px; gap: 10px; }
.news-tag { letter-spacing: 0.08em; font-size: 12.5px; }
.news-h { letter-spacing: -0.022em; }

/* Acento: un filete naranja, no un resplandor */
.cmp-col.accent, .tri.pp, .floor.f3, .pnode.ai, .flow-box.hot, .power.hot .p-ic,
[data-name="curso"] .eng-step.s4, .eng-step.s1 {
  border-color: rgba(255, 79, 0, 0.55);
  box-shadow: none;
}
.cmp-col.accent, .tri.pp { background: linear-gradient(180deg, rgba(255, 79, 0, 0.035), rgba(255, 79, 0, 0) 60%), var(--card); }
.pnode.ai, .flow-box.hot, .power.hot .p-ic { background: rgba(255, 79, 0, 0.06); }
.flow-box.accent { border-color: var(--ink); }

/* Viñetas más finas */
.cmp-list li::before { width: 6px; height: 6px; top: 0.62em; border-radius: 50%; }
.cmp-list.no li::before { width: auto; height: auto; border-radius: 0; }
.cmp-out { border-top-color: var(--hair); font-weight: 500; letter-spacing: -0.01em; }

/* Tablas y filas editoriales con filetes finos */
.case-row, .seq-step, .editorial-row, .product-compare th, .product-compare td,
.r-row, .outcome-prompts, .agent-context, .platform-punch, .naval-proof { border-color: var(--hair); }
.seq-step:first-child, .editorial-row:last-child { border-color: var(--hair); }
.case-k { background: transparent; border-right: 1px solid var(--hair); }
.case-row.pp .case-k { background: rgba(255, 79, 0, 0.05); }
.agent-node { border-color: var(--hair); border-radius: 16px; background: var(--card); }

/* Chips: más aire, menos peso */
.chips { gap: 12px; }
.chip { padding: 13px 22px 13px 18px; color: var(--ink); }
.chip b { font-weight: 500; margin-right: 10px; }

/* Cifras: el número manda, la unidad acompaña */
.stat .big { font-weight: 500; letter-spacing: -0.05em; }
.stat .big small { color: var(--accent-ink); font-weight: 400; margin-left: 2px; }
.mega { font-weight: 500; letter-spacing: -0.065em; }

/* Íconos de línea más finos */
.power svg { stroke-width: 1.4; }
.power .p-ic { border-radius: 26px; background: var(--card); }

/* Pipeline y flujos: conectores más discretos */
.pseg { background: var(--hair-strong); }
.pseg::before { border-left-color: var(--hair-strong); }
.flow-arrow { color: rgba(13, 13, 13, 0.25); }
.pipe-exc .chip-x { border-color: var(--hair-strong); font-weight: 500; }

/* Citas */
.quote { border-left: 1px solid var(--accent); padding-left: 22px; }
.case-quote { font-weight: 400; }

/* ---------- Continuidad con la portada: trama de puntos estática ---------- */
.slide:not(.slide-hero)::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image: radial-gradient(circle, rgba(255, 79, 0, 0.22) 1px, transparent 1.4px);
  background-size: 22px 22px;
  background-position: 11px 11px;
  -webkit-mask-image: radial-gradient(ellipse 38% 46% at 100% 100%, #000 0%, transparent 100%);
          mask-image: radial-gradient(ellipse 38% 46% at 100% 100%, #000 0%, transparent 100%);
  opacity: 0.55;
}
.slide.dark:not(.slide-hero)::before {
  background-image: radial-gradient(circle, rgba(255, 120, 60, 0.32) 1px, transparent 1.4px);
  -webkit-mask-image: radial-gradient(ellipse 46% 60% at 0% 100%, #000 0%, transparent 100%);
          mask-image: radial-gradient(ellipse 46% 60% at 0% 100%, #000 0%, transparent 100%);
  opacity: 0.6;
}
.slide:not(.slide-hero) > * { position: relative; z-index: 1; }

/* ---------- Slides oscuras ---------- */
.dark .arc-line { letter-spacing: -0.03em; }
.dark .arc-line.on .n, .dark .section-num b { color: var(--accent); }
.closer-l2 { font-weight: 500; letter-spacing: -0.04em; }

/* ---------- Chrome ---------- */
.nav-tag { border-color: var(--hair); }
.hint .key { border-color: var(--hair-strong); }

@media (max-width: 900px) {
  .slide:not(.slide-hero)::before { opacity: 0.35; }
  .case-k { border-right: 0; border-bottom: 1px solid var(--hair); }
}
[data-name="agenda"] .section-num b::after { display: none; }

/* Enlaces discretos (fuentes y sitios) */
.slide a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: rgba(13, 13, 13, 0.22); text-underline-offset: 3px; }
.slide a:hover { text-decoration-color: var(--accent); }
.dark a { text-decoration-color: rgba(255, 255, 255, 0.3); }
.agent-source { color: var(--faint); }
.stat .big small { margin-left: 0; }

/* Tenis: la slide más densa; compacta en pantallas bajas */
@media (max-height: 900px) and (min-width: 901px) {
  [data-name="tenis-datos"] .agent-block { gap: 14px; }
  [data-name="tenis-datos"] .agent-block h2 { font-size: 34px; }
  [data-name="tenis-datos"] .agent-intro { font-size: 19px; }
  [data-name="tenis-datos"] .product-compare { font-size: 16.5px; }
  [data-name="tenis-datos"] .product-compare th, [data-name="tenis-datos"] .product-compare td { padding: 10px 16px; }
  [data-name="tenis-datos"] .platform-punch { font-size: 21px; padding-top: 14px; }
}

/* Sin pies de página en pantalla: las fuentes viven en el apéndice y en las notas */
.slide:not([data-appendix]) .agent-source,
.slide:not([data-appendix]) .rigor,
.slide:not([data-appendix]) .case-status,
.slide:not([data-appendix]) .news-src { display: none !important; }
.slide:not([data-appendix]) .case-footer { display: none; }
