/* ============================================================
   SISTEMA DE DISEÑO · Mariano Maradeo / Lead Architecture
   ADN compartido — Fraunces · Spectral · IBM Plex Mono
   carbón + ámbar · monografía (A) + instrumento (B)
   Una sola fuente de verdad para los dos sitios.
   ============================================================ */

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
:root {
  --charcoal:#0C1A2C; --charcoal2:#0A1624; --white:#FFFFFF; --accent:#F5BE00; --mid:#39414B;
  --muted:#7A7A7A; --rule:#D8D6D1; --frost:#F2F1ED; --paper:#FBFAF8; --ink:#14212E; --panel:#F4F5F6;
  --display:'Fraunces', Georgia, serif;
  --body:'Spectral', Georgia, serif;
  --mono:'IBM Plex Mono', ui-monospace, monospace;
  --nav-h:56px; --pad:clamp(1.3rem,5vw,3.6rem); --marginw:220px; --gap:3rem;
}
html { scroll-behavior:smooth; }
body { font-family:var(--body); background:var(--charcoal); color:var(--ink);
  font-weight:400; font-size:1.05rem; line-height:1.72; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
::selection { background:var(--charcoal); color:var(--white); }
body.es [data-en] { display:none !important; }
body:not(.es) [data-es] { display:none !important; }
.shell { max-width:1120px; margin:0 auto; padding:0 var(--pad); }
.shell--wide { max-width:1240px; }

/* textura de papel + barra de progreso */
.grain { position:fixed; inset:0; z-index:400; pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.progress, #progress { position:fixed; top:0; left:0; height:2px; width:0; background:var(--accent); z-index:500; transition:width .1s linear; }

/* NAV adaptativo */
nav { position:fixed; inset:0 0 auto 0; height:var(--nav-h); z-index:300;
  display:flex; align-items:center; justify-content:space-between; padding:0 var(--pad);
  background:transparent; border-bottom:1px solid transparent; transition:background .35s ease, border-color .35s ease; }
.wm { font-family:var(--mono); font-size:.72rem; letter-spacing:.01em; text-transform:uppercase; font-weight:500; color:#fff; transition:color .35s; }
.wm b { color:var(--accent); }
.nav-links { display:flex; gap:1.5rem; list-style:none; }
.nav-links a { font-family:var(--mono); font-size:.67rem; letter-spacing:.02em; text-transform:uppercase; color:rgba(255,255,255,.66); transition:color .35s; }
.nav-links a:hover { color:#fff; }
.lang-toggle { display:flex; border:1px solid rgba(255,255,255,.3); transition:border-color .35s; }
.lang-btn { background:none; border:0; padding:.25rem .5rem; font-family:var(--mono); font-size:.64rem; letter-spacing:.04em; cursor:pointer; color:rgba(255,255,255,.6); }
.lang-btn.active { background:#fff; color:var(--charcoal); }
nav.solid { background:rgba(251,250,248,.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--rule); }
nav.solid .wm { color:var(--ink); }
nav.solid .nav-links a { color:var(--muted); }
nav.solid .nav-links a:hover { color:var(--ink); }
nav.solid .lang-toggle { border-color:var(--rule); }
nav.solid .lang-btn { color:var(--muted); }
nav.solid .lang-btn.active { background:var(--charcoal); color:#fff; }
@media(max-width:900px){ .nav-links{ display:none; } }

/* UMBRAL / COVER oscuro */
#cover { position:relative; min-height:clamp(600px,94vh,940px); display:flex; align-items:center;
  background:
    radial-gradient(120% 80% at 74% 16%, rgba(245,190,0,.13), transparent 52%),
    linear-gradient(180deg, var(--charcoal) 0%, var(--charcoal2) 100%);
  color:#fff; overflow:hidden; }
#cover::after { content:""; position:absolute; inset:0; pointer-events:none;
  box-shadow:inset 0 -80px 120px -60px rgba(0,0,0,.55); }
#cover .shell { position:relative; z-index:2; padding-top:calc(var(--nav-h) + 4rem); padding-bottom:6rem; width:100%; }
.c-runhead { font-family:var(--mono); font-size:.67rem; letter-spacing:.05em; text-transform:uppercase;
  color:rgba(255,255,255,.55); display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.c-runhead .tick { width:26px; height:1px; background:var(--accent); display:inline-block; }
.c-runhead .soon { color:#fff; }
#cover h1 { font-family:var(--display); font-weight:500; font-size:clamp(2.8rem,6.4vw,5rem); line-height:1.0;
  letter-spacing:-.015em; margin-top:1.5rem; font-variation-settings:'opsz' 144; max-width:18ch; color:#fff; text-wrap:balance; }
#cover h1 em { display:block; text-wrap:balance; margin-top:.14em; }
#cover .subtitle { font-family:var(--body); font-style:italic; font-size:clamp(1.05rem,2vw,1.4rem);
  color:rgba(255,255,255,.72); margin-top:1.4rem; line-height:1.5; max-width:46ch; }
#cover .epi { font-family:var(--display); font-weight:400; font-style:italic; font-size:clamp(1.3rem,2.7vw,2rem);
  line-height:1.32; margin-top:2.6rem; border-left:2px solid var(--accent); padding-left:1.3rem; max-width:27ch;
  color:#fff; font-variation-settings:'opsz' 90; }
#cover .read-cta { display:inline-block; margin-top:2.6rem; font-family:var(--mono); font-size:.7rem;
  letter-spacing:.04em; text-transform:uppercase; color:#fff; border-bottom:2px solid var(--accent); padding-bottom:.3rem; }
.enter { position:absolute; left:0; right:0; bottom:2rem; z-index:2; text-align:center;
  font-family:var(--mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.5); }
.enter .arrow { display:block; margin:.5rem auto 0; animation:bob 2.4s ease-in-out infinite; }
@keyframes bob { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(5px); } }

/* DOCUMENTO — papel elevado sobre el umbral */
.document { position:relative; z-index:3; background:var(--paper); margin-top:-38px;
  box-shadow:0 -26px 70px rgba(10,22,36,.28); }

/* GRILLA DOC con notas al margen */
.doc { display:grid; grid-template-columns:minmax(0,1fr) var(--marginw); gap:var(--gap); }
@media(max-width:900px){ .doc{ grid-template-columns:1fr; } .margincol{ display:none; } }
.col { max-width:660px; }
.margincol { border-left:1px solid var(--rule); padding-left:1.3rem; padding-top:3.6rem; }
.note { font-family:var(--mono); font-size:.71rem; line-height:1.55; color:var(--muted); margin-bottom:1.9rem; }
.note b { color:var(--ink); font-weight:500; }
.note .n { color:var(--accent); }

/* SECCIONES / prosa */
section.block { padding:3.4rem 0; border-bottom:1px solid var(--rule); }
.sechead { display:flex; align-items:baseline; gap:1rem; margin-bottom:1.5rem; flex-wrap:wrap; }
.secno { font-family:var(--mono); font-size:.76rem; color:var(--accent); font-weight:500; }
.seclabel { font-family:var(--mono); font-size:.66rem; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
h1.page-h { font-family:var(--display); font-weight:500; font-size:clamp(2.2rem,5vw,3.4rem); line-height:1.05; letter-spacing:-.015em; font-variation-settings:'opsz' 144; }
h2.h { font-family:var(--display); font-weight:500; font-size:clamp(1.5rem,3vw,2.1rem); line-height:1.18;
  letter-spacing:-.01em; margin-top:.5rem; font-variation-settings:'opsz' 60; }
h3.h3 { font-family:var(--display); font-weight:600; font-size:1.15rem; letter-spacing:-.01em; font-variation-settings:'opsz' 30; margin-top:1.4rem; }
p.t { margin-top:1.1rem; }
p.t strong { font-weight:500; color:var(--ink); }
p.t.first { font-size:1.14rem; }
.sup { font-family:var(--mono); font-size:.62em; color:var(--accent); vertical-align:super; font-weight:500; }
.pull { font-family:var(--display); font-weight:400; font-style:italic; font-size:clamp(1.2rem,2.3vw,1.55rem);
  line-height:1.4; color:var(--ink); border-left:2px solid var(--accent); padding-left:1.3rem; margin:2.2rem 0;
  font-variation-settings:'opsz' 80; }

/* MÓDULO INSTRUMENTO (flujo) con elevación */
.instrument { margin:2.4rem 0 .6rem; border:1px solid var(--rule); background:#fff;
  box-shadow:0 22px 48px -22px rgba(12,26,44,.30), 0 2px 6px -2px rgba(12,26,44,.08); }
.instrument .ibody { padding:2rem 1.8rem 1.6rem; }
.iflow { display:flex; align-items:stretch; flex-wrap:wrap; gap:1.2rem 0; }
.istep { flex:1 1 180px; padding:0 1rem; position:relative; }
.istep:first-child { padding-left:0; }
.istep .ik { font-family:var(--mono); font-size:.66rem; color:var(--accent); font-weight:500; }
.istep .il { font-family:var(--display); font-size:1.02rem; font-weight:600; line-height:1.15; margin-top:.5rem;
  letter-spacing:-.01em; font-variation-settings:'opsz' 30; }
.istep .ix { font-family:var(--body); font-size:.86rem; color:var(--muted); line-height:1.45; margin-top:.5rem; }
.istep:not(:last-child)::after { content:"\2192"; position:absolute; right:-7px; top:0; color:var(--accent); font-family:var(--mono); font-size:.9rem; }
.icap { font-family:var(--mono); font-size:.7rem; color:var(--muted); line-height:1.5; padding:.9rem 1.4rem; border-top:1px solid var(--rule); background:var(--panel); }
.icap b { color:var(--ink); }

/* MÓDULO MEDIDOR (gauge) — secuencia medible */
.gauge { margin:2.2rem 0 .6rem; border:1px solid var(--rule); background:var(--panel); padding:2.2rem 2rem 1.6rem;
  box-shadow:0 22px 48px -22px rgba(12,26,44,.28); }
.gauge-track { position:relative; height:2px; background:var(--rule); margin:2.4rem 1.2rem 0; }
.gauge-fill { position:absolute; left:0; top:0; height:2px; width:100%; background:linear-gradient(90deg,#C9CDD2 0%,var(--accent) 100%); }
.nodes { display:flex; justify-content:space-between; position:relative; top:-5px; }
.node { width:12px; height:12px; border-radius:50%; background:var(--white); border:2px solid var(--charcoal); }
.node.hot { background:var(--accent); border-color:var(--accent); }
.gauge-labels { display:flex; justify-content:space-between; margin-top:1.1rem; flex-wrap:wrap; }
.gl { flex:1 1 160px; padding:0 .6rem; }
.gl .c { font-family:var(--mono); font-size:.64rem; color:var(--accent); font-weight:500; }
.gl .t { font-family:var(--display); font-size:.95rem; font-weight:600; letter-spacing:-.01em; margin-top:.3rem; line-height:1.1; font-variation-settings:'opsz' 30; }
.gl .d { font-size:.8rem; color:var(--muted); line-height:1.4; margin-top:.35rem; }
.gauge-axis { display:flex; justify-content:space-between; font-family:var(--mono); font-size:.62rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); border-top:1px solid var(--rule); margin-top:1.4rem; padding-top:.7rem; }

/* TABLA DE DATOS (dimensiones, etc.) */
.dimtable { margin:1.8rem 0; width:100%; border-collapse:collapse; }
.dimtable thead th { font-family:var(--mono); font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); text-align:left; padding:.7rem .8rem; border-bottom:2px solid var(--charcoal); }
.dimtable td { padding:.85rem .8rem; border-bottom:1px solid var(--rule); vertical-align:top; }
.dimtable tr:hover td { background:var(--panel); }
.dimtable .cod { font-family:var(--mono); font-size:.8rem; color:var(--accent); font-weight:500; white-space:nowrap; width:3rem; }
.dimtable .nm { font-family:var(--display); font-size:1.02rem; font-weight:600; letter-spacing:-.01em; white-space:nowrap; font-variation-settings:'opsz' 30; }
.dimtable .ms { font-size:.92rem; color:var(--mid); }
@media(max-width:640px){ .dimtable .nm{ white-space:normal; } }

/* ÍNDICE / CONTENTS */
.toc-part { font-family:var(--mono); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin:2rem 0 .8rem; }
.toc-sec { font-family:var(--display); font-size:1rem; font-weight:500; color:var(--ink); margin:1.4rem 0 .3rem; font-variation-settings:'opsz' 30; }
.toc-row { display:grid; grid-template-columns:2rem 1fr; gap:.8rem; padding:.5rem 0; border-bottom:1px solid var(--rule); font-size:.97rem; color:var(--mid); align-items:baseline; }
.toc-row .num { font-family:var(--mono); font-size:.76rem; color:var(--muted); }
.toc-row a { border-bottom:1px solid var(--accent); }
.p2 .toc-row { border-bottom-style:dashed; opacity:.62; }
.lock-note { margin-top:1.6rem; font-family:var(--mono); font-size:.73rem; color:var(--muted); line-height:1.65; border-top:1px solid var(--rule); padding-top:1.1rem; }

/* MÓDULO OSCURO (par / cierre) con elevación */
.dark { position:relative; z-index:3; background:linear-gradient(180deg,var(--charcoal) 0%, var(--charcoal2) 100%); color:var(--white);
  box-shadow:inset 0 40px 80px -60px rgba(0,0,0,.6); }
.dark .shell { padding-top:4rem; padding-bottom:4.2rem; }
.dark .seclabel { color:rgba(255,255,255,.5); }
.dark h2.h { color:var(--white); }
.dark p.t { color:rgba(255,255,255,.72); }
.dark p.t strong { color:var(--white); }
.pair { display:grid; grid-template-columns:1fr 1fr; margin-top:2.6rem; border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.02); box-shadow:0 30px 60px -30px rgba(0,0,0,.6); }
.pair > div { padding:2rem 1.8rem; }
.pair > div:first-child { border-right:1px solid rgba(255,255,255,.16); }
.pair .pl { font-family:var(--mono); font-size:.63rem; letter-spacing:.05em; text-transform:uppercase; color:var(--accent); }
.pair .pt { font-family:var(--display); font-size:1.3rem; line-height:1.2; margin-top:.7rem; font-weight:500; font-variation-settings:'opsz' 40; }
.pair .pd { font-size:.92rem; line-height:1.65; color:rgba(255,255,255,.62); margin-top:.8rem; font-weight:300; }
.pair .px { display:inline-block; margin-top:1.2rem; font-family:var(--mono); font-size:.65rem; letter-spacing:.04em; text-transform:uppercase; border-bottom:1px solid var(--accent); padding-bottom:.25rem; }
@media(max-width:700px){ .pair{ grid-template-columns:1fr; } .pair > div:first-child{ border-right:0; border-bottom:1px solid rgba(255,255,255,.16);} }

/* FORM newsletter (sobre fondo oscuro) */
.nl-form { display:flex; gap:.6rem; margin-top:2.2rem; flex-wrap:wrap; max-width:560px; }
.nl-form input { flex:1; min-width:240px; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.3);
  color:var(--white); padding:.8rem .2rem; font-family:var(--body); font-size:1rem; }
.nl-form input:focus { outline:none; border-bottom-color:var(--accent); }
.nl-form input::placeholder { color:rgba(255,255,255,.4); }
.nl-form button { background:var(--accent); color:var(--charcoal); border:0; padding:.85rem 1.8rem;
  font-family:var(--mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500; cursor:pointer; }
.nl-form button:hover { background:var(--white); }
.nl-success { display:none; margin-top:1.4rem; color:var(--accent); font-size:.95rem; }
.fineprint { margin-top:1.1rem; font-family:var(--mono); font-size:.7rem; line-height:1.55; color:rgba(255,255,255,.42); }

/* FOOTER */
footer { padding:2rem 0; background:var(--charcoal2); color:rgba(255,255,255,.5); }
footer .shell { display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-family:var(--mono); font-size:.68rem; }
footer a:hover { color:#fff; }

/* REVELADO al entrar en viewport — solo si el JS corre (si no, el contenido queda visible) */
.js .reveal { opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
.js .reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity:1 !important; transform:none !important; transition:none; }
  .enter .arrow { animation:none; }
  html { scroll-behavior:auto; }
}

/* ============================================================
   COMPONENTES EXTENDIDOS (homepage, landings, listados)
   ============================================================ */

/* bloque de papel por defecto (las secciones claras se apoyan en papel) */
section.block { background:var(--paper); }
section.block.flush { border-bottom:0; }

/* COVER con fotografía de fondo */
#cover.cover--photo { background:var(--charcoal2); }
.cover-photo { position:absolute; inset:0; z-index:0; overflow:hidden; }
.cover-photo img { width:100%; height:100%; object-fit:cover; object-position:center 38%;
  filter:saturate(0) contrast(1.05) brightness(.3); display:block; }
.cover-photo::after { content:""; position:absolute; inset:0;
  background:linear-gradient(158deg, rgba(10,22,36,.42) 0%, rgba(10,22,36,.64) 52%, rgba(10,22,36,.82) 100%); }
#cover.cover--photo::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(120% 80% at 78% 14%, rgba(245,190,0,.10), transparent 52%); }
.cover .observation { font-family:var(--display); font-weight:500; font-size:clamp(1.9rem,4vw,3.3rem);
  line-height:1.12; letter-spacing:-.015em; color:#fff; max-width:21ch; font-variation-settings:'opsz' 120; }
.cover .observation em { font-style:italic; color:rgba(255,255,255,.78); font-weight:400; }
.cover-byline { font-family:var(--mono); font-size:.68rem; letter-spacing:.03em; text-transform:uppercase;
  color:rgba(255,255,255,.5); line-height:1.8; margin-top:1.8rem; }

/* GRILLA DE MÉTRICAS */
.statgrid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--rule); margin:2.2rem 0 0; }
.stat { padding:1.4rem 1.3rem; border-right:1px solid var(--rule); }
.stat:last-child { border-right:0; }
.stat-val { font-family:var(--display); font-size:clamp(1.6rem,3vw,2.2rem); font-weight:500; line-height:1; font-variation-settings:'opsz' 72; }
.stat-label { font-family:var(--mono); font-size:.62rem; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-top:.5rem; }
@media(max-width:600px){ .statgrid{ grid-template-columns:1fr 1fr; } .stat:nth-child(2){ border-right:0; } }

/* CHIPS (sectores, etiquetas) */
.chips { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.6rem; }
.chip { font-family:var(--mono); font-size:.64rem; letter-spacing:.03em; text-transform:uppercase;
  padding:.35rem .8rem; border:1px solid var(--rule); color:var(--muted); }

/* TIRA DE FOTO */
.photo-strip { height:38vh; min-height:220px; overflow:hidden; position:relative; z-index:3; }
.photo-strip img { width:100%; height:100%; object-fit:cover; object-position:center 70%;
  filter:saturate(0) contrast(1.1) brightness(.72); display:block; }

/* SPLIT (foto + cuerpo oscuro) */
.split { display:grid; grid-template-columns:1fr 1fr; min-height:56vh; position:relative; z-index:3; }
.split-photo { background:var(--charcoal); display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; }
.split-photo img { position:static; inset:auto; width:auto; height:auto; max-width:64%; max-height:72%; object-fit:contain;
  filter:saturate(0) contrast(1.05); display:block; }
.split-body { background:linear-gradient(180deg,var(--charcoal),var(--charcoal2)); color:#fff;
  padding:4.5rem clamp(1.8rem,4vw,4rem); display:flex; flex-direction:column; justify-content:center; }
.split-body .seclabel { color:rgba(255,255,255,.5); }
.split-body .work-name { font-family:var(--display); font-weight:500; font-size:clamp(1.4rem,2.6vw,2rem); line-height:1.2; margin:1.2rem 0; font-variation-settings:'opsz' 48; }
.split-body p { color:rgba(255,255,255,.62); line-height:1.8; font-size:.95rem; }
@media(max-width:760px){ .split{ grid-template-columns:1fr; min-height:auto; } .split-photo{ min-height:360px; padding:1.5rem 0; } }

/* LISTA DE ENTRADAS (field notes) */
.entries { display:flex; flex-direction:column; margin-top:1.4rem; }
.entry { display:grid; grid-template-columns:1fr 3fr; gap:2rem; padding:1.6rem 0; border-top:1px solid var(--rule);
  color:inherit; transition:opacity .2s; }
.entry:last-child { border-bottom:1px solid var(--rule); }
.entry:hover { opacity:.62; }
.entry-tag { font-family:var(--mono); font-size:.62rem; letter-spacing:.04em; text-transform:uppercase; color:var(--accent); padding-top:.2rem; }
.entry-title { font-family:var(--display); font-size:1.1rem; font-weight:600; letter-spacing:-.01em; line-height:1.2; margin-bottom:.4rem; font-variation-settings:'opsz' 30; }
.entry-ex { font-size:.92rem; color:var(--mid); line-height:1.6; }
.entry-arrow { font-family:var(--mono); font-size:.64rem; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-top:.6rem; display:inline-block; }
@media(max-width:560px){ .entry{ grid-template-columns:1fr; gap:.6rem; } }

/* FILA DE ENLACES DE LECTURA */
.readlinks { display:flex; gap:1.8rem; flex-wrap:wrap; margin-top:2.4rem; }
.readlinks a { font-family:var(--mono); font-size:.68rem; letter-spacing:.04em; text-transform:uppercase; border-bottom:2px solid var(--accent); padding-bottom:.3rem; }
.readlinks a:hover { color:var(--accent); }
.readmore { display:inline-block; margin-top:2.4rem; font-family:var(--mono); font-size:.68rem; letter-spacing:.04em; text-transform:uppercase; border-bottom:2px solid var(--accent); padding-bottom:.3rem; }

/* EPÍGRAFE DESTACADO (feature en papel) */
.feature-epi { font-family:var(--display); font-weight:400; font-style:italic; font-size:clamp(1.6rem,3.4vw,2.5rem);
  line-height:1.22; letter-spacing:-.01em; color:var(--ink); font-variation-settings:'opsz' 90; max-width:20ch; margin-top:.3rem; }

/* BOTONES */
.btn { display:inline-block; font-family:var(--mono); font-size:.7rem; letter-spacing:.05em; text-transform:uppercase;
  padding:.8rem 1.7rem; border:1px solid var(--charcoal); color:var(--charcoal); transition:background .2s,color .2s; }
.btn:hover { background:var(--charcoal); color:#fff; }
.btn-light { border-color:rgba(255,255,255,.3); color:#fff; }
.btn-light:hover { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.55); }
.wa-link { display:inline-block; margin-top:1rem; font-family:var(--mono); font-size:.66rem; letter-spacing:.03em; color:var(--muted); }
.wa-link:hover { color:var(--ink); }

/* FOOTER centrado con logo */
footer.footer--center .shell { flex-direction:column; align-items:center; text-align:center; gap:1rem; }
footer .footer-logo { width:190px; height:auto; opacity:.6; }
footer .footer-links { display:flex; gap:1.6rem; flex-wrap:wrap; justify-content:center; }
footer .footer-links a:hover { color:#fff; }

/* LISTA DE DEFINICIONES / MECANISMOS (ord + nombre + texto) */
.deflist { margin-top:1.6rem; }
.defrow { padding:1.8rem 0; border-top:1px solid var(--rule); }
.defrow:last-child { border-bottom:1px solid var(--rule); }
.dark .defrow { border-color:rgba(255,255,255,.14); }
.defrow .ord { font-family:var(--mono); font-size:.64rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin-bottom:.6rem; }
.defrow .dname { font-family:var(--display); font-size:clamp(1.1rem,2.2vw,1.45rem); font-weight:600; line-height:1.3; letter-spacing:-.01em; font-variation-settings:'opsz' 40; }
.dark .defrow .dname { color:#fff; }
.defrow .dtxt { font-family:var(--body); font-size:1rem; line-height:1.75; color:var(--mid); margin-top:.8rem; max-width:66ch; }
.dark .defrow .dtxt { color:rgba(255,255,255,.72); }

/* etiqueta inline (tipo de componente) */
.tag { display:inline-block; font-family:var(--mono); font-size:.58rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); border:1px solid var(--rule); padding:.12rem .45rem; margin-left:.5rem; vertical-align:.14rem; }
.dark .tag { color:rgba(255,255,255,.5); border-color:rgba(255,255,255,.2); }
.defrow .dtxt em { font-family:var(--display); font-style:italic; color:var(--ink); font-size:1.05em; font-variation-settings:'opsz' 30; }
.dark .defrow .dtxt em { color:#fff; }

/* DOS COLUMNAS (principios) */
.twocol { display:grid; grid-template-columns:1fr 1fr; gap:2.4rem; margin-top:1.4rem; }
.twocol .dname { font-family:var(--display); font-size:1.3rem; font-weight:600; letter-spacing:-.01em; font-variation-settings:'opsz' 40; }
.dark .twocol .dname { color:#fff; }
.twocol p { font-family:var(--body); margin-top:.8rem; line-height:1.75; color:var(--mid); }
.dark .twocol p { color:rgba(255,255,255,.72); }
@media(max-width:760px){ .twocol{ grid-template-columns:1fr; } }

/* GRILLA DE ENUNCIADOS (síntomas, 2 col) */
.symgrid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rule); border:1px solid var(--rule); margin-top:2.4rem; }
.symcell { background:var(--paper); padding:2.2rem 2rem; }
.symcell .n { font-family:var(--mono); font-size:.66rem; letter-spacing:.06em; color:var(--accent); font-weight:500; margin-bottom:1.1rem; }
.symcell p { font-family:var(--display); font-size:clamp(1.05rem,1.8vw,1.4rem); font-weight:500; line-height:1.35; color:var(--ink); font-variation-settings:'opsz' 40; }
@media(max-width:680px){ .symgrid{ grid-template-columns:1fr; } }

/* FORMULARIO sobre fondo oscuro */
.form-dark .form-row { margin-bottom:1rem; }
.form-dark input, .form-dark textarea { width:100%; padding:.9rem 1.1rem; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.14); color:#fff; font-family:var(--body); font-size:.98rem; outline:none; transition:border-color .2s; }
.form-dark input::placeholder, .form-dark textarea::placeholder { color:rgba(255,255,255,.3); }
.form-dark input:focus, .form-dark textarea:focus { border-color:var(--accent); }
.form-dark textarea { resize:vertical; min-height:110px; }
.form-dark button { width:100%; padding:1rem; background:var(--accent); border:1px solid var(--accent); color:var(--charcoal);
  font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500; cursor:pointer; transition:background .2s; }
.form-dark button:hover { background:#fff; }
.form-note { font-family:var(--mono); font-size:.68rem; color:rgba(255,255,255,.4); margin-top:1rem; text-align:center; }

/* chips sobre oscuro */
.chips-dark .chip { border-color:rgba(255,255,255,.16); color:rgba(255,255,255,.55); }

/* LEDE sobre cover + leyenda de voces */
.cover .lede { font-family:var(--body); font-weight:300; font-size:1.06rem; line-height:1.7;
  color:rgba(255,255,255,.75); margin-top:1.4rem; max-width:54ch; }
.cover .lede strong { color:#fff; font-weight:500; }
.voices { display:flex; gap:2rem; margin-top:2rem; flex-wrap:wrap; font-family:var(--mono); font-size:.68rem; color:rgba(255,255,255,.6); }
.voices .v-item { display:flex; align-items:center; gap:.55rem; }
.dot { width:9px; height:9px; display:inline-block; }
.dot.v { background:var(--accent); }
.dot.l { background:rgba(255,255,255,.72); }

/* PASAJES (pares de cita vol/lib) */
.passage { margin-bottom:3.4rem; }
.passage .ch-label { font-family:var(--mono); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); padding-bottom:.9rem; border-bottom:1px solid var(--rule); margin-bottom:1.8rem; }
.q { margin-bottom:2rem; padding-left:1.4rem; border-left:2px solid var(--rule); }
.q.vol { border-left-color:var(--accent); }
.q.lib { border-left-color:var(--charcoal); }
.q p { font-family:var(--display); font-weight:400; font-size:clamp(1.1rem,2vw,1.4rem); line-height:1.4;
  color:var(--ink); font-variation-settings:'opsz' 72; }
.q.lib p { font-family:var(--body); font-style:italic; font-size:clamp(1rem,1.8vw,1.2rem); line-height:1.7; color:#28374A; }
.q cite { display:block; margin-top:.7rem; font-family:var(--mono); font-style:normal; font-size:.66rem;
  letter-spacing:.03em; text-transform:uppercase; color:var(--muted); }

/* fila de enlaces sobre fondo oscuro */
.links-dark { display:flex; gap:1.8rem; flex-wrap:wrap; margin-top:2.6rem; }
.links-dark a { font-family:var(--mono); font-size:.68rem; letter-spacing:.04em; text-transform:uppercase;
  border-bottom:2px solid var(--accent); padding-bottom:.3rem; color:#fff; }
.links-dark a:hover { color:var(--accent); }

/* LECTOR (narrativa larga) */
.reader { max-width:640px; margin:0 auto; }
.reader .p { font-family:var(--body); font-size:1.14rem; line-height:1.95; color:#1E2A38; margin-bottom:1.4rem; }
.reader .p.dlg { margin-bottom:1rem; }
.reader .p em { font-style:italic; }
.reader .p:first-of-type::first-letter { font-family:var(--display); font-size:3.6rem; line-height:.85; float:left;
  padding:.1rem .55rem .1rem 0; color:var(--ink); font-weight:500; font-variation-settings:'opsz' 144; }
hr.end { border:0; border-top:1px solid var(--rule); max-width:640px; margin:4rem auto 0; }

/* ENCABEZADO DE LECTURA sobre cover (kicker con enlace) */
.c-runhead a { border-bottom:1px solid rgba(255,255,255,.3); }
.c-runhead a:hover { border-bottom-color:var(--accent); }

/* ENCABEZADO DE PÁGINA (listados, sin umbral) */
.page-head { padding-top:calc(var(--nav-h) + 4.5rem); }
.lead { font-family:var(--body); font-weight:300; font-size:1.1rem; line-height:1.7; color:var(--mid); margin-top:1.1rem; max-width:62ch; }

/* ARTÍCULOS / ENSAYOS (Field Notes individuales) */
body.article { background:var(--paper); }
.essay-header { max-width:680px; margin:0 auto; padding:calc(var(--nav-h) + 4.5rem) var(--pad) 2.2rem; }
.essay-series-label { font-family:var(--mono); font-size:.64rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--accent); margin-bottom:1.6rem; display:flex; align-items:center; gap:.75rem; }
.essay-series-label::before { content:""; width:22px; height:1px; background:var(--accent); display:block; }
.essay-header h1 { font-family:var(--display); font-weight:500; font-size:clamp(2.2rem,4.5vw,3.4rem); line-height:1.08;
  letter-spacing:-.015em; color:var(--ink); margin-bottom:1.3rem; font-variation-settings:'opsz' 144; }
.essay-header-meta { font-family:var(--mono); font-size:.66rem; letter-spacing:.03em; color:var(--muted);
  display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.essay-header-meta span { display:flex; align-items:center; gap:.4rem; }
.essay-hero-img { max-width:900px; margin:0 auto 3.2rem; padding:0 var(--pad); }
.essay-hero-img img { width:100%; display:block; aspect-ratio:16/7; object-fit:cover;
  filter:saturate(0) contrast(1.05) brightness(.97); border:1px solid var(--rule); }
.section-rule { max-width:1120px; margin:0 auto; padding:0 var(--pad); border:0; border-top:1px solid var(--rule); }
.essay-body-wrap { max-width:680px; margin:0 auto; padding:2.6rem var(--pad) 3.6rem; }
.essay-text { font-family:var(--body); font-size:1.13rem; font-weight:400; line-height:1.9; color:var(--mid); }
.essay-text p { margin-bottom:1.5rem; }
.essay-text p:first-child { color:var(--ink); font-size:1.2rem; }
.essay-text em { font-style:italic; color:var(--ink); }
.essay-text h2 { font-family:var(--display); font-weight:500; font-size:1.5rem; color:var(--ink);
  margin:2.8rem 0 1.1rem; line-height:1.2; letter-spacing:-.01em; font-variation-settings:'opsz' 48; }
.essay-text .drop { font-family:var(--display); font-size:3.8rem; float:left; line-height:.72; margin:.06em .14em 0 0;
  color:var(--accent); font-weight:500; font-variation-settings:'opsz' 144; }
.essay-pull { border-left:2px solid var(--accent); padding:.4rem 0 .4rem 1.6rem; margin:2.4rem 0; }
.essay-pull p { font-family:var(--display); font-size:clamp(1.2rem,2vw,1.55rem); font-style:italic; font-weight:400;
  line-height:1.4; color:var(--ink); margin:0 !important; font-variation-settings:'opsz' 80; }
.back-wrap { max-width:680px; margin:0 auto; padding:2.6rem var(--pad) 4rem; border-top:1px solid var(--rule); }
.back-link { font-family:var(--mono); font-size:.7rem; letter-spacing:.04em; color:var(--muted);
  border-bottom:1px solid var(--rule); padding-bottom:1px; }
.back-link:hover { color:var(--accent); border-color:var(--accent); }

/* ÍNDICE DE FIELD NOTES */
.fnrow { display:grid; grid-template-columns:2.4rem 1fr auto; gap:1.4rem; align-items:baseline;
  padding:1.5rem 0; border-top:1px solid var(--rule); color:inherit; transition:padding-left .2s; }
.fnrow:last-child { border-bottom:1px solid var(--rule); }
.fnrow:hover { padding-left:.5rem; }
.fnrow:hover .arw { color:var(--accent); }
.fnrow .num { font-family:var(--mono); font-size:.8rem; color:var(--muted); }
.fnrow .tag { font-family:var(--mono); font-size:.62rem; letter-spacing:.04em; text-transform:uppercase; color:var(--accent); display:block; margin-bottom:.35rem; }
.fnrow .ttl { font-family:var(--display); font-size:1.15rem; font-weight:500; line-height:1.3; font-variation-settings:'opsz' 36; }
.fnrow .arw { color:var(--rule); font-family:var(--mono); transition:color .2s; }
