/* =============================================================================
   site.css — layout and the few components the three routes need, on top of
   cover.css. Every colour, face and size here is a --bk-* token; this file
   declares no colour value and no root-level custom property.
   ============================================================================= */
*, *::before, *::after { box-sizing: border-box; }
::selection { background: var(--bk-teal-wash); color: var(--bk-ink); }
img, svg { max-width: 100%; }

.bk-col { width: min(44rem, 100% - 2rem); margin-inline: auto; }
.bk-sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* ---- header (all three routes) ------------------------------------------- */
.bk-header {
  display: flex; align-items: center; justify-content: space-between; gap: var(--bk-space);
  padding: calc(var(--bk-space) / 2) 1rem;
  border-bottom: 1px solid var(--bk-ring);
  background: var(--bk-ground);
}
.bk-header.sticky { position: sticky; top: 0; z-index: 40; }
.bk-wordmark, .bk-back {
  display: flex; align-items: center; gap: 0.5rem;
  font-family: var(--bk-display); font-size: var(--bk-text-sm); text-transform: lowercase;
  color: var(--bk-teal); text-decoration: none;
}
.bk-wordmark svg { width: 1.5rem; height: 1.5rem; flex-shrink: 0; }
.bk-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.bk-nav a { font-size: var(--bk-text-sm); color: var(--bk-ink); text-decoration: none; }
.bk-nav a:hover, .bk-back:hover { text-decoration: underline; }
@media (max-width: 640px) { .bk-nav a:not(:last-child) { display: none; } }

/* ---- landing: the hero is the cover --------------------------------------- */
.bk-hero { padding: calc(var(--bk-space) * 2) 0 calc(var(--bk-space) * 3); }
.bk-hero .bk-field { display: block; width: min(100%, 25rem); height: auto; }
.bk-hero h1 { margin: calc(var(--bk-space) * 1.5) 0 calc(var(--bk-space) / 2); }
.bk-hero .bk-tagline { margin: 0 0 calc(var(--bk-space) * 1.5); }
@media (max-width: 600px) { .bk-hero .bk-field { width: min(100%, 16rem); } }

.bk-section { padding-top: var(--bk-space); }
.bk-section > h2:first-child { margin-top: calc(var(--bk-space) * 2); }
.bk-section .bk-eyebrow { display: block; margin: 0 0 calc(var(--bk-space) / 2); }

/* figure internals */
.bk-stage { width: 100%; line-height: 0; }
.bk-readout {
  display: flex; flex-wrap: wrap; gap: 0.25rem var(--bk-space);
  margin-top: calc(var(--bk-space) / 2);
  font-size: var(--bk-text-sm); color: var(--bk-muted);
}
.bk-readout b { font-family: var(--bk-mono); font-weight: 600; color: var(--bk-ink); }
.bk-axis { display: flex; justify-content: space-between; font-size: var(--bk-text-xs); color: var(--bk-muted); }

/* the case file: prose and a row of numbers, no card */
.bk-stats {
  display: flex; flex-wrap: wrap; gap: var(--bk-space) calc(var(--bk-space) * 1.5);
  margin: 0 0 var(--bk-space); padding: 0; list-style: none;
}
.bk-stats li { display: flex; flex-direction: column; }
.bk-stats .bk-num { font-size: var(--bk-text-lg); color: var(--bk-teal); line-height: var(--bk-leading-tight); }
.bk-stats .bk-caption { line-height: var(--bk-leading-tight); margin-top: 0.25rem; }

/* notes: a list divided by hairline rules (the contents is the spine, spine.css) */
.bk-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--bk-ring); }
.bk-list > li { max-width: none; padding: 0.6rem 0; border-bottom: 1px solid var(--bk-ring); }
.bk-notes h3 { font-size: var(--bk-text-lg); margin: 0 0 0.25rem; }
.bk-notes p { margin: 0; }
.bk-notes .bk-caption { display: block; margin-top: 0.25rem; }

.bk-close { display: grid; grid-template-columns: 11rem 1fr; gap: calc(var(--bk-space) * 1.5); align-items: center;
  padding: calc(var(--bk-space) * 2) 0 calc(var(--bk-space) * 4); }
