@font-face { font-family: "Geist";
  src: url("fonts/geist-var.woff2") format("woff2");
  font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Geist Mono";
  src: url("fonts/geist-mono-var.woff2") format("woff2");
  font-weight: 100 900; font-style: normal; font-display: swap; }

/* Arcifact — shared stylesheet.
   Dark technical ground, cyan rule-work, editorial exhibit framing. */


:root {
  --font-sans: "Geist Variable", "Geist", system-ui, -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "Geist Mono Variable", "Geist Mono", ui-monospace,
    "SF Mono", "Menlo", "Cascadia Mono", monospace;

  --text-2xs: .625rem;   --text-xs: .6875rem;   --text-sm: .8125rem;
  --text-base: .9375rem; --text-md: 1rem;       --text-lg: 1.0625rem;
  --text-xl: 1.1875rem;

  --leading-tight: 1.05;  --leading-snug: 1.15;
  --leading-normal: 1.45; --leading-comfort: 1.65;
  --tracking-display: -.025em; --tracking-caption: .02em;
  --tracking-marquee: .16em;

  --color-page: #060914;        --color-page-elev: #0d1322;
  --color-page-elev-2: #152037; --color-page-deep: #03060d;
  --color-ink: #cdddee;         --color-ink-strong: #ebf3fc;
  --color-ink-muted: #7e93b0;   --color-ink-faint: #6b7f99;
  --color-vellum: #f4eddc;
  --color-rule: #1a2336;        --color-rule-strong: #2a3854;
  --color-rule-faint: #0f1626;
  --color-rule-accent: #6cd8e833; --color-rule-accent-strong: #6cd8e866;
  --color-accent: #6cd8e8;      --color-accent-bright: #9ce8f0;
  --color-accent-pale: #6cd8e81f; --color-accent-ink: #b9ecf2;
  --color-mint: #5fdca3;        --color-amber: #e0a86b;

  --container-frame: 78rem;
  --ease-out: cubic-bezier(0, 0, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--color-page);
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: var(--text-md);
  line-height: var(--leading-comfort);
  font-feature-settings: "kern", "liga", "calt", "ss01";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

body::before {
  content: "";
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(ellipse 70% 45% at 50% -8%,
      var(--color-accent-pale), transparent 68%),
    linear-gradient(var(--color-rule-faint) 1px, transparent 1px)
      0 0 / 100% 4rem;
  opacity: .55;
}
.nav, main, .site-foot { position: relative; z-index: 1; }

a { color: var(--color-accent); text-decoration: none;
    transition: color .15s var(--ease-out); }
a:hover { color: var(--color-accent-bright); }

.frame { max-width: var(--container-frame); margin: 0 auto;
         padding: 0 1.75rem; }
p { max-width: 42rem; }
.muted { color: var(--color-ink-muted); }

/* ---------- nav ---------- */
.nav {
  position: sticky; top: 0; z-index: 40;
  border-bottom: 1px solid var(--color-rule);
  background: color-mix(in srgb, var(--color-page) 86%, transparent);
  backdrop-filter: blur(12px) saturate(140%);
}
.nav-inner {
  max-width: var(--container-frame); margin: 0 auto;
  padding: .8rem 1.75rem; display: flex; align-items: center; gap: 1.5rem;
}
.nav-brand {
  display: inline-flex; align-items: center; gap: .55rem;
  color: var(--color-ink-strong); font-family: var(--font-mono);
  font-size: var(--text-sm); letter-spacing: var(--tracking-marquee);
  text-transform: uppercase;
}
.nav-brand svg { width: 19px; height: 19px; fill: none;
  stroke: var(--color-accent); stroke-width: 1.1; }
.nav-links { margin-left: auto; display: flex; gap: 1.35rem;
  font-size: var(--text-sm); flex-wrap: wrap; }
.nav-links a { color: var(--color-ink-muted); }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--color-accent); }
/* menu toggle: hidden on wide viewports, shown when the row would wrap */
.nav-toggle {
  display: none; margin-left: auto; align-items: center; gap: .5rem;
  background: none; border: 1px solid var(--color-rule);
  color: var(--color-ink-muted); font-family: var(--font-mono);
  font-size: var(--text-2xs); letter-spacing: var(--tracking-marquee);
  text-transform: uppercase; padding: .45rem .7rem; cursor: pointer;
  transition: color .15s var(--ease-out), border-color .15s var(--ease-out);
}
.nav-toggle:hover { color: var(--color-accent);
  border-color: var(--color-accent); }
