@font-face{font-family:'IBM Plex Sans';src:url('fonts/IBMPlexSans-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('fonts/IBMPlexSans-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('fonts/IBMPlexSans-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('fonts/IBMPlexSans-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
/* ============================================================
   Linaris · Sistema Señal v2.0 — hoja de estilo del sitio
   Ningún color, tamaño, radio o sombra fuera de este archivo.
   v12.5: tokens alineados con Señal v2.0 (tokens/colors.css, typography.css,
   spacing.css del sistema): lienzo neutral-100, tarjetas blancas, fuentes
   locales, radio 14 retirado de los contenedores, pill solo en avatar y
   progreso, lockup con el Nodo L.
   ============================================================ */
@font-face{font-family:'IBM Plex Mono';src:url('fonts/IBMPlexMono-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/IBMPlexMono-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/IBMPlexMono-SemiBold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('fonts/InstrumentSerif-Italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}

/* ---------- 1. Tokens ---------- */
:root{
  --ln-neutral-0:#FFFFFF; --ln-neutral-50:#FAFAF9; --ln-neutral-100:#F4F3F1;
  --ln-neutral-200:#E7E4E0; --ln-neutral-250:#DFDBD5; --ln-neutral-300:#D6D2CC; --ln-neutral-400:#AFABA5;
  --ln-neutral-500:#87837D; --ln-neutral-600:#666360; --ln-neutral-700:#454340;
  --ln-neutral-900:#1A1917;
  --ln-brand-50:#FFF7ED; --ln-brand-100:#FFEDD5; --ln-brand-200:#FED7AA;
  --ln-brand-300:#FDBA74; --ln-brand-400:#FB923C; --ln-brand-500:#F97316;
  --ln-brand-600:#EA580C; --ln-brand-700:#C2410C;
  --ln-paper-1:#F0EDE7; --ln-paper-2:#E5E1DA; --ln-paper-3:#DBD7CF;
  --ln-status-success:#15803D; --ln-status-success-bg:#E9F8ED;
  --ln-status-warning:#A16207; --ln-status-warning-bg:#FFF6E3;
  --ln-status-danger:#B91C1C;  --ln-status-danger-bg:#FBECEA;
  --ln-data-1:#F97316; --ln-data-2:#006C75; --ln-data-3:#4C70CD;
  --ln-data-4:#9B4089; --ln-data-5:#456714;

  /* White page canvas; subtle surfaces retain the neutral palette. */
  --surface-canvas:var(--ln-neutral-0);
  --surface-card:var(--ln-neutral-0);
  --surface-subtle:var(--ln-neutral-50);
  --surface-sunken:var(--ln-neutral-200);
  --surface-warm:var(--ln-paper-1);
  --surface-ink:var(--ln-neutral-900);
  --border-hairline:var(--ln-neutral-200);
  --border-default:var(--ln-neutral-250);
  --border-control:var(--ln-neutral-500);
  --border-strong:var(--ln-neutral-900);
  --text-primary:var(--ln-neutral-900);
  --text-secondary:var(--ln-neutral-600);
  --text-muted:var(--ln-neutral-500);
  --text-inverse:var(--ln-neutral-0);
  --text-brand:var(--ln-neutral-700);
  --logo-accent:var(--ln-brand-500);
  --action-primary-bg:var(--ln-brand-500);
  --action-primary-hover:var(--ln-neutral-700);
  --accent-graphic:var(--ln-brand-500);
  --accent-tint:var(--ln-brand-100);

  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px;
  --s8:32px; --s10:40px; --s12:48px; --s16:64px; --s20:80px; --s24:96px; --s32:128px;

  --r-xs:4px; --r-sm:6px; --r-md:8px; --r-lg:10px; --r-xl:10px; /* 14 px prohibido en contenedores (Señal v2.0) */ --r-pill:999px; /* solo avatar y progreso */
  --font-quote:'Instrument Serif',Georgia,serif;

  --sh-sm:0 1px 2px rgba(26,25,23,.06);
  --sh-md:0 1px 2px rgba(26,25,23,.05), 0 4px 12px -6px rgba(26,25,23,.16);
  --sh-lg:0 1px 2px rgba(26,25,23,.05), 0 10px 24px -14px rgba(26,25,23,.30);

  --m-instant:90ms; --m-fast:140ms; --m-base:200ms; --m-slow:320ms;
  --ease:cubic-bezier(.2,0,0,1); --ease-exit:cubic-bezier(.4,0,1,1);

  --font-ui:"IBM Plex Sans",Helvetica,Arial,-apple-system,BlinkMacSystemFont,sans-serif;
  --font-heading:var(--font-ui);
  --font-body:var(--font-ui);
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --maxw:1240px;
  --gutter:32px;
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scrollbar-width:thin;scrollbar-color:#666360 #f2f2f2}
html::-webkit-scrollbar{width:10px;height:10px}
html::-webkit-scrollbar-track{background:#f2f2f2}
html::-webkit-scrollbar-thumb{background:#666360;border:2px solid #f2f2f2;border-radius:8px}
html::-webkit-scrollbar-thumb:hover{background:#1a1917}
body{
  margin:0; background:var(--surface-canvas); color:var(--text-primary);
  font-family:var(--font-ui); font-size:16px; line-height:1.58; letter-spacing:-.003em;
  -webkit-font-smoothing:antialiased; font-feature-settings:"kern" 1;
}
img,svg{max-width:100%; display:block}
a{color:inherit}
button,input,select,textarea{font:inherit; color:inherit}
h1,h2,h3,h4,h5,p,ul,ol,figure,table{margin:0}
ul,ol{padding:0; list-style:none}
:focus-visible{outline:2px solid var(--action-primary-bg); outline-offset:2px; border-radius:var(--r-xs)}

/* ---------- 3. Tipografía · escala WEB compacta ----------
   Señal §1.5 define una escala de documento (display-1 60 / h1 38 / body 16).
   Aquí baja un escalón entero: en pantalla ancha aquella escala lee a libro
   de texto. Los nombres de token no cambian; cambian los valores. */
.display-1{font-size:42px;line-height:1.06;letter-spacing:-.026em;font-weight:600}
.display-2{font-size:36px;line-height:1.08;letter-spacing:-.024em;font-weight:600}
.h1{font-size:30px;line-height:1.14;letter-spacing:-.022em;font-weight:600}
.h2{font-size:24px;line-height:1.20;letter-spacing:-.020em;font-weight:600}
.h3{font-size:20px;line-height:1.26;letter-spacing:-.018em;font-weight:600}
.h4{font-size:17px;line-height:1.32;letter-spacing:-.014em;font-weight:600}
.h5{font-size:15px;line-height:1.38;letter-spacing:-.010em;font-weight:600}
.body-lg{font-size:17px;line-height:1.55;letter-spacing:-.006em}
.body-sm{font-size:14px;line-height:1.55;letter-spacing:0}
.caption{font-size:13px;line-height:1.45}
.micro{font-size:12px;line-height:1.4;font-weight:500}
.label{
  font-family:var(--font-mono); font-size:11px; line-height:1.4;
  letter-spacing:.14em; font-weight:600; text-transform:uppercase;
}
.mono{font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-weight:500}
.sec{color:var(--text-secondary)}
.mut{color:var(--text-muted)}
.measure{max-width:56ch}
.pagetitle{font-size:36px;line-height:1.08;letter-spacing:-.024em;font-weight:600;max-width:22ch}
.measure-sm{max-width:48ch}

/* ---------- 4. Retícula ---------- */
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter)}
.section{padding:var(--s10) 0}
.section--tight{padding:var(--s8) 0}
.section--warm{background:var(--surface-warm);padding:var(--s12) 0}
.section--subtle{background:var(--surface-subtle);padding:var(--s12) 0}
.rule{border:0; border-top:1px solid var(--border-hairline); margin:0}
.grid{display:grid; gap:var(--s6)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.split{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:var(--s10); align-items:start}
.stack>*+*{margin-top:var(--s4)}
.stack-lg>*+*{margin-top:var(--s6)}

/* ---------- 5. Marca de sección ---------- */
.rulebar{width:48px;height:5px;background:var(--accent-graphic);border-radius:var(--r-xs)}
.eyebrow{display:flex;align-items:center;gap:var(--s3);color:var(--text-secondary)}
.eyebrow .dot{width:8px;height:8px;border-radius:var(--r-pill);background:var(--accent-graphic);flex:0 0 8px}

/* ---------- 6. Cabecera ---------- */
.site-head{
  position:sticky; top:0; z-index:40; background:rgba(255,255,255,.95);
  backdrop-filter:saturate(180%) blur(8px); border-bottom:1px solid var(--border-hairline);
}
.site-head__in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--s6);height:60px;position:relative}
.site-head__right{justify-self:end;display:flex;align-items:center;gap:var(--s4)}
.site-head__in .navlink--right{font-size:14px;text-decoration:none;color:var(--text-secondary);padding:var(--s2) 0;border-bottom:2px solid transparent}
.site-head__in .navlink--right:hover{color:var(--text-primary)}
.site-head__in .navlink--right[aria-current="page"]{color:var(--text-primary);border-bottom-color:var(--accent-graphic)}
.nav > .navlink--mobile{display:none}
.brand{display:inline-flex;align-items:center;gap:var(--s3);text-decoration:none;flex:0 0 auto;justify-self:start}
.brand__nodo{width:24px;height:24px;display:block;flex:0 0 24px}
.brand__bar{width:3px;height:20px;background:var(--accent-graphic);border-radius:1px;flex:0 0 3px}
.brand__w{font-size:16px;font-weight:600;letter-spacing:-.02em;color:var(--text-primary);line-height:1}
.brand em{font-style:normal;font-weight:600;color:var(--logo-accent);text-transform:none}
.site-foot .brand__w{font-size:15px}
.nav{display:flex;gap:var(--s5);align-items:center;justify-self:center}
.langsw{display:inline-flex;align-items:stretch;height:26px;border:1px solid var(--border-default);border-radius:var(--r-sm);overflow:hidden;background:var(--surface-card)}
.langsw a{display:flex;align-items:center;padding:0 8px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;line-height:1;text-decoration:none;color:var(--text-muted);border:0;border-right:1px solid var(--border-hairline);transition:color var(--m-fast) var(--ease),background var(--m-fast) var(--ease)}
.langsw a:last-child{border-right:0}
.langsw a:hover{color:var(--text-primary);background:var(--surface-subtle)}
.langsw a[aria-current="true"]{background:var(--ln-neutral-900);color:#fff}
.langsw a[aria-current="true"]:hover{background:var(--ln-neutral-900);color:#fff}
.navlink--langrow{display:none}
.nav .langsw a,.nav.is-open .langsw a{font-size:10.5px;padding:0 8px;border-bottom:0;border-right:1px solid var(--border-hairline)}
.nav .langsw a:last-child,.nav.is-open .langsw a:last-child{border-right:0}
@media (max-width:820px){.nav.is-open .navlink--langrow{display:block;padding:var(--s3) 0;border-bottom:1px solid var(--border-hairline)}}
.nav a:not(.btn){font-size:14px;text-decoration:none;color:var(--text-secondary);padding:var(--s2) 0;border-bottom:2px solid transparent;transition:color var(--m-fast) var(--ease)}
.nav a:not(.btn):hover{color:var(--text-primary)}
.nav a:not(.btn)[aria-current="page"]{color:var(--text-primary);border-bottom-color:var(--accent-graphic)}
.nav .btn{height:36px;padding:0 var(--s4);font-size:14px;white-space:nowrap}
.navtoggle{display:none;background:none;border:1px solid var(--border-default);border-radius:var(--r-sm);padding:var(--s2) var(--s3);margin-left:auto;cursor:pointer}
.site-foot .brand__nodo{filter:none}

/* ---------- 7. Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);
  height:42px;padding:0 var(--s5);border-radius:var(--r-md);
  font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;
  border:1px solid transparent;transition:background var(--m-fast) var(--ease),border-color var(--m-fast) var(--ease),transform var(--m-instant) var(--ease);
}
.btn--primary{background:var(--action-primary-bg);color:var(--text-primary)}
.btn--primary:hover{background:var(--action-primary-hover);color:var(--text-inverse)}
.btn--secondary{background:var(--surface-card);color:var(--text-primary);border-color:var(--border-default)}
.btn--secondary:hover{border-color:var(--border-control);background:var(--surface-subtle)}
.btn--text{height:auto;padding:0;background:none;color:var(--text-brand);font-weight:500;text-decoration:none;border-bottom:1px solid var(--ln-brand-200)}
.btn--text:hover{border-bottom-color:var(--accent-graphic)}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btnrow{display:flex;flex-wrap:wrap;gap:var(--s3)}

/* ---------- 8. Badge ---------- */
.badge{
  display:inline-flex;align-items:center;gap:var(--s2);
  padding:var(--s1) var(--s3);border-radius:var(--r-xs);
  background:var(--accent-tint);color:var(--text-brand);
  font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
}
.badge--ok{background:var(--ln-status-success-bg);color:var(--ln-status-success)}
.badge--warn{background:var(--ln-status-warning-bg);color:var(--ln-status-warning)}
.badge--dan{background:var(--ln-status-danger-bg);color:var(--ln-status-danger)}
.badge--neutral{background:var(--surface-sunken);color:var(--text-secondary)}

/* ---------- 9. Héroe ---------- */
.hero{padding:var(--s10) 0 var(--s12);position:relative;overflow:hidden}
.hero__q{
  font-size:44px;line-height:1.06;letter-spacing:-.026em;font-weight:600;
  max-width:19ch;
}
.engine{display:inline-block;white-space:nowrap}
.engine{position:relative}
.engine__mark{
  position:absolute;left:0;right:0;bottom:-.06em;height:5px;border-radius:var(--r-xs);
  transition:background var(--m-base) var(--ease);
}
.engine__name{position:relative}
.engine__logo{display:inline-block;height:.72em;width:auto;vertical-align:baseline;margin-right:.16em;position:relative;top:.02em}
.engine__logo[hidden]{display:none!important}
.elogo{width:16px;height:16px;object-fit:contain;flex:0 0 16px;display:block}
.elogo[hidden]{display:none!important}
.engine__name{color:var(--text-brand);transition:opacity var(--m-fast) var(--ease)}
.engine.is-swapping .engine__name{opacity:0}
.hero__sub{margin-top:var(--s4);color:var(--text-secondary);font-size:17px;line-height:1.55;max-width:52ch}
.hero__cta{margin-top:var(--s6)}
.hero__foot{margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid var(--border-hairline)}
.enginelist{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s6);margin-top:var(--s3)}
.enginelist li{display:flex;align-items:center;gap:var(--s2);font-size:14px;color:var(--text-secondary)}
.enginelist .dot{width:8px;height:8px;border-radius:var(--r-pill);flex:0 0 8px}

/* ---------- 10. Ventana de producto ---------- */
.panelbg{
  background:linear-gradient(180deg,#FFFCF8 0%,#F4F0EA 100%);
  border-radius:var(--r-lg);padding:var(--s6);position:relative;overflow:hidden;
}
.panelbg::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(90deg,rgba(26,25,23,.05) 0 1px,transparent 1px 92px);
}
.window{
  position:relative;background:var(--surface-card);border:1px solid var(--border-default);
  border-radius:var(--r-md);box-shadow:var(--sh-lg);overflow:hidden;
}
.window__bar{
  display:flex;align-items:center;gap:var(--s2);height:36px;flex:0 0 36px;padding:0 var(--s4);
  background:var(--surface-subtle);border-bottom:1px solid var(--border-hairline);overflow:hidden;
}
.window__bar > span:not(.window__title){width:8px;height:8px;border-radius:var(--r-pill);background:var(--border-default);flex:0 0 8px}
.window__title{margin-left:var(--s3);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}
.window__body{padding:var(--s6)}

/* respuesta simulada de un modelo */
.answer__q{font-size:13px;color:var(--text-secondary);font-family:var(--font-mono)}
.answer__t{margin-top:var(--s2);font-size:14px;line-height:1.6}
.answer__cites{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--border-hairline);display:grid;gap:var(--s2)}
.cite{display:flex;align-items:center;gap:var(--s3);font-size:12.5px}
.cite .n{font-family:var(--font-mono);color:var(--text-muted);font-size:11px;width:16px}
.cite .src{color:var(--text-primary)}
.cite .tag{margin-left:auto}

/* ---------- 11. Tarjetas y celdas ---------- */
.card{
  border:1px solid var(--border-default);border-radius:var(--r-lg);
  padding:var(--s5);background:var(--surface-card);
}
.card--warm{background:var(--surface-warm);border-color:transparent}
.card--flat{border:0;border-top:1px solid var(--border-hairline);border-radius:0;padding:var(--s4) 0 0}
.cardgrid{display:grid;gap:0;border-top:1px solid var(--border-hairline)}
.cardgrid .cell{padding:var(--s5) var(--s5) var(--s5) 0;border-bottom:1px solid var(--border-hairline)}
.numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s6);border-top:1px solid var(--border-hairline);padding-top:var(--s5)}
.numbers .n{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:30px;line-height:1.06;letter-spacing:-.024em;font-weight:600}
.numbers .k{margin-top:var(--s2);font-size:13.5px;color:var(--text-secondary);max-width:24ch}

/* ---------- 12. Tabla ---------- */
.tablewrap{overflow-x:auto;border:1px solid var(--border-hairline);border-radius:var(--r-lg)}
table.t{width:100%;border-collapse:collapse;min-width:640px;background:var(--surface-card)}
table.t th{
  text-align:left;background:var(--surface-subtle);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  color:var(--text-secondary);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border-hairline);
  vertical-align:bottom;
}
table.t td{padding:var(--s3) var(--s4);border-bottom:1px solid var(--border-hairline);vertical-align:top;font-size:14px;line-height:1.55}
table.t tr:last-child td{border-bottom:0}
table.t td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
table.t td strong{font-weight:600}

/* ---------- 13. Listas ---------- */
.checks li{position:relative;padding-left:var(--s5);margin-top:var(--s2);font-size:14px;line-height:1.55}
.checks li::before{
  content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:var(--r-pill);
  background:var(--accent-graphic);
}
.crosses li::before{background:var(--border-default)}
.steps{counter-reset:st;display:grid;gap:0;border-top:1px solid var(--border-hairline)}
.steps li{
  counter-increment:st;display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--s4);
  padding:var(--s4) 0;border-bottom:1px solid var(--border-hairline);
}
.steps li::before{
  content:counter(st,decimal-leading-zero);
  font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text-brand);letter-spacing:.06em;
}

