:root{
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);
  --text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --text-hero:clamp(3rem,.5rem + 7vw,7.5rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
  --radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;
  --transition-interactive:180ms cubic-bezier(.16,1,.3,1);
  --font-display:'Gambetta','Georgia',serif;
  --font-body:'Switzer','Helvetica Neue',sans-serif;
  --content:72rem;--prose:40rem;
}
:root,[data-theme='light']{
  --color-bg:#f4eee4;--color-surface:#f8f3eb;--color-surface-2:#fbf8f3;--color-surface-offset:#ebe3d6;
  --color-divider:#ddd3c4;--color-border:#cfc3b1;
  --color-text:#1e1915;--color-text-muted:#6b6158;--color-text-faint:#a39788;--color-text-inverse:#f8f3eb;
  --color-primary:#a8321f;--color-primary-hover:#86271a;--color-primary-highlight:#efd6cc;
  --color-bulb:#9a6a0c;
  --shadow-md:0 6px 20px rgb(60 30 10 / .10);
}
[data-theme='dark']{
  --color-bg:#121010;--color-surface:#1a1716;--color-surface-2:#211d1b;--color-surface-offset:#2a2421;
  --color-divider:#2f2926;--color-border:#3d3531;
  --color-text:#ece4d8;--color-text-muted:#a59a8e;--color-text-faint:#6c625a;--color-text-inverse:#121010;
  --color-primary:#f0624c;--color-primary-hover:#ff806c;--color-primary-highlight:#3a201b;
  --color-bulb:#f2b544;
  --shadow-md:0 8px 28px rgb(0 0 0 / .45);
}
@media (prefers-color-scheme:dark){:root:not([data-theme]){
  --color-bg:#121010;--color-surface:#1a1716;--color-surface-2:#211d1b;--color-surface-offset:#2a2421;
  --color-divider:#2f2926;--color-border:#3d3531;
  --color-text:#ece4d8;--color-text-muted:#a59a8e;--color-text-faint:#6c625a;--color-text-inverse:#121010;
  --color-primary:#f0624c;--color-primary-hover:#ff806c;--color-primary-highlight:#3a201b;--color-bulb:#f2b544}}

a{color:var(--color-primary);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--color-primary-hover)}
.wrap{width:min(100% - 2*var(--space-6),var(--content));margin-inline:auto}
.eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--color-bulb)}
.muted{color:var(--color-text-muted)}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in oklab,var(--color-bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-divider)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:4rem}
.brand{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text);text-decoration:none;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em}
.brand svg{width:30px;height:30px;color:var(--color-primary)}
.brand:hover{color:var(--color-text)}
.nav{display:flex;align-items:center;gap:var(--space-1)}
.nav a{font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}
.nav a:hover,.nav a[aria-current='page']{color:var(--color-text);background:var(--color-surface-offset)}
.theme-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:999px;color:var(--color-text-muted);margin-left:var(--space-2)}
.theme-btn:hover{color:var(--color-text);background:var(--color-surface-offset)}
@media (max-width:640px){.nav .hide-sm{display:none}}

/* hero */
.hero{position:relative;min-height:min(86vh,52rem);display:grid;align-items:end;overflow:hidden;color:#f4ece0;isolation:isolate}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgb(10 8 8 / .15) 0%,rgb(10 8 8 / .35) 45%,rgb(10 8 8 / .92) 100%)}
.hero .wrap{padding-block:var(--space-24) var(--space-16)}
.hero h1{font-family:var(--font-display);font-size:var(--text-hero);font-weight:500;line-height:.95;letter-spacing:-.025em;max-width:14ch}
.hero h1 em{font-style:italic;color:#f2b544}
.hero p{margin-top:var(--space-6);font-size:var(--text-lg);max-width:46ch;color:#e3d8c8;line-height:1.5}
.hero .eyebrow{color:#f2b544}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}
.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;padding:var(--space-3) var(--space-5);border-radius:999px;text-decoration:none;border:1px solid transparent}
.btn-primary{background:#e0483a;color:#fff}
.btn-primary:hover{background:#c73a2d;color:#fff}
.btn-ghost{border-color:rgb(255 255 255 / .35);color:#f4ece0}
.btn-ghost:hover{background:rgb(255 255 255 / .1);color:#fff}

/* sections */
section{padding-block:clamp(var(--space-12),8vw,var(--space-24))}
.section-head{display:grid;gap:var(--space-3);margin-bottom:var(--space-10);max-width:44rem}
.section-head h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:-.02em;line-height:1.05}
.section-head p{color:var(--color-text-muted)}
.alt{background:var(--color-surface)}
.rule{border:0;border-top:1px solid var(--color-divider)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);padding-block:var(--space-8)}
.stat b{display:block;font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;color:var(--color-primary);font-variant-numeric:tabular-nums}
.stat span{font-size:var(--text-sm);color:var(--color-text-muted)}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}

/* intro two-col */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-12);align-items:start}
.split p+p{margin-top:var(--space-4)}
.pull{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.25;font-style:italic;border-left:3px solid var(--color-primary);padding-left:var(--space-6)}
.pull cite{display:block;margin-top:var(--space-4);font-family:var(--font-body);font-style:normal;font-size:var(--text-sm);color:var(--color-text-muted)}
@media (max-width:860px){.split{grid-template-columns:1fr}}

/* timeline */
.era-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-8)}
.chip{font-size:var(--text-sm);padding:var(--space-2) var(--space-4);border-radius:999px;border:1px solid var(--color-border);color:var(--color-text-muted)}
.chip:hover{color:var(--color-text);border-color:var(--color-text-faint)}
.chip[aria-pressed='true']{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}
.timeline{list-style:none;position:relative;display:grid;gap:0}
.timeline li{display:grid;grid-template-columns:7.5rem 1fr;gap:var(--space-6);padding-block:var(--space-5);border-top:1px solid var(--color-divider);max-width:none}
.timeline .yr{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-primary);font-variant-numeric:tabular-nums}
.timeline h3{font-size:var(--text-base);font-weight:600;line-height:1.35}
.timeline p{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}
.timeline p a{color:var(--color-text-muted)}
@media (max-width:560px){.timeline li{grid-template-columns:1fr;gap:var(--space-1)}}

