/* ============================================================
   Cane Laundering Pipeline — forensic infographic
   Pastel-paper / instrument-panel. Grid background removed;
   flat warm paper color only. Nerd Font icon glyphs throughout.
   ============================================================ */

@font-face {
  font-family: "NerdIcons";
  src: url("fonts/nerd-icons.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root{
  /* cv-chart token aliases so the ported network charts (name-change / genealogy)
     read the right colors on this site's palette */
  --color-text:var(--ink);--color-text-muted:var(--dim);--color-border:var(--line);--color-error:var(--accent-3);
  /* postcrime palette — cool off-white, pastel accents (soft hairline borders) */
  --bg:#fafafa; --panel:#ffffff; --panel-2:#f6f6f4;
  --ink:#1a1a1a; --dim:#6b6b6b; --faint:#9b9b96;
  --line:#e7e7e4; --line-2:#d0d0d0;
  --accent:#b3791a; --accent-2:#4a72b0; --accent-3:#8b6fbf;
  --fill:#1a1a1a; --fill-dim:#d8d8d4;
  /* chart pastels (from postcrime / gpumon spark spec) */
  --c-lilac:#bdbedc; --c-amber:#ffd54f; --c-sky:#6fa8d6; --c-rose:#d4686a; --c-mint:#a8e6cf; --c-coral:#ffb5a7;
  --c-vol:#8f90c4; --c-vol-soft:#a9aad6;  /* darker pastel for volume bars */
  --paper:var(--panel); --gray:#d8d8d4; --graylite:#ececec; --hatch:var(--accent);
  --mono:'JetBrains Mono', ui-monospace, Menlo, monospace;
  --disp:'Space Grotesk', system-ui, sans-serif;
  --sans:'Space Grotesk', system-ui, sans-serif;
}
[data-theme="dark"]{
  --bg:#0b0c0e; --panel:#131518; --panel-2:#0f1114;
  --ink:#e9e7df; --dim:#8c8e86; --faint:#5c5e58;
  --line:#262a2f; --line-2:#3a3e45;
  --accent:#e0a23a; --accent-2:#5fb4b4; --accent-3:#c486ad;
  --fill:#e9e7df; --fill-dim:#474a50; --gray:#474a50; --graylite:#191c20;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);line-height:1.5;font-weight:450;
  -webkit-font-smoothing:antialiased;
  /* guard against any element forcing horizontal scroll, which on mobile widens
     the layout viewport and makes fixed modals spill past the screen edge.
     overflow:clip (not hidden) so position:sticky/scroll-anchoring still work. */
  overflow-x:clip;
}
::selection{background:var(--accent);color:var(--bg)}
.wrap{max-width:1000px;margin:0 auto;padding:0 18px 90px}

/* nerd font glyphs */
.nf{font-family:"NerdIcons";font-style:normal;font-weight:normal;line-height:1;display:inline-block;speak:none;-webkit-font-smoothing:antialiased}

/* ---------- DISCLAIMER BAR ---------- */
.disclaimer-bar{display:flex;align-items:flex-start;gap:10px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));
  border-bottom:1px solid var(--accent);color:var(--ink);padding:9px 22px;
  font-family:var(--mono);font-size:11px;line-height:1.55;letter-spacing:.01em}
.disclaimer-bar .nf{color:var(--accent);font-size:14px;flex:none;margin-top:1px}
.disclaimer-bar b{font-weight:700}
.disclaimer-bar span{text-align:justify}
.dbar-build{display:block;margin-top:5px;color:var(--faint);font-size:10px;letter-spacing:.02em}
.disclaimer-bar .notice-link{color:var(--accent);font-weight:700;text-decoration:none;cursor:pointer}
.disclaimer-bar .notice-link:hover{text-decoration:underline}
.notice-dialog{max-width:640px;width:calc(100% - 48px);border:1px solid var(--accent);border-radius:6px;padding:0;
  background:var(--panel);color:var(--ink);font-family:var(--mono);box-shadow:0 18px 50px rgba(0,0,0,.45)}
.notice-dialog::backdrop{background:rgba(0,0,0,.55)}
.notice-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;
  border-bottom:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}
.notice-htitle{font-size:12px;font-weight:700;letter-spacing:.02em}
.notice-htitle .nf{color:var(--accent);margin-right:6px}
/* square close button — equal w/h so the hover/tap/focus highlight is a clean square */
.notice-close{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;
  font-size:20px;line-height:1;color:var(--faint);background:transparent;border:0;border-radius:6px;cursor:pointer;
  padding:0;-webkit-tap-highlight-color:transparent}
.notice-close:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 12%,transparent)}
.notice-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.notice-body{padding:14px 18px;font-size:12px;line-height:1.6}
.notice-body p{margin:0 0 10px}.notice-body p:last-child{margin-bottom:0}
.notice-body a{color:var(--accent)}
/* the allegation banner lives only on the landing page (body has no page class);
   every interior page is .figpage or .primerpage and suppresses it */
.figpage .disclaimer-bar,.primerpage .disclaimer-bar{display:none}
/* build hash + local timestamp, shown in the hero bar left of the brand text */
.build-stamp{font-family:var(--mono);font-size:10px;letter-spacing:.02em;color:var(--faint);white-space:nowrap;align-self:center}
@media (max-width:640px){.build-stamp{display:none}}
@media print{.disclaimer-bar{background:#fff;border-bottom:1px solid #000}.notice-dialog{display:none}}

/* ---------- LANDING HERO ---------- */
.hero{min-height:100vh;display:flex;flex-direction:column;border-bottom:1px solid var(--line);
  background:var(--panel-2);position:relative}
.hero-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;
  font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:lowercase;
  color:var(--dim);border-bottom:1px solid var(--line);padding:11px 22px}
.brand{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.members-wrap{max-width:1120px;margin:0 auto;padding:0 18px 80px}
.members-head{padding:26px 0 16px;border-bottom:1px solid var(--line);margin-bottom:22px}
@media (max-width:760px){.hero-bar{padding:10px 16px}.hero-bar .brand-r{display:none}.members-head{padding-top:18px}}
.brand-r{margin-left:auto}
.toggle{font-family:var(--mono);font-size:15px;line-height:1;cursor:pointer;background:transparent;
  color:var(--ink);border:1px solid var(--line-2);width:32px;height:26px;display:flex;align-items:center;
  justify-content:center;flex:none}
.toggle:hover{border-color:var(--accent);color:var(--accent)}
.hero-body{flex:1;display:flex;flex-direction:column;justify-content:center;
  max-width:1000px;width:100%;margin:0 auto;padding:48px 22px 40px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:lowercase;
  color:var(--accent);margin:0 0 18px;display:inline-block;border:1px solid var(--accent);padding:4px 10px;align-self:flex-start}
h1{font-family:var(--disp);font-weight:700;font-size:clamp(32px,6.4vw,68px);line-height:1.02;
  margin:0 0 20px;letter-spacing:-.02em;color:var(--ink)}
.dek{font-family:var(--sans);font-weight:450;font-size:clamp(14px,2.05vw,17px);max-width:74ch;margin:0;color:var(--dim)}
.dek b{color:var(--ink);font-weight:600}

.hero-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border:1px solid var(--line);
  background:var(--panel);margin:34px 0 30px}
.hstat{padding:15px 13px;border-right:1px solid var(--line);text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;text-align:center}
.hstat:last-child{border-right:none}
.hstat--link:hover{background:var(--panel-2)}
.hstat .hn{font-family:var(--mono);font-weight:800;font-size:clamp(17px,3vw,25px);line-height:1;
  letter-spacing:-.02em;color:var(--ink);display:block}
.hstat:first-child .hn{color:var(--accent)}
.hstat .hl{font-family:var(--mono);font-size:10px;letter-spacing:.02em;text-transform:lowercase;
  margin-top:9px;color:var(--faint);line-height:1.35;display:block}
.scrollcue{font-family:var(--mono);font-size:12px;letter-spacing:.05em;text-transform:lowercase;
  color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:9px;align-self:flex-start}
.scrollcue .nf{animation:bob 1.8s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
.ver{position:absolute;right:22px;bottom:16px;font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:.05em}
/* ghosted Davi Skin price + volume chart — full-bleed behind the hero content */
.hero{overflow:hidden;position:relative}
.hero-bar,.hero-body{position:relative;z-index:1}
/* scroll-driven cane head: sits in the upper-right third of the hero, spins and
   shrinks away as the report is scrolled (JS sets transform/opacity per scroll). */
.hero-head{position:absolute;top:12%;right:5%;width:clamp(170px,30vw,400px);z-index:2;
  pointer-events:none;transform-origin:center center;will-change:transform,opacity}
.hero-head img{width:100%;height:auto;display:block;filter:drop-shadow(0 10px 26px rgba(0,0,0,.28))}
@media (max-width:760px){.hero-head{display:none}}
@media print{.hero-head{display:none}}
.hero-ghost{position:absolute;inset:0;z-index:0;pointer-events:none;display:flex;align-items:stretch;justify-content:stretch}
.hg{width:100%;height:100%;display:block}
.hg-line{fill:none;stroke:var(--c-sky);stroke-width:2.4;opacity:.22}
.hg-area{fill:var(--c-sky);fill-opacity:.07;stroke:none}
.hg-vol{fill:var(--c-vol);opacity:.22}
.hg-vol.hg-spike{fill:var(--c-amber);opacity:.34}
@media print{.hero-ghost{display:none}}

/* ---------- STAT STRIP (in-report) ---------- */
.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border:1px solid var(--line);
  background:var(--panel);margin:40px 0 50px}
.stat{padding:16px 13px;border-right:1px solid var(--line)}
.stat:last-child{border-right:none}
.stat .n{font-family:var(--mono);font-weight:800;font-size:clamp(18px,3vw,26px);line-height:1;letter-spacing:-.02em;color:var(--ink)}
.stat:nth-child(1) .n,.stat:nth-child(2) .n{color:var(--accent)}
.stat .l{font-family:var(--mono);font-size:10px;letter-spacing:.02em;text-transform:lowercase;margin-top:9px;color:var(--faint);line-height:1.35}

/* ---------- SECTIONS ---------- */
.sec{margin:0 0 56px}
.sec-head{display:flex;align-items:center;gap:12px;margin:0 0 10px;flex-wrap:wrap}
.sec-num{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.05em;
  display:inline-flex;align-items:center;gap:8px}
.sec-num .nf{font-size:17px}
.sec-num .sn{font-weight:800}
.sec-head h2{font-family:var(--disp);font-weight:700;font-size:clamp(19px,3.4vw,29px);line-height:1.08;
  margin:0;letter-spacing:-.015em;color:var(--ink)}
.sec-head .rule{flex:1;height:0;border-top:1px solid var(--line);min-width:20px}
.sec-sub{font-family:var(--sans);font-size:14px;letter-spacing:.005em;color:var(--dim);margin:8px 0 22px;max-width:none;line-height:1.65}
.sec-sub.wide{max-width:none}      /* full-width body paragraphs (now default) */
.sec-sub b{color:var(--ink);font-weight:600}
.sec-sub i{font-style:italic}
.subhead{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);
  margin:30px 0 12px;display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding-top:18px}
.subhead .nf{font-size:15px}
.concurrent-note{font-family:var(--mono);font-size:11px;text-transform:lowercase;letter-spacing:.03em;color:var(--dim);margin:22px 0 12px}

/* ---------- badges + citations ---------- */
.cardfoot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:11px}
/* "Expand any entity in the chain" — the three entity buttons on their own row */
.chain-expand{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:8px}
.badge{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;
  border:1px solid var(--accent);color:var(--accent);padding:3px 7px;display:inline-flex;align-items:center;gap:5px;
  background:color-mix(in srgb,var(--accent) 7%,transparent);border-radius:2px}
.badge .nf{font-size:11px}
.cite{color:var(--accent-2);text-decoration:none;display:inline-flex;align-items:baseline;gap:1px;
  white-space:nowrap;padding:0 2px;border-radius:2px;transition:background .12s}
.cite .nf{font-size:.92em;transform:translateY(1px)}
.cite sup.fn{font-family:var(--mono);font-size:.62em;font-weight:700;margin-left:1px}
.cite--sec{color:var(--accent)}
.cite--pdf{color:var(--accent-2);display:inline;white-space:normal;overflow-wrap:anywhere}
.cite--fn{color:var(--accent-3)}
.cite:hover{background:color-mix(in srgb,var(--accent-2) 16%,transparent);text-decoration:none}
.cite--sec:hover{background:color-mix(in srgb,var(--accent) 16%,transparent)}
.ciklink{color:var(--accent);text-decoration:none;border-bottom:1px dotted var(--accent);font-weight:600}
.ciklink:hover{background:color-mix(in srgb,var(--accent) 14%,transparent)}

/* ---------- flow pipeline ---------- */
.legend{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;text-transform:lowercase;letter-spacing:.03em;color:var(--dim);margin:0 0 20px}
.legend .key{display:flex;align-items:center;gap:8px}
.swatch{width:20px;height:13px;border:1px solid var(--line-2);display:inline-block}
.sw-shell{background:transparent}
.sw-op{background:var(--accent-2);border-color:var(--accent-2)}
.sw-off{background:repeating-linear-gradient(45deg,var(--accent-3) 0 3px,transparent 3px 6px);border-color:var(--accent-3)}
.flow{display:flex;flex-direction:column;align-items:stretch}
.node{border:1px solid var(--line);background:var(--panel);display:grid;grid-template-columns:60px 1fr;align-items:stretch}
.node .idx{font-family:var(--mono);font-weight:800;font-size:23px;color:var(--dim);display:flex;align-items:center;justify-content:center;border-right:1px solid var(--line)}
.node .meat{padding:13px 16px}
.node .ent{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline}
.node .ename{font-family:var(--disp);font-weight:700;font-size:clamp(15px,2.3vw,19px);letter-spacing:-.01em;line-height:1.1;color:var(--ink)}
.node .edate{font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;color:var(--accent);white-space:nowrap}
.node .mech{font-family:var(--sans);font-weight:450;font-size:13px;margin-top:7px;line-height:1.55;color:var(--dim)}
.node .mech b{color:var(--ink);font-weight:600}
.node .mech i{color:var(--ink);font-style:italic}
.node .tag{font-family:var(--mono);font-size:9.5px;text-transform:lowercase;letter-spacing:.04em;border:1px solid var(--line-2);color:var(--dim);padding:2px 7px;display:inline-block}
.node.op{border-left:3px solid var(--accent-2)}
.node.op .idx{color:var(--accent-2)}
.node.off{border:1px dashed var(--accent-3)}
.node.off .idx{color:var(--accent-3);border-right-style:dashed;border-right-color:var(--accent-3)}
.arrow{display:flex;flex-direction:column;align-items:center;padding:5px 0;position:relative}
.arrow .line{width:1px;height:24px;background:var(--line-2)}
.arrow .head{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--line-2);margin-top:-1px}
.arrow .alabel{position:absolute;left:calc(50% + 16px);top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:9.5px;text-transform:lowercase;letter-spacing:.03em;color:var(--dim);border:1px solid var(--line);background:var(--bg);padding:3px 8px;white-space:nowrap}

/* ---------- three-identity strip ---------- */
.ids{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);background:var(--panel);margin:0 0 22px}
.ids .id{padding:14px 14px;border-right:1px solid var(--line)}
.ids .id:last-child{border-right:none}
.ids .id .nm{font-family:var(--disp);font-weight:700;font-size:15px;line-height:1.1;color:var(--ink)}
.ids .id .yr{font-family:var(--mono);font-size:10px;letter-spacing:.03em;color:var(--accent);margin-top:6px}
.ids .id .ro{font-family:var(--sans);font-weight:450;font-size:12px;line-height:1.5;color:var(--dim);margin-top:8px}
.ids .id .ro b{color:var(--ink);font-weight:600}
.ids .id.c1{border-top:3px solid var(--ink)}
.ids .id.c2{border-top:3px solid var(--accent)}
.ids .id.c3{border-top:3px solid var(--accent-3)}

/* ---------- timeline ---------- */
.tl{position:relative;margin-top:6px;padding-left:32px}
.tl::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:1px;background:var(--line-2)}
.tl-row{position:relative;margin-bottom:12px}
.tl-row:last-child{margin-bottom:0}
.tl-row::before{content:"";position:absolute;left:-28px;top:14px;width:11px;height:11px;background:var(--bg);border:1px solid var(--line-2)}
.tl-card{border:1px solid var(--line);background:var(--panel);padding:12px 15px}
.tl-date{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--accent);white-space:nowrap}
.tl-cardhead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tl-srcbtn{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line);border-radius:3px;padding:2px 7px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .12s,color .12s}
.tl-srcbtn:hover{background:var(--accent);color:var(--bg)}
.evt-src{display:inline-flex;align-items:center;justify-content:center;color:var(--accent);text-decoration:none;cursor:pointer;padding:1px 5px;border:1px solid var(--line);border-radius:3px}
.evt-src svg{width:11px;height:11px}
.evt-src:hover{background:var(--accent);color:var(--bg)}
.conflict-list{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:10px}
.conflict-list li{font-family:var(--sans);font-size:13.5px;line-height:1.5;color:var(--dim);border-left:3px solid var(--accent);padding:8px 0 8px 14px}
.conflict-list li b{color:var(--ink)}
.cl-amt{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--accent);margin-left:6px}
.cl-date{font-family:var(--mono);font-size:11px;color:var(--dim)}
.tl-srcbtn svg{width:10px;height:10px}
.tl-title{font-family:var(--disp);font-weight:700;font-size:clamp(13px,2vw,16px);line-height:1.12;margin:5px 0 0;letter-spacing:-.01em;color:var(--ink)}
.tl-detail{font-family:var(--sans);font-weight:450;font-size:12.5px;line-height:1.55;margin-top:6px;color:var(--dim)}
.tl-detail b{color:var(--ink);font-weight:600}.tl-detail i{font-style:italic;color:var(--ink)}
.tl-badge{font-family:var(--mono);font-size:9px;text-transform:lowercase;letter-spacing:.04em;border:1px solid var(--line-2);color:var(--dim);padding:2px 7px;display:inline-block}
.tl-row.anchor::before{background:var(--accent);border-color:var(--accent)}
.tl-row.anchor .tl-card{border-left:3px solid var(--accent);background:var(--panel-2)}
.tl-row.anchor .tl-badge{border-color:var(--accent);color:var(--accent)}
.tl-row.signed .tl-card{border-left:3px solid var(--ink)}
.tl-row.signed .tl-badge{border-color:var(--ink);color:var(--ink)}
.tl-row.wire::before{background:var(--accent-2);border-color:var(--accent-2)}
.tl-row.wire .tl-card{border-left:3px solid var(--accent-2)}
.tl-row.wire .tl-badge{border-color:var(--accent-2);color:var(--accent-2)}
.tl-row.castro::before{background:var(--accent-3);border-color:var(--accent-3)}
.tl-row.castro .tl-card{border-left:3px solid var(--accent-3)}
.tl-row.castro .tl-badge{border-color:var(--accent-3);color:var(--accent-3)}

