
:root{
  --paper:#262823; --card:#2f312a; --card2:#2a2c26;
  --ink:#e8e1cd; --ink2:#aaa28c; --rule:#565849;
  --red:#e87f63; --red-deep:#f0947c; --green:#8cbd9e;
  --phos:#14fdce; --phos-rgb:20,253,206;
  --window:#0c1410; --mat:#d9d0b6; --tape:#ddd4ba;
  --hover:#363830;
  --sans:system-ui,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --serif:Georgia,'Iowan Old Style','Times New Roman',serif;
  --mono:'Cascadia Mono',Consolas,'Roboto Mono','Courier New',monospace;
}
*{ box-sizing:border-box; }
html{ background:var(--paper); overflow-y:auto; }
body{ margin:0; font-family:var(--sans); color:var(--ink); background:var(--paper);
  -webkit-font-smoothing:antialiased; }

/* ==== shell — no bezel, no chassis, no terminal frame (owner ruling, 932d1f0) ==== */
.mz-topline{ background:var(--mat); color:var(--paper); font-family:var(--mono); font-size:10px;
  letter-spacing:.12em; padding:6px 14px; }
.mz-head{ max-width:900px; margin:0 auto; padding:14px 14px 0; }
.mz-head .co{ font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--ink2); }
.mz-head h1{ font-size:clamp(22px,6vw,32px); line-height:1.05; letter-spacing:-.01em; font-weight:800;
  text-transform:uppercase; margin:6px 0 8px; }
.redrule{ border:none; border-top:3px solid var(--red); margin:0 0 3px; }
.redrule + .redrule{ border-top-width:1px; margin-bottom:10px; }
.mz-sub{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; color:var(--ink2); }

/* ==== index tabs — real <a> links styled as a card-catalogue tab row ==== */
nav.tabs{ display:grid; grid-template-columns:repeat(4,1fr); gap:7px; max-width:900px;
  margin:14px auto; padding:0 14px; }
a.tab, a.tab:visited{ min-height:48px; display:flex; flex-direction:column; justify-content:center;
  gap:1px; text-align:center; text-decoration:none; background:var(--card);
  border:1px solid var(--ink2); border-radius:7px 7px 0 0; border-bottom:2px solid var(--ink);
  color:var(--ink); font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:4px 2px; }
