/* ============ tokens ============ */
/* Black & Peach — a single committed look, not a light/dark pair.
   There is deliberately no prefers-color-scheme block: the page presents the same
   way to every visitor. `color-scheme: dark` tells the browser to render form
   controls, scrollbars and autofill against a dark ground.
   Every pairing below is verified at WCAG AA or better by check_contrast.py. */
:root{
  color-scheme:dark;

  --ground:#0C0B0A;
  --ground-2:#161412;
  --ground-3:#201C19;
  --ink:#F2ECE6;
  --muted:#9C9188;
  --accent:#EFB392;
  --accent-ink:#EFB392;
  --accent-quiet:#2A1F18;
  --on-accent:#14100D;
  --rule:#282320;
  --field:#161412;
  --shadow:0 1px 2px rgba(0,0,0,.5);
  /* the newsletter band lifts a step off the page rather than inverting */
  --band-bg:#1C1815;
  --band-fg:#F5EBE3;
  --band-btn-bg:#EFB392;
  --band-btn-fg:#14100D;

  --f-display:"Newsreader",Georgia,"Times New Roman",serif;
  --f-body:"Karla",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --measure:64ch;
  --pad:clamp(1.25rem,6vw,5rem);
  --maxw:1240px;
}

/* ============ base ============ */
*,*::before,*::after{box-sizing:border-box;}
[hidden]{display:none !important;}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px;}
html{scroll-behavior:smooth;}

.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}

.label{
  font-family:var(--f-mono);
  font-size:.6875rem;
  font-weight:500;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0;
}
.h2{
  font-family:var(--f-display);
  font-optical-sizing:auto;
  font-weight:400;
  font-size:clamp(1.85rem,3.6vw,2.85rem);
  line-height:1.12;
  letter-spacing:-.015em;
  margin:.85rem 0 0;
  text-wrap:balance;
  max-width:20ch;
}
.h2 em{font-style:italic;color:var(--accent-ink);}
.sec{padding:clamp(3.5rem,7vw,6rem) 0;}
.sec + .sec{border-top:1px solid var(--rule);}
.lede{max-width:var(--measure);color:var(--muted);margin:1.25rem 0 0;font-size:1.0625rem;}

/* ============ buttons ============ */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--f-body);font-size:.9375rem;font-weight:600;
  letter-spacing:.01em;text-decoration:none;
  padding:.72rem 1.35rem;border-radius:2px;border:1px solid transparent;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
  cursor:pointer;
}
.btn-solid{background:var(--accent);color:var(--on-accent);}
.btn-solid:hover{transform:translateY(-1px);}
.btn-line{background:transparent;color:var(--ink);border-color:var(--rule);}
.btn-line:hover{border-color:var(--accent);color:var(--accent-ink);}
.btn-invert{background:var(--band-btn-bg);color:var(--band-btn-fg);}
.btn-invert:hover{transform:translateY(-1px);}

/* ============ topbar ============ */
.topbar{
  position:sticky;top:0;z-index:70;
  background:color-mix(in srgb,var(--ground) 90%,transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--rule);
}
.topbar-in{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding-top:.9rem;padding-bottom:.9rem;
}
.mark{
  font-family:var(--f-display);font-weight:500;font-size:1.0625rem;
  letter-spacing:-.01em;text-decoration:none;white-space:nowrap;
}
.mark .md{
  font-family:var(--f-mono);font-size:.625rem;letter-spacing:.14em;
  color:var(--accent-ink);vertical-align:.5em;margin-left:.4em;
}
.topnav{display:none;gap:1.75rem;}
@media (min-width:880px){.topnav{display:flex;}}
.topnav a{
  font-size:.875rem;color:var(--muted);text-decoration:none;
  transition:color .18s ease;
}
.topnav a:hover,.topnav a[aria-current="true"]{color:var(--ink);}
.topbar .btn{padding:.5rem 1rem;font-size:.8125rem;}

