/* ==============================================================
   ISRAEL BONDS INVESTIGATION WIKI · publish.css
   For  https://israelbonds.wiki  (Obsidian Publish · custom domain)

   Concept — a quiet documentary publication.
   A forensic public-records wiki documenting Arkansas pension
   fund Israel Bonds investments, the independent-credit-analysis
   gap across five state pension systems, the Auditor-of-State
   DCI promotional channel, the SFOF-Christian-Zionist political
   pipeline preceding the May 2025 pension-investment push, and
   the Treasury internal-credit override pattern. The design
   recedes so the record can speak.

   Register — "monochrome editorial."
   Pure black on pure white (light mode) and pure white on near-
   black (dark mode), with one signal red reserved for contradictions
   and the SEALED treatment retained as the evidentiary signature.
   Hierarchy is carried by size, weight, and rule-line — never by
   ornamental color. Generous whitespace, hairline rules, a single
   serif (Source Serif 4) doing the heavy display work, monospace
   (IBM Plex Mono) reserved for evidentiary registers. Layout follows
   Publish's three-column chrome and stays out of its way.

   Companion file — publish.js (page-type chrome).
   Injects .page-kicker, .foia-coversheet, .page-meta-strip,
   .scroll-progress, .heading-anchor, and .compilation-footer.
   The CSS styles those classes; the JS injects the markup.

   Page hero — composed landing-page masthead.
   .page-hero-kicker / .page-hero-tagline / .page-hero-meta are
   markdown-embedded HTML on home.md (and may be reused on other
   landing pages). Styled in §23.5. Front-page components
   (.stat-band, .decision-board, .site-grid, .front-kicker) are
   styled in §30.5.

   Karpathy-Hegelion callouts (§33–§34 below).
   [!evidence], [!finding], [!gap], [!key-date], [!source-note],
   [!agency] carry the corpus's citation register; [!tension] and
   [!dialectic-verdict] are the Hegelion layer (see methodology.md
   and the operating schema at the repository root).

   Signature interaction — CSS-only redaction reveal.
   <span data-redacted> spans and the [!web-research-unresolved]
   callout wear a hatched black bar that slides off on :hover /
   :focus-within. Respects prefers-reduced-motion.

   After editing, RE-PUBLISH from the Obsidian Publish changes
   dialog, then hard-refresh (Ctrl+Shift+R) — the CDN caches.
   ============================================================== */


/* ====  1 · FONT IMPORTS  ===================================== */
@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;0,8..60,600;0,8..60,700;1,8..60,400;1,8..60,500&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');


/* ====  2 · SHARED TOKENS (mode-independent)  ================= */
body {
  --font-text-theme:      'Source Serif 4', ui-serif, Georgia, 'Times New Roman', serif;
  --font-display-theme:   'Source Serif 4', ui-serif, Georgia, 'Times New Roman', serif;
  --font-interface-theme: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-monospace-theme: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', 'Consolas', monospace;
  --font-text-size: 17px;
}

.published-container {
  /* Layout — let Publish's chrome variables drive the columns.
     Setting width/max-width on .site-body-*-column collapses the grid. */
  --page-width: 44rem;
  --page-padding: 2.6rem;
  --graph-height: 240px;

  /* Page title — Publish injects its own .page-title (file name) */
  --page-title-font: 'Source Serif 4', ui-serif, Georgia, serif;
  --page-title-size: 2.35rem;
  --page-title-weight: 600;
  --page-title-line-height: 1.12;
  --page-title-style: normal;

  /* Navigation */
  --nav-item-size: 0.86rem;
  --nav-item-weight: 400;
  --nav-item-weight-active: 600;

  /* Outline / backlinks rail headers */
  --component-title-size: 0.68rem;
  --component-title-weight: 700;

  /* Metadata (frontmatter — kept hidden in §14; tokens retained for safety) */
  --metadata-border-radius: 4px;
  --metadata-padding: 0.55rem 1rem;
  --metadata-label-font-size: 0.66rem;

  /* Private theme tokens */
  --ibw-radius:     4px;
  --ibw-radius-sm:  2px;
  --ibw-redaction:  #000000;
  --ibw-redact-ink: #FFFFFF;
}


/* ====  3 · LIGHT PALETTE  ====================================
   Pure black on pure white. Hierarchy via size, weight, and rule —
   never ornamental color. Links are pure text-color underlined, the
   accent is the text itself. The signal red is retained but quieted
   and reserved exclusively for contradictions and the SEALED stamp's
   border accent. */
body.theme-light {
  --background-primary:        #FFFFFF;
  --background-primary-alt:    #FAFAFA;
  --background-secondary:      #F4F4F4;
  --background-secondary-alt:  #ECECEC;
  --background-modifier-border:        #E5E5E5;
  --background-modifier-border-hover:  #C7C7C7;
  --background-modifier-border-focus:  #0A0A0A;
  --background-modifier-hover:         rgba(10, 10, 10, 0.045);

  --text-normal:    #0A0A0A;
  --text-muted:     #555555;
  --text-faint:     #6E6E6E;   /* was #999 (2.85:1) → ~5:1, WCAG AA on white */
  --text-on-accent: #FFFFFF;

  --text-accent:        #0A0A0A;
  --text-accent-hover:  #000000;
  --interactive-accent: #0A0A0A;
  --interactive-accent-hover: #000000;
  --text-selection:     rgba(10, 10, 10, 0.14);
  --text-highlight-bg:  rgba(10, 10, 10, 0.10);

  --link-color: #0A0A0A;
  --link-color-hover: #000000;
  --link-external-color: #0A0A0A;

  --accent-h: 0;
  --accent-s: 0%;
  --accent-l: 4%;

  --blockquote-color: #1A1A1A;
  --hr-color: #E5E5E5;
  --bold-color: #000000;

  /* Private */
  --ibw-accent:        #0A0A0A;
  --ibw-accent-hover:  #000000;
  --ibw-accent-quiet:  rgba(10, 10, 10, 0.045);
  --ibw-accent-line:   rgba(10, 10, 10, 0.42);
  --ibw-panel:         #FAFAFA;
  --ibw-rule:          rgba(10, 10, 10, 0.12);
  --ibw-rule-strong:   rgba(10, 10, 10, 0.78);
  --ibw-signal:        #8B1A12;
  --ibw-signal-quiet:  rgba(139, 26, 18, 0.06);

  /* Graph view */
  --graph-text:            #0A0A0A;
  --graph-line:            #CFCFCF;
  --graph-node:            #555555;
  --graph-node-focused:    #0A0A0A;
  --graph-node-unresolved: #CFCFCF;
  --graph-node-tag:        #999999;
  --graph-node-attachment: #999999;

  color-scheme: light;
}


/* ====  4 · DARK PALETTE  =====================================
   Pure white on near-black. The ground sits just off pure #000 so
   the eye reads it as a deep ink rather than a void; the text sits
   just off pure #FFF so it reads as warm bone rather than glare.
   The accent is the text itself; links underline rather than tint.
   The signal red lifts to a tempered coral for legibility on dark. */
