:root {
  --master-navy: #0b2f58;
  --master-ink: #10213f;
  --master-teal: #087b83;
  --master-coral: #e96855;
  --master-gold: #c89735;
  --master-paper: #fbfcfd;
  --master-mist: #edf5f6;
  --master-line: #cad8e2;
  --master-muted: #5c6d82;
  --master-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --master-ui: Inter, Aptos, "Segoe UI", Helvetica, Arial, sans-serif;
  --master-reading: Charter, "Bitstream Charter", Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; color: var(--master-ink); background: var(--master-paper); font-family: var(--master-ui); overflow-x: clip; }
a { color: inherit; }
.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 11px 15px; background: var(--master-navy); color: #fff; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.reader-header { min-height: 74px; padding: 12px max(22px, env(safe-area-inset-right)) 12px max(22px, env(safe-area-inset-left)); display: flex; align-items: center; gap: 28px; border-bottom: 1px solid var(--master-line); background: rgba(255,255,255,.96); }
.reader-brand { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; }
.reader-brand > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--master-navy); color: #fff; font: 700 12px/1 var(--master-ui); letter-spacing: .08em; }
.reader-brand strong { font: 600 20px/1.2 var(--master-display); }
.reader-header nav { margin-left: auto; display: flex; gap: 22px; }
.reader-header nav a { color: var(--master-navy); font: 700 13px/1.3 var(--master-ui); text-decoration-thickness: 1px; text-underline-offset: 5px; }