/* ============ hero ============ */
.hero{padding:clamp(3rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,4rem);}
.hero-grid{display:grid;grid-template-columns:1fr;gap:clamp(2.5rem,5vw,4rem);align-items:center;}
@media (min-width:920px){.hero-grid{grid-template-columns:1.15fr .85fr;}}
.hero h1{
  font-family:var(--f-display);font-optical-sizing:auto;
  font-weight:400;font-size:clamp(2.6rem,6vw,4.4rem);
  line-height:1.03;letter-spacing:-.025em;margin:1.1rem 0 0;
  text-wrap:balance;
}
.hero h1 .sm{
  display:block;font-family:var(--f-mono);font-size:.6875rem;font-weight:500;
  letter-spacing:.2em;color:var(--accent-ink);margin-top:1rem;
}
.hero-thesis{
  font-family:var(--f-display);font-style:italic;font-weight:300;
  font-size:clamp(1.2rem,2.2vw,1.55rem);line-height:1.45;
  color:var(--ink);max-width:34ch;margin:1.75rem 0 0;
}
.hero-note{max-width:40ch;color:var(--muted);font-size:.9375rem;margin:1rem 0 0;}
.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem;}

/* definition row inside the physician section */
.defs{list-style:none;margin:2rem 0 0;padding:0;display:flex;flex-direction:column;gap:.65rem;}
.defs li{display:flex;gap:.9rem;align-items:baseline;flex-wrap:wrap;}
.defs strong{
  font-family:var(--f-mono);font-size:.75rem;font-weight:500;letter-spacing:.1em;
  color:var(--accent-ink);flex:0 0 3.5rem;
}
.defs span{color:var(--muted);font-size:.9375rem;}

/* FAQ */
.faq{margin-top:2.5rem;display:grid;grid-template-columns:1fr;border-top:1px solid var(--rule);}
@media (min-width:900px){.faq{grid-template-columns:1fr 1fr;column-gap:clamp(2rem,4vw,4rem);}}
.qa{padding:1.5rem 0;border-bottom:1px solid var(--rule);}
.qa h3{
  font-family:var(--f-display);font-weight:500;font-size:1.125rem;line-height:1.35;
  letter-spacing:-.008em;margin:0 0 .5rem;
}
.qa p{margin:0;color:var(--muted);font-size:.9375rem;line-height:1.6;max-width:54ch;}

.portrait{position:relative;margin:0;}
.portrait img{
  position:relative;z-index:1;
  width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;
  border:1px solid var(--rule);background:var(--ground-2);
}
/* the studio backdrop is mid-grey; on a committed-black page it reads as a pale slab.
   A vignette settles the photo's edges into the page without touching the file. */
.portrait::before{
  content:"";position:absolute;z-index:2;inset:0;pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 38%, rgba(12,11,10,0) 42%, rgba(12,11,10,.72) 100%),
    linear-gradient(to bottom, rgba(12,11,10,.25) 0%, rgba(12,11,10,0) 28%);
}

/* offset registration frame — one restrained flourish */
.portrait::after{
  content:"";position:absolute;z-index:0;
  inset:auto -14px -14px auto;width:100%;aspect-ratio:4/5;
  border:1px solid var(--accent);opacity:.6;pointer-events:none;
}
@media (max-width:919px){.portrait::after{display:none;}}

