:root{
  --paper: #EEF1EF;
  --surface: #FFFFFF;
  --ink: #121B1A;
  --ink-soft: #3C4A47;
  --ink-faint: #6C7876;
  --line: #D3D8D4;
  --accent: #1F6F5C;
  --accent-ink: #0E4238;
  --accent-soft: #DCEAE4;
  --signal: #96631A;
  --signal-soft: #F3E6C9;
  --signal-ink: #6B4813;
  --ad-bg: #E4E8E5;
  --ad-line: #B7C0BB;
  --shadow: 0 1px 2px rgba(18,27,26,0.06), 0 8px 24px rgba(18,27,26,0.05);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper: #10161A; --surface: #161E22; --ink: #E8ECE9; --ink-soft: #A9B4B0;
    --ink-faint: #77837F; --line: #26302E; --accent: #56C7A6; --accent-ink: #BEEBDA;
    --accent-soft: #16302A; --signal: #E3AE5C; --signal-soft: #3A2E17; --signal-ink: #F3D9A6;
    --ad-bg: #1B2327; --ad-line: #333E3A;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 8px 24px rgba(0,0,0,0.25);
  }
}
:root[data-theme="dark"]{
  --paper: #10161A; --surface: #161E22; --ink: #E8ECE9; --ink-soft: #A9B4B0;
  --ink-faint: #77837F; --line: #26302E; --accent: #56C7A6; --accent-ink: #BEEBDA;
  --accent-soft: #16302A; --signal: #E3AE5C; --signal-soft: #3A2E17; --signal-ink: #F3D9A6;
  --ad-bg: #1B2327; --ad-line: #333E3A;
  --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 8px 24px rgba(0,0,0,0.25);
}

*{box-sizing:border-box;}
html{ background:var(--paper); }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Public Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{ font-family:'Source Serif 4', Georgia, 'Times New Roman', serif; text-wrap:balance; letter-spacing:-0.01em; }
.mono{ font-family:'IBM Plex Mono', ui-monospace, monospace; }
a{ color:inherit; }
img{max-width:100%;}

.shell{ max-width:1040px; margin:0 auto; padding:0 24px; }
.shell-wide{ max-width:1240px; margin:0 auto; padding:0 24px; }

.masthead{ border-bottom:1px solid var(--line); background:var(--paper); }
.masthead-inner{ display:flex; align-items:baseline; justify-content:space-between; padding:22px 0 18px; flex-wrap:wrap; gap:12px; }
.brand{ font-size:26px; font-weight:700; letter-spacing:-0.01em; text-decoration:none; }
.brand span{ color:var(--accent); }
.masthead-meta{ font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); }
.nav{ display:flex; gap:22px; font-size:14px; padding-bottom:16px; flex-wrap:wrap; }
.nav a{ text-decoration:none; color:var(--ink-soft); border-bottom:1px solid transparent; }
.nav a:hover{ color:var(--accent-ink); border-color:var(--accent); }
.nav a[aria-current="page"]{ color:var(--accent-ink); border-color:var(--accent); }

.hero{ padding:40px 0 28px; }
.hero .eyebrow{ font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--accent-ink); font-weight:600; margin-bottom:10px; }
.hero h1{ font-size:clamp(28px,4vw,40px); line-height:1.15; margin:0 0 14px; }
.hero p{ font-size:17px; line-height:1.6; color:var(--ink-soft); max-width:62ch; margin:0; }
.hero-stat{ margin-top:20px; display:inline-flex; gap:10px; align-items:baseline; font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink-faint); border-left:2px solid var(--signal); padding-left:12px; }
.hero-stat b{ color:var(--ink); font-size:15px; }

.log{ padding:8px 0 60px; }
.log-entry{ display:grid; grid-template-columns:96px 1fr; gap:20px; padding:22px 0; border-top:1px solid var(--line); }
.log-entry:last-child{ border-bottom:1px solid var(--line); }
.log-date{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--ink-faint); padding-top:3px; }
.tag{ display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; padding:3px 8px; border-radius:3px; margin-bottom:9px; }
.tag.golpe{ background:var(--signal-soft); color:var(--signal-ink); }
.tag.defesa{ background:var(--accent-soft); color:var(--accent-ink); }
.tag.legal{ background:var(--ad-bg); color:var(--ink-soft); }
.log-entry h3{ font-size:20px; margin:0 0 6px; line-height:1.3; }
.log-entry h3 a{ text-decoration:none; }
.log-entry h3 a:hover{ color:var(--accent-ink); }
.log-entry p{ margin:0; color:var(--ink-soft); font-size:14.5px; line-height:1.55; max-width:60ch; }