/* venues */
.venues{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
.venue{background:var(--color-surface-2);border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}
.alt .venue{background:var(--color-bg)}
.venue.feature{grid-column:span 2;background:var(--color-text);color:var(--color-bg);border-color:transparent}
.venue.feature .meta,.venue.feature p{color:color-mix(in oklab,var(--color-bg) 78%,var(--color-text))}
.venue.feature a{color:#f2b544}
[data-theme=dark] .venue.feature a{color:#9a6a0c}
.venue .meta{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}
.venue h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.01em}
.venue p{font-size:var(--text-sm)}
.venue .status{margin-top:auto;padding-top:var(--space-3);font-size:var(--text-xs);font-weight:600;display:flex;align-items:center;gap:var(--space-2)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--color-bulb);box-shadow:0 0 10px var(--color-bulb)}
.dot.off{background:var(--color-text-faint);box-shadow:none}
@media (max-width:960px){.venues{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.venues{grid-template-columns:1fr}.venue.feature{grid-column:auto}}

/* pipeline */
.pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-4);counter-reset:step}
.step{border-top:3px solid var(--color-primary);padding-top:var(--space-4)}
.step::before{counter-increment:step;content:'0' counter(step);font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-bulb)}
.step h3{font-size:var(--text-base);font-weight:600;margin-block:var(--space-2)}
.step p{font-size:var(--text-sm);color:var(--color-text-muted)}
@media (max-width:960px){.pipeline{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.pipeline{grid-template-columns:1fr}}

/* matrix */
.matrix-tools{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;margin-bottom:var(--space-6)}
.search{flex:1 1 16rem;max-width:22rem;padding:var(--space-3) var(--space-4);border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--text-sm)}
.search:focus{outline:none;border-color:var(--color-primary)}
.table-wrap{overflow-x:auto;border:1px solid var(--color-divider);border-radius:var(--radius-lg);background:var(--color-surface-2)}
.matrix{font-size:var(--text-sm);min-width:46rem}
.matrix th{text-align:left;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-divider);background:var(--color-surface);position:sticky;top:0}
.matrix td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-divider);vertical-align:top}
.matrix tr:last-child td{border-bottom:0}
.matrix td:first-child{font-weight:600;white-space:nowrap}
.matrix .era{font-variant-numeric:tabular-nums;color:var(--color-text-muted);white-space:nowrap}
.empty{padding:var(--space-8);text-align:center;color:var(--color-text-muted)}
.count{font-size:var(--text-xs);color:var(--color-text-muted)}

/* why */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8) var(--space-6)}
.why h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;margin-bottom:var(--space-2)}
.why p{font-size:var(--text-sm);color:var(--color-text-muted)}
@media (max-width:860px){.why{grid-template-columns:1fr}}

/* post cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
.cards.lead{grid-template-columns:1.4fr 1fr}
.card{display:flex;flex-direction:column;gap:var(--space-3);text-decoration:none;color:var(--color-text)}
.card:hover{color:var(--color-text)}
.card .img{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-md);background:var(--color-surface-offset)}
.card img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.card:hover img{transform:scale(1.04)}
.card h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;line-height:1.2;letter-spacing:-.01em}
.card:hover h3{color:var(--color-primary)}
.card p{font-size:var(--text-sm);color:var(--color-text-muted)}
.card .txt{display:grid;gap:var(--space-2)}
.card .meta{font-size:var(--text-xs);color:var(--color-text-muted);display:flex;gap:var(--space-3);flex-wrap:wrap}
.card .meta .tag{color:var(--color-bulb);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.card.big h3{font-size:var(--text-xl)}
.card.big .img{aspect-ratio:16/10}
.stack{display:grid;gap:var(--space-6)}
.stack .card{display:grid;grid-template-columns:9rem 1fr;gap:var(--space-4);align-items:start}
.stack .card .img{aspect-ratio:1}
@media (max-width:900px){.cards,.cards.lead{grid-template-columns:1fr}}
@media (max-width:480px){.stack .card{grid-template-columns:6rem 1fr}}

/* blog index */
.blog-hero{padding-block:var(--space-16) var(--space-8)}
.blog-hero h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:-.02em;line-height:1.05;max-width:20ch}
.blog-hero p{margin-top:var(--space-4);color:var(--color-text-muted);max-width:52ch}
.filters{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-8)}