/* ---------- panels / bars ---------- */
.panel{border:1px solid var(--line);background:var(--panel);padding:16px 18px 18px}
.panel + .panel{margin-top:18px}
.panel-title{font-family:var(--mono);font-size:11px;text-transform:lowercase;letter-spacing:.03em;color:var(--dim);margin:0 0 16px;border-bottom:1px solid var(--line);padding-bottom:9px}
.panel-title b{font-weight:700;color:var(--accent)}
.bars{display:flex;flex-direction:column;gap:9px}
.bar{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:12px}
.bar .blab{font-family:var(--mono);font-size:10.5px;text-transform:lowercase;letter-spacing:.01em;color:var(--dim);line-height:1.3}
.bar .track{height:18px;border:1px solid var(--line);background:var(--panel-2);position:relative;overflow:hidden}
.bar .fill{height:100%;background:var(--fill)}
.bar .fill.hatch{background:repeating-linear-gradient(45deg,var(--accent) 0 4px,transparent 4px 8px);background-color:transparent}
.bar .fill.gray{background:var(--fill-dim)}
.bar .val{font-family:var(--mono);font-size:11.5px;font-weight:700;white-space:nowrap;min-width:64px;text-align:right;color:var(--ink)}
.threshold{position:absolute;top:-3px;bottom:-3px;width:0;border-left:2px dashed var(--accent);z-index:3}
.thmark{font-family:var(--mono);font-size:9px;text-transform:lowercase;letter-spacing:.03em;color:var(--faint);display:flex;justify-content:flex-end;margin-top:8px}
.thmark span{border:1px solid var(--line);padding:2px 7px}

/* ---------- callout ---------- */
.callout{border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--panel-2);padding:18px 20px;margin-top:20px;display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center}
.callout .big{font-family:var(--mono);font-weight:800;font-size:clamp(30px,5.4vw,50px);line-height:.92;letter-spacing:-.03em;color:var(--accent);white-space:nowrap}
.callout .big .nf{font-size:.8em}
.callout .txt{font-family:var(--sans);font-weight:450;font-size:13.5px;line-height:1.6;color:var(--dim)}
.callout .txt b{color:var(--ink);font-weight:600}.callout .txt i{font-style:italic;color:var(--ink)}

/* ---------- nominee / ledger / accounts ---------- */
.noms{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);margin-top:18px;background:var(--panel)}
.noms-3{grid-template-columns:repeat(3,1fr)}
.nom{padding:14px 13px;border-right:1px solid var(--line)}
.nom:last-child{border-right:none}
.nom .nm{font-family:var(--disp);font-weight:700;font-size:13px;line-height:1.1;min-height:2.2em;color:var(--ink)}
.nom .cert{font-family:var(--mono);font-size:9.5px;letter-spacing:.02em;margin-top:8px;color:var(--faint)}
.nom .pct{font-family:var(--mono);font-weight:800;font-size:25px;margin-top:10px;line-height:1;color:var(--accent)}
.nom .sh{font-family:var(--mono);font-size:9.5px;margin-top:3px;color:var(--dim)}
.acct{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);background:var(--panel)}
.acct .col{padding:16px 18px;border-right:1px solid var(--line)}
.acct .col:last-child{border-right:none}
.acct .bank{font-family:var(--disp);font-weight:700;font-size:14px;line-height:1.1;color:var(--ink)}
.acct .no{font-family:var(--mono);font-size:12px;font-weight:700;margin-top:8px;word-break:break-all;color:var(--accent)}
.acct .meta{font-family:var(--mono);font-size:9.5px;margin-top:7px;color:var(--dim);text-transform:lowercase;letter-spacing:.02em;line-height:1.5}
.ledger{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-top:2px solid var(--accent);background:var(--panel-2);margin-bottom:6px}
.ledger-3{grid-template-columns:repeat(3,1fr)}
.ledger .cell{padding:16px 13px;border-right:1px solid var(--line)}
.ledger .cell:last-child{border-right:none}
.ledger .cn{font-family:var(--mono);font-weight:800;font-size:clamp(20px,3.2vw,27px);line-height:1;letter-spacing:-.02em;color:var(--accent)}
.ledger .cl{font-family:var(--mono);font-size:9.5px;text-transform:lowercase;letter-spacing:.02em;margin-top:9px;color:var(--dim);line-height:1.5}

/* ---------- inline pdf viewers (résumé pack) ---------- */
.ipgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.inlinepdf{border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column}
.ip-bar{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:8px 11px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.ip-title{font-family:var(--mono);font-size:10.5px;color:var(--ink);display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ip-title .nf{color:var(--accent);flex:none}
.ip-ctrls{display:flex;align-items:center;gap:5px;flex:none}
.ip-prev,.ip-next,.ip-open{font-family:var(--mono);font-size:14px;line-height:1;cursor:pointer;background:transparent;color:var(--ink);border:1px solid var(--line-2);width:26px;height:24px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:0}
.ip-prev:hover,.ip-next:hover,.ip-open:hover{border-color:var(--accent-2);color:var(--accent-2)}
.ip-prev:disabled,.ip-next:disabled{opacity:.35;cursor:default}
.ip-open .nf{font-size:12px}
.ip-page{font-family:var(--mono);font-size:10px;color:var(--dim);min-width:46px;text-align:center}
.ip-stage{position:relative;background:var(--bg);padding:10px;display:flex;justify-content:center;min-height:180px}
.ip-stage canvas{max-width:100%;height:auto;background:#fff;box-shadow:0 1px 8px rgba(0,0,0,.12)}
.ip-load,.ip-err{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:10.5px;color:var(--faint)}
.inlinepdf canvas:not([width]) + .ip-load{display:block}
.inlinepdf--lg .ip-stage{min-height:440px;padding:14px}
.ipwrap{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;align-items:start;margin-top:6px}
.ip-pages{margin:42px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
@media (max-width:760px){.ip-pages{margin-top:14px}}
.ip-pages li{display:flex;gap:9px;font-family:var(--sans);font-size:12px;line-height:1.5;color:var(--dim);min-width:0}
.ip-pages li>span{min-width:0;overflow-wrap:anywhere}
.ip-pages li b{color:var(--ink);font-weight:600}.ip-pages li i{font-style:italic;color:var(--ink)}
.ip-pages .ipn{flex:none;font-family:var(--mono);font-size:9px;font-weight:700;color:var(--accent);border:1px solid var(--line-2);padding:2px 5px;height:fit-content}
@media (max-width:760px){.ipgrid,.ipwrap{grid-template-columns:minmax(0,1fr)}}

/* ---------- mechanics / concept cards ---------- */
.mech-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:6px}
.mech-cards.mech-6{grid-template-columns:repeat(3,1fr)}
.mcard{border:1px solid var(--line);background:var(--panel);padding:14px 16px;border-top:3px solid var(--accent-2)}
.mcard:nth-child(2){border-top-color:var(--accent)}
.mcard:nth-child(3){border-top-color:var(--accent-3)}
.mcard:nth-child(4){border-top-color:var(--ink)}
.mech-6 .mcard{border-top-color:var(--accent)}
.mcard .mh{font-family:var(--disp);font-weight:700;font-size:14px;color:var(--ink);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.mcard .mh .nf{color:var(--accent);font-size:15px}
.mcard p{font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--dim);margin:0}
.mcard p b{color:var(--ink);font-weight:600}.mcard p i{font-style:italic;color:var(--ink)}

/* ---------- why list ---------- */
.why{margin:6px 0 0;padding-left:0;list-style:none;counter-reset:why;display:flex;flex-direction:column;gap:10px}
.why li{font-family:var(--sans);font-size:13px;line-height:1.55;color:var(--dim);padding-left:38px;position:relative}
.why li b{color:var(--ink);font-weight:600}
.why li::before{counter-increment:why;content:counter(why);position:absolute;left:0;top:0;font-family:var(--mono);font-weight:800;font-size:13px;color:var(--accent);border:1px solid var(--line-2);width:26px;height:26px;display:flex;align-items:center;justify-content:center}
.ev-rel{color:var(--faint);font-style:italic}

/* ---------- step-detail affordance + info modal ---------- */
.stepdetail{margin-left:auto;font-family:var(--mono);font-size:9.5px;text-transform:lowercase;letter-spacing:.03em;
  color:var(--accent-2);text-decoration:none;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line-2);padding:3px 8px}
.stepdetail .nf{font-size:11px}
.stepdetail:hover{border-color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 12%,transparent)}
/* compact detail popup — centred, ~half size, sized to its few paragraphs */
.pdf-panel.info-panel{inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1120px,95vw);height:88vh;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.info-stage{flex:1;min-height:0;overflow:auto;padding:0}
/* single-column (no exhibit): text stays centred at a readable width */
#info-body{font-family:var(--sans);font-size:13.8px;line-height:1.62;color:var(--dim);max-width:680px;margin:0 auto;padding:20px 24px}
#info-body p{text-align:justify;hyphens:auto}
.info-doc-pane{display:none}
/* two-column when a supporting exhibit is attached */
.info-stage.has-doc{display:grid;grid-template-columns:minmax(0,42%) minmax(0,58%);align-items:stretch;height:100%}
.info-stage.has-doc #info-body{max-width:none;margin:0;overflow:auto;border-right:1px solid var(--line)}
.info-stage.has-doc .info-doc-pane{display:flex;flex-direction:column;min-height:0}
.info-doc-bar{flex:none;display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;color:var(--dim);background:var(--bg)}
.info-doc-bar .nf{color:var(--accent)}
.info-doc-open{margin-left:auto;color:var(--accent);text-decoration:none}
.info-doc{flex:1 1 auto;width:100%;border:0;min-height:0;background:#fff}
.info-doc-pane .info-doc-card{display:none}
.info-stage.has-doc.ext .info-doc{display:none}
.info-stage.has-doc.ext .info-doc-card{display:flex;flex:1 1 auto;align-items:center;justify-content:center;padding:24px;background:var(--bg)}
.idc-inner{text-align:center;max-width:340px}
.idc-inner .nf{font-size:30px;color:var(--accent);display:block;margin:0 auto 12px}
.idc-inner p{font-family:var(--sans);font-size:13px;line-height:1.55;color:var(--dim);margin:0 0 16px}
/* per-scheme key-documents section */
.kd-row{align-items:start;margin-top:10px}
.kd-row-solo{grid-template-columns:minmax(0,1fr) minmax(0,340px);max-width:none}
.kd-pane-facts{align-self:start}
.kd-row .kd-pane{display:flex;flex-direction:column}
.kd-row .kd-title{min-height:2.4em;align-items:flex-start}
/* Equal-height lead blurb so paired cards' inline PDFs line up horizontally (the note
   above each PDF is padded to a common height; shorter notes gain whitespace). */
.kd-row .plead-note{margin-top:10px;min-height:6em}
@media (max-width:760px){.kd-row .plead-note{min-height:0}}
.kd-pane{min-width:0}
.kd-txt{width:100%;height:472px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-family:var(--mono);font-size:11px}
.kd-solo{display:grid;grid-template-columns:52% 1fr;gap:22px;align-items:start;margin-top:10px}
.kd-facts{counter-reset:kf;list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}
/* invisible title-height spacer: drops the facts to align with the PDF page top */
.kd-title-ghost{visibility:hidden}
.kd-title-ghost + .kd-facts{margin-top:0}
/* …but in the solo layout the lead note/blurb reads better aligned with the title row,
   so collapse the spacer there and let the note rise to the top of the facts column. */
.kd-row-solo .kd-pane-facts .kd-title-ghost{display:none}
.kd-facts li{font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--dim);padding-left:27px;position:relative}
.kd-facts li::before{counter-increment:kf;content:counter(kf);position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;box-sizing:border-box;font-family:var(--mono);font-size:10px;font-weight:700;color:var(--accent);background:transparent;border:1px solid var(--line-2);border-radius:3px}
.kd-facts li b{color:var(--ink)}
.audio-clip{margin:14px 0;padding:12px 16px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;background:rgba(128,128,128,.04)}
.audio-clip .subhead{margin-bottom:4px}
.wt-audio{width:100%;margin-top:8px}
.audio-clip .plead-more{margin-top:10px}
.wt-modal{width:min(820px,94vw);max-height:88dvh;padding:0;border:1px solid var(--line-2);border-radius:12px;background:var(--panel);overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.4)}
.wt-modal[open]{display:flex;flex-direction:column}
.wt-modal:not([open]){display:none}
.wt-modal::backdrop{background:rgba(0,0,0,.55)}
.wt-modal .notice-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.wt-body{padding:16px;overflow:auto;-webkit-overflow-scrolling:touch}
.wt-body #wt-audio{display:none}
.wt-controls{margin-bottom:8px}
.wt-dl{display:inline-flex;align-items:center;margin-left:auto;color:var(--dim);text-decoration:none;flex:none}
.wt-dl:hover{color:var(--accent)}
.wt-seek{display:block;width:100%;margin:0 0 14px;accent-color:var(--accent);cursor:pointer}
.wt-transcript{font-family:var(--sans);font-size:15px;line-height:1.95;color:var(--dim)}
.wt-w{cursor:pointer;border-radius:3px;padding:0 1px;transition:background .08s,color .08s}
.wt-w:hover{background:rgba(128,128,128,.18)}
.wt-w.on{background:var(--accent);color:var(--bg)}
/* speaker-diarized turns (CANE / counterparty) — a labelled block per turn, like
   the courtroom transcript; the word spans inside still karaoke-highlight. */
.wt-turn{margin:0 0 12px}
.wt-spk{display:inline-block;font-family:var(--mono);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-right:8px;user-select:none}
.wt-load{font-family:var(--mono);font-size:12px;color:var(--dim)}
/* wiretap talking heads row — both heads float free (no slot border/background).
   DiScala's tighter viewBox makes the face fill its 150px slot; allow taller height. */