/* ---------- 14. Cita ---------- */
.quote{background:var(--surface-warm);border-radius:var(--r-lg);padding:var(--s6)}
.quote p{font-size:19px;line-height:1.35;letter-spacing:-.02em;font-weight:600;max-width:30ch}
.quote .attr{margin-top:var(--s5);font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}

/* ---------- 15. Puertas ---------- */
.door{
  display:block;text-decoration:none;border:1px solid var(--border-default);border-radius:var(--r-lg);
  padding:var(--s8);transition:border-color var(--m-fast) var(--ease),box-shadow var(--m-fast) var(--ease);
  background:var(--surface-card);
}
.door:hover{border-color:var(--border-control);box-shadow:var(--sh-md)}
.door__k{color:var(--text-secondary);margin-top:var(--s3);font-size:13.5px;line-height:1.55}
.door__go{margin-top:var(--s6);display:inline-flex;align-items:center;gap:var(--s2);color:var(--text-brand);font-weight:500;font-size:15px}

/* ---------- 16. Formularios ---------- */
.field{display:block;margin-top:var(--s5)}
.field > .lab{display:block;font-size:14px;font-weight:500;margin-bottom:var(--s2)}
.field .hint{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:var(--s2)}
.input,.select,.textarea{
  width:100%;background:var(--surface-card);border:1px solid var(--border-control);
  border-radius:var(--r-sm);padding:var(--s3) var(--s4);font-size:15px;line-height:1.5;
  transition:border-color var(--m-fast) var(--ease),box-shadow var(--m-fast) var(--ease);
}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--action-primary-bg);box-shadow:0 0 0 3px var(--ln-brand-100)}
.textarea{min-height:120px;resize:vertical}
.consent{display:flex;gap:var(--s3);align-items:flex-start;margin-top:var(--s5);font-size:13px;line-height:1.55;color:var(--text-secondary)}
.consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--action-primary-bg);flex:0 0 18px}
.formcard{border:1px solid var(--border-default);border-radius:var(--r-xl);padding:var(--s8);background:var(--surface-card);box-shadow:var(--sh-md)}
.formnote{margin-top:var(--s5);font-size:13px;color:var(--text-secondary)}

/* ---------- 17. Autoauditoría ---------- */
.audit{display:grid;gap:0;border-top:1px solid var(--border-hairline)}
.q{padding:var(--s6) 0;border-bottom:1px solid var(--border-hairline)}
.q__n{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary)}
.q__t{margin-top:var(--s2);font-size:19px;line-height:1.3;letter-spacing:-.016em;font-weight:600;max-width:40ch}
.q__k{margin-top:var(--s2);color:var(--text-secondary);font-size:15px;max-width:62ch}
.opts{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s5)}
.opt{
  border:1px solid var(--border-default);background:var(--surface-card);
  border-radius:var(--r-md);padding:var(--s3) var(--s4);font-size:14px;cursor:pointer;text-align:left;
  transition:border-color var(--m-fast) var(--ease),background var(--m-fast) var(--ease);
}
.opt:hover{border-color:var(--border-control)}
.opt[aria-pressed="true"]{border-color:var(--action-primary-bg);background:var(--ln-brand-50);font-weight:500}
.reveal{
  margin-top:var(--s4);border-left:2px solid var(--accent-graphic);
  padding:var(--s4) var(--s5);background:var(--surface-warm);border-radius:0 var(--r-sm) var(--r-sm) 0;
  font-size:14px;line-height:1.65;
}
.reveal[hidden]{display:none!important}
.reveal .rl{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);display:block;margin-bottom:var(--s2)}
.reveal p+p{margin-top:var(--s3)}

.prompt{
  margin-top:var(--s4);border:1px solid var(--border-hairline);border-radius:var(--r-sm);
  background:var(--surface-subtle);
}
.prompt__h{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s4);border-bottom:1px solid var(--border-hairline)}
.prompt__h .label{color:var(--text-secondary)}
.prompt__copy{margin-left:auto;background:none;border:1px solid var(--border-default);border-radius:var(--r-xs);padding:2px var(--s3);font-size:12px;cursor:pointer}
.prompt__copy:hover{border-color:var(--border-control)}
.prompt pre{margin:0;padding:var(--s4);font-family:var(--font-mono);font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}

.score{border:1px solid var(--border-default);border-radius:var(--r-xl);padding:var(--s8);background:var(--surface-card);box-shadow:var(--sh-md)}
.score__bar{height:5px;border-radius:var(--r-pill);background:var(--surface-sunken);overflow:hidden;margin-top:var(--s5)}
.score__bar i{display:block;height:100%;background:var(--accent-graphic);width:0;transition:width var(--m-slow) var(--ease)}
.score__lines{margin-top:var(--s6);display:grid;gap:var(--s3)}
.score__line{display:flex;gap:var(--s4);align-items:flex-start;font-size:13.5px;line-height:1.55}
.score__line .badge{flex:0 0 auto;margin-top:2px}
.progress{position:sticky;top:56px;z-index:20;background:var(--surface-card);border-bottom:1px solid var(--border-hairline)}
.progress__in{display:flex;align-items:center;gap:var(--s4);height:48px;font-size:13px;color:var(--text-secondary)}
.progress__track{flex:1;height:5px;border-radius:var(--r-pill);background:var(--surface-sunken);overflow:hidden}
.progress__track i{display:block;height:100%;width:0;background:var(--accent-graphic);transition:width var(--m-base) var(--ease)}

/* ---------- 18. Pie ---------- */
.site-foot{background:var(--surface-subtle);border-top:1px solid var(--border-hairline);padding:var(--s12) 0 var(--s8)}
.footgrid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(5,minmax(0,1fr));gap:var(--s6)}
.footgrid h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--text-secondary);margin-bottom:var(--s3)}
.footgrid a{display:block;font-size:14px;color:var(--text-secondary);text-decoration:none;padding:var(--s1) 0}
.footgrid a:hover{color:var(--text-primary)}
.legal{margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid var(--border-hairline);font-size:13px;color:var(--text-muted)}
.legal p+p{margin-top:var(--s2)}