body.theme-dark {
  --background-primary:        #0A0A0A;
  --background-primary-alt:    #141414;
  --background-secondary:      #050505;
  --background-secondary-alt:  #1A1A1A;
  --background-modifier-border:        rgba(250, 250, 250, 0.10);
  --background-modifier-border-hover:  rgba(250, 250, 250, 0.22);
  --background-modifier-border-focus:  rgba(250, 250, 250, 0.85);
  --background-modifier-hover:         rgba(250, 250, 250, 0.04);

  --text-normal:    #F5F5F5;
  --text-muted:     #A8A8A8;
  --text-faint:     #8A8A8A;   /* was #6B6B6B (3.7:1) → ~5.7:1, WCAG AA on near-black */
  --text-on-accent: #0A0A0A;

  --text-accent:        #FAFAFA;
  --text-accent-hover:  #FFFFFF;
  --interactive-accent: #FAFAFA;
  --interactive-accent-hover: #FFFFFF;
  --text-selection:     rgba(250, 250, 250, 0.16);
  --text-highlight-bg:  rgba(250, 250, 250, 0.12);

  --link-color: #FAFAFA;
  --link-color-hover: #FFFFFF;
  --link-external-color: #FAFAFA;

  --accent-h: 0;
  --accent-s: 0%;
  --accent-l: 98%;

  --blockquote-color: #E5E5E5;
  --hr-color: rgba(250, 250, 250, 0.14);
  --bold-color: #FFFFFF;

  /* Private */
  --ibw-accent:        #FAFAFA;
  --ibw-accent-hover:  #FFFFFF;
  --ibw-accent-quiet:  rgba(250, 250, 250, 0.06);
  --ibw-accent-line:   rgba(250, 250, 250, 0.40);
  --ibw-panel:         #141414;
  --ibw-rule:          rgba(250, 250, 250, 0.12);
  --ibw-rule-strong:   rgba(250, 250, 250, 0.72);
  --ibw-signal:        #E27968;
  --ibw-signal-quiet:  rgba(226, 121, 104, 0.08);

  /* Graph view */
  --graph-text:            #EDEDED;
  --graph-line:            rgba(250, 250, 250, 0.16);
  --graph-node:            #8E8E8E;
  --graph-node-focused:    #FAFAFA;
  --graph-node-unresolved: rgba(250, 250, 250, 0.18);
  --graph-node-tag:        #A8A8A8;
  --graph-node-attachment: #6B6B6B;

  color-scheme: dark;
}


/* ====  5 · HIGH-SPECIFICITY FONT ENFORCEMENT  ================
   Obsidian Publish ships font rules near (0,2,1). The
   `html body[class]` prefix lifts ours to (0,2,3) so the wiki's
   typography wins every reasonable Publish selector. */

html body[class] .markdown-preview-view,
html body[class] .markdown-rendered,
html body[class] .markdown-preview-sizer,
html body[class] .markdown-preview-section,
html body[class] .published-container,
html body[class] .site-body,
html body[class] .markdown-preview-view p,
html body[class] .markdown-rendered p,
html body[class] .markdown-preview-view li,
html body[class] .markdown-rendered li,
html body[class] .markdown-preview-view td,
html body[class] .markdown-rendered td,
html body[class] .markdown-preview-view span,
html body[class] .markdown-rendered span,
html body[class] .markdown-preview-view a,
html body[class] .markdown-rendered a,
html body[class] .markdown-preview-view strong,
html body[class] .markdown-rendered strong,
html body[class] .markdown-preview-view em,
html body[class] .markdown-rendered em {
  font-family: var(--font-text-theme);
}

html body[class] .markdown-preview-view h1,
html body[class] .markdown-rendered h1,
html body[class] .markdown-preview-view h2,
html body[class] .markdown-rendered h2,
html body[class] .markdown-preview-view h3,
html body[class] .markdown-rendered h3,
html body[class] .page-title {
  font-family: var(--font-display-theme);
}

html body[class] .markdown-preview-view h4,
html body[class] .markdown-rendered h4,
html body[class] .markdown-preview-view h5,
html body[class] .markdown-rendered h5,
html body[class] .markdown-preview-view h6,
html body[class] .markdown-rendered h6 {
  font-family: var(--font-interface-theme);
}

html body[class] .markdown-preview-view code,
html body[class] .markdown-rendered code,
html body[class] .markdown-preview-view pre,
html body[class] .markdown-rendered pre,
html body[class] .markdown-preview-view blockquote,
html body[class] .markdown-rendered blockquote {
  font-family: var(--font-monospace-theme);
}

html body[class] .markdown-preview-view th,
html body[class] .markdown-rendered th,
html body[class] .markdown-preview-view table,
html body[class] .markdown-rendered table,
html body[class] .page-kicker,
html body[class] .reading-time,
html body[class] .page-meta-strip,
html body[class] .foia-coversheet,
html body[class] .foia-coversheet *,
html body[class] .compilation-footer,
html body[class] .compilation-footer *,
html body[class] .site-body-left-column-site-name,
html body[class] .site-name,
html body[class] .nav-file-title,
html body[class] .nav-folder-title,
html body[class] .tree-item-inner,
html body[class] .site-body-right-column,
html body[class] .site-body-right-column-inner,
html body[class] .site-body-right-column-inner * {
  font-family: var(--font-interface-theme);
}


/* ====  6 · BASE  ============================================= */
:root { scroll-behavior: smooth; }

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

