/* ==========================================================================
   Wake the Woke Policy: "Reading Room" library theme (2026-10-09)
   SITE-SPECIFIC. Replaces assets/nation/patriot.css + assets/woke.css on this
   site only. Layout is unchanged: it still uses Wake the Nation's structure
   (assets/nation/chrome.css: family header, pill nav, secondary strip, hero
   lockup panel, fold/stat cards, panels, CTA pills, tile grid, footers, same
   widths, radii, spacing and breakpoints). Only the theme changes:
     palette  parchment / cream pages, oxblood, forest, ink, gilt on leather
     type     Source Serif 4 (OFL, self-hosted) book typography
     motifs   leather-bound header with a bookshelf spine rule, bookplate hero,
              catalog-card tiles and stats, footnote-style source lists,
              subtle paper grain
   Load order: wake-brand/fonts.css → tokens.css → family.css →
               wake-appbar.css → assets/nation/chrome.css → THIS FILE
   Contrast (WCAG 2.x, all AA or better; normal text ≥ 4.5:1):
     ink #231C15 on parchment #F6EFDF 14.7 · on card #FFFCF3 16.4
     muted #4A3F33 on parchment 8.9 · on band #EDE3CC 8.0
     oxblood #7B1E2B on parchment 8.9 · card 9.9 · white on oxblood 10.2
     forest #24452F on parchment 9.3 · brass text #6B4E12 on parchment 6.7
     gilt #E3C27A on leather #2A1518 10.1 · on nav #3A1C20 9.0
     muted #D9CBB0 on leather 10.8 · cream #F3E6C4 on forest-ink #1C2A22 12.1
   ========================================================================== */

@font-face {
  font-family: "Source Serif 4";
  src: url("/assets/library/fonts/source-serif-4-latin-wght-normal.woff2") format("woff2");
  font-weight: 200 900; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Source Serif 4";
  src: url("/assets/library/fonts/source-serif-4-latin-wght-italic.woff2") format("woff2");
  font-weight: 200 900; font-style: italic; font-display: swap;
}

