:root{
  --bg:#070c14; --bg2:#0d1522; --ink:#f5f8fc; --mute:#93a4b8; --line:#1f2c3f;
  --accent:#4da3ff; --accent-ink:#04101f;
  --lbg:#f4f8fd; --link:#0a1626; --lmute:#4c5d73; --lline:#d3deec;
  --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
.wrap{width:min(1120px,100% - 32px);margin-inline:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.12;letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,5.4vw,4rem)}
h1 em{font-style:italic;color:var(--accent)}
h2{font-size:clamp(1.7rem,3.6vw,2.6rem);max-width:22ch}
h3{font-size:1.25rem}
.kicker{font:600 .78rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:20px}
.sub{color:var(--mute);max-width:60ch;margin:18px 0 0}

.nav{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:14px max(16px,calc((100% - 1120px)/2));background:rgba(7,12,20,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.mark{font:600 1.15rem var(--serif);text-decoration:none;border:1px solid var(--accent);color:var(--accent);padding:4px 10px;border-radius:4px}
.nav nav{display:flex;gap:22px;align-items:center;font-size:.92rem}
.nav nav a{text-decoration:none;color:var(--mute)}
.nav nav a:hover{color:var(--ink)}
.nav .pill{color:var(--accent-ink);background:var(--accent);padding:7px 14px;border-radius:99px;font-weight:600}
.nav .pill:hover{color:var(--accent-ink);opacity:.9}

.hero{padding:clamp(56px,10vw,128px) 0 64px}
.lede{font-size:1.2rem;color:var(--mute);max-width:56ch;margin-top:28px}
.hero-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.btn{display:inline-block;background:var(--accent);color:var(--accent-ink);font-weight:600;padding:13px 22px;border-radius:6px;text-decoration:none;transition:opacity .15s,transform .15s}
.btn:hover{opacity:.9;transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--mute)}
.btn.big{font-size:1.15rem;padding:16px 26px;margin-top:28px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-top:72px;padding-top:28px;border-top:1px solid var(--line)}
.facts dt{font:600 .75rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.facts dd{margin:0}

.section{padding:clamp(56px,8vw,104px) 0}
.band{background:var(--bg2);padding:clamp(56px,8vw,104px) 0;border-block:1px solid var(--line)}
.band.light{background:var(--lbg);color:var(--link);border:0}
.band.light .kicker{color:#1f6fcc}
.band.light .lessons p{color:var(--lmute)}

.cols,.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:44px}
.cols article,.cards article{padding:26px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.cols h3,.cards h3{margin-bottom:10px}
.cols p,.cards p{color:var(--mute);font-size:.98rem}

.layers{list-style:none;padding:0;margin-top:44px;border-top:1px solid var(--line)}
.layers li{display:grid;grid-template-columns:56px 1fr auto;gap:20px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line)}
.layers .n{font:500 1.1rem var(--serif);color:var(--accent)}
.layers p{color:var(--mute);margin-top:6px;max-width:58ch}
.tag{font-size:.78rem;color:var(--mute);border:1px solid var(--line);padding:4px 10px;border-radius:99px;white-space:nowrap}

.lessons{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 48px;margin-top:40px}
.lessons div{padding:22px 0;border-top:1px solid var(--lline)}
.lessons span{display:block;font:500 1.3rem/1.2 var(--serif);margin-bottom:8px}

.timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;margin-top:44px;border-top:2px solid var(--accent)}
.timeline div{padding:22px 24px 0 0}
.timeline b{font:500 1.4rem var(--serif);display:block;margin-bottom:6px}
.timeline p{color:var(--mute);font-size:.98rem}

.small{color:var(--mute);font-size:.82rem;margin-top:14px}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:28px 0 40px;border-top:1px solid var(--line);color:var(--mute);font-size:.85rem}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.btn{transition:none}}
@media (max-width:640px){
  .nav nav a:not(.pill){display:none}
  .layers li{grid-template-columns:40px 1fr}
  .layers .tag{grid-column:2;justify-self:start}
}