a.tab b{ font-family:var(--mono); font-size:11.5px; }
a.tab:hover{ background:var(--hover); }
a.tab.on, a.tab.on:visited{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
@media (min-width:600px){ nav.tabs{ grid-template-columns:repeat(5,1fr); } }
@media (min-width:900px){ nav.tabs{ grid-template-columns:repeat(10,1fr); } }

/* ==== content wrap ==== */
.mz-wrap{ max-width:900px; margin:0 auto; padding:8px 14px 60px; }
.mz-wrap h1{ font-size:20px; letter-spacing:2px; text-transform:uppercase; margin:10px 0 10px; }
.mz-wrap h2{ font-size:13px; letter-spacing:2px; text-transform:uppercase; margin:24px 0 10px; color:var(--ink); }
.mz-lede{ font-family:var(--serif); font-size:15px; line-height:1.6; color:var(--ink); margin:6px 0 18px; max-width:66ch; }
.mz-wrap a, .mz-wrap a:visited{ color:var(--red); }
.mz-wrap a:hover{ color:var(--red-deep); }
a.mz-card, a.mz-card:visited{ text-decoration:none; color:inherit; }
.mz-stamp{ margin-top:30px; border-top:1px solid var(--rule); padding-top:10px;
  font-size:11.5px; line-height:1.65; color:var(--ink2); overflow-wrap:anywhere; }
.mz-stamp strong, .mz-stamp b{ color:var(--ink); font-weight:normal; font-family:var(--mono); }

/* ==== sparse-room module bay ====
   One artifact on an otherwise empty board. The unused slots carry the meaning — a
   one-line list reads as a broken page, a near-empty board reads as deliberate. */
.mz-bay{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px; margin:14px 0 4px; }
.mz-bay details.bay-board{ margin-top:0; }
details.bay-board{ border:1px solid var(--rule); background:var(--card); padding:10px 12px 11px;
  box-shadow:0 1px 0 rgba(0,0,0,.5); }
details.bay-board > summary{ list-style:none; cursor:default; }
details.bay-board > summary::-webkit-details-marker{ display:none; }
details.bay-board > summary h2{ margin:0; font-size:12px; font-weight:normal; letter-spacing:1px;
  color:var(--ink); overflow-wrap:anywhere; }
.bay-slot-tag{ font-family:var(--mono); font-size:9.5px; letter-spacing:.16em; color:var(--red); }
.bay-part-no{ display:block; font-family:var(--mono); font-size:10px; color:var(--ink2); margin-top:2px; overflow-wrap:anywhere; }
.board-status{ margin-top:6px; font-size:11px; color:var(--green); }
.mz-slot{ border:1px dashed var(--rule); background:var(--card2); padding:10px; min-height:104px;
  display:flex; align-items:center; justify-content:center; font-size:10px; letter-spacing:2px; color:var(--ink2); }
.mz-slot .bay-slot-tag{ color:var(--ink2); }
.mz-coverage{ border:1px solid var(--red); color:var(--red); padding:10px 12px; margin:14px 0;
  font-size:12px; line-height:1.6; letter-spacing:.4px; }

/* ==== growth panels (per-series detail charts) ====
   One series per panel, one axis per panel. Never two units on one scale — the
   guard for specimen 03, The Two Units One Axis. */
.mz-panel{ border:1px solid var(--rule); background:var(--card); padding:10px 12px 12px; margin:14px 0; }
.mz-panel-head{ font-size:11px; letter-spacing:2px; color:var(--ink); }
.mz-panel-unit{ font-size:10px; letter-spacing:1px; color:var(--ink2); margin:2px 0 8px; }
.mz-caveat{ border-left:2px solid var(--red); padding-left:9px; margin:10px 0 0; font-size:11px; line-height:1.6; color:var(--ink2); }
.mz-panel-foot{ font-size:11px; line-height:1.6; color:var(--ink2); margin:8px 0 0; }
.mz-panel-foot code{ font-size:11px; }
tr.mz-inflight td{ color:var(--red); }
.mz-drift{ color:var(--red); font-size:11px; }
b.mz-pinned{ color:var(--red); font-size:10px; letter-spacing:1px; }

/* ==== literal assertion manifest — aggregate meaning, so: dense + monospaced ==== */
.mz-assert{ font-family:var(--mono); font-size:12px; line-height:1.75; margin:6px 0 0; }
.mz-assert div{ display:flex; gap:10px; flex-wrap:wrap; border-bottom:1px dotted var(--rule); padding:1px 0; }
.mz-assert dfn{ font-style:normal; color:var(--ink2); flex:1 1 auto; }
.mz-assert b{ font-weight:normal; color:var(--ink); }
.mz-assert .bad{ color:var(--red); }
.mz-unchecked{ font-size:11px; line-height:1.65; color:var(--ink2); margin-top:10px; }

/* ==== cards / galleries / prototype grid ==== */
.mz-grid{ display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); }
.mz-card{ border:1px solid var(--rule); background:var(--card); box-shadow:0 1px 0 rgba(0,0,0,.5);
  padding:10px; display:flex; flex-direction:column; gap:8px; }
.mz-card h3{ margin:0; font-size:13px; letter-spacing:.5px; overflow-wrap:anywhere; color:var(--ink); }
.mz-thumb{ width:100%; aspect-ratio:3/2; object-fit:cover; object-position:top center;
  background:var(--window); border:1px solid var(--mat); }
.mz-thumb.contain{ object-fit:contain; }
.mz-cap{ font-size:11px; color:var(--ink2); overflow-wrap:anywhere; }
.mz-open{ display:inline-block; text-align:center; text-decoration:none; color:var(--red);
  border:1px solid var(--red); padding:5px 10px; font-size:12px; letter-spacing:1px;
  background:rgba(232,127,99,.06); font-family:var(--mono); }
