/* =====================================================================
   BlaskAttacks feature template. Oct 2026.
   A newspaper investigation page: off-white paper, black ink, one
   burnt-orange accent. Loaded only on posts marked as features
   (post meta _blask_feature), in place of the theme's styles.
   ===================================================================== */

body.bf-page {
  --paper: #f3eee4;
  --paper-2: #ebe4d6;
  --paper-3: #e2d9c8;
  --ink: #161412;
  --ink-2: #463f37;
  --ink-3: #6b6258;
  --rule: rgba(22, 20, 18, .16);
  --rule-2: rgba(22, 20, 18, .32);
  --ember: #b23d16;          /* text-safe on paper, 5.1:1 */
  --ember-hi: #e0501f;       /* rules and fills only */
  --ember-wash: rgba(224, 80, 31, .12);
  --f-text: 'Newsreader', Georgia, 'Times New Roman', serif;
  --f-ui: 'Libre Franklin', 'Helvetica Neue', Arial, sans-serif;
  --ease: cubic-bezier(.16, 1, .3, 1);
  --read: 38rem;
  --note: 15rem;
  --wide: 74rem;
  --adminbar: 0px;
  margin: 0;
  padding: 0 !important;
  background: var(--paper);
  color: var(--ink);
  font: 400 1.1875rem/1.62 var(--f-text);
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.bf-page.admin-bar { --adminbar: 46px; }
@media (min-width: 783px) { body.bf-page.admin-bar { --adminbar: 32px; } }

/* Plugin and theme leftovers that print into wp_body_open or the footer */
body.bf-page .cp-sw-status-bar,
body.bf-page > .side-nav,
body.bf-page > .side-nav-overlay,
body.bf-page > #inspiro-back-to-top { display: none !important; }

body.bf-page *, body.bf-page *::before, body.bf-page *::after { box-sizing: border-box; }
:where(body.bf-page) :where(h1, h2, h3, h4, p, ol, ul, dl, dd, figure) { margin: 0; }
:where(body.bf-page) :where(ol, ul) { padding: 0; list-style: none; }
:where(body.bf-page) img { max-width: 100%; height: auto; display: block; }
:where(body.bf-page) :where(button) { font: inherit; color: inherit; }

body.bf-page ::selection { background: rgba(224, 80, 31, .24); color: var(--ink); }
body.bf-page :focus-visible { outline: 2px solid var(--ember); outline-offset: 3px; border-radius: 2px; }
body.bf-page { scrollbar-color: var(--rule-2) var(--paper-2); }
html:has(body.bf-page) { scroll-padding-top: calc(var(--adminbar) + 64px); background: var(--paper); }

body.bf-page a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--ember-hi); text-decoration-thickness: 1px; text-underline-offset: .18em; transition: color .15s, text-decoration-thickness .15s; }
body.bf-page a:hover { color: var(--ember); text-decoration-thickness: 2px; }

.bf-vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ---------------------------------------------------------------- masthead */
.bf-skip { position: fixed; left: 12px; top: calc(var(--adminbar) + 8px); z-index: 100; padding: 10px 14px; background: var(--ink); color: var(--paper) !important; font: 600 .85rem/1 var(--f-ui); text-decoration: none !important; transform: translateY(calc(-100% - 40px)); transition: transform .2s var(--ease); }
.bf-skip:focus { transform: none; }