.bk-close img { width: 100%; height: auto; display: block; border: 1px solid var(--bk-ring); }
.bk-close h2 { margin-top: 0; }
.bk-close p { margin-bottom: calc(var(--bk-space) / 2); }
.bk-close .bk-link { font-family: var(--bk-display); text-transform: lowercase; font-size: var(--bk-text-base); }
@media (max-width: 600px) { .bk-close { grid-template-columns: 1fr; } .bk-close img { width: 9rem; } }

/* ---- explore / reference: the rail -------------------------------------- */
.explore-layout { display: flex; align-items: flex-start; width: min(74rem, 100% - 2rem); margin-inline: auto; }
.explore-rail {
  position: sticky; top: 3.5rem; flex: 0 0 13.5rem; padding: calc(var(--bk-space) * 1.5) var(--bk-space) var(--bk-space) 0;
  max-height: calc(100vh - 3.5rem); overflow-y: auto;
}
.explore-rail ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--bk-ring); }
.explore-rail li { margin: 0; }
.explore-rail a {
  display: block; padding: 0.3rem 0 0.3rem 1rem; margin-left: -1px; border-left: 2px solid transparent;
  font-size: var(--bk-text-sm); line-height: 1.35; color: var(--bk-muted); text-decoration: none;
}
.explore-rail a:hover { color: var(--bk-ink); }
.explore-rail a.active { color: var(--bk-teal); border-left-color: var(--bk-teal); }
.explore-rail .rail-group { font-family: var(--bk-hand); font-size: var(--bk-text-sm); color: var(--bk-muted); padding: 1rem 0 0.25rem 1rem; }
.explore-rail .rail-group:first-child { padding-top: 0.25rem; }
.explore-main { flex: 1 1 auto; min-width: 0; padding-top: 0.5rem; }
@media (max-width: 900px) {
  .explore-layout { display: block; }
  .explore-rail { position: static; max-height: none; padding: var(--bk-space) 0 0; overflow: visible; }
  .explore-rail ol { display: flex; flex-wrap: wrap; gap: 0 0.25rem; border-left: 0; }
  .explore-rail a { border-left: 0; border-bottom: 2px solid transparent; padding: 0.3rem 0.4rem; }
  .explore-rail a.active { border-bottom-color: var(--bk-teal); }
  .explore-rail .rail-group { width: 100%; padding: 0.75rem 0.4rem 0; }
}

/* ---- explore / reference: a concept --------------------------------------- */
.concept { margin: calc(var(--bk-space) * 2) 0 0; scroll-margin-top: 4rem; }
.concept-panel { padding: 0 0 calc(var(--bk-space) * 2); border-bottom: 1px solid var(--bk-ring); }
.bk-eyebrow-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.25rem 1rem; margin-bottom: var(--bk-space); }
.bk-eyebrow-row .bk-eyebrow { color: var(--bk-teal); }
.bk-aside { font-family: var(--bk-hand); font-size: var(--bk-text-sm); color: var(--bk-muted); }
.framing {
  font-style: italic; font-size: var(--bk-text-lg); line-height: 1.45; color: var(--bk-ink);
  margin: 0 0 var(--bk-space); padding-left: 1rem; border-left: 2px solid var(--bk-teal);
}
.framing.two { border-left-color: var(--bk-coral); }