/* article */
.article-head{padding-block:var(--space-12) var(--space-8);max-width:48rem}
.back{font-size:var(--text-sm);text-decoration:none;color:var(--color-text-muted);display:inline-flex;gap:var(--space-2);margin-bottom:var(--space-8)}
.back:hover{color:var(--color-text)}
.article-head h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:-.02em;line-height:1.05;margin-top:var(--space-3)}
.article-head .dek{font-size:var(--text-lg);color:var(--color-text-muted);margin-top:var(--space-5);line-height:1.45}
.byline{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-6);font-size:var(--text-xs);color:var(--color-text-muted)}
.article-img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:var(--radius-lg)}
.article-grid{display:grid;grid-template-columns:minmax(0,var(--prose)) 1fr;gap:var(--space-16);padding-block:var(--space-12)}
.prose{font-size:var(--text-base);line-height:1.72}
.prose>*+*{margin-top:var(--space-5)}
.prose h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.01em;margin-top:var(--space-12)}
.prose blockquote{font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);line-height:1.4;border-left:3px solid var(--color-primary);padding-left:var(--space-6);margin-block:var(--space-8)}
.prose blockquote cite{display:block;font-family:var(--font-body);font-style:normal;font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-3)}
.prose ul{padding-left:var(--space-5)}
.prose li+li{margin-top:var(--space-2)}
.prose p:first-of-type::first-letter{font-family:var(--font-display);float:left;font-size:4.2em;line-height:.85;padding:.06em .1em 0 0;color:var(--color-primary)}
.aside{position:sticky;top:6rem;align-self:start;display:grid;gap:var(--space-8);font-size:var(--text-sm)}
.aside h4{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-3)}
.aside ul{list-style:none;display:grid;gap:var(--space-2)}
.aside .facts li{border-top:1px solid var(--color-divider);padding-top:var(--space-2);color:var(--color-text-muted)}
.aside .facts b{color:var(--color-text);display:block;font-weight:600}
.sources{font-size:var(--text-xs);color:var(--color-text-muted)}
.sources a{color:var(--color-text-muted)}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);border-top:1px solid var(--color-divider);padding-block:var(--space-8)}
.post-nav a{text-decoration:none;color:var(--color-text);display:grid;gap:var(--space-1)}
.post-nav a span{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em}
.post-nav a b{font-family:var(--font-display);font-weight:500;font-size:var(--text-lg)}
.post-nav a:hover b{color:var(--color-primary)}
.post-nav .next{text-align:right}
@media (max-width:900px){.article-grid{grid-template-columns:1fr;gap:var(--space-10)}.aside{position:static}}

/* newsletter + footer */
.subscribe{display:grid;grid-template-columns:1fr auto;gap:var(--space-8);align-items:center;background:var(--color-surface-offset);border-radius:var(--radius-lg);padding:var(--space-10)}
.subscribe h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500}
.subscribe form{display:flex;gap:var(--space-2);flex-wrap:wrap}
.subscribe input{padding:var(--space-3) var(--space-4);border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--text-sm);min-width:15rem}
.subscribe button{background:var(--color-primary);color:var(--color-text-inverse);font-weight:600;font-size:var(--text-sm);padding:var(--space-3) var(--space-5);border-radius:999px}
.subscribe button:hover{background:var(--color-primary-hover)}
.form-msg{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-2)}
@media (max-width:760px){.subscribe{grid-template-columns:1fr;padding:var(--space-6)}}
.site-footer{border-top:1px solid var(--color-divider);padding-block:var(--space-10);font-size:var(--text-xs);color:var(--color-text-muted)}
.site-footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4)}
.site-footer a{color:var(--color-text-muted)}

/* reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}

.venue.wide{grid-column:1/-1}
.stack .card h3{font-size:var(--text-base);line-height:1.3}
@media (max-width:600px){.article-img{aspect-ratio:4/3}}

/* Local Mic cross-link */
.nav a.nav-lm{color:var(--color-primary);font-weight:600}
.lm-banner{padding-block:var(--space-12)}
.lm-card{display:flex;flex-wrap:wrap;gap:var(--space-6);align-items:center;justify-content:space-between;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-lg,12px);padding:var(--space-8)}
.lm-card>div{flex:1 1 420px;max-width:62ch}
.lm-card h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em;line-height:1.1;margin-block:var(--space-2) var(--space-3)}
.lm-card p:not(.eyebrow){color:var(--color-text-muted)}
.nav a.nav-lm,.brand{white-space:nowrap}
.brand svg{flex-shrink:0}