/* ============ credentials strip ============ */
.creds{background:var(--ground-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.creds-in{padding-top:2.5rem;padding-bottom:2.5rem;}
.creds-list{
  list-style:none;margin:1.5rem 0 0;padding:0;
  display:grid;grid-template-columns:1fr;gap:1.5rem 2.5rem;
}
@media (min-width:640px){.creds-list{grid-template-columns:1fr 1fr;}}
@media (min-width:1020px){.creds-list{grid-template-columns:repeat(3,1fr);}}
.cred{display:flex;gap:.9rem;align-items:flex-start;}
.cred svg{flex:0 0 auto;margin-top:.2rem;color:var(--accent-ink);}

/* the two badged certifications get their own row, at a size that survives a phone scroll */
.creds-badges{
  list-style:none;margin:1.75rem 0 0;padding:1.75rem 0 0;
  border-top:1px solid var(--rule);
  display:grid;grid-template-columns:1fr;gap:1.25rem;
}
@media (min-width:720px){.creds-badges{grid-template-columns:1fr 1fr;gap:2rem;}}
.cred-badge{
  display:flex;gap:1.1rem;align-items:center;
  background:var(--ground);border:1px solid var(--rule);
  padding:1.1rem 1.25rem;
}
.cred-badge img{flex:0 0 auto;width:76px;height:76px;}
@media (min-width:720px){.cred-badge img{width:88px;height:88px;}}
.cred-badge strong{display:block;font-weight:600;font-size:1rem;line-height:1.35;}
.cred-badge span{display:block;color:var(--muted);font-size:.875rem;margin-top:.2rem;}
.cred strong{display:block;font-weight:600;font-size:.9375rem;line-height:1.4;}
.cred span{display:block;color:var(--muted);font-size:.875rem;line-height:1.5;}

/* ============ about ============ */
.about-grid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,4vw,3.5rem);align-items:start;}
@media (min-width:920px){.about-grid{grid-template-columns:.9fr 1.1fr;}}
.prose{max-width:var(--measure);}
.prose p{margin:0 0 1.15rem;}
.prose p:last-child{margin-bottom:0;}
.pull{
  margin:2rem 0 0;padding:0 0 0 1.5rem;border-left:2px solid var(--accent);
  font-family:var(--f-display);font-style:italic;font-weight:300;
  font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.5;
}
.pull cite{
  display:block;font-family:var(--f-mono);font-style:normal;font-size:.6875rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.9rem;
}

/* ============ focus areas ============ */
.focus{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:1px;background:var(--rule);border:1px solid var(--rule);}
@media (min-width:640px){.focus{grid-template-columns:1fr 1fr;}}
@media (min-width:1020px){.focus{grid-template-columns:repeat(3,1fr);}}
.focus li{background:var(--ground);padding:1.6rem 1.5rem;}
.focus h3{
  font-family:var(--f-display);font-weight:500;font-size:1.1875rem;
  margin:0 0 .4rem;letter-spacing:-.01em;
}
.focus p{margin:0;color:var(--muted);font-size:.9375rem;line-height:1.55;}

/* ============ podcast ============ */
.pod-head{display:grid;grid-template-columns:1fr;gap:2rem;align-items:end;}
@media (min-width:880px){.pod-head{grid-template-columns:1.2fr .8fr;}}
.platforms{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.5rem 0 0;}
.platform{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.8125rem;font-weight:500;text-decoration:none;
  border:1px solid var(--rule);border-radius:999px;padding:.45rem .95rem;
  color:var(--muted);transition:border-color .18s ease,color .18s ease;
}
.platform:hover{border-color:var(--accent);color:var(--accent-ink);}
.platform[aria-disabled="true"]{opacity:.5;cursor:not-allowed;}

.eps-label{margin-top:2.75rem;}
.eps{list-style:none;margin:1rem 0 0;padding:0;}
.eps li{border-top:1px solid var(--rule);}
.eps li:last-child{border-bottom:1px solid var(--rule);}
.ep{
  display:grid;grid-template-columns:1fr;gap:.3rem .5rem;
  padding:1.2rem .5rem;margin:0 -.5rem;
  text-decoration:none;color:inherit;
  transition:background .18s ease;
}
.ep:hover{background:var(--ground-2);}
@media (min-width:700px){
  .ep{grid-template-columns:3.75rem 1fr 8rem;align-items:baseline;gap:.3rem 1.5rem;}
}
.ep-no{
  font-family:var(--f-mono);font-size:1rem;font-weight:500;
  color:var(--accent-ink);font-variant-numeric:tabular-nums;letter-spacing:.02em;
}
.ep-body{display:block;min-width:0;}
.ep-title{
  display:block;font-weight:500;font-size:1.0625rem;line-height:1.4;
  text-decoration:underline;text-decoration-color:transparent;
  text-underline-offset:3px;transition:text-decoration-color .18s ease;
}
.ep:hover .ep-title{text-decoration-color:var(--accent);}
.ep-guest{display:block;margin-top:.1rem;color:var(--muted);font-size:.9375rem;}
.ep-date{
  font-family:var(--f-mono);font-size:.75rem;color:var(--muted);
  font-variant-numeric:tabular-nums;letter-spacing:.04em;white-space:nowrap;
}
.ep-go{
  display:inline-block;margin-left:.5rem;color:var(--accent-ink);
  opacity:0;transform:translateX(-3px);
  transition:opacity .18s ease,transform .18s ease;
}
.ep:hover .ep-go,.ep:focus-visible .ep-go{opacity:1;transform:none;}
@media (hover:none){.ep-go{opacity:1;transform:none;}}
.eps-more{margin:1.75rem 0 0;}