.instrument { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: var(--bk-space); align-items: start; }
@media (max-width: 760px) { .instrument { grid-template-columns: minmax(0, 1fr); } }
.controls-col { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.chart-col { min-width: 0; }

.ctrl { display: flex; flex-direction: column; gap: 0.5rem; }
.ctrl-label { font-size: var(--bk-text-sm); color: var(--bk-muted); display: flex; justify-content: space-between; gap: 0.5rem; }
.ctrl-label .val { font-family: var(--bk-mono); color: var(--bk-teal); }

input[type="range"] {
  -webkit-appearance: none; appearance: none; width: 100%; height: 2px; margin: 1rem 0;
  background: var(--bk-ring); border-radius: 0;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; width: 1.25rem; height: 1.25rem; border-radius: 50%;
  background: var(--bk-ground); border: 2px solid var(--bk-teal); cursor: pointer;
}
input[type="range"]::-moz-range-thumb {
  width: 1rem; height: 1rem; border-radius: 50%; background: var(--bk-ground); border: 2px solid var(--bk-teal); cursor: pointer;
}

/* choices: rectangles in a row; the pressed one is filled */
.bk-choices { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.bk-choices button, .chip, .dist-chip, .tool-chip, .gloss-faq-toggle button {
  font-family: var(--bk-serif); font-size: var(--bk-text-sm); line-height: 1.3; text-align: left;
  color: var(--bk-teal); background: var(--bk-ground); border: 1px solid var(--bk-teal); border-radius: var(--bk-radius);
  padding: 0.45rem 0.75rem; min-height: 2.75rem; cursor: pointer;
}
.bk-choices button.active, .chip.active, .dist-chip.active, .tool-chip.active, .gloss-faq-toggle button.active {
  background: var(--bk-teal); color: var(--bk-ground);
}
.toggle-row { display: flex; gap: 0.375rem; flex-wrap: wrap; }

.btn-ghost {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 0.4rem;
  font-family: var(--bk-display); text-transform: lowercase; font-size: var(--bk-text-sm);
  color: var(--bk-teal); background: none; border: 1px solid var(--bk-teal); border-radius: var(--bk-radius);
  padding: 0.5rem 1rem; min-height: 2.75rem; cursor: pointer;
}
.btn-ghost:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.btn-ghost:disabled { color: var(--bk-muted); border-color: var(--bk-ring); cursor: default; text-decoration: none; }
.btn-ghost.ghost-muted { color: var(--bk-muted); border-color: var(--bk-ring); }

.stat-readout { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; padding-top: 0.75rem; border-top: 1px solid var(--bk-ring); }
.stat-readout .s { font-size: var(--bk-text-sm); color: var(--bk-muted); }
.stat-readout .s b { font-family: var(--bk-mono); font-weight: 600; color: var(--bk-ink); }
.stat-readout .s.neg b { text-decoration: underline; text-decoration-color: var(--bk-coral); text-decoration-thickness: 2px; }
.stat-readout .s.pos b { color: var(--bk-teal); }

.callout { font-family: var(--bk-hand); font-size: var(--bk-text-sm); color: var(--bk-ink); padding-left: 0.75rem; border-left: 2px solid var(--bk-teal); }
.insight {
  margin-top: var(--bk-space); padding-left: 1rem; border-left: 2px solid var(--bk-teal);
  font-family: var(--bk-hand); font-size: var(--bk-text-sm); line-height: 1.5; color: var(--bk-ink);
}
.insight.two { border-left-color: var(--bk-coral); }
.on-platform { margin-top: 1rem; font-size: var(--bk-text-sm); color: var(--bk-muted); display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; align-items: baseline; }
.on-platform .lbl, .data-anchor .lbl, .dist-meta .lbl { font-family: var(--bk-hand); font-size: var(--bk-text-sm); color: var(--bk-teal); }
code { font-family: var(--bk-mono); font-size: var(--bk-text-xs); background: var(--bk-paper); padding: 0 0.25rem; border-radius: var(--bk-radius); }

.data-anchor { margin-top: var(--bk-space); padding: 1rem; background: var(--bk-paper); border-radius: var(--bk-radius); }
.data-anchor p { margin: 0.5rem 0 1rem; font-size: var(--bk-text-sm); color: var(--bk-ink); }
.bar-row { display: flex; align-items: center; gap: 0.6rem; font-size: var(--bk-text-xs); margin-bottom: 0.5rem; }
.bar-label { flex: 0 0 9rem; color: var(--bk-muted); }
.bar-track { flex: 1; height: 0.6rem; background: var(--bk-ground); }
.bar-fill { height: 100%; }
.bar-val { flex: 0 0 3rem; text-align: right; color: var(--bk-ink); }

.resid-strip { display: flex; gap: 0.25rem; margin-top: 1rem; }
.resid-chip { flex: 1; height: 1.9rem; display: flex; align-items: center; justify-content: center; font-family: var(--bk-mono); font-size: var(--bk-text-xs); transition: background var(--bk-dur) var(--bk-ease), color var(--bk-dur) var(--bk-ease); }
.range-tally { font-size: var(--bk-text-xs); color: var(--bk-muted); line-height: 1.5; }
.range-tally b { font-family: var(--bk-mono); color: var(--bk-ink); }
.dist-axis-lab { display: flex; justify-content: space-between; gap: 1rem; font-size: var(--bk-text-xs); color: var(--bk-muted); margin-top: 0.25rem; }
.no-score-note { margin-top: 0.6rem; font-size: var(--bk-text-sm); color: var(--bk-muted); font-style: italic; }

.part-two-lede { margin: calc(var(--bk-space) * 3) 0 var(--bk-space); }
.part-two-eyebrow { font-family: var(--bk-hand); font-size: var(--bk-text-sm); color: var(--bk-muted); margin-bottom: 0.25rem; }
.part-two-lede h3 { margin: 0 0 0.5rem; }
.part-two-lede p { color: var(--bk-ink); margin: 0; }

/* a panel's own small heading inside a demo (h3 under the demo's h2) */
.concept h3, .clt-panel h3, .roc-pr-panel h3 { font-family: var(--bk-hand); font-weight: normal; font-size: var(--bk-text-sm); color: var(--bk-muted); text-transform: none; line-height: 1.35; margin: 0 0 0.5rem; }

/* ---- model tabs ------------------------------------------------------------ */
.confmat-wrap { margin-top: 1rem; }
.confmat { display: grid; grid-template-columns: 4.5rem 1fr 1fr; gap: 0.25rem; max-width: 20rem; }
.confmat .hd, .confmat .rl { font-size: var(--bk-text-xs); color: var(--bk-muted); text-align: center; padding: 0.25rem; }
.confmat .rl { display: flex; align-items: center; justify-content: flex-end; text-align: right; }
.confmat .cell { padding: 0.6rem 0.4rem; text-align: center; font-family: var(--bk-mono); }
.confmat .cell .n { font-size: var(--bk-text-lg); display: block; }
.confmat .cell .l { font-family: var(--bk-serif); font-size: var(--bk-text-xs); }
.confmat .cell.hit { background: var(--bk-teal-wash); color: var(--bk-teal); }
.confmat .cell.miss { background: var(--bk-coral-wash); color: var(--bk-ink); }
.roc-pr-row { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--bk-space); margin-top: var(--bk-space); padding-top: var(--bk-space); border-top: 1px solid var(--bk-ring); }
.roc-pr-panel { flex: 1 1 13rem; min-width: 0; max-width: 19rem; }
.roc-pr-panel svg { width: 100%; height: auto; display: block; }
.roc-pr-axis { display: flex; justify-content: space-between; font-size: var(--bk-text-xs); color: var(--bk-muted); }
.roc-pr-auc { font-size: var(--bk-text-xs); color: var(--bk-muted); margin-top: 0.4rem; }
.roc-pr-auc b { font-family: var(--bk-mono); color: var(--bk-ink); }
.clt-panel { margin-bottom: 1.25rem; }
.clt-panel:last-child { margin-bottom: 0; }
.mc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(1.6rem, 1fr)); gap: 0.3rem; max-width: 32rem; }
.mc-cell { aspect-ratio: 1; background: var(--bk-paper); border: 1px solid var(--bk-ring); transition: background var(--bk-dur) var(--bk-ease); }
.mc-cell.sig { background: var(--bk-coral); border-color: var(--bk-coral); }
.mc-cell.corrected-out { background: var(--bk-paper); border-color: var(--bk-ring); opacity: 0.5; }
.cluster-legend { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-top: 0.25rem; }
.cluster-legend span { display: inline-flex; align-items: center; gap: 0.3rem; font-size: var(--bk-text-xs); color: var(--bk-muted); }
.cluster-legend .sw { width: 0.6rem; height: 0.6rem; border-radius: 50%; display: inline-block; }