:root {
  color-scheme: light;
  /* library palette */
  --lib-paper: #F6EFDF;        /* parchment page */
  --lib-card: #FFFCF3;         /* catalog card / panel */
  --lib-band: #EDE3CC;         /* darker parchment band */
  --lib-rule: #CDBB98;         /* hairline rules (decorative) */
  --lib-rule-strong: #9C8763;  /* UI edges, 3.3:1 on paper */
  --lib-ink: #231C15;
  --lib-muted: #4A3F33;
  --lib-oxblood: #7B1E2B;
  --lib-oxblood-hi: #96283A;
  --lib-forest: #24452F;
  --lib-navy-ink: #243553;
  --lib-brass: #A9822E;        /* decorative only */
  --lib-brass-text: #6B4E12;
  --lib-leather: #2A1518;      /* header binding */
  --lib-leather-2: #3A1C20;
  --lib-gilt: #E3C27A;
  --lib-cream: #F3E6C4;
  --lib-forest-ink: #1C2A22;   /* footer */
  --lib-serif: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --lib-spines: linear-gradient(90deg,
      #5E1822 0 7%, #A9822E 7% 8%, #1F3D2B 8% 15%, #243553 15% 21%, #E3C27A 21% 22%,
      #4A2E14 22% 30%, #7B1E2B 30% 34%, #1F3D2B 34% 41%, #A9822E 41% 42%, #243553 42% 50%,
      #5E1822 50% 56%, #E3C27A 56% 57%, #4A2E14 57% 64%, #1F3D2B 64% 69%, #7B1E2B 69% 77%,
      #A9822E 77% 78%, #243553 78% 85%, #5E1822 85% 91%, #1F3D2B 91% 96%, #4A2E14 96% 100%);
  --lib-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .25 0 0 0 0 .12 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");

  /* Nation chrome tokens, re-pointed (names kept so chrome.css layout still applies) */
  --wn-bg: var(--lib-paper);
  --wn-bg-elev: var(--lib-leather-2);
  --wn-panel: var(--lib-card);
  --wn-panel-elev: var(--lib-card);
  --wn-border: var(--lib-rule);
  --wn-border-strong: var(--lib-rule-strong);
  --wn-cream: var(--lib-ink);
  --wn-cream-dim: var(--lib-muted);   /* used by inline styles in page content */
  --wn-gold: var(--lib-oxblood);
  --wn-gold-bright: var(--lib-oxblood);
  --wn-gold-soft: rgba(123, 30, 43, .08);
  --wn-red: var(--lib-oxblood);       /* used by inline styles in page content */
  --wn-red-fill: var(--lib-oxblood);
  --wn-ink: var(--lib-ink);
  --wn-font: var(--lib-serif);
  --wn-display: var(--lib-serif);
  --wn-shadow: 0 1px 0 rgba(255,255,255,.6) inset, 0 6px 18px rgba(60, 40, 20, .10);
  --wn-radius: 10px;
  --fp-pw-bg: var(--lib-paper);
  --fp-pw-panel: var(--lib-card);
  --fp-pw-border: var(--lib-rule);
  --fp-pw-cream: var(--lib-ink);
  --fp-pw-cream-dim: var(--lib-muted);
  --fp-pw-gold: var(--lib-oxblood);
  --fp-pw-gold-bright: var(--lib-oxblood);
  --fp-pw-red: var(--lib-oxblood);
  --fp-pw-ink: var(--lib-ink);

  /* legacy Woke variables used by inline styles in page content */
  --navy: var(--lib-ink); --navy2: var(--lib-ink); --ink: var(--lib-ink); --paper: var(--lib-paper);
  --line: var(--lib-rule-strong); --soft: var(--lib-band);
  --red: var(--lib-oxblood); --amber: var(--lib-brass); --amber2: var(--lib-gilt);
  --good: var(--lib-forest); --blue: var(--lib-navy-ink); --code: var(--lib-oxblood);
}

/* Kit (family.css) surfaces: leather binding for header + forest-ink footer */
html[data-wake-brand="woke"] {
  --wake-color-bg: var(--lib-leather);
  --wake-color-surface: var(--lib-leather-2);
  --wake-color-surface-raised: #44232A;
  --wake-color-field: #4A2A2E;
  --wake-color-border: rgba(227, 194, 122, 0.28);
  --wake-color-border-strong: var(--lib-gilt);
  --wake-color-tint: rgba(227, 194, 122, 0.10);
  --wake-color-text-muted: #D9CBB0;
  --wake-color-text-label: #E6D9BD;
  --wake-color-link: var(--lib-gilt);
  --wake-color-link-hover: #FFFFFF;
  --wake-accent-woke-fill: #A3283A;           /* white on it 7.2:1 */
  --wake-accent-fill: #A3283A;
  --wake-accent-ink: #FFFFFF;
  --wab-bg: var(--lib-forest-ink); --wab-fg: var(--lib-cream); --wab-accent: var(--lib-brass);
}

/* ---- Page: parchment with grain ----------------------------------------- */
body {
  background:
    var(--lib-grain),
    radial-gradient(ellipse 90% 40% at 50% 0, rgba(255, 252, 243, .9), transparent 70%),
    var(--lib-paper);
  color: var(--lib-ink);
  font-family: var(--lib-serif);
  font-size: 17px;
  font-feature-settings: "kern", "liga", "onum";
}
main { max-width: 56rem; }
main p, main li { line-height: 1.7; }
::selection { background: rgba(123, 30, 43, .18); }

main a:not(.btn):not(.tile):not(.tag) {
  color: var(--lib-oxblood); text-decoration-color: rgba(123, 30, 43, .45);
  text-decoration-thickness: 1px; text-underline-offset: 3px;
}
main a:not(.btn):not(.tile):not(.tag):hover { color: var(--lib-ink); text-decoration-color: var(--lib-oxblood); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--lib-oxblood); outline-offset: 2px;
}
.wf-header a:focus-visible, .wf-header button:focus-visible, .wf-footer a:focus-visible { outline-color: var(--lib-gilt); }