.nav-toggle:focus-visible { outline: 2px solid var(--color-accent);
  outline-offset: 2px; }
.nav-toggle .bars { display: inline-block; width: 14px; height: 10px;
  position: relative; }
.nav-toggle .bars::before, .nav-toggle .bars::after,
.nav-toggle .bars span {
  content: ""; position: absolute; left: 0; right: 0; height: 1px;
  background: currentColor; transition: transform .2s var(--ease-out),
  opacity .2s var(--ease-out); }
.nav-toggle .bars::before { top: 0; }
.nav-toggle .bars span { top: 4.5px; }
.nav-toggle .bars::after { bottom: 0; }
.nav[data-open="true"] .nav-toggle .bars::before {
  transform: translateY(4.5px) rotate(45deg); }
.nav[data-open="true"] .nav-toggle .bars::after {
  transform: translateY(-4.5px) rotate(-45deg); }
.nav[data-open="true"] .nav-toggle .bars span { opacity: 0; }

@media (max-width: 46rem) {
  .nav-inner { flex-wrap: wrap; gap: .7rem; }
  .nav-toggle { display: inline-flex; }
  /* progressive enhancement: without JS the links stay visible, so the
     site is never navigable only by script */
  .nav.js .nav-links { display: none; }
  .nav.js[data-open="true"] .nav-links {
    display: flex; flex-direction: column; align-items: flex-start;
    margin-left: 0; width: 100%; gap: 0;
    font-size: var(--text-sm);
    border-top: 1px solid var(--color-rule); padding-top: .4rem;
  }
  /* :not(.nav-cta) keeps the call to action out of the plain link
     styling, which previously overrode its display and stripped its
     bottom border as the last child, leaving an unclosed box */
  .nav.js[data-open="true"] .nav-links a:not(.nav-cta) {
    display: block; width: 100%; padding: .72rem 0;
    box-sizing: border-box;
    border-bottom: 1px solid var(--color-rule-faint);
  }
  .nav.js[data-open="true"] .nav-links a:not(.nav-cta):last-of-type {
    border-bottom: 0;
  }
  .nav-links { margin-left: 0; width: 100%; gap: 1rem;
    font-size: var(--text-xs); }
  /* the primary action: a filled button, unmistakably not a text field */
  .nav.js[data-open="true"] .nav-cta {
    display: block; width: 100%; box-sizing: border-box;
    margin: 1rem 0 .25rem; padding: .85rem 1rem;
    text-align: center; white-space: normal;
    /* matches the site's own primary .btn rather than inventing a
       louder treatment: accent-pale fill, accent border, accent ink */
    background: var(--color-accent-pale);
    color: var(--color-accent-ink) !important;
    border: 1px solid var(--color-rule-accent-strong);
    font-size: var(--text-sm);
    letter-spacing: var(--tracking-caption);
  }
  .nav.js[data-open="true"] .nav-cta:hover,
  .nav.js[data-open="true"] .nav-cta:focus-visible {
    border-color: var(--color-accent);
    color: var(--color-accent-bright) !important;
  }
}

/* ---------- exhibit marquee ---------- */
.marquee {
  display: flex; justify-content: space-between; gap: 1rem;
  font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-marquee); text-transform: uppercase;
  color: var(--color-ink-faint);
  border-bottom: 1px solid var(--color-rule-faint);
  padding: 1rem 0 .65rem;
}
.marquee span:nth-child(2) { color: var(--color-ink-muted); }
@media (max-width: 42rem) { .marquee span:nth-child(2) { display: none; } }

/* ---------- hero ---------- */
.hero { padding: 4rem 0 3rem; }
.hero-rule {
  font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-marquee); text-transform: uppercase;
  color: var(--color-accent); margin-bottom: 1.4rem;
  display: flex; align-items: center; gap: .7rem;
}
.hero-rule::after {
  content: ""; flex: 1; height: 1px;
  background: linear-gradient(90deg, var(--color-rule-accent-strong), transparent);
}
h1 {
  font-size: clamp(2.2rem, 5.6vw, 3.6rem);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-display);
  color: var(--color-ink-strong);
  margin: 0 0 1.3rem; font-weight: 500; max-width: 20ch;
}
.lede { max-width: 42rem; font-size: var(--text-xl);
  line-height: var(--leading-normal); color: var(--color-ink); margin: 0 0 1.15rem; }