.published-container .markdown-rendered,
.published-container .markdown-preview-view {
  font-family: var(--font-text-theme);
  font-size: var(--font-text-size);
  line-height: 1.68;
  color: var(--text-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.published-container .markdown-rendered p,
.published-container .markdown-preview-view p {
  margin: 0 0 1.1em;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.published-container .markdown-rendered strong,
.published-container .markdown-preview-view strong {
  font-weight: 600;
  color: var(--bold-color);
}

.published-container .markdown-rendered em,
.published-container .markdown-preview-view em {
  font-style: italic;
}

.published-container .markdown-rendered ul,
.published-container .markdown-rendered ol,
.published-container .markdown-preview-view ul,
.published-container .markdown-preview-view ol {
  margin: 0.4em 0 1.2em;
  padding-left: 1.4em;
}

.published-container .markdown-rendered li,
.published-container .markdown-preview-view li { margin: 0.28em 0; line-height: 1.6; }

.published-container .markdown-rendered li::marker,
.published-container .markdown-preview-view li::marker {
  color: var(--text-faint);
}

.published-container .markdown-rendered mark,
.published-container .markdown-preview-view mark {
  background: var(--text-highlight-bg);
  color: var(--text-normal);
  border-radius: 2px;
  padding: 0.04em 0.20em;
}

::selection { background: var(--text-selection); color: var(--text-normal); }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: var(--background-modifier-border);
  border-radius: 6px;
}
::-webkit-scrollbar-thumb:hover { background: var(--background-modifier-border-hover); }

* {
  scrollbar-width: thin;
  scrollbar-color: var(--background-modifier-border) transparent;
}


/* ====  6.5 · FOCUS-VISIBLE — keyboard parity for the hover affordances ====
   The design leans on :hover (nav, links, redaction reveal, heading anchors);
   this gives keyboard users an equivalent, on-brand indicator (WCAG 2.4.7). */
.published-container a:focus-visible,
.published-container .tree-item-self:focus-visible,
.published-container .site-body-right-column-inner a:focus-visible,
.published-container .heading-anchor:focus-visible,
.published-container [data-redacted]:focus-visible,
.published-container .backlinks a:focus-visible,
.published-container button:focus-visible {
  outline: 2px solid var(--ibw-accent);
  outline-offset: 2px;
  border-radius: 1px;
}


/* ====  7 · LAYOUT  ===========================================
   Content width and padding are governed ENTIRELY by Publish's
   own --page-width / --page-padding (set in §2). Setting width
   or padding directly on .site-body-*-column collapses Publish's
   three-column grid, so only cosmetic properties are set here. */
.published-container .site-body-center-column {
  background: var(--background-primary);
}
.published-container .site-body-left-column,
.published-container .site-body-right-column {
  background: var(--background-secondary);
}
.published-container .site-body-left-column {
  border-right: 1px solid var(--background-modifier-border);
}
.published-container .site-body-right-column {
  border-left: 1px solid var(--background-modifier-border);
}


/* ====  8 · SITE HEADER + NAV  ================================
   Header chrome is left to Publish; only colours are set. */
.published-container .site-header {
  background: var(--background-secondary);
  border-bottom: 1px solid var(--background-modifier-border);
}

.published-container .site-body-left-column-site-name,
.published-container .site-name {
  font-family: var(--font-interface-theme);
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: -0.005em;
  color: var(--text-normal);
}

.published-container .nav-view-outer { padding-top: 0.5rem; }

.published-container .tree-item-self {
  font-family: var(--font-interface-theme);
  font-size: var(--nav-item-size);
  font-weight: var(--nav-item-weight);
  border-radius: var(--ibw-radius-sm);
  color: var(--text-muted);
  padding: 0.22rem 0.5rem;
  transition: background-color 90ms ease, color 90ms ease;
}
.published-container .tree-item-self:hover {
  background: var(--background-modifier-hover);
  color: var(--text-normal);
}

/* Active page — a quiet wash + a thin accent rule on the left */
.published-container .tree-item-self.mod-active,
.published-container .tree-item-self.is-active {
  background: var(--ibw-accent-quiet);
  color: var(--text-accent);
  font-weight: var(--nav-item-weight-active);
  box-shadow: inset 2px 0 0 var(--ibw-accent);
}

/* Folder titles — quiet uppercase index labels */
.published-container .tree-item-self.mod-collapsible {
  font-weight: 600;
  font-size: 0.68rem;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--text-faint);
  margin-top: 0.7rem;
}
.published-container .tree-item-self.mod-collapsible:hover {
  color: var(--text-muted);
  background: transparent;
}


/* ====  9 · HEADINGS  =========================================
   Publish renders its own page title (file name) as the .page-title
   element above the content on most pages. The content's leading
   "# H1" would repeat it, so content H1s are suppressed and the
   page-title above takes the masthead role.

   EXCEPTION — landing pages (home, overview, about-this-wiki,
   methodology, license): Publish does NOT inject .page-title on
   the home page, and the wiki's landing-page filenames don't
   carry the masthead. So on landing pages we show the content H1
   instead — which carries the real title from the markdown
   (e.g. # Israel Bonds Investigation Wiki). */

/* Publish renders the file name as its own title chrome (.page-header inside
   .mod-header; older builds used .page-title). The wiki authors a real
   "# Title" as the first line of every page, so we hide Publish's chrome and
   promote the content H1 to the masthead. This renders correctly with OR
   without publish.js, and pairs with "Hide page title" = ON in Site options
   (which stops Publish emitting .page-header at all — the clean primary path;
   the rule below is the belt-and-suspenders fallback should that toggle be off). */
.published-container .mod-header .page-header,
.published-container .page-title {
  display: none !important;
}

/* The content H1 (the page's own "# Title") IS the masthead — every page. */
.published-container .markdown-rendered h1,
.published-container .markdown-preview-view h1 {
  display: block;
  font-family: var(--font-display-theme);
  font-weight: 700;
  font-size: 2.6rem;
  line-height: 1.09;
  letter-spacing: -0.022em;
  color: var(--text-normal);
  margin: 0.4rem 0 1.6rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--ibw-rule-strong);
}

.published-container .markdown-rendered h2,
.published-container .markdown-preview-view h2 {
  font-family: var(--font-display-theme);
  font-weight: 600;
  font-size: 1.52rem;
  line-height: 1.22;
  letter-spacing: -0.010em;
  color: var(--text-normal);
  margin: 2.6em 0 0.7em;
  padding-bottom: 0.3em;
  border-bottom: 1px solid var(--ibw-rule);
  scroll-margin-top: 5rem;
  position: relative;
}

.published-container .markdown-rendered h3,
.published-container .markdown-preview-view h3 {
  font-family: var(--font-display-theme);
  font-weight: 600;
  font-size: 1.18rem;
  line-height: 1.32;
  letter-spacing: -0.005em;
  color: var(--text-normal);
  margin: 2em 0 0.5em;
  scroll-margin-top: 5rem;
  position: relative;
}

/* H4 — a small interface label, not a display heading */
.published-container .markdown-rendered h4,
.published-container .markdown-preview-view h4 {
  font-family: var(--font-interface-theme);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--text-muted);
  margin: 1.8em 0 0.5em;
  scroll-margin-top: 5rem;
}

.published-container .markdown-rendered h5,
.published-container .markdown-rendered h6,
.published-container .markdown-preview-view h5,
.published-container .markdown-preview-view h6 {
  font-family: var(--font-interface-theme);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text-muted);
  margin: 1.4em 0 0.4em;
}


/* ====  10 · LINKS  ===========================================
   Wikilinks carry the page text color underline; the accent IS
   the text itself. */

.published-container .markdown-rendered a.internal-link,
.published-container .markdown-preview-view a.internal-link {
  color: var(--text-accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--ibw-accent-line);
  text-underline-offset: 0.17em;
  transition: text-decoration-color 90ms ease, color 90ms ease;
}
.published-container .markdown-rendered a.internal-link:hover,
.published-container .markdown-preview-view a.internal-link:hover {
  color: var(--text-accent-hover);
  text-decoration-color: var(--text-accent-hover);
}

/* Unresolved wikilinks — visibly not-yet-live (forensic credibility) */
.published-container .markdown-rendered a.internal-link.is-unresolved,
.published-container .markdown-preview-view a.internal-link.is-unresolved {
  color: var(--text-faint);
  text-decoration-style: dotted;
  text-decoration-color: var(--text-faint);
  font-style: italic;
}
.published-container .markdown-rendered a.internal-link.is-unresolved:hover,
.published-container .markdown-preview-view a.internal-link.is-unresolved:hover {
  color: var(--text-muted);
}

/* External links — a small outbound mark */
.published-container .markdown-rendered a.external-link,
.published-container .markdown-preview-view a.external-link {
  color: var(--text-accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--ibw-accent-line);
  text-underline-offset: 0.17em;
}
.published-container .markdown-rendered a.external-link:hover,
.published-container .markdown-preview-view a.external-link:hover {
  color: var(--text-accent-hover);
  text-decoration-color: var(--text-accent-hover);
}
.published-container .markdown-rendered a.external-link::after,
.published-container .markdown-preview-view a.external-link::after {
  content: "\2197";
  margin-left: 0.12em;
  font-size: 0.78em;
  color: var(--text-faint);
  text-decoration: none;
}


/* ====  11 · BLOCKQUOTES (verbatim source quotes)  ============
   The corpus's #1 evidence display — every verbatim quote sits
   in the machine register (monospace), framed as a captured
   record fragment. */
.published-container .markdown-rendered blockquote,
.published-container .markdown-preview-view blockquote {
  font-family: var(--font-monospace-theme);
  font-size: 0.83rem;
  line-height: 1.65;
  color: var(--text-normal);
  background: var(--ibw-accent-quiet);
  border: 1px solid var(--background-modifier-border);
  border-left: 3px solid var(--ibw-accent);
  border-radius: 0 var(--ibw-radius-sm) var(--ibw-radius-sm) 0;
  margin: 1.5em 0;
  padding: 0.9em 1.1em;
}

.published-container .markdown-rendered blockquote p:last-child,
.published-container .markdown-preview-view blockquote p:last-child {
  margin-bottom: 0;
}

.published-container .markdown-rendered blockquote a,
.published-container .markdown-preview-view blockquote a {
  font-family: var(--font-monospace-theme);
}


/* ====  12 · CODE  ============================================ */
.published-container .markdown-rendered code,
.published-container .markdown-preview-view code {
  font-family: var(--font-monospace-theme);
  font-size: 0.82em;
  background: var(--background-primary-alt);
  color: var(--text-normal);
  padding: 0.12em 0.40em;
  border-radius: var(--ibw-radius-sm);
  border: 1px solid var(--background-modifier-border);
  font-variant-ligatures: none;
  font-variant-numeric: tabular-nums lining-nums;
  word-break: break-word;
}