/* ---- reference: distributions and the right tool ------------------------- */
.dist-chips, .tool-chips { display: flex; flex-wrap: wrap; gap: 0.375rem; }
@media (max-width: 680px) {
  .dist-chips, .tool-chips { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 0.4rem; }
  .dist-chip, .tool-chip { flex-shrink: 0; scroll-snap-align: start; }
}
.dist-desc { font-style: italic; font-size: var(--bk-text-base); margin: 1rem 0 0.6rem; }
.dist-examples { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.dist-examples li { font-size: var(--bk-text-sm); color: var(--bk-muted); padding-left: 1rem; position: relative; }
.dist-examples li::before { content: "—"; position: absolute; left: 0; color: var(--bk-ring); }
.dist-notation { margin-top: 0.9rem; }
.dist-notation:empty, .dist-meta:empty { display: none; }
.dist-meta { margin: 0.4rem 0 0; font-size: var(--bk-text-sm); color: var(--bk-muted); }
.dist-fit-row { margin-top: 0.9rem; padding-top: 0.75rem; border-top: 1px solid var(--bk-ring); }
.dist-fit-row label { font-size: var(--bk-text-sm); display: flex; align-items: center; gap: 0.4rem; }
.dist-fit-row .stat-readout { margin-top: 0.5rem; }
.tool-name { font-family: var(--bk-display); text-transform: lowercase; font-size: var(--bk-text-lg); color: var(--bk-teal); margin: 0 0 0.25rem; }
.tool-icon { height: 4.5rem; display: flex; align-items: center; margin-bottom: 0.4rem; }
.tool-rows { display: flex; flex-direction: column; gap: 0.6rem; margin-top: 0.5rem; }
.tool-row { display: flex; gap: 0.6rem; align-items: baseline; }
.tool-row .lbl { flex: 0 0 6rem; font-family: var(--bk-hand); font-size: var(--bk-text-sm); color: var(--bk-muted); }
.tool-row.requires .lbl { color: var(--bk-teal); }
.tool-row.wrong .lbl, .tool-row.tell .lbl { color: var(--bk-ink); }
.tool-row p { margin: 0; font-size: var(--bk-text-sm); }
.notation-label { display: block; margin-top: 0.25rem; font-size: var(--bk-text-xs); color: var(--bk-muted); }
math { font-family: var(--bk-serif); }
/* long formulas scroll inside their own box on a phone instead of widening the page */
.assump-table td.notation, .gloss-notation, .dist-notation, .tool-row.notation p { overflow-x: auto; max-width: 100%; }

.ref-entries { display: flex; flex-direction: column; }
.ref-entry { display: flex; align-items: center; gap: 1.1rem; padding: 1rem 0; border-bottom: 1px solid var(--bk-ring); }
.ref-entry .ref-icon { flex: 0 0 auto; }
.ref-entry .ref-body { flex: 1 1 auto; min-width: 0; }
.ref-entry .ref-tag { font-family: var(--bk-hand); font-size: var(--bk-text-sm); color: var(--bk-muted); }
.ref-entry h4 { font-family: var(--bk-serif); font-weight: 600; font-size: var(--bk-text-base); color: var(--bk-ink); margin: 0.25rem 0; }
.ref-entry p { font-size: var(--bk-text-sm); color: var(--bk-muted); margin: 0; }

.assump-table { width: 100%; border-collapse: collapse; margin-top: 0.5rem; }
.assump-table th { text-align: left; font-family: var(--bk-hand); font-weight: normal; font-size: var(--bk-text-sm); color: var(--bk-muted); padding: 0 0.75rem 0.5rem 0; border-bottom: 1px solid var(--bk-ring); }
.assump-table td { padding: 0.75rem 0.75rem 0.75rem 0; border-bottom: 1px solid var(--bk-ring); vertical-align: top; font-size: var(--bk-text-sm); }
.assump-table td.term { font-weight: 600; width: 15%; }
.assump-table td.notation { min-width: 7.5rem; }
.assump-table td.risk { color: var(--bk-muted); }
.assump-table td.see-break a { font-size: var(--bk-text-sm); white-space: nowrap; }
@media (max-width: 820px) {
  .assump-table thead { display: none; }
  .assump-table, .assump-table tbody, .assump-table tr, .assump-table td { display: block; width: auto !important; }
  .assump-table tr { padding: 0.9rem 0; border-bottom: 1px solid var(--bk-ring); }
  .assump-table td { border-bottom: 0; padding: 0.25rem 0; }
  .assump-table td::before { content: attr(data-label); display: block; font-family: var(--bk-hand); font-size: var(--bk-text-sm); color: var(--bk-muted); }
  .assump-table td.term::before { content: none; }
}

.gloss-search {
  width: 100%; margin-top: 0.6rem; padding: 0.7rem 0.9rem; font-family: var(--bk-serif); font-size: var(--bk-text-base);
  border: 1px solid var(--bk-teal); border-radius: var(--bk-radius); background: var(--bk-ground); color: var(--bk-ink);
}
.gloss-group { margin-top: 1.4rem; }
.gloss-group-title { font-family: var(--bk-display); text-transform: lowercase; font-size: var(--bk-text-lg); color: var(--bk-teal); padding-bottom: 0.4rem; border-bottom: 1px solid var(--bk-ring); }
.gloss-row { padding: 0.75rem 0; border-bottom: 1px solid var(--bk-ring); }
.gloss-row.hidden { display: none; }
.gloss-row-head { display: flex; align-items: baseline; justify-content: space-between; gap: 0.25rem 0.9rem; flex-wrap: wrap; }
.gloss-term { font-weight: 600; font-size: var(--bk-text-base); }
.gloss-testcard { font-size: var(--bk-text-xs); color: var(--bk-muted); }
.gloss-meaning { font-size: var(--bk-text-sm); color: var(--bk-ink); margin-top: 0.25rem; }
.gloss-notation { margin-top: 0.4rem; }
.gloss-faq-toggle { display: inline-flex; gap: 0.375rem; margin: 0.5rem 0; }
.gloss-faq-panel { display: none; margin-top: 0.5rem; padding: 0.6rem 0.9rem; background: var(--bk-paper); border-left: 2px solid var(--bk-teal); font-size: var(--bk-text-sm); }
.gloss-faq-panel.open { display: block; }
.gloss-faq-panel .faq-q { font-weight: 600; margin-bottom: 0.25rem; }
.gloss-empty { padding: 1.25rem 0; color: var(--bk-muted); font-style: italic; }

.biv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 0.75rem; }
@media (max-width: 900px) { .biv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .biv-grid { grid-template-columns: minmax(0, 1fr); } }
.biv-card { padding: 0.9rem; background: var(--bk-paper); border-radius: var(--bk-radius); display: flex; flex-direction: column; gap: 0.4rem; min-width: 0; }
.biv-card.synthetic { background: var(--bk-ground); border: 1px solid var(--bk-ring); }
.biv-title { font-weight: 600; font-size: var(--bk-text-sm); }
.biv-hook { font-style: italic; font-size: var(--bk-text-sm); color: var(--bk-muted); }
.biv-stats { display: flex; gap: 0.75rem; font-size: var(--bk-text-xs); color: var(--bk-muted); }
.biv-stats b { font-family: var(--bk-mono); color: var(--bk-ink); }
.biv-note, .biv-testcard { font-size: var(--bk-text-xs); color: var(--bk-muted); }
.biv-flag { align-self: flex-start; font-family: var(--bk-hand); font-size: var(--bk-text-xs); color: var(--bk-muted); }
.biv-flag.real { color: var(--bk-teal); }
.biv-demo-link { font-size: var(--bk-text-sm); }
.biv-footnote { margin-top: 1rem; font-size: var(--bk-text-sm); color: var(--bk-muted); }