.mz-open:hover{ background:rgba(232,127,99,.16); }
.mz-fail{ color:var(--red); border:1px dashed var(--red); font-size:12px; padding:8px; }
.mz-pager{ display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; align-items:center; }
.mz-pager a, .mz-pager span{ border:1px solid var(--ink2); padding:4px 10px; text-decoration:none; color:var(--ink); font-size:12px; }
.mz-pager .cur{ background:var(--ink); color:var(--paper); }
.mz-galgrid{ display:grid; gap:10px; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); }
.mz-galcell{ border:1px solid var(--rule); background:var(--card); padding:6px; }
.mz-galcell img{ width:100%; height:auto; display:block; background:var(--window); }
.mz-doc{ white-space:pre-wrap; word-break:break-word; font-size:12.5px; line-height:1.55; font-family:var(--mono);
  border:1px solid var(--rule); padding:14px; background:var(--card2); color:var(--ink); overflow-x:auto; }
.mz-search-in{ width:100%; font-family:var(--mono); font-size:16px; color:var(--ink); background:var(--card);
  border:1px solid var(--ink2); padding:8px 10px; }
.mz-hit{ border-top:1px dashed var(--rule); padding:8px 0; }
.mz-hit .ctx{ font-size:12px; color:var(--ink2); display:block; margin-top:3px; overflow-wrap:anywhere; }
.mz-hit mark{ background:var(--red); color:var(--paper); }
.mz-tag{ display:inline-block; font-size:10px; letter-spacing:1px; border:1px solid var(--ink2);
  padding:1px 6px; color:var(--ink2); font-family:var(--mono); }
.mz-tag.warn{ color:var(--red); border-color:var(--red); }
.mz-chart{ width:100%; height:auto; border:1px solid var(--rule); background:var(--window); }
.mz-verdict{ font-weight:bold; letter-spacing:2px; }
.mz-verdict.BINNED, .mz-verdict.DELETED{ color:#c96a52; }
.mz-verdict.BANNED{ color:var(--red); }
.mz-verdict\.RULED-OUT{ color:var(--red); }
table.mz-tbl{ border-collapse:collapse; width:100%; font-size:12px; color:var(--ink); }
table.mz-tbl th, table.mz-tbl td{ border:1px solid var(--rule); padding:4px 8px; text-align:right; }
table.mz-tbl th:first-child, table.mz-tbl td:first-child{ text-align:left; }

/* ==== the "changelog-viewer" family — an accession-card idiom for lists/notes ====
   Class names carried over from the app-borrowed vocabulary (rooms/standing/
   graveyard/lobby all emit them); only their appearance changed here. */
.changelog-viewer{ border:1px solid var(--rule); background:var(--card); box-shadow:0 1px 0 rgba(0,0,0,.5);
  margin:16px 0 0; padding-bottom:10px; }
.changelog-firmware-head{ padding:9px 12px; border-bottom:1px solid var(--rule); font-size:11px;
  letter-spacing:.3em; text-transform:uppercase; color:var(--ink); margin:0 0 4px; }
.changelog-firmware-head::before{ content:"Form A-1 \00b7 "; color:var(--red); }
.changelog-viewer > p, .changelog-viewer > h1, .changelog-viewer > h2, .changelog-viewer > h3,
.changelog-viewer > h4, .changelog-viewer > ul, .changelog-viewer > blockquote, .changelog-viewer > pre.md-code,
.changelog-viewer > hr{ margin-left:12px; margin-right:12px; }
.changelog-viewer > p:first-of-type{ margin-top:10px; }
.changelog-viewer p, .changelog-viewer li{ line-height:1.6; }
.changelog-viewer code, .md-code{ font-family:var(--mono); background:var(--card2); padding:1px 4px; }
details.changelog-cat{ border-top:1px dotted var(--rule); }
details.changelog-cat > summary{ padding:9px 12px; cursor:pointer; list-style:none; display:flex;
  align-items:baseline; gap:8px; flex-wrap:wrap; }
details.changelog-cat > summary::-webkit-details-marker{ display:none; }
details.changelog-cat > summary::before{ content:"\25b8 "; color:var(--red); font-size:10px; }
details.changelog-cat[open] > summary::before{ content:"\25be "; }
details.changelog-cat > div{ padding:0 12px 10px; }
details.changelog-cat > div > *:first-child{ margin-top:0; }
.changelog-cat-tag{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); }
.changelog-cat-count{ font-family:var(--mono); font-size:11px; color:var(--ink2); }
.changelog-entries{ list-style:none; margin:0; padding:0 12px 10px; }
.changelog-entries li{ padding:5px 0; border-bottom:1px dotted var(--rule); font-size:12.5px; }
.changelog-entries li:last-child{ border-bottom:none; }
.changelog-empty{ margin:0; padding:0 12px 10px; font-size:12px; color:var(--ink2); }