.wt-heads{display:flex;flex-direction:row;justify-content:center;align-items:flex-end;gap:32px;margin-bottom:14px}
.wt-head-slot{display:flex;flex-direction:column;align-items:center;gap:4px}
.wt-head-label{font-family:var(--mono);font-size:11px;color:var(--dim);letter-spacing:.04em;text-transform:uppercase}
.wt-heads .tts-head-avatar{position:static!important;inset:auto!important;margin:0!important;width:150px!important;display:block!important}
.wt-heads .tts-head-x{display:none!important}
@media(max-width:760px){.wt-heads .tts-head-avatar{width:100px!important}}
/* narration karaoke popup */
.nar-modal{width:min(960px,95vw);max-height:90dvh;padding:0;border:1px solid var(--line-2);border-radius:12px;background:var(--panel);overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.45)}
.nar-modal[open]{display:flex;flex-direction:column}
.nar-modal:not([open]){display:none}
.nar-modal::backdrop{background:rgba(0,0,0,.6)}
.nar-modal .notice-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.nar-body{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;padding:16px;overflow:hidden;min-height:0}
.nar-head{align-self:start}
.nar-head .in-popup{position:static!important;inset:auto!important;margin:0!important}
.nar-main{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.nar-controls{flex:none;display:flex;align-items:center;gap:12px;margin-bottom:10px}
.nar-play{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:6px;padding:7px 16px;cursor:pointer}
.nar-nav{display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:6px;padding:6px 10px;cursor:pointer}
.nar-nav:disabled{opacity:.32;cursor:default}
/* figure "narrated walk" floating control bar (non-modal, scrolls the page) */
.fignar{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);z-index:120;display:flex;flex-wrap:wrap;align-items:center;gap:7px;width:min(820px,calc(100vw - 24px));padding:7px 9px;background:var(--panel);border:1px solid var(--accent);border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.fignar[hidden]{display:none}
.fignar-btn{font-size:15px;line-height:1;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:5px;width:32px;height:32px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none}
.fignar-btn:hover{background:var(--accent);color:var(--bg)}
.fignar-btn:disabled{opacity:.3;cursor:default;background:transparent;color:var(--accent)}
.fignar-label{flex:1;min-width:0;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}
.fignar-karaoke{flex:1 1 100%;max-height:6em;overflow:auto;-webkit-overflow-scrolling:touch;line-height:1.7;font-size:13px;padding:2px 0}
.fignar-w{display:inline}
.fignar-w.on{background:var(--accent);color:var(--bg);border-radius:3px}
/* walk player — guided narration bar for report page */
.walk-cta{display:inline-flex;align-items:center;gap:6px;height:34px;box-sizing:border-box;font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:5px;padding:0 12px;cursor:pointer;margin:12px 0 8px}
.walk-cta:hover{background:var(--accent);color:var(--bg)}
.walk{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);z-index:9990;display:none;flex-wrap:wrap;align-items:center;gap:10px;width:min(880px,calc(100vw - 24px));padding:14px 46px 12px 16px;background:var(--panel);border:1px solid var(--accent);border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.walk.open{display:flex}
.walk-btn{font-size:15px;line-height:1;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:5px;width:32px;height:32px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none}
.walk-btn:hover{background:transparent;color:var(--accent)}
.walk-btn:active{background:transparent;border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:color-mix(in srgb,var(--accent) 70%,transparent)}
.walk-btn:disabled{opacity:.3;cursor:default;background:transparent;color:var(--accent)}
.walk-select{font-family:var(--mono);font-size:11px;color:var(--text);background:var(--panel);border:1px solid var(--accent);border-radius:5px;height:32px;box-sizing:border-box;padding:0 8px;cursor:pointer;flex:1 1 auto;min-width:0;max-width:260px}
.walk-read{width:auto!important;padding:0 11px;font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.walk-read.on{font-weight:800;text-decoration:underline;text-underline-offset:3px}
.walk-ch{font-family:var(--mono);font-size:11px;color:var(--dim);opacity:.7;white-space:nowrap}
.walk-karaoke{flex:1 1 100%;max-height:12em;overflow:auto;-webkit-overflow-scrolling:touch;line-height:1.7;font-size:13px;padding:2px 0;transition:max-height .2s}
.walk.walk-reading .walk-karaoke{max-height:46vh;font-size:14px;line-height:1.85}
.walk-w{display:inline}
.walk-w.on{background:var(--accent);color:var(--bg);border-radius:3px}
.walk-x{position:absolute;top:7px;right:8px}
.walk-dur{font-family:var(--mono);font-size:11px;color:var(--accent);white-space:nowrap}
.walk-play{width:auto;gap:5px;padding:0 9px}
.walk-play:hover,.walk-play:focus{background:transparent;color:var(--accent)}
.walk-play-ico{display:inline-flex;align-items:center;line-height:1}
.walk-star{display:inline-block;margin-left:.4em;color:var(--accent);font-size:.85em;line-height:1}
@media (prefers-reduced-motion:no-preference){.walk-star{animation:walkblink 1.3s ease-in-out infinite}}
@keyframes walkblink{0%,100%{opacity:.18}50%{opacity:1}}

@media(prefers-reduced-motion:no-preference){@keyframes walk-pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 40%,transparent)}50%{box-shadow:0 0 0 8px transparent}}}
@media(max-width:640px){.walk{padding:10px 42px 10px 10px;gap:6px;bottom:104px;border-radius:6px}.walk-select{max-width:100%;flex:1 1 100%;order:10}.walk-karaoke{max-height:8em}.fignar-karaoke{max-height:8em}
  /* move the animated talking-head up (≈50% of its top offset) so it clears content on phones */
  .tts-head-avatar[data-corner="tl"]{top:32px}.canehead-fly{top:32px}}