/* ---------- 19. Utilidades ---------- */
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--s4);top:var(--s4);z-index:99;background:var(--surface-card);padding:var(--s3) var(--s4);border:1px solid var(--border-control);border-radius:var(--r-sm)}
.mt2{margin-top:var(--s2)}.mt3{margin-top:var(--s3)}.mt4{margin-top:var(--s4)}
.mt5{margin-top:var(--s5)}.mt6{margin-top:var(--s6)}.mt8{margin-top:var(--s8)}
.mt10{margin-top:var(--s10)}.mt12{margin-top:var(--s12)}.mt16{margin-top:var(--s16)}
.center{text-align:center}
.srcnote{font-size:13.5px;color:var(--text-secondary);max-width:74ch}
.srcnote a{color:var(--text-secondary)}

/* ---------- 20. Adaptación ---------- */
@media (max-width:1100px){
  :root{--gutter:24px}
  .hero__q{font-size:34px}
  .display-1{font-size:32px}
  .pagetitle{font-size:29px}
  .split{grid-template-columns:minmax(0,1fr);gap:var(--s10)}
}
/* cabecera: el ribbon se pliega en cuanto el menú y el conmutador de idioma van justos */
@media (max-width:820px){
  .site-head__in{display:flex}
  .site-head__right{display:none}
  .nav > .navlink--mobile{display:block}
  .nav{display:none}
  .nav.is-open{display:flex;position:absolute;left:0;right:0;top:60px;flex-direction:column;align-items:stretch;gap:0;background:var(--surface-card);border-bottom:1px solid var(--border-hairline);padding:var(--s3) var(--gutter) var(--s5)}
  .nav.is-open a{padding:var(--s3) 0;border-bottom:1px solid var(--border-hairline)}
  .nav.is-open .btn{margin-top:var(--s3)}
  .navtoggle{display:block}
}
@media (max-width:860px){
  .g3,.g4,.numbers{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .section{padding:var(--s10) 0}
  .panelbg{padding:var(--s6)}
  .quote,.formcard,.score{padding:var(--s6)}
}
@media (max-width:640px){
  :root{--gutter:20px}
  .hero__q,.display-1,.pagetitle{font-size:26px;line-height:1.12;max-width:none}
  .display-2{font-size:26px}
  .h1{font-size:23px}.h2{font-size:20px}.h3{font-size:18px}
  .g2,.g3,.g4,.numbers{grid-template-columns:minmax(0,1fr)}
  .steps li{grid-template-columns:minmax(0,1fr);gap:var(--s2)}
  .numbers{gap:var(--s6)}
  .hero{padding:var(--s16) 0 var(--s12)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
@media print{
  .site-head,.site-foot,.progress,.btn{display:none!important}
  body{font-size:11pt}
  /* nada de lo que entra con el scroll puede quedarse invisible en papel */
  [data-reveal]{opacity:1!important;transform:none!important}
  .wf rect.b-step,.wf rect.b-anchor{transform:none!important}
  .wf text,.net circle,.net text,.dots i{opacity:1!important;transform:none!important}
  .net .edge path{stroke-dashoffset:0!important}
}

/* ============================================================
   21. Figuras — reconstruidas del documento maestro y de COM-002
   ============================================================ */

/* --- Figura: marco común --- */
.fig{margin-top:var(--s6)}
.fig__cap{margin-top:var(--s3);font-size:13.5px;line-height:1.5;color:var(--text-secondary);max-width:74ch}
.fig__legend{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s6);margin-top:var(--s5)}
.fig__legend li{display:flex;align-items:center;gap:var(--s2);font-size:13px;color:var(--text-secondary)}
.key{width:8px;height:8px;border-radius:var(--r-pill);flex:0 0 8px;background:var(--accent-graphic)}
.key--mute{background:var(--border-default)}
.key--ink{background:var(--text-primary)}
.key--teal{background:var(--ln-data-2)}
.key--ring{background:transparent;border:2px solid var(--border-default);width:10px;height:10px;flex:0 0 10px}
.scrollx{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* --- F1 · Diez resultados frente a tres fuentes --- */
.versus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--border-default);border-radius:var(--r-lg);overflow:hidden}
.versus__col{padding:var(--s5)}
.versus__col+.versus__col{border-left:1px solid var(--border-hairline);background:var(--surface-warm)}
.versus__h{display:flex;align-items:baseline;gap:var(--s3)}
.slots{margin-top:var(--s5);display:grid;gap:var(--s2)}
.slot{display:flex;align-items:center;gap:var(--s3);height:22px}
.slot .rank{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);width:18px;flex:0 0 18px}
.slot .fill{height:8px;border-radius:var(--r-xs);background:var(--surface-sunken);flex:1}
.slot--cited{height:28px}
.slot--cited .fill{background:var(--accent-graphic);flex:0 0 32px;max-width:32px}
.slot--cited .rank{color:var(--text-brand)}
.slot__src{font-size:14px;font-weight:500;color:var(--text-primary)}
.voidbox{margin-top:var(--s4);border:1px dashed var(--border-default);border-radius:var(--r-sm);padding:var(--s4);font-size:13px;color:var(--text-muted);text-align:center}

/* --- F2 · Las tres capas del mercado --- */
.layers{display:grid;gap:var(--s2)}
.layer{
  display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,15rem);gap:var(--s5);align-items:center;
  border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--s4) var(--s5);background:var(--surface-card);
}
.layer__n{font-family:var(--font-mono);font-size:19px;font-weight:600;color:var(--text-muted);line-height:1}
.layer__t{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.layer__k{font-size:14px;line-height:1.55;color:var(--text-secondary);margin-top:var(--s2)}
.layer__who{font-size:13px;line-height:1.5;color:var(--text-muted)}
.layer--here{background:var(--text-primary);border-color:var(--text-primary);box-shadow:inset 4px 0 0 var(--accent-graphic)}
.layer--here .layer__n{color:var(--ln-brand-300)}
.layer--here .layer__t{color:var(--ln-neutral-0)}
.layer--here .layer__k{color:var(--ln-neutral-300)}
.layer--here .layer__who{color:var(--ln-brand-300);font-weight:500}

/* --- F3 · Authority Network --- */
.net{min-width:860px;width:100%;height:auto;display:block}
.net .edge{stroke:var(--border-default);stroke-width:1;fill:none}
.net .edge--shared{stroke:var(--accent-graphic);stroke-width:1.5;stroke-dasharray:5 5;opacity:.85}
.net .brandnode{fill:var(--text-primary)}
.net .brandring{fill:none;stroke:var(--accent-graphic);stroke-width:2}
.net .brandlabel{fill:#FFFFFF;font-family:var(--font-ui);font-size:11.5px;font-weight:600;letter-spacing:-.01em}
.net .voz-ext{fill:var(--accent-graphic)}
.net .voz-int{fill:var(--ln-data-2)}
.net .voz-ring{fill:none;stroke:var(--ln-neutral-0);stroke-width:3}
.net .nodelabel{fill:var(--text-secondary);font-family:var(--font-ui);font-size:12px}
.net .nodelabel--sm{font-size:10.5px;fill:var(--text-muted)}
.net .nodelabel--strong{fill:var(--text-primary);font-weight:500}

/* --- F4 · Barras de plataforma --- */
.bars{display:grid;gap:var(--s4)}
.pbar__h{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3)}
.pbar__name{font-size:14.5px;font-weight:500}
.pbar__val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;white-space:nowrap}
.pbar__track{display:flex;gap:2px;height:12px;margin-top:var(--s2)}
.pbar__seg{height:100%;border-radius:var(--r-xs);min-width:2px}
.pbar__seg--cite{background:var(--accent-graphic)}
.pbar__seg--human{background:var(--ln-neutral-300)}
.pbar__note{font-size:13px;line-height:1.45;color:var(--text-secondary);margin-top:var(--s2)}
.bartotal{border-top:1px solid var(--border-hairline);padding-top:var(--s4);margin-top:var(--s2)}
.bartotal .pbar__name,.bartotal .pbar__val{font-weight:600}

/* --- F5 · Matriz de 99 puntos --- */
.dots{display:flex;flex-wrap:wrap;gap:5px;max-width:420px}
.dots i{width:9px;height:9px;border-radius:var(--r-pill);display:block}
.dots i.signed{background:var(--accent-graphic)}
.dots i.corp{background:var(--ln-neutral-300)}

/* --- F6 · Barras de correlación --- */
.corr{display:grid;gap:var(--s6);max-width:760px}
.corr__row .corr__h{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4)}
.corr__lab{font-size:14px;line-height:1.4;max-width:34ch}
.corr__v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;line-height:1;letter-spacing:-.022em}
.corr__track{margin-top:var(--s3);height:14px;background:var(--surface-sunken);border-radius:var(--r-xs);overflow:hidden}
.corr__track i{display:block;height:100%;border-radius:var(--r-xs);background:var(--ln-neutral-300)}
.corr__row--lead .corr__track i{background:var(--accent-graphic)}

/* --- F7 · Carriles de ejecución --- */
.swim{min-width:1010px;display:grid;grid-template-columns:180px repeat(9,minmax(84px,1fr));row-gap:0}
.swim__lane{
  grid-column:1;display:flex;flex-direction:column;justify-content:center;
  padding:var(--s5) var(--s4) var(--s5) 0;border-top:1px solid var(--border-hairline);
}
.swim__lane b{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.swim__lane span{font-size:12px;color:var(--text-muted);margin-top:var(--s1)}
.swim__row{grid-column:2 / -1;border-top:1px solid var(--border-hairline);position:relative;min-height:92px;
  display:grid;grid-template-columns:repeat(9,minmax(84px,1fr));align-items:center}
.swim__row::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--border-hairline)}
.step{position:relative;padding:var(--s3) var(--s3) var(--s3) 0}
.step__n{
  width:24px;height:24px;border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:11px;font-weight:600;color:#FFFFFF;background:var(--text-primary);
}
.step--ln .step__n{background:var(--action-primary-bg)}
.step--voz .step__n{background:var(--ln-data-2)}
.step p{font-size:12px;line-height:1.4;color:var(--text-secondary);margin-top:var(--s2)}
.swim__lane--accent b{color:var(--text-brand)}
.swim__lane--voz b{color:var(--ln-data-2)}

/* --- F8 · Configuraciones de reparto --- */
.cfg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.cfg__c{border:1px solid var(--border-default);border-radius:var(--r-lg);padding:var(--s6)}
.cfg__c--on{border-color:var(--accent-graphic);box-shadow:inset 0 3px 0 var(--accent-graphic)}
.cfg__t{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary)}
.cfg__v{font-size:19px;font-weight:600;letter-spacing:-.02em;margin-top:var(--s3)}
.cfg__pips{display:flex;flex-wrap:wrap;gap:3px;margin-top:var(--s5)}
.cfg__pips i{display:block;height:8px;border-radius:var(--r-xs);background:var(--accent-graphic)}
.cfg__k{font-size:13px;line-height:1.55;color:var(--text-secondary);margin-top:var(--s5)}

/* --- F9 · Capacidad de la Voz --- */
.cap{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:var(--s8);align-items:center}
.cap__slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.cap__slot{border:1px solid var(--border-hairline);border-radius:var(--r-sm);padding:var(--s4);text-align:center}
.cap__slot b{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary)}
.cap__slot i{display:block;width:8px;height:8px;border-radius:var(--r-pill);background:var(--accent-graphic);margin:var(--s3) auto 0}

@media (max-width:860px){
  .layer{grid-template-columns:32px minmax(0,1fr);row-gap:var(--s3)}
  .layer__who{grid-column:2}
  .cfg{grid-template-columns:minmax(0,1fr)}
  .cap{grid-template-columns:minmax(0,1fr);gap:var(--s6)}
}
@media (max-width:640px){
  .versus{grid-template-columns:minmax(0,1fr)}
  .versus__col+.versus__col{border-left:0;border-top:1px solid var(--border-hairline)}
  .corr__v{font-size:24px}
}


/* ============================================================
   22. Figuras · segunda tanda
   ============================================================ */

/* --- Cascada (waterfall) --- */
.wf{min-width:1000px;width:100%;height:auto;display:block}
.wf .grid-l{stroke:var(--border-hairline);stroke-width:1}
.wf .axis{stroke:var(--border-default);stroke-width:1}
.wf .b-step{fill:var(--accent-graphic)}
.wf .b-anchor{fill:var(--text-primary)}
.wf .b-mark{fill:none;stroke:var(--text-primary);stroke-width:1.5}
.wf .conn{stroke:var(--border-default);stroke-width:1;stroke-dasharray:2 3}
.wf .noc{stroke:var(--text-primary);stroke-width:1;stroke-dasharray:6 4}
.wf .v{font-family:var(--font-mono);font-size:13px;font-weight:600;fill:var(--text-primary);text-anchor:middle}
.wf .v-anchor{font-size:16px}
.wf .ax{font-family:var(--font-mono);font-size:11px;fill:var(--text-secondary);text-anchor:end}
.wf .cat{font-family:var(--font-mono);font-size:11.5px;font-weight:600;fill:var(--text-brand);text-anchor:middle;letter-spacing:.06em}
.wf .cat--anchor{fill:var(--text-primary)}
.wf .sub{font-family:var(--font-ui);font-size:11.5px;fill:var(--text-secondary);text-anchor:middle}
.wf .note{font-family:var(--font-ui);font-size:11.5px;fill:var(--text-secondary)}