.bf-mast { border-bottom: 1px solid var(--rule-2); }
.bf-mast-in { max-width: var(--wide); margin: 0 auto; padding: 14px 16px; display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.bf-mast-name { font: 800 1rem/1 var(--f-ui); letter-spacing: .14em; text-transform: uppercase; text-decoration: none !important; color: var(--ink) !important; }
.bf-mast-nav { display: flex; gap: 20px; font: 500 .82rem/1 var(--f-ui); }
.bf-mast-nav a { text-decoration: none; color: var(--ink-2); }
.bf-mast-nav a:hover { color: var(--ember); }

/* ---------------------------------------------------------------- frame */
.bf { max-width: var(--wide); margin: 0 auto; padding: 0 16px 64px; }
.bf-hero, .bf-ch > *:not(.bf-module):not(.bf-records):not(.bf-mg-wrap) { max-width: calc(var(--read) + var(--note) + 3rem); }
.bf-hero, .bf-ch > * { margin-left: 0; margin-right: auto; }

/* ---------------------------------------------------------------- hero */
.bf-hero { padding: 56px 0 8px; }
.bf-title { font: 800 clamp(2.9rem, 9vw, 6rem)/.94 var(--f-text); letter-spacing: -.035em; font-variation-settings: 'opsz' 72; text-wrap: balance; max-width: 13ch; }
.bf-dek { margin-top: 20px; padding-bottom: 22px; border-bottom: 6px solid var(--ember-hi); font: 400 italic clamp(1.25rem, 2.6vw, 1.6rem)/1.3 var(--f-text); color: var(--ink-2); max-width: 34ch; }
.bf-byline { margin-top: 16px; font: 500 .82rem/1.5 var(--f-ui); color: var(--ink-3); }
.bf-byline time { color: var(--ink); }

.bf-notes { margin-top: 10px; font: 400 .9rem/1.5 var(--f-ui); color: var(--ink-2); max-width: 46rem; }
.bf-notes > summary { cursor: pointer; font-weight: 600; color: var(--ink); list-style: none; display: inline-flex; align-items: center; gap: 8px; min-height: 32px; }
.bf-notes > summary::-webkit-details-marker { display: none; }
.bf-notes-body { padding: 12px 0 4px 14px; border-left: 1px solid var(--rule-2); display: grid; gap: 8px; }

.bf-lede { margin-top: 36px; }
.bf-p--lead p { font-size: 1.42rem; line-height: 1.5; }
.bf-p--lead p::first-letter { float: left; font: 800 4.1em/.82 var(--f-text); margin: .06em .08em 0 0; color: var(--ink); }

/* summary icons: a drawn chevron, not a glyph */
.bf-notes > summary::before,
.bf-drawer > summary::before,
.bf-rec > summary::before {
  content: ""; flex: none; width: 9px; height: 9px; margin-top: -2px;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg); transition: transform .2s var(--ease);
}
.bf-notes[open] > summary::before,
.bf-drawer[open] > summary::before,
.bf-rec[open] > summary::before { transform: rotate(45deg); }

/* what the records show */
.bf-pieces { margin: 40px 0 0; border-top: 2px solid var(--ink); padding-top: 12px; }
.bf-pieces-h { font: 700 .78rem/1.2 var(--f-ui); letter-spacing: .12em; text-transform: uppercase; }
.bf-pieces-list { margin-top: 6px; counter-reset: piece; }
.bf-pieces-list > li { padding: 14px 0; border-bottom: 1px solid var(--rule); display: grid; gap: 6px; }
.bf-pieces-list > li > p:first-child { font-size: 1.12rem; line-height: 1.45; }
.bf-pieces-src { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.bf-jump { font: 600 .78rem/1.3 var(--f-ui); color: var(--ember) !important; text-decoration: none !important; display: inline-flex; align-items: center; gap: 6px; }
.bf-jump::after { content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); transition: transform .2s var(--ease); }
.bf-jump:hover::after { transform: translateX(3px) rotate(-45deg); }
@media (min-width: 900px) {
  .bf-pieces-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .bf-pieces-list > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* ---------------------------------------------------------------- chapter nav */
.bf-toc { position: sticky; top: var(--adminbar); z-index: 20; margin: 48px -16px 0; background: var(--paper); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule-2); }
.bf-toc ul { display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; max-width: var(--wide); margin: 0 auto; padding: 0 6px; }
.bf-toc ul::-webkit-scrollbar { display: none; }
.bf-toc a { display: block; padding: 15px 10px 13px; white-space: nowrap; font: 600 .74rem/1 var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); text-decoration: none; border-bottom: 3px solid transparent; transition: color .15s, border-color .2s; }
.bf-toc a:hover { color: var(--ink); }
.bf-toc a[aria-current="true"] { color: var(--ink); border-bottom-color: var(--ember-hi); }