.nar-play:hover{background:var(--accent);color:var(--bg)}
.nar-ch{font-family:var(--mono);font-size:11px;color:var(--dim)}
.nar-transcript{overflow:auto;-webkit-overflow-scrolling:touch;padding-right:6px}
.nar-sec{margin:0 0 18px;opacity:.5;transition:opacity .2s}
.nar-sec.active{opacity:1}
.nar-sec-h{font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-bottom:5px}
.nar-sec-p{font-family:var(--sans);font-size:15px;line-height:1.95;color:var(--dim);margin:0}
.nar-w{border-radius:3px;padding:0 1px;transition:background .08s,color .08s}
.nar-sec.active .nar-w{cursor:pointer}
.nar-w.on{background:var(--accent);color:var(--bg)}
@media (max-width:640px){.nar-body{grid-template-columns:1fr}.nar-head{justify-self:center}}
@media(max-width:760px){.kd-solo{grid-template-columns:1fr}}
.lit-index{max-width:1080px;margin:30px auto 0;padding:0 18px}
.litidx{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.litidx-year{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.06em;margin:22px 0 2px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.litidx-row{display:grid;grid-template-columns:108px 1fr auto;gap:14px;align-items:center;padding:11px 16px;border:1px solid var(--line);border-left:4px solid var(--tag,var(--accent));border-radius:8px;background:rgba(128,128,128,.04);transition:background .12s,box-shadow .12s}
.dek-full{max-width:none}
.lit-tag{flex:0 0 auto;display:inline-block;font-family:var(--mono);font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--tag,#64748b);background:transparent;border:1px solid var(--tag,#64748b);border-radius:3px;padding:1px 6px;white-space:nowrap}
/* Immediate styled tooltip carrying the Bluebook caption (case number + jurisdiction),
   only on badges that actually have one (data-cap). Legend chips have none → no help cursor. */
.lit-tag[data-cap]{cursor:default;position:relative}
.lit-tag[data-cap]:hover::after{content:attr(data-cap);position:absolute;left:0;top:calc(100% + 5px);z-index:40;font-family:var(--sans);font-size:11px;font-weight:400;text-transform:none;letter-spacing:0;line-height:1.35;white-space:normal;width:max-content;max-width:340px;padding:6px 9px;color:#1a1a1a;background:#fff;border:1px solid var(--color-border,#d0d0d0);border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.18);pointer-events:none}
.lit-tag[data-cap]:hover::before{content:"";position:absolute;left:12px;top:calc(100% + 1px);z-index:41;border:5px solid transparent;border-bottom-color:#fff;pointer-events:none}
.lit-legend{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 6px}
.lit-filter{cursor:pointer;user-select:none;transition:background .12s,color .12s}
.lit-filter:hover,.lit-filter:focus-visible{background:var(--tag,#64748b);color:#fff;outline:none}
.lit-filter.lit-on{background:var(--tag,#64748b);color:#fff}
.lit-clear{cursor:pointer;user-select:none;color:var(--dim);border-color:var(--line);border-style:dashed}
.lit-clear:hover,.lit-clear:focus-visible{color:var(--ink);outline:none}
.litidx-row.lit-hidden,.litidx-year.lit-hidden{display:none}
.lit-norec{font-family:var(--mono);font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--dim);border:1px dashed var(--line);border-radius:3px;padding:2px 7px;white-space:nowrap}
.litidx-row:hover{background:rgba(128,128,128,.08);box-shadow:0 1px 6px rgba(0,0,0,.06)}
.litidx-date{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.03em;color:var(--accent);white-space:nowrap}
.litidx-cite{font-family:var(--sans);font-size:13px;line-height:1.45;color:var(--ink);min-width:0}
/* Flex row (badge + name in its own wrapping column) ONLY on the case-index cards
   that carry an entity badge; scheme-page cite cards keep normal inline flow. */
.litidx-cite-tag{display:flex;align-items:baseline;gap:7px;min-width:0}
.lit-name{flex:1;min-width:0;position:relative}
.lit-name-t{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Full name on hover — white tooltip (escapes the ellipsis clip via the outer .lit-name). */
.lit-name[data-full]:hover::after{content:attr(data-full);position:absolute;left:0;top:calc(100% + 6px);z-index:50;white-space:normal;width:max-content;max-width:min(520px,60vw);background:#fff;color:#1a1a1a;border:1px solid var(--line-2,#d0d0d0);border-radius:6px;padding:6px 10px;box-shadow:0 4px 16px rgba(0,0,0,.18);font-family:var(--sans);font-size:12px;font-weight:400;font-style:normal;line-height:1.4;letter-spacing:0;text-transform:none;pointer-events:none}
.litidx-cite i{font-style:italic}
.litidx-acts{display:flex;gap:6px;white-space:nowrap;justify-content:flex-end}
.litidx-btn{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--line);border-radius:3px;padding:2px 7px;cursor:pointer;text-decoration:none;background:none;transition:background .12s,color .12s}
.litidx-btn:hover{background:var(--accent);color:var(--bg)}
.step__scheme{display:inline-block;margin-top:9px;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);text-decoration:none;border:1px solid var(--line);border-radius:3px;padding:3px 9px;transition:background .12s,color .12s}
.step__scheme:hover{background:var(--accent);color:var(--bg)}
.step__acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:9px}
.step__acts .step__scheme{margin-top:0}
.step__detail{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:none;text-decoration:none;border:1px solid var(--line);border-radius:3px;padding:3px 9px;cursor:pointer;transition:background .12s,color .12s}
.step__detail:hover{background:var(--accent);color:var(--bg)}
.plead-card{border:1px solid var(--line);border-radius:10px;padding:16px}
.plead-note{font-family:var(--sans);font-size:13px;line-height:1.55;color:var(--dim);margin:4px 0 12px}
.plead-more{display:inline-flex;align-items:center;gap:5px;margin-top:12px;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);text-decoration:none;border:1px solid var(--line);border-radius:3px;padding:3px 9px;transition:background .12s,color .12s}
.plead-more:hover{background:var(--accent);color:var(--bg)}
.plead-more svg{width:11px;height:11px}
.lawlink{color:var(--accent);text-decoration:none;border-bottom:1px dotted var(--accent);white-space:nowrap}
.lawlink:hover{border-bottom-style:solid}
.lawlink-arr{display:inline-flex;margin-left:2px}
.lawlink-arr svg{width:9px;height:9px}
.cl-quote{margin:16px 0;padding:14px 20px;border-left:3px solid var(--accent);background:rgba(128,128,128,.08);font-family:var(--sans);font-size:14.5px;line-height:1.6;color:var(--ink);font-style:italic;border-radius:0 6px 6px 0}
.cl-quote b{color:var(--ink);font-style:normal;font-weight:700}
.cl-quote cite{display:block;margin-top:9px;font-style:normal;font-family:var(--mono);font-size:11px;color:var(--dim)}
.cl-quote cite a{color:var(--accent);text-decoration:none}
.cl-quote cite a:hover{text-decoration:underline}
.litidx-btn svg{width:10px;height:10px}
@media(max-width:760px){.litidx-row{grid-template-columns:1fr;gap:3px}.litidx-acts{margin-top:4px}
  .subhead{letter-spacing:.04em;flex-wrap:wrap;overflow-wrap:anywhere}
  .subhead.kd-title{letter-spacing:.02em;font-size:11px;flex-wrap:nowrap}
  .kd-title .kd-titletext{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .kd-title .kd-date{flex:none;margin-left:6px}}
.kd-date{font-family:var(--mono);font-size:.85em;color:var(--dim);font-weight:400;white-space:nowrap;flex:none}
/* PDF-pane header: glyph + title + date stay on a single row (title ellipsizes) */
.kd-title{flex-wrap:nowrap;align-items:baseline}
.kd-titletext{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.kd-arrow{font-family:var(--mono);color:var(--dim);margin:0 2px;font-weight:700}
@media (max-width:760px){.info-stage.has-doc{grid-template-columns:1fr;height:auto}.info-stage.has-doc #info-body{border-right:0;border-bottom:1px solid var(--line)}.info-stage.has-doc .info-doc{min-height:62vh}}
/* table utility: every column stays on one line; the .ev-wrap container
   side-scrolls horizontally rather than wrapping the first (entity) column */
.evtable.nowrap th,.evtable.nowrap td{white-space:nowrap}
.evtable.nowrap th:first-child,.evtable.nowrap td:first-child{white-space:nowrap}
#info-body p{margin:0 0 12px}
#info-body b{color:var(--ink);font-weight:600}#info-body i{font-style:italic;color:var(--ink)}
#info-body ul.certlist{margin:0 0 12px;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
#info-body ul.certlist li{font-family:var(--mono);font-size:12.5px;color:var(--dim);padding-left:16px;position:relative;line-height:1.45}
#info-body ul.certlist li::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;background:var(--accent-3)}
#info-body ul.certlist li b{color:var(--accent)}
.pdf-btn .btxt{font-size:10px;margin-left:5px;text-transform:lowercase;letter-spacing:.03em}
@media (max-width:760px){.pdf-panel.info-panel{inset:0;left:auto;top:auto;transform:none;width:auto;max-height:none}.mech-cards,.mech-cards.mech-6{grid-template-columns:1fr}}

/* ---------- spark/area charts ---------- */
.chart-panel{margin-top:18px}
.chart-wrap{width:100%;overflow:hidden}
svg.chart{width:100%;height:auto;display:block}
.ch-grid{stroke:var(--line);stroke-width:1}
.ch-ax{fill:var(--faint);font-family:var(--mono);font-size:9px}
.ch-thresh{stroke:var(--accent-3);stroke-width:1.4;stroke-dasharray:4 3}
.ch-mark{fill:var(--accent-3);font-family:var(--mono);font-size:9px}
.ch-line{fill:none;stroke-width:1.8}
.ch-area{stroke:none}
.ch-dot{stroke:var(--panel);stroke-width:1}
.ch-val{fill:var(--ink);font-family:var(--mono);font-size:9.5px;font-weight:700}
/* colour variants (spark: line darker hue, area same hue soft fill) */
.ch--amber.ch-line,.ch--amber.ch-dot{stroke:var(--accent)}.ch--amber.ch-dot{fill:var(--accent)}.ch--amber.ch-area{fill:var(--accent);fill-opacity:.16}
.ch--teal.ch-line,.ch--teal.ch-dot{stroke:var(--accent-2)}.ch--teal.ch-dot{fill:var(--accent-2)}.ch--teal.ch-area{fill:var(--accent-2);fill-opacity:.18}
.ch--coral.ch-area{fill:var(--accent-3);fill-opacity:.16}
.ch-band{fill:var(--accent-2);font-family:var(--mono);font-size:11px;font-weight:700;opacity:.85}
.ch-band.ch--coral-t{fill:var(--accent-3)}
/* bullet */
.ch-blab{fill:var(--dim);font-family:var(--mono);font-size:10.5px}
.ch-track{fill:var(--panel-2);stroke:var(--line);stroke-width:1}
.ch-fill.ch--amber{fill:var(--accent);fill-opacity:.5}
.ch-fill.ch--gold{fill:var(--accent);fill-opacity:.35}
.ch-bval{fill:var(--ink);font-family:var(--mono);font-size:10px;font-weight:700}
.chart-note{font-family:var(--sans);font-size:12.5px;line-height:1.6;color:var(--dim);margin:11px 0 0;max-width:none}
.chart-note .nf{color:var(--accent);margin-right:6px}
.chart-note b{color:var(--ink)}
.chart-note b{color:var(--ink)}

/* ---------- chart hover tooltips ---------- */
.ch-hit,.pv-vol{cursor:crosshair}
.cane-name{border-bottom:1px dotted var(--accent-3);cursor:default}
.img-pop{position:fixed;z-index:130;pointer-events:none;opacity:0;transition:opacity .1s;
  background:var(--panel);border:1px solid var(--line-2);padding:5px;box-shadow:0 8px 28px rgba(0,0,0,.22);border-radius:4px}
.img-pop.on{opacity:1}
.img-pop img{display:block;width:170px;height:auto;border-radius:2px}
.cane-spin{position:fixed;left:20px;bottom:20px;z-index:140;pointer-events:none;opacity:0}
.cane-spin img{width:128px;height:auto;display:block;filter:drop-shadow(0 6px 18px rgba(0,0,0,.25))}
.cane-spin.go{animation:caneSpin 1.5s ease forwards}
@keyframes caneSpin{0%{opacity:0;transform:scale(.15) rotate(-540deg)}22%{opacity:1;transform:scale(1) rotate(0)}72%{opacity:1;transform:scale(1) rotate(0)}100%{opacity:0;transform:scale(.25) rotate(420deg)}}
/* spinning cane-head confetti (identity page) — DOM particles falling + spinning */
.cane-confetti{position:fixed;inset:0;z-index:200;pointer-events:none;overflow:hidden}
.cane-confetti img{position:absolute;top:-12vh;width:48px;height:auto;will-change:transform,opacity;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.25));animation:caneConfettiFall linear forwards}
@keyframes caneConfettiFall{0%{transform:translateY(0) rotate(0);opacity:0}8%{opacity:1}
  100%{transform:translateY(122vh) rotate(var(--spin,720deg));opacity:.9}}
@media print{.cane-confetti{display:none}}
@media (prefers-reduced-motion:reduce){.cane-spin.go{animation:caneFade 1.2s ease forwards}@keyframes caneFade{0%,100%{opacity:0}30%,70%{opacity:1}}}

/* banana navigation (bottom-right) */
/* pointer-events:none on the container so its (large) bounding box never
   intercepts taps over the page; only the button and the OPEN menu are hit-tested.
   Without this the closed menu's layout box covered the lower viewport on mobile
   and swallowed every source/detail tap. */
.banana-nav{position:fixed;right:18px;bottom:18px;z-index:125;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
.banana-btn{width:58px;height:58px;border:none;background:transparent;cursor:pointer;padding:0;transition:transform .25s ease;pointer-events:auto}
.banana-btn:hover{transform:scale(1.1) rotate(-8deg)}
.banana-btn img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 4px 10px rgba(0,0,0,.28))}
.banana-menu{position:absolute;bottom:calc(100% + 10px);right:0;pointer-events:none;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line-2);border-radius:7px;padding:6px;min-width:300px;box-shadow:0 10px 34px rgba(0,0,0,.2);max-height:72vh;overflow:auto;
  opacity:0;visibility:hidden;transform:translateY(10px) scale(.95);transform-origin:bottom right;
  transition:opacity .24s ease,transform .24s ease,visibility .24s}
.banana-nav.open .banana-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1);pointer-events:auto}
.bn-group{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--faint);padding:9px 8px 4px}
.banana-menu a{font-family:var(--sans);font-size:12.5px;line-height:1.3;color:var(--dim);text-decoration:none;padding:6px 8px;border-radius:3px;white-space:nowrap}
.banana-menu a:hover{background:var(--panel-2);color:var(--accent)}

/* scroll minimap (right edge, shown only while scrolling) */
.minimap{position:fixed;right:7px;top:50%;transform:translateY(-50%);z-index:118;width:16px;height:62vh;opacity:0;transition:opacity .35s;pointer-events:none}
.minimap.on{opacity:1;pointer-events:auto}
.mm-track{position:absolute;inset:0;display:flex;flex-direction:column}
.mm-tick{flex:1;position:relative;cursor:pointer}
.mm-tick::before{content:"";position:absolute;right:5px;top:50%;width:5px;height:5px;border-radius:50%;background:var(--line-2);transform:translateY(-50%);transition:all .2s}
.mm-tick:hover::before{background:var(--accent-2);width:7px;height:7px}
.mm-tick.here::before{background:var(--accent);width:8px;height:8px;right:4px}
.mm-thumb{position:absolute;right:6px;width:4px;background:var(--accent);opacity:.45;border-radius:3px;min-height:26px}
.ch-hit{fill:transparent}
/* ported network charts (cane-shell-factory.html): scrollable container + states */
.chart-scroll{max-height:72vh;overflow:auto;border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:8px}
.chart-scroll .chart,.chart-scroll{scrollbar-width:thin}
.chart{width:100%}
/* podcast: per-chapter transcript popup */
.pod-row-a{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.pod-tr-btn{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:none;border:1px solid var(--line);border-radius:3px;padding:5px 9px;cursor:pointer;transition:background .12s,color .12s}
.pod-tr-btn:hover{background:var(--accent);color:var(--bg)}
.pod-tr-btn svg{width:11px;height:11px}
.pod-tr-modal{position:fixed;inset:0;z-index:200;display:none}
.pod-tr-modal.open{display:block}
.pod-tr-back{position:absolute;inset:0;background:rgba(8,9,11,.72)}
.pod-tr-panel{position:absolute;inset:6vh 5vw;max-width:760px;margin:0 auto;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line-2);border-radius:8px;overflow:hidden}
.pod-tr-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.pod-tr-title{flex:1;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}
.pod-tr-x{font-size:22px;line-height:1;background:none;border:none;color:var(--dim);cursor:pointer;padding:0 4px}
.pod-tr-body{flex:1;overflow:auto;padding:20px 24px;font-family:var(--sans);font-size:15px;line-height:1.7;color:var(--ink);white-space:pre-wrap}
@media (max-width:760px){.pod-tr-panel{inset:0;max-width:none;border-radius:0}}
.chart-state{padding:18px;font-family:var(--mono);font-size:12px;color:var(--dim)}
.chart-state.err{color:var(--accent-3)}
.chart-tip{position:fixed;z-index:120;pointer-events:none;max-width:300px;background:var(--panel);border:1px solid var(--line-2);
  padding:8px 11px;font-family:var(--mono);font-size:10.5px;line-height:1.55;color:var(--ink);box-shadow:0 6px 24px rgba(0,0,0,.18);
  opacity:0;transition:opacity .12s;border-radius:3px}
.chart-tip.on{opacity:1}

/* ---------- precrime / Davi anomaly ---------- */
.dtl{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:0;border-left:2px solid var(--line)}
.dtl-narrow{max-width:75%}
.dtl li{display:flex;gap:14px;padding:7px 0 7px 16px;position:relative}
.dtl li::before{content:"";position:absolute;left:-5px;top:13px;width:8px;height:8px;border-radius:50%;background:var(--line-2)}
.dtl li.hot::before{background:var(--accent)}
.dtl li.hot{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.dtl-d{flex:none;width:110px;font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--accent)}
.dtl-e{font-family:var(--sans);font-size:12.5px;line-height:1.45;color:var(--dim)}
.dtl li.hot .dtl-e{color:var(--ink)}
.dtl-glyph{display:inline-flex;align-items:center;vertical-align:middle;margin-left:8px;padding:1px 6px;border:1px solid var(--line);border-radius:3px;background:none;color:var(--accent);cursor:pointer;line-height:1;transition:background .12s,color .12s}
.dtl-glyph svg{width:11px;height:11px}
.dtl-glyph:hover{background:var(--accent);color:var(--bg)}
/* larger, easier tap targets for the small source/detail glyphs on touch screens */
@media (max-width:760px){
  .dtl-glyph{padding:7px 10px;min-height:34px;margin-left:6px}
  .dtl-glyph svg{width:13px;height:13px}
  .stepdetail{padding:7px 11px;min-height:34px}
  .evt-src,.tl-srcbtn{padding:6px 9px;min-height:32px}
}
/* rich scheme pages — testimony quotes, wire table, footnotes, framing */
.scheme-quote{margin:14px 0;padding:11px 17px;border-left:3px solid var(--accent-2);background:var(--panel-2);font-family:var(--sans);font-size:13.5px;line-height:1.6;color:var(--ink)}
.scheme-quote cite{display:block;margin-top:7px;font-style:normal;font-size:10.5px;color:var(--faint);font-family:var(--mono);letter-spacing:.01em}
.scheme-qa .qa-q{display:block;font-weight:600;color:var(--ink);margin-top:7px}
.scheme-qa .qa-q:first-child{margin-top:0}
.scheme-qa .qa-a{display:block;padding-left:16px;color:var(--dim)}
.scheme-qa .qa-note{display:block;font-style:italic;color:var(--faint);font-size:12px;margin:7px 0}
.fn-ref,a.fn-ref{font-size:.68em;vertical-align:super;color:var(--accent-2);text-decoration:none;font-family:var(--mono);padding:0 1px;font-weight:700}
.scheme-frame{margin:0 20px 8px;padding:13px 17px;border:1px solid var(--line-2);border-left:3px solid var(--accent);border-radius:5px;background:var(--panel-2);font-family:var(--sans);font-size:13.5px;line-height:1.6;color:var(--ink)}
.footnotes{margin:6px 20px 0;border-top:1px solid var(--line);padding-top:12px}
.footnotes ol{margin:0;padding-left:24px;display:flex;flex-direction:column;gap:5px}
.footnotes li{font-family:var(--sans);font-size:11.5px;line-height:1.5;color:var(--dim)}
.footnotes li[id]{scroll-margin-top:70px}
.wire-table{font-variant-numeric:tabular-nums}
.wire-table td:nth-child(2){white-space:nowrap;font-family:var(--mono);text-align:right}
.nowrap{white-space:nowrap}
.fig-h1.idchain{white-space:nowrap;font-size:clamp(14px,3.3vw,30px);letter-spacing:-.01em;overflow-wrap:normal}
.evtable td.chk{width:1%;text-align:center;white-space:nowrap;padding-left:8px;padding-right:8px}
.agent-strip{width:100%;height:auto}
.ag-lab{fill:var(--dim);font-family:var(--mono);font-size:9px}
.ag-ax{fill:var(--faint);font-family:var(--mono);font-size:8.5px}
.ag-base{fill:var(--panel-2);stroke:var(--line);stroke-width:1}
.ag-cane{fill:var(--c-sky)}.ag-other{fill:var(--c-coral)}
.pricevol{width:100%;height:auto;display:block}
.pv-area{fill:var(--c-sky);fill-opacity:.1;stroke:none}
.pv-line{fill:none;stroke:var(--c-sky);stroke-width:1.8;opacity:.95}
.pv-vol{fill:var(--c-vol);opacity:.7}
.pv-vol.pv-spike{fill:var(--c-amber);opacity:.95}
.pv-tag{fill:var(--c-rose);font-family:var(--mono);font-size:9px}
.pv-dis{fill:var(--c-rose);stroke:var(--panel);stroke-width:1}
.pv-clickable{cursor:pointer}
.wt{font-size:.7em;letter-spacing:1px;vertical-align:1.5px;white-space:nowrap}
.wt.wt3{color:var(--accent)}.wt.wt2{color:var(--accent-2)}
.hit-y{color:var(--accent);font-weight:700}.hit-n{color:var(--faint)}
.formula{font-family:var(--mono);font-size:11.5px;line-height:1.8;background:var(--panel-2);border:1px solid var(--line);padding:16px 14px;margin:0 0 14px;white-space:pre-wrap;color:var(--ink);overflow-x:auto;text-align:center}
.formula sub{font-size:.78em}
.model-note{font-family:var(--sans);font-size:12.5px;line-height:1.6;color:var(--dim);margin:0 0 12px}
.model-note b{color:var(--ink)}
.tiers{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.tier{font-family:var(--mono);font-size:10px;text-transform:lowercase;letter-spacing:.02em;padding:4px 9px;border:1px solid var(--line)}
.tier.t1{border-color:var(--accent);color:var(--accent)}
.tier.t2{border-color:var(--accent-2);color:var(--accent-2)}
.tier.t3{color:var(--dim)}
/* keep the three tier badges on a single row on mobile by scaling the font down */
@media (max-width:600px){.tiers{flex-wrap:nowrap;gap:5px}.tier{font-size:clamp(7.5px,2.4vw,10px);padding:4px 6px;white-space:nowrap}}
.scorecards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.scard{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--panel-2);padding:12px 15px;display:flex;align-items:center;gap:14px}
.sc-n{font-family:var(--mono);font-weight:800;font-size:30px;line-height:1;color:var(--accent)}
.sc-n span{font-size:14px;color:var(--faint)}
.sc-l{font-family:var(--mono);font-size:10.5px;line-height:1.5;color:var(--dim)}
.sc-l b{color:var(--ink)}
.precrime-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.mech-more{display:flex;flex-direction:column;gap:7px;margin:16px 0 0}
.mech-more-note{font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:.02em}
@media(max-width:760px){.scorecards{grid-template-columns:1fr}.dtl-d{width:84px}.dtl-narrow{max-width:100%}}

/* ---------- family-bloc footnote ---------- */
.ev-foot{font-family:var(--sans);font-size:12.5px;line-height:1.6;color:var(--dim);margin:14px 0 0;max-width:none}
.ev-foot .nf{color:var(--accent-3);margin-right:6px}
.ev-foot b{color:var(--ink)}
.ev-note{color:var(--faint);font-style:italic}

/* ---------- companion primer page ---------- */
.primer-toc{max-width:1000px;margin:0 auto;padding:14px 20px;display:flex;flex-direction:column;gap:6px}
.primer-toc a{width:fit-content;font-family:var(--sans);font-size:12.5px;color:var(--dim);text-decoration:none;border-bottom:1px solid transparent}
.primer-toc a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.primer-wrap{max-width:1000px}
.primerpage .fig-intro{max-width:1000px;padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:30px}
.primerpage .fig-intro .dek{max-width:none}
/* primer: per-concept example/resource link rows */
.primer-links{font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--dim);margin:10px 0 0;border-top:1px dashed var(--line);padding-top:8px}
.primer-links b{color:var(--ink);font-weight:700}
.primer-links a{color:var(--accent);text-decoration:none;white-space:nowrap}
.primer-links a:hover{text-decoration:underline}
.primer-links .nf{font-size:.95em}
/* reverse-merger vs normal-merger diagram */
.merger-fig{margin:16px 0 4px}
.merger-svg{display:block;width:100%;max-width:760px;height:auto;margin:0 auto}
.merger-svg .mg-node{fill:var(--panel);stroke:var(--ink);stroke-width:2}
.merger-svg .mg-shell{fill:color-mix(in srgb,var(--accent) 12%,var(--panel));stroke:var(--accent);stroke-width:2}
.merger-svg text{fill:var(--ink);font-family:var(--mono)}
.merger-svg .mg-label{font-size:12px;font-weight:700;text-anchor:middle}
.merger-svg .mg-sub{font-size:10px;fill:var(--dim);text-anchor:middle}
.merger-svg .mg-title{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;fill:var(--ink)}
.merger-svg .mg-title2{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;fill:var(--accent)}
.merger-svg .mg-note{font-size:10px;fill:var(--dim)}
.merger-svg .mg-noteA{fill:var(--accent)}
.merger-svg .mg-em{font-weight:700;fill:var(--accent)}
.merger-svg .mg-edge{fill:none;stroke:var(--ink);stroke-width:2;marker-end:url(#mg-arr)}
.merger-svg .mg-spin{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:5 4;marker-end:url(#mg-arrA)}
.merger-svg .mg-div{stroke:var(--line);stroke-width:1.5}
.merger-svg #mg-arr path{fill:var(--ink)}
.merger-svg .mg-arrowA{fill:var(--accent)}
.merger-fig figcaption{font-family:var(--sans);font-size:12px;line-height:1.55;color:var(--dim);margin-top:8px;max-width:760px}
.merger-fig figcaption b{color:var(--ink);font-weight:600}
/* all-nodes pipeline strip with hover/tap tooltips (node + edge) */
.pipemap-wrap{overflow-x:auto;margin-top:12px;padding:2px 0 10px;-webkit-overflow-scrolling:touch}
.pipemap{display:flex;align-items:stretch;min-width:max-content;gap:0}
.pm-node{flex:0 0 154px;border:1px solid var(--line);border-top:3px solid var(--line-2);background:var(--panel);padding:10px 12px;display:flex;flex-direction:column;gap:3px;cursor:pointer;transition:box-shadow .15s,transform .15s;outline:none}
.pm-node:hover,.pm-node:focus-visible{box-shadow:0 6px 18px rgba(0,0,0,.16);transform:translateY(-2px);position:relative;z-index:2;border-color:var(--ink)}
.pm-node.pm-op{border-top-color:var(--accent-2)}
.pm-node.pm-off{border-top-color:var(--accent-3)}
.pm-i{font-family:var(--mono);font-size:10px;color:var(--dim)}
.pm-name{font-family:var(--disp);font-weight:700;font-size:12.5px;line-height:1.16;color:var(--ink)}
.pm-date{font-family:var(--mono);font-size:9.5px;letter-spacing:.01em;color:var(--dim);margin-top:auto;padding-top:5px}
.pm-edge{flex:0 0 68px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 4px;cursor:pointer;position:relative}
.pm-edge::before{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:var(--line-2);z-index:0}
.pm-arrow{font-family:var(--mono);font-size:8.5px;line-height:1.25;color:var(--accent);background:var(--bg);padding:2px 3px;position:relative;z-index:1;max-width:62px}
.pm-edge:hover .pm-arrow,.pm-edge:focus-visible .pm-arrow{color:var(--ink);text-decoration:underline}
@media (max-width:640px){.pm-node{flex-basis:140px}}
/* "expand — full genealogy" popup */
.gviz-open{margin-top:8px;background:none;font:inherit;cursor:pointer}
.gviz-dialog:not([open]){display:none!important}
.gviz-dialog[open]{max-width:none;width:98vw;height:96vh;border:1px solid var(--accent);border-radius:6px;padding:0;background:var(--panel);color:var(--ink);box-shadow:0 18px 50px rgba(0,0,0,.45);overflow:hidden;display:flex;flex-direction:column}
.gviz-dialog::backdrop{background:rgba(0,0,0,.62)}
.gviz-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}
.gviz-title{font-family:var(--mono);font-size:12px;font-weight:700}
.gviz-title .nf{color:var(--accent);margin-right:6px}
.gviz-body{flex:1 1 auto;padding:20px 24px;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:16px}
.gviz-intro{max-width:840px;width:100%}
.gviz-intro h3{font-family:var(--disp);font-size:18px;color:var(--ink);margin:0 0 10px}
.gviz-intro p{font-family:var(--sans);font-size:13.5px;line-height:1.6;color:var(--dim);margin:0 0 10px;text-align:justify;hyphens:auto}
.gviz-intro p b{color:var(--ink)}
.gviz-diagram{width:100%;display:flex;justify-content:center}
.gviz svg{width:50%;height:auto;margin:0 auto}        /* diagram scaled to 50%, centered */
.gviz .vnode{opacity:1}
@media (max-width:720px){.gviz svg{width:100%}}
/* compact analysis tables */
.evtable.compact td,.evtable.compact th{padding:5px 9px}
.evtable.compact td.ev-num{width:1%}
.evtable.compact td:last-child,.evtable.compact th:last-child{width:1%;white-space:nowrap}
/* four-shells table: give the Company column its full width (no wrap); let the
   long description column wrap normally instead of the compact 1% nowrap default */
.shells-tbl td:first-child,.shells-tbl th:first-child{white-space:nowrap;width:1%}
.shells-tbl td:last-child,.shells-tbl th:last-child{width:auto}
.shells-tbl.nowrap td:last-child,.shells-tbl.nowrap th:last-child{white-space:nowrap}
.primer-sec{margin:0 0 34px;scroll-margin-top:20px}
.primer-sec .sec-num .sn{font-size:14px}
.primer-body{font-family:var(--sans);font-size:14px;line-height:1.7;color:var(--dim);max-width:none}
.primer-list{margin:0 0 14px;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.primer-list li{font-family:var(--sans);font-size:13.5px;line-height:1.55;color:var(--dim)}
.primer-list li b{color:var(--ink);font-weight:600}
.primer-body p{margin:0 0 12px}
.primer-body b{color:var(--ink);font-weight:600}.primer-body i{font-style:italic;color:var(--ink)}

/* ---------- evidence table ---------- */
.ev-wrap{overflow-x:auto;border:1px solid var(--line);background:var(--panel)}
.evtable{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11px;min-width:640px}
.evtable th{text-align:left;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);
  background:var(--panel-2);padding:9px 11px;border-bottom:1px solid var(--line-2);white-space:nowrap}
.evtable td{padding:9px 11px;border-bottom:1px solid var(--line);color:var(--dim);vertical-align:top;line-height:1.4}
.evtable td b{color:var(--accent);font-weight:700}
.evtable .ev-holder{font-family:var(--disp);font-weight:700;color:var(--ink);font-size:12px;white-space:nowrap}
.evtable .ev-rel{display:block;font-family:var(--mono);font-size:9px;font-weight:400;color:var(--faint);margin-top:3px;text-transform:lowercase}
.evtable .ev-rel b{color:var(--accent-3)}
.evtable .ev-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.evtable .ev-phone,.evtable td.m-hide,.evtable th.m-hide{white-space:nowrap;padding-left:7px;padding-right:7px}
.evtable td.ev-holder,.evtable td:nth-child(7){width:1%;white-space:nowrap}
.evtable .ev-phone b{color:var(--accent-2)}
.evtable tr.row-cane{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.evtable tfoot td{border-top:2px solid var(--line-2);border-bottom:none;color:var(--ink);font-size:10px}
.ev-legend{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.ev-key{font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--dim);padding-left:16px;position:relative}
.ev-key::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;background:var(--accent);}
.ev-key b{color:var(--ink);font-weight:700}
@media (max-width:760px){
  .evtable{min-width:0}
  .evtable .m-hide{display:none}
}

/* ---------- sankey (follow the money) ---------- */
.sankey-panel{margin-top:18px}
.sankey-wrap{width:100%;overflow:hidden}
svg.sankey{width:100%;height:auto;display:block}
.snode{stroke:none}
.s-med,.s-dai,.s-cede{fill:var(--accent-2)}
.s-sec,.s-off{fill:var(--accent)}
.s-davi{fill:var(--accent-3)}
.sband{fill-opacity:.3;stroke:none}
.b-med,.b-dai,.b-cede{fill:var(--accent-2)}
.b-sec,.b-off{fill:var(--accent)}
.b-mw{fill:var(--accent-3)}
.slabel{fill:var(--ink);font-family:var(--disp);font-weight:700;font-size:12px}
.ssub{fill:var(--faint);font-family:var(--mono);font-size:8.5px}
.sflow{fill:var(--dim);font-family:var(--mono);font-size:9px;font-weight:600}
.sflow.lblgold,.slabel.lblgold{fill:var(--accent)}
.sankey-note{font-family:var(--mono);font-size:10px;line-height:1.6;color:var(--dim);margin:10px 0 0;display:flex;gap:7px;align-items:flex-start}
.sankey-note .nf{color:var(--accent);flex:none;margin-top:1px}
.sankey-note b{color:var(--ink)}

/* ---------- statutes ---------- */
.statutes{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}
.statutes .s{font-family:var(--mono);font-size:10px;text-transform:lowercase;letter-spacing:.02em;border:1px solid var(--line);padding:5px 9px;background:var(--panel);color:var(--dim);display:inline-flex;align-items:center;gap:6px}
.statutes .s .nf{color:var(--accent);font-size:12px}
.statutes .s b{font-weight:700;color:var(--accent)}

.secnote{font-family:var(--mono);font-size:9.5px;letter-spacing:.02em;color:var(--faint);margin-top:12px;text-align:right;text-transform:lowercase}
/* table/source footnote — full width, consistent footnote font (matches .footnotes) */
.srcfoot{font-family:var(--sans);font-size:11.5px;line-height:1.5;color:var(--dim);margin:14px 0 0}
/* identity "play narration" badge + flying South-Park cane head (top-left) */
.narrate-cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px}
.caneplay{display:inline-flex;align-items:center;gap:7px;height:34px;box-sizing:border-box;font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent);border-radius:5px;padding:0 12px;cursor:pointer;background:none;text-decoration:none;transition:background .12s,color .12s}
.caneplay:hover,.caneplay.playing,.caneplay.walk-playing{background:var(--accent);color:var(--bg)}
.caneplay svg{width:13px;height:13px}
.caneplay-ico{width:22px;height:22px;border-radius:50%;background:var(--panel);margin-left:-4px}
.pod-play-tri{width:0;height:0;flex:0 0 auto;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent currentColor}
.canehead-fly{position:fixed;top:64px;left:14px;width:clamp(88px,15vw,148px);z-index:150;pointer-events:none;opacity:0;transform:translateY(-10px) scale(.9);transition:opacity .3s ease,transform .3s ease}
.canehead-fly.on{opacity:1;transform:translateY(0) scale(1)}
.canehead-fly img{width:100%;height:auto;display:block;filter:drop-shadow(0 8px 22px rgba(0,0,0,.32))}
.canehead-fly.talking img{animation:caneTalk .34s ease-in-out infinite alternate;transform-origin:50% 82%}
@keyframes caneTalk{from{transform:scale(1) rotate(-4deg)}to{transform:scale(1.07) rotate(4deg)}}
@media (prefers-reduced-motion:reduce){.canehead-fly.talking img{animation:none}}
@media print{.canehead-fly,.caneplay{display:none}}
/* Scheme-page consolidated narration choice popup (schemeNarrBadges → .snarr-dlg) */
.snarr-dlg{padding:0;border:1px solid var(--line-2);border-radius:10px;background:var(--panel);box-shadow:0 20px 50px rgba(0,0,0,.4);min-width:280px;max-width:420px}
.snarr-dlg[open]{display:flex;flex-direction:column}
.snarr-dlg:not([open]){display:none}
.snarr-dlg::backdrop{background:rgba(0,0,0,.45)}
.snarr-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line-2);gap:8px}
.snarr-title{font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--dim)}
.snarr-close{background:none;border:none;cursor:pointer;color:var(--dim);font-size:20px;line-height:1;padding:0;transition:color .12s;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;border-radius:6px}
.snarr-close:hover,.tts-x:hover,.court-x:hover,.pdf-close:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 12%,transparent)}
.snarr-close:focus-visible,.tts-x:focus-visible,.court-x:focus-visible,.pdf-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.snarr-close:hover{color:var(--ink)}
.snarr-body{display:flex;flex-direction:column;padding:8px}
.snarr-opt{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px;background:none;border:none;border-radius:7px;cursor:pointer;text-align:left;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink);transition:background .12s,color .12s;width:100%}
.snarr-opt:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}
.snarr-opt svg{width:13px;height:13px;vertical-align:middle}
.snarr-sub{display:block;font-size:10px;font-weight:400;color:var(--dim);text-transform:none;letter-spacing:0;margin-top:1px}
.snarr-opt:hover .snarr-sub{color:var(--accent)}
.snarr-opt-hd{display:flex;align-items:baseline;gap:7px;width:100%}
.snarr-glyph{flex:none;font-size:15px;line-height:1}
.snarr-opt-title{flex:1}
.snarr-dur{flex:none;font-size:10px;font-weight:400;color:var(--dim);font-family:var(--mono);white-space:nowrap}
.snarr-opt:hover .snarr-dur{color:var(--accent)}
/* <a> variant of snarr-opt (view document / download) — reset link decoration */
a.snarr-opt{text-decoration:none;color:var(--ink)}
a.snarr-opt:hover{color:var(--accent)}
@media print{.snarr-dlg{display:none!important}}
/* podcast source-material rows: actions right-justified; "view document" as a badge */
.pod-src-media{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;align-items:center;margin-top:6px}
.pod-src-doc{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);text-decoration:none;border:1px solid var(--line);border-radius:3px;padding:5px 9px;transition:background .12s,color .12s}
.pod-src-doc:hover{background:var(--accent);color:var(--bg)}
.pod-src-doc svg{width:11px;height:11px}

