/* book.oiloil.org visual measurements, 2026-10-28.
   Loaded after the existing styles and typography sheets. Font-face declarations
   remain in fonts.css with the reference's original discrete weight mapping. */
:root {
  --paper:#faf8f4;
  --bg:var(--paper);
  --surface:#fffefc;
  --page-sheet:#fffdf9;
  --cover-bg:#f2e8d9;
  --ink:#262421;
  --t2:#57534c;
  --t3:#6e685f;
  --muted:var(--t2);
  --line:#e7e1d6;
  --line-strong:#d8d0c1;
  --yellow:#f2c45a;
  --amber-soft:#f7df94;
  --hover:#f2ece1;
  --green:#795125;
  --green-soft:#f6ebd2;
  --gold:#c8a24b;
  --ease:cubic-bezier(.19,1,.22,1);
  --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;
}
html { scroll-padding-top:0; }
body {
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:normal;
  letter-spacing:.025em; -webkit-font-smoothing:antialiased;
}
body::before,body::after { content:""; position:fixed; inset:0; z-index:0; pointer-events:none; }
body::before {
  background-image:linear-gradient(rgba(38,36,33,.022) 1px,transparent 0),linear-gradient(90deg,rgba(38,36,33,.022) 1px,transparent 0);
  background-size:32px 32px;
}
body::after { background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(242,196,90,.09),transparent 70%); }
h1,h2,h3,h4,p { margin:0; }
h1,h2,h3 { letter-spacing:.01em; }
a:hover { color:inherit; }
button,input { font:inherit; color:inherit; }
a,button,summary { transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease); }
a,button { touch-action:manipulation; }
button:active,.button:active { transform:none; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
input:focus,input:focus-visible {
  outline:none; border-color:#c8a24b; background:#fffefa;
  box-shadow:0 0 0 3px rgba(223,182,85,.22),inset 0 1px 2px rgba(76,59,31,.04);
}
[hidden] { display:none!important; }
.wrap { position:relative; z-index:1; width:100%; max-width:1240px; margin:0 auto; padding:0 40px; }
main.wrap { padding:24px 40px 72px; }
.site-header.wrap {
  height:auto; min-height:72px; display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center; gap:24px; padding:0 40px;
}
.brand {
  display:inline-flex; align-items:center; gap:9px; justify-self:start;
  font-size:18px; font-weight:650; line-height:normal; letter-spacing:.025em; white-space:nowrap;
}
.brand strong { font:inherit; }
.brand img { display:block; flex:none; width:32px; height:32px; object-fit:contain; transform:none; filter:none; }
.brand-stamp {
  display:inline-flex; align-items:center; margin-left:4px;
  padding:2px 9px 2px 6px; border-radius:999px;
  background:rgba(238,229,213,.52); border:1px dashed rgba(38,36,33,.16);
  font-family:var(--sans); font-size:12.5px; font-weight:600; line-height:1.35;
  letter-spacing:.02em; color:var(--t2);
}
.brand:hover .brand-stamp { background:rgba(242,233,216,.85); border-color:rgba(38,36,33,.32); }
.site-header nav {
  display:flex; align-items:center; align-self:auto; justify-content:center;
  justify-self:center; gap:28px; margin:0; padding:0; border:0; white-space:nowrap;
}
.site-header nav a {
  display:inline-flex; align-items:center; position:relative;
  padding:10px 0 12px; font-size:14px; font-weight:500; line-height:1.45;
  letter-spacing:.02em; color:var(--t2);
}
.site-header nav a:hover,.site-header nav a.active,.site-header nav a[aria-current=page] { color:var(--ink); }
.site-header nav a.active,.site-header nav a[aria-current=page] { font-weight:650; }
.site-header nav a::after,.filter-row button::after {
  content:""; position:absolute; left:0; right:0; bottom:3px; height:2px;
  border-radius:999px; background:#d8c9ab; opacity:0; transform:scaleX(.65);
  transition:opacity .2s var(--ease),transform .2s var(--ease);
}
.site-header nav a:hover::after,.filter-row button:hover::after { opacity:.6; transform:scaleX(1); }
.site-header nav a.active::after,.site-header nav a[aria-current=page]::after,.filter-row button[aria-pressed=true]::after {
  background:#c8a24b; box-shadow:0 1px 0 rgba(168,126,34,.22); opacity:1; transform:scaleX(1);
}
.header-actions { display:flex; align-items:center; justify-content:flex-end; justify-self:end; gap:10px; }
.search-trigger,.pro-button {
  display:inline-flex; align-items:center; justify-content:center; gap:5px;
  padding:6px 14px; border:1px solid var(--line-strong); border-radius:8px;
  background:linear-gradient(180deg,#fffefa,#f8f3ea); box-shadow:0 1px 0 #d8cdbb;
  color:var(--ink); font-size:13px; font-weight:550; line-height:1.45; letter-spacing:.02em; white-space:nowrap;
}
.search-trigger svg { width:14px; height:14px; }
.search-trigger kbd { display:none; }
.search-trigger span { display:inline; }
.pro-button { border-color:#c99e40; background:linear-gradient(180deg,#fae6aa,#f1ca69); box-shadow:0 1px 0 #b88c2e,inset 0 1px 0 rgba(255,255,255,.65); color:#3d2806; font-weight:650; }
.search-trigger:hover { background:#f6ebd2; border-color:#cbb68a; }
.pro-button:hover { filter:brightness(1.025); }
.search-trigger:active,.pro-button:active { box-shadow:none; }
.text-link { color:inherit; font-size:14px; font-weight:400; line-height:1.8; }
.text-link:hover { text-decoration:underline; text-underline-offset:5px; }

/* Homepage: three dispatch groups and one paper dossier. */
.model-section { margin-top:0; }
.section-title,h1.section-title,h2.section-title,.section-title h1,.section-title h2,.section-head h1,.section-head h2 {
  margin:0; font-family:var(--sans); font-size:clamp(20px,2vw,23px);
  font-weight:650; line-height:1.35; letter-spacing:.01em;
}
.model-section>.models-meta,.models-meta,.section-head p {
  margin:6px 0 0; color:var(--t2); font-size:13px; font-weight:400; line-height:1.7; letter-spacing:.025em; text-wrap:pretty;
}
.model-workbench {
  --model-sheet:var(--page-sheet); --model-shadow:2px 3px 0 #ebe3d3,0 8px 20px rgb(38 36 33/4%); --model-accent:#795125;
  display:grid; grid-template-columns:minmax(0,45fr) minmax(0,55fr); gap:28px; margin-top:18px;
}
.dispatch-board { display:grid; gap:18px; align-content:start; min-width:0; }
.dispatch-group { min-width:0; }
.dispatch-heading { display:flex; align-items:baseline; gap:10px; margin:0 0 9px; font-size:14px; font-weight:650; line-height:1.6; letter-spacing:.01em; }
.dispatch-heading>span { font:14px/1.5 ui-monospace,monospace; color:var(--model-accent); letter-spacing:.025em; }
.model-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.model-bookmark {
  position:relative; display:flex; align-items:flex-start; gap:9px; min-width:0;
  padding:12px 10px; text-align:left; border:1px solid var(--line-strong);
  border-radius:3px 7px 7px 3px; background:var(--model-sheet); box-shadow:1px 2px 0 #ebe3d3;
  transition:background .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease);
}
.model-icon { display:inline-flex; align-items:center; justify-content:center; flex:none; width:19px; height:19px; object-fit:contain; }
.model-icon img { display:block; width:100%; height:100%; object-fit:contain; }
.model-bookmark>.model-icon { margin-top:2px; }
.model-bookmark>span:not(.bookmark-arrow) { min-width:0; }
.model-bookmark strong { display:block; margin:0; font-size:13px; font-weight:650; line-height:1.5; letter-spacing:.025em; }
.model-bookmark small { display:block; margin-top:3px; color:var(--t2); font-size:13px; font-weight:400; line-height:1.5; letter-spacing:.025em; }
.bookmark-arrow { margin-left:auto; color:var(--model-accent); font-size:14px; }
.model-bookmark[aria-pressed=true],.model-bookmark[aria-selected=true],.model-bookmark.active { background:#f6ebd2; border-color:#a5824c; }
.model-bookmark:hover { transform:translateY(-2px); border-color:#a5824c; }
.dossier {
  min-width:0; min-height:0; align-self:stretch; position:relative; overflow:visible;
  padding:26px 28px 27px 34px; border:1px solid var(--line-strong);
  border-radius:4px 12px 12px 4px; background:var(--model-sheet,var(--page-sheet));
  box-shadow:inset 7px 0 0 #f0eadd,inset 8px 0 0 #e3daca,var(--model-shadow,2px 3px 0 #ebe3d3); perspective:1200px;
}
.dossier::before { content:none; }
.dossier-page,.dossier-content { transform-origin:left center; animation:reference-dossier-turn .32s var(--ease) both; }
@keyframes reference-dossier-turn { from { opacity:.3; transform:rotateY(-7deg) translateX(5px); } to { opacity:1; transform:none; } }
.showcase-identity { display:flex; align-items:center; gap:9px; flex-wrap:wrap; min-width:0; }
.showcase-identity>.model-icon,.showcase-identity>img { flex:none; width:26px; height:26px; object-fit:contain; }
.showcase-identity h3 { margin:0; font-family:var(--sans); font-size:19px; font-weight:650; line-height:1.4; letter-spacing:.01em; overflow-wrap:anywhere; }
.paper-label { padding:3px 7px; color:#794c28; border:1px solid #cfb293; background:#f8ecd8; border-radius:3px; font-size:13px; font-weight:600; line-height:1.4; letter-spacing:.025em; }
.showcase-focus { color:var(--t2); font-size:13px; font-weight:400; line-height:1.6; }
.dossier .showcase-focus { margin-top:7px; }
.model-quote { margin:24px 0; padding:0; border:0; background:none; color:var(--ink); font-family:var(--quote-font); font-size:21px; font-weight:550; line-height:1.75; letter-spacing:.025em; text-wrap:pretty; }
.model-quote::before { content:"“"; color:var(--model-accent,#795125); }
.model-quote::after { content:"”"; color:var(--model-accent,#795125); }
.model-tradeoffs { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin:0; }
.model-tradeoffs>div { min-width:0; }
.model-tradeoffs>div+div { border-left:1px solid var(--line-strong); padding-left:22px; }
.model-tradeoffs dt { margin:0 0 8px; font-size:13px; font-weight:650; }
.model-tradeoffs dt span { margin-right:4px; color:#4d6043; }
.model-tradeoffs>div+div dt span { color:var(--model-accent,#795125); }
.model-tradeoffs dd { margin:0; color:var(--t2); font-size:14px; line-height:1.8; }
.model-project { display:flex; gap:14px; border-top:1px solid var(--line-strong); padding-top:16px; margin-top:22px; }
.model-project strong { flex:none; font-size:13px; line-height:1.8; }
.model-project p { color:var(--t2); font-size:13px; line-height:1.8; text-wrap:pretty; }

/* Collection: four book covers, with readable titles outside each cover. */
.catalog-section { margin-top:40px; padding-top:32px; border-top:1px solid var(--line); }
.section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin:0 0 20px; }
.section-head>.section-title { min-width:0; }
.section-actions { display:flex; align-items:center; gap:20px; flex:none; }
.section-actions a { font-size:14px; font-weight:400; line-height:1.8; }
.section-actions a:hover { text-decoration:underline; text-underline-offset:5px; }
.result-count,.article-count { flex:none; font-family:var(--mono); font-size:12px; font-weight:400; color:var(--t3); white-space:nowrap; }
.result-count { padding:5px 11px; border-radius:999px; background:#efe9dc; color:var(--t2); font-weight:600; }
.editorial-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 24px; }
.editorial-item { min-width:0; }
.editorial-item,.editorial-item-link { display:flex; flex-direction:column; gap:12px; }
.editorial-cover {
  container-type:inline-size;
  position:relative; isolation:isolate; aspect-ratio:3/4; overflow:hidden;
  border-radius:4px 12px 12px 4px; background:var(--cover-bg); border:1px solid rgba(38,36,33,.075);
  box-shadow:3px 0 0 #ebe3d3,4px 0 0 rgba(38,36,33,.12),0 10px 22px rgba(38,36,33,.07);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);
}
.editorial-cover::before,.editorial-cover::after { content:""; position:absolute; inset-block:0; z-index:3; pointer-events:none; }
.editorial-cover::before { left:0; width:6%; background:linear-gradient(90deg,rgba(54,40,21,.11),rgba(255,255,255,.16) 35%,transparent 80%); }
.editorial-cover::after { left:5%; width:2px; background:rgba(68,49,24,.09); box-shadow:1px 0 0 rgba(255,255,255,.25); }
.editorial-cover>img { display:block; width:100%; height:100%; object-fit:cover; }
.editorial-item-link:is(:hover,:focus-visible) .editorial-cover { transform:translateY(-3px); box-shadow:3px 0 0 #ebe3d3,4px 0 0 rgba(38,36,33,.12),0 14px 26px rgba(38,36,33,.09); }
.cover-type,.cover-title,.cover-caption { position:absolute; z-index:2; left:12%; right:9%; color:var(--cover-ink,#343026); }
.cover-type { top:8%; font-size:10px; font-weight:600; line-height:1.6; letter-spacing:.14em; }
.cover-title { top:21%; font-family:var(--quote-font); font-size:clamp(20px,2.2vw,30px); font-weight:700; line-height:1.55; letter-spacing:.025em; text-wrap:pretty; }
.cover-caption { bottom:7%; font-size:11px; font-weight:400; line-height:1.7; letter-spacing:.04em; }
.editorial-item-body { display:flex; flex-direction:column; gap:8px; min-width:0; }
.editorial-item-body h3 { margin:0; font-family:var(--sans); font-size:16.5px; font-weight:600; line-height:1.45; letter-spacing:.01em; text-wrap:pretty; }
.author-line { display:inline-flex; align-items:center; flex-wrap:wrap; gap:6px; color:var(--t3); font-size:13px; font-weight:450; line-height:1.65; }
.author-line strong { color:var(--t2); font-weight:600; }
.source-links { display:flex; flex-wrap:wrap; gap:8px 16px; color:var(--t3); font-size:12.5px; font-weight:450; }
.source-links a { text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(110,104,95,.32); }
.source-links a:hover { color:var(--t2); text-decoration-color:currentColor; }
.filter-row { display:flex; flex-wrap:wrap; gap:0 28px; margin:0 0 32px; padding:0; border:0; }
.filter-row button,.filter-button {
  position:relative; display:inline-flex; align-items:center; padding:6px 0 10px;
  border:0; border-radius:0; background:none; color:var(--t2);
  font-size:14px; font-weight:500; line-height:1.45; letter-spacing:.02em;
}
.filter-row button:hover,.filter-row button[aria-pressed=true] { background:none; color:var(--ink); border:0; }
.filter-row button[aria-pressed=true] { font-weight:650; }
.library-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 22px; }
.library-search { max-width:340px; }
.library-search input { padding:8px 12px; border:1px solid var(--line-strong); border-radius:7px; background:var(--surface); font-size:13px; line-height:1.7; }
.collection-section>.section-head,.library-section>.section-head { margin-bottom:28px; }
.empty-state { padding:48px 0 64px; margin:0; font-size:14px; color:var(--t2); }

/* Paper reader. State is read from data attributes or the existing control buttons. */
main.wrap:has(.article-shell) { max-width:none; padding:24px 32px 48px; }
.article-shell { width:100%; max-width:820px; margin:0 auto; }
.article-shell>.breadcrumbs { margin:0 auto 12px; align-items:center; gap:13px; font-size:13px; line-height:1.7; color:var(--t2); }
.breadcrumbs span { color:var(--t3); }
.reading-paper {
  --reader-body-size:16px; --reader-scale:1; --reader-family:var(--sans);
  width:100%; max-width:820px; min-width:0; margin:0; padding:48px 56px 64px;
  background:var(--page-sheet); border:1px solid #e2d8c7; border-radius:6px 14px 14px 6px;
  box-shadow:inset 12px 0 0 -11px rgba(212,198,174,.45),0 2px 0 #ebe2d2,0 5px 0 -1px #f8f3ea,0 6px 0 -1px #ddd2bf,0 18px 40px rgba(38,36,33,.045);
  font-family:var(--reader-family); font-size:var(--reader-body-size); letter-spacing:.025em;
}
.reading-paper::before { content:none; }
.reading-paper[data-reader-font=serif],.reading-paper:has([data-font=serif][aria-pressed=true]),html[data-reader-font=serif] .reading-paper { --reader-family:var(--serif); }
.reading-paper[data-reader-font=sans],html[data-reader-font=sans] .reading-paper { --reader-family:var(--sans); }
.reading-paper[data-reader-size=sm],.reading-paper:has([data-size=small][aria-pressed=true]),html[data-reader-size=sm] .reading-paper { --reader-body-size:15px; --reader-scale:.9375; }
.reading-paper[data-reader-size=md],.reading-paper:has([data-size=standard][aria-pressed=true]),html[data-reader-size=md] .reading-paper { --reader-body-size:16px; --reader-scale:1; }
.reading-paper[data-reader-size=lg],.reading-paper:has([data-size=large][aria-pressed=true]),html[data-reader-size=lg] .reading-paper { --reader-body-size:17.5px; --reader-scale:1.09375; }
.article-kicker { margin:0 0 10px; font-family:var(--sans); color:var(--t3); font-size:12px; line-height:1.7; letter-spacing:.025em; }
.reading-paper h1 { margin:0; font-family:var(--reader-family); font-size:calc(clamp(23px,2.5vw,28px) * var(--reader-scale)); font-weight:700; line-height:1.38; letter-spacing:.01em; text-wrap:pretty; }
.reading-meta { display:flex; align-items:center; justify-content:flex-start; gap:12px; flex-wrap:wrap; margin-top:20px; padding-bottom:20px; border-bottom:1px solid #eae2d3; font-family:var(--sans); font-size:13px; color:var(--t3); line-height:normal; }
.reading-controls { display:flex; align-items:center; flex-wrap:wrap; width:auto; gap:5px; margin-left:auto; font-size:11.5px; line-height:1.45; letter-spacing:0; }
.control-group { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:0; padding:3px; background:#efe8da; border:1px solid #dfd4c1; border-radius:7px; box-shadow:inset 0 1px 2px rgba(76,59,31,.06); }
.control-group button { min-width:0; padding:3px 6px; border:1px solid transparent; border-radius:4px; background:transparent; color:var(--t2); font-size:11.5px; font-weight:400; line-height:1.45; letter-spacing:0; white-space:nowrap; }
.control-group button:hover { background:rgba(255,253,249,.6); color:var(--ink); }
.control-group button[aria-pressed=true] { background:#fffdf8; border-color:rgba(44,34,30,.14); color:var(--ink); box-shadow:0 1px 2px rgba(76,59,31,.12),0 2px 3px rgba(76,59,31,.04); }
.article-summary { margin:28px 0 20px; color:var(--ink); font-family:var(--reader-family); font-size:var(--reader-body-size); font-weight:400; line-height:1.88; letter-spacing:.025em; }
.article-toc { margin:24px 0 0; padding:0; border:1px solid var(--line); border-radius:8px; background:var(--surface); font-family:var(--sans); font-size:12px; line-height:1.8; color:var(--t3); }
.article-toc summary { padding:12px 14px; cursor:pointer; }
.article-toc summary span { float:right; font-size:10px; color:var(--t3); }
.article-toc ol { margin:0; padding:0 14px 13px; list-style:none; max-height:55dvh; overflow-y:auto; }
.article-toc a { display:block; padding:7px 0; font-size:12px; font-weight:450; line-height:1.75; color:var(--t3); }
.article-toc a:hover,.article-toc a[aria-current=location] { color:var(--ink); font-weight:650; }
.prose,.prose.serif { margin-top:28px; min-width:0; font-family:var(--reader-family); font-size:var(--reader-body-size); line-height:1.88; letter-spacing:.025em; color:var(--ink); counter-reset:h2-section; }
.prose>* { max-width:100%; }
.prose h2 {
  counter-increment:h2-section; display:flex; align-items:center; gap:12px;
  font-family:var(--reader-family); font-size:calc(clamp(19px,2vw,22px) * var(--reader-scale)); font-weight:680; line-height:1.42; letter-spacing:.01em;
  margin:2.35em 0 .95em; padding:0 0 11px; border-bottom:1px solid #ece3d4;
  scroll-margin-top:96px; text-wrap:pretty; outline:none;
}
.prose>h2:first-child { margin-top:0; }
.prose h2::before {
  content:"§ " counter(h2-section,decimal-leading-zero); flex:none; margin:0; padding:2px 8px;
  border-radius:5px; background:linear-gradient(180deg,#faf5eb,#f2e9d8); border:1px solid #dfd2ba;
  box-shadow:0 1px 0 #e5dac6; color:#6e5526; font:650 12px/1.35 var(--mono); letter-spacing:.03em;
}
.prose h3 { font-family:var(--reader-family); font-size:calc(clamp(17px,1.65vw,18.5px) * var(--reader-scale)); font-weight:650; line-height:1.5; letter-spacing:.01em; margin:1.85em 0 .65em; padding-left:12px; border-left:3px solid #dfb655; scroll-margin-top:96px; text-wrap:pretty; }
.prose h4 { position:relative; padding-left:15px; font-size:calc(16px * var(--reader-scale)); font-weight:650; line-height:1.55; margin:1.45em 0 .55em; scroll-margin-top:96px; }
.prose h4::before { content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:6px; height:6px; border-radius:2px; background:#d8ad4e; }
.prose p,.prose ol,.prose ul { font-size:var(--reader-body-size); line-height:1.88; color:var(--ink); letter-spacing:.025em; }
.prose p { margin:0 0 1.25em; }
.prose ol,.prose ul { margin:.8em 0 1.4em; padding-left:0; list-style:none; }
.prose li { position:relative; margin:0; }
.prose li+li { margin-top:.55em; }
.prose ol { counter-reset:book-ol; }
.prose ol>li { counter-increment:book-ol; padding-left:2.15em; }
.prose ol>li::before { content:counter(book-ol); position:absolute; left:0; top:.24em; width:1.5em; height:1.5em; border-radius:6px; background:linear-gradient(180deg,#faf6ee,#f1e9da); border:1px solid #dcd0bc; box-shadow:0 1px 0 #e2d7c3; color:#5b4a28; font:650 .8em/1 var(--mono); display:inline-flex; align-items:center; justify-content:center; font-feature-settings:"tnum"; font-variant-numeric:tabular-nums; }
.prose ul>li { padding-left:1.35em; }
.prose ul>li::before { content:""; position:absolute; left:.22em; top:.68em; width:6px; height:6px; border-radius:1.5px; background:#d8ad4e; border:1px solid #b88c32; transform:rotate(45deg); }
.prose ul ul>li::before { background:var(--page-sheet); border:1.5px solid #9e8860; border-radius:50%; transform:none; }
.prose li>ol,.prose li>ul { margin:.45em 0 .55em; }
.prose strong { font-weight:650; color:var(--ink); }
.prose li>strong,.prose p>strong { background:linear-gradient(180deg,transparent 66%,rgba(247,223,148,.36) 0); padding:0 1px; border-radius:2px; }
.prose a,.source-list a { color:inherit; text-decoration:underline; text-decoration-color:var(--t3); text-underline-offset:4px; text-decoration-thickness:1px; }
.prose :not(pre)>code { font-family:var(--mono); font-size:.86em; background:#f5efe3; border:1px solid #e2d7c3; box-shadow:0 1px 0 #e6dcc8; color:var(--ink); padding:.12em .42em; border-radius:5px; overflow-wrap:anywhere; }
.prose blockquote { margin:1.6em 0; padding:16px 22px; border:1px solid #e6dcc8; border-left:3.5px solid #d8ad4e; border-radius:4px 10px 10px 4px; background:linear-gradient(180deg,#faf5eb,#f5efe2); box-shadow:0 2px 5px rgba(76,59,31,.03); }
.prose blockquote p { margin:0; color:var(--ink); font-size:calc(15.5px * var(--reader-scale)); line-height:1.88; }
.prose pre { max-width:100%; margin:1.6em 0; padding:18px 22px; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:10px; font-size:calc(14px * var(--reader-scale)); line-height:1.75; overflow-x:auto; tab-size:2; }
.prose pre code { display:block; font-family:var(--mono); font-size:inherit; line-height:inherit; background:transparent; color:inherit; padding:0; white-space:pre; }
.prose hr { border:0; height:1px; background:linear-gradient(90deg,transparent,#dcd1be 18%,#dcd1be 82%,transparent); margin:2.4em 0; }
.prose img { display:block; width:100%; max-width:100%; height:auto; border:1px solid var(--line); border-radius:10px; background:var(--surface); margin:24px auto 28px; }
.prose table { font-size:.88em; line-height:1.7; }
.prose th { background:#f5efe3; }
.sources { margin-top:35px; padding-top:24px; color:var(--t3); font-family:var(--sans); font-size:12px; line-height:1.8; }
.sources h2 { color:var(--t2); font-size:13px; font-weight:650; }
.reading-end { display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:24px; margin-top:48px; padding-top:28px; border-top:3px double var(--line); font-family:var(--sans); }
.reading-end a { font-size:14px; line-height:1.8; color:var(--ink); }
.reading-end a:last-child { max-width:60%; text-align:right; }
.reading-end span { font-size:11px; color:var(--t3); }
.related { margin-top:28px; }
.related h2 { margin-bottom:12px; color:var(--ink); }
.related>a::after { color:#795125; }

/* Remaining local routes and utilities use the same paper and gold palette. */
.path-aside { background:#f7f0e2; border-color:#dfd2ba; }
.path-aside ol,.path-aside p,.about-content p { color:var(--t2); }
.about-content { background:var(--page-sheet); }
.day-number { color:#795125; }
.button { background:var(--ink); border-color:var(--ink); box-shadow:0 1px 0 #d8cdbb; }
.button:hover { background:#3d3830; }
.button.secondary { background:var(--surface); border-color:var(--line-strong); }
.site-footer.wrap { margin-top:0; padding:25px 40px 32px; border-top:1px solid var(--line); color:var(--t3); font-size:12px; line-height:1.8; }
.site-footer>div a { color:var(--ink); }
.site-footer p { color:var(--t3); }
dialog { background:var(--surface); border-color:var(--line-strong); box-shadow:0 25px 100px rgba(38,36,33,.25); }
dialog::backdrop { background:rgba(38,36,33,.36); }
.icon-button { color:var(--t3); }
.search-top+.sr-only+input { border-color:var(--line-strong); background:var(--page-sheet); }
.search-result:hover { background:var(--hover); }
.search-help { color:var(--t3); }
.skip-link { z-index:20; background:var(--ink); }

@media (min-width:761px) and (max-width:1080px) {
  .model-workbench { gap:18px; grid-template-columns:minmax(0,42fr) minmax(0,58fr); }
  .model-grid { grid-template-columns:1fr; }
  .dossier { align-self:start; position:sticky; top:20px; padding:22px 24px; }
}
@media (max-width:1280px) { main.wrap:has(.article-shell) { padding:36px 32px 48px; } }
@media (max-width:1160px) {
  .site-header.wrap { grid-template-columns:minmax(0,1fr) auto; gap:12px 20px; padding:20px 40px 12px; }
  .site-header nav { grid-column:1/-1; grid-row:2; justify-self:center; }
}
@media (max-width:960px) { .editorial-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 20px; } }
@media (max-width:760px) {
  .wrap { padding:0 20px; }
  .site-header.wrap { gap:14px 10px; padding:16px 20px 12px; }
  main.wrap { padding:22px 20px 64px; }
  .brand { display:grid; grid-template-columns:auto auto; gap:4px 7px; justify-self:start; font-size:clamp(14px,4vw,18px); }
  .brand img { grid-row:1/3; align-self:center; width:32px; height:32px; }
  .brand-stamp { grid-column:2; justify-self:start; margin-left:0; font-size:10.5px; padding:2px 7px; }
  .site-header nav { justify-content:center; gap:20px; border:0; padding:0; }
  .site-header nav a { font-size:14px; }
  .header-actions { gap:8px; flex-wrap:wrap; min-width:0; max-width:100%; }
  .search-trigger,.pro-button { padding:6px 10px; }
  .search-trigger svg { display:none; }
  .model-workbench { grid-template-columns:minmax(0,1fr); gap:22px; }
  .model-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .model-bookmark { padding:10px 8px; gap:7px; }
  .model-bookmark strong { overflow-wrap:anywhere; }
  .bookmark-arrow { display:none; }
  .dossier { position:relative; top:auto; padding:20px 20px 24px 25px; min-height:0; }
  .showcase-identity h3 { font-size:18px; }
  .model-quote { font-size:19px; margin:20px 0; }
  .model-tradeoffs { gap:14px; }
  .model-tradeoffs>div+div { padding-left:14px; }
  .model-project { flex-direction:column; gap:5px; }
  .catalog-section { margin-top:38px; padding-top:30px; }
  .section-head { flex-direction:column; align-items:flex-start; gap:12px; margin:0 0 20px; }
  .section-head h2 { font-size:clamp(20px,2vw,23px); }
  .section-actions { width:100%; justify-content:space-between; }
  .editorial-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 18px; }
  .editorial-item-body h3 { font-size:14px; line-height:1.55; }
  .author-line { font-size:12px; }
  .source-links { font-size:12px; gap:6px 10px; }
  .cover-title { font-size:clamp(18px,4vw,28px); }
  .cover-type { font-size:9px; letter-spacing:.1em; }
  .cover-caption { font-size:9px; }
  .filter-row { gap:12px 20px; margin-bottom:26px; }
  .library-toolbar { gap:12px; }
  .library-search { max-width:none; }
  main.wrap:has(.article-shell) { padding:24px 16px 36px; }
  .article-shell>.breadcrumbs { font-size:13px; gap:8px; margin-bottom:12px; }
  .reading-paper { padding:30px 24px 44px; margin:0; }
  .reading-meta { gap:12px; font-size:13px; padding-bottom:20px; }
  .reading-controls { width:auto; justify-content:flex-start; }
  .article-summary { font-size:var(--reader-body-size); line-height:1.88; margin:28px 0 20px; }
  .article-toc { padding:0; }
  .prose { font-size:var(--reader-body-size); line-height:1.88; }
  .reading-end { flex-direction:row; gap:24px; }
  .site-footer.wrap { padding:23px 20px 28px; }
}
@media (max-width:420px) {
  .reading-paper { padding:26px 18px 38px; }
  main.wrap:has(.article-shell) { padding-inline:10px; }
  .editorial-grid { gap:24px 15px; }
}
@media (prefers-reduced-motion:reduce) {
  .model-bookmark,.editorial-cover { transition:none; }
  .model-bookmark:hover,.editorial-item-link:is(:hover,:focus-visible) .editorial-cover { transform:none; }
  .dossier-page,.dossier-content { animation:none; }
}
@media print {
  body::before,body::after { display:none; }
  main.wrap:has(.article-shell),.article-shell { max-width:none; padding:0; }
  .reading-paper { border:0; border-radius:0; box-shadow:none; padding:0; }
}

/* Header and wide-screen contents use the reference reader structure. */
.header-crumb:empty{display:none}
.header-crumb{min-width:0;display:flex;align-items:center;gap:13px;font-size:13px;color:var(--t2);line-height:1.7}
.header-crumb>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reader-view .site-header.wrap{position:sticky;top:0;z-index:10;max-width:none;min-height:64px;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;padding:10px 30px;background:rgba(250,248,244,.94);backdrop-filter:blur(12px)}
.reader-view .site-header nav,.reader-view .brand>strong{display:none}
.reader-view .brand-stamp{font-size:12.5px}
.reader-back{display:inline-flex;margin:0 0 12px;padding:5px 12px;border:1px solid var(--line-strong);border-radius:7px;background:linear-gradient(180deg,#fffefa,#f8f3ea);box-shadow:0 1px 0 #d8cdbb;font:550 13px/1.45 var(--sans);letter-spacing:.02em}
.model-icon{font:500 13px/1 var(--mono);color:#97774b}
.showcase-identity .model-icon{font-size:19px}
.topic-link{display:inline-block;margin-left:18px}
.model-project a:hover{text-decoration:underline;text-underline-offset:4px}
.author-badge{border:1px solid #dfd3be;border-radius:4px;padding:1px 5px;background:#f5efe3;color:var(--t2);font-size:12px;font-weight:600}
.reader-side-toc{display:none}
@media(min-width:1281px){
 main.wrap:has(.article-shell){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,820px) minmax(0,1fr);gap:0;align-items:start}
 .article-shell{grid-column:2;grid-row:1}
 .reader-side-toc{display:flex;flex-direction:column;grid-column:1;grid-row:1;justify-self:end;margin:44px 32px 0 0;width:min(200px,calc(100% - 32px));position:sticky;top:108px;max-height:calc(100dvh - 130px);min-width:0;font:12px/1.8 var(--sans);color:var(--t3)}
 .reader-side-toc>span{margin-bottom:12px;font-weight:600}
 .reader-side-toc nav{display:flex;flex-direction:column;gap:2px;border-left:3px double var(--line-strong);padding-left:14px;overflow-y:auto}
 .reader-side-toc a{padding:7px 0;line-height:1.75}
 .reader-side-toc a:hover{font-weight:650;color:var(--ink)}
 .article-toc{display:none}
}
@media(max-width:760px){
 .reader-view .site-header.wrap{gap:10px;padding:10px 16px}
 .reader-view .brand-stamp{display:none}
 .reader-view .brand{display:block}
 .reader-view .header-crumb{font-size:12px;gap:8px}
 .reader-view .header-crumb>span:last-child{display:none}
 .reader-view .header-actions{flex-wrap:nowrap}
 .reader-back{font-size:12px}
 .topic-link{margin-left:12px}
}

/* Match the reference's four different cover compositions rather than one template. */
.cover-career .cover-title{top:15%;font-size:clamp(23px,2.45vw,33px);font-weight:800;line-height:1.3}
.cover-contract .cover-title{top:12%;left:14%;right:10%;padding:9% 5%;background:#f8f3e8;border:1px solid #4d5543;outline:1px solid #6a705e;outline-offset:4px;text-align:center;font-size:clamp(21px,2.1vw,28px);line-height:1.35;font-weight:650}
.cover-contract .cover-type{top:7%;font-size:9px}
.cover-map{background:#f4eddd}
.cover-map>img{height:59%;object-fit:cover;object-position:center bottom;border-bottom:1px solid #a99f86}
.cover-map .cover-type{top:60%;font-size:9px}
.cover-map .cover-title{top:auto;bottom:14%;left:8%;right:7%;font-size:clamp(22px,2.35vw,32px);font-weight:800;line-height:1.2}
.cover-map .cover-caption{bottom:5%;left:8%}
.cover-retirement .cover-title{top:12%;font-size:clamp(24px,2.5vw,33px);line-height:1.22;font-weight:700}
.cover-retirement .cover-type{top:6%;font-size:9px}
@media(max-width:760px){
 .cover-career .cover-title,.cover-map .cover-title{font-size:clamp(18px,4.3vw,28px)}
 .cover-contract .cover-title{font-size:clamp(17px,4vw,25px)}
 .cover-retirement .cover-title{font-size:clamp(18px,4.6vw,29px)}
 .cover-type,.cover-caption{font-size:9px}
 .reader-view .site-header.wrap{grid-template-columns:minmax(0,1fr) auto}
 .reader-view .brand{display:flex;gap:7px;min-width:0}
 .reader-view .brand-stamp{display:inline-flex;font-size:10.5px;padding:2px 7px;white-space:nowrap}
 .reader-view .header-crumb{display:none}
}

/* Cover lettering scales with the printed cover at every screen size. */
.cover-type,.cover-caption{font-size:clamp(5px,3.3cqw,10px)}
.cover-contract .cover-type{top:5%;font-size:clamp(5px,3.3cqw,9px)}
.cover-map .cover-type,.cover-retirement .cover-type{font-size:clamp(5px,3.3cqw,9px)}