/* ==== lobby — masthead / stat cards / growth fig / vault ledger / condition report ==== */
.sheet{ max-width:900px; margin:0 auto; }
.masthead{ position:relative; padding:8px 14px 0; }
.masthead .co{ font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--ink2); }
.masthead h1{ font-size:clamp(38px,11vw,76px); line-height:.96; letter-spacing:-.015em; font-weight:800;
  text-transform:uppercase; margin:10px 0 12px; }
.masthead h1 .thin{ font-weight:250; letter-spacing:.01em; }
.accession{ display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; color:var(--ink2); padding:0 14px; }
.stamp{ display:block; width:max-content; margin:16px 16px 0 auto; transform:rotate(-5deg);
  border:2.5px solid var(--red); color:var(--red); padding:5px 10px 6px; font-family:var(--mono);
  font-size:10px; letter-spacing:.18em; line-height:1.5; text-align:center; opacity:.92;
  background:rgba(232,127,99,.06); }
.stamp b{ display:block; font-size:12px; letter-spacing:.24em; }
.lede{ font-family:var(--serif); font-size:16px; line-height:1.6; max-width:56ch; margin:20px 14px 0; }
.stats{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:22px 14px 0; }
.stat{ background:var(--card); border:1px solid var(--rule); border-top:3px solid var(--red);
  padding:10px 12px 9px; box-shadow:0 1px 0 rgba(0,0,0,.5); }
.stat b{ display:block; font-family:var(--mono); font-variant-numeric:tabular-nums;
  font-size:clamp(24px,6.8vw,34px); letter-spacing:-.01em; line-height:1.1; color:var(--ink); }
.stat span{ display:block; font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--ink2); margin-top:2px; }
.stat .fine{ letter-spacing:.04em; text-transform:none; font-size:11px; margin-top:4px; }
.fig{ display:block; margin:14px 14px 0; background:var(--card); border:1px solid var(--rule);
  text-decoration:none; color:var(--ink); box-shadow:0 1px 0 rgba(0,0,0,.5); }
.fig:hover{ border-color:var(--ink); }
.fig .cap{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; flex-wrap:wrap;
  padding:9px 12px 8px; border-bottom:1px solid var(--rule); }
.fig .cap b{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; }
.fig .cap b::before{ content:"Fig. 1 \2014 "; color:var(--red); }
.fig .cap span{ font-family:var(--mono); font-size:11px; color:var(--green); }
.fig .window{ display:block; margin:10px 12px 12px; background:var(--window); padding:8px 10px;
  border:2px solid var(--mat); box-shadow:inset 0 2px 8px rgba(0,0,0,.65); }
.fig svg{ display:block; width:100%; height:44px; }
.fig .open{ display:block; padding:0 12px 10px; font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; color:var(--red); }
.wall-label{ display:flex; align-items:center; gap:12px; margin:30px 14px 12px;
  font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:var(--ink); }
.wall-label::before, .wall-label::after{ content:""; height:1px; flex:1; background:var(--ink); }
.ledger{ position:relative; padding:0 14px; }
.floor{ display:grid; grid-template-columns:46px 1fr; text-decoration:none; color:var(--ink); margin:0 0 10px; }
.shaft{ position:relative; }
.shaft::before{ content:""; position:absolute; top:-10px; bottom:-10px; left:50%; width:1px;
  margin-left:-.5px; background:var(--red); opacity:.5; }