/* ---------- appendix ---------- */
.appendix{border:1px solid var(--line);border-top:3px solid var(--accent);background:var(--panel-2);padding:24px 22px;margin-top:60px}
.app-block{margin-top:22px}
.app-block h3{font-family:var(--disp);font-weight:700;font-size:15px;margin:0 0 10px;color:var(--ink)}
.app-block p{font-family:var(--sans);font-size:12.5px;line-height:1.65;margin:0 0 10px;color:var(--dim)}
.app-block p b{color:var(--ink);font-weight:600}
.citelist{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:9px}
.citelist li{font-family:var(--sans);font-size:12px;line-height:1.55;color:var(--dim)}
.citelist .cbb{color:var(--ink)}
.citelist .cnote{display:block;color:var(--faint);font-size:11px;margin-top:2px}
.citelist .cite{margin-left:6px;font-size:11px}
.citelist .cite .nf{font-size:12px}
.disclaimer{font-family:var(--mono);font-size:10px;color:var(--faint);line-height:1.7}

/* ---------- scroll reveal ---------- */
.sec,.appendix,.figrow{opacity:1;transform:none}
body.js .sec,body.js .appendix{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
body.js .sec.in,body.js .appendix.in{opacity:1;transform:none}
body.figpage.js .figrow{opacity:0;transform:translateY(16px) scale(.99);transition:opacity .5s ease,transform .5s ease}
body.figpage.js .figrow.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){body.js .sec,body.js .appendix,body.figpage.js .figrow{opacity:1;transform:none;transition:none}}

