/* ============================================================
   Ser tutor — sistema de diseño compartido (libro)
   Paleta papel/tinta + acento bermellón, con acentos por capítulo.
   Tono de libro: serif para leer, mono para etiquetas. Sobrio.
   ============================================================ */
@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,600;1,9..144,500&family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400;1,6..72,500&family=Roboto+Mono:wght@400;500;700&display=swap");

:root{
  --paper:#F4F0E6; --paper-raised:#FBF8F0; --ink:#15130E; --ink-soft:#3A372F; --muted:#8A8576;
  --accent:#C4351C;     /* bermellón (global) */
  --rule:#15130E; --shadow:#15130E;
  /* acentos por capítulo (variedad, consistencia) */
  --c1:#C4351C; --c2:#1E3A8A; --c3:#1F7A4C; --c4:#B8860B; --c5:#5A3FC0; --c6:#0E6B6B; --c7:#A4471C; --c8:#3A372F; --c9:#2C6E8F;
  /* el acento "activo" de la página; cada capítulo lo redefine */
  --chap:#C4351C;
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
  --font-body:"Newsreader",Georgia,serif;
  --font-mono:"Roboto Mono",ui-monospace,Menlo,monospace;
  --fs-body:1.16rem;
  --maxw:1080px; --measure:66ch; --gap:24px;
  --bw:2px; --rad:4px; --sh:6px; --grain:.04; --t:.5s;
}
[data-theme="dark"]{
  --paper:#16140F; --paper-raised:#1E1B15; --ink:#F2EEE2; --ink-soft:#D8D2C2; --muted:#8A8576;
  --accent:#E8573B; --rule:#F2EEE2; --shadow:#000; --grain:.06;
  --c1:#E8573B; --c2:#7FA0E8; --c3:#43C97A; --c4:#E3B341; --c5:#9B8BF0; --c6:#3FB6B6; --c7:#E07A4B; --c8:#A8A290; --c9:#6FB0D6;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);
  line-height:1.66;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:var(--grain);mix-blend-mode:multiply}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gap)}
.wrap--narrow{max-width:720px}

/* ---------- tipografía ---------- */
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.08;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:clamp(2.4rem,6vw,4rem)}
h2{font-size:clamp(1.7rem,3.4vw,2.5rem);margin-top:1.4em}
h3{font-size:1.4rem;margin-top:1.3em}
h4{font-family:var(--font-mono);font-weight:700;font-size:.95rem;letter-spacing:.01em;margin:1.4em 0 .4em}
p{max-width:var(--measure)}
.lead{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(1.3rem,2.6vw,1.7rem);line-height:1.4;color:var(--ink);max-width:36ch}
a{color:var(--chap);text-decoration:none;border-bottom:var(--bw) solid transparent;transition:border-color .12s}
a:hover{border-color:var(--chap)}
strong{font-weight:600}
em{font-style:italic}
.eyebrow{font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.02em;color:var(--chap);font-weight:500;margin:0 0 .6rem}
.kicker{font-family:var(--font-mono);font-size:.8125rem;color:var(--muted);letter-spacing:.02em}
.meta{font-family:var(--font-mono);font-size:.875rem;color:var(--muted);line-height:1.6}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--paper) 90%,transparent);
  backdrop-filter:saturate(1.1) blur(6px);border-bottom:var(--bw) solid var(--ink)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:56px;gap:1rem}
.nav__brand{font-family:var(--font-mono);font-weight:700;font-size:.95rem;color:var(--ink);border:0;display:flex;gap:.5rem;align-items:center}
.nav__brand .sq{width:12px;height:12px;background:var(--chap);display:inline-block}
.nav__right{display:flex;gap:1rem;align-items:center;font-family:var(--font-mono);font-size:.8125rem}
.nav__right a{color:var(--ink);border:0}.nav__right a:hover{color:var(--chap)}
.toggle{font-family:var(--font-mono);font-size:.8125rem;background:var(--paper);color:var(--ink);
  border:var(--bw) solid var(--ink);border-radius:var(--rad);padding:.28rem .55rem;cursor:pointer;
  box-shadow:3px 3px 0 var(--shadow);transition:transform .1s,box-shadow .1s}
.toggle:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--shadow)}

/* ---------- cabecera de capítulo ---------- */
.chead{padding:calc(var(--gap)*2.6) 0 calc(var(--gap)*1.4);border-bottom:var(--bw) solid var(--ink)}
.chap-no{font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.06em;color:var(--chap);font-weight:700;display:block;margin-bottom:.5rem}
.chead h1{margin-bottom:.25em}