/* --- Detalle de acciones --- */
.acts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--border-hairline)}
.act{padding:var(--s5) var(--s5) var(--s5) 0;border-bottom:1px solid var(--border-hairline);border-right:1px solid var(--border-hairline)}
.act:nth-child(4n){border-right:0}
.act:not(:nth-child(4n+1)){padding-left:var(--s5)}
.act__h{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3)}
.act__id{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text-brand);letter-spacing:.06em}
.act__pp{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}
.act__t{font-size:14px;font-weight:600;line-height:1.35;margin-top:var(--s2)}
.act__k{font-size:13px;line-height:1.5;color:var(--text-secondary);margin-top:var(--s2)}
.act--on{background:var(--surface-warm)}
.act--on .act__id{color:var(--text-primary)}

/* --- Línea de tiempo --- */
.tl{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));row-gap:var(--s3);align-items:start;position:relative}
.tl__axis{grid-column:1 / -1;height:1px;background:var(--border-default);position:relative;margin:var(--s6) 0 var(--s4)}
.tl__pin{position:absolute;top:-4px;width:9px;height:9px;border-radius:var(--r-pill);background:var(--accent-graphic)}
.tl__m{padding-right:var(--s4)}
.tl__m b{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.tl__m span{font-size:13px;color:var(--text-secondary)}
.tl__band{border-radius:var(--r-sm);padding:var(--s3) var(--s4);font-size:12.5px;line-height:1.45}
.tl__band b{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:var(--s1)}
.tl__band--warm{background:var(--surface-warm)}
.tl__band--ink{background:var(--text-primary);color:var(--ln-neutral-300)}
.tl__band--ink b{color:var(--ln-brand-300)}
.tl__band--out{border:1px solid var(--border-default)}

/* --- Cuota de uso --- */
.share{display:grid;gap:var(--s3)}
.share__r{display:grid;grid-template-columns:minmax(0,6.5rem) minmax(0,1fr) 3.5rem;gap:var(--s4);align-items:center}
.share__n{font-size:14.5px}
.share__t{height:16px;background:var(--surface-sunken);border-radius:var(--r-xs);overflow:hidden}
.share__t i{display:block;height:100%;background:var(--accent-graphic);border-radius:var(--r-xs)}
.share__v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600;text-align:right}

/* --- Barra de factores apilada --- */
.stackbar{display:flex;gap:2px;height:26px;margin-top:var(--s5)}
.stackbar i{height:100%;border-radius:var(--r-xs);display:block}
.stackbar .s1{background:var(--accent-graphic)}
.stackbar .s2{background:var(--ln-brand-200)}
.stackbar .s3{background:var(--ln-neutral-200)}
.stackleg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);margin-top:var(--s5)}
.stackleg div{border-top:1px solid var(--border-hairline);padding-top:var(--s3)}
.stackleg b{display:flex;align-items:center;gap:var(--s2);font-family:var(--font-mono);font-size:16px;font-variant-numeric:tabular-nums}
.stackleg b i{width:8px;height:8px;border-radius:var(--r-pill);display:block}
.stackleg p{font-size:12.5px;line-height:1.5;color:var(--text-secondary);margin-top:var(--s2)}

/* --- Proceso en pasos horizontales --- */
.flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid var(--border-hairline)}
.flow__s{padding:var(--s5) var(--s4) var(--s5) 0;border-right:1px solid var(--border-hairline);position:relative}
.flow__s:last-child{border-right:0}
.flow__s:not(:first-child){padding-left:var(--s4)}
.flow__n{width:22px;height:22px;border-radius:var(--r-pill);background:var(--action-primary-bg);color:#FFFFFF;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;font-weight:600}
.flow__t{font-size:14px;font-weight:600;line-height:1.35;margin-top:var(--s3)}
.flow__k{font-size:13px;line-height:1.5;color:var(--text-secondary);margin-top:var(--s2)}
.flow__w{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);margin-top:var(--s3)}

/* --- Panel destacado sobre tinta --- */
.inkcard{background:var(--text-primary);border-radius:var(--r-lg);padding:var(--s6);box-shadow:inset 0 3px 0 var(--accent-graphic)}
.inkcard .k{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ln-brand-300)}
.inkcard .big{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.06;color:#FFFFFF;margin-top:var(--s3)}
.inkcard .u{font-size:13px;color:var(--ln-neutral-300)}
.inkcard p{font-size:12.5px;line-height:1.55;color:var(--ln-neutral-300);margin-top:var(--s4)}

@media (max-width:1100px){
  .acts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .act:nth-child(4n){border-right:1px solid var(--border-hairline)}
  .act:nth-child(2n){border-right:0}
  .act:not(:nth-child(4n+1)){padding-left:0}
  .act:nth-child(2n){padding-left:var(--s5)}
  .flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flow__s:nth-child(2n){border-right:0;padding-left:var(--s4)}
  .flow__s:nth-child(2n+1){padding-left:0}
  .flow__s{border-bottom:1px solid var(--border-hairline)}
}
@media (max-width:640px){
  .acts,.flow{grid-template-columns:minmax(0,1fr)}
  .act,.flow__s{border-right:0!important;padding-left:0!important}
  .stackleg{grid-template-columns:minmax(0,1fr);gap:var(--s3)}
  .share__r{grid-template-columns:minmax(0,5rem) minmax(0,1fr) 3rem;gap:var(--s3)}
  .tl{grid-template-columns:minmax(0,1fr)}
  .tl__axis{display:none}
}

/* ============================================================
   23. Movimiento — entrada por scroll e interacción
   Todo se anula bajo prefers-reduced-motion (ver bloque final).
   ============================================================ */

[data-reveal]{opacity:0;transform:translateY(12px);transition:opacity 440ms var(--ease),transform 440ms var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}

/* barras y medidores que crecen al entrar */
.pbar__track,.corr__track i,.share__t i,.stackbar i,.week__bar,.score__bar i,.cfg__pips i,.src2__row i{
  transition:width 700ms var(--ease),height 700ms var(--ease),transform 380ms var(--ease);
}
.pbar__seg{transition:width 700ms var(--ease)}

/* filas y tarjetas: respuesta al puntero */
table.t tbody tr{transition:background var(--m-fast) var(--ease)}
table.t tbody tr:hover{background:var(--surface-subtle)}
.act{transition:background var(--m-fast) var(--ease)}
.act:hover,.act.is-hot{background:var(--ln-brand-50)}
.cfg__c{transition:border-color var(--m-fast) var(--ease),box-shadow var(--m-fast) var(--ease),transform var(--m-fast) var(--ease)}
.cfg__c:hover{border-color:var(--border-control);box-shadow:var(--sh-md);transform:translateY(-2px)}
.layer{transition:border-color var(--m-fast) var(--ease),transform var(--m-fast) var(--ease)}
.layer:hover{border-color:var(--border-control)}
.layer--here:hover{border-color:var(--text-primary)}
.flow__s{transition:background var(--m-fast) var(--ease)}
.flow__s:hover{background:var(--surface-subtle)}
.pbar{transition:opacity var(--m-fast) var(--ease)}
.bars:hover .pbar{opacity:.55}
.bars:hover .pbar:hover{opacity:1}

/* cascada: barras que suben, etiquetas que aparecen, enlace con el detalle */
.wf rect.b-step,.wf rect.b-anchor{
  transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);
  transition:transform 560ms var(--ease),fill var(--m-fast) var(--ease);
}
.wf.is-in rect.b-step,.wf.is-in rect.b-anchor{transform:none}
.wf .wstep text,.wf rect.b-mark{opacity:0;transition:opacity 320ms var(--ease)}
.wf.is-in .wstep text,.wf.is-in rect.b-mark{opacity:1}
.wf .wstep{cursor:pointer}
.wf .wstep.is-hot rect.b-step{fill:var(--action-primary-bg)}
.wf .wstep.is-hot text.cat{fill:var(--text-primary)}
.wf .hit{fill:transparent}

/* red de autoridad: aristas que se dibujan, nodos que aparecen, firma compartida viva */
.net .edge path{transition:stroke-dashoffset 900ms var(--ease)}
.net circle,.net text{opacity:0;transition:opacity 420ms var(--ease)}
.net.is-in circle,.net.is-in text{opacity:1}
.net.is-in .edge--shared path{animation:ln-march 1200ms linear infinite}
@keyframes ln-march{to{stroke-dashoffset:-20}}

/* matriz de puntos: entrada escalonada */
.dots i{opacity:0;transform:scale(.4);transition:opacity 260ms var(--ease),transform 260ms var(--ease)}
.dots.is-in i{opacity:1;transform:none}

/* el punto de la antetítulo late una vez al entrar */
.eyebrow.is-in .dot{animation:ln-ping 900ms var(--ease) 1}
@keyframes ln-ping{0%{box-shadow:0 0 0 0 rgba(249,115,22,.45)}70%{box-shadow:0 0 0 7px rgba(249,115,22,0)}100%{box-shadow:0 0 0 0 rgba(249,115,22,0)}}

@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1!important;transform:none!important}
  .wf rect.b-step,.wf rect.b-anchor{transform:none!important}
  .wf .wstep text,.wf rect.b-mark,.net circle,.net text{opacity:1!important}
  .dots i{opacity:1!important;transform:none!important}
  .net.is-in .edge--shared path{animation:none}
  .eyebrow.is-in .dot{animation:none}
}

/* ============================================================
   24. Navegación con submenús
   ============================================================ */
.navitem{position:relative;display:flex;align-items:center}
.navlink{font-size:14px;text-decoration:none;color:var(--text-secondary);padding:var(--s2) 0;border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:6px;transition:color var(--m-fast) var(--ease)}
.navlink:hover{color:var(--text-primary)}
.navlink[aria-current="page"]{color:var(--text-primary);border-bottom-color:var(--accent-graphic)}
.navlink .caret{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:4px solid currentColor;opacity:.6;transition:transform var(--m-fast) var(--ease)}
.navitem.is-open > .navlink{color:var(--text-primary)}
.navitem.is-open > .navlink .caret{transform:rotate(180deg)}

.mega{
  position:absolute;top:calc(100% + 10px);right:0;left:auto;z-index:60;
  background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--r-xl);
  box-shadow:var(--sh-lg);padding:var(--s5);min-width:280px;
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity var(--m-fast) var(--ease),transform var(--m-fast) var(--ease),visibility var(--m-fast);
}
.navitem.is-open > .mega{opacity:1;visibility:visible;transform:none}
.navitem--wide{position:static}
.mega--wide{width:min(640px,calc(100vw - 2 * var(--gutter)));left:auto;right:0}
.mega__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:var(--s6)}
.mega a.megalink{display:block;text-decoration:none;padding:var(--s3);border-radius:var(--r-sm);transition:background var(--m-fast) var(--ease)}
.mega a.megalink:hover{background:var(--surface-subtle)}
.mega a.megalink b{display:block;font-size:14px;font-weight:600;color:var(--text-primary)}
.mega a.megalink span{display:block;font-size:13px;line-height:1.45;color:var(--text-secondary);margin-top:2px}
.mega__foot{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--border-hairline);font-size:11.5px;color:var(--text-secondary)}
.megabadge{display:inline-block;background:var(--ln-status-warning-bg);color:var(--ln-status-warning);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;padding:2px var(--s2);border-radius:var(--r-xs)}

/* mini gráfico del submenú */
.mini{display:grid;gap:var(--s2)}
.mini__r{display:grid;grid-template-columns:minmax(0,7.5rem) minmax(0,1fr) 2.6rem;gap:var(--s3);align-items:center}
.mini__n{font-size:12px;color:var(--text-primary)}
.mini__t{height:9px;background:var(--surface-sunken);border-radius:var(--r-xs);overflow:hidden}
.mini__t i{display:block;height:100%;background:var(--accent-graphic);border-radius:var(--r-xs);transition:width 600ms var(--ease)}
.mini__v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;text-align:right}