.published-container .markdown-rendered pre,
.published-container .markdown-preview-view pre {
  font-family: var(--font-monospace-theme);
  font-size: 0.80rem;
  line-height: 1.55;
  background: var(--background-primary-alt);
  border: 1px solid var(--background-modifier-border);
  border-left: 3px solid var(--ibw-accent);
  border-radius: var(--ibw-radius);
  padding: 0.9em 1.1em;
  margin: 1.4em 0;
  overflow-x: auto;
}

.published-container .markdown-rendered pre code,
.published-container .markdown-preview-view pre code {
  background: none;
  border: none;
  padding: 0;
  font-size: inherit;
}


/* ====  13 · TABLES (regulatory-schedule treatment)  ========== */
.published-container .markdown-rendered table,
.published-container .markdown-preview-view table {
  font-family: var(--font-interface-theme);
  font-size: 0.88rem;
  line-height: 1.5;
  font-variant-numeric: tabular-nums lining-nums;
  border-collapse: collapse;
  width: 100%;
  margin: 1.7em 0;
  border: 1px solid var(--background-modifier-border);
}

.published-container .markdown-rendered thead th,
.published-container .markdown-preview-view thead th {
  font-family: var(--font-interface-theme);
  font-weight: 700;
  font-size: 0.70rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: left;
  color: var(--text-muted);
  background: var(--background-secondary);
  border-bottom: 1px solid var(--ibw-rule-strong);
  padding: 0.7em 0.95em;
}

.published-container .markdown-rendered tbody td,
.published-container .markdown-preview-view tbody td {
  padding: 0.62em 0.95em;
  border-top: 1px solid var(--background-modifier-border);
  vertical-align: top;
  color: var(--text-normal);
}

.published-container .markdown-rendered tbody tr:hover,
.published-container .markdown-preview-view tbody tr:hover {
  background: var(--background-primary-alt);
}


/* ====  14 · FRONTMATTER — hidden (metadata, not content)  ==== */
.published-container .frontmatter,
.published-container .frontmatter-container,
.published-container .metadata-container,
.published-container .mod-frontmatter {
  display: none;
}


/* ====  15 · HR  ============================================== */
.published-container .markdown-rendered hr,
.published-container .markdown-preview-view hr {
  border: none;
  height: 1px;
  background: var(--hr-color);
  margin: 2.6em 0;
  position: relative;
}
.published-container .markdown-rendered hr::before,
.published-container .markdown-preview-view hr::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 44px;
  height: 1px;
  background: var(--ibw-accent);
}


/* ====  16 · DEFINITION LISTS (regulatory glossary)  ========== */
.published-container .markdown-rendered dl,
.published-container .markdown-preview-view dl {
  margin: 1.5em 0;
  display: grid;
  grid-template-columns: minmax(110px, 1fr) 3fr;
  column-gap: 1.2em;
  row-gap: 0.6em;
  padding: 0.8em 0;
  border-top: 1px solid var(--ibw-rule-strong);
  border-bottom: 1px solid var(--ibw-rule-strong);
}

.published-container .markdown-rendered dt,
.published-container .markdown-preview-view dt {
  font-family: var(--font-interface-theme);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--text-normal);
  padding-top: 0.30em;
  border-right: 1px solid var(--background-modifier-border);
  padding-right: 0.8em;
}

.published-container .markdown-rendered dd,
.published-container .markdown-preview-view dd {
  margin: 0;
  color: var(--text-muted);
}


/* ====  17 · CALLOUTS  ========================================
   --callout-color is an "R, G, B" triplet (Obsidian rejects hex).
   Base register uses the page accent; only contradictions take
   the signal red. */
.published-container .callout {
  --callout-radius: var(--ibw-radius);
  --callout-border-width: 0px;
  --callout-padding: 0.9em 1.15em;
  --callout-color: 10, 10, 10;  /* light-mode = pure text-normal */
  --callout-icon: lucide-info;
  margin: 1.6em 0;
  background: var(--ibw-panel);
  border: 1px solid var(--background-modifier-border);
  border-left: 3px solid rgb(var(--callout-color));
  font-size: 0.95em;
}
body.theme-dark .callout { --callout-color: 250, 250, 250; }

.published-container .callout-title {
  padding: 0.05em 0;
  font-family: var(--font-interface-theme);
  font-weight: 700;
  font-size: 0.74rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgb(var(--callout-color));
}

.published-container .callout-title-inner { color: inherit; }

.published-container .callout-content {
  font-family: var(--font-text-theme);
  color: var(--text-normal);
  margin-top: 0.5em;
  font-size: 1rem;
  line-height: 1.6;
}
.published-container .callout-content p:last-child { margin-bottom: 0; }

/* — update — amendments and addenda — */
.published-container .callout[data-callout="update"] {
  --callout-icon: lucide-asterisk;
}

/* — important / tip / hint — keep on the same amber family — */
.published-container .callout[data-callout="important"],
.published-container .callout[data-callout="tip"],
.published-container .callout[data-callout="hint"] {
  --callout-icon: lucide-flag;
}

/* — contradiction / warning / danger — single retained signal red,
     reserved exclusively for evidentiary contradictions — */
.published-container .callout[data-callout="contradiction"],
.published-container .callout[data-callout="warning"],
.published-container .callout[data-callout="danger"] {
  --callout-color: 139, 26, 18;
  --callout-icon: lucide-alert-triangle;
  background: var(--ibw-signal-quiet);
}
body.theme-dark .callout[data-callout="contradiction"],
body.theme-dark .callout[data-callout="warning"],
body.theme-dark .callout[data-callout="danger"] {
  --callout-color: 226, 121, 104;
}

/* — web-research-unresolved — dashed border (no extra color);
     the redaction reveal in §19 fires on hover/focus — */
.published-container .callout[data-callout="web-research-unresolved"] {
  --callout-icon: lucide-help-circle;
  border-style: dashed;
  border-left-style: solid;
  position: relative;
  overflow: hidden;
}
.published-container .callout[data-callout="web-research-unresolved"] .callout-title {
  font-style: italic;
  color: var(--text-muted);
}

/* — docket — regulatory reference card — */
.published-container .callout[data-callout="docket"] {
  --callout-icon: lucide-file-text;
  background: var(--background-primary-alt);
}
.published-container .callout[data-callout="docket"] .callout-title {
  font-family: var(--font-monospace-theme);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-accent);
}


/* ====  18 · SEALED CALLOUT — the signature visual moment  ====
   When a record exists but is sealed (a protective order or an
   agency-applied redaction-of-record), the callout IS the
   redaction — pure black ground, signal-red seal-stripe,
   "SEALED" stamp. */
.published-container .callout[data-callout="sealed"] {
  /* Mode-independent — the ground is fixed pure black; the stamp is bone-white.
     A thin signal-red left border carries the evidentiary semantic. */
  --callout-color: 245, 245, 245;
  --sealed-stripe: 139, 26, 18;
  background: var(--ibw-redaction);
  color: var(--ibw-redact-ink);
  border: none;
  border-left: 3px solid rgb(var(--sealed-stripe));
  font-family: var(--font-monospace-theme);
  font-size: 0.92em;
  padding: 1.1em 1.2em 1.1em 1.4em;
  position: relative;
  overflow: hidden;
  border-radius: 0 var(--ibw-radius-sm) var(--ibw-radius-sm) 0;
}

/* Hatch overlay — redacted-stamp pattern */
.published-container .callout[data-callout="sealed"]::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0, transparent 10px,
    rgba(255, 255, 255, 0.038) 10px, rgba(255, 255, 255, 0.038) 12px
  );
  pointer-events: none;
}