/* ---------- secciones / prosa ---------- */
section{padding:calc(var(--gap)*1.7) 0}
.prose p{font-size:1.16rem;margin:0 0 1rem}
.prose p + p{margin-top:0}
.dropcap::first-letter{font-family:var(--font-display);font-weight:600;float:left;font-size:3.4rem;line-height:.82;padding:.1rem .5rem .1rem 0;color:var(--chap)}
.section-note{font-family:var(--font-mono);font-size:.9rem;color:var(--ink-soft);max-width:var(--measure);line-height:1.55}
.rule{border:0;border-top:var(--bw) solid var(--rule);margin:calc(var(--gap)*1.8) 0}

/* ---------- componentes ---------- */
.quote{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(1.5rem,3.2vw,2.2rem);
  line-height:1.32;color:var(--ink);border-left:4px solid var(--chap);padding-left:1.1rem;margin:calc(var(--gap)*1.2) 0;max-width:46ch}
.quote cite{display:block;font-family:var(--font-mono);font-style:normal;font-size:.85rem;color:var(--muted);margin-top:.7rem}
.box{border:var(--bw) solid var(--ink);border-radius:var(--rad);background:var(--paper-raised);
  box-shadow:var(--sh) var(--sh) 0 var(--shadow);padding:1.2rem 1.3rem;margin:var(--gap) 0}
.box--accent{border-left:6px solid var(--chap)}
.tag{font-family:var(--font-mono);font-size:.8125rem;font-weight:700;color:var(--chap);display:block;margin-bottom:.35rem}
.card{border:var(--bw) solid var(--ink);border-radius:var(--rad);background:var(--paper-raised);
  box-shadow:var(--sh) var(--sh) 0 var(--shadow);padding:1.15rem}
.grid{display:grid;gap:var(--gap)}
.grid--2{grid-template-columns:repeat(2,1fr)} .grid--3{grid-template-columns:repeat(3,1fr)}
@media(max-width:760px){.grid--2,.grid--3{grid-template-columns:1fr}}
figure{margin:var(--gap) 0}
figure img{display:block;width:100%;height:auto;border:var(--bw) solid var(--ink);border-radius:var(--rad);background:var(--paper-raised)}
figcaption{font-family:var(--font-mono);font-size:.85rem;color:var(--muted);margin-top:.5rem;line-height:1.45}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;border:var(--bw) solid var(--ink);vertical-align:middle}

/* ---------- listas numeradas tipo capítulo ---------- */
.numlist{list-style:none;counter-reset:n;padding:0;margin:var(--gap) 0;max-width:var(--measure)}
.numlist li{position:relative;padding:.2rem 0 1rem 2.6rem;counter-increment:n}
.numlist li::before{content:counter(n,decimal-leading-zero);position:absolute;left:0;top:.05rem;
  font-family:var(--font-mono);font-weight:700;font-size:1.1rem;color:var(--chap)}

/* ---------- referencias ---------- */
.refs{font-family:var(--font-body);font-size:1rem}
.refs p{text-indent:-1.4rem;padding-left:1.4rem;margin:0 0 .7rem;max-width:var(--measure)}

/* ---------- pager prev/next ---------- */
.pager{border-top:var(--bw) solid var(--ink);margin-top:calc(var(--gap)*2)}
.pager .wrap{display:flex;justify-content:space-between;gap:var(--gap);padding:var(--gap) var(--gap)}
.pager a{font-family:var(--font-mono);font-size:.9rem;color:var(--ink);border:0;max-width:46%}
.pager a:hover{color:var(--chap)}
.pager .dir{display:block;font-size:.75rem;color:var(--muted);letter-spacing:.04em}
.pager .nx{text-align:right;margin-left:auto}