.floor:first-child .shaft::before{ top:8px; }
.floor:last-child .shaft::before{ bottom:auto; height:calc(50% + 10px); }
.shaft .lvl{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); background:var(--paper);
  border:1.5px solid var(--ink); color:var(--ink); font-family:var(--mono); font-size:10px; letter-spacing:.06em; padding:3px 5px; }
.room{ position:relative; overflow:hidden; background:var(--card); border:1px solid var(--rule);
  border-left:3px solid var(--ink); padding:11px 13px 12px; box-shadow:0 1px 0 rgba(0,0,0,.5); }
.floor:hover .room, .floor:focus-visible .room{ border-color:var(--ink); background:var(--hover); }
.floor:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }
.room .ghost{ position:absolute; right:4px; bottom:-14px; font-weight:800; font-size:76px; line-height:1;
  color:rgba(232,225,205,.06); pointer-events:none; letter-spacing:-.04em; }
.rhead{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; flex-wrap:wrap; }
.ver{ font-size:22px; font-weight:800; letter-spacing:-.01em; }
.code{ display:block; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink2); margin-top:3px; }
.counts{ display:block; font-family:var(--serif); font-size:13px; line-height:1.5; margin-top:8px; font-variant-numeric:tabular-nums; }
.badge{ flex:none; font-family:var(--mono); font-size:9.5px; letter-spacing:.16em; border:1.5px solid var(--ink);
  padding:2px 7px; white-space:nowrap; }
.occ{ display:flex; align-items:center; gap:8px; margin-top:9px; }
.occ .win{ flex:1; height:14px; background:var(--window); position:relative; border:1.5px solid var(--mat);
  box-shadow:inset 0 1px 4px rgba(0,0,0,.7); }
.occ .win i{ position:absolute; inset:2px auto 2px 2px;
  background:repeating-linear-gradient(90deg, var(--phos) 0 4px, rgba(var(--phos-rgb),.28) 4px 6px); }
.occ em{ font-style:normal; font-family:var(--mono); font-size:10px; color:var(--ink2); letter-spacing:.06em; white-space:nowrap; }
.floor.surface .room{ border-left-color:var(--red); }
.you{ font-family:var(--mono); font-size:9.5px; letter-spacing:.18em; color:var(--paper); background:var(--red);
  padding:3px 8px; font-weight:bold; }
.floor.flight .room{ border-style:dashed; border-left-style:solid; border-left-color:var(--red); }
.floor.flight .badge{ border-color:var(--red); color:var(--red); transform:rotate(-3deg); border-width:2px;
  background:rgba(232,127,99,.07); }