/* "SEALED" stamp, top-right corner */
.published-container .callout[data-callout="sealed"]::after {
  content: "SEALED";
  position: absolute;
  top: 0.65em;
  right: 0.85em;
  font-family: var(--font-interface-theme);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.32em;
  color: rgb(var(--callout-color));
  opacity: 0.74;
  border: 1px solid rgb(var(--callout-color));
  padding: 2px 6px 2px 8px;
  border-radius: var(--ibw-radius-sm);
  transform: rotate(-2deg);
  background: rgba(0, 0, 0, 0.35);
  pointer-events: none;
}

.published-container .callout[data-callout="sealed"] > * {
  position: relative;
  z-index: 1;
}

.published-container .callout[data-callout="sealed"] .callout-title {
  color: rgb(var(--callout-color));
  font-family: var(--font-interface-theme);
  font-weight: 700;
  letter-spacing: 0.14em;
}

.published-container .callout[data-callout="sealed"] .callout-content {
  color: var(--ibw-redact-ink);
  font-family: var(--font-monospace-theme);
}

.published-container .callout[data-callout="sealed"] a {
  color: rgb(var(--callout-color));
  text-decoration: underline;
  text-decoration-color: rgba(245, 245, 245, 0.42);
}
.published-container .callout[data-callout="sealed"] a:hover {
  text-decoration-color: rgb(var(--callout-color));
}


/* ====  19 · REDACTION REVEAL — CSS-only, hover / focus-within
   Two surfaces wear the stripe:
     · <span data-redacted>…</span>                          — inline
     · .callout[data-callout="web-research-unresolved"] body  — panel
   The stripe slides off horizontally on hover; reduced-motion
   users get an opacity fade. */

.published-container .callout[data-callout="web-research-unresolved"] .callout-content,
.published-container [data-redacted] {
  position: relative;
}

.published-container [data-redacted] {
  display: inline-block;
}

.published-container .callout[data-callout="web-research-unresolved"] .callout-content::after,
.published-container [data-redacted]::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--ibw-redaction);
  background-image: repeating-linear-gradient(
    90deg,
    var(--ibw-redaction) 0, var(--ibw-redaction) 28px,
    rgba(0, 0, 0, 0.85) 28px, rgba(0, 0, 0, 0.85) 32px
  );
  transform: translateX(0);
  transition: transform 420ms cubic-bezier(0.16, 1, 0.3, 1),
              opacity 420ms cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  z-index: 1;
  border-radius: 1px;
  opacity: 1;   /* fully opaque at rest — a redaction you can read isn't one */
}

.published-container .callout[data-callout="web-research-unresolved"]:hover .callout-content::after,
.published-container .callout[data-callout="web-research-unresolved"]:focus-within .callout-content::after,
.published-container [data-redacted]:hover::after,
.published-container [data-redacted]:focus-within::after {
  transform: translateX(-104%);
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .published-container .callout[data-callout="web-research-unresolved"] .callout-content::after,
  .published-container [data-redacted]::after {
    transition: opacity 120ms ease;
  }
  .published-container .callout[data-callout="web-research-unresolved"]:hover .callout-content::after,
  .published-container [data-redacted]:hover::after {
    transform: none;
    opacity: 0;
  }
}

.published-container .callout[data-callout="web-research-unresolved"] .callout-content {
  position: relative;
  z-index: 0;
}


/* ====  20 · IMAGES & EMBEDS  ================================= */
.published-container .markdown-rendered img,
.published-container .markdown-preview-view img {
  max-width: 100%;
  height: auto;
  border: 1px solid var(--background-modifier-border);
  border-radius: var(--ibw-radius-sm);
  margin: 1.2em 0;
}

.published-container .markdown-rendered span.internal-embed.image-embed img,
.published-container .markdown-preview-view span.internal-embed.image-embed img {
  display: block;
  width: 100%;
}

.published-container .markdown-rendered .markdown-embed,
.published-container .markdown-preview-view .markdown-embed {
  border-left: 2px solid var(--background-modifier-border);
  padding: 0.4em 1em;
  margin: 1.4em 0;
  background: var(--background-primary-alt);
  border-radius: 0 var(--ibw-radius-sm) var(--ibw-radius-sm) 0;
}


/* ====  21 · TAGS  ============================================ */
.published-container .tag {
  font-family: var(--font-monospace-theme);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--ibw-accent-quiet);
  border: 1px solid transparent;
  color: var(--text-accent);
  text-decoration: none;
  transition: border-color 90ms ease;
}
.published-container .tag:hover { border-color: var(--ibw-accent); }


/* ====  22 · RIGHT COLUMN — outline rail + graph view  ======= */
.published-container .site-body-right-column-inner {
  font-family: var(--font-interface-theme);
  font-size: 0.78rem;
}

.published-container .site-body-right-column-inner .outline-view-outer h3,
.published-container .site-body-right-column-inner .graph-view-outer h3 {
  font-family: var(--font-interface-theme);
  font-size: var(--component-title-size);
  font-weight: var(--component-title-weight);
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--text-faint);
  margin-bottom: 0.9rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--background-modifier-border);
}

/* Outline-rail entries; publish.js marks .is-active / .is-passed */
.published-container .site-body-right-column-inner .outline a,
.published-container .site-body-right-column-inner a {
  color: var(--text-muted);
  border-left: 2px solid transparent;
  padding-left: 9px;
  margin-left: -11px;
  text-decoration: none;
  transition: color 0.18s ease, border-left-color 0.18s ease;
}
.published-container .site-body-right-column-inner a:hover {
  color: var(--text-normal);
}
.published-container .site-body-right-column-inner a.is-active {
  color: var(--text-normal);
  border-left-color: var(--ibw-accent);
  font-weight: 600;
}
.published-container .site-body-right-column-inner a.is-passed {
  color: var(--text-faint);
}

/* Graph view container */
.published-container .graph-view-container {
  border: 1px solid var(--background-modifier-border);
  border-radius: var(--ibw-radius);
  overflow: hidden;
  background: var(--background-primary-alt);
}


/* ====  23 · PAGE KICKER — entity-type label (injected by JS)
   A small monitoring indicator above the page title. */
.published-container .page-kicker {
  font-family: var(--font-interface-theme);
  font-weight: 700;
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-accent);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 0.6rem;
}

.published-container .page-kicker::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  background: var(--ibw-accent);
  flex: none;
}

body[data-page-type="source"] .published-container .page-kicker {
  font-family: var(--font-monospace-theme);
  font-weight: 500;
  letter-spacing: 0.10em;
}


/* ====  23.5 · PAGE HERO — composed landing-page masthead  =====
   Markdown-embedded HTML on home.md (and any other landing page that
   wants the composition). Three pieces, all siblings of the H1:

     <div class="page-hero-kicker">…</div>
     # Page Title
     <p class="page-hero-tagline">…</p>
     <div class="page-hero-meta"><span>…</span><span>…</span>…</div>

   Composition rules:
   · Kicker — short institutional label (mono, tracked, hairline rule
     leading into it) sitting just above the title.
   · Title — the existing landing-page H1 from §9; when a kicker is
     present, the H1's individual bottom rule is suppressed and the
     meta block carries the closing rule for the whole hero.
   · Tagline — display-italic editorial caption answering "what is this
     wiki for?" in one sentence, in the muted register so it doesn't
     out-compete the title.
   · Meta — small mono register; counts and provenance, dot-separated. */

.published-container .page-hero-kicker {
  font-family: var(--font-monospace-theme);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0.4rem 0 1.1rem;
}

.published-container .page-hero-kicker::before {
  content: "";
  display: inline-block;
  width: 32px;
  height: 1px;
  background: var(--text-normal);
  flex: none;
}