/* ---------- footer ---------- */
.foot{border-top:var(--bw) solid var(--ink);padding:var(--gap) 0;font-family:var(--font-mono);font-size:.8125rem;color:var(--muted)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity var(--t) ease,transform var(--t) cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ============================================================
   Teóricos del capítulo — sub-tabs (debajo de la cabecera)
   ============================================================ */
.theorists{padding:calc(var(--gap)*1.9) 0;border-top:var(--bw) solid var(--ink);border-bottom:var(--bw) solid var(--ink);background:var(--paper-raised)}
.theorists .eyebrow{margin-bottom:.3rem}
.th__h{margin:0 0 .15em}
.th__sub{color:var(--ink-soft);max-width:62ch;margin:0 0 calc(var(--gap)*1.1)}
.th__tabs{display:flex;gap:.55rem;overflow-x:auto;padding:.2rem .2rem .7rem;margin:0 -.2rem var(--gap)}
.th__tabs::-webkit-scrollbar{height:6px}.th__tabs::-webkit-scrollbar-thumb{background:var(--muted);border-radius:3px}
.th__tab{flex:0 0 auto;text-align:left;background:var(--paper);border:var(--bw) solid var(--ink);border-radius:var(--rad);
  padding:.5rem .8rem;cursor:pointer;color:var(--ink);box-shadow:3px 3px 0 var(--shadow);
  transition:transform .1s,box-shadow .1s,background .15s,color .15s}
.th__tab:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--shadow)}
.th__tab[aria-selected="true"]{background:var(--chap);color:#fff;transform:translate(2px,2px);box-shadow:1px 1px 0 var(--shadow)}
.th__tabname{display:block;font-family:var(--font-display);font-weight:600;font-size:1rem;line-height:1.15;letter-spacing:-.01em}
.th__tabidea{display:block;font-family:var(--font-mono);font-size:.72rem;margin-top:.12rem;color:var(--muted)}
.th__tab[aria-selected="true"] .th__tabidea{color:rgba(255,255,255,.85)}
.th__panel{display:none}
.th__panel.is-on{display:grid;grid-template-columns:190px 1fr;grid-template-areas:"media content""diagram diagram";
  gap:var(--gap);align-items:start;animation:thfade .4s ease}
@keyframes thfade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:720px){.th__panel.is-on{grid-template-columns:1fr;grid-template-areas:"media""content""diagram"}}
.th__media{grid-area:media;position:relative;border:var(--bw) solid var(--ink);border-radius:var(--rad);overflow:hidden;
  box-shadow:var(--sh) var(--sh) 0 var(--shadow);background:var(--paper);aspect-ratio:1/1}
.th__media img{width:100%;height:100%;object-fit:cover;object-position:center 16%;filter:grayscale(1) contrast(1.02);transition:filter .45s}
.th__media::after{content:"";position:absolute;inset:0;background:var(--chap);mix-blend-mode:color;opacity:.5;pointer-events:none;transition:opacity .45s}
.th__media:hover img,.th__media:focus-within img{filter:none}
.th__media:hover::after,.th__media:focus-within::after{opacity:0}
.th__media>svg{width:100%;height:100%;display:block}
@media(max-width:720px){.th__media{max-width:210px}}
.th__media--duo{display:flex}
.th__media--duo img{width:50%;height:100%}
.th__media--duo img+img{border-left:2px solid var(--ink)}
.th__content{grid-area:content;min-width:0}
.th__name{font-family:var(--font-display);font-weight:600;font-size:1.5rem;margin:0 0 .05em;line-height:1.1}
.th__years{font-family:var(--font-mono);font-weight:400;font-size:.82rem;color:var(--muted);margin-left:.4rem;white-space:nowrap}
.th__role{font-family:var(--font-mono);font-size:.78rem;color:var(--chap);margin:0 0 .8rem;letter-spacing:.01em}
.th__content p{font-size:1.02rem;line-height:1.55;margin:0 0 .7rem;max-width:64ch}
.th__lead{font-family:var(--font-mono);font-weight:700;font-size:.78rem;color:var(--chap);text-transform:uppercase;letter-spacing:.03em;margin-right:.35rem}
.th__diagram{grid-area:diagram;border:var(--bw) solid var(--ink);border-radius:var(--rad);background:var(--paper);
  box-shadow:var(--sh) var(--sh) 0 var(--shadow);padding:1.1rem 1.2rem;margin-top:.1rem}
.th__diagram>svg{width:100%;height:auto;display:block}
.th__diagram figcaption{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);margin-top:.7rem;line-height:1.45}
.th__credit{font-family:var(--font-mono);font-size:.74rem;color:var(--muted);margin:var(--gap) 0 0;line-height:1.5}

/* Helpers para los diagramas SVG (heredan --chap del capítulo) */
.dg-line{stroke:var(--ink);stroke-width:2;fill:none}
.dg-acc{stroke:var(--chap);stroke-width:2.5;fill:none}
.dg-fill{fill:var(--chap)}
.dg-soft{fill:var(--paper-raised);stroke:var(--ink);stroke-width:2}
.dg-t{fill:var(--ink);font-size:14px;font-family:var(--font-mono)}
.dg-tb{fill:var(--ink);font-size:14px;font-weight:700;font-family:var(--font-mono)}
.dg-tw{fill:#fff;font-size:14px;font-weight:700;font-family:var(--font-mono)}
.dg-ta{fill:var(--chap);font-size:13px;font-weight:700;font-family:var(--font-mono)}
.dg-tm{fill:var(--muted);font-size:12px;font-family:var(--font-mono)}

/* Placa SVG cuando no hay foto de licencia libre */
.th__plate{width:100%;height:100%;display:block;background:var(--paper-raised)}
.th__plate text{font-family:var(--font-display)}
