/* Nopubly — papel cálido, tinta fuerte. Noche solo con data-theme=dark. */
:root{
  color-scheme:light;
  --bg:#FFFFFF;--paper:#F5F5F5;--paper-2:#FFFFFF;--surface:#F5F5F5;--surface-2:#FFFFFF;--ad:#EDEDED;
  --ink:#1A1410;--muted:#3D372F;--faint:#6B6358;
  --line:#D4C9B8;--line-soft:#E8E0D4;--accent:#2C5F56;--accent-ink:#1F4741;--accent-wash:#E6F0ED;
  --hot:#9B351C;--shadow:0 1px 2px rgba(26,20,16,.06),0 12px 28px -16px rgba(26,20,16,.2);
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#14110E;--paper:#1C1915;--paper-2:#24201B;--surface:#1C1915;--surface-2:#24201B;--ad:#25211C;
  --ink:#F3EDE4;--muted:#C4B8A8;--faint:#8A7F72;
  --line:#3A342C;--line-soft:#2A261F;--accent:#7EB8AE;--accent-ink:#B5D4CE;--accent-wash:#24322E;
  --hot:#E07A58;--shadow:0 1px 2px rgba(0,0,0,.35),0 14px 34px -18px rgba(0,0,0,.7);
}
body{font-size:20px;line-height:1.62}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}
.wrap-piece{max-width:1360px}
.paper-grid{
  display:grid;
  grid-template-columns:260px minmax(0,720px) 300px;
  grid-template-areas:"left main right";
  justify-content:center;
  gap:32px 40px;
  align-items:start;
  padding:8px 0 48px;
}
.rail-left{grid-area:left}
.paper-grid > .piece{grid-area:main}
.rail-right{grid-area:right}
@media(max-width:1180px){
  .paper-grid{grid-template-columns:minmax(0,720px) 300px;grid-template-areas:"main right" "left left";gap:28px 32px}
  .rail-left{display:grid;grid-template-columns:1fr 1fr;gap:22px 32px;align-items:start}
  .rail-left .box{grid-column:1 / -1}
}
@media(max-width:860px){
  .paper-grid{grid-template-columns:1fr;grid-template-areas:"main" "right" "left"}
  .rail-left{display:flex;flex-direction:column}
}
.rail{display:flex;flex-direction:column;gap:22px;position:sticky;top:18px;max-height:calc(100vh - 28px);overflow:auto}
.rail-left.rail{position:sticky}
.rail a{color:inherit;text-decoration:none}
.rail-card{display:block;text-decoration:none;color:inherit;border-top:2px solid var(--ink);padding:16px 0}
.rail-card.ad{background:var(--ad);border:0;padding:28px 18px 20px;position:relative}
.rail-card .k{font-family:"IBM Plex Mono",monospace;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);display:block}
.rail-card.ad .k{color:var(--faint);position:absolute;top:8px;left:18px;font-size:10.5px}
.rail-card b{display:block;font-family:"Archivo",system-ui,sans-serif;font-weight:800;font-size:1.18rem;margin:8px 0 8px;letter-spacing:-.01em}
.rail-card span{display:block;color:var(--muted);font-size:1.02rem;line-height:1.4}
.rail-card .go{margin-top:10px;font-family:"Archivo",system-ui,sans-serif;font-weight:700;color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px;font-size:1rem}
.rail .box{border-top:2px solid var(--ink);padding:14px 0 4px}
.rail .box h4{font-family:"Archivo",system-ui,sans-serif;font-weight:800;font-size:1.02rem;letter-spacing:.04em;text-transform:uppercase;margin:0 0 12px}
.rail-latest{list-style:none;margin:0;padding:0;counter-reset:l}
.rail-latest li{padding:11px 0;border-bottom:1px solid var(--line-soft)}
.rail-latest li:last-child{border-bottom:0}
.rail-latest a{display:block;font-family:"Archivo",system-ui,sans-serif;font-weight:700;font-size:1.02rem;line-height:1.3;color:var(--ink);text-decoration:none}
.rail-latest a:hover{color:var(--accent-ink)}
.rail-latest .t{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--faint);display:block;margin-top:4px}
.piece{padding:12px 0 40px;max-width:720px}
.piece .kicker{font-family:"IBM Plex Mono",monospace;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.piece h1{font-family:"Archivo",system-ui,sans-serif;font-weight:900;font-size:clamp(2.2rem,4.2vw,3.15rem);letter-spacing:-.03em;line-height:1.08;margin:12px 0 16px;text-wrap:balance}
.piece .deck{font-size:1.32rem;line-height:1.45;color:var(--muted);margin:0 0 8px}
.piece .by{font-family:"IBM Plex Mono",monospace;font-size:13.5px;color:var(--faint);margin:20px 0 28px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.piece h2{font-family:"Archivo",system-ui,sans-serif;font-weight:800;font-size:1.4rem;letter-spacing:-.02em;margin:32px 0 12px}
.piece p{margin:0 0 1.05em}
.piece ul{margin:0 0 1.2em;padding-left:1.2em}
.piece li{margin:0 0 .45em}
.piece a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.theme-btn{
  border:1px solid var(--line);background:var(--bg);color:var(--ink);
  width:38px;height:38px;border-radius:2px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;padding:0;vertical-align:middle;margin-left:10px;
}
.theme-btn svg{width:18px;height:18px;display:block}
.theme-btn .moon{display:none}
:root[data-theme="dark"] .theme-btn .sun{display:none}
:root[data-theme="dark"] .theme-btn .moon{display:block}
.nav-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-end}
.nav-tools a{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:13.5px;letter-spacing:.03em;color:var(--muted);text-decoration:none}
.nav-tools a:hover,.nav-tools a.on{color:var(--accent)}
.page-nav{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);gap:14px}
.page-nav .brand{font-family:"Archivo",system-ui,sans-serif;font-weight:800;font-size:1.28rem;display:flex;align-items:center;gap:.5em;text-decoration:none;color:inherit}
.page-nav .brand .dot{width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-wash)}
.site-foot{border-top:3px solid var(--ink);margin-top:30px;padding:28px 0 64px;color:var(--faint)}
.site-foot a{color:var(--muted);margin-right:18px;font-family:"IBM Plex Mono",monospace;font-size:14px;text-decoration:none}
.site-foot .mono{font-family:"IBM Plex Mono",monospace;font-size:13px;letter-spacing:.03em}
.cta{display:inline-flex;align-items:center;gap:.5em;font-family:"Archivo",system-ui,sans-serif;font-weight:700;background:var(--accent);color:#fff;padding:14px 26px;border-radius:10px;text-decoration:none;margin-top:26px;border:0;cursor:pointer;font-size:1.05rem}
.cta:hover{background:var(--accent-ink);color:#fff}
.cta.ghost{background:transparent;color:var(--accent-ink);border:1px solid var(--line);margin-top:0}
.cta.ghost:hover{background:var(--paper)}
.langsw{display:inline-flex;align-items:center;gap:6px}
.how3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;list-style:none;padding:0;margin:18px 0 8px}
@media(max-width:680px){.how3{grid-template-columns:1fr}}
.how3 li{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.how3 b{display:block;font-family:"Archivo",system-ui,sans-serif;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}
.how3 span{display:block;font-family:"Archivo",system-ui,sans-serif;font-weight:700;font-size:1.05rem;line-height:1.25}
.tabs{display:flex;gap:8px;margin:0 0 14px}
.tabs button{font-family:"Archivo",system-ui,sans-serif;font-weight:700;border:1px solid var(--line);background:transparent;color:var(--muted);padding:8px 14px;border-radius:8px;cursor:pointer}
.tabs button.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.nop-note{font-size:1.08rem;color:var(--ink);max-width:62ch;margin:14px 0 0;font-style:italic}
.nop-note a,.scan-cta{color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}
.scan-cta{display:inline-block;margin-top:10px;font-family:"Archivo",system-ui,sans-serif;font-weight:700;font-size:1rem;font-style:normal}
.reto-status{display:block;font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--hot);margin-top:8px;letter-spacing:.03em}
a.reto.done .reto-status{color:var(--accent)}
.edition{font-family:"IBM Plex Mono",monospace;font-size:14px;letter-spacing:.04em;text-transform:uppercase;margin:0 0 18px;color:var(--muted)}
.edition a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}
.pwa-hint{position:fixed;bottom:16px;left:16px;right:16px;max-width:440px;margin:0 auto;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);padding:14px 16px;z-index:40;display:none}
.pwa-hint.on{display:block}
.pwa-hint b{font-family:"Archivo",system-ui,sans-serif;display:block;margin-bottom:4px}
.pwa-hint p{margin:0 0 10px;font-size:.95rem;color:var(--muted)}
.pwa-hint .row-btns{display:flex;gap:8px}
.tg{display:block;margin-top:10px;font-family:"IBM Plex Mono",monospace;font-size:13px}
.tg a{color:var(--accent-ink)}