/* When the hero composition is in play, suppress the H1's individual
   underline — the meta strip carries the closing rule. */
/* Hero landing pages — the .page-hero-meta strip carries the hero's closing
   rule, so the title sheds its own border and grows. Publish wraps each block
   in its own .el-* div, so the kicker and H1 are NOT adjacent siblings; match
   via :has() (needs no JS) and via body[data-page-type="landing"] once
   publish.js is running. */
.published-container:has(.page-hero-kicker) .markdown-rendered h1,
.published-container:has(.page-hero-kicker) .markdown-preview-view h1,
body[data-page-type="landing"] .published-container .markdown-rendered h1,
body[data-page-type="landing"] .published-container .markdown-preview-view h1 {
  font-size: 2.95rem;
  border-bottom: none !important;
  margin-bottom: 0.7rem !important;
  padding-bottom: 0 !important;
}

.published-container .page-hero-tagline {
  font-family: var(--font-display-theme);
  font-style: italic;
  font-weight: 400;
  font-size: 1.28rem;
  line-height: 1.42;
  letter-spacing: -0.004em;
  color: var(--text-muted);
  max-width: 38rem;
  margin: 0 0 1.7rem;
}

.published-container .page-hero-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 1.3rem;
  font-family: var(--font-monospace-theme);
  font-size: 0.70rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-faint);
  margin: 0 0 2.4rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--text-normal);
}

.published-container .page-hero-meta span {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.published-container .page-hero-meta span + span::before {
  content: "";
  display: inline-block;
  width: 2px;
  height: 2px;
  background: var(--text-faint);
  margin-right: 1.3rem;
  margin-left: -1.3rem;
  border-radius: 50%;
  flex: none;
}

@media (max-width: 768px) {
  .published-container .page-hero-kicker {
    font-size: 0.62rem;
    letter-spacing: 0.16em;
    gap: 0.65rem;
  }
  .published-container .page-hero-kicker::before { width: 22px; }
  .published-container .page-hero-tagline {
    font-size: 1.10rem;
    line-height: 1.40;
  }
  .published-container .page-hero-meta {
    font-size: 0.64rem;
    gap: 0.35rem 1.0rem;
    padding-bottom: 1.1rem;
    margin-bottom: 1.9rem;
  }
  .published-container .page-hero-meta span + span::before {
    margin-right: 1.0rem;
    margin-left: -1.0rem;
  }
}


/* ====  24 · PAGE META STRIP — reading time (injected by JS) === */
.published-container .page-meta-strip {
  font-family: var(--font-interface-theme);
  font-size: 0.74rem;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin: -0.6rem 0 1.3rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid var(--background-modifier-border);
}

.published-container .reading-time {
  font-family: var(--font-monospace-theme);
  font-size: 0.68rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-faint);
  display: inline-flex;
  align-items: center;
}

.published-container .reading-time::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-right: 7px;
  border: 1px solid var(--text-faint);
  border-radius: 50%;
}


/* ====  25 · FOIA COVER SHEET — injected on source pages  =====
   Header of a produced record: agency, production, requester.
   Corner ticks echo a document stamp. */
.published-container .foia-coversheet {
  position: relative;
  display: grid;
  grid-template-columns: 108px 1fr;
  gap: 7px 20px;
  font-family: var(--font-monospace-theme);
  font-size: 0.74rem;
  color: var(--text-muted);
  background: var(--background-primary-alt);
  border: 1px solid var(--background-modifier-border);
  border-top: 2px solid var(--ibw-accent);
  padding: 16px 18px;
  margin: 1.1rem 0 2.4rem;
}

.published-container .foia-coversheet::before,
.published-container .foia-coversheet::after {
  content: "";
  position: absolute;
  width: 9px;
  height: 9px;
  border: 1px solid var(--ibw-accent);
}
.published-container .foia-coversheet::before {
  top: 6px; right: 6px;
  border-left: none; border-bottom: none;
}
.published-container .foia-coversheet::after {
  bottom: 6px; left: 6px;
  border-right: none; border-top: none;
}

.published-container .foia-coversheet .cs-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--text-faint);
  padding-top: 1px;
}

.published-container .foia-coversheet .cs-value {
  color: var(--text-normal);
  word-break: break-word;
}


/* ====  26 · SCROLL PROGRESS — bar injected by JS  ============ */
.published-container .scroll-progress,
body > .scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 0%;
  background: var(--ibw-accent);
  box-shadow: 0 0 8px var(--ibw-accent-line);
  opacity: 0;
  z-index: 9000;
  pointer-events: none;
  transition: opacity 0.25s ease, width 0.08s linear;
}
.published-container .scroll-progress.is-visible,
body > .scroll-progress.is-visible {
  opacity: 0.85;
}


/* ====  27 · HEADING ANCHORS — # injected on H2/H3  =========== */
.published-container .heading-anchor {
  position: absolute;
  right: -26px;
  top: 0.18em;
  font-family: var(--font-monospace-theme);
  font-size: 0.85rem;
  color: var(--text-faint);
  text-decoration: none;
  border: none;
  opacity: 0;
  padding: 2px 5px;
  transition: opacity 0.16s ease, color 0.16s ease;
}

.published-container .markdown-rendered h2:hover .heading-anchor,
.published-container .markdown-preview-view h2:hover .heading-anchor,
.published-container .markdown-rendered h3:hover .heading-anchor,
.published-container .markdown-preview-view h3:hover .heading-anchor {
  opacity: 0.6;
}

.published-container .heading-anchor:hover {
  opacity: 1;
  color: var(--ibw-accent);
}


/* ====  28 · BACKLINKS — the inbound-citation panel  ========== */
.published-container .backlinks {
  font-family: var(--font-interface-theme);
  font-size: 0.84rem;
  margin-top: 4rem;
  padding-top: 1.5rem;
  position: relative;
}

.published-container .backlinks::before {
  content: "";
  display: block;
  width: 44px;
  height: 2px;
  background: var(--ibw-accent);
  margin-bottom: 1.4rem;
}

.published-container .backlink-title {
  font-family: var(--font-interface-theme);
  font-weight: 700;
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 0.9rem;
}

.published-container .backlinks .tree-item-self {
  padding: 6px 0;
  border-bottom: 1px solid var(--background-modifier-border);
  transition: padding-left 0.16s ease;
}

.published-container .backlinks .tree-item-self:hover {
  padding-left: 7px;
}

.published-container .backlinks a {
  font-family: var(--font-interface-theme);
  text-decoration: none;
}


/* ====  29 · COMPILATION FOOTER — injected by JS  ============= */
.published-container .compilation-footer {
  display: block;
  margin-top: 4.5rem;
  padding: 1.6rem 0 1.4rem;
  border-top: 1px solid var(--background-modifier-border);
  font-family: var(--font-interface-theme);
  font-size: 0.78rem;
  line-height: 1.6;
  color: var(--text-muted);
  clear: both;
}

.published-container .compilation-footer .footer-rule {
  width: 34px;
  height: 2px;
  background: var(--ibw-accent);
  margin-bottom: 1rem;
}

.published-container .compilation-footer .footer-attribution {
  font-weight: 500;
  color: var(--text-normal);
  margin-bottom: 0.55rem;
}

.published-container .compilation-footer .footer-license {
  font-size: 0.74rem;
  color: var(--text-muted);
  margin-bottom: 0.7rem;
}

.published-container .compilation-footer .footer-meta {
  font-family: var(--font-monospace-theme);
  font-size: 0.68rem;
  letter-spacing: 0.03em;
  color: var(--text-faint);
}

.published-container .compilation-footer a {
  color: var(--text-muted);
  text-decoration: underline;
  text-decoration-color: var(--background-modifier-border);
}