/* ---- Header: leather binding + bookshelf spine rule ---------------------- */
.wf-header {
  background: var(--lib-leather);
  background-image: linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.12));
  border-bottom: 0;
  box-shadow: 0 6px 18px rgba(40, 20, 10, .25);
}
.wf-header::after { content: ""; display: block; height: 6px; background: var(--lib-spines); border-top: 1px solid var(--lib-brass); }
.wf-header .wn-nav {
  position: static; max-width: none;
  background: var(--lib-leather-2);
  border-top: 1px solid rgba(227, 194, 122, .18); border-bottom: 0; box-shadow: none;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  font-family: var(--lib-serif); font-size: .78rem; letter-spacing: .06em;
}
.wn-nav a { color: #E6D9BD; }
.wn-nav a:hover, .wn-nav a:focus { color: #fff; border-color: rgba(227, 194, 122, .55); }
.wn-nav a:focus-visible { outline: 3px solid var(--lib-gilt); outline-offset: 2px; }
.wn-nav .wn-core { color: #F6EFDF; border-color: rgba(227, 194, 122, .28); font-variant-caps: small-caps; text-transform: none; font-size: .95rem; letter-spacing: .05em; }
.wn-nav a.is-current, .wn-nav .wn-core.is-current {
  color: var(--lib-leather); background: var(--lib-gilt); border-color: var(--lib-gilt);   /* 10.1:1 */
}
/* Brand lockup: seal + wordmark kept exactly as before (logo unchanged) */
.wn-nav .wn-brand, .wn-nav .wn-brand .wn-brand-name { color: #fff; font-family: "Montserrat", system-ui, sans-serif; }
.wn-nav .wn-brand .wn-brand-name b { color: var(--wake-coral, #FF6B6B); font-weight: 800; }   /* 5.5:1 on nav */
.wn-nav .wn-brand .wn-brand-tag { color: var(--lib-gilt); font-family: "Montserrat", system-ui, sans-serif; }
.wk-seal {
  flex: 0 0 auto; width: 2rem; height: 2rem; border-radius: 50%;
  display: grid; place-items: center; font-size: 1.05rem; line-height: 1;
  background: #B31942; color: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,.85);
}

/* Secondary strip: an epigraph band */
.wn-family-secondary {
  background: var(--lib-band); color: var(--lib-muted);
  border-bottom: 1px solid var(--lib-rule);
  font-family: var(--lib-serif); font-style: italic; text-transform: none;
  font-size: .9rem; letter-spacing: .01em;
}

/* ---- Typography: book faces ---------------------------------------------- */
h1, h2, h3 { font-family: var(--lib-serif); }
h1 {
  background: none; -webkit-background-clip: border-box; background-clip: border-box;
  color: var(--lib-ink); text-transform: none; letter-spacing: -.005em;
  font-weight: 700; line-height: 1.12; text-wrap: balance;
}
main h1 { font-size: clamp(1.75rem, 6vw, 2.6rem); margin: .4rem 0 .6rem; }
main h2 {
  color: var(--lib-oxblood); font-weight: 650; text-transform: none; letter-spacing: 0;
  font-size: 1.32rem; line-height: 1.25; margin: 2.1rem 0 .65rem;
  display: flex; align-items: baseline; gap: .55rem; border: 0; padding: 0;
}
main h2::before { content: "\00A7"; flex: 0 0 auto; color: var(--lib-brass-text); font-weight: 400; }   /* § */
main h3 { color: var(--lib-ink); font-weight: 700; }
.dek, .lede, .sub { color: var(--lib-muted); font-style: italic; font-size: 1.15rem; line-height: 1.55; }
.commentary, .eyebrow {
  display: inline-flex; align-items: center; gap: .5rem; background: none; padding: 0; margin: 0 0 .5rem;
  font-family: var(--lib-serif); font-size: .9rem; font-weight: 600; letter-spacing: .12em;
  font-variant-caps: all-small-caps; text-transform: none; color: var(--lib-oxblood);
}
.commentary::before, .eyebrow::before { content: ""; width: 1.6rem; height: 0; border-top: 3px double var(--lib-oxblood); }

/* ---- Hero: bookplate panel (same position/size as Nation's hero lockup) -- */
.welcome {
  position: relative; overflow: hidden; color: var(--lib-ink);
  margin: 0 0 1.25rem; padding: 1.5rem 1.15rem 1.75rem;
  border-radius: var(--wn-radius);
  background: var(--lib-grain), linear-gradient(180deg, #FFFCF3, #F9F3E4);
  border: 1px solid var(--lib-rule-strong);
  box-shadow: inset 0 0 0 5px #FFFCF3, inset 0 0 0 6px var(--lib-rule), var(--wn-shadow);
}
.welcome::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--lib-spines); }
.welcome > * { position: relative; }
.welcome h1 { color: var(--lib-ink); max-width: 40rem; }
.welcome p.lead { color: var(--lib-muted); font-size: 1.12rem; max-width: 42rem; }
.welcome p.lead b { color: var(--lib-ink); }
.hsearch { display: flex; gap: .5rem; max-width: 36rem; margin: 0 0 1rem; }
@media (max-width: 480px) { .hsearch { flex-direction: column; } }

/* ---- Buttons (same pill geometry as Nation .fp-btn) ---------------------- */
.btnrow { display: flex; flex-wrap: wrap; gap: .6rem; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
  padding: .55rem 1.1rem; border-radius: 999px; text-decoration: none;
  font-family: var(--lib-serif); font-weight: 600; font-size: 1rem;
  font-variant-caps: small-caps; letter-spacing: .05em; text-transform: none; border: 1px solid transparent;
}
.btn-amber, .btn-amber[style] { background: var(--lib-oxblood); color: #FFFCF3; border: 1px solid var(--lib-oxblood) !important; box-shadow: 0 3px 10px rgba(123,30,43,.22); }  /* 9.9:1 */
.btn-amber:hover, .btn-amber:focus { background: var(--lib-oxblood-hi); color: #fff; }
.btn-ghost, .btn-ghost[style] { background: transparent; color: var(--lib-ink) !important; border: 1px solid var(--lib-rule-strong) !important; }
.btn-ghost:hover, .btn-ghost:focus { border-color: var(--lib-ink) !important; background: rgba(35,28,21,.05); }

/* ---- Inputs: library catalogue search ------------------------------------ */
main input, main select, .searchbar input, .controls select, .controls input {
  background: #FFFCF3 !important; color: var(--lib-ink); border: 1px solid var(--lib-rule-strong) !important;
  border-radius: 8px; min-height: 44px; font-family: var(--lib-serif) !important; font-size: 1rem !important;
}
main input::placeholder { color: #6E6150; opacity: 1; font-style: italic; }   /* 5.6:1 */
.searchbar .clearx { background: transparent; color: var(--lib-ink); border: 1px solid var(--lib-rule-strong); border-radius: 999px; min-height: 44px; font-family: var(--lib-serif); }

/* ---- Panels: same blocks as Nation .wn-panel, as card stock --------------- */
.what, .card, .find, .hero, .rec, .uc, .stat, .tile, .norec, .method, .warn, .ok {
  background: var(--lib-card);
  border: 1px solid var(--lib-rule); border-top: 3px solid var(--lib-oxblood);
  border-radius: var(--wn-radius); box-shadow: var(--wn-shadow); color: var(--lib-ink);
}
.what, .card, .find, .hero { padding: 1.1rem 1.15rem; margin: 1rem 0; }
.what h2:first-child, .find h2:first-child, .card > h2:first-child { margin-top: 0; }
.card.liberty   { border-left: 4px solid var(--lib-forest); }
.card.allies    { border-left: 4px solid var(--lib-navy-ink); }
.card.tradeoff, .hero, .card[style*="--amber"] { border-left: 4px solid var(--lib-brass) !important; background: linear-gradient(170deg, #FFFCF3, #FBF4E2); }
.us-principle {
  background: transparent; border: 0; border-left: 3px solid var(--lib-brass); border-radius: 0;
  color: var(--lib-muted); font-style: italic; font-size: 1.05rem; padding: .35rem 0 .35rem 1.1rem; margin: 1.1rem 0;
}
.us-principle b { color: var(--lib-ink); font-style: normal; font-variant-caps: small-caps; letter-spacing: .04em; }
.usecards { display: grid; gap: .85rem; grid-template-columns: 1fr; margin: 1rem 0; }
@media (min-width: 700px) { .usecards { grid-template-columns: repeat(3, 1fr); } }
.uc { padding: 1rem; }
.uc.v2 { border-top-color: var(--lib-navy-ink); } .uc.v3 { border-top-color: var(--lib-forest); }
.uc h3 { margin: 0 0 .35rem; }
.uc p { color: var(--lib-muted); font-size: .95rem; }
.uc a { font-weight: 600; font-variant-caps: small-caps; letter-spacing: .04em; }

/* Stats: same 2/4-column fold cards, set as book spines on a shelf */
.stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; margin: 1.25rem 0; padding-bottom: .55rem;
  border-bottom: 8px solid #4A2E14; box-shadow: 0 6px 0 -3px #2B1A0C; }
@media (min-width: 700px) { .stats { grid-template-columns: repeat(4, 1fr); } }
.stat { padding: 1rem; text-align: left; position: relative; overflow: hidden; border: 0; border-radius: 6px 6px 2px 2px;
  background: #5E1822; color: var(--lib-cream);
  box-shadow: inset 0 9px 0 -6px var(--lib-gilt), inset 0 -9px 0 -6px var(--lib-gilt), inset 6px 0 10px rgba(0,0,0,.25), 0 4px 10px rgba(40,20,10,.18); }
.stat:nth-child(4n+2) { background: #1F3D2B; }
.stat:nth-child(4n+3) { background: #243553; }
.stat:nth-child(4n+4) { background: #4A2E14; }
.stat .n { font-family: var(--lib-serif); font-weight: 700; font-size: clamp(1.8rem, 5vw, 2.3rem); color: var(--lib-gilt); }   /* ≥ 7:1 */
.stat .l { color: var(--lib-cream); font-size: .95rem; font-style: italic; }                                                     /* ≥ 9:1 */

/* Tiles: catalog cards (ruled, red heading line, punch hole) */
.grid { display: grid; gap: .8rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .grid { grid-template-columns: repeat(3, 1fr); } }
.tile {
  display: block; padding: 1.15rem 1rem 1.7rem; text-decoration: none; color: var(--lib-ink);
  border-top: 1px solid var(--lib-rule); border-radius: 4px; position: relative;
  background:
    radial-gradient(circle at 50% calc(100% - .7rem), var(--lib-paper) 0 .3rem, var(--lib-rule) .3rem .36rem, transparent .4rem),
    linear-gradient(transparent 0 .6rem, rgba(155, 48, 60, .6) .6rem calc(.6rem + 1px), transparent calc(.6rem + 1px)),
    repeating-linear-gradient(180deg, transparent 0 1.55rem, rgba(36, 53, 83, .09) 1.55rem calc(1.55rem + 1px)),
    var(--lib-card);
  transition: border-color .15s, transform .15s;
}
.tile:hover, .tile:focus { border-color: var(--lib-rule-strong); transform: translateY(-1px); }
.tile .t, .tile .tmeta, .tile .d { display: block; }
.tile .tmeta { margin: .3rem 0 .35rem; }
.tile .t { color: var(--lib-ink); font-weight: 700; font-size: 1.05rem; }
.tile .tmeta { color: var(--lib-oxblood); font-size: .84rem; letter-spacing: .08em; font-variant-caps: all-small-caps; text-transform: none; font-weight: 600; font-family: ui-monospace, "Courier New", monospace; }
.tile .d { color: var(--lib-muted); font-size: .92rem; }

/* Find-your-race pills (same geometry) */
.find a { display: inline-flex; align-items: center; min-height: 40px; margin: .25rem .35rem .25rem 0; padding: .35rem .85rem;
  border: 1px solid var(--lib-rule-strong); border-radius: 999px; background: #FFFCF3; color: var(--lib-ink) !important; text-decoration: none;
  font-family: var(--lib-serif); font-size: .92rem; font-weight: 500; }
.find a:hover, .find a:focus { border-color: var(--lib-oxblood); background: rgba(123,30,43,.06); }

/* Records (allies / officials) = catalog cards */
.rec { padding: .9rem 1rem; margin: .75rem 0; border-top-width: 1px; border-left: 3px solid var(--lib-oxblood); border-radius: 4px; }
.rec .meta, .count, .norec { color: var(--lib-muted); font-family: var(--lib-serif); }
.rec .meta { font-size: .95rem; }
.norec { font-style: italic; text-align: center; padding: 1rem; }
.controls { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }

/* Tags = subject headings */
.tags { display: flex; flex-wrap: wrap; gap: .4rem; margin: .6rem 0 1rem; }
.tag, .tagpill { font-family: var(--lib-serif); font-size: .9rem; font-weight: 600; letter-spacing: .04em; font-variant-caps: small-caps;
  padding: .2rem .6rem; border-radius: 999px; background: #FFFCF3; color: var(--lib-muted); border: 1px solid var(--lib-rule-strong); }
.tagpill[style] { color: #FFFCF3; border-color: transparent; }
.tag-domain { color: var(--lib-ink); }
.tag-office { color: var(--lib-navy-ink); }
.tag-liberty { color: var(--lib-oxblood); border-color: rgba(123,30,43,.45); }
.tag-favors { color: var(--lib-forest); border-color: rgba(36,69,47,.5); }
.tag a, a.tag { text-decoration: none; }

/* Grades / verdicts: library stamps (fills AA with their text) */
.badge, .gchip, .verdict { color: #fff; font-family: var(--lib-serif); }
.bA, .gA, .vALLY   { background: #1F5A34; }                     /* white 8.2:1 */
.bB, .gB           { background: #2E6B3F; }                     /* white 6.4:1 */
.bC, .gC, .vMIXED  { background: #EBCB76; color: var(--lib-ink); }  /* 10.7:1 */
.bD, .gD           { background: #8A4B14; }                     /* white 6.8:1 */
.bF, .gF, .vCAUTION{ background: #7B1E2B; }                     /* white 10.2:1 */
.bTBD, .gTBD       { background: #5C5850; }                     /* white 7.1:1 */
.vMENTOR           { background: #23406E; }                     /* white 10.3:1 */
.badge { display: inline-block; font-weight: 700; font-size: 1.05rem; border-radius: 4px; padding: .35rem .8rem; vertical-align: middle; letter-spacing: .03em;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.55), inset 0 0 0 3px rgba(0,0,0,.15); }
.gchip { display: inline-block; font-weight: 700; font-size: .78rem; border-radius: 3px; padding: .05rem .4rem; }
.verdict { display: inline-block; font-weight: 700; font-size: .78rem; letter-spacing: .06em; padding: .15rem .5rem; border-radius: 3px; }

/* Tables: ledger style */
main table { border-collapse: collapse; width: 100%; font-size: .95rem; margin: .75rem 0; background: #FFFCF3; }
main th, main td { border: 1px solid var(--lib-rule); padding: .5rem .6rem; text-align: left; vertical-align: top; }
main th { background: var(--lib-band); color: var(--lib-ink); font-family: var(--lib-serif); font-size: .95rem; font-weight: 700; font-variant-caps: small-caps; letter-spacing: .04em; text-transform: none;
  border-bottom: 2px solid var(--lib-rule-strong); }
main tbody tr:nth-child(even) td { background: rgba(237, 227, 204, .35); }
.table-scroll, main table { display: block; overflow-x: auto; }
@media (min-width: 700px) { main table { display: table; } }

/* Sources: footnote-style citations */
ul.src {
  list-style: none; counter-reset: fn; margin: .4rem 0 1.5rem; padding: .9rem 0 0;
  color: var(--lib-muted); font-size: .93rem; line-height: 1.55; position: relative;
}
ul.src::before { content: ""; position: absolute; top: 0; left: 0; width: 7rem; border-top: 1px solid var(--lib-rule-strong); }
ul.src li { counter-increment: fn; position: relative; padding-left: 2.3rem; margin: 0 0 .45rem; line-height: 1.55; overflow-wrap: anywhere; }
ul.src li::before {
  content: "[" counter(fn) "]"; position: absolute; left: 0; top: 0; width: 2rem; text-align: right;
  color: var(--lib-oxblood); font-size: .85em; font-feature-settings: "lnum", "tnum";
}

main video { width: 100%; border-radius: 6px; border: 1px solid var(--lib-rule-strong); background: #000; }
main pre, main code { background: var(--lib-band); color: var(--lib-ink); }

/* ---- Footers ------------------------------------------------------------- */
/* Site footer copy (unchanged) set as a colophon */
.fp-fppc-footer.wk-sitefooter {
  display: block; text-align: center; padding: 1.4rem 1rem 1.6rem; margin-top: 2.5rem;
  max-width: none; font-size: .95rem; line-height: 1.65; font-style: italic;
  background: var(--lib-band); color: var(--lib-muted); border-top: 1px solid var(--lib-rule);
}
.fp-fppc-footer.wk-sitefooter::before { content: "\2766"; display: block; font-style: normal; color: var(--lib-brass-text); font-size: 1.2rem; margin-bottom: .35rem; }  /* ❦ */
.wf-footer { background: var(--lib-forest-ink); border-top: 0; position: relative; }
.wf-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--lib-spines); }

/* ---- Language toggles for page content ----------------------------------- */
html:lang(es) main .wf-en, html:not(:lang(es)) main .wf-es { display: none; }
html:lang(es) .wk-masttag .wf-en, html:not(:lang(es)) .wk-masttag .wf-es { display: none; }

/* ---- Mobile (same as Nation) -------------------------------------------- */
@media (max-width: 640px) {
  .wf-header .wn-nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
  .wf-header .wn-nav .wn-brand { width: auto; flex-shrink: 0; }
  .wf-header .wn-nav a { flex-shrink: 0; }
  main h2 { font-size: 1.2rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
@media print { body { background: #fff; } .wab, .wf-header { display: none; } }