/* ---------- scrollytelling pipeline figure ---------- */
.fig-intro{max-width:1100px;margin:0 auto;padding:34px 20px 0}
.fig-h1{font-family:var(--disp);font-weight:700;font-size:clamp(26px,5vw,46px);line-height:1.04;letter-spacing:-.02em;color:var(--ink);margin:14px 0 14px}
.scrolly{display:flex;align-items:flex-start;gap:26px;max-width:1400px;margin:0 auto;padding:0 24px}
.scrolly__graphic{position:sticky;top:0;flex:1 1 60%;min-width:0;height:100vh;display:flex;align-items:center;justify-content:center;padding:0.4rem 0}
/* no frame — the diagram sits directly on the page background */
.svgcard{width:100%;max-height:98vh;border:none;background:transparent;padding:0;display:flex;align-items:center;justify-content:center}
.scrolly__graphic svg{width:100%;height:auto;max-height:96vh;overflow:visible}
.scrolly__steps{flex:1 1 40%;min-width:0;padding:42vh 0}
.step{min-height:40vh;padding:22px 24px;margin-bottom:22px;border:1px solid var(--line);background:var(--panel);border-radius:4px;display:flex;flex-direction:column;justify-content:center}
.scrolly.scrolly-js .step{opacity:.22;transition:opacity .5s ease,border-color .4s,background .4s}
.scrolly.scrolly-js .step.is-active{opacity:1;border-color:var(--accent);background:var(--panel-2)}
.step__label{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.step__title{font-family:var(--disp);font-weight:700;font-size:18px;color:var(--ink);margin-bottom:8px;letter-spacing:-.01em}
.step__body{font-family:var(--sans);font-size:13px;line-height:1.7;color:var(--dim)}
.step__body b{color:var(--ink);font-weight:600}
.step__date{display:block;font-family:var(--mono);font-size:10.5px;color:var(--accent);margin-top:8px}
.litstep .step__label{color:var(--accent-2);text-transform:none;letter-spacing:.02em;font-size:10px}
.lit-nofile{font-family:var(--mono);font-size:9.5px;color:var(--faint);font-style:italic;margin-left:4px}
/* SVG diagram */
.vbox{fill:var(--panel);stroke:var(--line-2);stroke-width:1.2}
.vnode.op .vbox{stroke:var(--accent-2)}
.vnode.lom .vbox{stroke:var(--accent)}
.vnode.cede .vbox{stroke:var(--accent-2)}
.vnode.sub .vbox{stroke:var(--accent-2)}
.vnode.shell .vbox{stroke:var(--accent-3);stroke-dasharray:3 2}
.vtitle{fill:var(--ink);font-family:var(--disp);font-weight:700;font-size:12px}
.vsub{fill:var(--dim);font-family:var(--mono);font-size:7.5px;letter-spacing:.01em}
.vsmall .vtitle{font-size:9px}
.vsmall .vsub{font-size:6.5px}
.vbranch{fill:none;stroke:var(--line-2);stroke-width:1;opacity:.65}
.vl1{fill:var(--faint);font-family:var(--mono);font-size:7.5px}
.vl2{font-family:var(--mono);font-size:7.5px;font-weight:600}
.lblmuted{fill:var(--faint)}.lblgold{fill:var(--accent)}.lblred{fill:var(--accent-3)}.lblblue{fill:var(--accent-2)}
.vedge{font-family:var(--mono);font-size:8px;fill:var(--dim)}
.vlink{stroke:var(--line-2);stroke-width:1.4;fill:none}
.vlink.dashed{stroke-dasharray:4 4}
.vlink.red{stroke:var(--accent-3)}
.varrow{fill:var(--line-2)}.varrow.red{fill:var(--accent-3)}.varrow.gold{fill:var(--accent)}.varrow.blue{fill:var(--accent-2)}
.vfan{fill:none;stroke-width:1.4}.vfan.gold{stroke:var(--accent)}.vfan.blue{stroke:var(--accent-2)}
.scrolly.scrolly-js .vnode{opacity:.45;transition:opacity .4s ease}
.scrolly.scrolly-js .vnode.active{opacity:1}
.scrolly.scrolly-js .vnode.active .vbox{stroke:var(--accent);stroke-width:2.2}
.fig-foot{max-width:1180px;margin:0 auto;padding:22px 20px 80px;border-top:1px solid var(--line)}
.fig-foot p{font-family:var(--mono);font-size:11px;line-height:1.7;color:var(--dim);display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:14px 0 0}
@media (max-width:900px){
  .scrolly{flex-direction:column;gap:0;padding:0 16px}
  .scrolly__graphic{position:static;flex:none;width:100%;height:auto;padding:1rem 0}
  .svgcard{max-height:none;padding:12px}
  .scrolly__graphic svg{max-height:none;height:auto}
  .scrolly__steps{flex:none;width:100%;padding:1.2rem 0 2rem}
  .step{min-height:auto;opacity:1!important;transform:none!important;margin-bottom:14px}
}

/* ---------- figure page + scheme figure ---------- */
.figwrap{padding-top:18px}
.backlink{color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.backlink .nf{transform:rotate(90deg)}
.backlink:hover{color:var(--ink)}
.applink{color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.applink:hover{color:var(--ink)}
.figrow2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.figcard{display:block;border:1px solid var(--line);background:var(--panel);text-decoration:none;color:var(--dim);overflow:hidden}
.figcard img{display:block;width:100%;height:auto;background:#fff;border-bottom:1px solid var(--line)}
.figcard .figcap{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;color:var(--dim);padding:9px 12px;text-transform:lowercase}
.figcard .figcap .nf{color:var(--accent-2);font-size:13px}
.figcard:hover{border-color:var(--accent-2)}
.figcard:hover .figcap{color:var(--ink)}
.figpage .figcard img{max-height:none}
.figbtn{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;color:var(--accent);text-decoration:none;border:1px solid var(--accent);padding:4px 9px;text-transform:lowercase;letter-spacing:.02em}
.figbtn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.figbtn .nf{font-size:12px}
@media (max-width:760px){.figrow2{grid-template-columns:1fr}}

/* ---------- PDF modal ---------- */
/* HHS-OIG LEIE exclusion popup (data-oig trigger -> dialog#oig-<key>) */
.cite--oig{cursor:pointer}
.oig-modal{border:none;padding:0;background:transparent;max-width:min(92vw,540px)}
.oig-modal::backdrop{background:rgba(10,12,20,.55);backdrop-filter:blur(2px)}
.oig-card{background:var(--card,#fff);color:var(--ink,#14161c);border:1px solid var(--line,#d9dbe3);border-radius:14px;padding:20px 22px 18px;box-shadow:0 24px 60px rgba(0,0,0,.35);font-family:"Space Grotesk",system-ui,sans-serif}
.oig-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.oig-badge{font:700 11px/1 "JetBrains Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:#a4161a;background:#a4161a14;border:1px solid #a4161a33;padding:5px 9px;border-radius:999px}
.oig-x{border:none;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--muted,#6b7080);padding:2px 6px;border-radius:8px}
.oig-x:hover{background:var(--line,#eceef4)}
.oig-name{margin:2px 0;font-size:20px;font-weight:700;letter-spacing:.01em}
.oig-status{margin:0 0 12px;font-size:13px;color:#a4161a}
.oig-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0 0 12px;font-size:13px}
.oig-dl dt{color:var(--muted,#6b7080);font-weight:600;white-space:nowrap}
.oig-dl dd{margin:0}
.oig-note{font-size:12px;line-height:1.5;color:var(--muted,#5a5f6e);border-top:1px solid var(--line,#eceef4);padding-top:10px;margin:0 0 12px}
.oig-actions{display:flex;flex-direction:column;gap:6px}
.oig-verify{font-weight:600;font-size:13px;color:#1c4ed8;text-decoration:none}
.oig-verify:hover{text-decoration:underline}
.oig-src{font:400 11px/1.4 "JetBrains Mono",monospace;color:var(--muted,#8a8f9e)}
[data-theme="dark"] .oig-card{background:#171922;color:#e7e9f0;border-color:#2a2d3a}
[data-theme="dark"] .oig-x:hover{background:#242735}
[data-theme="dark"] .oig-note{border-top-color:#2a2d3a}
.pdf-modal{position:fixed;inset:0;z-index:10050;display:none}
.pdf-modal.open{display:block}
/* cached-EDGAR-filings popup (two backdated submissions, highlighted) */
.filings-panel{inset:3vh 4vw}
.filings-stage{flex:1;overflow:auto;padding:16px 18px;background:var(--bg)}
.fil-intro{font-family:var(--sans);font-size:13px;line-height:1.6;color:var(--ink-2,var(--dim));max-width:900px;margin:0 auto 14px}
.fil-card{border:1px solid var(--line);background:var(--panel);margin:0 auto 16px;max-width:900px}
.fil-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.fil-type{font-family:var(--mono);font-weight:700;font-size:12px;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:1px 7px}
.fil-acc{font-family:var(--mono);font-size:11.5px;color:var(--ink)}
.fil-meta{font-family:var(--mono);font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.04em}
.fil-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:7px 12px;border-bottom:1px dashed var(--line)}
.fil-jlabel{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.fil-jump{font-family:var(--mono);font-size:10.5px;color:var(--accent);text-decoration:none;border:1px solid var(--line);border-radius:3px;padding:1px 7px;cursor:pointer}
.fil-jump:hover{background:var(--accent);color:var(--bg)}
.fil-raw{margin:0;max-height:46vh;overflow:auto;-webkit-overflow-scrolling:touch;padding:12px 14px;background:var(--bg);
  font-family:var(--mono);font-size:11px;line-height:1.5;color:var(--dim);white-space:pre-wrap;word-break:break-word}
.fil-raw mark.fil-hl{color:var(--ink);border-radius:2px;padding:0 1px;border-left:3px solid transparent}
mark.fil-hl--head{background:color-mix(in srgb,var(--accent) 22%,transparent);border-left-color:var(--accent)}
mark.fil-hl--name{background:color-mix(in srgb,#d4686a 26%,transparent);border-left-color:#d4686a}
mark.fil-hl--sig{background:color-mix(in srgb,#2d8a56 26%,transparent);border-left-color:#2d8a56}
mark.fil-hl--own{background:color-mix(in srgb,#b8862b 28%,transparent);border-left-color:#b8862b}
.filings-cta{margin:64px 0 26px}
.evt-acc{font-family:var(--mono);font-size:9.5px;color:var(--faint);letter-spacing:.02em}
@media (max-width:760px){.filings-panel{inset:0}.fil-raw{max-height:54vh}}
.pdf-backdrop{position:absolute;inset:0;background:rgba(10,9,7,.62);backdrop-filter:blur(2px)}
.pdf-panel{position:absolute;inset:3vh 3vw;background:var(--panel);border:1px solid var(--line-2);
  display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.4)}
/* controls on top, title underneath (stacked) — consistent across every source popup */
.pdf-toolbar{flex:none;display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:9px 14px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.pdf-tools{order:1;display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}
.pdf-title{order:2;font-family:var(--mono);font-size:12px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdf-btn{font-family:var(--mono);font-size:14px;line-height:1;cursor:pointer;background:transparent;color:var(--ink);
  border:1px solid var(--line-2);min-width:30px;height:28px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 7px;text-decoration:none}
.pdf-btn:hover{border-color:var(--accent);color:var(--accent)}
.pdf-btn .nf{font-size:14px}
.pdf-page{font-family:var(--mono);font-size:11px;color:var(--dim);min-width:54px;text-align:center}
.pdf-ext[href=""]{display:none}
.pdf-close{font-size:18px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;border-radius:6px;padding:0}
.pdf-body{flex:1;min-height:0;display:flex;align-items:stretch}
.pdf-stage{flex:1;min-width:0;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;background:var(--bg);padding:18px;position:relative}
.pdf-spinner{font-family:var(--mono);font-size:12px;color:var(--dim);text-align:center;padding:40px}
/* image-only/scanned-PDF notice — sits above the raster pages inside .pdf-stage */
.pdf-scan-notice{display:flex;align-items:flex-start;gap:8px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));
  border:1px solid var(--accent);border-radius:4px;color:var(--ink);padding:8px 10px;margin:0 0 14px;
  font-family:var(--sans);font-size:12.5px;line-height:1.5;max-width:640px}
.pdf-scan-notice[hidden]{display:none}
.pdf-scan-notice .nf{color:var(--accent);font-size:13px;flex:none;margin-top:2px}
.pdf-scan-notice a{color:var(--accent);font-weight:600;text-decoration:none;white-space:nowrap}
.pdf-scan-notice a:hover{text-decoration:underline}
.pdf-scan-dismiss{margin-left:auto;background:none;border:0;color:var(--dim);cursor:pointer;font-size:15px;line-height:1;padding:0 2px;flex:none}
.pdf-scan-dismiss:hover{color:var(--ink)}
#pdf-pages{display:flex;flex-direction:column;align-items:center;gap:14px}
#pdf-pages canvas{max-width:100%;height:auto;box-shadow:0 2px 14px rgba(0,0,0,.18);background:#fff}
#pdf-pages img{max-width:100%;height:auto;box-shadow:0 2px 14px rgba(0,0,0,.18);background:#fff}
#pdf-pages{width:100%}
/* HTML documents (formatted qui tam complaint) render in an iframe filling the stage */
.pdf-frame{width:100%;height:100%;border:0;background:#fff;display:block}
.pdf-modal.doc-html .pdf-stage{padding:0}
.pdf-modal.doc-html #pdf-pages{position:absolute;inset:0;display:block}
.pdf-modal.doc-html #pdf-prev,.pdf-modal.doc-html #pdf-next,.pdf-modal.doc-html #pdf-page,.pdf-modal.doc-html #pdf-zoomin,.pdf-modal.doc-html #pdf-zoomout{display:none}
/* Scanned/image-only PDFs: native <iframe> viewer (see .pdf-frame above), notice stays
   visible above it (unlike doc-html's full-bleed frame) — page-nav/zoom are meaningless here. */
.pdf-modal.doc-scan #pdf-prev,.pdf-modal.doc-scan #pdf-next,.pdf-modal.doc-scan #pdf-page,.pdf-modal.doc-scan #pdf-zoomin,.pdf-modal.doc-scan #pdf-zoomout{display:none}
/* Scanned docs have no text to enrich — give the native iframe the full panel width. */
.pdf-modal.doc-scan #pdf-enrich-more,.pdf-modal.doc-scan #pdf-enrich{display:none}
.pdf-modal.doc-scan .pdf-stage{flex:1;width:100%}
/* full-screen, fit-to-width PDF viewer on mobile so the canvas never overflows */
@media (max-width:760px){
  .pdf-panel{inset:0}
  /* PDF docs on mobile: plain BLOCK flow. DOM order is toolbar → pdf-enrich (summary band)
     → pdf-body (pdf-enrich-more stacks above pdf-stage), so summary+points appear above the PDF.
     No flex-shrink layers (fixes iOS canvas overlap). */
  .pdf-modal:not(.doc-html) .pdf-panel{display:block;overflow-y:auto}
  .pdf-modal:not(.doc-html) .pdf-toolbar{position:sticky;top:0;z-index:3}
  /* Mobile stacking: summary band (#pdf-enrich, above .pdf-body) → PDF → semantic triples.
     .pdf-stage is 2nd in the DOM, so flex-order pulls it above #pdf-enrich-more. */
  .pdf-modal:not(.doc-html) .pdf-body{display:flex;flex-direction:column}
  .pdf-modal:not(.doc-html) .pdf-stage{order:0;position:static;min-height:0;overflow-x:auto;overflow-y:visible;padding:18px 12px;border-bottom:1px solid var(--line-2)}
  .pdf-modal:not(.doc-html) .pdf-enrich-more{order:1;width:auto;border-right:none;border-bottom:none;overflow-y:visible;align-self:auto}
  /* JS sizes the canvas (fit-to-width, or larger for landscape pages); don't cap it
     so boosted landscape pages can exceed the stage and scroll horizontally */
  .pdf-modal:not(.doc-html) #pdf-pages canvas{max-width:none;height:auto;display:block;margin:0 auto}
  .pdf-modal:not(.doc-html) #pdf-pages{align-items:center}
  /* HTML docs keep a single full-height iframe pane */
  .pdf-modal.doc-html .pdf-panel{display:flex;flex-direction:column;overflow:hidden}
  .pdf-modal.doc-html .pdf-body{flex:1;min-height:0;display:flex;flex-direction:column}
  .pdf-modal.doc-html .pdf-stage{flex:1;min-height:0}
  .pdf-toolbar{gap:6px;padding:8px 10px}
  .pdf-title{order:2;white-space:normal;overflow:visible;text-overflow:clip}
}

/* ---------- responsive ---------- */
@media (max-width:760px){
  .hero-stats,.stats{grid-template-columns:repeat(3,1fr)}
  .hstat:nth-child(3),.stat:nth-child(3){border-right:none}
  .hstat:nth-child(n+4),.stat:nth-child(n+4){border-top:1px solid var(--line)}
  .ids,.noms-3,.ledger-3{grid-template-columns:1fr}
  .ids .id,.noms-3 .nom,.ledger-3 .cell{border-right:none;border-bottom:1px solid var(--line)}
  .ids .id:last-child,.noms-3 .nom:last-child,.ledger-3 .cell:last-child{border-bottom:none}
  .noms{grid-template-columns:repeat(2,1fr)}
  .noms .nom:nth-child(2){border-right:none}
  .noms .nom:nth-child(n+3){border-top:1px solid var(--line)}
  .ledger{grid-template-columns:repeat(2,1fr)}
  .ledger .cell:nth-child(2){border-right:none}
  .ledger .cell:nth-child(n+3){border-top:1px solid var(--line)}
  .acct{grid-template-columns:1fr}
  .acct .col{border-right:none;border-bottom:1px solid var(--line)}
  .acct .col:last-child{border-bottom:none}
  .bar{grid-template-columns:104px 1fr;grid-template-rows:auto auto;gap:4px 10px}
  .bar .val{grid-column:2;text-align:left;min-width:0}
  .callout{grid-template-columns:1fr}
  .arrow .alabel{position:static;transform:none;margin-top:6px}
  /* modals fill the screen and cap to the *visible* viewport (dvh) so nothing
     spills past the edges; the toolbar wraps so the close button is never pushed
     off-screen, and clears any notch/status bar. Applies to the PDF, info and
     filings popups, which all share .pdf-toolbar / .pdf-close. */
  .pdf-panel{inset:0}
  .pdf-panel,.pdf-panel.info-panel,.filings-panel{max-height:100dvh;height:100dvh}
  .pdf-toolbar{flex-wrap:wrap;gap:6px 8px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top))}
  .pdf-title{flex:1 1 100%;white-space:normal;font-size:11px;line-height:1.3}
  .pdf-tools{flex-wrap:wrap;justify-content:flex-end;gap:6px;width:100%}
  .pdf-btn{min-width:36px;height:34px}
}
@media print{body{background:#fff}.hero,.pdf-modal,.scrollcue{display:none}}

/* ══════════════ TTS narration (Kokoro) — site-wide ══════════════ */
.hero-actions{display:inline-flex;align-items:center;gap:8px}
.svgi{vertical-align:-0.125em}
#ttsGear[aria-expanded="true"]{border-color:var(--accent);color:var(--accent)}

/* popup — solid like the banana menu (var(--panel)), never see-through */
.tts-panel{position:fixed;right:18px;top:60px;z-index:140;width:368px;max-width:calc(100vw - 36px);
  max-height:calc(100vh - 80px);overflow-y:auto;background:var(--panel);color:var(--ink);
  border:1px solid var(--line-2);border-radius:9px;box-shadow:0 16px 44px rgba(0,0,0,.28);
  font-family:var(--mono);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.97);
  transform-origin:top right;transition:opacity .2s,transform .2s,visibility .2s}
.tts-panel.open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.tts-head{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;
  border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}
.tts-title{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.04em;text-transform:lowercase;color:var(--accent)}
.tts-x{background:transparent;border:none;color:var(--dim);cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:16px;width:30px;height:30px;flex:none;border-radius:6px}
.tts-x:hover{color:var(--accent)}
.tts-body{padding:12px 13px 14px;display:flex;flex-direction:column;gap:11px}
.tts-now{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.tts-ch-title{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink)}
.tts-ch-count{font-size:10.5px;color:var(--dim);flex:none}
.tts-transport{display:flex;align-items:center;gap:8px;justify-content:center}
.tts-transport button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  background:var(--panel-2);color:var(--ink);border:1px solid var(--line-2);border-radius:7px;
  width:38px;height:34px;font-size:16px;transition:border-color .15s,color .15s,background .15s}
.tts-transport button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.tts-transport button:disabled{opacity:.45;cursor:default}
/* play/pause emphasised by a coloured glyph + accent border, not a filled button */
.tts-transport .tts-main{width:50px;height:42px;background:transparent;color:var(--accent);border-color:var(--accent);font-size:19px}
.tts-transport .tts-main:hover:not(:disabled){background:transparent;color:var(--accent);filter:brightness(1.12)}
.tts-bar{height:6px;background:var(--line);border-radius:4px;overflow:hidden}
.tts-fill{height:100%;width:0;background:var(--accent);transition:width .2s}
.tts-sec{border:1px solid var(--line);border-radius:6px;background:var(--panel-2)}
.tts-sec>summary{cursor:pointer;padding:8px 11px;font-size:11px;text-transform:lowercase;letter-spacing:.05em;color:var(--dim);user-select:none}
.tts-sec[open]>summary{color:var(--accent);border-bottom:1px solid var(--line)}
.tts-sec>*:not(summary){margin:9px 11px}
.tts-lbl{display:flex;flex-direction:column;gap:4px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
.tts-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.tts-grid .wide{grid-column:1 / -1}
.tts-panel select,.tts-panel textarea{font-family:var(--mono);font-size:12px;color:var(--ink);background:var(--panel);border:1px solid var(--line-2);border-radius:4px;padding:6px 7px;width:100%}
.tts-text{resize:vertical;line-height:1.45;min-height:84px}
.tts-spv,.tts-szv,.tts-exv{color:var(--accent);font-size:10px}
.tts-panel input[type=range]{width:100%;accent-color:var(--accent)}
.tts-chk{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink);cursor:pointer}
.tts-chk input{accent-color:var(--accent)}
.tts-cleans{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--ink)}
.tts-cleans label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.tts-cleans input{accent-color:var(--accent)}
.tts-preload,.tts-speak-custom{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;cursor:pointer;background:var(--panel);color:var(--ink);border:1px solid var(--line-2);border-radius:5px;padding:7px 11px}
.tts-preload:hover,.tts-speak-custom:hover{border-color:var(--accent);color:var(--accent)}
.tts-actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-start}
/* compact, left-aligned, outlined — must not stretch to fill the popup width */
.tts-dl{flex:0 0 auto;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;cursor:pointer;background:transparent;color:var(--accent);border:1px solid var(--line-2);border-radius:5px;padding:7px 11px;text-decoration:none}
.tts-dl:hover{filter:brightness(1.08)}
.tts-status,.tts-status-lead{font-size:10.5px;line-height:1.5;color:var(--dim)}
.tts-status-lead{font-family:var(--sans);font-size:12px}
@media (max-width:560px){.tts-panel{top:auto;bottom:12px;right:12px;left:12px;width:auto}}

/* floating talking-head avatar */
.tts-head-avatar{position:fixed;z-index:120;width:150px;display:none;filter:drop-shadow(0 8px 20px rgba(0,0,0,.3))}
.tts-head-avatar.on{display:block}
.tts-head-avatar[data-corner="br"]{right:18px;bottom:18px}
.tts-head-avatar[data-corner="bl"]{left:18px;bottom:18px}
.tts-head-avatar[data-corner="tr"]{right:18px;top:64px}
.tts-head-avatar[data-corner="tl"]{left:18px;top:64px}
.tts-head-svg{width:100%}
/* the head is tappable in the walk player: single tap → mini controls, double → settings */
.tts-head-tappable .tts-head-svg{cursor:pointer}
.walk-headctl{position:fixed;z-index:9991;display:flex;gap:6px;padding:6px;border-radius:8px;background:var(--panel);border:1px solid var(--accent);box-shadow:0 6px 20px rgba(0,0,0,.4)}
.walk-headctl[hidden]{display:none}
.tts-head-x{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:1px solid var(--line-2);background:var(--panel);color:var(--dim);cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}
.tts-head-avatar:hover .tts-head-x{opacity:1}
.tts-head-x:hover{color:var(--accent);border-color:var(--accent)}

/* ══════════════ first-visit terms gate ══════════════ */
.terms-gate{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(8,9,11,.74);backdrop-filter:blur(3px);opacity:0;transition:opacity .25s}
.terms-gate.open{opacity:1}
.terms-card{background:var(--panel);color:var(--ink);border:1px solid var(--line-2);border-radius:12px;
  max-width:616px;width:100%;max-height:90vh;overflow-y:auto;padding:26px 28px 34px;box-shadow:0 24px 70px rgba(0,0,0,.45);
  transform:translateY(10px) scale(.98);transition:transform .25s}
.terms-gate.open .terms-card{transform:none}
.terms-h{font-family:var(--sans);font-size:21px;margin:0 0 6px;color:var(--ink)}
.terms-lead{font-family:var(--sans);font-size:13.5px;color:var(--dim);margin:0 0 16px;line-height:1.5}
.terms-list{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:11px}
.terms-list li{font-family:var(--sans);font-size:13.5px;line-height:1.5;color:var(--ink);padding-left:18px;position:relative}
.terms-list li::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.terms-list b{color:var(--ink)}
.terms-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.terms-agree{flex:1 1 auto;font-family:var(--mono);font-size:13px;cursor:pointer;background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:7px;padding:12px 16px}
.terms-agree:hover{background:var(--accent);color:var(--bg)}
.terms-leave{font-family:var(--mono);font-size:13px;cursor:pointer;background:transparent;color:var(--dim);border:1px solid var(--line-2);border-radius:7px;padding:12px 16px}
.terms-leave:hover{color:var(--accent);border-color:var(--accent)}
.terms-tos-line{font-family:var(--sans);font-size:12.5px;color:var(--dim);margin:14px 0 0}
.terms-tos{color:var(--accent);text-decoration:none;font-weight:600}
.terms-tos:hover{text-decoration:underline}

/* header terms badge — square like the theme/gear toggles; border is red until
   accepted, green after; click opens the Terms popup */
/* red when NOT accepted; neutral (no green) once accepted */
.terms-badge{display:flex;align-items:center;justify-content:center;height:26px;padding:0 9px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.06em;line-height:1;color:#c0392b;background:transparent;border:1.5px solid #c0392b;border-radius:2px;cursor:pointer;flex:none}
.terms-badge.ok{color:var(--dim);border-color:var(--line-2)}
.terms-badge:hover{color:var(--accent);border-color:var(--accent)}
.terms-modal{width:min(900px,94vw);height:88vh;max-width:none;max-height:none;padding:0;border:1px solid var(--line-2);border-radius:12px;background:var(--panel);overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.4)}
.terms-modal[open]{display:flex;flex-direction:column}
.terms-modal:not([open]){display:none}
.terms-modal .notice-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.tmod-frame{flex:1 1 auto;display:block;width:100%;border:none;background:#fff}
.tts-readlink{font-family:var(--mono);font-size:10px;color:var(--accent);text-decoration:none;margin-left:auto;margin-right:10px;white-space:nowrap}
.tts-readlink:hover{text-decoration:underline}

/* model-download offer toast (after accepting terms) */
.tts-toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(12px);z-index:200;
  max-width:430px;width:calc(100vw - 32px);background:var(--panel);color:var(--ink);border:1px solid var(--line-2);
  border-radius:11px;box-shadow:0 18px 48px rgba(0,0,0,.32);opacity:0;visibility:hidden;
  transition:opacity .25s,transform .25s,visibility .25s}
.tts-toast.open{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.tts-toast-body{padding:15px 17px;font-family:var(--sans)}
.tts-toast-body b{font-size:14px;display:inline-flex;align-items:center;gap:7px;color:var(--ink)}
.tts-toast-body b .svgi{color:var(--accent)}
.tts-toast-body p{font-size:12.5px;color:var(--dim);line-height:1.5;margin:7px 0 12px}
.tts-toast-bar{height:6px;background:var(--line);border-radius:4px;overflow:hidden;margin-bottom:11px}
.tts-toast-fill{height:100%;width:0;background:var(--accent);transition:width .2s}
.tts-toast-actions{display:flex;gap:9px}
.tts-toast-yes{flex:1;font-family:var(--mono);font-size:12px;cursor:pointer;background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:9px 12px}
.tts-toast-yes:hover{filter:brightness(1.08)}
.tts-toast-yes:disabled{opacity:.6;cursor:default}
.tts-toast-no{font-family:var(--mono);font-size:12px;cursor:pointer;background:transparent;color:var(--dim);border:1px solid var(--line-2);border-radius:6px;padding:9px 12px}
.tts-toast-no:hover{color:var(--accent);border-color:var(--accent)}
.terms-meta{margin:14px 0 0;border:1px solid var(--line-2);border-radius:8px;background:rgba(128,128,128,.06);padding:12px 14px}
.terms-meta-h{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.terms-meta-list{margin:0;padding:0}
.tm-row{display:grid;grid-template-columns:104px 1fr;gap:10px;padding:3px 0;font-family:var(--mono);font-size:11px;line-height:1.4}
.tm-row dt{color:var(--dim)}
.tm-row dd{margin:0;color:var(--ink);word-break:break-word}

/* ══════════════ /podcast page ══════════════ */
.pod-sub{font-family:var(--mono);font-size:12px;color:var(--dim);margin:0 0 14px}
.pod-sub a{color:var(--accent);text-decoration:none}
/* larger, more descriptive per-section intro */
.pod-sub-lg{font-family:var(--sans);font-size:14.5px;line-height:1.62;color:var(--ink);max-width:none}
/* chapter table of contents (audiobook TOC): chapter name + its duration, collapsible */
.pod-toc-wrap{margin:2px 0 6px}
.pod-toc-sum{cursor:pointer;font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);list-style:none;display:inline-flex;align-items:center;gap:6px;padding:4px 0}
.pod-toc-sum::-webkit-details-marker{display:none}
.pod-toc-sum::before{content:"\25B8";display:inline-block;transition:transform .15s}
.pod-toc-wrap[open] .pod-toc-sum::before{transform:rotate(90deg)}
.pod-toc{list-style:none;margin:6px 0 4px;padding:0;columns:2;column-gap:34px}
@media(max-width:640px){.pod-toc{columns:1}}
.pod-toc-item{display:flex;align-items:baseline;gap:8px;padding:3px 0;break-inside:avoid;font-family:var(--sans);font-size:12.5px;color:var(--ink)}
.pod-toc-click{cursor:pointer;padding:3px 6px;margin:0 -6px;border-radius:5px;transition:background .12s,color .12s}
.pod-toc-click:hover,.pod-toc-click:focus-visible{background:color-mix(in srgb,var(--accent) 12%,transparent);outline:none}
.pod-toc-click:hover .pod-toc-n,.pod-toc-click:focus-visible .pod-toc-n{color:var(--accent)}
.pod-toc-n{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--dim);flex:none}
.pod-toc-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pod-toc-d{font-family:var(--mono);font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums;flex:none}
.pod-count{color:var(--faint)}
.pod-list{display:flex;flex-direction:column;gap:8px}
.pod-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2)}
.pod-book{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 8px;padding:11px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
/* right-justify the narration "read transcript" button on the podcast page */
.pod-book .narrate-cta-row{margin-left:auto}
.pod-playall{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:6px;padding:8px 16px;cursor:pointer}
.pod-playall:hover{filter:brightness(1.08)}
/* "Play full audiobook" — filled accent: the primary listen action, distinct from the outline per-chapter reading button and the old download glyph */
.pod-playfull{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:6px;padding:8px 16px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.pod-playfull:hover{filter:brightness(1.08)}
.pod-playfull .nf{font-size:13px}
.pod-book-meta{font-family:var(--mono);font-size:10.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;margin-right:auto}
.pod-book .pod-src-doc{font-size:11px;padding:7px 12px}
.pod-book .pod-src-doc svg{width:12px;height:12px}
.pod-play{flex:none;white-space:nowrap;justify-self:end;width:auto}
.court-prose{padding:2px 0}
.court-w{border-radius:3px;transition:background .12s,color .12s}
.court-w.on{background:var(--accent);color:var(--bg)}
.court-prose p{margin:0 0 11px;color:var(--ink);font-size:14px;line-height:1.6}
.court-prose p.court-turn{margin-top:15px}
.court-prose p.court-turn:first-child{margin-top:0}
.court-empty{color:var(--dim);font-style:italic}
.pod-row-h{display:flex;align-items:center;gap:10px;min-width:0}
.pod-n{font-family:var(--mono);font-size:11px;color:var(--faint);flex:none}
.pod-ct{font-family:var(--sans);font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pod-audio{height:34px;width:240px;max-width:42vw}
.pod-dl{font-family:var(--mono);font-size:11px;color:var(--accent);text-decoration:none;border:1px solid var(--line-2);border-radius:5px;padding:5px 9px;white-space:nowrap}
.pod-dl:hover{border-color:var(--accent)}
@media (max-width:640px){.pod-row{grid-template-columns:1fr;gap:8px}.pod-audio{width:100%;max-width:none}}
.pod-srcgrid{display:flex;flex-direction:column;gap:14px;margin-top:6px}
.pod-dur{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--faint);flex:none}
/* Listening guide — recommended order + per-playlist time commitment. */
.pod-guide{margin-top:20px;border:1px solid var(--line);border-radius:10px;padding:18px 20px;background:var(--panel-2)}
.pod-guide-h{font-family:var(--sans);font-size:15px;margin:0 0 12px;color:var(--ink)}
.pod-guide-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.pod-guide-list>li{display:flex;gap:12px;align-items:flex-start}
.pod-guide-n{flex:none;width:26px;height:26px;border-radius:50%;background:transparent;color:var(--accent);border:1.5px solid currentColor;box-sizing:border-box;font-family:var(--mono);font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.pod-guide-list b{font-family:var(--sans);font-size:14px;color:var(--ink)}
.pod-guide-dur{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accent);margin-left:8px;white-space:nowrap}
.pod-guide-d{font-size:13px;color:var(--dim);line-height:1.5}
.pod-guide-total{margin:14px 0 0;font-size:13px;color:var(--dim);border-top:1px solid var(--line);padding-top:12px}
.pod-srccat{border:1px solid var(--line);border-radius:8px;padding:14px 16px;background:var(--panel-2)}
.pod-srch{font-family:var(--sans);font-size:15px;margin:0 0 6px;color:var(--ink)}
.pod-srcblurb{font-family:var(--sans);font-size:12.5px;color:var(--dim);line-height:1.5;margin:0 0 10px}
.pod-srclist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.pod-src-item{font-family:var(--sans);font-size:12.5px;color:var(--ink);display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:8px 0;border-bottom:1px solid var(--line)}
.pod-src-item:last-child{border-bottom:none}
.pod-src-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pod-src-note{margin:0;font-size:12.5px;color:var(--dim);line-height:1.5}
.pod-src-quote{margin:2px 0;padding:8px 13px;border-left:3px solid var(--accent);background:var(--panel-2);border-radius:0 6px 6px 0;font-size:13px;font-style:italic;color:var(--ink);line-height:1.55}
.pod-src-qcite{display:block;margin-top:5px;font-family:var(--mono);font-size:10.5px;font-style:normal;color:var(--dim)}
.pod-src-qtime{color:var(--accent);font-weight:700}
.pod-src-media{display:flex;align-items:center;gap:10px;justify-content:flex-end}
.pod-src-media .pod-audio{height:32px;width:280px;max-width:52vw}
.pod-src-m{color:var(--dim)}
.pod-src-doc{color:var(--accent);text-decoration:none;font-size:11px}
.pod-badge{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:10px;white-space:nowrap}
.pod-src-line .pod-badge{margin-left:auto}
.pod-badge.pending{color:#9a7a2e;background:rgba(200,160,40,.14)}
.pod-badge.ready{color:#2e9e5b;background:rgba(46,158,91,.14)}

/* narration player: speed + auto-advance row */
.tts-playrow{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.tts-playrow .tts-lbl{flex:1}

/* ══════════════ first-visit "animated reader" modal ══════════════ */
.reader-gate{position:fixed;inset:0;z-index:310;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(8,9,11,.72);backdrop-filter:blur(3px);opacity:0;transition:opacity .25s}
.reader-gate.open{opacity:1}
.reader-card{display:flex;gap:18px;align-items:center;background:var(--panel);color:var(--ink);border:1px solid var(--line-2);border-radius:14px;max-width:600px;width:100%;padding:22px 24px;box-shadow:0 24px 70px rgba(0,0,0,.45);transform:translateY(10px) scale(.98);transition:transform .25s}
.reader-gate.open .reader-card{transform:none}
.reader-head{flex:0 0 160px;width:160px;filter:drop-shadow(0 6px 16px rgba(0,0,0,.25))}
.reader-head-svg{width:100%}
.reader-body{flex:1;min-width:0}
.reader-h{font-family:var(--sans);font-size:20px;margin:0 0 8px;color:var(--ink)}
.reader-p{font-family:var(--sans);font-size:13.5px;line-height:1.55;color:var(--dim);margin:0 0 16px}
.reader-actions{display:flex;gap:10px;flex-wrap:wrap}
.reader-yes{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:13px;cursor:pointer;background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:7px;padding:11px 15px}
.reader-yes:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.reader-no{font-family:var(--mono);font-size:13px;cursor:pointer;background:transparent;color:var(--dim);border:1px solid var(--line-2);border-radius:7px;padding:11px 15px}
.reader-no:hover{color:var(--accent);border-color:var(--accent)}
@media (max-width:560px){.reader-card{flex-direction:column;text-align:center}.reader-head{flex-basis:150px;width:150px}.reader-actions{justify-content:center}}

/* ══════════════ courtroom karaoke transcript popup ══════════════ */
.pod-listen{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;cursor:pointer;background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:5px;padding:6px 10px;text-decoration:none}
.pod-listen-nohead{min-width:13rem;justify-content:center}
.pod-listen:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.court-pop{position:fixed;inset:0;z-index:10100;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(8,9,11,.74);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.court-pop.open{opacity:1;visibility:visible}
.court-card{display:flex;flex-direction:column;background:var(--panel);color:var(--ink);border:1px solid var(--line-2);border-radius:12px;max-width:760px;width:100%;max-height:88vh;box-shadow:0 24px 70px rgba(0,0,0,.5)}
/* Header = two rows: title+subtitle, then the read-transcript / expand / close actions. */
.court-head{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:14px 18px;border-bottom:1px solid var(--line)}
.court-titles{min-width:0}
.court-title{font-family:var(--sans);font-size:17px;line-height:1.25;margin:0;color:var(--ink)}
.court-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.court-read{display:inline-flex;align-items:center;height:30px;padding:0 4px;margin-right:auto;font-family:var(--mono);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--dim);text-decoration:none;white-space:nowrap;flex:none}
.court-read:hover{color:var(--accent)}
.court-read[hidden]{display:none}
/* highlights ⇄ full toggle — lives in the readbar; matches the prev/next/full buttons. */
.court-hl{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:30px;box-sizing:border-box;padding:0 12px;border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:7px;cursor:pointer;font-family:var(--mono);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;flex:none;white-space:nowrap}
.court-hl:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.court-hl[hidden]{display:none}
.court-cite{display:block;font-family:var(--mono);font-size:11px;color:var(--dim);margin-top:4px;font-style:normal}
.court-x{background:transparent;border:none;color:var(--dim);cursor:pointer;font-size:18px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;border-radius:6px;padding:0}
.court-x:hover{color:var(--accent)}
.court-bar{display:flex;align-items:center;gap:10px;padding:11px 18px;border-bottom:1px solid var(--line)}
.court-play{display:inline-flex;align-items:center;justify-content:center;width:40px;height:34px;border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:7px;cursor:pointer;font-size:17px;flex:none}
.court-play:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.court-seek{flex:1;accent-color:var(--accent)}
.court-time{font-family:var(--mono);font-size:10px;color:var(--dim);flex:none;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;cursor:pointer}
.court-time:hover{color:var(--accent)}
/* white-background glyph/label tooltip (download file names, truncated chapter titles) */
.court-tip{position:fixed;transform:translateX(-50%);background:#fff;color:#1a1a1a;border:1px solid var(--line-2);border-radius:6px;padding:7px 11px;font-family:var(--sans);font-size:12px;font-weight:400;line-height:1.45;white-space:normal;width:max-content;max-width:320px;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:10120;pointer-events:none}
.court-tip[hidden]{display:none}
.court-dl{display:inline-flex;align-items:center;color:var(--dim);text-decoration:none;flex:none}
.court-dl:hover{color:var(--accent)}
.court-script{overflow-y:auto;padding:14px 18px;font-family:var(--sans);font-size:14px;line-height:1.6}
/* talking-head avatar mounted inside the reading popup (audiobook mode) */
.court-av{display:flex;justify-content:center;padding:12px 0 0 0}
.court-av[hidden]{display:none}
.court-av .tts-head-avatar.in-popup{position:static!important;inset:auto!important;margin:0!important;width:240px;max-width:46%}
/* expand-to-fullscreen toggle (forensic-brief + audiobook popups) */
.court-expand{background:transparent;border:none;color:var(--dim);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;border-radius:6px;padding:0}
.court-expand:hover{color:var(--accent);background:color-mix(in srgb,var(--ink) 12%,transparent)}
.court-pop.court-max .court-card{max-width:97vw!important;width:97vw!important;height:95vh!important;max-height:95vh!important}
.court-pop.court-max.court-with-doc .court-player-panel{width:min(460px,40%)}
/* audiobook chapter navigation inside the reading popup */
.court-readbar{display:flex;align-items:center;gap:10px;padding:8px 18px;border-bottom:1px solid var(--line)}
.court-readbar[hidden]{display:none}
/* Single-recording popups (depositions/§341) show ONLY the highlights⇄full toggle. */
.court-readbar.court-toggle-only{justify-content:flex-end}
.court-readbar.court-toggle-only .court-prev,.court-readbar.court-toggle-only .court-next,.court-readbar.court-toggle-only .court-chlabel{display:none}
.court-readbar.court-toggle-only .court-full{margin-left:0} /* group both version buttons together */
/* active version — subtle indicator (underline + bold, like .walk-read.on), not a fill;
   the inactive version button is dimmed so the current one reads clearly. */
.court-hl.court-ver-on,.court-full.court-ver-on{text-decoration:underline;text-underline-offset:3px;font-weight:800}
.court-readbar.court-toggle-only .court-hl:not(.court-ver-on),.court-readbar.court-toggle-only .court-full:not(.court-ver-on){opacity:.5}
.court-nav{display:inline-flex;align-items:center;justify-content:center;width:34px;height:30px;border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:7px;cursor:pointer;font-size:15px;flex:none}
.court-nav:disabled{opacity:.3;cursor:default}
.court-chlabel{flex:1;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.court-chaps{flex:none;max-height:30vh;overflow-y:auto;padding:8px 12px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.court-chaps[hidden]{display:none}
.court-chap{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;padding:7px 10px;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--ink);font-family:var(--sans);font-size:13px}
.court-chap:hover{background:var(--hover,rgba(127,127,127,.12))}
.court-chap.on{background:var(--accent);color:var(--bg)}
.court-chap-n{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accent);flex:none}
.court-chap.on .court-chap-n{color:var(--bg)}
.court-chap-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.court-chap-d{font-family:var(--mono);font-size:10.5px;color:var(--dim);flex:none;font-variant-numeric:tabular-nums}
.court-chap.on .court-chap-d{color:var(--bg)}
.court-chap-total{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--dim);text-align:right;padding:8px 12px 2px;border-top:1px solid var(--line);margin-top:4px;font-variant-numeric:tabular-nums}
/* floating transcript popup (read-transcript badge) */
.tr-modal{position:fixed;inset:0;z-index:340;display:flex;align-items:center;justify-content:center;padding:20px}
.tr-modal[hidden]{display:none}
.tr-back{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.tr-panel{position:relative;display:flex;flex-direction:column;background:var(--panel);color:var(--ink);border:1px solid var(--accent);border-radius:8px;max-width:720px;width:100%;max-height:86vh;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.tr-bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
.tr-title{font-family:var(--mono);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tr-x{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;font-size:15px;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:5px;cursor:pointer;flex:none}
.tr-x:hover{background:var(--accent);color:var(--bg)}
.tr-body{overflow-y:auto;padding:16px 20px}
.tr-ch{margin:0 0 18px}
.tr-ch-h{font-family:var(--mono);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--accent);margin:0 0 6px}
.tr-body p{font-family:var(--sans);font-size:14px;line-height:1.65;margin:0 0 10px}
.tr-note{font-family:var(--sans);font-size:13px;color:var(--muted,#888)}
.court-line{margin:0 0 9px;padding:5px 8px;border-radius:6px;color:var(--dim);cursor:pointer;transition:background .15s,color .15s}
.court-line:hover{background:var(--panel-2)}
.court-line.on{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--ink)}
.court-spk{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-right:6px}
/* static by-speaker excerpts (wiretap line sheets): same look, not click-to-seek */
.court-line-static{cursor:default}
.court-line-static:hover{background:transparent}
/* PDF download beside the mp3 download in the player bar */
.court-dl-pdf{display:inline-flex;align-items:center;gap:3px;color:var(--dim);text-decoration:none;flex:none}
.court-dl-pdf:hover{color:var(--accent)}
.court-dl-pdf[hidden]{display:none}
.court-dl-lbl{font-family:var(--mono);font-size:10px;font-weight:700}
/* "▶ full version" button in the reading readbar */
.court-full{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;gap:4px;height:30px;box-sizing:border-box;padding:0 12px;border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:7px;cursor:pointer;font-family:var(--mono);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.court-full:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.court-full[hidden]{display:none}
/* "open page" link beside the podcast Listen button (narrated pages only) */
.pod-openpage{display:inline-flex;align-items:center;gap:5px;margin-left:12px;color:var(--dim);text-decoration:none;font-family:var(--mono);font-size:11px}
/* open-page/PDF glyph link after a site-narration title */
.pod-titlelink{margin-left:.4em;color:var(--faint);text-decoration:none;font-size:.72em;vertical-align:middle}
.pod-titlelink:hover{color:var(--accent)}
.pod-openpage:hover{color:var(--accent)}
@media(max-width:560px){.court-card{max-height:92vh}}
/* court-player-panel: transparent flex wrapper in normal mode, right panel in split mode */
.court-player-panel{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}
/* Split layout: document viewer left, player right */
.court-pop.court-with-doc .court-card{flex-direction:row;align-items:stretch;max-width:min(1300px,97vw);height:86vh;max-height:86vh}
.court-doc-panel{display:flex;flex-direction:column;flex:1;min-width:0;border-right:1px solid var(--line);overflow:hidden}
.court-doc-panel[hidden]{display:none!important}
.court-pop.court-with-doc .court-player-panel{flex:none;width:500px;min-width:320px}
.court-doc-frame{width:100%;flex:1;border:none;background:var(--panel-2)}
.court-pop.court-with-doc .court-script{flex:1}
@media(max-width:760px){.court-pop.court-with-doc .court-card{flex-direction:column;height:auto;max-height:94vh}.court-doc-panel{flex:none!important;height:42vh;border-right:none;border-bottom:1px solid var(--line)}.court-pop.court-with-doc .court-player-panel{flex:1;width:auto;min-width:0}}
.litidx-listen{color:var(--accent);border-color:var(--accent)}
.kd-listen{display:flex;justify-content:flex-start;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 2px}
body[data-scheme="wallace"] .kd-listen{justify-content:flex-end}
body[data-scheme="davi"] .kd-listen{justify-content:flex-end}
body[data-scheme="thomas-wong"] .kd-listen{justify-content:flex-end}
/* Davi depo listen button matches the play-narration (.caneplay) button height. */
/* Recording "listen + read transcript" buttons match the play-narration (.caneplay)
   height/size across every scheme + the litigation cards (davi was already correct). */
.kd-listen .litidx-listen,.kd-listen .pod-listen{height:34px;box-sizing:border-box;font-size:11px;padding:0 12px;border-radius:5px}
/* Litigation case-index cards: listen + read buttons right-justified. */
.lit-index .kd-listen{justify-content:flex-end}
.kd-soon{display:inline-block;margin-left:.35em;font-style:italic;color:var(--faint);font-size:.92em}
/* space the "view both cached edgar submissions" CTA off the bottom of the filings table */
.primer-body .filings-cta,.filings-cta{margin-top:28px;margin-bottom:8px}
.primer-body .ev-wrap,.ev-wrap{margin-bottom:6px}
/* sworn-testimony action row (identity.html Cane deposition) */
.depo-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:16px 0 4px}
/* facts pane: ghost the PDF viewer's control bar so the "1." aligns to the top of
 * the PDF page (below the title + page controls); narration button sits under the list */
.kd-pane-facts .ip-bar-ghost{height:38px}
.kd-listen.kd-listen-facts{justify-content:flex-start;margin:16px 0 2px}
/* paired-exhibit block under the deposition (e.g. the pending promissory-note email) */
.depo-pair{margin-top:20px;padding-top:16px;border-top:1px dashed var(--line)}
.depo-pair .kd-title{opacity:.9}
/* §341 real-audio buttons (highlights + full) — space them apart */
.kd-audio{gap:8px;flex-wrap:wrap}
.kd-dur,.narr-dur{opacity:.68;font-variant-numeric:tabular-nums;margin-left:.4em;font-weight:500;font-family:var(--mono);font-size:.82em}
/* in-viewer "play narration" chip — unfilled, sits beside the doctype badge in the
 * enrichment header; opens the audio/courtroom modal on top of the PDF viewer */
.pe-chip.pe-narrate{cursor:pointer;background:transparent;color:var(--accent);border:1px solid var(--accent);font-weight:600;white-space:nowrap}
.pe-chip.pe-narrate:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}
.cik{font-family:var(--mono);font-size:9px;color:var(--faint);margin-left:5px;white-space:nowrap}

/* AI document enrichment panel in the PDF viewer */
/* summary band — full-width strip between toolbar and pdf-body */
.pdf-enrich{flex:none;padding:10px 16px;border-bottom:1px solid var(--line-2);font-family:var(--sans);background:var(--panel-2);overflow-wrap:anywhere}
/* left column — numbered points LEFT of the PDF; align-self:stretch so it fills body height */
.pdf-enrich-more{flex:none;width:clamp(260px,28vw,420px);align-self:stretch;overflow-y:auto;border-right:1px solid var(--line-2);background:var(--panel-2);padding:4px 14px 14px;font-family:var(--sans);overflow-wrap:anywhere}
.pdf-enrich[hidden],.pdf-enrich-more[hidden]{display:none}
.pe-head{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}
.pe-title{font-size:14px;color:var(--ink);line-height:1.3}
.pe-cite{font-family:var(--mono);font-size:10.5px;color:var(--dim);font-style:normal}
.pe-sent{font-size:13px;color:var(--ink);line-height:1.5;margin:0 0 6px}
.pe-more{font-size:12.5px;color:var(--dim)}
.pe-more summary{cursor:pointer;font-family:var(--mono);font-size:10.5px;text-transform:lowercase;letter-spacing:.04em;color:var(--accent)}
.pe-more p{margin:7px 0 0;line-height:1.55;color:var(--ink)}
.pe-ai{display:inline-block;margin-top:7px;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}

/* enrichment: scheme/statute chips + semantic-triple table */
.pe-tags{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 7px}
.pe-chip{display:inline-block;padding:3px 8px;border-radius:4px;font-family:var(--mono);font-size:10px;letter-spacing:.02em;border:1px solid var(--line-2);white-space:nowrap}
.pe-scheme{background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--ink);text-transform:capitalize}
.pe-doctype{background:color-mix(in srgb,var(--accent-2) 14%,transparent);border-color:color-mix(in srgb,var(--accent-2) 35%,transparent);color:var(--ink);text-transform:none}
.pe-stat{background:var(--panel);color:var(--dim)}
/* page-jump badges (e.g. Davi shareholder holders) — unfilled underline links that
 * jump the OPEN PDF to that holder's page; the current page's badge shows active
 * (underline-toggle convention, not a filled button). */
.pe-sep{color:var(--faint);font-family:var(--mono);font-size:11px;align-self:center;margin:0 1px}
.pe-chip.pe-pagejump{cursor:pointer;background:transparent;border-color:transparent;color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;padding:3px 4px}
.pe-chip.pe-pagejump:hover{text-decoration-thickness:2px}
.pe-chip.pe-pagejump.on{font-weight:800;text-decoration-thickness:2px;color:var(--ink)}
.pe-triples{overflow-x:auto}
.pe-triples table{width:100%;border-collapse:collapse;margin-top:6px;font-size:11.5px}
.pe-triples td{padding:3px 7px;border-top:1px solid var(--line-2);vertical-align:top;color:var(--ink)}
.pe-triples .pe-pred{font-family:var(--mono);font-size:10px;color:var(--accent);text-align:center;white-space:nowrap}
/* Triples never wrap — every cell stays on one line and the table scrolls sideways
   (.pe-triples overflow-x:auto). Tapping or hovering a row reveals the full
   subject · predicate · object in a white popup (JS-positioned in viewer.ts), keeping
   the information clean on both desktop and mobile. */
.pe-triples td{white-space:nowrap}
.pe-triples tr{cursor:pointer}
.pe-rel-pop{position:fixed;z-index:200;display:none;background:#fff;color:#111;border:1px solid var(--line-2);
  border-radius:5px;padding:7px 11px;box-shadow:0 8px 24px rgba(0,0,0,.25);font-family:var(--sans);
  font-size:12px;line-height:1.5;max-width:min(92vw,34em);white-space:normal}
.pe-rel-pop.on{display:block}
/* entity legend: collapsible full-name → short-form table above triples */
.pe-legend table{width:100%;border-collapse:collapse;margin-top:5px;font-size:11px}
.pe-legend td{padding:2px 6px;border-top:1px solid var(--line-2);vertical-align:top;white-space:nowrap}
.pe-legend td:first-child{font-family:var(--mono);color:var(--ink)}
.pe-leg-arr{font-family:var(--mono);color:var(--faint);text-align:center;padding:2px 4px}
.pe-leg-short{font-family:var(--mono);font-weight:600;color:var(--accent)}

/* Davi Skin price/volume forensic chart popup (#41) */
.davipv-cta{max-width:1120px;margin:0 auto;padding:16px 24px 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.davipv-cta-sub{font-family:var(--mono);font-size:11.5px;color:var(--dim)}
/* Certificate-placement ledger (precrime / Davi dump section) + email paper-trail. */
.cert-table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:12px;color:var(--ink)}
.cert-table th,.cert-table td{border:1px solid var(--line);padding:6px 9px;text-align:left;vertical-align:top}
.cert-table thead th{background:color-mix(in srgb,var(--accent) 10%,var(--panel));font-family:var(--mono);font-size:10px;letter-spacing:.03em;text-transform:uppercase;color:var(--dim)}
.cert-emails{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--dim);line-height:1.5}
.cert-emails .stepdetail{margin-left:0}
/* Same chrome as the PDF source viewer (.pdf-modal) so every popup frame matches;
   only the body content differs (d3 chart here vs. pdf.js pages there). */
.davipv-modal{position:fixed;inset:0;z-index:10000;display:none}
.davipv-modal.open{display:block}
.davipv-backdrop{position:absolute;inset:0;background:rgba(10,9,7,.62);backdrop-filter:blur(2px)}
.davipv-panel{position:absolute;inset:3vh 3vw;background:var(--panel);border:1px solid var(--line-2);display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.4)}
.davipv-bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.davipv-title{font-family:var(--mono);font-size:12px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.davipv-close-btn{font-family:var(--mono);font-size:12px;line-height:1;cursor:pointer;background:transparent;color:var(--ink);border:1px solid var(--line-2);height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;border-radius:6px}
.davipv-close-btn:hover{border-color:var(--accent);color:var(--accent)}
.davipv-body{flex:1;min-height:0;overflow:auto;background:var(--bg);padding:18px}
.davipv-chart{width:100%}
.davipv-legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-top:12px;font-family:var(--mono);font-size:11px;color:var(--dim)}
.davipv-legend .k{display:inline-flex;align-items:center;gap:6px}
.davipv-legend i{width:12px;height:12px;display:inline-block}
.davipv-legend .l-price{background:#3a6ea5;height:3px}
.davipv-legend .l-vol{background:#b9c4d0;border-radius:2px}
.davipv-legend .l-dloc{border:1.6px solid #d9534f;border-radius:50%;background:transparent}
.davipv-legend .l-filing{background:#c9a227;border-radius:50%}
.davipv-hint{margin-left:auto;font-style:italic}
.davipv-tip{position:fixed;z-index:10002;pointer-events:none;opacity:0;background:#fff;color:#1a1a1a;border:1px solid #b8b8b8;border-radius:5px;font-family:var(--mono);font-size:11px;line-height:1.5;padding:7px 10px;box-shadow:3px 3px 0 rgba(0,0,0,.14);transition:opacity .1s;max-width:280px}
.davipv-card{position:fixed;z-index:10003;display:none;width:340px;background:#fff;color:#1a1a1a;border:1px solid #b8b8b8;border-radius:7px;box-shadow:4px 4px 0 rgba(0,0,0,.16);padding:13px 15px 15px;font-family:var(--sans)}
.davipv-card-x{position:absolute;top:7px;right:11px;cursor:pointer;color:#999;font-size:18px;line-height:1}
.davipv-card-hd{font-family:var(--mono);font-size:12px;font-weight:700;color:#1a1a1a;padding-right:18px}
.davipv-card-key{color:#c9a227;font-size:9px;border:1px solid #c9a227;border-radius:3px;padding:0 4px;margin-left:4px;vertical-align:1px;text-transform:uppercase;letter-spacing:.03em}
.davipv-card-acc{font-family:var(--mono);font-size:10px;color:#888;margin:3px 0 8px}
.davipv-card-note{font-size:12px;line-height:1.5;color:#333;margin:0 0 11px}
.davipv-card-open{font-family:var(--mono);font-size:11px;font-weight:700;color:#1a4b8c;text-decoration:underline}

/* Davi price/volume popup — interleaved day-by-day table (chart fills the top,
 * this table fills the rest of `.davipv-body`, which scrolls). */
.davipv-table-wrap{margin-top:16px;border-top:1px solid var(--line-2);padding-top:4px}
.davipv-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11px}
.davipv-table thead th{position:sticky;top:0;z-index:1;background:var(--panel);text-align:left;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding:6px 10px;border-bottom:1px solid var(--line-2)}
.davipv-table thead th.num{text-align:right}
.davipv-table td{padding:4px 10px;border-bottom:1px solid var(--line);color:var(--dim);white-space:nowrap;font-variant-numeric:tabular-nums}
.davipv-table td.num{text-align:right}
.davipv-table tr.davipv-table-notrade td{color:var(--faint);font-style:italic}
.davipv-table tr.davipv-evrow td{white-space:normal;padding:7px 10px 7px 26px;font-family:var(--sans);font-size:11.5px;line-height:1.5;color:var(--ink)}
.davipv-table tr.davipv-evrow-filing td{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.davipv-table tr.davipv-evrow-email td{background:color-mix(in srgb,var(--accent-2,#8a6d3b) 8%,transparent)}
.davipv-evtag{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:1px 5px;margin-right:6px;vertical-align:1px}
.davipv-evtag-filing{background:var(--accent);color:var(--bg)}
.davipv-evtag-email{background:var(--accent-2,#8a6d3b);color:var(--bg)}
.davipv-table tr.davipv-evrow-placement td{background:color-mix(in srgb,#6a4c93 11%,transparent)}
.davipv-evtag-placement{background:#6a4c93;color:#fff}
.davipv-table tr.davipv-evrow a{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--accent);text-decoration:underline;white-space:nowrap;cursor:pointer}

/* Litigation per-entity "full record" popup (#32) */
.plead-more{cursor:pointer}
.litent-modal{position:fixed;inset:0;z-index:10000;display:none}
.litent-modal.open{display:block}
.litent-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.litent-panel{position:absolute;inset:6% 8%;background:var(--panel,#fff);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.4);display:flex;flex-direction:column;overflow:hidden}
.litent-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line-2,#ddd)}
.litent-title{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--ink)}
.litent-close{cursor:pointer;border:1px solid var(--line-2,#ddd);background:var(--panel-2,#f4f4f2);color:var(--ink);border-radius:7px;padding:4px 10px;font-size:12px}
.litent-body{flex:1;overflow:auto;padding:16px 22px 24px}
.litent-sec{margin-bottom:20px}
.litent-sub{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.03em;color:var(--accent);text-transform:uppercase;margin:8px 0 4px;padding-bottom:5px;border-bottom:1px solid var(--line)}
.litent-empty{font-family:var(--mono);font-size:12px;color:var(--dim);padding:12px 0}