.published-container .compilation-footer a:hover {
  color: var(--text-accent);
  text-decoration-color: var(--text-accent);
}


/* ====  30 · PAGE-TYPE VARIANTS  ==============================
   Source pages — the title reads as a document title rather than
   an editorial headline. */
body[data-page-type="source"] .published-container .markdown-rendered h1,
body[data-page-type="source"] .published-container .markdown-preview-view h1 {
  font-family: var(--font-text-theme);
  font-weight: 500;
  font-size: 1.95rem;
  letter-spacing: -0.008em;
}

/* Synthesis pages inherit the 700 masthead weight (editorial gravity). */

/* Tension pages — italicized, signaling the unresolved register. */
body[data-page-type="tension"] .published-container .markdown-rendered h1,
body[data-page-type="tension"] .published-container .markdown-preview-view h1 {
  font-style: italic;
  font-weight: 500;
}

/* Dialectic phase pages — monospace prefix register. */
body[data-page-type="dialectic"] .published-container .markdown-rendered h1,
body[data-page-type="dialectic"] .published-container .markdown-preview-view h1 {
  font-family: var(--font-monospace-theme);
  font-weight: 500;
  font-size: 1.85rem;
  letter-spacing: -0.005em;
}

/* Landing-page H1 masthead is handled in §9 — it's the content H1,
   not Publish's .page-title. */


/* ====  30.5 · FRONT-PAGE COMPONENTS  =========================
   Markdown-embedded HTML on home.md (and reusable on hub pages).
   Three compositions, all in the monochrome ledger register:

   · .decision-board — "the outstanding record": dated rows of
     pending records and watch items, reading as a court calendar.
     Rows carry a mono date cell, the matter, and the record
     holder. .is-imminent rows get the filled marker and
     full-strength ink.
   · .site-grid / .site-card — the institution ledger: a
     1px-gapped grid whose gaps ARE the rule lines (the border
     color shows through), each cell an institution dossier card.
   · .stat-band — the record's load-bearing numbers as large
     tabular serif numerals over mono source lines.            */

/* — Decision board — */
.published-container .decision-board {
  margin: 1.6em 0 2.2em;
  border-top: 2px solid var(--ibw-rule-strong);
  border-bottom: 1px solid var(--ibw-rule-strong);
}

.published-container .decision-board .db-row {
  display: grid;
  grid-template-columns: 7.2rem 1fr auto;
  gap: 0 1.4rem;
  align-items: baseline;
  padding: 0.72em 0.2em;
  border-top: 1px solid var(--background-modifier-border);
  transition: background-color 90ms ease;
}
.published-container .decision-board .db-row:first-child { border-top: none; }
.published-container .decision-board .db-row:hover {
  background: var(--background-modifier-hover);
}

.published-container .decision-board .db-date {
  font-family: var(--font-monospace-theme);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  white-space: nowrap;
  display: inline-flex;
  align-items: baseline;
  gap: 0.55rem;
}
.published-container .decision-board .db-date::before {
  content: "";
  width: 6px;
  height: 6px;
  border: 1px solid var(--text-faint);
  flex: none;
  transform: translateY(-1px);
}

.published-container .decision-board .db-what {
  font-family: var(--font-text-theme);
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--text-normal);
}
.published-container .decision-board .db-what a { font-family: inherit; }

.published-container .decision-board .db-who {
  font-family: var(--font-interface-theme);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--text-faint);
  white-space: nowrap;
  text-align: right;
}

.published-container .decision-board .db-row.is-imminent .db-date {
  color: var(--text-normal);
  font-weight: 700;
}
.published-container .decision-board .db-row.is-imminent .db-date::before {
  background: var(--text-normal);
  border-color: var(--text-normal);
}

/* — Site ledger grid — */
.published-container .site-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--background-modifier-border);
  border: 1px solid var(--background-modifier-border);
  border-top: 2px solid var(--ibw-rule-strong);
  margin: 1.6em 0 2.2em;
}

.published-container .site-card {
  background: var(--background-primary);
  padding: 1.05rem 1.15rem 1.0rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-height: 9.2rem;
  transition: background-color 120ms ease;
}
.published-container .site-card:hover {
  background: var(--background-primary-alt);
}

.published-container .site-card .sc-locale {
  font-family: var(--font-monospace-theme);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-faint);
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
}

.published-container .site-card .sc-name {
  font-family: var(--font-display-theme);
  font-size: 1.12rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.008em;
  color: var(--text-normal);
  margin: 0;
}
.published-container .site-card .sc-name a {
  font-family: inherit;
  text-decoration: none;
}
.published-container .site-card .sc-name a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}

.published-container .site-card .sc-scale {
  font-family: var(--font-monospace-theme);
  font-size: 0.70rem;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}

.published-container .site-card .sc-status {
  font-family: var(--font-text-theme);
  font-size: 0.84rem;
  line-height: 1.5;
  color: var(--text-muted);
  margin-top: auto;
}

/* — Stat band — */
.published-container .stat-band {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 1.6rem;
  margin: 2.0em 0 2.4em;
  padding: 1.3rem 0 1.2rem;
  border-top: 2px solid var(--ibw-rule-strong);
  border-bottom: 1px solid var(--ibw-rule-strong);
}

.published-container .stat-band .stat { min-width: 0; }

.published-container .stat-band .st-num {
  font-family: var(--font-display-theme);
  font-size: 1.85rem;
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.015em;
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--text-normal);
  display: block;
  margin-bottom: 0.45rem;
}

.published-container .stat-band .st-label {
  font-family: var(--font-interface-theme);
  font-size: 0.70rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  display: block;
  line-height: 1.45;
}

.published-container .stat-band .st-src {
  font-family: var(--font-monospace-theme);
  font-size: 0.62rem;
  letter-spacing: 0.02em;
  color: var(--text-faint);
  display: block;
  margin-top: 0.30rem;
  line-height: 1.5;
}

/* — Front-page section kickers (small ruled labels between Home sections) — */
.published-container .front-kicker {
  font-family: var(--font-interface-theme);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-faint);
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 2.8em 0 0.9em;
}
.published-container .front-kicker::after {
  content: "";
  height: 1px;
  background: var(--background-modifier-border);
  flex: 1;
}


/* ====  31 · RESPONSIVE  ====================================== */
@media (max-width: 900px) {
  .heading-anchor { display: none; }
}

@media (max-width: 768px) {
  .published-container { --font-text-size: 16px; }

  .published-container .markdown-rendered h1,
  .published-container .markdown-preview-view h1 {
    font-size: 2.0rem;
  }
  .published-container:has(.page-hero-kicker) .markdown-rendered h1,
  .published-container:has(.page-hero-kicker) .markdown-preview-view h1,
  body[data-page-type="landing"] .published-container .markdown-rendered h1,
  body[data-page-type="landing"] .published-container .markdown-preview-view h1 {
    font-size: 2.15rem;
  }
  body[data-page-type="source"] .published-container .markdown-rendered h1,
  body[data-page-type="source"] .published-container .markdown-preview-view h1 {
    font-size: 1.6rem;
  }
  body[data-page-type="dialectic"] .published-container .markdown-rendered h1,
  body[data-page-type="dialectic"] .published-container .markdown-preview-view h1 {
    font-size: 1.6rem;
  }

  .published-container .markdown-rendered h2,
  .published-container .markdown-preview-view h2 {
    font-size: 1.3rem;
    margin-top: 2em;
  }

  .published-container .markdown-rendered h3,
  .published-container .markdown-preview-view h3 {
    font-size: 1.08rem;
  }

  .published-container .markdown-rendered blockquote,
  .published-container .markdown-preview-view blockquote {
    font-size: 0.78rem;
    padding: 0.8em 1em;
  }

  .published-container .markdown-rendered table,
  .published-container .markdown-preview-view table {
    font-size: 0.82rem;
  }

  .published-container .foia-coversheet {
    grid-template-columns: 84px 1fr;
    font-size: 0.70rem;
  }

  .published-container .markdown-rendered dl,
  .published-container .markdown-preview-view dl {
    grid-template-columns: 1fr;
    row-gap: 0.4em;
  }
  .published-container .markdown-rendered dt,
  .published-container .markdown-preview-view dt {
    border-right: none;
    border-bottom: 1px solid var(--background-modifier-border);
    padding-bottom: 0.3em;
    padding-right: 0;
  }

  /* Front-page components stack on small screens */
  .published-container .site-grid { grid-template-columns: 1fr; }
  .published-container .site-card { min-height: 0; }
  .published-container .stat-band {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.3rem 1.2rem;
  }
  .published-container .stat-band .st-num { font-size: 1.55rem; }
  .published-container .decision-board .db-row {
    grid-template-columns: 5.4rem 1fr;
    gap: 0 0.9rem;
  }
  .published-container .decision-board .db-who {
    grid-column: 2;
    text-align: left;
    margin-top: 0.15rem;
  }
}