.floor.flight .occ .win i{ background:repeating-linear-gradient(90deg, #f0a63c 0 4px, rgba(240,166,60,.3) 4px 6px); }
.floor.grave .room{ border-left-color:var(--red); background:var(--card2); padding-bottom:40px; }
.floor.grave .ver, .floor.grave .counts{ color:var(--red); }
.floor.grave .badge{ border-color:var(--red); color:var(--red); border-width:2px; transform:rotate(-3deg);
  background:rgba(232,127,99,.07); }
.floor.grave .room::after{ content:"DE-ACCESSIONED"; position:absolute; right:-26px; bottom:8px;
  transform:rotate(-14deg); border:2px solid rgba(232,127,99,.45); color:rgba(232,127,99,.45);
  font-family:var(--mono); font-size:11px; letter-spacing:.3em; padding:3px 30px; pointer-events:none; }
.report{ margin:26px 14px 0; background:var(--card); border:1px solid var(--rule); box-shadow:0 1px 0 rgba(0,0,0,.5); }
.report h2{ font-size:11px; letter-spacing:.3em; text-transform:uppercase; padding:9px 12px; border-bottom:1px solid var(--rule); margin:0; }
.report h2::before{ content:"Form C-3 \00b7 "; color:var(--red); letter-spacing:.1em; }
.report ul{ list-style:none; margin:0; padding:0; }
.report li{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding:8px 12px;
  border-bottom:1px dotted var(--rule); font-size:12.5px; letter-spacing:.06em; }
.report li:last-of-type{ border-bottom:none; }
.report li b{ font-family:var(--mono); font-variant-numeric:tabular-nums; }
.report .ok b::after{ content:" \2713"; color:var(--green); }
.report .warn{ color:var(--red); }
.report .warn b::after{ content:" \25b3"; }
.fineprint{ margin:16px 14px 0; font-size:11.5px; line-height:1.65; color:var(--ink2); border-top:1px solid var(--rule);
  padding-top:10px; overflow-wrap:anywhere; }
.fineprint b{ font-family:var(--mono); font-weight:normal; letter-spacing:.02em; }
@media (min-width:600px){
  .stamp{ position:absolute; top:2px; right:14px; margin:0; }
  .stats{ grid-template-columns:repeat(4,1fr); }
}

/* ==== growth — strip-chart recorder ==== */
.now{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin:18px 14px 14px; }
.now b{ font-family:var(--mono); font-size:clamp(32px,9vw,48px); letter-spacing:-.02em; font-variant-numeric:tabular-nums; line-height:1; }
.now span{ font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--red); line-height:1.6; }
.tape{ position:relative; background:var(--tape); border:1px solid var(--rule); box-shadow:0 1px 0 rgba(0,0,0,.5);
  padding:8px 14px; margin:0 14px; }
.tape::before, .tape::after{ content:""; position:absolute; top:0; bottom:0; width:14px;
  background-image:radial-gradient(circle 3px at 50% 8px, var(--paper) 2.6px, transparent 3.2px);
  background-size:14px 18px; background-repeat:repeat-y; }
.tape::before{ left:0; border-right:1px dashed var(--rule); }
.tape::after{ right:0; border-left:1px dashed var(--rule); }
.tape svg{ display:block; width:100%; height:auto; }
.tape text{ font-family:var(--mono); }
.hint{ margin:8px 14px 0; font-family:var(--mono); font-size:10px; letter-spacing:.1em; color:var(--ink2); text-align:center; }
.chips{ display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin:12px 14px 0; }
.chip, button.chip{ min-height:40px; min-width:64px; font-family:var(--mono); font-size:11px; letter-spacing:.06em;
  color:var(--ink); background:var(--card); border:1px solid var(--ink2); border-radius:6px 6px 0 0;
  border-bottom:2px solid var(--ink); cursor:pointer; padding:4px 8px; }
.chip:hover{ background:var(--hover); }
.chip[aria-pressed="true"]{ background:var(--ink); color:var(--card); border-color:var(--ink); }
.chip:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }
.readout{ margin:14px 14px 0; background:var(--card); border:1px solid var(--rule); border-top:3px solid var(--red);
  box-shadow:0 1px 0 rgba(0,0,0,.5); }
.readout .rhead{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; flex-wrap:wrap;
  padding:10px 12px 9px; border-bottom:1px solid var(--rule); }
.readout .rhead b{ font-size:20px; font-weight:800; letter-spacing:-.01em; }
.readout .rhead span{ font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink2); }
.readout .grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rule); }
.cellv{ background:var(--card); padding:9px 11px 8px; }
.cellv b{ display:inline-block; font-family:var(--mono); font-size:17px; font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.cellv span{ display:block; font-size:8.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink2); margin-top:3px; line-height:1.5; }
.cellv .delta{ display:inline-block; font-family:var(--mono); font-size:10.5px; color:var(--red); margin-left:6px; }
.readout .note{ font-family:var(--serif); font-size:12.5px; line-height:1.6; padding:9px 12px 11px; border-top:1px solid var(--rule); }
.caveat{ margin:16px 14px 0; font-family:var(--serif); font-size:12.5px; line-height:1.65; border-left:3px solid var(--red); padding-left:10px; }
.caveat b{ font-family:var(--sans); font-size:10px; letter-spacing:.2em; color:var(--red); }