.editorial-banner { padding: 10px max(22px, env(safe-area-inset-right)) 10px max(22px, env(safe-area-inset-left)); display: flex; justify-content: center; gap: 12px; background: #fff7e6; color: #6d4c09; border-bottom: 1px solid #ead5a6; font-size: 13px; }
.editorial-banner strong { text-transform: uppercase; letter-spacing: .08em; }

.master-reader main { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.chapter-hero { padding: clamp(52px, 7vw, 96px) 0 clamp(38px, 5vw, 70px); border-bottom: 1px solid var(--master-line); }
.chapter-kicker { margin: 0 0 20px; color: var(--master-teal); font: 800 12px/1.4 var(--master-ui); letter-spacing: .14em; text-transform: uppercase; }
.chapter-number { margin-bottom: 15px; color: var(--master-coral); font: 700 clamp(16px, 2vw, 21px)/1 var(--master-ui); }
.chapter-hero h1 { max-width: 1050px; margin: 0; color: var(--master-navy); font: 500 clamp(42px, 6.4vw, 82px)/.98 var(--master-display); letter-spacing: -.04em; text-wrap: balance; }
.provenance-strip { margin: 38px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--master-line); border-radius: 12px; overflow: hidden; background: #fff; }
.provenance-strip div { padding: 17px 20px; }
.provenance-strip div + div { border-left: 1px solid var(--master-line); }
.provenance-strip dt { color: var(--master-muted); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.provenance-strip dd { margin: 7px 0 0; font-size: 14px; font-weight: 700; }
.provenance-strip code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--master-teal); }

.document-body { max-width: 940px; margin: 0 auto; padding: clamp(44px, 6vw, 82px) 0 90px; font: 400 clamp(18px, 1.4vw, 21px)/1.75 var(--master-reading); }
.document-body > p:first-child:has(em) { margin: 0 0 38px; padding: 20px 24px; border-left: 4px solid var(--master-gold); background: #fff8e9; color: #624a1d; font-family: var(--master-ui); }
.document-body h2, .document-body h3, .document-body h4 { color: var(--master-navy); font-family: var(--master-display); text-wrap: balance; scroll-margin-top: 24px; }
.document-body h2 { margin: 2.1em 0 .7em; padding-top: .8em; border-top: 1px solid var(--master-line); font-size: clamp(32px, 4vw, 48px); line-height: 1.08; letter-spacing: -.025em; }
.document-body h2:first-of-type { margin-top: .8em; }
.document-body h3 { margin: 1.8em 0 .55em; font-size: clamp(25px, 3vw, 34px); line-height: 1.15; }
.document-body h4 { margin: 1.5em 0 .45em; font-size: clamp(21px, 2.3vw, 27px); line-height: 1.2; }
.document-body p { margin: 0 0 1.05em; }
.document-body strong { color: var(--master-navy); }
.document-body ul, .document-body ol { padding-left: 1.35em; }
.document-body li { margin: .45em 0; }
.document-body blockquote { margin: 1.7em 0; padding: 18px 24px; border-left: 4px solid var(--master-teal); background: var(--master-mist); color: #27445b; }

.document-body figure { margin: 2.2em 0; padding: clamp(12px, 2vw, 22px); border: 1px solid var(--master-line); border-radius: 16px; background: #fff; box-shadow: 0 12px 35px rgba(11,47,88,.08); }
.document-body figure img { display: block; width: auto !important; max-width: 100%; height: auto !important; margin: 0 auto; border-radius: 9px; }
.document-body figcaption { margin-top: 14px; color: var(--master-muted); font: 600 14px/1.55 var(--master-ui); }

.table-scroll { max-width: 100%; margin: 2em 0; overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid var(--master-line); border-radius: 12px; background: #fff; box-shadow: 0 9px 28px rgba(11,47,88,.06); }
.table-scroll:focus-visible { outline: 3px solid rgba(8,123,131,.35); outline-offset: 3px; }
.document-body table { width: 100%; min-width: 680px; border-collapse: collapse; font: 500 15px/1.5 var(--master-ui); }
.document-body th, .document-body td { padding: 13px 15px; vertical-align: top; border: 1px solid #dce5eb; text-align: left; }
.document-body th { background: var(--master-navy); color: #fff; font-weight: 800; }
.document-body tr:nth-child(even) td { background: #f6f9fa; }

.chapter-nav { padding: 36px 0 70px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; border-top: 1px solid var(--master-line); }
.chapter-nav__link { min-height: 120px; padding: 20px 22px; display: flex; flex-direction: column; justify-content: center; border: 1px solid var(--master-line); border-radius: 12px; background: #fff; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.chapter-nav__link:hover { transform: translateY(-2px); border-color: var(--master-teal); box-shadow: 0 10px 30px rgba(11,47,88,.08); }
.chapter-nav__link--next { text-align: right; }
.chapter-nav__link span { margin-bottom: 7px; color: var(--master-teal); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.chapter-nav__link strong { font: 600 20px/1.25 var(--master-display); }

.reader-footer { padding: 30px max(22px, env(safe-area-inset-right)) max(30px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left)); display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 30px; background: #071d34; color: #d9e6ee; text-align: center; font-size: 13px; }
.reader-footer p { margin: 0; }
.reader-footer a { color: #fff; }

.master-library { width: min(1320px, calc(100% - 40px)); margin: 0 auto; padding: clamp(52px, 7vw, 100px) 0 100px; }
.master-intro { max-width: 1080px; margin-bottom: 54px; }
.master-intro h1 { margin: 0; color: var(--master-navy); font: 500 clamp(52px, 7vw, 92px)/.95 var(--master-display); letter-spacing: -.045em; }
.master-intro > p:not(.chapter-kicker) { max-width: 800px; color: var(--master-muted); font-size: clamp(18px, 1.7vw, 23px); line-height: 1.55; }
.master-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 34px 0; border-block: 1px solid var(--master-line); }
.master-summary div { padding: 18px; }
.master-summary div + div { border-left: 1px solid var(--master-line); }
.master-summary dt { color: var(--master-muted); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.master-summary dd { margin: 7px 0 0; color: var(--master-navy); font: 600 29px/1 var(--master-display); }
.master-search { max-width: 620px; display: grid; gap: 8px; color: var(--master-navy); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.master-search input { min-height: 54px; padding: 0 16px; border: 1px solid var(--master-line); border-radius: 9px; background: #fff; color: var(--master-ink); font: 500 16px/1.3 var(--master-ui); }
.master-search input:focus { outline: 3px solid rgba(8,123,131,.2); border-color: var(--master-teal); }
.master-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.master-card { min-height: 185px; padding: 24px; display: grid; grid-template-columns: 54px minmax(0,1fr) 32px; gap: 18px; align-items: start; border: 1px solid var(--master-line); border-radius: 13px; background: #fff; box-shadow: 0 8px 26px rgba(11,47,88,.045); }
.master-card[hidden] { display: none; }
.master-card__number { color: var(--master-coral); font: 700 18px/1 var(--master-ui); }
.master-card p, .master-card span:not(.master-card__number) { color: var(--master-teal); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.master-card p { margin: 0 0 13px; }
.master-card h2 { margin: 0 0 17px; color: var(--master-navy); font: 600 clamp(23px, 2.2vw, 31px)/1.08 var(--master-display); letter-spacing: -.02em; }
.master-card h2 a { text-decoration: none; }
.master-card h2 a::after { content: ""; position: absolute; inset: 0; }
.master-card { position: relative; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.master-card:hover { transform: translateY(-2px); border-color: var(--master-teal); box-shadow: 0 13px 34px rgba(11,47,88,.09); }
.master-card__arrow { color: var(--master-teal); font-size: 26px; text-decoration: none; }
.empty-state { padding: 35px; border: 1px dashed var(--master-line); color: var(--master-muted); text-align: center; }

@media (max-width: 760px) {
  .reader-header { align-items: flex-start; }
  .reader-header nav { gap: 12px; flex-direction: column; text-align: right; }
  .reader-brand strong { display: none; }
  .editorial-banner { justify-content: flex-start; flex-direction: column; gap: 3px; }
  .master-reader main, .master-library { width: min(100% - 28px, 1180px); }
  .chapter-hero h1 { font-size: clamp(38px, 12vw, 56px); }
  .provenance-strip { grid-template-columns: 1fr; }
  .provenance-strip div + div { border-left: 0; border-top: 1px solid var(--master-line); }
  .document-body { font-size: 18px; }
  .document-body h2 { font-size: 31px; }
  .document-body table { min-width: 610px; }
  .chapter-nav, .master-grid { grid-template-columns: 1fr; }
  .chapter-nav__link--next { text-align: left; }
  .master-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .master-summary div:nth-child(3) { border-left: 0; border-top: 1px solid var(--master-line); }
  .master-summary div:nth-child(4) { border-top: 1px solid var(--master-line); }
  .master-card { grid-template-columns: 38px minmax(0,1fr) 24px; padding: 20px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