.article-wrap{ padding:44px 0 0; }
.article-layout{ display:grid; grid-template-columns:1fr; gap:40px; justify-content:center; }
.article{ max-width:680px; margin:0 auto; width:100%; }
.rail{ display:none; }
@media (min-width:1060px){
  .article-layout{ grid-template-columns:680px 300px; justify-content:center; }
  .article{ margin:0; }
  .rail{ display:block; }
}
.rail-inner{ position:sticky; top:24px; display:flex; flex-direction:column; gap:24px; }
.rail .adslot{ margin:0; width:300px; min-height:250px; }
.rail .adslot.skyscraper{ min-height:480px; }
.rail-note{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-faint); line-height:1.6; padding:0 4px; }

.byline{ display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--ink-soft); margin-bottom:18px; }
.avatar{ width:30px; height:30px; border-radius:50%; background:var(--accent); color:var(--surface); display:flex; align-items:center; justify-content:center; font-family:'Source Serif 4',serif; font-weight:700; font-size:14px; flex:none; }
.byline a{ color:var(--accent-ink); text-decoration:none; border-bottom:1px solid var(--line); }
.article .tag{ margin-bottom:14px; }
.article h1{ font-size:clamp(28px,3.6vw,38px); line-height:1.18; margin:0 0 20px; }
.lede{ font-size:18px; line-height:1.65; color:var(--ink); margin:0 0 26px; padding-bottom:26px; border-bottom:1px solid var(--line); }
.article h2{ font-size:23px; margin:38px 0 14px; }
.article h3{ font-size:18px; margin:26px 0 10px; }
.article p{ font-size:16.5px; line-height:1.68; color:var(--ink); margin:0 0 18px; max-width:64ch; }
.article ul, .article ol{ margin:0 0 18px; padding-left:20px; }
.article li{ font-size:16.5px; line-height:1.65; margin-bottom:8px; max-width:60ch; }

.callout{ border-left:3px solid var(--signal); background:var(--signal-soft); padding:16px 18px; border-radius:0 6px 6px 0; margin:0 0 26px; }
.callout p{ margin:0; font-size:15.5px; color:var(--signal-ink); line-height:1.6; max-width:none; }

.adslot{ margin:34px 0; border:1px dashed var(--ad-line); background:var(--ad-bg); border-radius:6px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:120px; padding:18px; }
.adslot .mono{ font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); }
.adslot .adslot-dim{ font-size:10.5px; color:var(--ink-faint); opacity:0.75; }

.faq{ margin-top:34px; }
.faq-item{ padding:18px 0; border-top:1px solid var(--line); }
.faq-item:last-child{ border-bottom:1px solid var(--line); }
.faq-item h3{ margin:0 0 8px; font-size:16.5px; }
.faq-item p{ margin:0; font-size:15.5px; }

.sources{ margin:36px 0 8px; padding:18px 20px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); }
.sources .mono{ font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:8px; }
.sources p{ margin:0; font-size:13.5px; line-height:1.6; color:var(--ink-soft); max-width:none; }
.sources a{ color:var(--accent-ink); }

.pillar-link{ margin:40px 0 60px; padding:20px 22px; border:1px solid var(--line); border-radius:8px; background:var(--surface); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; box-shadow:var(--shadow); }
.pillar-link span{ font-size:14px; color:var(--ink-soft); }
.pillar-link strong{ font-family:'Source Serif 4',serif; font-size:17px; display:block; margin-top:2px; }
.pillar-link a{ font-family:'IBM Plex Mono',monospace; font-size:12px; text-decoration:none; color:var(--accent-ink); border:1px solid var(--accent); padding:8px 14px; border-radius:5px; white-space:nowrap; }

.page{ max-width:680px; margin:0 auto; padding:44px 0 60px; }
.page h1{ font-size:clamp(26px,3.4vw,34px); margin:0 0 22px; }
.page p{ font-size:16.5px; line-height:1.68; color:var(--ink); margin:0 0 18px; max-width:64ch; }
.page h2{ font-size:20px; margin:30px 0 12px; }
.page ul{ padding-left:20px; }
.page li{ font-size:16px; line-height:1.6; margin-bottom:8px; }
.page .notice{ border:1px solid var(--line); background:var(--surface); border-radius:8px; padding:16px 18px; font-size:14px; color:var(--ink-soft); margin:0 0 26px; }

footer{ border-top:1px solid var(--line); margin-top:20px; }
.footer-inner{ padding:34px 0 44px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.footer-links{ display:flex; gap:20px; font-size:13.5px; flex-wrap:wrap; }
.footer-links a{ text-decoration:none; color:var(--ink-soft); }
.footer-links a:hover{ color:var(--accent-ink); }
.footer-note{ font-size:12.5px; color:var(--ink-faint); max-width:46ch; line-height:1.6; }

@media (max-width:600px){
  .log-entry{ grid-template-columns:1fr; gap:6px; }
  .log-date{ padding-top:0; }
}