/* ==== intent vs reality — exhibit / mat / stage / channel-flip ==== */
.vnote{ font-family:var(--serif); font-size:13px; line-height:1.6; margin:0 14px 12px; text-align:center; color:var(--ink); }
.exhibit{ margin:0 14px 24px; background:var(--card); border:1px solid var(--rule); box-shadow:0 1px 0 rgba(0,0,0,.5); }
.ex-head{ display:flex; justify-content:space-between; gap:8px; align-items:baseline; padding:10px 12px 9px;
  border-bottom:1px solid var(--rule); flex-wrap:wrap; }
.ex-head b{ font-size:14px; letter-spacing:.02em; }
.ex-head b::before{ content:attr(data-plate) " \2014 "; color:var(--red); font-family:var(--mono); font-size:11px; letter-spacing:.08em; }
.ex-head span{ font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink2); }
.mat{ padding:10px; background:var(--mat); }
.stage{ position:relative; height:360px; background:#000; overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.9), 0 1px 3px rgba(34,29,20,.3); }
.stage img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.stage img[hidden]{ display:none; }
.state-chip{ position:absolute; top:8px; left:8px; z-index:4; font-family:var(--mono); font-size:10px;
  letter-spacing:.14em; font-weight:bold; padding:3px 9px; background:#e6dec4; border:1.5px solid #0e5c4a; color:#0e5c4a; }
.state-chip.red{ border-color:#8f2718; color:#8f2718; }
.switch-row{ display:flex; justify-content:center; align-items:center; gap:12px; padding:12px 10px; }
.switch-lab{ font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink2); }
.switch-lab.on{ color:var(--green); font-weight:bold; }
.switch-lab.red.on{ color:var(--red); }
.toggle{ position:relative; width:86px; height:44px; flex:none; cursor:pointer; background:var(--paper);
  border:1.5px solid var(--ink); border-radius:22px; box-shadow:inset 0 1px 3px rgba(34,29,20,.25); }
.toggle .knob{ position:absolute; top:3px; left:3px; width:36px; height:36px; border-radius:50%; background:var(--ink); transition:left .18s; }
.toggle[aria-checked="true"] .knob{ left:45px; background:var(--red); }
.toggle:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
.plaque{ border-top:1px solid var(--rule); padding:11px 12px 12px; }
.plaque h3{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; margin:0 0 8px; }
.plaque h3::before{ content:"Form D-2 \00b7 "; color:var(--red); letter-spacing:.08em; }
.plaque ul{ list-style:none; margin:0; padding:0; }
.plaque li{ font-family:var(--serif); font-size:12.5px; line-height:1.6; padding:6px 0; border-bottom:1px dotted var(--rule);
  display:grid; grid-template-columns:1fr; gap:6px; }
.plaque li:last-child{ border-bottom:none; }
.plaque .i{ color:var(--ink); }
.plaque .r{ color:var(--red); }
.plaque .i::before{ content:"INTENT \00b7 "; font-family:var(--sans); font-size:8.5px; letter-spacing:.12em; color:var(--green); font-weight:bold; }
.plaque .r::before{ content:"SHIPPED \00b7 "; font-family:var(--sans); font-size:8.5px; letter-spacing:.12em; font-weight:bold; }
.prov{ font-size:10.5px; line-height:1.6; color:var(--ink2); padding:9px 12px 11px; border-top:1px solid var(--rule); overflow-wrap:anywhere; }
.verdict{ margin:28px 14px 0; background:var(--card); border:1px solid var(--rule); border-top:3px solid var(--red);
  box-shadow:0 1px 0 rgba(0,0,0,.5); padding:12px 14px; font-family:var(--serif); font-size:13.5px; line-height:1.7; }
.verdict b{ font-family:var(--sans); font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--red); }
@media (min-width:600px){ .plaque li{ grid-template-columns:1fr 1fr; } .stage{ height:460px; } }

/* ==== bug museum — specimen case (defect / guard / latch) ==== */
.tally{ display:flex; gap:8px; flex-wrap:wrap; margin:16px 14px 0; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.tally span{ border:1.5px solid var(--ink); padding:6px 10px; background:var(--card); }
.tally b{ font-family:var(--mono); font-variant-numeric:tabular-nums; }
.tally .flight{ border-color:var(--red); color:var(--red); }
.case{ margin:24px 14px 0; background:var(--card); border:1px solid var(--rule); box-shadow:0 1px 0 rgba(0,0,0,.5); position:relative; }
.case > header{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; padding:10px 13px 9px;
  flex-wrap:wrap; border-bottom:1px solid var(--rule); }
.case > header .num{ display:block; font-family:var(--mono); font-size:9px; letter-spacing:.22em; color:var(--red); }
.case > header b{ font-size:16px; font-weight:800; letter-spacing:0; }
.case > header .date{ font-family:var(--mono); font-size:9px; letter-spacing:.1em; color:var(--ink2);
  border:1px solid var(--rule); padding:3px 7px; white-space:nowrap; }
.defect{ border-top:8px solid transparent;
  border-image:repeating-linear-gradient(-45deg, var(--red) 0 10px, var(--card) 10px 20px) 8;
  background:rgba(232,127,99,.06); padding:11px 13px 13px; }
.defect h3, .guard h3{ font-size:10px; letter-spacing:.26em; text-transform:uppercase; margin:0 0 8px; display:flex; align-items:center; gap:8px; }
.defect h3{ color:var(--red); }
.defect h3::before{ content:"\25b2"; font-size:9px; }
.defect p, .guard p{ font-family:var(--serif); font-size:13px; line-height:1.65; margin:0 0 8px; }
.defect p:last-child, .guard p:last-child{ margin-bottom:0; }
.defect p b, .defect p strong{ color:var(--red-deep); }
.caught{ margin-top:9px; font-size:11px; line-height:1.6; color:var(--red-deep); border-left:3px solid var(--red);
  padding-left:9px; font-family:var(--sans); }
.caught b{ font-family:var(--mono); }
.latch{ display:flex; align-items:baseline; gap:9px; padding:8px 13px; background:var(--card2);
  border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); font-size:10.5px; letter-spacing:.04em;
  line-height:1.6; color:var(--ink); }
.latch .mark{ flex:none; font-family:var(--mono); font-weight:bold; color:var(--green); }
.latch b{ letter-spacing:.18em; color:var(--green); }
.latch.flight .mark, .latch.flight b{ color:var(--red); }
.guard{ background:rgba(140,189,158,.055); padding:11px 13px 13px; }
.guard h3{ color:var(--green); }
.guard h3::before{ content:"\25a0"; font-size:9px; }
.guard p b, .guard p strong{ color:var(--green); }
.guard .loc{ display:inline-block; font-family:var(--mono); font-size:10.5px; margin-top:8px; border:1px solid var(--green);
  color:var(--green); padding:3px 8px; background:var(--card); }
.cost{ margin-top:10px; border:1px dashed var(--ink2); background:var(--card); padding:9px 11px 10px; }
.cost h4{ font-size:9px; letter-spacing:.24em; text-transform:uppercase; color:var(--red); margin:0 0 5px; }
.cost p{ font-family:var(--serif); font-size:12.5px; line-height:1.6; margin:0; }
.photos{ display:grid; grid-template-columns:1fr 1fr; gap:10px; background:var(--mat); padding:10px; margin-top:10px; }
.photos figure{ margin:0; position:relative; box-shadow:inset 0 0 0 1px rgba(0,0,0,.9), 0 1px 3px rgba(34,29,20,.3); }
.photos img{ width:100%; height:190px; object-fit:cover; object-position:center top; display:block; }
.photos figcaption{ position:absolute; top:5px; left:5px; font-family:var(--mono); font-size:8.5px; letter-spacing:.1em;
  font-weight:bold; padding:2px 6px; background:#e6dec4; color:#5b5442; }
@media (min-width:720px){ .case .split{ display:grid; grid-template-columns:1fr 1fr; }
  .case .split .defect{ border-right:1px solid var(--rule); } }