/* ============ appearances ============ */
.apps{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:1.25rem;}
@media (min-width:820px){.apps{grid-template-columns:1fr 1fr;}}
.app{
  border:1px solid var(--rule);background:var(--ground-2);
  padding:1.6rem;display:flex;flex-direction:column;gap:.5rem;
}
.app .label{font-size:.625rem;}
.app h3{font-family:var(--f-display);font-weight:500;font-size:1.1875rem;margin:0;line-height:1.35;letter-spacing:-.01em;}
.app p{margin:0;color:var(--muted);font-size:.9375rem;}
.app a{
  margin-top:.4rem;font-size:.875rem;font-weight:600;
  color:var(--accent-ink);text-decoration:none;
  border-bottom:1px solid var(--accent-quiet);align-self:flex-start;padding-bottom:1px;
}
.app a:hover{border-bottom-color:var(--accent);}

/* ============ newsletter band (the bold moment) ============ */
.band{background:var(--band-bg);color:var(--band-fg);}
.band-in{padding-top:clamp(3.5rem,7vw,5.5rem);padding-bottom:clamp(3.5rem,7vw,5.5rem);}
.band .label{color:color-mix(in srgb,var(--band-fg) 78%,transparent);}
.band h2{
  font-family:var(--f-display);font-optical-sizing:auto;font-weight:400;
  font-size:clamp(2rem,4.4vw,3.25rem);line-height:1.08;letter-spacing:-.02em;
  margin:.85rem 0 0;max-width:17ch;text-wrap:balance;
}
.band h2 em{font-style:italic;}
.band-grid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,4vw,3.5rem);align-items:end;}
@media (min-width:900px){.band-grid{grid-template-columns:1.05fr .95fr;}}
.band p.sub{
  margin:1.25rem 0 0;max-width:46ch;
  color:color-mix(in srgb,var(--band-fg) 88%,transparent);
}
.signup{display:flex;flex-direction:column;gap:.75rem;}
.signup .row{display:flex;flex-wrap:wrap;gap:.6rem;}
.signup input{
  flex:1 1 15rem;min-width:0;
  font-family:var(--f-body);font-size:.9375rem;
  padding:.75rem .95rem;border-radius:2px;
  border:1px solid color-mix(in srgb,var(--band-fg) 45%,transparent);
  background:color-mix(in srgb,var(--band-fg) 10%,transparent);
  color:var(--band-fg);
}
.signup input::placeholder{color:color-mix(in srgb,var(--band-fg) 62%,transparent);}
.signup input:focus-visible{outline:2px solid var(--band-fg);outline-offset:2px;}
.signup .fine{
  font-size:.75rem;margin:0;
  color:color-mix(in srgb,var(--band-fg) 80%,transparent);
}
.signup .note{
  font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.06em;
  margin:0;min-height:1.2em;
  color:var(--band-fg);
}

/* ============ contact ============ */
.contact-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:2.5rem;}
@media (min-width:820px){.contact-grid{grid-template-columns:1fr 1fr;}}
.card{border:1px solid var(--rule);background:var(--ground-2);padding:clamp(1.5rem,3vw,2.25rem);display:flex;flex-direction:column;}
.card h3{
  font-family:var(--f-display);font-weight:500;font-size:1.375rem;
  margin:.75rem 0 .5rem;letter-spacing:-.01em;
}
.card p{margin:0 0 1.25rem;color:var(--muted);font-size:.9375rem;}
.card .btn{align-self:flex-start;margin-top:auto;}
.card .tel{
  font-family:var(--f-mono);font-size:1.0625rem;color:var(--ink);
  text-decoration:none;border-bottom:1px solid var(--accent-quiet);
  align-self:flex-start;margin-bottom:1.25rem;padding-bottom:2px;
}
.card .tel:hover{border-bottom-color:var(--accent);}