.lede-sm { font-size: var(--text-lg); color: var(--color-ink-muted); }

/* ---------- sections ---------- */
.section { padding: 3.25rem 0; border-top: 1px solid var(--color-rule-faint); }
.sec-label {
  font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-marquee); text-transform: uppercase;
  color: var(--color-ink-faint); display: block; margin-bottom: 1rem;
}
.sec-label b { color: var(--color-accent); font-weight: 400; }
h2 {
  font-size: clamp(1.35rem, 2.6vw, 1.75rem); line-height: var(--leading-snug);
  letter-spacing: var(--tracking-display); color: var(--color-ink-strong);
  margin: 0 0 1rem; font-weight: 500; max-width: 26ch;
}
h3 { font-size: var(--text-md); color: var(--color-ink-strong);
  margin: 0 0 .45rem; font-weight: 500; }

/* ---------- cards ---------- */
.grid {
  display: grid; gap: 1px; background: var(--color-rule);
  border: 1px solid var(--color-rule); margin-top: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}
.cell { background: var(--color-page-elev); padding: 1.5rem 1.4rem;
  transition: background .2s var(--ease-out); }
.cell:hover { background: var(--color-page-elev-2); }
.cell .num {
  font-family: var(--font-mono); font-size: var(--text-2xs);
  color: var(--color-accent); letter-spacing: var(--tracking-marquee);
  display: block; margin-bottom: .7rem;
}
.cell p { font-size: var(--text-base); color: var(--color-ink-muted);
  margin: 0; max-width: none; }

/* ---------- figure exhibit ---------- */
.fig {
  position: relative; border: 1px solid var(--color-rule);
  background: var(--color-page-elev); margin-top: 1.5rem;
  box-shadow: inset 0 1px color-mix(in srgb, var(--color-ink-strong) 4%, transparent),
              0 16px 32px -20px #000000cc;
}
.fig::before, .fig::after {
  content: ""; position: absolute; width: .55rem; height: .55rem;
  border-color: var(--color-accent); pointer-events: none;
}
.fig::before { top: -1px; left: -1px; border-top: 1px solid; border-left: 1px solid; }
.fig::after { bottom: -1px; right: -1px; border-bottom: 1px solid; border-right: 1px solid; }
.fig-head {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 1rem; padding: .8rem 1.2rem; border-bottom: 1px solid var(--color-rule);
  font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-marquee); text-transform: uppercase;
  color: var(--color-ink-faint);
}
.fig-head b { color: var(--color-accent); font-weight: 400; }
.fig-body {
  padding: 1.2rem; font-family: var(--font-mono); font-size: var(--text-sm);
  line-height: 1.9; color: var(--color-ink-muted); overflow-x: auto;
  white-space: pre;
}
.fig-body .k { color: var(--color-accent-ink); }
.fig-body .ok { color: var(--color-mint); }
.fig-body .dim { color: var(--color-ink-faint); }
.fig-foot {
  padding: .8rem 1.2rem; border-top: 1px solid var(--color-rule);
  font-size: var(--text-xs); color: var(--color-ink-faint);
}
.fig-foot p { max-width: none; margin: 0; }

/* ---------- steps ---------- */
.steps { border-top: 1px solid var(--color-rule); margin-top: 1.5rem; }
.step {
  display: grid; grid-template-columns: 3rem minmax(7rem, 10rem) 1fr;
  gap: 1.25rem; padding: 1.15rem 0;
  border-bottom: 1px solid var(--color-rule); align-items: baseline;
}
.step-n { font-family: var(--font-mono); font-size: var(--text-2xs);
  color: var(--color-accent); letter-spacing: var(--tracking-marquee); }
.step-t { font-family: var(--font-mono); font-size: var(--text-sm);
  color: var(--color-ink-strong); letter-spacing: var(--tracking-caption); }
.step-d { color: var(--color-ink-muted); font-size: var(--text-base); }
@media (max-width: 44rem) {
  .step { grid-template-columns: 2.25rem 1fr; row-gap: .3rem; }
  .step-d { grid-column: 2; }
}

