/* The Bar Stool Historian — 2026 redesign */
:root{
  --ink:#141414;
  --ink-2:#262626;
  --body:#4a4a4a;
  --muted:#6b6b6b;
  --rule:#e6e6e3;
  --panel:#f2f1ee;
  --dark:#141414;
  --dark-2:#222222;
  --dark-rule:#3a3a3a;
  --on-dark:#f4f4f2;
  --on-dark-2:#c9c9c6;
  --on-dark-3:#a3a3a3;
  --accent:#b3261e;
  --accent-2:#8f1d17;
  --serif:"Newsreader", Georgia, "Times New Roman", serif;
  --sans:"Geist", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font:16px/1.6 var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink)}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px 12px;z-index:20}
.wrap{max-width:1200px;margin:0 auto;padding:0 40px}
.eyebrow{font:400 13px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 20px}
.mono{font-family:var(--mono)}
.serif{font-family:var(--serif)}

/* Header */
.site-header{border-bottom:1px solid var(--rule);background:#fff}
.site-header .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:22px;padding-bottom:22px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand .dot{width:34px;height:34px;border-radius:50%;background:var(--accent);flex:none}
.brand .name{font:400 22px/1.1 var(--serif);letter-spacing:-.01em}
.nav{display:flex;gap:28px;align-items:center;flex-wrap:wrap;font-size:15px}
.nav a{text-decoration:none}
.nav a[aria-current]{color:var(--accent)}
.pill{display:inline-flex;align-items:center;gap:10px;text-decoration:none;padding:13px 20px;border-radius:999px;border:1px solid #d6d6d2;font:500 15px/1 var(--sans);color:var(--ink);background:#fff}
.pill:hover{border-color:var(--ink);color:var(--ink)}
.pill.dark{background:var(--ink);border-color:var(--ink);color:#fff}
.pill.dark:hover{background:#333;color:#fff}
.pill.accent{background:var(--accent);border-color:var(--accent);color:#fff}
.pill.accent:hover{background:var(--accent-2);color:#fff}
.nav .pill{padding:11px 18px}
.pills{display:flex;gap:12px;flex-wrap:wrap}

/* Hero */
.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:72px;align-items:center;padding-top:96px;padding-bottom:96px}
.hero h1{font:400 76px/1.02 var(--serif);letter-spacing:-.025em;margin:0 0 28px}
.hero .lede{font-size:19px;line-height:1.6;color:var(--body);max-width:560px;margin:0 0 36px}
.hero-logo{width:100%;max-width:420px;aspect-ratio:1;border-radius:50%;overflow:hidden;margin:0 auto;box-shadow:0 30px 60px -30px rgba(20,20,20,.45);background:var(--panel)}
.hero-logo img{width:100%;height:100%;object-fit:cover}

/* Latest episode band */
.band{background:var(--dark);color:var(--on-dark)}
.band .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;padding-top:72px;padding-bottom:72px}
.band .art{aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:var(--dark-2)}
.band .art img{width:100%;height:100%;object-fit:cover}
.band .eyebrow{color:var(--on-dark-3)}
.band h2{font:400 52px/1.05 var(--serif);letter-spacing:-.02em;margin:0 0 20px}
.band h2 a{color:inherit;text-decoration:none}
.band h2 a:hover{color:#fff;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.band p{font-size:18px;line-height:1.6;color:var(--on-dark-2);margin:0 0 32px}
.band .more{color:var(--on-dark);font-size:15px;display:inline-block;margin-top:18px}

/* Player */
.player{display:flex;align-items:center;gap:16px;background:var(--dark-2);color:var(--on-dark);border-radius:999px;padding:10px 24px 10px 10px;flex-wrap:wrap}
.player.wide{background:var(--dark)}
.player .play{width:52px;height:52px;flex:none;border-radius:50%;border:0;background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer}
.player .play:hover{background:var(--accent-2)}
.player .play svg{width:16px;height:16px}
.player .play .i-pause{display:none}
.player.playing .play .i-play{display:none}
.player.playing .play .i-pause{display:block}
.player .t{font:400 13px var(--mono);color:var(--on-dark-3);min-width:44px}
.player .t.end{text-align:right}
.player input[type=range]{flex:1;min-width:120px;-webkit-appearance:none;appearance:none;height:20px;background:transparent;cursor:pointer;margin:0}
.player input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--on-dark) var(--p,0%),var(--dark-rule) var(--p,0%))}
.player input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--dark-rule)}
.player input[type=range]::-moz-range-progress{height:4px;border-radius:2px;background:var(--on-dark)}
.player input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--on-dark);margin-top:-4px}
.player input[type=range]::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:var(--on-dark)}
.player .links{display:flex;gap:18px;font-size:14px}
.player .links a{color:var(--on-dark);text-decoration:none}
.player .links a:hover{text-decoration:underline}
.unavailable{background:var(--panel);border-radius:12px;padding:18px 24px;color:var(--body)}