/* ====  32 · PRINT  =========================================== */
@media print {
  .site-body-left-column,
  .site-body-right-column,
  .mod-header,
  .scroll-progress,
  .heading-anchor,
  .backlinks {
    display: none !important;
  }

  .markdown-preview-sizer { max-width: 100%; }

  .published-container .markdown-rendered,
  .published-container .markdown-preview-view {
    color: #000;
  }

  .published-container .markdown-rendered blockquote,
  .published-container .markdown-preview-view blockquote {
    background: #f4f4f4;
    border-left: 2px solid #555;
    color: #000;
  }

  .callout,
  .foia-coversheet,
  table { break-inside: avoid; }

  .callout[data-callout="sealed"] {
    background: #000 !important;
    color: #fff !important;
  }

  .published-container .callout[data-callout="web-research-unresolved"] .callout-content::after,
  .published-container [data-redacted]::after {
    display: none;
  }

  a { color: #000; text-decoration: underline; }
  a.external-link::after {
    content: " (" attr(href) ")";
    font-family: var(--font-monospace-theme);
    font-size: 0.8em;
  }
}


/* ====  33 · ISRAEL BONDS CORPUS CALLOUTS  ====================
   The investigation register inherited from the pre-port theme.
   These callouts already appear across ~205 wiki pages; they
   recede under the monochrome discipline established above.
   Border-left treatment + Lucide icon glyph carry the type
   signal; no new colors. */

/* — [!evidence] — verbatim source document excerpts, the corpus's
     primary citation register. Monospace content. — */
.published-container .callout[data-callout="evidence"] {
  --callout-icon: lucide-file-text;
}
.published-container .callout[data-callout="evidence"] .callout-title {
  font-family: var(--font-interface-theme);
  font-weight: 600;
  font-size: 0.70rem;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}
.published-container .callout[data-callout="evidence"] .callout-content {
  font-family: var(--font-monospace-theme);
  font-size: 0.85rem;
  line-height: 1.66;
}

/* — [!finding] — investigative conclusions, in the editorial
     register. — */
.published-container .callout[data-callout="finding"] {
  --callout-icon: lucide-check-circle-2;
  border-left-width: 4px;
}
.published-container .callout[data-callout="finding"] .callout-title {
  font-family: var(--font-interface-theme);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
}
.published-container .callout[data-callout="finding"] .callout-content {
  font-family: var(--font-text-theme);
  font-size: 1rem;
  line-height: 1.62;
  font-weight: 500;
}

/* — [!gap] — missing evidence, follow-up FOIA targets.
     Dashed left border, no color shift. — */
.published-container .callout[data-callout="gap"] {
  --callout-icon: lucide-alert-triangle;
  border-left-style: dashed;
}
.published-container .callout[data-callout="gap"] .callout-title {
  font-family: var(--font-interface-theme);
  font-weight: 700;
  font-size: 0.70rem;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  font-style: italic;
}

/* — [!key-date] — timeline events. Monospace title for the date. — */
.published-container .callout[data-callout="key-date"] {
  --callout-icon: lucide-calendar;
}
.published-container .callout[data-callout="key-date"] .callout-title {
  font-family: var(--font-monospace-theme);
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: 0.03em;
}

/* — [!source-note] — source attribution metadata, faint register. — */
.published-container .callout[data-callout="source-note"] {
  --callout-icon: lucide-archive;
  border-left-width: 2px;
}
.published-container .callout[data-callout="source-note"] .callout-content {
  font-size: 0.92rem;
  color: var(--text-muted);
}

/* — [!agency] — agency-specific context blocks. — */
.published-container .callout[data-callout="agency"] {
  --callout-icon: lucide-building-2;
}
.published-container .callout[data-callout="agency"] .callout-title {
  font-family: var(--font-interface-theme);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}


/* ====  34 · HEGELION LAYER CALLOUTS  =========================
   New callouts for the Karpathy-Hegelion methodology. See
   methodology.md and AGENTS.md for the full schema. */

/* — [!tension] — surfaces a contested mechanism inline.
     Dashed border echoes the [!web-research-unresolved] register;
     the dialectical companion page lives at tensions/. — */
.published-container .callout[data-callout="tension"] {
  --callout-icon: lucide-git-pull-request-arrow;
  border-style: dashed;
  border-left-style: solid;
}
.published-container .callout[data-callout="tension"] .callout-title {
  font-family: var(--font-interface-theme);
  font-weight: 700;
  font-size: 0.70rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.published-container .callout[data-callout="tension"] .callout-title::after {
  content: " · UNRESOLVED";
  font-weight: 500;
  font-style: italic;
  color: var(--text-faint);
  margin-left: 0.5em;
  letter-spacing: 0.08em;
}

/* — [!dialectic-verdict] — the synthesis-phase verdict on a
     tension, lifted from the dialectics/D### Synthesis page.
     Mode-independent black ground with VERDICT stamp prefix
     (echoes the [!sealed] register but without the hatching). — */
.published-container .callout[data-callout="dialectic-verdict"] {
  --callout-color: 245, 245, 245;
  background: var(--ibw-redaction);
  color: var(--ibw-redact-ink);
  border: none;
  border-left: 3px solid var(--ibw-accent);
  font-family: var(--font-monospace-theme);
  position: relative;
  padding-right: 6.5em;
}
.published-container .callout[data-callout="dialectic-verdict"]::after {
  content: "VERDICT";
  position: absolute;
  top: 0.85em;
  right: 1em;
  font-family: var(--font-interface-theme);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.32em;
  color: rgba(245, 245, 245, 0.74);
  border: 1px solid rgba(245, 245, 245, 0.74);
  padding: 2px 6px 2px 8px;
  border-radius: var(--ibw-radius-sm);
  pointer-events: none;
}
.published-container .callout[data-callout="dialectic-verdict"] .callout-title {
  color: rgba(245, 245, 245, 0.92);
  font-family: var(--font-interface-theme);
  font-weight: 700;
  letter-spacing: 0.14em;
}
.published-container .callout[data-callout="dialectic-verdict"] .callout-content {
  color: var(--ibw-redact-ink);
  font-family: var(--font-monospace-theme);
  font-size: 0.86rem;
  line-height: 1.66;
}
.published-container .callout[data-callout="dialectic-verdict"] a {
  color: rgba(245, 245, 245, 0.92);
  text-decoration: underline;
  text-decoration-color: rgba(245, 245, 245, 0.42);
}
.published-container .callout[data-callout="dialectic-verdict"] a:hover {
  text-decoration-color: rgba(245, 245, 245, 0.92);
}