/* ---------- definition rows ---------- */
.rows { border-top: 1px solid var(--color-rule); margin-top: 1.25rem; }
.row {
  display: grid; grid-template-columns: minmax(9rem, 13rem) 1fr;
  gap: 1.5rem; padding: 1.1rem 0; border-bottom: 1px solid var(--color-rule);
}
.row dt { font-family: var(--font-mono); font-size: var(--text-sm);
  color: var(--color-accent-ink); letter-spacing: var(--tracking-caption); }
.row dd { margin: 0; color: var(--color-ink-muted); font-size: var(--text-base); }
@media (max-width: 42rem) { .row { grid-template-columns: 1fr; gap: .35rem; } }

/* ---------- pull quote ---------- */
.pull {
  border-left: 2px solid var(--color-accent);
  padding: .3rem 0 .3rem 1.4rem; margin: 2rem 0;
  font-size: var(--text-xl); line-height: var(--leading-normal);
  color: var(--color-ink-strong); max-width: 38rem;
}

/* ---------- buttons ---------- */
.actions { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 2.25rem; }
.btn {
  display: inline-block; font-family: var(--font-mono);
  font-size: var(--text-sm); letter-spacing: var(--tracking-caption);
  padding: .65rem 1.2rem; border: 1px solid var(--color-rule-accent-strong);
  background: var(--color-accent-pale); color: var(--color-accent-ink);
  transition: background .15s var(--ease-out), border-color .15s var(--ease-out),
              transform .15s var(--ease-out);
}
.btn:hover {
  background: color-mix(in srgb, var(--color-accent) 15%, transparent);
  border-color: var(--color-accent); color: var(--color-accent-bright);
  transform: translateY(-1px);
}
.btn-quiet { background: transparent; border-color: var(--color-rule-strong);
  color: var(--color-ink-muted); }
.btn-quiet:hover { border-color: var(--color-rule-accent-strong);
  color: var(--color-accent-ink); background: transparent; }

/* ---------- footer ---------- */
.site-foot {
  border-top: 1px solid var(--color-rule); margin-top: 4.5rem;
  padding: 2.75rem 0 3rem; color: var(--color-ink-faint); font-size: var(--text-sm);
}
.foot-grid {
  display: grid; grid-template-columns: 2.2fr 1fr 1fr;
  gap: 2.5rem; margin-bottom: 2.25rem;
}
@media (max-width: 48rem) { .foot-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 30rem) { .foot-grid { grid-template-columns: 1fr; } }
.foot-grid h4 {
  font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-marquee); text-transform: uppercase;
  color: var(--color-ink-faint); margin: 0 0 .8rem; font-weight: 400;
}
.foot-grid ul { list-style: none; margin: 0; padding: 0; }
.foot-grid li { margin-bottom: .45rem; }
.foot-grid a { color: var(--color-ink-muted); }
.foot-grid a:hover { color: var(--color-accent); }
.foot-rule {
  border-top: 1px solid var(--color-rule-faint); padding-top: 1.25rem;
  display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-caption);
}
.res-ipsa { color: var(--color-vellum); opacity: .5; font-style: italic; }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}

/* ---------- arcifact.io additions (same token system) ---------- */
tbody tr:hover td { background: var(--color-page-elev); }
.tbl { width: 100%; border-collapse: collapse; margin-top: 1.25rem;
  font-size: var(--text-base); }
.tbl th { font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-marquee); text-transform: uppercase;
  color: var(--color-ink-faint); font-weight: 400; text-align: left;
  padding: .6rem .7rem; border-bottom: 1px solid var(--color-rule-strong); }
.tbl td { padding: .6rem .7rem; border-bottom: 1px solid var(--color-rule); }
.tbl .n { font-family: var(--font-mono); font-size: var(--text-sm); }
.tbl .ok { color: var(--color-mint); }
.tbl .bad { color: var(--color-amber); }
.tblwrap { overflow-x: auto; }
.fig-body { min-height: 15.5rem; position: relative; }
.figseal { position: absolute; right: 1rem; bottom: .75rem;
  width: 78px; height: 78px; opacity: 0;
  transform: rotate(-14deg) scale(.6); }
.figseal.on { animation: figstamp .5s cubic-bezier(.2,1.4,.4,1) forwards; }
@keyframes figstamp { to { opacity: 1;
  transform: rotate(-7deg) scale(1); } }
.skip { position: absolute; left: -999px; top: 0; z-index: 60;
  background: var(--color-accent); color: var(--color-page-deep);
  padding: .6rem 1rem; font-family: var(--font-mono);
  font-size: var(--text-sm); }