/* ---------------------------------------------------------------- chapters and prose */
.bf-ch { padding-top: 24px; }
.bf-h2 { margin-top: 64px; padding-top: 14px; border-top: 2px solid var(--ink); font: 700 clamp(2.1rem, 5vw, 3.4rem)/1.02 var(--f-text); letter-spacing: -.025em; text-wrap: balance; font-variation-settings: 'opsz' 60; }
.bf-h2 + * { margin-top: 28px; }
.bf-h3 { margin-top: 52px; margin-bottom: 14px; font: 700 1.55rem/1.15 var(--f-text); letter-spacing: -.012em; text-wrap: balance; max-width: var(--read); }
.bf-h4 { font: 700 .74rem/1.2 var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.bf-small { font: 400 .9rem/1.5 var(--f-ui); color: var(--ink-2); }
.bf-label { font: 700 .7rem/1.2 var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }

.bf-p { margin-top: 18px; }
.bf-p p { max-width: var(--read); text-wrap: pretty; }
.bf-note { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px 12px; max-width: var(--read); }
@media (min-width: 1100px) {
  .bf-p { display: grid; grid-template-columns: minmax(0, var(--read)) var(--note); column-gap: 3rem; align-items: start; }
  .bf-note { margin-top: 5px; flex-direction: column; gap: 8px; padding-left: 14px; border-left: 1px solid var(--rule); }
}

/* source references, with their kind in front */
.bf-src { font: 400 .8rem/1.4 var(--f-ui); color: var(--ink-2); display: inline-flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.bf-src-a { color: var(--ink-2) !important; text-decoration-color: var(--rule-2) !important; }
a.bf-src-a:hover { color: var(--ember) !important; text-decoration-color: var(--ember-hi) !important; }
.bf-kind { flex: none; font: 700 .62rem/1 var(--f-ui); letter-spacing: .09em; text-transform: uppercase; padding: 3px 5px 2px; border: 1px solid var(--ink-2); border-radius: 2px; color: var(--ink); }
.bf-kind--statement { border-style: dashed; color: var(--ink-2); }
.bf-kind--reporting { border-color: transparent; background: var(--paper-3); color: var(--ink-2); }
.bf-kind--analysis { border-color: var(--ember); color: var(--ember); }
.bf-srcs { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px 14px; }

.bf-p--analysis p { padding-left: 14px; border-left: 1px solid var(--ember-hi); font-style: italic; }

/* ---------------------------------------------------------------- shared module bits */
.bf-module { margin-top: 32px; margin-bottom: 8px; }
.bf-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 20px; }
.bf-btn { appearance: none; cursor: pointer; min-height: 38px; padding: 8px 13px; border: 1px solid var(--ink); border-radius: 3px; background: transparent; font: 600 .8rem/1.1 var(--f-ui); color: var(--ink); transition: background-color .15s, color .15s, transform .15s var(--ease); }
.bf-btn:hover { background: var(--paper-2); }
.bf-btn:active { transform: translateY(1px); }
.bf-btn[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.bf-btn--quiet { border-color: var(--rule-2); min-height: 32px; padding: 6px 10px; font-size: .74rem; }
.bf-btn--quiet[aria-expanded="true"] { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.bf-count { font: 500 .78rem/1 var(--f-ui); color: var(--ink-3); margin-left: 4px; }

.bf-drawer { margin-top: 10px; }
.bf-drawer > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 9px; min-height: 34px; font: 600 .8rem/1.2 var(--f-ui); color: var(--ink); }
.bf-drawer > summary::-webkit-details-marker { display: none; }
.bf-drawer > summary:hover { color: var(--ember); }
.bf-dl { display: grid; gap: 10px; padding: 10px 0 6px; }
.bf-dl dt { font: 700 .68rem/1.2 var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.bf-dl dd { font-size: 1rem; line-height: 1.5; }
.bf-dd-src { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 4px; }

.bf-flash { animation: bf-flash 1.6s var(--ease); }
@keyframes bf-flash { from { background-color: var(--ember-wash); } to { background-color: transparent; } }

/* ---------------------------------------------------------------- timeline */
.bf-tl-year { position: relative; display: grid; grid-template-columns: 4.2rem minmax(0, 1fr); column-gap: 18px; border-top: 1px solid var(--ink); }
.bf-tl-y { position: sticky; top: calc(var(--adminbar) + 56px); align-self: start; padding-top: 12px; font: 700 1.35rem/1 var(--f-text); font-variant-numeric: lining-nums; }
.bf-tl-events { min-width: 0; }
.bf-tl-empty { grid-column: 2; padding: 14px 0; font: italic 400 .95rem/1.4 var(--f-text); color: var(--ink-3); }
.bf-ev { padding: 14px 0 16px; border-bottom: 1px solid var(--rule); }
.bf-tl-events > .bf-ev:last-child { border-bottom: 0; }
.bf-ev-when { display: flex; align-items: baseline; gap: 10px; font: 600 .76rem/1.2 var(--f-ui); }
.bf-ev-when time { color: var(--ink); letter-spacing: .02em; }
.bf-ev-cat { font-weight: 500; letter-spacing: .08em; text-transform: uppercase; font-size: .66rem; color: var(--ink-3); }
.bf-ev--money .bf-ev-cat, .bf-ev--money time { color: var(--ember); }
.bf-ev-text { margin-top: 5px; font-size: 1.06rem; line-height: 1.45; max-width: 44rem; }
.bf-ev-src { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 6px 14px; }
@media (min-width: 900px) {
  .bf-tl-year { grid-template-columns: 7rem minmax(0, 1fr); }
  .bf-tl-y { font-size: 1.9rem; }
  .bf-tl-events { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .bf-tl-events > .bf-ev:last-child { border-bottom: 1px solid var(--rule); }
}

/* ---------------------------------------------------------------- people */
.bf-people { display: grid; gap: 0; border-top: 1px solid var(--ink); }
.bf-person { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--rule); }
.bf-portrait { width: 76px; }
.bf-portrait img { width: 76px; height: 95px; object-fit: cover; object-position: 50% 20%; filter: grayscale(1) contrast(1.05); border: 1px solid var(--rule-2); }
.bf-portrait figcaption { margin-top: 4px; font: 400 .6rem/1.25 var(--f-ui); color: var(--ink-3); }
.bf-portrait--none { height: 95px; display: grid; place-items: center; border: 1px solid var(--rule-2); background: var(--paper-2); }
.bf-portrait--none span { font: 700 1.5rem/1 var(--f-text); color: var(--ink-3); letter-spacing: .02em; }
.bf-person-name { font: 700 1.35rem/1.15 var(--f-text); letter-spacing: -.01em; }
.bf-person-role { margin-top: 3px; font: 500 .8rem/1.35 var(--f-ui); color: var(--ink-3); }
.bf-person-intro { margin-top: 8px; font-size: 1.04rem; line-height: 1.5; }
@media (min-width: 900px) {
  .bf-people { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .bf-person { grid-template-columns: 96px minmax(0, 1fr); gap: 20px; }
  .bf-portrait, .bf-portrait img { width: 96px; }
  .bf-portrait img, .bf-portrait--none { height: 120px; }
}
.bf-orgs { margin-top: 40px; }
.bf-orgs-list { border-top: 1px solid var(--ink); }
.bf-org { padding: 16px 0; border-bottom: 1px solid var(--rule); }
.bf-org-name { font: 700 1.2rem/1.2 var(--f-text); }
@media (min-width: 900px) { .bf-orgs-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; } }

/* ---------------------------------------------------------------- photos and documents */
.bf-photo, .bf-doc { margin: 28px 0 8px; max-width: calc(var(--read) + 6rem); }
.bf-photo img { border: 1px solid var(--rule-2); }
.bf-photo figcaption, .bf-doc figcaption { margin-top: 8px; font: 400 .82rem/1.45 var(--f-ui); color: var(--ink-2); display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline; }
.bf-doc-frame { position: relative; border: 1px solid var(--ink); background: #fff; padding: 0; overflow: hidden; }
.bf-doc-frame img { width: 100%; }
.bf-mark { position: absolute; border: 2.5px solid var(--ember-hi); box-shadow: 0 0 0 9999px rgba(243, 238, 228, .38); border-radius: 2px; pointer-events: none; }
.bf-doc-frame .bf-mark + .bf-mark { box-shadow: none; }

/* ---------------------------------------------------------------- money */
.bf-mg-wrap { overflow-x: auto; border-top: 2px solid var(--ink); }
.bf-mg { width: 100%; min-width: 720px; table-layout: fixed; border-collapse: collapse; font-family: var(--f-ui); }
.bf-mg thead th:first-child { width: 10.5rem; }
.bf-mg caption, .bf-ledger caption { caption-side: top; text-align: left; padding: 10px 0 14px; font: 400 .88rem/1.45 var(--f-ui); color: var(--ink-2); }
.bf-mg thead th { position: sticky; top: 0; padding: 8px 10px; text-align: left; font: 700 1.5rem/1 var(--f-text); font-variant-numeric: lining-nums; border-bottom: 1px solid var(--ink); background: var(--paper); }
.bf-mg tbody th { width: 9.5rem; padding: 12px 10px 12px 0; text-align: left; vertical-align: top; font: 700 .7rem/1.3 var(--f-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); position: sticky; left: 0; background: var(--paper); }
.bf-mg td { padding: 8px 10px; vertical-align: top; border-left: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.bf-mg-lane--events td, .bf-mg-lane--events th { background: var(--paper-2); }
.bf-mg-item { display: block; padding: 6px 0; text-decoration: none !important; }
.bf-mg-item + .bf-mg-item { border-top: 1px dotted var(--rule-2); }
.bf-mg-when { display: block; font: 600 .7rem/1.2 var(--f-ui); letter-spacing: .04em; color: var(--ink-3); }
.bf-mg-what { display: block; margin-top: 2px; font: 600 .95rem/1.3 var(--f-text); font-variant-numeric: lining-nums tabular-nums; color: var(--ink); }
a.bf-mg-item .bf-mg-what { text-decoration: underline; text-decoration-color: var(--ember-hi); text-underline-offset: .18em; }
a.bf-mg-item:hover .bf-mg-what { color: var(--ember); }
.bf-mg-item--event .bf-mg-what { font-weight: 400; font-style: italic; color: var(--ink-2); }
.bf-mg-lede { margin-top: 28px; margin-bottom: 10px; }
.bf-mg-lede + .bf-mg-wrap { margin-top: 0; }
@media (max-width: 699px) {
  .bf-mg { min-width: 600px; }
  .bf-mg thead th:first-child { width: 6.2rem; }
  .bf-mg tbody th { font-size: .6rem; padding-right: 8px; }
  .bf-mg thead th { font-size: 1.2rem; }
  .bf-mg-what { font-size: .86rem; }
}

.bf-ledger { width: 100%; border-collapse: collapse; border-top: 2px solid var(--ink); font-family: var(--f-ui); font-size: .9rem; }
.bf-ledger thead th { padding: 8px 10px 8px 0; text-align: left; font: 700 .68rem/1.2 var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); border-bottom: 1px solid var(--ink); }
.bf-ledger .bf-num { text-align: right; }
.bf-lg-head th { padding: 20px 0 8px; text-align: left; border-bottom: 1px solid var(--rule-2); }
.bf-lg-name { font: 700 1.15rem/1.2 var(--f-text); color: var(--ink); }
.bf-lg-note { display: block; margin-top: 3px; font: 400 .82rem/1.4 var(--f-ui); color: var(--ink-2); }
.bf-lrow td { padding: 12px 10px 12px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.bf-lrow td.bf-num { font: 700 1.12rem/1.2 var(--f-text); font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
.bf-lrow-act { width: 1%; text-align: right; }
.bf-ldrawer td { padding: 4px 0 16px; border-bottom: 1px solid var(--rule); }
.bf-ldrawer p { max-width: 44rem; font: 400 1rem/1.55 var(--f-text); }
.bf-ldrawer[hidden] { display: none; }
@media (max-width: 699px) {
  .bf-filters { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: -16px; padding: 2px 16px; }
  .bf-filters::-webkit-scrollbar { display: none; }
  .bf-filters .bf-btn { flex: none; }
  .bf-count { flex: none; }
  .bf-ledger caption { display: block; }
  .bf-ledger thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .bf-ledger, .bf-ledger tbody, .bf-ledger tr, .bf-ledger td, .bf-ledger th { display: block; }
  .bf-lrow { display: grid !important; grid-template-columns: 1fr auto; padding: 10px 0; border-bottom: 1px solid var(--rule); }
  .bf-lrow td { border: 0; padding: 2px 0; }
  .bf-lrow td[data-label]::before { content: attr(data-label); display: block; font: 700 .62rem/1.3 var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
  .bf-lrow td.bf-num { text-align: left; }
  .bf-lrow-act { grid-column: 1 / -1; text-align: left !important; width: auto !important; padding-top: 6px !important; }
  .bf-ldrawer:not([hidden]) { display: block; }
}

/* ---------------------------------------------------------------- relationship diagram */
.bf-net { border-top: 2px solid var(--ink); padding-top: 12px; }
.bf-net-key { display: flex; flex-wrap: wrap; gap: 8px 24px; font: 400 .82rem/1.4 var(--f-ui); color: var(--ink-2); }
.bf-net-key li { display: inline-flex; align-items: center; gap: 8px; }
.bf-key-solid, .bf-key-dashed { stroke: var(--ink); stroke-width: 1.5; }
.bf-key-dashed { stroke-dasharray: 5 4; }
.bf-net-svg { width: 100%; height: auto; margin-top: 10px; font-family: var(--f-ui); overflow: visible; }
.bf-net-cap { font: 700 11px var(--f-ui); letter-spacing: .1em; text-transform: uppercase; fill: var(--ink-3); }
.bf-net-divider { stroke: var(--rule-2); stroke-width: 1; stroke-dasharray: 2 5; }
.bf-node rect { fill: var(--paper); stroke: var(--ink); stroke-width: 1; }
.bf-node text { font: 500 14px var(--f-ui); fill: var(--ink); text-anchor: middle; }
.bf-node--person rect { stroke-width: 1.75; }
.bf-node--person text { font-weight: 700; }
.bf-edge { cursor: pointer; text-decoration: none !important; }
.bf-edge-hit { stroke: transparent; stroke-width: 16; }
.bf-edge-line { stroke: var(--ink-2); stroke-width: 1.4; transition: stroke .15s, stroke-width .15s; }
.bf-edge--dashed .bf-edge-line { stroke-dasharray: 6 5; }
.bf-edge-bg { fill: var(--paper); stroke: var(--rule-2); stroke-width: 1; transition: fill .15s, stroke .15s; }
.bf-edge-text { font: 600 12px var(--f-ui); fill: var(--ink-2); text-anchor: middle; transition: fill .15s; }
.bf-edge.is-hover .bf-edge-line, .bf-edge.is-on .bf-edge-line, .bf-edge:hover .bf-edge-line { stroke: var(--ember-hi); stroke-width: 2.6; }
.bf-edge.is-hover .bf-edge-text, .bf-edge.is-on .bf-edge-text, .bf-edge:hover .bf-edge-text { fill: var(--ember); }
.bf-edge.is-hover .bf-edge-bg, .bf-edge.is-on .bf-edge-bg, .bf-edge:hover .bf-edge-bg { stroke: var(--ember-hi); }
.bf-edge.is-on .bf-edge-bg { fill: #fbf3ec; }
.bf-edge-lab:focus-visible .bf-edge-bg { stroke: var(--ember); stroke-width: 2; }
.bf-edge:focus-visible { outline: none; }
.bf-net figcaption { margin-top: 8px; font: 400 .85rem/1.45 var(--f-ui); color: var(--ink-2); }
@media (max-width: 699px) { .bf-net-svg, .bf-net-key { display: none; } }

.bf-records { margin-top: 18px; border-top: 1px solid var(--rule-2); }
.bf-records > li { border-bottom: 1px solid var(--rule); break-inside: avoid; }
.bf-rec > summary { cursor: pointer; list-style: none; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; padding: 11px 0; font: 400 .92rem/1.35 var(--f-ui); }
.bf-rec > summary::-webkit-details-marker { display: none; }
.bf-rec > summary::before { align-self: center; margin-right: 2px; }
.bf-rec-a, .bf-rec-b { font-weight: 700; }
.bf-rec-rel { font: 600 .7rem/1.2 var(--f-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--ember); padding: 3px 6px 2px; border: 1px solid var(--ember); border-radius: 2px; }
.bf-rec-rel--dashed { border-style: dashed; }
.bf-rec > p { padding: 0 0 4px 20px; max-width: 44rem; font-size: 1rem; line-height: 1.5; }
.bf-rec > .bf-srcs { padding-bottom: 14px; }
.bf-rec:target > summary, .bf-rec[open] > summary { color: var(--ink); }
@media (min-width: 900px) { .bf-records { columns: 2; column-gap: 40px; } }

.bf-positions { margin-top: 36px; padding-top: 14px; border-top: 1px solid var(--ink); }
.bf-positions .bf-small { margin-top: 6px; max-width: 44rem; }
.bf-pos-list { margin-top: 14px; display: grid; gap: 0; }
.bf-pos-list > li { padding: 12px 0; border-bottom: 1px solid var(--rule); }
.bf-pos-who { font: 700 .74rem/1.3 var(--f-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-2); }
.bf-pos-what { margin-top: 4px; font: 600 1.12rem/1.35 var(--f-text); }
@media (min-width: 700px) { .bf-pos-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; } }
@media (min-width: 1000px) { .bf-pos-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------------------------------------------------------------- rules */
.bf-rules-cols { display: grid; gap: 0; border-top: 2px solid var(--ink); }
.bf-rule-col { padding: 18px 0 22px; border-bottom: 1px solid var(--rule-2); transition: opacity .25s var(--ease); }
.bf-rule-name { font: 700 1.6rem/1.1 var(--f-text); letter-spacing: -.015em; }
.bf-rule-sub { margin-top: 4px; font: italic 400 1rem/1.4 var(--f-text); color: var(--ink-2); }
.bf-rule-col .bf-h4 { margin-top: 20px; padding-top: 10px; border-top: 1px solid var(--rule); }
.bf-rule-list { margin-top: 10px; display: grid; gap: 10px; }
.bf-rule-list li { position: relative; padding-left: 16px; font-size: 1.02rem; line-height: 1.5; }
.bf-rule-list li::before { content: ""; position: absolute; left: 0; top: .68em; width: 7px; height: 1.5px; background: var(--ember-hi); }
.bf-rule-others { margin-top: 10px; display: grid; gap: 10px; }
.bf-rule-others li { font: 400 .95rem/1.45 var(--f-text); }
.bf-rule-others li .bf-src { margin-left: 4px; }
@media (min-width: 900px) {
  .bf-rules-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bf-rule-col { padding: 18px 24px 24px; border-bottom: 0; border-left: 1px solid var(--rule-2); }
  .bf-rule-col:first-child { padding-left: 0; border-left: 0; }
  .bf-rule-col:last-child { padding-right: 0; }
}
.bf-rules[data-active="botanical"] .bf-rule-col:not([data-col="botanical"]),
.bf-rules[data-active="concentrate"] .bf-rule-col:not([data-col="concentrate"]),
.bf-rules[data-active="approved"] .bf-rule-col:not([data-col="approved"]) { opacity: .32; }
.bf-rules:not([data-active="all"]) .bf-rule-col { box-shadow: inset 0 3px 0 transparent; }
.bf-rules[data-active="botanical"] [data-col="botanical"],
.bf-rules[data-active="concentrate"] [data-col="concentrate"],
.bf-rules[data-active="approved"] [data-col="approved"] { box-shadow: inset 0 4px 0 var(--ember-hi); }
@media (max-width: 899px) {
  .bf-rules:not([data-active="all"]) .bf-rule-col:not([data-col]) { display: none; }
  .bf-rules[data-active="botanical"] .bf-rule-col:not([data-col="botanical"]),
  .bf-rules[data-active="concentrate"] .bf-rule-col:not([data-col="concentrate"]),
  .bf-rules[data-active="approved"] .bf-rule-col:not([data-col="approved"]) { display: none; }
}

/* ---------------------------------------------------------------- chemistry */
.bf-chem { display: grid; gap: 36px; }
.bf-chem-note { max-width: 44rem; margin-bottom: 16px; }
.bf-pat { border-top: 2px solid var(--ink); }
.bf-pat-item { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; padding: 14px 0; border-bottom: 1px solid var(--rule); }
.bf-pat-type { font: 700 .64rem/1.2 var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.bf-pat-type--granted { color: var(--ink); }
.bf-pat-type--program { color: var(--ember); }
.bf-pat-owner { font: 700 1.15rem/1.25 var(--f-text); }
.bf-pat-subj { font-size: 1rem; line-height: 1.4; color: var(--ink-2); }
.bf-pat-meta { margin-top: 3px; font: 500 .8rem/1.4 var(--f-ui); color: var(--ink-3); display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; }
@media (min-width: 700px) {
  .bf-pat-item { grid-template-columns: 8.5rem minmax(0, 1fr); column-gap: 18px; }
  .bf-pat-type { grid-row: 1 / 4; padding-top: 4px; }
}
.bf-trail-wrap { border-top: 2px solid var(--ink); padding-top: 12px; }
.bf-trail { margin-top: 12px; position: relative; }
.bf-trail li { position: relative; padding: 0 0 18px 22px; }
.bf-trail li::before { content: ""; position: absolute; left: 3px; top: 6px; bottom: -6px; width: 1px; background: var(--rule-2); }
.bf-trail li::after { content: ""; position: absolute; left: 0; top: 5px; width: 7px; height: 7px; background: var(--paper); border: 1.5px solid var(--ink); border-radius: 50%; }
.bf-trail li:last-child::before { display: none; }
.bf-trail li:last-child::after { border-color: var(--ember-hi); border-style: dashed; }
.bf-trail-when { font: 700 .74rem/1.2 var(--f-ui); letter-spacing: .04em; color: var(--ink); }
.bf-trail li > p:nth-child(2) { margin-top: 3px; font-size: 1rem; line-height: 1.45; }
.bf-trail .bf-srcs { margin-top: 4px; }
@media (min-width: 1000px) { .bf-chem { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 48px; align-items: start; } .bf-trail-wrap { position: sticky; top: calc(var(--adminbar) + 70px); } }

/* ---------------------------------------------------------------- broader ban */
.bf-ban { border-top: 2px solid var(--ink); }
.bf-ban-row { display: grid; gap: 10px; padding: 20px 0; border-bottom: 1px solid var(--rule); }
.bf-ban-name { font: 700 1.3rem/1.2 var(--f-text); }
.bf-ban-who > p:last-child { margin-top: 6px; font-size: 1rem; line-height: 1.45; }
.bf-ban-text { margin-top: 4px; font: 600 1.15rem/1.35 var(--f-text); }
.bf-ban-more { grid-column: 1 / -1; margin-top: 0; }
@media (min-width: 900px) { .bf-ban-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); column-gap: 40px; } }

/* ---------------------------------------------------------------- unanswered */
.bf-open { border-top: 2px solid var(--ink); }
.bf-open > li { padding: 16px 0; border-bottom: 1px solid var(--rule); display: grid; gap: 6px; }
.bf-open-q { font: 700 1.25rem/1.3 var(--f-text); text-wrap: balance; }
.bf-open-have { font: 400 .9rem/1.45 var(--f-ui); color: var(--ink-2); display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; }
@media (min-width: 900px) { .bf-open { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; } }

/* ---------------------------------------------------------------- position and sign-off */
.bf-position .bf-p p { font-size: 1.32rem; line-height: 1.5; }
.bf-position .bf-p:first-child p { font-weight: 600; }
.bf-sign { margin-top: 24px; }
.bf-sign .bf-p p { font-style: italic; }
.bf-sign .bf-p + .bf-p { margin-top: 4px; }

/* ---------------------------------------------------------------- plugin output after the article
   The share buttons (WPZOOM) and view counter append themselves to the content.
   Their inline styles make colored pills; here they become squared ink buttons. */
body.bf-page #bf-main > :not(.bf) { max-width: var(--wide); margin: 0 auto; padding: 0 16px; }
body.bf-page .wpzoom-social-sharing-buttons-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding-top: 18px; padding-bottom: 18px; }
body.bf-page .wpzoom-social-sharing-buttons-bottom::before { content: "Share"; font: 700 .72rem/1 var(--f-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
body.bf-page .wp-block-wpzoom-blocks-social-sharing { margin: 0 !important; }
body.bf-page .social-sharing-icons { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 !important; padding: 0 !important; list-style: none; }
body.bf-page .social-sharing-icon-li { margin: 0 !important; }
body.bf-page a.social-sharing-icon { display: inline-flex !important; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 0 10px !important; margin: 0 !important; border: 1px solid var(--ink) !important; border-radius: 3px !important; background: transparent !important; color: var(--ink) !important; text-decoration: none !important; transition: background-color .15s, color .15s; }
body.bf-page a.social-sharing-icon svg { width: 17px !important; height: 17px !important; fill: currentColor !important; }
body.bf-page a.social-sharing-icon:hover { background: var(--ink) !important; color: var(--paper) !important; }
body.bf-page #bf-main > .post-views { padding-bottom: 28px; font: 500 .78rem/1.4 var(--f-ui); color: var(--ink-3); }
body.bf-page .post-views .dashicons { display: none; }
@media (min-width: 700px) { body.bf-page #bf-main > :not(.bf) { padding-inline: 32px; } }
@media print { body.bf-page .wpzoom-social-sharing-buttons-bottom { display: none !important; } }

/* ---------------------------------------------------------------- footer */
.bf-foot { border-top: 1px solid var(--ink); }
.bf-foot-in { max-width: var(--wide); margin: 0 auto; padding: 20px 16px 40px; display: flex; flex-wrap: wrap; gap: 10px 24px; justify-content: space-between; font: 500 .82rem/1.4 var(--f-ui); color: var(--ink-3); }
.bf-foot a { color: var(--ink-2); }

@media (min-width: 700px) {
  .bf { padding: 0 32px 80px; }
  .bf-toc { margin-inline: -32px; }
  .bf-mast-in, .bf-foot-in { padding-inline: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  body.bf-page *, body.bf-page *::before, body.bf-page *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------------------------------------------------------------- print */
@media print {
  body.bf-page { background: #fff; font-size: 11pt; }
  .bf-mast-nav, .bf-toc, .bf-filters, .bf-expand, .bf-net-svg, .bf-net-key, .bf-skip, .bf-jump { display: none !important; }
  .bf-ldrawer, .bf-ev, .bf-pat-item, .bf-tl-year { display: revert !important; }
  .bf-ldrawer[hidden] { display: table-row !important; }
  .bf-ev[hidden], .bf-pat-item[hidden] { display: block !important; }
  .bf-rule-col { opacity: 1 !important; display: block !important; }
  .bf-toc, .bf-tl-y, .bf-mg thead th, .bf-mg tbody th, .bf-trail-wrap { position: static !important; }
  .bf-mg-wrap { overflow: visible; }
  .bf-mg { min-width: 0; }
  a.bf-src-a::after { content: " <" attr(href) ">"; font-size: .85em; word-break: break-all; }
  .bf-h2 { break-before: page; }
  .bf-person, .bf-ban-row, .bf-rec, .bf-ev, figure { break-inside: avoid; }
}