/* Archive list */
.section{padding-top:96px;padding-bottom:40px}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.section-head h2,.h2{font:400 44px/1.1 var(--serif);letter-spacing:-.02em;margin:0}
.section-head a{font-size:15px;font-weight:500}
.archive{border-top:1px solid var(--ink)}
.row{display:grid;grid-template-columns:120px minmax(0,1fr) 160px 70px 24px;gap:24px;align-items:baseline;text-decoration:none;padding:24px 0;border-bottom:1px solid var(--rule)}
.row .date,.row .len{font:400 13px var(--mono);color:var(--muted)}
.row .len{text-align:right}
.row .title{display:block;font:400 26px/1.15 var(--serif);letter-spacing:-.01em;margin-bottom:6px}
.row .blurb{display:block;font-size:15px;line-height:1.5;color:var(--muted)}
.row .topic{font-size:14px;color:var(--muted)}
.row .arrow{color:var(--accent);text-align:right}
.row:hover .title{color:var(--accent)}
.year{font:400 13px var(--mono);letter-spacing:.08em;color:var(--muted);margin:56px 0 0;padding-bottom:12px}
.year:first-of-type{margin-top:0}

/* Hosts */
.hosts{padding-top:80px;padding-bottom:96px}
.hosts p.sub{font-size:18px;color:var(--body);margin:12px 0 40px}
.hosts figure{margin:0}
.hosts img{width:100%;max-height:600px;object-fit:cover;object-position:center 40%;border-radius:6px}
figcaption{font-size:14px;line-height:1.5;color:var(--muted);margin-top:10px}

/* Page heads */
.page-head{padding-top:56px;padding-bottom:48px}
.back{font-size:14px;text-decoration:none;color:var(--muted);display:inline-block;margin-bottom:40px}
.page-head h1{font:400 84px/1 var(--serif);letter-spacing:-.03em;margin:0 0 24px}
.page-head .lede{font-size:20px;line-height:1.55;color:var(--body);margin:0;max-width:620px}
.ep-head{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:64px;align-items:end}
.ep-cover{margin:0}
.ep-cover .img{aspect-ratio:1;border-radius:6px;overflow:hidden;background:var(--panel)}
.ep-cover img{width:100%;height:100%;object-fit:cover}
.player-row{padding-bottom:64px}