.skip:focus { left: .75rem; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; }
.legal p { max-width: 46rem; }
@media (prefers-reduced-motion: reduce) {
  .figseal { opacity: 1; transform: rotate(-7deg); }
  .figseal.on { animation: none; }
  html { scroll-behavior: auto; } }
@media print {
  body { background: #fff !important; color: #10151f !important; }
  body::before, .nav, .actions, .figseal, .skip { display: none !important; }
  a { color: #10151f; text-decoration: none; } }

/* ---------- five-second hero ---------- */
.hero-kick { font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-marquee); text-transform: uppercase;
  color: var(--color-ink-faint); margin-bottom: 1.1rem; }
.hero-kick b { color: var(--color-accent); font-weight: 400; }
h1 .turn, h2 .turn { color: var(--color-accent-ink); }
h1 .turn { display: inline; }
.statrow { display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 1px; background: var(--color-rule); border: 1px solid
  var(--color-rule); margin-top: 2.4rem; }
.stat { background: var(--color-page-elev); padding: 1.15rem 1.25rem; }
.stat .v { font-family: var(--font-mono); font-size:
  clamp(1.7rem, 3.4vw, 2.4rem); letter-spacing: -.02em;
  line-height: 1.05; }
.stat .v.ok { color: var(--color-mint); }
.stat .v.bad { color: var(--color-amber); }
.stat .v.k { color: var(--color-accent); }
.stat .l { font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-caption); text-transform: uppercase;
  color: var(--color-ink-muted); margin-top: .45rem; }
.stat-cap { font-family: var(--font-mono); font-size: var(--text-xs);
  color: var(--color-ink-faint); margin-top: .7rem; }
.nav-cta { margin-left: 1.1rem; font-family: var(--font-mono);
  font-size: var(--text-xs); padding: .45rem .8rem;
  border: 1px solid var(--color-rule-accent-strong);
  color: var(--color-accent-ink) !important; text-decoration: none;
  white-space: nowrap; }
.nav-cta:hover { background: var(--color-accent-pale); }


/* ---------- the case: six claims, rank order ---------- */
.case { border-top: 1px solid var(--color-rule); margin-top: 1.6rem; }
.claim { display: grid; grid-template-columns: 3.2rem 1fr auto;
  gap: 1.4rem; align-items: baseline; padding: 1.35rem 0;
  border-bottom: 1px solid var(--color-rule); }
.claim-n { font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-marquee); color: var(--color-ink-faint); }
.claim-h { font-size: clamp(1.15rem, 2.3vw, 1.5rem); font-weight: 500;
  letter-spacing: var(--tracking-display); line-height: var(--leading-snug);
  color: var(--color-ink-strong); margin: 0 0 .35rem; }
.claim-b { color: var(--color-ink-muted); font-size: var(--text-base);
  max-width: 44rem; margin: 0; }
.chip { font-family: var(--font-mono); font-size: var(--text-2xs);
  letter-spacing: var(--tracking-caption); text-transform: uppercase;
  color: var(--color-accent-ink); border: 1px solid
  var(--color-rule-accent-strong); padding: .3rem .55rem;
  white-space: nowrap; align-self: start; }
.chip.ok { color: var(--color-mint); border-color:
  color-mix(in srgb, var(--color-mint) 45%, transparent); }
@media (max-width: 46rem) {
  .claim { grid-template-columns: 1fr; gap: .4rem; }
  .chip { justify-self: start; } }