.trans-list { margin-top: 0.5rem; }
.trans-row { padding: 0.9rem 0; border-bottom: 1px solid var(--bk-ring); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
@media (max-width: 640px) { .trans-row { grid-template-columns: minmax(0, 1fr); gap: 0.4rem; } }
.trans-biz { font-style: italic; font-size: var(--bk-text-base); }
.trans-biz::before { content: "“"; } .trans-biz::after { content: "”"; }
.trans-analyst, .trans-why { font-size: var(--bk-text-sm); color: var(--bk-muted); }
.trans-why b { font-family: var(--bk-hand); font-weight: normal; color: var(--bk-ink); }
.trans-link { margin-top: 0.25rem; display: inline-block; font-size: var(--bk-text-sm); }

.gallery-crosslink { font-size: var(--bk-text-sm); }
.gallery-crosslink.muted { color: var(--bk-muted); text-decoration: none; cursor: default; }

/* prev/next at the foot of each concept */
.concept-nav { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; margin-top: var(--bk-space); }
.concept-nav a { font-size: var(--bk-text-sm); color: var(--bk-teal); text-decoration: none; display: flex; align-items: center; gap: 0.4rem; max-width: 46%; }
.concept-nav a:hover { text-decoration: underline; }
.concept-nav a.next { margin-left: auto; text-align: right; justify-content: flex-end; }
.concept-nav a span.lbl { display: block; font-family: var(--bk-hand); color: var(--bk-muted); }

/* ---- motion pieces (assets/motion.js) ------------------------------------- */
@media (max-width: 600px) { figure.bk-figure { padding: 1rem; } }
.bk-stage svg { display: block; width: 100%; height: auto; }
/* three-ways-missing: the regime's non-responders fade on the dots layer's own transition */
svg[data-regime="MCAR"] .x-mcar, svg[data-regime="MAR"] .x-mar, svg[data-regime="MNAR"] .x-mnar { opacity: 0.15; }
.bk-fade circle { transition: opacity var(--bk-dur) var(--bk-ease); }
@media (prefers-reduced-motion: reduce) { .bk-fade circle { transition: none; } }