/* ============================================================
   25. Ficha de Voz (vista de la plataforma)
   ============================================================ */
.vozdlg{
  position:fixed;inset:0;z-index:100;display:none;
  align-items:center;justify-content:center;padding:var(--s5);
  background:rgba(26,25,23,.42);backdrop-filter:blur(2px);
}
.vozdlg[open],.vozdlg.is-open{display:flex}
.vozdlg__box{
  width:min(560px,100%);max-height:86vh;overflow:auto;background:#FFFFFF;
  border-radius:var(--r-xl);box-shadow:var(--sh-lg);border:1px solid var(--border-default);
  animation:ln-pop 200ms var(--ease);
}
@keyframes ln-pop{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.vozdlg__bar{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s5);background:#F7F3EE;border-bottom:1px solid #DFDBD5;border-radius:var(--r-xl) var(--r-xl) 0 0}
.vozdlg__bar .label{color:var(--text-secondary)}
.vozdlg__x{margin-left:auto;background:none;border:1px solid #DFDBD5;border-radius:var(--r-sm);width:26px;height:26px;line-height:1;cursor:pointer;color:var(--text-secondary);font-size:15px}
.vozdlg__x:hover{border-color:var(--border-control);color:var(--text-primary)}
.vozdlg__body{padding:var(--s6)}
.vozhead{display:flex;gap:var(--s4);align-items:flex-start}
.vozav{width:44px;height:44px;border-radius:var(--r-pill);flex:0 0 44px;display:flex;align-items:center;justify-content:center;color:#FFFFFF;font-weight:600;font-size:15px;background:#F97316}
.vozav--int{background:var(--ln-data-2)}
.vozhead h3{font-size:19px;font-weight:600;letter-spacing:-.018em;line-height:1.2}
.vozhead p{font-size:12.5px;color:#66635F;margin-top:2px}
.vozchips{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.vozkpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);margin-top:var(--s5);border-top:1px solid #DFDBD5;padding-top:var(--s5)}
.vozkpi div b{display:block;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;line-height:1}
.vozkpi div span{display:block;font-size:11.5px;color:#66635F;margin-top:4px;line-height:1.35}
.vozrow{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid #F4F3F1;font-size:13px}
.vozrow:last-of-type{border-bottom:0}
.vozrow .k{color:#66635F;min-width:9.5rem}
.vozrow .v{color:var(--text-primary);font-weight:500}
.vozsec{margin-top:var(--s5);border-top:1px solid #DFDBD5;padding-top:var(--s4)}
.vozdlg__foot{padding:var(--s4) var(--s6) var(--s6);display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center}
.vozdlg__note{font-size:11.5px;color:#87837D;padding:0 var(--s6) var(--s6)}
.net .vnode{cursor:pointer}
.net .vhit{fill:#FFFFFF;fill-opacity:0}
.net .vnode:hover .vhit,.net .vnode:focus-visible .vhit{fill-opacity:.55}
.net .vnode .voz-ring{transition:stroke var(--m-fast) var(--ease),stroke-width var(--m-fast) var(--ease)}
.net .vnode:hover .voz-ring,.net .vnode:focus .voz-ring{stroke:var(--accent-graphic);stroke-width:5}
.net .vnode:hover .nodelabel,.net .vnode:focus .nodelabel{fill:var(--text-primary);font-weight:500}
.net .vnode:focus{outline:none}
.net .vnode:focus-visible .voz-ring{stroke:var(--text-primary);stroke-width:5}
.nethint{display:inline-flex;align-items:center;gap:var(--s2);font-size:12px;color:var(--text-secondary)}
.nethint .pulse{width:8px;height:8px;border-radius:var(--r-pill);background:var(--accent-graphic);animation:ln-ping2 1800ms var(--ease) infinite}
@keyframes ln-ping2{0%{box-shadow:0 0 0 0 rgba(249,115,22,.5)}70%{box-shadow:0 0 0 8px rgba(249,115,22,0)}100%{box-shadow:0 0 0 0 rgba(249,115,22,0)}}

/* ============================================================
   26. Las dos puertas del héroe
   ============================================================ */
.gates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.gate{
  display:block;text-decoration:none;border:1px solid var(--border-default);border-radius:var(--r-lg);
  padding:var(--s5);background:var(--surface-card);
  transition:border-color var(--m-fast) var(--ease),box-shadow var(--m-fast) var(--ease),transform var(--m-fast) var(--ease);
}
.gate:hover{border-color:var(--border-control);box-shadow:var(--sh-md);transform:translateY(-2px)}
.gate__q{font-size:20px;font-weight:600;letter-spacing:-.018em}
.gate__k{font-size:14px;line-height:1.5;color:var(--text-secondary);margin-top:var(--s2)}
.gate__go{margin-top:var(--s4);display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);font-size:13.5px;color:var(--text-brand);font-weight:500}
.gate__go span{display:inline-flex;align-items:center;gap:4px}

@media (max-width:860px){ .gates{grid-template-columns:minmax(0,1fr)} }
@media (max-width:640px){
  .navitem--wide{position:relative}
  .mega{position:static;right:auto;left:auto;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-left:2px solid var(--border-hairline);border-radius:0;padding:var(--s2) 0 var(--s2) var(--s4);min-width:0;width:auto;display:none}
  .navitem.is-open > .mega{display:block}
  .mega--wide{width:auto}
  .mega__grid{grid-template-columns:minmax(0,1fr);gap:var(--s4)}
  .navitem{display:block;width:100%}
  .navlink{width:100%;justify-content:space-between;padding:var(--s3) 0;border-bottom:1px solid var(--border-hairline)}
  .vozdlg__box{max-height:92vh}
  .vozkpi{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2)}
}

/* ============================================================
   27. Pequeños múltiplos · serie anual por área
   ============================================================ */
.spgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s4)}
.sp{border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--s4);background:var(--surface-card)}
.sp__h{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s2)}
.sp__n{font-size:13.5px;font-weight:600;line-height:1.3}
.sp__d2{font-size:12px;font-weight:600;color:var(--text-brand);white-space:nowrap}
.sp__c{width:100%;height:auto;display:block;margin-top:var(--s3);overflow:visible}
.sp__ax{stroke:var(--border-hairline);stroke-width:1}
.sp__fill{fill:var(--ln-brand-50)}
.sp__line{fill:none;stroke:var(--accent-graphic);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.sp__d{fill:var(--accent-graphic);opacity:.5}
.sp__end{fill:var(--accent-graphic);stroke:#FFFFFF;stroke-width:2}
.sp__val{font-family:var(--font-mono);font-size:14px;font-weight:600;fill:var(--text-primary)}
.sp__prev{font-family:var(--font-mono);font-size:11px;fill:var(--text-secondary)}
.sp__yr{font-family:var(--font-mono);font-size:9.5px;fill:var(--text-secondary)}
.sp .sp__line{stroke-dasharray:var(--len,400);stroke-dashoffset:var(--len,400);transition:stroke-dashoffset 900ms var(--ease)}
.sp.is-in .sp__line{stroke-dashoffset:0}
.sp .sp__fill,.sp .sp__d,.sp .sp__end,.sp .sp__val,.sp .sp__prev{opacity:0;transition:opacity 420ms var(--ease) 260ms}
.sp.is-in .sp__fill{opacity:1}
.sp.is-in .sp__d{opacity:.5}
.sp.is-in .sp__end,.sp.is-in .sp__val,.sp.is-in .sp__prev{opacity:1}
.sp{transition:border-color var(--m-fast) var(--ease),box-shadow var(--m-fast) var(--ease)}
.sp:hover{border-color:var(--border-default);box-shadow:var(--sh-sm)}
@media (prefers-reduced-motion:reduce){
  .sp .sp__line{stroke-dashoffset:0!important}
  .sp .sp__fill,.sp .sp__d,.sp .sp__end,.sp .sp__val,.sp .sp__prev{opacity:1!important}
}
@media print{
  .sp .sp__line{stroke-dashoffset:0!important}
  .sp .sp__fill,.sp .sp__d,.sp .sp__end,.sp .sp__val,.sp .sp__prev{opacity:1!important}
}
@media (max-width:1100px){ .spgrid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:640px){ .spgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)} }

/* ---- Trío de puntos a una fila ---- */
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);border-top:1px solid var(--border-hairline);padding-top:var(--s4)}
.trio__h{grid-column:1 / -1;margin-bottom:calc(var(--s2) * -1)}
.trio > div{display:flex;gap:var(--s3);align-items:flex-start}
.trio > div > .key{margin-top:6px}
.trio p{font-size:13.5px;line-height:1.5;color:var(--text-secondary)}
@media (max-width:860px){ .trio{grid-template-columns:minmax(0,1fr);gap:var(--s3)} }

/* ---- Paneles por generación ---- */
.gengrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}
.genpanel{border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--s5)}
.genpanel__t{font-size:14px;font-weight:600;line-height:1.35;min-height:2.7em}
.genpanel__f{font-size:12.5px;line-height:1.5;color:var(--text-secondary);margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--border-hairline)}
.share__r--hot .share__t i{background:var(--action-primary-bg)}
.share__r--hot .share__n{font-weight:600}

/* ---- Multiplicadores ---- */
.mults{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.mult{border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--s5);background:var(--surface-warm)}
.mult__s{font-size:14px;font-weight:600;line-height:1.3}
.mult__r{display:flex;align-items:baseline;gap:var(--s3);margin-top:var(--s4)}
.mult__x{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:30px;font-weight:600;line-height:1;color:var(--text-brand);min-width:3.6rem}
.mult__y{font-size:12.5px;color:var(--text-secondary);line-height:1.35}
.mult__c{font-size:12.5px;line-height:1.5;color:var(--text-primary);margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--border-default)}
@media (max-width:860px){ .gengrid,.mults{grid-template-columns:minmax(0,1fr)} .genpanel__t{min-height:0} }

/* ============================================================
   28. v10 · Hechos verificables · respuesta por motor · panel ·
       comparativa · FAQ · «Pregúntale a la IA» · cumplimiento
   ============================================================ */

/* ---- Héroe: tercera línea para la Voz ---- */
.hero__voz{margin-top:var(--s4);font-size:14px;color:var(--text-secondary)}
.hero__voz a{color:var(--text-primary);font-weight:500;text-decoration:none;border-bottom:1px solid var(--ln-brand-200)}
.hero__voz a:hover{border-bottom-color:var(--accent-graphic)}

/* ---- Franja de hechos verificables ---- */
.facts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;border-top:1px solid var(--border-hairline);border-bottom:1px solid var(--border-hairline);margin-top:var(--s8)}
.facts > div{padding:var(--s5) var(--s4) var(--s5) 0;border-right:1px solid var(--border-hairline);padding-left:var(--s4)}
.facts > div:first-child{padding-left:0}
.facts > div:last-child{border-right:0}
.facts .n{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:26px;line-height:1.05;letter-spacing:-.02em;font-weight:600}
.facts .n small{font-size:13px;font-weight:500;color:var(--text-secondary);letter-spacing:0;margin-left:2px}
.facts .k{margin-top:var(--s2);font-size:12.5px;line-height:1.4;color:var(--text-secondary)}
.facts__note{margin-top:var(--s3);font-size:12.5px;color:var(--text-muted)}
@media (max-width:1100px){ .facts{grid-template-columns:repeat(3,minmax(0,1fr))} .facts > div:nth-child(3){border-right:0} .facts > div:nth-child(n+4){border-top:1px solid var(--border-hairline)} .facts > div:nth-child(4){padding-left:0} }
@media (max-width:640px){ .facts{grid-template-columns:repeat(2,minmax(0,1fr))} .facts > div{border-right:0!important;border-top:0!important;padding-left:0} .facts > div:nth-child(n+3){border-top:1px solid var(--border-hairline)!important} }