/* ---------- evidence page + hero settle ---------- */
.cmd { background: var(--color-page-deep); border: 1px solid
  var(--color-rule-strong); padding: 1rem 1.1rem; margin-top: 1.1rem;
  font-family: var(--font-mono); font-size: var(--text-sm);
  line-height: 1.7; color: #cfe0f0; overflow-x: auto; }
.cmd b { color: var(--color-accent); font-weight: 400; }
.tbl .na { color: var(--color-ink-faint); }
.stat .v { display: inline-block; }
.stat .v.settle { animation: settle .55s var(--ease-out) both; }
.stat .v.stamp { animation: stamp2 .45s cubic-bezier(.2,1.5,.4,1) both; }
@keyframes settle { from { opacity: 0; transform: translateY(.35rem); }
  to { opacity: 1; transform: none; } }
@keyframes stamp2 { from { opacity: 0; transform: scale(.55)
  rotate(-6deg); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .stat .v.settle, .stat .v.stamp { animation: none; } }

/* ---------- metrical perfection ---------- */
html { scroll-padding-top: 4.5rem; }
section[id], .fig[id] { scroll-margin-top: 4.5rem; }
.nav-inner { padding: .9rem 1.75rem; }
.nav-brand { margin-right: -.16em; }
.nav-links { gap: 1.5rem; align-items: center; }
.nav-cta { margin-left: .35rem; padding: .5rem .9rem; }
.hero { padding: 3.4rem 0 3rem; }
h1 { margin-bottom: 1.15rem; text-wrap: balance; }
h2, .claim-h { text-wrap: balance; }
.lede { text-wrap: pretty; margin-bottom: 1rem; }
.statrow { grid-template-columns: repeat(3, 1fr); margin-top: 2rem; }
@media (max-width: 46rem) { .statrow { grid-template-columns: 1fr; } }
.stat { padding: 1.05rem 1.15rem; }
.stat .l { margin-top: .4rem; }
.stat-cap { margin-top: .65rem; }
.stat-cap + .actions { margin-top: 1.5rem; }
.claim { align-items: start; }
.claim-n { padding-top: .42rem; }
.claim .chip { margin-top: .3rem; }
.fig-head { display: flex; flex-wrap: wrap; align-items: baseline;
  column-gap: .6rem; row-gap: .2rem; }
.fig-body { padding-right: 6.75rem; }
@media (max-width: 46rem) {
  .fig-body { padding-right: 4.5rem; }
  .figseal { width: 56px; height: 56px; right: .7rem; bottom: .6rem; } }
.tbl td { vertical-align: top; line-height: 1.55; }
.cmd { line-height: 1.85; }
.step-d, .row dd, .claim-b { text-wrap: pretty; }
.site-foot .muted { line-height: var(--leading-normal); }

/* ---------- identity recut: the ring, the seal, the name ---------- */
.nav-brand { gap: .6rem; margin-right: 0; }

/* The mark, sized against the CAP HEIGHT of the name and taken out of
   inline flow.

   THE MARK RODE HIGH FOR A REASON NO NUDGE COULD FIX. The svg is wrapped
   in a plain span, and an inline svg sits ON that span's text baseline.
   The span inherits .nav-brand's .8125rem with a 1.65 line-height, so
   its box is 21.45px with the baseline 15.27px down. A 19.46px mark
   hanging from that baseline has its centre 5.55px from the span top
   while the span's own centre is 10.72px: the mark sat 5.18px above
   where align-items thought it was putting it.

   align-items centres the SPAN. It cannot centre something the span is
   holding above its own baseline. So the wrapper becomes a flex box and
   the svg becomes a block, which makes the span's height the mark's
   height and lets the parent centre the two boxes against each other.

   Size: the wordmark is 1.04rem and Geist's cap height is about .73em,
   so the capitals stand 12.15px. The arc fills 69% of its 24 unit
   viewBox, so a 1.216rem box draws 13.36px of ink, 1.10 times the
   letters. CORRECTED: rendering the mark and measuring the pixels gave
   a fill of .853, not .687. The round linecap extends past the path
   bounding box, which the arithmetic did not account for, so the mark
   was drawing 1.34 times cap height rather than 1.10. .961rem gives
   the 1.08 the logo file was measured at. In rem because .nav-brand's own font-size is smaller than
   the wordmark's, and em here resolved against the wrong one. */
.nav-brand > span:first-of-type { display: flex; align-items: center; }
.nav-brand svg { display: block; width: 0.961rem; height: 0.961rem;
  stroke: none; color: var(--color-accent); }
.nav-brand .wm { font-family: "Geist", var(--font-sans, system-ui);
  font-weight: 650; font-size: 1.04rem; letter-spacing: .13em;
  color: var(--color-ink-strong); }
.nav-brand .wm-dot { color: var(--color-mint); margin-left: .04em;
  letter-spacing: 0; }
.nav-brand:hover svg { color: var(--color-accent-bright); }

/* ---------- reviewer pass: contrast, disclosure ---------- */
.marquee, .sec-label, .stat .l, .stat-cap, .fig-head, .tbl th,
.claim-n { color: var(--color-ink-muted); }
.sec-label b, .fig-head b { color: var(--color-accent); }