/* writing + essay */
.post{display:grid;grid-template-columns:48px 1fr auto;gap:20px;align-items:center;margin-top:36px;padding:24px 0;border-block:1px solid var(--line);text-decoration:none}
.post:hover .post-go{transform:translateX(4px);color:var(--accent)}
.post-n{font:500 1.1rem var(--serif);color:var(--accent)}
.post-b b{display:block;font:500 1.4rem/1.2 var(--serif);margin-bottom:6px}
.post-b span{color:var(--mute);font-size:.98rem}
.post-go{font-size:1.4rem;transition:transform .15s,color .15s}
.essay{max-width:720px;padding:clamp(48px,8vw,96px) 0}
.essay h1{margin-bottom:12px}
.essay h2{font-size:1.7rem;max-width:none;margin:52px 0 14px}
.essay p{margin-top:16px;color:#d5d9de}
.essay .lede{color:var(--ink);font-size:1.2rem;margin-top:24px}
.byline{color:var(--mute)!important;font-size:.9rem}
.steps{margin:20px 0 0;padding-left:0;list-style:none;counter-reset:s}
.steps li{counter-increment:s;padding:14px 0 14px 44px;border-top:1px solid var(--line);position:relative;color:#d5d9de}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps li::before{content:counter(s);position:absolute;left:0;top:14px;font:500 1.1rem var(--serif);color:var(--accent)}
.case{margin-top:28px;padding:26px;border:1px solid var(--line);border-radius:10px;background:var(--bg2)}
.case h3{margin-bottom:4px}
.case-n{font:600 .75rem/1 var(--sans)!important;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)!important;margin:0 0 12px!important}
.take{border-top:1px solid var(--line);padding-top:14px;color:var(--ink)!important}
.back{margin-top:56px!important}
.back a{color:var(--accent);text-decoration:none}
.sources{margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.sources h3{font:600 .78rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}
.sources ul{margin:0;padding-left:18px;color:var(--mute);font-size:.92rem}
.sources a{color:var(--mute)}
.sources a:hover{color:var(--ink)}
@media (max-width:640px){.post{grid-template-columns:36px 1fr}.post-go{display:none}}

/* chart */
.chart{margin:28px 0 0;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--bg2)}
.chart svg{width:100%;height:auto;display:block}
.c-grid{stroke:var(--line);stroke-width:1}
.c-tick{fill:var(--mute);font:12px var(--sans)}
.c-group{fill:var(--ink);font:600 13px var(--sans);letter-spacing:.02em}
.c-lab{fill:var(--mute);font:13px var(--sans)}
.c-val{fill:var(--ink);font:600 13px var(--sans)}
.c-bar-cards{fill:#3d6fb0}
.c-bar-fc{fill:#f5f8fc}
.c-bar-view{fill:var(--accent)}
.c-faint{opacity:.28}
.chart figcaption{margin-top:14px;font-size:.88rem;color:var(--mute)}
.chart details{margin-top:12px;font-size:.88rem;color:var(--mute)}
.chart summary{cursor:pointer;color:var(--ink)}
.chart table{width:100%;border-collapse:collapse;margin-top:10px}
.chart th,.chart td{text-align:left;padding:6px 8px;border-top:1px solid var(--line);vertical-align:top}
.name{margin-top:18px;color:var(--mute);font-size:.95rem;max-width:56ch}
.name b{color:var(--ink);font-family:var(--serif);font-weight:500}

/* essay additions */
.brief{margin-top:28px;padding:22px 24px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;background:var(--bg2)}
.brief h3{font:600 .78rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.brief ul{margin:0;padding-left:18px;color:#d5d9de;font-size:.96rem}
.brief li{margin-top:8px}
.essay h3{margin:28px 0 0;font-size:1.15rem}
.essay .case h3{margin-top:0}
.plain{width:100%;border-collapse:collapse;margin-top:16px;font-size:.95rem}
.plain th,.plain td{text-align:left;padding:10px 12px;border-top:1px solid var(--line);vertical-align:top;color:#d5d9de}
.plain th{color:var(--mute);font:600 .75rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.plain tr:last-child td{border-bottom:1px solid var(--line)}
.bullets{margin:16px 0 0;padding-left:20px;color:#d5d9de}
.bullets li{margin-top:8px}
.tl{list-style:none;padding:0;margin:22px 0 0;border-left:2px solid var(--line)}
.tl li{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:14px 0 14px 20px;position:relative;color:#d5d9de;font-size:.97rem}
.tl li::before{content:"";position:absolute;left:-6px;top:22px;width:10px;height:10px;border-radius:50%;background:var(--accent)}
.tl .yr{font:600 .85rem/1.5 var(--sans);color:var(--accent)}
.tl b{color:var(--ink)}
@media (max-width:640px){.tl li{grid-template-columns:1fr;gap:4px}}
.tl .vol{display:block;margin-top:6px;color:var(--mute);font-size:.88rem}
.photo{margin:28px 0 0}
.photo img{width:100%;max-width:505px;height:auto;display:block;border:1px solid var(--line);border-radius:10px}
.photo figcaption{margin-top:10px;font-size:.88rem;color:var(--mute)}
.photo.wide img{max-width:100%}
.subtitle{font:italic 400 clamp(1.15rem,2.4vw,1.5rem)/1.3 var(--serif);color:var(--accent);margin-top:14px}
.photo.tweet img{max-width:480px}
.photo img[src*="eric-browy"]{max-width:720px}
