git:20260806.49726a8 to git:20260826.ce3f1d7

2 added, 0 removed. Audit A to A.

# docs/slides/
Marp deck sources (`*-slides.md`) and their built `.html` output for the DinoStack methodology's presentation decks.
## Gotchas
Dark-theme reskin gotcha: Marp `theme: default` leaks high-specificity light styles. The `*-slides.md` decks were reskinned to the DinoStack "Iridium" dark look (palette and fonts sourced from `docs/index.html`: `#02050C` canvas plus cyan/violet radial aura, Orbitron headings, Nunito Sans body, JetBrains Mono code, `#18E0FF` primary). Two non-obvious traps when overriding Marp's default theme via the inline `style:` block:
1. Table rows render white - Marp's `section table tr { background: var(--bgColor-default) }` (white) out-specifies a bare `tr` selector. Fix: match its shape exactly with `table tr { background: transparent }` plus `table tr:nth-child(2n) { background: rgba(255,255,255,0.03) }`.
2. Syntax-highlighted code is dark-on-dark - language-tagged fences (yaml/json/bash) get highlight.js tokens whose GitHub-theme vars stay in their light branch because `section` keeps `color-scheme: light`. Fix: add `color-scheme: dark` to the `section` rule, which flips all `--color-prettylights-syntax-*` to their legible dark-mode values.
Plain untagged fences have no tokens, so screenshot a *highlighted* code slide when QA-ing. Edit the `.md` only, then regenerate via `bash scripts/build-slides.sh` (idempotent; the `slides-sync.yml` CI gate enforces `.md` to `.html` sync). The canonical Iridium base block lives identically in every deck's frontmatter.
+ 720px overflow gate (DS-203): `bash scripts/check-slide-overflow.sh` measures every rendered `docs/slides/*-slides.html` section's `scrollHeight` in a headless Chrome (Chrome-for-Testing, downloaded on demand via `@puppeteer/browsers`) and fails when content exceeds the 720px slide boundary without a matching entry in `scripts/slide-overflow-baseline.json` (the ratchet file, advisory in CI - not on the `main` ruleset's required-checks list). The sole load-bearing determinism mechanism is a fresh browser context per deck (a reused page converges on wrong values, measured); each deck's context is created and torn down independently. The baseline is membership-only (deck basename -> list of positional section ids, no px values) - **inserting, removing, or reordering slides in a debt-carrying deck shifts those positional ids**, so re-run `node scripts/check-slide-overflow.js --dump-overflows` and commit the updated baseline in the same PR as any such edit. The font-load check is fail-CLOSED, not a real overflow verdict: it exits 2 when Chrome could not register any font face (offline, or the Google Fonts host is blocked) - a network/environment issue, not a slide defect. `scripts/check-slide-overflow-live-selftest.sh` is the live-Chrome regression suite for the gate itself (font axes, context-count, overflow rendering); it deliberately lives under `scripts/`, not `bin/tests/`, so the required browserless `bin-sh-tests` glob never picks it up.
+