/* Shared editorial typography, 22 October 2026.
   Two families only: Source Serif 4 for editorial titles and reading;
   Inter for navigation, labels, citations, and actions.
   Layout, imagery, colors and page content remain in their original stylesheets. */
:root {
  --type-serif: "Source Serif 4", Georgia, serif;
  --type-sans: Inter, Arial, sans-serif;
  --type-page: clamp(44px, 4.2vw, 56px);
  --type-section: clamp(32px, 3vw, 39px);
  --type-headline: 30px;
  --type-reading: 22px;
  --type-small: 16px;
}

body {
  font-family: var(--type-sans);
  font-size: 19px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
.topbar .brand {
  font: 500 29px/1.2 var(--type-serif);
  letter-spacing: -.016em;
}
.topbar .nav a {
  font: 500 18px/1.4 var(--type-sans);
  letter-spacing: 0;
}
.mobile-menu summary,
.mobile-nav a {
  font-family: var(--type-sans);
  font-weight: 500;
}
.site-footer, .home-footer {
  font: 400 16px/1.5 var(--type-sans);
  letter-spacing: 0;
}

/* Home hero: intentionally a larger display scale, but the same two fonts. */
.site .hero-copy h1 {
  font-family: var(--type-serif);
  font-weight: 400;
  letter-spacing: -.035em;
}
.site .hero .eyebrow {
  font: 500 16px/1.5 var(--type-sans);
  letter-spacing: .06em;
}
.site .hero .tagline {
  font-family: var(--type-serif);
  font-weight: 400;
  letter-spacing: -.016em;
}
.site .hero .hero-bio {
  font: 400 clamp(22px, 1.7vw, 26px)/1.48 var(--type-serif);
  letter-spacing: 0;
}
.site .hero-quote blockquote {
  font: italic 400 clamp(23px, 2vw, 30px)/1.4 var(--type-serif);
  letter-spacing: 0;
}
.site .hero-quote cite {
  font: 500 15px/1.45 var(--type-sans);
  letter-spacing: .065em;
}

/* Homepage's three previews: sans labels, serif editorial titles and copy. */
.site .home-panels .home-section-title {
  font: 600 23px/1.25 var(--type-sans);
  letter-spacing: -.01em;
}
.site .book-teaser-copy h3 {
  font: 500 28px/1.2 var(--type-serif);
  letter-spacing: -.018em;
}
.site .book-teaser-copy p {
  font: 400 21px/1.5 var(--type-serif);
  letter-spacing: 0;
}
.site .speaking-content h3 {
  font: 500 31px/1.2 var(--type-serif);
  letter-spacing: -.018em;
}
.site .speaking-content p {
  font: 400 22px/1.5 var(--type-serif);
  letter-spacing: 0;
}
.site .writing-row-copy strong {
  font: 500 28px/1.25 var(--type-serif);
  letter-spacing: -.014em;
}
.site .writing-row-copy span {
  font: 400 16px/1.45 var(--type-sans);
  letter-spacing: 0;
}
.site .pane-footer-link {
  font: 500 17px/1.45 var(--type-sans);
  letter-spacing: 0;
}

/* A unified interior page hierarchy. */
.page .page-title,
.page .books-title,
.page .wm-opening h1,
.page .speaking-opening h1,
.page .archive-opening h1 {
  font: 400 var(--type-page)/1.1 var(--type-serif);
  letter-spacing: -.029em;
  color: var(--ink);
}
.page .wm-section-title,
.page .speaking-section-heading h2,
.page .archive-section-heading h2 {
  font: 400 var(--type-section)/1.18 var(--type-serif);
  letter-spacing: -.02em;
  color: var(--ink);
}
.page .about-bio {
  font: 400 23px/1.58 var(--type-serif);
  letter-spacing: 0;
  color: var(--muted);
}
.page .contact-intro {
  font: 400 23px/1.55 var(--type-serif);
  color: var(--muted);
}
.page .contact-email {
  font: 400 30px/1.3 var(--type-serif);
}

/* Books: title / subtitle / summary / reviews all align to the same scale. */
.books-page .book-heading h2 {
  font: 500 37px/1.17 var(--type-serif);
  letter-spacing: -.018em;
}
.books-page .book-subtitle {
  font: 400 24px/1.32 var(--type-serif);
  letter-spacing: 0;
}
.books-page .book-kicker,
.books-page .book-praise-title {
  font: 500 16px/1.45 var(--type-sans);
  letter-spacing: .015em;
}
.books-page .book-description p {
  font: 400 var(--type-reading)/1.56 var(--type-serif);
  letter-spacing: 0;
}
.books-page .book-actions a {
  font: 500 17px/1.45 var(--type-sans);
}
.books-page .book-quote {
  font: 400 21px/1.52 var(--type-serif);
  letter-spacing: 0;
}
.books-page .book-quote span {
  font: 400 16px/1.45 var(--type-sans);
  letter-spacing: 0;
}

/* Speaking: same serif story type; captions and actions stay sans. */
.speaking-page .speaking-kicker,
.speaking-page .topic-index {
  font: 500 16px/1.45 var(--type-sans);
  letter-spacing: .02em;
}
.speaking-page .speaking-opening-deck > p {
  font: 400 24px/1.5 var(--type-serif);
}
.speaking-page .speaking-section-heading > p {
  font: 400 var(--type-reading)/1.53 var(--type-serif);
}
.speaking-page .keynote-topic h3 {
  font: 500 28px/1.22 var(--type-serif);
  letter-spacing: -.012em;
}
.speaking-page .keynote-topic p,
.speaking-page .talk-description p {
  font: 400 var(--type-reading)/1.54 var(--type-serif);
}
.speaking-page .talk-description h3 {
  font: 500 var(--type-headline)/1.2 var(--type-serif);
  letter-spacing: -.015em;
}
.speaking-page .speaking-text-link {
  font: 500 17px/1.45 var(--type-sans);
}

/* Writing & Media: keep its organization, normalize headline/reading sizes. */
.writing-page .wm-opening > p {
  font: 400 24px/1.5 var(--type-serif);
}
.writing-page .wm-feature h2 {
  font: 500 35px/1.18 var(--type-serif);
  letter-spacing: -.02em;
}
.writing-page .wm-feature .wm-subtitle {
  font: 400 25px/1.35 var(--type-serif);
}
.writing-page .wm-row h2,
.writing-page .wm-row h3 {
  font: 500 32px/1.22 var(--type-serif);
  letter-spacing: -.017em;
}
.writing-page .wm-row p {
  font: 400 23px/1.54 var(--type-serif);
  letter-spacing: 0;
}
.writing-page .wm-meta,
.writing-page .wm-feature-label,
.writing-page .wm-row figcaption {
  font: 400 16px/1.45 var(--type-sans);
  letter-spacing: 0;
}
.writing-page .wm-jump a,
.writing-page .wm-action,
.writing-page .wm-archive-grid > a {
  font: 500 17px/1.45 var(--type-sans);
  letter-spacing: 0;
}

/* Archives: the same page and editorial headline styles as primary pages. */
.archive-page .archive-opening > p {
  font: 400 23px/1.5 var(--type-serif);
}
.archive-page .archive-title {
  font: 500 26px/1.3 var(--type-serif);
  letter-spacing: -.012em;
}
.archive-page .archive-outlet,
.archive-page .archive-back,
.archive-page .archive-kicker,
.archive-page .archive-section-heading > span,
.archive-page .archive-year > h3,
.archive-page .media-card-meta {
  font: 500 16px/1.45 var(--type-sans);
  letter-spacing: .01em;
}
.archive-page .archive-jump a {
  font: 500 17px/1.45 var(--type-sans);
}
.archive-page .media-card h3 {
  font: 500 28px/1.24 var(--type-serif);
  letter-spacing: -.015em;
}

/* Responsive type scaling, preserving existing page/grid breakpoints. */
@media (max-width: 900px) {
  .topbar .nav a { font-size: 17px; }
}
@media (max-width: 680px) {
  :root {
    --type-page: 43px;
    --type-section: 33px;
    --type-reading: 20px;
    --type-headline: 27px;
  }
  .topbar .brand { font-size: 26px; }
  .mobile-menu summary { font-size: 17px; }
  .mobile-nav a { font: 500 18px/1.45 var(--type-sans); }
  .site .hero .eyebrow { font-size: 15px; }
  .site .hero .hero-bio { font-size: 23px; line-height: 1.5; }
  .site .hero-quote blockquote { font-size: 26px; }
  .site .home-panels .home-section-title { font-size: 22px; }
  .site .book-teaser-copy h3 { font-size: 26px; }
  .site .book-teaser-copy p,
  .site .speaking-content p { font-size: 20px; }
  .site .speaking-content h3 { font-size: 28px; }
  .site .writing-row-copy strong { font-size: 26px; }
  .page .about-bio { font-size: 21px; }
  .page .contact-intro { font-size: 21px; }
  .page .contact-email { font-size: 25px; }
  .books-page .book-heading h2 { font-size: 34px; }
  .books-page .book-subtitle { font-size: 23px; }
  .books-page .book-description p { font-size: 20px; }
  .books-page .book-quote { font-size: 20px; }
  .speaking-page .speaking-opening-deck > p { font-size: 21px; }
  .speaking-page .speaking-section-heading > p { font-size: 20px; }
  .speaking-page .keynote-topic h3 { font-size: 26px; }
  .speaking-page .keynote-topic p,
  .speaking-page .talk-description p { font-size: 20px; }
  .speaking-page .talk-description h3 { font-size: 27px; }
  .speaking-page .speaking-kicker { font-size: 15px; }
  .writing-page .wm-opening > p { font-size: 21px; }
  .writing-page .wm-row h2,
  .writing-page .wm-row h3 { font-size: 29px; }
  .writing-page .wm-row p { font-size: 21px; }
  .writing-page .wm-feature h2 { font-size: 31px; }
  .writing-page .wm-feature .wm-subtitle { font-size: 23px; }
  .archive-page .archive-title { font-size: 23px; }
  .archive-page .archive-opening > p { font-size: 21px; }
  .archive-page .media-card h3 { font-size: 25px; }
}
@media (max-width: 420px) {
  .site .writing-row-copy strong { font-size: 24px; }
  .page .page-title,
  .page .books-title,
  .page .wm-opening h1,
  .page .speaking-opening h1,
  .page .archive-opening h1 { font-size: 39px; }
  .page .contact-email { font-size: 22px; }
}