/* ---- Una pregunta, tres motores ---- */
.engines3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.eng{border:1px solid var(--border-hairline);border-radius:var(--r-lg);background:var(--surface-card);overflow:hidden;display:flex;flex-direction:column}
.eng__h{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border-hairline);background:var(--surface-subtle)}
.eng__h .dot{width:8px;height:8px;border-radius:var(--r-pill);flex:0 0 8px}
.eng__h b{font-size:13.5px;font-weight:600}
.eng__h .mono{margin-left:auto;font-size:11px;color:var(--text-secondary)}
.eng__a{padding:var(--s4);font-size:13.5px;line-height:1.55;color:var(--text-primary)}
.eng__a em{font-style:normal;background:var(--ln-brand-50);border-bottom:1px solid var(--ln-brand-200)}
.eng__s{padding:0 var(--s4) var(--s4);margin-top:auto;display:grid;gap:var(--s2)}
.eng__s .label{font-size:10px;margin-bottom:2px}
.srcrow{display:flex;align-items:center;gap:var(--s2);font-size:12.5px;line-height:1.35}
.srcrow .who{flex:1 1 auto}
.srcrow .kind{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:var(--r-xs);white-space:nowrap}
.kind--voz{background:var(--ln-brand-50);color:var(--text-brand)}
.kind--inst{background:var(--surface-sunken);color:var(--text-secondary)}
.kind--marca{background:var(--surface-sunken);color:var(--text-secondary)}
.kind--medio{background:var(--surface-sunken);color:var(--text-secondary)}
.readout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin-top:var(--s5);border-top:1px solid var(--border-hairline);padding-top:var(--s4)}
.readout .n{font-family:var(--font-mono);font-size:22px;font-weight:600;line-height:1.05}
.readout .k{font-size:12.5px;color:var(--text-secondary);margin-top:var(--s1);line-height:1.4}
@media (max-width:860px){ .engines3,.readout{grid-template-columns:minmax(0,1fr)} }

/* ---- Panel de medición · 50 × 7 ---- */
.panel{border:1px solid var(--border-hairline);border-radius:var(--r-lg);overflow:hidden;background:var(--surface-card)}
.panel__bar{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border-hairline);background:var(--surface-subtle)}
.panel__bar .label{font-size:10.5px}
.panel__bar .mono{margin-left:auto;font-size:11px;color:var(--text-secondary)}
.panel__body{padding:var(--s4)}
.heat{display:grid;grid-template-columns:44px repeat(7,minmax(0,1fr));gap:3px;align-items:center}
.heat__h{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);text-align:center;padding-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.heat__q{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);padding-right:var(--s2);white-space:nowrap}
.heat i{display:block;height:12px;border-radius:2px;background:var(--surface-sunken)}
.heat i.c{background:var(--accent-graphic)}
.heat i.m{background:var(--ln-brand-200)}
.heat i.x{background:var(--surface-sunken)}
.panel__tot{display:grid;grid-template-columns:44px repeat(7,minmax(0,1fr));gap:3px;margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--border-hairline)}
.panel__tot span{font-family:var(--font-mono);font-size:11px;text-align:center;font-variant-numeric:tabular-nums}
.panel__tot span:first-child{text-align:left;color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding-right:var(--s2)}
.panel__leg{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin-top:var(--s3)}
.panel__leg li{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}
.panel__leg i{width:12px;height:12px;border-radius:2px;display:inline-block}
@media (max-width:640px){ .heat__h{font-size:8.5px} .heat__q{font-size:9px} }

/* ---- Comparativa herramientas vs Linaris ---- */
.cmp{width:100%;border-collapse:collapse;border:1px solid var(--border-hairline);border-radius:var(--r-lg);overflow:hidden;background:var(--surface-card)}
.cmp th,.cmp td{padding:var(--s3) var(--s4);vertical-align:top;border-bottom:1px solid var(--border-hairline);font-size:13.5px;line-height:1.5;text-align:left}
.cmp th{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--text-secondary);background:var(--surface-subtle)}
.cmp tr:last-child td{border-bottom:0}
.cmp td:first-child{font-weight:600;width:20%}
.cmp .who{display:block;font-size:12px;color:var(--text-secondary);font-family:var(--font-ui);letter-spacing:0;text-transform:none;font-weight:400;margin-top:2px}
.cmp th.here,.cmp td.here{background:var(--ln-brand-50)}
.cmp th.here{color:var(--text-primary)}
.cmp td.here{font-weight:500}
.cmpwrap{overflow-x:auto}
.cmp{min-width:720px}

/* ---- Preguntas frecuentes ---- */
.faq{border-top:1px solid var(--border-hairline)}
.faq details{border-bottom:1px solid var(--border-hairline)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:var(--s4);padding:var(--s4) 0;font-size:16px;font-weight:600;line-height:1.35;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-mono);font-weight:500;color:var(--text-secondary);margin-left:auto;flex:0 0 auto;font-size:18px;line-height:1;transition:transform var(--m-fast) var(--ease)}
.faq details[open] summary::after{content:"–"}
.faq summary:hover{color:var(--text-brand)}
.faq .faq__a{padding:0 0 var(--s5);font-size:14.5px;line-height:1.6;color:var(--text-secondary);max-width:72ch}
.faq .faq__a strong{color:var(--text-primary)}
.faq2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s10)}
@media (max-width:860px){ .faq2{grid-template-columns:minmax(0,1fr)} }

/* ---- «Pregúntale a la IA» ---- */
.askai{border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--s5);background:var(--surface-warm)}
.askai__row{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;margin-top:var(--s4)}
.askai__in{flex:1 1 260px;height:42px;border:1px solid var(--border-default);border-radius:var(--r-md);padding:0 var(--s4);background:var(--surface-card);font-size:15px}
.askai__in:focus{outline:2px solid var(--action-primary-bg);outline-offset:1px}
.askai__btns{display:flex;flex-wrap:wrap;gap:var(--s2)}
.askai__p{margin-top:var(--s4);font-family:var(--font-mono);font-size:12.5px;line-height:1.55;color:var(--text-secondary);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--r-sm);padding:var(--s3) var(--s4);white-space:pre-wrap}
.askai__p em{font-style:normal;color:var(--text-brand)}

/* ---- Franja de cumplimiento en el pie ---- */
.comply{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);padding:var(--s5) 0;border-top:1px solid var(--border-hairline);border-bottom:1px solid var(--border-hairline);margin-bottom:var(--s6)}
.comply > div{display:flex;gap:var(--s3);align-items:flex-start}
.comply .key{width:8px;height:8px;border-radius:var(--r-pill);background:var(--ln-status-success);flex:0 0 8px;margin-top:6px}
.comply b{display:block;font-size:13px;font-weight:600}
.comply p{font-size:12.5px;line-height:1.45;color:var(--text-secondary);margin-top:2px}
@media (max-width:860px){ .comply{grid-template-columns:minmax(0,1fr);gap:var(--s3)} }

/* ---- Plazos ---- */
.plazos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.plazo{border-top:2px solid var(--accent-graphic);padding-top:var(--s3)}
.plazo .w{font-family:var(--font-mono);font-size:13px;font-weight:600}
.plazo .t{font-size:13.5px;margin-top:var(--s1);line-height:1.4}
.plazo .k{font-size:12.5px;color:var(--text-secondary);margin-top:var(--s1);line-height:1.4}
@media (max-width:860px){ .plazos{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* ============================================================
   29. v11 · Whitepaper descargable · beneficios por audiencia
   ============================================================ */
.wp{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s8);border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--s8);background:var(--surface-warm)}
.wp__doc{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--s6);align-items:start}
.wp__cover{aspect-ratio:1/1.414;border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-card);padding:12px 10px;display:flex;flex-direction:column;justify-content:space-between}
.wp__cover .brand__w{font-size:9px}
.wp__cover .brand__bar{height:11px;width:2px}
.wp__cover .rulebar{width:22px;height:3px;margin:0 0 6px}
.wp__cover b{display:block;font-size:11px;line-height:1.15;letter-spacing:-.01em;font-weight:600}
.wp__cover span{display:block;font-family:var(--font-mono);font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-top:8px}
.wp__t{font-size:20px;line-height:1.25;font-weight:600;letter-spacing:-.016em}
.wp__k{font-size:14px;line-height:1.55;color:var(--text-secondary);margin-top:var(--s2)}
.wp__list{margin-top:var(--s4);display:grid;gap:var(--s1)}
.wp__list li{font-size:13.5px;line-height:1.5;padding-left:var(--s4);position:relative;color:var(--text-primary)}
.wp__list li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent-graphic)}
.wp__meta{margin-top:var(--s4);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.wp__form{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--s5)}
.wp__form .field{margin-top:var(--s3)}
.wp__form .seg{display:flex;gap:var(--s2);margin-top:var(--s3)}
.wp__form .seg label{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--s2);height:38px;border:1px solid var(--border-default);border-radius:var(--r-md);font-size:14px;cursor:pointer}
.wp__form .seg input{margin:0}
.wp__form .seg label:has(input:checked){border-color:var(--text-primary);background:var(--surface-subtle);font-weight:500}
@media (max-width:1100px){ .wp{grid-template-columns:minmax(0,1fr)} }
@media (max-width:640px){ .wp{padding:var(--s5)} .wp__doc{grid-template-columns:88px minmax(0,1fr);gap:var(--s4)} }

/* ---- Beneficios por audiencia (home) ---- */
.aud{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6)}
.aud__c{border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--s6);background:var(--surface-card);display:flex;flex-direction:column}
.aud__h{display:flex;align-items:center;gap:var(--s3)}
.aud__h .h3{margin:0}
.ben{display:grid;gap:0;margin-top:var(--s5);border-top:1px solid var(--border-hairline)}
.ben > div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s4);align-items:start;padding:var(--s4) 0;border-bottom:1px solid var(--border-hairline)}
.ben b{display:block;font-size:16px;line-height:1.3;letter-spacing:-.012em;font-weight:600}
.ben p{font-size:13.5px;line-height:1.5;color:var(--text-secondary);margin-top:var(--s1)}
.ben .fact{font-family:var(--font-mono);font-size:12px;line-height:1.35;color:var(--text-primary);text-align:right;min-width:104px;max-width:150px;padding-top:2px}
.ben .fact small{display:block;font-size:10.5px;color:var(--text-muted);font-family:var(--font-ui);letter-spacing:0;margin-top:2px}
.aud__foot{margin-top:auto;padding-top:var(--s5);display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
@media (max-width:860px){ .aud{grid-template-columns:minmax(0,1fr)} .ben > div{grid-template-columns:minmax(0,1fr)} .ben .fact{text-align:left;min-width:0;max-width:none} }

/* ============================================================
   30. v11.1 · Voz UGC · tramos · semáforo · dos firmas
   ============================================================ */
.tramos{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s2)}
.tramo{border-top:2px solid var(--accent-graphic);padding-top:var(--s3)}
.tramo .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;line-height:1}
.tramo .k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-top:var(--s1)}
.tramo:nth-child(1){border-top-width:2px} 
@media (max-width:860px){ .tramos{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media (max-width:640px){ .tramos{grid-template-columns:repeat(2,minmax(0,1fr))} }

.sem{border-top:1px solid var(--border-hairline)}
.sem > div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:var(--s5);padding:var(--s4) 0;border-bottom:1px solid var(--border-hairline);align-items:start}
.sem .tag{display:flex;align-items:center;gap:var(--s2);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.sem .tag i{width:10px;height:10px;border-radius:2px;flex:0 0 10px}
.sem .tag--ok{color:var(--ln-status-success)} .sem .tag--ok i{background:var(--ln-status-success)}
.sem .tag--warn{color:var(--ln-status-warning)} .sem .tag--warn i{background:var(--ln-status-warning)}
.sem .tag--no{color:var(--ln-status-danger)} .sem .tag--no i{background:var(--ln-status-danger)}
.sem p{font-size:14px;line-height:1.55;color:var(--text-primary)}
.sem p small{display:block;font-size:12.5px;color:var(--text-secondary);margin-top:var(--s1)}
@media (max-width:640px){ .sem > div{grid-template-columns:minmax(0,1fr);gap:var(--s2)} }

.two{width:100%;border-collapse:collapse;border:1px solid var(--border-hairline);border-radius:var(--r-lg);overflow:hidden;background:var(--surface-card)}
.two th,.two td{padding:var(--s3) var(--s4);vertical-align:top;border-bottom:1px solid var(--border-hairline);font-size:13.5px;line-height:1.5;text-align:left}
.two th{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--text-secondary);background:var(--surface-subtle)}
.two tr:last-child td{border-bottom:0}
.two td:first-child{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);width:22%;padding-top:14px}
.two th.here,.two td.here{background:var(--ln-brand-50)}
.two th.here{color:var(--text-brand)}
.twowrap{overflow-x:auto}
.two{min-width:560px}

.decl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}
.decl .pill{display:inline-block;font-family:var(--font-mono);font-size:12px;padding:3px 8px;border-radius:var(--r-xs);background:var(--surface-sunken);margin:0 6px 6px 0}
.decl .pill--no{text-decoration:line-through;color:var(--text-muted)}
@media (max-width:640px){ .decl{grid-template-columns:minmax(0,1fr)} }