.disclaimer{
  margin:2.5rem 0 0;max-width:var(--measure);
  font-size:.8125rem;line-height:1.6;color:var(--muted);
}

/* ============ footer ============ */
footer{border-top:1px solid var(--rule);}
.foot-in{
  padding-top:2.5rem;padding-bottom:2.5rem;
  display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center;
  font-size:.8125rem;color:var(--muted);
}
.socials{display:flex;gap:1.25rem;}
.socials a{text-decoration:none;transition:color .18s ease;}
.socials a:hover{color:var(--accent-ink);}

.draft{
  font-family:var(--f-mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--rule);border-radius:999px;padding:.28rem .7rem;color:var(--muted);
  white-space:nowrap;
}

/* ============ reveal animation ============ */
.rv{opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1);}
.rv.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
  .btn:hover{transform:none;}
}

/* ============ mobile menu ============ */
.nav-toggle{
  display:inline-flex;align-items:center;gap:.55rem;
  background:none;border:1px solid var(--rule);border-radius:2px;
  padding:.45rem .8rem;cursor:pointer;
  font-family:var(--f-body);font-size:.8125rem;font-weight:600;color:var(--ink);
}
@media (min-width:880px){.nav-toggle{display:none;}}
.nav-toggle .bars{display:block;width:14px;height:10px;position:relative;}
.nav-toggle .bars::before,
.nav-toggle .bars::after,
.nav-toggle .bars span{
  content:"";position:absolute;left:0;right:0;height:1.5px;background:currentColor;
  transition:transform .2s ease,opacity .2s ease;
}
.nav-toggle .bars::before{top:0;}
.nav-toggle .bars span{top:4.25px;}
.nav-toggle .bars::after{bottom:0;}
.nav-toggle[aria-expanded="true"] .bars::before{transform:translateY(4.25px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] .bars span{opacity:0;}
.nav-toggle[aria-expanded="true"] .bars::after{transform:translateY(-4.25px) rotate(-45deg);}

.nav-drawer{
  position:fixed;inset:0;z-index:60;
  background:var(--ground);
  padding:5.5rem clamp(1.5rem,7vw,3rem) 2rem;
  overflow-y:auto;
  display:flex;flex-direction:column;gap:.25rem;
}
@media (min-width:880px){.nav-drawer{display:none !important;}}
.nav-drawer a{
  font-family:var(--f-display);font-weight:400;font-size:1.75rem;
  letter-spacing:-.015em;text-decoration:none;color:var(--ink);
  padding:.7rem 0;border-bottom:1px solid var(--rule);
}
.nav-drawer a:last-of-type{border-bottom:0;}
.nav-drawer a.btn{
  font-family:var(--f-body);font-size:.9375rem;font-weight:600;letter-spacing:.01em;
  color:var(--on-accent);border-bottom:0;
  margin-top:1.75rem;align-self:flex-start;padding:.72rem 1.35rem;
}
.nav-drawer .drawer-meta{
  margin-top:auto;padding-top:2rem;color:var(--muted);font-size:.8125rem;
}

/* ============ writing / blog ============ */
/* real gaps + per-card borders, so an odd number of posts leaves no empty grid cell */
.posts{
  list-style:none;margin:2.5rem 0 0;padding:0;
  display:grid;grid-template-columns:1fr;gap:1.25rem;
}
@media (min-width:820px){.posts{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1120px){.posts.three{grid-template-columns:repeat(3,minmax(0,1fr));}}
.post-card{background:var(--ground);border:1px solid var(--rule);}
.post-card a{
  display:flex;flex-direction:column;gap:.6rem;height:100%;
  padding:1.75rem 1.5rem;text-decoration:none;color:inherit;
  transition:background .18s ease;
}
.post-card a:hover{background:var(--ground-2);}
.post-meta{
  font-family:var(--f-mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;
}
.post-meta .tag{color:var(--accent-ink);}
.post-card h3{
  font-family:var(--f-display);font-weight:500;font-size:1.3125rem;line-height:1.25;
  letter-spacing:-.012em;margin:0;
  text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;
  transition:text-decoration-color .18s ease;
}
.post-card a:hover h3{text-decoration-color:var(--accent);}
.post-card p{margin:0;color:var(--muted);font-size:.9375rem;line-height:1.55;}
.post-card .more{
  margin-top:auto;padding-top:.75rem;
  font-size:.8125rem;font-weight:600;color:var(--accent-ink);
}

/* ============ article page ============ */
.article{padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,6vw,5rem);}
.article-head{max-width:60ch;}
.article h1{
  font-family:var(--f-display);font-optical-sizing:auto;font-weight:400;
  font-size:clamp(2.1rem,4.6vw,3.25rem);line-height:1.08;letter-spacing:-.022em;
  margin:.9rem 0 0;text-wrap:balance;max-width:18ch;
}
.article-sub{
  max-width:var(--measure);color:var(--muted);font-size:1.0625rem;
  margin:1.25rem 0 0;
}
.article-rule{height:1px;background:var(--rule);margin:2.5rem 0;}
.article-body{max-width:var(--measure);}
.article-body p{margin:0 0 1.3rem;font-size:1.0625rem;line-height:1.72;}
.article-body h2{
  font-family:var(--f-display);font-weight:500;font-size:clamp(1.375rem,2.4vw,1.75rem);
  line-height:1.2;letter-spacing:-.015em;margin:2.75rem 0 .9rem;text-wrap:balance;
}
.article-body h3{
  font-family:var(--f-display);font-weight:500;font-size:1.1875rem;
  margin:2rem 0 .6rem;letter-spacing:-.01em;
}
.article-body em{font-style:italic;}
.article-body strong{font-weight:600;}
.article-body ul,.article-body ol{margin:0 0 1.3rem;padding-left:1.35rem;}
.article-body li{margin-bottom:.5rem;line-height:1.7;}
.article-body blockquote{
  margin:2rem 0;padding:0 0 0 1.5rem;border-left:2px solid var(--accent);
  font-family:var(--f-display);font-style:italic;font-weight:300;font-size:1.25rem;line-height:1.5;
}
.article-body a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:2px;}
.article-body hr{border:0;border-top:1px solid var(--rule);margin:2.5rem 0;}
.article-body code{
  font-family:var(--f-mono);font-size:.9em;background:var(--ground-2);
  padding:.1em .35em;border-radius:2px;
}

.article-foot{
  max-width:var(--measure);margin-top:3rem;padding-top:1.75rem;
  border-top:1px solid var(--rule);
  display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center;
}
.article-foot a{
  font-size:.875rem;font-weight:600;color:var(--accent-ink);text-decoration:none;
  border-bottom:1px solid var(--accent-quiet);padding-bottom:1px;
}
.article-foot a:hover{border-bottom-color:var(--accent);}

.byline{
  display:flex;align-items:center;gap:.85rem;margin-top:2rem;
}
.byline img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:0 0 auto;}
.byline div{display:flex;flex-direction:column;}
.byline strong{font-weight:600;font-size:.9375rem;}
.byline span{color:var(--muted);font-size:.8125rem;}

/* blog index intro */
.blog-intro{padding:clamp(2.5rem,6vw,4.5rem) 0 0;}
.empty{
  margin:2.5rem 0 0;padding:2.5rem;border:1px dashed var(--rule);
  color:var(--muted);text-align:center;
}

/* the header CTA is desktop-only; on phones the drawer carries it */
.nav-cta{display:none;}
@media (min-width:880px){.nav-cta{display:inline-flex;}}

/* the Riverside link-out replaces the inline form; keep it button-sized, not column-width */
.signup .btn{align-self:flex-start;}
