/* Typography matched to book.oiloil.org, verified 2026-10-28.
   Font binaries are self-hosted from the same Google Fonts CSS response.
   Keep discrete @font-face weights: 650/680 are resolved as on the reference. */
:root{
  --sans:"Plus Jakarta Sans",Inter,MiSans,"HarmonyOS Sans SC","Noto Sans SC","PingFang SC",-apple-system,sans-serif;
  --serif:"Source Han Serif SC","Noto Serif SC","Songti SC",STSong,"New York",Georgia,serif;
  --quote-font:"Noto Serif SC","Songti SC",serif;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
}
body{font-family:var(--sans);font-size:16px;letter-spacing:.025em}
button,input{font-family:var(--sans)}
.brand{font-size:18px;font-weight:650;line-height:1.45;letter-spacing:-.02em}
.brand small{letter-spacing:.03em}
.site-header nav a{font-size:14px;font-weight:500;line-height:1.45;letter-spacing:.02em}
.site-header nav a.active{font-weight:650}
.page-intro h1,.section-head h2{font-size:23px;font-weight:650;line-height:1.35;letter-spacing:-.03em}
.page-intro p{font-size:13px;line-height:1.7;letter-spacing:.025em}
.stage-num{font:14px/1.5 ui-monospace,monospace;letter-spacing:normal}
.stage-button strong{font-size:13px;font-weight:650;line-height:1.5;letter-spacing:-.025em}
.stage-button small{font-size:13px;font-weight:400;line-height:1.5;margin-top:3px}
.dossier h2{font-family:var(--quote-font);font-size:21px;font-weight:550;line-height:1.75;letter-spacing:normal;margin:24px 0}
.dossier .dossier-summary{font-size:14px;font-weight:400;line-height:1.8}
.dossier-reading a{font-size:13px;line-height:1.8}
.dossier-reading a span,.category-number,.feature-meta,.article-count,.row-meta,.day-number{font-family:var(--mono);font-style:normal}
.category-entry h3,.feature-card h3{font-size:16.5px;font-weight:600;line-height:1.45;letter-spacing:-.01em}
.category-entry p{font-size:13px;line-height:1.7}
.category-entry .category-number{font:14px/1.5 ui-monospace,monospace}
.feature-cover strong,.path-intro h1,.path-aside h2{font-family:var(--quote-font);font-weight:550;letter-spacing:normal}
.issue-note span{font-family:var(--quote-font)}
.article-row h2{font-size:16.5px;font-weight:600;line-height:1.45;letter-spacing:-.01em}
.reading-paper{font-family:var(--sans);font-size:16px;letter-spacing:.025em}
.reading-paper h1{font-family:var(--sans);font-size:clamp(23px,2.5vw,28px);font-weight:700;line-height:1.38;letter-spacing:.01em}
.reading-meta{font-size:13px;line-height:1.75}
.control-group button{font-size:11.5px;font-weight:400;line-height:1.45;letter-spacing:normal}
.article-summary,.prose{font-family:var(--sans);font-size:16px;line-height:1.88;letter-spacing:.025em}
.prose.serif{font-family:var(--serif)}
.prose h2{font-family:var(--sans);font-size:clamp(19px,2vw,22px);font-weight:680;line-height:1.42;letter-spacing:.01em}
.prose h3{font-family:var(--sans);font-size:clamp(17px,1.65vw,18.5px);font-weight:650;line-height:1.5;letter-spacing:.01em}
.prose strong{font-weight:700}
.prose h2:before{font:650 12px/1.35 var(--mono);letter-spacing:.03em}
.article-toc{font-size:12px;line-height:1.8}
.article-toc summary span{font-size:11px}
@media(max-width:760px){
  .page-intro h1,.section-head h2{font-size:20px}
  .dossier h2{font-size:19px;margin:20px 0}
  .category-entry h3{font-size:14px}
  .category-entry p{font-size:12px}
  .reading-meta{font-size:12px}
  .prose h2{font-size:19px}
}