/* ============================================================
   31. v12 · Red de Autoridad · grafo experiencial (simulación)
   ============================================================ */
.red{margin-top:var(--s8)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.red__bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);margin-bottom:var(--s3)}
.red__sim{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-brand);border:1px solid var(--ln-brand-200);background:var(--ln-brand-50);padding:4px 8px;border-radius:var(--r-xs);white-space:nowrap}
.red__chips{display:flex;flex-wrap:wrap;gap:var(--s2)}
.chip{font-family:var(--font-mono);font-size:12px;line-height:1;padding:7px 10px;border-radius:var(--r-sm);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;transition:border-color var(--m-fast) var(--ease),background var(--m-fast) var(--ease),color var(--m-fast) var(--ease)}
.chip:hover{border-color:var(--border-control);color:var(--text-primary)}
.chip[aria-pressed="true"]{background:var(--ln-neutral-900);border-color:var(--ln-neutral-900);color:#fff}
.red__tools{display:flex;gap:var(--s2);margin-left:auto;align-items:center}
.red__tools .input{height:34px;font-size:13px;width:200px;padding:0 var(--s3)}
.red__tools .btn{height:34px;padding:0 var(--s3);font-size:13px}
.red__stage{position:relative;height:clamp(460px,64vh,720px);border:1px solid var(--border-default);border-radius:var(--r-lg);background:var(--surface-card);overflow:hidden;
  background-image:radial-gradient(circle at 1px 1px,var(--ln-neutral-100) 1px,transparent 0);background-size:22px 22px}
.red__stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.red__stage canvas:active{cursor:grabbing}
.red__hint{position:absolute;right:var(--s3);bottom:var(--s3);font-family:var(--font-mono);font-size:11px;color:var(--text-muted);background:rgba(250,250,249,.85);padding:3px 8px;border-radius:var(--r-xs);pointer-events:none}
.rc{position:absolute;z-index:3;width:264px;max-width:calc(100% - 24px);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--r-lg);box-shadow:0 12px 32px rgba(26,25,23,.14);padding:var(--s4);font-size:13px}
.rc[hidden]{display:none!important}
.rc__k{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}
.rc__k i{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 9px}
.rc__n{font-size:17px;font-weight:600;line-height:1.2;margin-top:6px}
.rc__s{color:var(--text-secondary);margin-top:2px}
.rc__rows{margin:var(--s3) 0 0;display:grid;gap:4px}
.rc__rows>div{display:flex;justify-content:space-between;gap:var(--s3);border-top:1px solid var(--border-subtle,var(--ln-neutral-100));padding-top:4px}
.rc__rows dt{color:var(--text-muted)}
.rc__rows dd{margin:0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}
.rc__cta{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.rc__cta .btn{height:32px;padding:0 var(--s3);font-size:12px}
.rc__note{margin-top:var(--s3);font-size:11px;line-height:1.4;color:var(--text-muted)}
.rc--docs{width:300px}
.rc__docs{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:6px}
.rc__docs li{display:flex;gap:8px;align-items:flex-start;border-top:1px solid var(--border-hairline);padding-top:6px}
.rc__docs li>span:last-child{display:grid;gap:2px}
.rc__docs b{font-weight:600;font-size:12.5px;line-height:1.3}
.rc__docs small{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}
.rc__pdf{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.06em;color:#fff;background:var(--accent-graphic);border-radius:3px;padding:3px 4px;margin-top:2px}
.rc__hint{margin-top:var(--s3);font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}
.red__foot{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);align-items:center;margin-top:var(--s3)}
.legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);margin:0;padding:0;list-style:none}
.legend li{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);white-space:nowrap}
.legend i{width:12px;height:12px;border-radius:50%;display:inline-block;flex:0 0 12px;box-sizing:border-box}
.legend .l-brand{background:#1A1917}
.legend .l-int{background:#006C75;width:9px;height:9px;flex-basis:9px}
.legend .l-ext{background:#F97316}
.legend .l-hollow{background:#fff;border:2px dashed #F97316}
.legend .l-soon{background:#F97316;box-shadow:0 0 0 2px #fff,0 0 0 4px #15803D}
.legend .l-free{background:#F97316;box-shadow:0 0 0 2px #fff,0 0 0 4px #F97316}
.legend .l-ugc{background:#FDBA74;width:8px;height:8px;flex-basis:8px}
.legend .l-pulse{width:8px;height:8px;flex-basis:8px;background:#F97316;box-shadow:0 0 0 4px rgba(249,115,22,.25)}
.red__status{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);margin-left:auto}
.red__list{margin:var(--s3) 0 0;padding-left:1.2em;font-size:13px;color:var(--text-secondary)}
.red__list li+li{margin-top:2px}
@media (max-width:760px){
  .red__hint{display:none}
  .red__stage{height:clamp(380px,60vh,520px)}
  .red__tools{margin-left:0;width:100%;flex-wrap:wrap}
  .red__tools .input{flex:1 1 100%;width:auto}
  .red__tools .btn{flex:1 1 auto;white-space:nowrap;padding:0 var(--s2);font-size:12px}
  .red__status{margin-left:0}
  .rc{width:240px}
}
/* 31b · v12.2 · controles del grafo: zoom, foco local, leyenda interactiva, crecimiento */
.red__stage canvas:focus-visible{outline:2px solid var(--action-primary-bg);outline-offset:-2px}
.red__zoom{position:absolute;right:var(--s3);top:var(--s3);display:flex;flex-direction:column;gap:2px;z-index:2}
.red__zoom button{width:32px;height:32px;border:1px solid var(--border-default);background:var(--surface-card);border-radius:var(--r-sm);font:600 16px/1 var(--font-mono);color:var(--text-primary);cursor:pointer;display:grid;place-items:center}
.red__zoom button:hover{background:var(--surface-subtle);border-color:var(--border-control)}
.red__unfocus{position:absolute;left:var(--s3);top:var(--s3);z-index:2;height:32px;padding:0 var(--s3);font-size:12px}
.red__unfocus[hidden]{display:none!important}
.legend li[data-red-kind]{cursor:pointer;border-radius:var(--r-xs);padding:2px 6px;margin:-2px -6px}
.legend li[data-red-kind]:hover{background:var(--surface-sunken)}
.legend li[aria-pressed="false"]{opacity:.4;text-decoration:line-through}
.red__tools .btn[aria-pressed="true"][data-red-grow]{background:var(--ln-brand-50);border-color:var(--ln-brand-200);color:var(--text-brand)}
.rc__cta .btn--text{height:auto;padding:0;font-size:12px;align-self:center}
@media (max-width:760px){ .red__zoom{top:auto;bottom:var(--s3)} }
/* 31c · v12.3 · publicación en canales y espejo */
.legend .l-pub{background:#1A1917;width:11px;height:11px;flex-basis:11px;box-shadow:0 0 0 2px #fff,0 0 0 3px #F97316}
.legend .l-mirror{background:#fff;border:1.5px solid #F97316;width:11px;height:11px;flex-basis:11px}
.red__count{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);margin:var(--s2) 0 0;min-height:14px}
/* 31d · v12.4 · modo 3D */
.red__tools .btn[aria-pressed="true"][data-red-mode]{background:var(--ln-neutral-900);border-color:var(--ln-neutral-900);color:#fff}
/* 31e · v12.5 · Señal v2.0 en el grafo: título, tema oscuro, iconos de redes, voz interna con aro */
.red__title{font-family:var(--font-ui);font-weight:600;font-size:15px;letter-spacing:-.01em;color:var(--text-primary);margin-right:var(--s2)}
.legend .l-int{background:#F97316;width:9px;height:9px;flex-basis:9px;box-shadow:0 0 0 1.5px #fff,0 0 0 3px #F97316}
.legend .l-brand{background:#1A1917;box-shadow:0 0 0 1.5px #fff,0 0 0 3px #F97316}
.legend .soc{display:inline-flex;gap:4px;margin-left:4px;color:var(--text-secondary)}
.legend .soc img{width:11px;height:11px;display:block}
.red__tools .btn[aria-pressed="true"][data-red-theme]{background:var(--ln-neutral-900);border-color:var(--ln-neutral-900);color:#fff}
.red--dark .red__stage{background:#1A1917;border-color:#454340;background-image:radial-gradient(circle at 1px 1px,#2A2825 1px,transparent 0)}
.red--dark .rc{background:#2A2825;border-color:#454340;color:#F4F3F1;box-shadow:0 12px 32px rgba(0,0,0,.5)}
.red--dark .rc__k,.red--dark .rc__s,.red--dark .rc__rows dt,.red--dark .rc__note,.red--dark .rc__hint{color:#AFABA5}
.red--dark .rc__rows>div{border-top-color:#454340}
.red--dark .rc .btn--secondary{background:#1A1917;color:#F4F3F1;border-color:#666360}
.red--dark .red__zoom button{background:#2A2825;border-color:#454340;color:#F4F3F1}
.red--dark .red__unfocus{background:#2A2825;color:#F4F3F1;border-color:#666360}
.red--dark .red__hint{background:rgba(26,25,23,.85);color:#AFABA5}
.red--dark .red__stage canvas:focus-visible{outline-color:#F97316}
/* 31f · v12.6 · filtros Marcas/Voces/UGC, contadores por red, voz disponible */
.red__filters{display:flex;gap:var(--s2);padding-right:var(--s3);margin-right:var(--s1);border-right:1px solid var(--border-hairline)}
.chip--f{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-ui);font-weight:500}
.chip--f i{width:10px;height:10px;border-radius:50%;display:inline-block;box-sizing:border-box}
.chip--f[aria-pressed="true"]{background:var(--surface-card);border-color:var(--ln-neutral-900);color:var(--text-primary)}
.chip--f[aria-pressed="false"]{opacity:.45;text-decoration:line-through}
.chip--f .l-brand{background:#1A1917;box-shadow:0 0 0 1px #fff,0 0 0 2px #F97316}
.chip--f .l-ext{background:#F97316}
.chip--f .l-ugc{background:#FDBA74}
.legend .l-avail{background:#F97316;width:9px;height:9px;flex-basis:9px;box-shadow:0 0 0 2px #fff;outline:1.5px dashed #F97316;outline-offset:2px}
.pubs{margin-top:var(--s4);border:1px solid var(--border-hairline);border-radius:var(--r-lg);background:var(--surface-card);padding:var(--s3) var(--s4)}
.pubs__h{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.pubs__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4);margin-top:var(--s3)}
.pubs__t{display:flex;align-items:center;gap:var(--s2);border-left:1px solid var(--border-hairline);padding-left:var(--s3);min-height:34px}
.pubs__t:first-child{border-left:0;padding-left:0}
.pubs__t img{width:16px;height:16px;flex:0 0 16px}
.pubs__k{font-size:13px;color:var(--text-secondary)}
.pubs__t > b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;margin-left:auto;line-height:1}
.pubs__t--total{background:var(--surface-warm);border-left:0;border-radius:var(--r-sm);padding:var(--s2) var(--s3);flex-wrap:wrap}
.pubs__t--total .pubs__k{font-weight:600;color:var(--text-primary)}
.pubs__s{flex-basis:100%;font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}
.pubs__s b{font-weight:600;color:var(--text-primary)}
.red--dark .pubs{background:#2A2825;border-color:#454340;color:#F4F3F1}
.red--dark .pubs__t--total{background:#1A1917}.red--dark .pubs__k{color:#AFABA5}.red--dark .pubs__t--total .pubs__k,.red--dark .pubs__s b{color:#F4F3F1}
@media (max-width:760px){ .pubs__row{grid-template-columns:repeat(2,minmax(0,1fr))} .pubs__t{border-left:0;padding-left:0} .red__filters{border-right:0;padding-right:0;width:100%} }
/* 31g · v12.7 · separador de menú, desplegables con casillas, barra del grafo simplificada, KPIs arriba */
.nav__sep{width:1px;height:18px;background:var(--border-control);margin:0 var(--s2);flex:0 0 1px}
@media (max-width:820px){ .nav__sep{display:none} }
.red__head{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s3)}
.red__head .red__sim{border:0;background:none;padding:0;color:var(--text-muted)}
.red .pubs{margin:0 0 var(--s3)}
.red__bar{margin-bottom:var(--s3);gap:var(--s2)}
.red__bar .input{height:34px;font-size:13px;width:220px;padding:0 var(--s3)}
.red__tools .btn{height:34px;padding:0 var(--s3);font-size:13px}
/* vistas del grafo: la red · nodo de marca · voz */
.red__views{display:inline-flex;height:34px;border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-card);overflow:hidden}
.red__views button{border:0;background:none;padding:0 var(--s3);font:500 13px/1 var(--font-ui);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-right:1px solid var(--border-hairline)}
.red__views button:last-child{border-right:0}
.red__views button:hover{color:var(--text-primary)}
.red__views button[aria-pressed="true"]{background:var(--ln-neutral-900);color:#fff}
.red__bar .red__pick{width:240px}
.red--dark .red__views{background:#2A2825;border-color:#454340}
.red--dark .red__views button{color:#B8B4AE;border-color:#454340}
.red--dark .red__views button[aria-pressed="true"]{background:#F4F3F1;color:#1A1917}
.red--dark .red__pick{background:#2A2825;border-color:#454340;color:#F4F3F1}
.dd{position:relative}
.dd__btn{height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 var(--s3);border:1px solid var(--border-default);border-radius:var(--r-sm);background:var(--surface-card);font:500 13px/1 var(--font-ui);color:var(--text-primary);cursor:pointer;white-space:nowrap}
.dd__btn:hover{border-color:var(--border-strong)}
.dd__btn b{font-family:var(--font-mono);font-weight:500;font-size:12px;color:var(--text-secondary)}
.dd__btn .caret{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:4px solid currentColor;opacity:.6;transition:transform var(--m-fast) var(--ease)}
.dd.is-open .dd__btn{border-color:var(--border-strong)}
.dd.is-open .dd__btn .caret{transform:rotate(180deg)}
.dd__panel{position:absolute;left:0;top:calc(100% + 6px);z-index:30;min-width:260px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--r-md);box-shadow:var(--sh-lg);padding:var(--s2) var(--s3) var(--s3);display:none}
.dd.is-open .dd__panel{display:block}
.dd__links{display:flex;gap:var(--s3);font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:var(--s1) 0 var(--s2);border-bottom:1px solid var(--border-hairline);margin-bottom:var(--s1)}
.dd__links a{color:var(--text-brand);text-decoration:none}
.dd__links a:hover{text-decoration:underline}
.dd__opt{display:flex;align-items:center;gap:var(--s2);padding:6px 0;font:400 13px/1.3 var(--font-ui);color:var(--text-primary);cursor:pointer}
.dd__opt input{width:15px;height:15px;margin:0;accent-color:var(--action-primary-bg);flex:0 0 15px}
.dd__opt i{width:10px;height:10px;border-radius:50%;display:inline-block;flex:0 0 10px;box-sizing:border-box}
.dd__opt .l-none{display:none}
.dd__opt .l-brand{background:#1A1917;box-shadow:0 0 0 1px #fff,0 0 0 2px #F97316}
.dd__opt .l-ext{background:#F97316}
.dd__opt .l-avail{background:#F97316;box-shadow:0 0 0 1.5px #fff;outline:1.5px dashed #F97316;outline-offset:1px}
.dd__opt .l-ugc{background:#FDBA74;border:1px solid #F97316}
.dd__opt .l-uavail{background:#FDBA74;border:1px solid #F97316;outline:1.5px dashed #F97316;outline-offset:1px}
.legend .l-uavail{background:#FDBA74;width:8px;height:8px;flex-basis:8px;border:1px solid #F97316;outline:1.5px dashed #F97316;outline-offset:2px}
.red--dark .dd__btn,.red--dark .dd__panel{background:#2A2825;border-color:#454340;color:#F4F3F1}
.red--dark .dd__opt{color:#F4F3F1}
@media (max-width:760px){
  .red__bar .input{width:100%}
  .dd{flex:1 1 auto}.dd__btn{width:100%;justify-content:space-between}
}
/* 33 · Cambio de paradigma v12.8 */
.callout{border-left:3px solid var(--accent-graphic);padding:var(--s3) var(--s5);background:var(--surface-card);border-radius:0 var(--r-md) var(--r-md) 0}
.steps li > div b{font-weight:600}
.steps li > div{font-size:15px;line-height:1.55}
.two td:nth-child(3){font-weight:600}
.two--cmp{min-width:420px}
.two--cmp td:first-child{font-family:var(--font-ui);font-size:13.5px;letter-spacing:0;text-transform:none;color:var(--text-primary);width:46%;padding-top:var(--s3)}
.hero__q .hl{font-weight:700}
.hero__q .hl--a{color:var(--ln-neutral-500,#8A867F)}
.hero__q .hl--b{color:var(--text-brand)}
/* 36 · publicación real en el relato: ventana con el embed de Instagram */
.reelmodal{border:0;padding:0;background:none;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);margin:auto;color:var(--text-primary)}
.reelmodal::backdrop{background:rgba(26,25,23,.55)}
.reelmodal__box{position:relative;background:var(--surface-card);border-radius:var(--r-lg);padding:var(--s5);width:min(420px,calc(100vw - 32px));box-sizing:border-box}
.reelmodal__x{position:absolute;top:6px;right:10px;border:0;background:none;font:400 24px/1 var(--font-ui);color:var(--text-secondary);cursor:pointer;padding:4px 8px}
.reelmodal .rc__k img{vertical-align:-2px;margin-right:2px}
.simulated-post{margin:20px 0;background:var(--surface-subtle);border-radius:var(--r-md);overflow:hidden}
.simulated-post__author{display:flex;gap:10px;padding:16px;align-items:center}.simulated-post__author>span{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;background:var(--ln-brand-100);border-radius:50%;font-size:11px;color:var(--text-primary)}
.simulated-post__author strong,.simulated-post__author small{display:block;font-size:12px;line-height:1.5}.simulated-post__author small{font-size:10px;color:var(--text-secondary)}
.simulated-post__image{display:block;width:100%;height:240px;object-fit:cover;object-position:50% 42%}.simulated-post>p{padding:16px;font-size:13px;line-height:1.65;color:var(--text-secondary)}

body.has-modal{overflow:hidden}
/* 37 · Cómo funciona: índice vertical de pasos, con marca que sigue al scroll */
.scrolly__toc{align-self:stretch}
.toc{position:sticky;top:calc(60px + var(--s6))}
.toc__h{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin:0 0 var(--s3) 16px}
.toc__body{position:relative}
.toc__list{list-style:none;margin:0;padding:0}
.toc__rail{position:absolute;left:3px;top:4px;bottom:4px;width:1px;background:var(--border-hairline)}
.toc__fill{position:absolute;left:3px;top:4px;width:1px;height:0;background:var(--accent-graphic);transition:height var(--m-slow) var(--ease)}
.toc__dot{position:absolute;left:0;top:0;width:7px;height:7px;border-radius:50%;background:var(--accent-graphic);box-shadow:0 0 0 3px var(--surface-canvas);transition:transform var(--m-slow) var(--ease)}
.toc__i>a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:baseline;padding:5px 0 5px 16px;text-decoration:none;color:var(--text-muted);border:0;transition:color var(--m-fast) var(--ease)}
.toc__i>a:hover{color:var(--text-secondary)}
.toc__n{font-family:var(--font-mono);font-size:10px;letter-spacing:.04em}
.toc__t{font-size:12px;line-height:1.28}
.toc__i.is-done>a{color:var(--text-secondary)}
.toc__i.is-on>a{color:var(--text-primary)}
.toc__i.is-on .toc__n{color:var(--text-brand);font-weight:600}
.toc__i.is-on .toc__t{font-weight:600}
@media (prefers-reduced-motion:reduce){.toc__fill,.toc__dot{transition:none}}
/* 35 · listas de ideas clave (v12.11): negrita para el concepto, viñeta para ordenar */
.keys{list-style:disc;margin:var(--s3) 0 0;padding-left:1.15em;max-width:58ch;font-size:15px;line-height:1.55;color:var(--text-secondary)}
.keys li{margin:5px 0;padding-left:2px}
.keys li::marker{color:var(--text-brand)}
.keys strong,.pstep__p strong,.body-lg strong,.hero__sub strong,.min__list strong,.body-sm strong{font-weight:600;color:var(--text-primary)}
.keys--lg{font-size:16px}
/* 34 · Cómo funciona: recorrido por pasos (scrollytelling) */
.scrolly{display:grid;grid-template-columns:148px minmax(0,6fr) minmax(0,4.4fr);gap:var(--s10);align-items:stretch}
.scrolly__stage{align-self:stretch}
.scrolly__stage{position:relative}
.scrolly__sticky{position:sticky;top:calc(60px + var(--s6));background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--r-lg);padding:var(--s5)}
.scene{width:100%;height:auto;display:block;margin-top:var(--s3)}
.scene .sc{opacity:0;transition:opacity var(--m-slow) var(--ease)}
.scene[data-step="1"] .s1,
.scene[data-step="2"] .s1,.scene[data-step="2"] .s2,
.scene[data-step="3"] .s1,.scene[data-step="3"] .s2,.scene[data-step="3"] .s3,
.scene[data-step="4"] .s1,.scene[data-step="4"] .s2,.scene[data-step="4"] .s3,.scene[data-step="4"] .s4,
.scene[data-step="5"] .s1,.scene[data-step="5"] .s2,.scene[data-step="5"] .s4,.scene[data-step="5"] .s5,
.scene[data-step="6"] .s1,.scene[data-step="6"] .s2,.scene[data-step="6"] .s5,.scene[data-step="6"] .s6,
.scene[data-step="7"] .s1,.scene[data-step="7"] .s2,.scene[data-step="7"] .s5,.scene[data-step="7"] .s6,.scene[data-step="7"] .s7,
.scene[data-step="8"] .s1,.scene[data-step="8"] .s2,.scene[data-step="8"] .s5,.scene[data-step="8"] .s6,.scene[data-step="8"] .s7,.scene[data-step="8"] .s8{opacity:1}
.scrolly__steps{list-style:none;margin:0;padding:0}
.pstep{min-height:62vh;padding:var(--s8) 0;border-top:1px solid var(--border-hairline);opacity:.28;transform:translateY(18px);transition:opacity var(--m-slow) var(--ease),transform var(--m-slow) var(--ease)}
.pstep.is-seen{opacity:.55;transform:none}
.pstep.is-active{opacity:1}
.pstep:first-child{border-top:0;padding-top:var(--s2)}
.pstep__n{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;color:var(--text-brand);font-weight:600}
.pstep .h2{margin-top:var(--s2);max-width:22ch}
.pstep__p{margin-top:var(--s4);font-size:16px;line-height:1.6;color:var(--text-secondary);max-width:58ch}
.pstep__meta{margin:var(--s5) 0 0;display:grid;gap:0;max-width:58ch}
.pstep__meta>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:var(--s4);padding:var(--s2) 0;border-top:1px solid var(--border-hairline);font-size:13.5px}
.pstep__meta dt{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding-top:2px}
.pstep__meta dd{margin:0;color:var(--text-primary)}
/* grafo en modo relato dentro del panel fijo (mismo motor que la portada) */
.red--story{margin-top:0}
.red__stage--story{height:clamp(420px,58vh,640px)}
@media (max-width:900px){
  .scrolly{display:block}
  .scrolly__toc{display:none}
  .scrolly__stage{position:sticky;top:60px;z-index:2;margin-bottom:var(--s6)}
  .scrolly__sticky{position:static;padding:var(--s3);box-shadow:0 8px 24px -12px rgba(26,25,23,.25)}
  .scrolly__sticky .caption{display:none}
  .scene{max-height:34vh}
  .red__stage--story{height:clamp(240px,34vh,320px)}
  .pstep{min-height:0;padding:var(--s6) 0;opacity:1;transform:none}
  .pstep.is-seen{opacity:1}
}
@media (prefers-reduced-motion:reduce){ .pstep{opacity:1;transform:none} .scene .sc{transition:none} }

/* Web reading scale: stronger section hierarchy across the site. */
.h1{font-size:clamp(36px,3.8vw,54px);line-height:1.1;letter-spacing:-.035em}
.h2{font-size:clamp(28px,2.7vw,38px);line-height:1.14;letter-spacing:-.03em}
.h3{font-size:clamp(22px,1.9vw,27px);line-height:1.2}

/* Typography and semantic roles shared with saas/src/styles/globals.css. */
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}
.mut{color:var(--text-secondary)}
.brand__w{letter-spacing:.01em}
::selection{background:var(--ln-brand-100);color:var(--text-primary)}

/* Orange carries the brand; dark neutral carries the labels. */
.flow__n,.step--ln .step__n,.vozav,.rc__pdf{color:var(--text-primary)}
.wf .wstep.is-hot text{fill:var(--text-primary)}