/* Episode body */
.ep-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:80px;align-items:start;padding-bottom:96px}
.notes{font:400 21px/1.65 var(--serif);color:var(--ink-2);max-width:680px;min-width:0}
.notes p{margin:0 0 24px}
.notes a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}
.notes h2,.notes h3{font:400 32px/1.2 var(--serif);letter-spacing:-.01em;color:var(--ink);margin:48px 0 16px}
.notes h3{font-size:24px}
.notes ul{padding-left:1.1em;margin:0 0 24px}
.notes li{margin:6px 0}
.notes figure{margin:0 0 32px}
.notes figure img{border-radius:6px;margin:0 auto}
.notes figcaption{font-family:var(--sans)}
.figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:0 0 40px;align-items:start}
.figs figure{margin:0}
.figs img{width:100%;max-height:420px;object-fit:contain;background:#fff}
.rec{display:flex;flex-direction:column;gap:2px;padding:14px 0;border-bottom:1px solid var(--rule);font-family:var(--sans)}
.rec:first-of-type{border-top:1px solid var(--rule)}
.rec a{font:400 20px/1.3 var(--serif);color:var(--ink);text-decoration:none}
.rec a:hover{color:var(--accent)}
.rec span{font-size:14px;color:var(--muted)}
.rec + :not(.rec){margin-top:28px}
.video{position:relative;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:var(--dark);margin:0 0 24px}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vcap{font:15px/1.6 var(--sans);color:var(--muted)}
aside.side{display:flex;flex-direction:column;gap:40px;position:sticky;top:24px}
.card{border:1px solid var(--rule);border-radius:8px;padding:28px}
.card .eyebrow{font-size:12px;letter-spacing:.1em;margin-bottom:20px}
.bar-list{list-style:none;margin:0;padding:0}
.bar-list li{display:flex;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--rule)}
.bar-list .thumb{width:48px;height:64px;flex:none;border-radius:4px;overflow:hidden;background:#fff;border:1px solid var(--rule)}
.bar-list .thumb img{width:100%;height:100%;object-fit:contain}
.bar-list span{font-size:15px;line-height:1.4}
.support{background:var(--panel);border-radius:8px;padding:28px}
.support p.t{font:400 24px/1.25 var(--serif);margin:0 0 12px}
.support p{font-size:15px;line-height:1.6;color:var(--body);margin:0 0 20px}
.pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;border-top:1px solid var(--ink);padding-top:28px;margin-bottom:96px}
.pager a{text-decoration:none;display:flex;flex-direction:column;gap:8px}
.pager a.next{text-align:right;grid-column:2}
.pager small{font:400 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pager span{font:400 28px/1.2 var(--serif);letter-spacing:-.01em}

/* Simple pages */
.page{max-width:760px;padding-bottom:96px}
.page .notes{max-width:none}
form.contact{display:grid;gap:18px;max-width:560px;margin-top:8px}
form.contact label{display:grid;gap:6px;font:500 14px var(--sans);color:var(--ink)}
form.contact input,form.contact textarea{font:17px/1.5 var(--sans);padding:12px 14px;border:1px solid #d6d6d2;border-radius:6px;background:#fff;color:var(--ink)}
form.contact input:focus,form.contact textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
form.contact textarea{min-height:160px;resize:vertical}
form.contact .pill{justify-self:start;cursor:pointer}
.hidden{display:none}

/* Footer */
.site-footer{border-top:1px solid var(--rule)}
.site-footer .wrap{padding-top:48px;padding-bottom:48px;display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;align-items:flex-start}
.site-footer .about{display:flex;flex-direction:column;gap:10px;max-width:420px}
.site-footer .about .name{font:400 22px var(--serif)}
.site-footer .about span{font-size:15px;line-height:1.6;color:var(--muted)}
.site-footer .links{display:flex;gap:24px;flex-wrap:wrap;font-size:15px}
.site-footer .links a{text-decoration:none}
.site-footer .links a.patreon{color:var(--accent);font-weight:500}

/* Missing images: hide gracefully */
figure.noimg,.bar-list li.noimg{display:none}
img.noimg{visibility:hidden}

@media (max-width:980px){
  .ep-body{grid-template-columns:1fr;gap:56px}
  aside.side{position:static}
}
@media (max-width:820px){
  .wrap{padding:0 20px}
  .hero,.band .wrap,.ep-head{grid-template-columns:1fr;gap:40px}
  .hero{padding-top:56px;padding-bottom:64px}
  .hero h1{font-size:48px}
  .band h2{font-size:38px}
  .page-head h1{font-size:46px}
  .ep-cover{max-width:380px}
  .row{grid-template-columns:minmax(0,1fr) 60px;gap:6px 16px}
  .row .date,.row .topic,.row .arrow{display:none}
  .row .title{font-size:22px}
  .section-head h2,.h2{font-size:34px}
  .notes{font-size:19px}
  .figs{grid-template-columns:1fr}
  .pager{grid-template-columns:1fr}
  .pager a.next{grid-column:auto;text-align:left}
  .nav{gap:16px}
  .player{border-radius:16px;padding:12px}
  .player input[type=range]{order:5;flex-basis:100%}
}
