/* Long-form writeups at /writing. Same tokens and type as the app shell
   (styles.css), but a plain scrolling document instead of one-screen pages. */
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif.woff2) format("woff2")}

:root{
  --paper:#f5f2eb;--surface:#fbfaf6;--sunk:#ece8df;--ink:#151412;--ink-2:#3a3833;--muted:#77736a;
  --line:rgba(21,20,18,.11);--line-2:rgba(21,20,18,.2);--red:#e2412f;--red-ink:#c43322;--red-wash:rgba(226,65,47,.09);
  --green:#2f9e5b;--green-ink:#227a45;
  --serif:"Instrument Serif","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
  --r:14px;--measure:66ch;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#121110;--surface:#1a1917;--sunk:#0d0c0b;--ink:#eeeae2;--ink-2:#cfcac0;--muted:#9a958b;
  --line:rgba(238,234,226,.1);--line-2:rgba(238,234,226,.2);--red:#f0533f;--red-ink:#ff7a68;--red-wash:rgba(240,83,63,.12);
  --green:#3fbf72;--green-ink:#5fd38f;
}}
:root[data-theme="dark"]{
  --paper:#121110;--surface:#1a1917;--sunk:#0d0c0b;--ink:#eeeae2;--ink-2:#cfcac0;--muted:#9a958b;
  --line:rgba(238,234,226,.1);--line-2:rgba(238,234,226,.2);--red:#f0533f;--red-ink:#ff7a68;--red-wash:rgba(240,83,63,.12);
  --green:#3fbf72;--green-ink:#5fd38f;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.62 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--red-ink);text-underline-offset:.18em}
a:hover{color:var(--red)}
:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:4px}
::selection{background:var(--red);color:#fff}
img{max-width:100%}

/* Same left rail as the app shell on wide screens, so /writing doesn't drop
   the site navigation; a compact top bar on phones. */
.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:clamp(20px,4vh,44px);padding:30px 18px 22px 26px;border-right:1px solid var(--line)}
.brand{font:700 20px/1 var(--sans);letter-spacing:-.05em;text-decoration:none;color:var(--ink);white-space:nowrap}
.brand span{color:var(--red)}
.rail nav{display:flex;flex-direction:column;gap:2px}
.rail nav a{padding:8px 10px;margin-left:-10px;border-radius:8px;text-decoration:none;color:var(--muted);font-size:14px;font-weight:500}
.rail nav a:hover{color:var(--ink);background:var(--sunk)}
.rail .nav-group{font:500 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);opacity:.75;margin:16px 0 4px}
.rail nav a[aria-current]{color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.bar{display:none}
@media (max-width:860px){
  .shell{display:block}
  .rail{display:none}
  .bar{display:flex;align-items:center;gap:16px;padding:16px;border-bottom:1px solid var(--line)}
  .bar nav{display:flex;gap:14px;margin-left:auto;font-size:14px}
  .bar nav a{color:var(--ink-2);text-decoration:none}
  .bar nav a[aria-current]{color:var(--ink);text-decoration:underline}
}

article,.index{max-width:1080px;padding:12px clamp(16px,4vw,56px) 72px}
.index{padding-top:clamp(28px,5vw,56px)}
article>*,.index>*{max-width:var(--measure)}
article>figure,article>.wide,article>.stats,article>.tablewrap{max-width:none}

.eyebrow{font:500 11px/1.3 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin:28px 0 12px}
h1{font:400 clamp(38px,6.4vw,68px)/1 var(--serif);letter-spacing:-.015em;margin:0 0 18px;max-width:20ch;text-wrap:balance}
.dek{font-size:clamp(18px,2.2vw,21px);line-height:1.5;color:var(--ink-2);margin:0 0 18px}
.meta{font-size:13.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 18px;margin:0 0 8px}
.links{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 6px}
.links a{font-size:14px;font-weight:600;text-decoration:none;border:1px solid var(--line-2);border-radius:999px;padding:7px 14px;color:var(--ink);background:var(--surface)}
.links a.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.links a:hover{border-color:var(--ink)}

h2{font:400 clamp(28px,3.6vw,38px)/1.1 var(--serif);letter-spacing:-.01em;margin:52px 0 12px;text-wrap:balance}
h3{font-size:17px;font-weight:650;margin:28px 0 6px}
p{margin:0 0 14px;color:var(--ink-2)}
p b,li b{color:var(--ink)}
ul,ol{margin:0 0 14px;padding-left:22px;color:var(--ink-2)}
li{margin-bottom:6px}
code{font:.86em var(--mono);background:var(--sunk);padding:1px 5px;border-radius:4px}

.note{font-size:15px;line-height:1.5;border-left:3px solid var(--red);background:var(--red-wash);padding:12px 16px;margin:20px 0;border-radius:0 var(--r) var(--r) 0}
.note p{margin:0;color:var(--ink)}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;margin:26px 0}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.stat .v{font:400 40px/1 var(--serif);letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.stat .v.good{color:var(--green-ink)}
.stat .l{font-size:14px;line-height:1.35;color:var(--ink-2);margin-top:8px}
.stat .c{font:11.5px/1.4 var(--mono);color:var(--muted);margin-top:6px}

.tablewrap{overflow-x:auto;margin:18px 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.4;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}
th{font:500 11px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;white-space:nowrap}
.ok{color:var(--green-ink);font-weight:600}
.miss{color:var(--red-ink);font-weight:600}

figure{margin:28px 0}
figure img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
figcaption{font-size:14px;line-height:1.45;color:var(--muted);margin-top:10px;max-width:78ch}
figcaption b{color:var(--ink-2)}
.pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px;margin:28px 0}
.pair figure{margin:0}


.cards{display:grid;gap:16px;margin:28px 0;max-width:none}
.card{display:grid;grid-template-columns:minmax(0,1fr);gap:0;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
@media (min-width:760px){.card{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}
.card img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:1200/630}
.card div{padding:20px}
.card h2{margin:4px 0 8px;font-size:30px}
.card p{margin:0 0 10px}
.card:hover{border-color:var(--line-2)}
.card:hover h2{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.12em}

footer{max-width:1080px;margin:0 clamp(16px,4vw,56px);padding:22px 0 40px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
footer a{color:inherit}
