/* ---- talachu field guide: the shared visual system ---- */
/* One warm-neutral palette with a single indigo accent, inspired by Chroma's restrained interface. */

/* Self-hosted so the type does not depend on a third-party request. The latin
   subset covers the site copy; the variable files keep the download small. */
@font-face {
  font-family: "Inter";
  src: url("/assets/fonts/inter-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("/assets/fonts/jetbrains-mono-latin.woff2") format("woff2");
  font-weight: 100 800;
  font-style: normal;
  font-display: swap;
}

:root {
  /* colour */
  --bg: #fbfaf7;
  --fg: #181817;
  --muted: #5e5e5b;
  --border: #e5e4e0;
  --code-bg: #f0efeb;
  --accent: #3046b2;
  --accent-dark: #263b9f;
  --accent-contrast: #ffffff;
  --ok: #176b42;
  --warn: #8a5a00;
  --bad: #9b312b;
  /* type */
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --text-max: 72ch;
  /* spacing and shape: one scale, used by new components */
  --space-1: 0.35rem;
  --space-2: 0.65rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2.25rem;
  --space-6: 3.5rem;
  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --page-max: 1440px;
  color-scheme: light;
}

/* Numbers line up in every table, stat and calculator. */
table,
.fit-stats,
.fit-meter,
.doc-facts,
.spec-tile,
.pick-facts,
.task-example {
  font-variant-numeric: tabular-nums;
}

html { scroll-behavior: smooth; }
body { line-height: 1.65; }
::selection { color: #07101c; background: var(--accent); }

header {
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  border-bottom-color: color-mix(in srgb, var(--border) 75%, transparent);
}

header .bar { padding-top: 0.85rem; padding-bottom: 0.85rem; }
nav.small a { font-size: 0.9rem; font-weight: 650; }
nav.small { gap: 1.1rem; }
nav.small a[aria-current] { color: var(--accent-dark); }
html.dark nav.small a[aria-current] { color: var(--accent); }

.wrap { padding-top: 2.2rem; padding-bottom: 4.5rem; }
.debate {
  grid-template-columns: minmax(0, 0.92fr) minmax(30rem, 1.08fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  padding-top: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.hero-title {
  max-width: 12ch;
  font-size: clamp(3.2rem, 5.4vw, 5.3rem);
  line-height: 0.98;
  letter-spacing: -0.065em;
  font-weight: 820;
}
.hero-kicker { color: var(--accent-dark); font-size: 0.72rem; font-weight: 750; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 1rem; }
.hero-kicker span { color: var(--muted); margin: 0 0.25rem; }
.hero-accent { color: var(--accent-dark); }
html.dark .hero-accent { color: var(--accent); }
.hero-sub {
  max-width: 43ch;
  margin: 1.35rem 0 0;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.55vw, 1.28rem);
  line-height: 1.55;
}
.hero-actions { margin: 1.6rem 0 1.8rem; gap: 0.65rem; }
.btn {
  border-radius: 9px;
  padding: 0.72rem 1rem;
  background: var(--accent-dark);
  color: #fff;
  border-color: var(--accent-dark);
  transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 8px 22px -12px var(--fg); }
.btn.outline { background: transparent; border-color: var(--border); color: var(--fg); }
.btn.outline:hover { background: var(--code-bg); }

.claims {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  max-width: 44rem;
  margin-top: 2rem;
}
.claims li {
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: color-mix(in srgb, var(--bg) 72%, white);
  font-size: 0.82rem;
}
html.dark .claims li { background: color-mix(in srgb, var(--bg) 84%, white); }
.claims strong { font-size: 0.86rem; }
.claims span { font-size: 0.77rem; line-height: 1.45; }

.calc {
  --bg: #071321;
  --fg: #eff6ff;
  --muted: #b3c2d6;
  --border: #2b405d;
  --code-bg: #14263c;
  color-scheme: dark;
  color: var(--fg);
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: clamp(1.25rem, 3vw, 2.25rem);
  margin: 0;
  max-width: none;
  box-shadow: 0 24px 70px -38px #071321;
}
.proof .calc { background: #071321; }
.calc .calc-fit.ok { color: var(--accent); }
.calc .calc-fit.bad { color: #ff9b86; }
.calc-question { color: var(--fg); font-size: 1.05rem; font-weight: 760; }
.calc-question span { display: block; color: var(--muted); font-size: 0.84rem; font-weight: 450; }
.calc-label { color: var(--accent-dark); }
.calc .calc-label { color: var(--accent); }
.calc-row { gap: 0.55rem; }
.calc select {
  background: #14263c;
  border-color: #36516f;
  color: #eff6ff;
  border-radius: 7px;
  font-size: 0.8rem;
  padding: 0.5rem 0.65rem;
}
.calc-out { border-top-color: var(--border); }
.calc-note { color: var(--muted); font-size: 0.84rem; }
.proof-link { max-width: 56rem; margin: 1.15rem auto 0; color: var(--muted); font-size: 0.86rem; }
.proof-link a { color: var(--fg); text-underline-offset: 3px; }

.now-band {
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr);
  align-items: start;
  gap: 0.75rem 2rem;
  margin-top: 4.2rem;
  padding: 1.25rem 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.now-band a { margin: 0; }
.now-band strong { font-size: clamp(1.2rem, 2vw, 1.65rem); max-width: none; }
.now-band span { max-width: 85ch; font-size: 0.88rem; }
.quick-picks { border-top: 0; margin-top: 3.5rem; padding-top: 0; }
.quick-picks-head { grid-template-columns: minmax(12rem, 0.8fr) minmax(0, 1.5fr); }
.quick-picks-head h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); letter-spacing: -0.05em; }
.quick-picks-grid a {
  background: color-mix(in srgb, var(--bg) 78%, white);
  border-radius: 12px;
  min-height: 9.8rem;
}
html.dark .quick-picks-grid a { background: color-mix(in srgb, var(--bg) 85%, white); }
.quick-picks-grid a:hover { border-color: var(--accent-dark); }
html.dark .quick-picks-grid a:hover { border-color: var(--accent); }
.onward { margin-top: 4rem; }

.page-head { max-width: 64rem; margin-bottom: 2.8rem; }
.page-kicker { color: var(--accent-dark); font-size: 0.72rem; }
html.dark .page-kicker { color: var(--accent); }
.page-title { font-size: clamp(2.5rem, 5vw, 4.8rem); line-height: 1; letter-spacing: -0.06em; }
.page-sub { max-width: 63ch; color: var(--muted); font-size: 1.08rem; }
.doc, .work, .sponsor-card, .model-doc {
  border-radius: 16px;
}
.detail.full .doc { padding: clamp(1.3rem, 3vw, 2.8rem); border: 1px solid var(--border); background: color-mix(in srgb, var(--bg) 75%, white); }
html.dark .detail.full .doc { background: color-mix(in srgb, var(--bg) 82%, white); }
.doc-title { letter-spacing: -0.045em; }
.doc h2 { letter-spacing: -0.035em; }
.bench-table { border-collapse: separate; border-spacing: 0; overflow: hidden; border-radius: 10px; }
.bench-table th { background: var(--code-bg); }
.bench-table th, .bench-table td { border-color: var(--border); }
.table-scroll {
  max-width: 100%;
  margin: 1rem 0 1.5rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  border-radius: 10px;
}
.table-scroll:focus-visible { outline: 2px solid var(--accent-dark); outline-offset: 3px; }
.table-scroll table { min-width: max-content; margin: 0; }
.work, .sponsor-card { background: color-mix(in srgb, var(--bg) 75%, white); }
html.dark .work, html.dark .sponsor-card { background: color-mix(in srgb, var(--bg) 82%, white); }

.model-page-intro {
  max-width: 68rem;
  margin: 0 0 2.2rem;
}
.model-page-intro .page-kicker span { color: var(--muted); margin-left: 0.65rem; }
.model-page-intro h1 {
  max-width: 15ch;
  font-size: clamp(2.65rem, 5vw, 5rem);
  line-height: 0.98;
  letter-spacing: -0.065em;
}
.model-page-intro > p:last-child { max-width: 65ch; margin-top: 0.9rem; color: var(--muted); font-size: 1rem; }
.detail.models {
  grid-template-columns: minmax(15rem, 0.27fr) minmax(0, 0.73fr) 11rem;
  gap: 0 2.2rem;
  padding: 1.4rem;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: color-mix(in srgb, var(--bg) 70%, white);
}
html.dark .detail.models { background: color-mix(in srgb, var(--bg) 82%, white); }
.models-rail { top: 6rem; }
.model-finder { padding: 1rem; border-radius: 12px; background: var(--bg); }
.finder-title { font-size: 1rem; }
.model-finder label { font-size: 0.76rem; }
.finder-note { font-size: 0.72rem; }
.model-search input, .model-finder select { border-radius: 8px; }
.mod-tab { border-radius: 8px; }
.mod-tab.active { background: var(--fg); color: var(--bg); }
.promise { font-size: 0.78rem; line-height: 1.5; }
.shelf-head { padding-top: 0; }
.shelf-track { gap: 0.7rem; }
.shelf-card { border-radius: 12px; }
.detail.models.searching .mod-shelf { display: grid; gap: 1rem; }
.detail.models.searching .shelf-track {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr));
  overflow: visible;
  padding-bottom: 0;
}
.detail.models.searching .shelf-card { min-width: 0; min-height: 7rem; }
.detail.models.searching .shelf-card[hidden] { display: none; }
.search-empty { border-radius: 10px; background: var(--code-bg); padding: 0.8rem 1rem; font-size: 0.86rem; }
.model-doc { border-radius: 14px; }
.doc-meta { border-radius: 10px; }
.doc-panel { border-radius: 12px; }
.calc-fit { border-radius: 8px; }
footer { margin-top: 2rem; }

/* ---- curated model shortlist and refreshed site sections ---- */
.home-hero { padding-bottom: clamp(2rem, 4vw, 3.5rem); border-bottom: 1px solid var(--border); }
.hero-title { max-width: 14ch; }
.hero-kicker, .calc-label, .page-kicker { color: var(--accent-dark); }
html.dark .hero-kicker, html.dark .calc-label, html.dark .page-kicker { color: var(--accent); }
.calc .calc-fit.ok { color: var(--accent); }
.work-home {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .85fr); gap: 2rem;
  margin-top: 4rem; padding: clamp(1.4rem, 4vw, 3rem); border: 1px solid var(--border);
  border-radius: 18px; background: color-mix(in srgb, var(--code-bg) 68%, var(--bg));
}
.work-home h2 { margin: .25rem 0 .65rem; font-size: clamp(2rem, 3.5vw, 3.2rem); line-height: 1.05; letter-spacing: -.055em; }
.work-home-copy > p:not(.calc-label) { max-width: 48ch; color: var(--muted); margin: 0 0 1.3rem; }
.work-home .btn { display: inline-flex; text-decoration: none; }
.work-offers { display: grid; gap: .65rem; align-content: center; list-style: none; margin: 0; padding: 0; }
.work-offers li { display: grid; gap: .1rem; padding: .8rem 0; border-bottom: 1px solid var(--border); }
.work-offers li:last-child { border-bottom: 0; }
.work-offers strong { font-size: .95rem; }
.work-offers span { color: var(--muted); font-size: .84rem; line-height: 1.45; }
.field-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 2rem; }
.field-notes a, .catalog-next a {
  display: grid; gap: .35rem; min-width: 0; padding: 1.1rem 1.25rem; text-decoration: none;
  border: 1px solid var(--border); border-radius: 12px; background: color-mix(in srgb, var(--bg) 72%, white);
}
html.dark .field-notes a, html.dark .catalog-next a { background: color-mix(in srgb, var(--bg) 84%, white); }
.field-notes a:hover, .catalog-next a:hover { border-color: var(--accent-dark); }
html.dark .field-notes a:hover, html.dark .catalog-next a:hover { border-color: var(--accent); }
.note-kicker, .catalog-next span { color: var(--accent-dark); font-size: .68rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
html.dark .note-kicker, html.dark .catalog-next span { color: var(--accent); }
.field-notes strong, .catalog-next strong { font-size: 1.06rem; line-height: 1.3; }
.field-notes small { color: var(--muted); }
.catalog { border: 1px solid var(--border); border-radius: 18px; overflow: hidden; background: color-mix(in srgb, var(--bg) 78%, white); }
html.dark .catalog { background: color-mix(in srgb, var(--bg) 85%, white); }
.catalog-tools { display: grid; grid-template-columns: minmax(13rem, .9fr) minmax(25rem, 1.6fr); gap: .5rem 2rem; align-items: end; padding: 1.35rem 1.5rem 1rem; }
.catalog-tools h2 { margin: .1rem 0 0; font-size: 1.18rem; letter-spacing: -.025em; }
.catalog-controls { display: grid; grid-template-columns: auto minmax(9rem, .8fr) minmax(13rem, 1.2fr) auto; gap: .5rem; align-items: center; }
.catalog-controls label { color: var(--muted); font-size: .76rem; font-weight: 650; }
.catalog-controls select, .catalog-controls input { min-width: 0; min-height: 2.7rem; padding: .55rem .7rem; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); color: var(--fg); font: inherit; font-size: .83rem; }
.catalog-clear { min-height: 2.7rem; padding: .45rem .75rem; border: 1px solid var(--border); border-radius: 8px; background: transparent; color: var(--fg); font: inherit; font-size: .8rem; cursor: pointer; }
.catalog-clear:hover { border-color: var(--accent-dark); }
.catalog-status { grid-column: 2; margin: 0; color: var(--muted); font-size: .76rem; }
.category-nav { display: flex; gap: .45rem; flex-wrap: wrap; padding: .75rem 1.5rem 1rem; border-top: 1px solid var(--border); }
.category-nav a { display: inline-flex; gap: .45rem; align-items: center; padding: .42rem .65rem; border: 1px solid var(--border); border-radius: 999px; color: var(--fg); font-size: .76rem; text-decoration: none; }
.category-nav a:hover { border-color: var(--accent-dark); color: var(--accent-dark); }
html.dark .category-nav a:hover { border-color: var(--accent); color: var(--accent); }
.category-nav span { color: var(--muted); font-size: .64rem; }
.pick-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; padding: 0 1rem 1rem; }
.model-pick { scroll-margin-top: 7rem; min-width: 0; padding: 1.1rem 1.15rem; border: 1px solid var(--border); border-radius: 13px; background: var(--bg); }
.model-pick[hidden] { display: none; }
.pick-top { display: flex; justify-content: space-between; gap: .6rem; align-items: center; }
.pick-category { color: var(--accent-dark); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
html.dark .pick-category { color: var(--accent); }
.pick-rec { max-width: 55%; padding: .22rem .45rem; border-radius: 999px; background: var(--code-bg); color: var(--muted); font-size: .66rem; text-align: right; }
.model-pick h2 { margin: .72rem 0 .1rem; font-size: clamp(1.3rem, 2vw, 1.75rem); letter-spacing: -.04em; line-height: 1.15; }
.pick-id { overflow-wrap: anywhere; margin: 0; color: var(--muted); font: 500 .73rem/1.5 var(--font-mono); }
.pick-summary { min-height: 3.25rem; margin: .7rem 0; font-size: .88rem; line-height: 1.5; }
.pick-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; margin: .8rem 0; }
.pick-facts div { min-width: 0; padding: .5rem .6rem; border-radius: 7px; background: var(--code-bg); }
.pick-facts dt { color: var(--muted); font-size: .63rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.pick-facts dd { overflow-wrap: anywhere; margin: .13rem 0 0; font-size: .82rem; font-weight: 720; line-height: 1.3; }
.pick-note { padding: .7rem .75rem; border-left: 2px solid var(--accent-dark); background: color-mix(in srgb, var(--code-bg) 55%, var(--bg)); }
html.dark .pick-note { border-color: var(--accent); }
.pick-note strong, .pick-caveat strong { font-size: .76rem; }
.pick-note p { margin: .15rem 0 0; color: var(--muted); font-size: .77rem; line-height: 1.48; }
.pick-caveat { margin: .65rem 0; color: var(--muted); font-size: .76rem; line-height: 1.48; }
.pick-caveat strong { color: var(--fg); }
.pick-links { display: flex; flex-wrap: wrap; gap: .45rem .9rem; margin-top: .8rem; }
.pick-links a, .about-site-card > a { color: var(--accent-dark); font-size: .78rem; font-weight: 720; text-underline-offset: 3px; }
html.dark .pick-links a, html.dark .about-site-card > a { color: var(--accent); }
.pick-footnote { margin: .6rem 0 0; color: var(--muted); font-size: .69rem; line-height: 1.45; }
.catalog-method { margin: 0; padding: 1rem 1.5rem 1.2rem; border-top: 1px solid var(--border); color: var(--muted); font-size: .78rem; line-height: 1.55; }
.catalog-method strong { color: var(--fg); }
.catalog-next { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1rem; }
.catalog-next a { text-decoration: none; }
.about-head { max-width: 54rem; }
.about-site-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.about-site-card { padding: 1.2rem; border: 1px solid var(--border); border-radius: 13px; background: color-mix(in srgb, var(--bg) 72%, white); }
html.dark .about-site-card { background: color-mix(in srgb, var(--bg) 84%, white); }
.about-site-card > span { color: var(--accent-dark); font-size: .68rem; font-weight: 800; letter-spacing: .1em; }
html.dark .about-site-card > span { color: var(--accent); }
.about-site-card h2 { margin: .75rem 0 .45rem; font-size: 1.25rem; letter-spacing: -.035em; }
.about-site-card p, .about-method p { color: var(--muted); font-size: .9rem; line-height: 1.6; }
.about-site-card p { min-height: 7rem; }
.about-method { max-width: 66rem; margin-top: 3rem; padding-top: 1.4rem; border-top: 1px solid var(--border); }
.about-method h2 { font-size: 1.5rem; letter-spacing: -.04em; }
.about-method p { max-width: 72ch; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 1180px) {
  .debate { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 2rem; }
  .detail.models { grid-template-columns: 16rem minmax(0, 1fr); gap: 0 1.5rem; }
  .detail.models .toc { display: none; }
}

@media (max-width: 980px) {
  .debate { grid-template-columns: 1fr; }
  .case { max-width: 60rem; }
  .proof { max-width: 56rem; }
  .detail.shelf.two { grid-template-columns: minmax(0, 1fr); }
  .detail.models { grid-template-columns: minmax(0, 1fr); padding: 1rem; }
  .models-rail { position: static; }
  .detail.models .toc { display: none; }
  .catalog-tools { grid-template-columns: 1fr; gap: .75rem; }
  .catalog-status { grid-column: auto; }
  .about-site-grid { grid-template-columns: 1fr; }
  .about-site-card p { min-height: 0; }
}

@media (max-width: 760px) {
  header { position: sticky; top: 0; }
  header .bar { flex-wrap: wrap; gap: 0.55rem; padding: 0.7rem 1rem; }
  nav.small { width: 100%; justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; white-space: nowrap; gap: 1rem; padding-bottom: 0.1rem; }
  nav.small::-webkit-scrollbar { display: none; }
  body { padding-top: 0; }
  .wrap { padding: 1.2rem 1rem 3rem; }
  .debate { padding-top: 1.3rem; }
  .hero-title { font-size: clamp(3rem, 13vw, 4.5rem); }
  .claims { grid-template-columns: 1fr; }
  .now-band { grid-template-columns: 1fr; gap: 0.25rem; margin-top: 2.7rem; }
  .quick-picks-head { grid-template-columns: 1fr; gap: 0.45rem; }
  .quick-picks-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; }
  .quick-picks-grid a { min-height: 8.5rem; padding: 0.75rem; }
  .quick-picks-grid strong { font-size: 0.9rem; }
  .quick-picks-grid small { font-size: 0.68rem; }
  .model-page-intro { margin-bottom: 1.4rem; }
  .detail.models { padding: 0.75rem; border-radius: 14px; }
  .page-title { font-size: clamp(2.1rem, 10vw, 3.2rem); overflow-wrap: anywhere; }
  .detail.full .doc { padding: 1.1rem; }
  .work-home { grid-template-columns: 1fr; gap: 1rem; margin-top: 2.8rem; }
  .field-notes, .catalog-next { grid-template-columns: 1fr; }
  .catalog-tools { padding: 1rem; }
  .catalog-controls { grid-template-columns: auto minmax(0, 1fr); }
  .catalog-controls label[for="catalog-task"] { grid-column: 1; }
  .catalog-controls select { grid-column: 2; }
  .catalog-controls input { grid-column: 1 / -1; }
  .catalog-clear { grid-column: 1 / -1; justify-self: start; }
  .category-nav { gap: .35rem; padding: .75rem 1rem; }
  .pick-grid { grid-template-columns: 1fr; padding: 0 .65rem .65rem; }
  .model-pick { padding: 1rem; }
  .pick-summary { min-height: 0; }
  .catalog-method { padding: .9rem 1rem; }
  .about-site-card { padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

/* Talachu Labs: editorial system diagrams, task-first IA, restrained surfaces. */

body { background:var(--bg); color:var(--fg); font-family: var(--font-sans); line-height:1.6; }
header { background:color-mix(in srgb,var(--bg) 94%,transparent); border-bottom:1px solid var(--border); }
header .bar, footer .bar { max-width:1360px; padding:1rem clamp(1rem,4vw,3rem); }
.wordmark { display:inline-flex; align-items:baseline; color:var(--fg); text-decoration:none; font-weight:820; font-size:1.03rem; letter-spacing:-.055em; }
.wordmark span { margin-left:.32rem; color:var(--accent-dark); font-size:.72rem; font-weight:650; letter-spacing:.04em; text-transform:uppercase; }
html.dark .wordmark span { color:var(--accent); }
nav.small { gap:1.5rem; }
nav.small a { color:var(--muted); font-size:.82rem; font-weight:600; text-decoration:none; }
nav.small a:hover,nav.small a[aria-current] { color:var(--fg); }
.lab-home,.models-index,.about-labs { width:min(100% - 2rem, 1280px); margin:0 auto; }
.lab-hero { min-height:610px; display:grid; grid-template-columns:minmax(0,1fr) minmax(390px,.9fr); align-items:center; gap:clamp(2rem,7vw,7rem); padding:clamp(3.5rem,8vw,7rem) 0; border-bottom:1px solid var(--border); }
.eyebrow,.section-index { margin:0 0 1.1rem; color:var(--accent-dark); font:700 .7rem/1.4 var(--font-mono); letter-spacing:.13em; text-transform:uppercase; }
html.dark .eyebrow,html.dark .section-index { color:var(--accent); }
.live-dot { display:inline-block; width:7px; height:7px; margin:0 .5rem .05rem 0; border-radius:50%; background:var(--accent-dark); }
.hero-copy h1,.models-heading h1 { margin:0; font-size:clamp(3.8rem,8vw,7.8rem); line-height:.91; letter-spacing:-.085em; font-weight:790; }
.hero-copy h1 em,.models-heading h1 em { color:var(--accent-dark); font-style:normal; }
html.dark .hero-copy h1 em,html.dark .models-heading h1 em { color:var(--accent); }
.hero-deck { max-width:49ch; margin:1.5rem 0 .8rem; font-size:clamp(1.05rem,1.6vw,1.32rem); line-height:1.5; }
.hero-claim { max-width:58ch; margin:.8rem 0; color:var(--muted); font-size:.91rem; }
.hero-actions { display:flex; gap:1.35rem; align-items:center; margin:1.55rem 0 .65rem; }
.btn { border:1px solid var(--accent-dark); border-radius:2px; padding:.7rem 1rem; background:var(--accent-dark); color:#fff; font-size:.85rem; font-weight:700; text-decoration:none; }
.btn:hover { background:#0c478f; }
.text-link { color:var(--fg); font-size:.86rem; font-weight:700; text-decoration:none; border-bottom:1px solid var(--accent-dark); padding-bottom:.22rem; }
.text-link span { color:var(--accent-dark); margin-left:.35rem; }
html.dark .text-link { border-color:var(--accent); }
.hero-footnote { color:var(--muted); font-size:.72rem; }
.system-figure { margin:0; color:var(--fg); }
.system-figure svg { display:block; width:100%; max-height:420px; }
.system-figure figcaption { margin-top:.8rem; color:var(--muted); font: .7rem/1.45 var(--font-mono); }
.principle-section,.task-section,.fit-section,.delivery-section { display:grid; grid-template-columns:190px minmax(0,1fr); gap:clamp(1.5rem,4vw,4rem); padding:5rem 0; border-bottom:1px solid var(--border); }
.section-index { padding-top:.4rem; }
.section-heading { display:grid; grid-template-columns:minmax(14rem,.75fr) minmax(20rem,1fr); gap:2rem; align-items:end; margin-bottom:2.25rem; }
.section-heading h2,.principle-copy h2,.about-contact h2 { margin:0; font-size:clamp(2rem,4.5vw,4rem); line-height:1; letter-spacing:-.07em; }
.section-heading p,.principle-intro { max-width:56ch; margin:0; color:var(--muted); font-size:.95rem; }
.principle-intro { margin:1rem 0 2rem; font-size:1.1rem; }
.principle-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:2.3rem; }
.principle-grid article { padding:1.1rem 0; border-top:1px solid var(--border); }
.principle-grid b { font-size:.95rem; }
.principle-grid p,.about-method p { max-width:48ch; margin:.4rem 0 0; color:var(--muted); font-size:.82rem; }
.guardrail { margin:1.5rem 0 0; padding-left:1rem; border-left:2px solid var(--accent-dark); color:var(--muted); font-size:.8rem; }
.task-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:2rem; }
.task-list a { display:grid; grid-template-columns:2.3rem minmax(0,1fr) auto; gap:.12rem .7rem; align-items:center; min-width:0; padding:1rem 0; border-top:1px solid var(--border); color:var(--fg); text-decoration:none; }
.task-list a:hover strong { color:var(--accent-dark); }
.task-no { grid-row:span 2; align-self:start; color:var(--accent-dark); font: .68rem var(--font-mono); }
.task-list strong { font-size:.88rem; }
.task-list small { color:var(--muted); font-size:.72rem; }
.task-arrow { grid-column:3; grid-row:1 / span 2; color:var(--muted); }
.fit-panel { border:1px solid var(--border); }
.fit-inputs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; padding:1.2rem; border-bottom:1px solid var(--border); }
.fit-inputs label,.filter-controls label { display:grid; gap:.35rem; color:var(--muted); font-size:.68rem; font-weight:700; }
.fit-inputs select,.filter-controls select,.filter-controls input { width:100%; min-width:0; min-height:2.5rem; border:1px solid var(--border); border-radius:2px; padding:.5rem; background:var(--bg); color:var(--fg); font:inherit; font-size:.75rem; }
.fit-output { display:grid; grid-template-columns:190px 1fr; gap:1.5rem; padding:1.5rem; }
.fit-meter { --fit:0%; display:grid; align-content:center; justify-items:center; min-height:160px; border:1px solid var(--border); background:linear-gradient(to top,var(--accent) var(--fit),transparent var(--fit)); text-align:center; }
.fit-meter span { font-size:2.2rem; font-weight:750; letter-spacing:-.06em; }
.fit-meter small { color:var(--muted); font-size:.67rem; }
.fit-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1.5rem; }
.fit-stats p { display:flex; justify-content:space-between; gap:1rem; margin:0; padding:.62rem 0; border-bottom:1px solid var(--border); font-size:.78rem; }
.fit-stats p span { color:var(--muted); }
.fit-stats .fit-total { font-weight:750; }
.fit-stats .calc-fit { grid-column:1/-1; display:block; color:var(--accent-dark); font-weight:750; }
html.dark .fit-stats .calc-fit { color:var(--accent); }
.fit-stats .calc-fit.bad { color:#d55252; }
.fit-stats .fit-caveat { grid-column:1/-1; display:block; border:0; color:var(--muted); font-size:.7rem; line-height:1.5; }
.fit-foot { padding:.7rem 1.2rem; border-top:1px solid var(--border); color:var(--muted); font-size:.68rem; }
.delivery-steps { list-style:none; margin:0; padding:0; border-top:1px solid var(--border); counter-reset:stage; }
.delivery-steps li { display:grid; grid-template-columns:2.5rem minmax(0,1fr) minmax(10rem,.38fr); gap:1rem; align-items:start; padding:1rem 0; border-bottom:1px solid var(--border); }
.delivery-steps li>span { color:var(--accent-dark); font: .7rem var(--font-mono); }
html.dark .delivery-steps li>span { color:var(--accent); }
.delivery-steps b { font-size:.9rem; }
.delivery-steps p { margin:.25rem 0 0; color:var(--muted); font-size:.79rem; }
.delivery-steps small { color:var(--muted); font: .67rem var(--font-mono); }
.delivery-content>.text-link { display:inline-block; margin-top:1.5rem; }
footer { margin-top:0; border-top:1px solid var(--border); }
footer .bar { display:flex; justify-content:space-between; gap:1rem; color:var(--muted); font-size:.71rem; }
footer a { color:var(--fg); }

/* dense model index */
.models-heading { padding:4rem 0 2.5rem; border-bottom:1px solid var(--border); }
.models-heading h1 { font-size:clamp(3rem,6vw,6rem); }
.models-heading>p:not(.eyebrow) { max-width:74ch; color:var(--muted); font-size:.95rem; }
.models-heading .models-reviewed { font: .67rem var(--font-mono); }
.model-filter { display:grid; grid-template-columns:210px minmax(0,1fr); gap:1rem 2rem; padding:1.5rem 0; border-bottom:1px solid var(--border); }
.filter-intro { display:grid; align-content:start; gap:.4rem; }
.filter-intro span { color:var(--accent-dark); font: .67rem var(--font-mono); }
.filter-intro b { font-size:.9rem; }
.filter-controls { display:grid; grid-template-columns:1.1fr 1.2fr .8fr 1.3fr auto; gap:.75rem; align-items:end; }
.catalog-clear { min-height:2.5rem; border:1px solid var(--border); border-radius:2px; padding:.45rem .8rem; background:transparent; color:var(--fg); cursor:pointer; }
#catalog-status { grid-column:2; margin:0; color:var(--muted); font: .68rem var(--font-mono); }
.model-categories { display:flex; flex-wrap:wrap; gap:1.25rem; padding:1rem 0; border-bottom:1px solid var(--border); }
.model-categories a { color:var(--fg); font-size:.75rem; text-decoration:none; }
.model-categories span { margin-left:.2rem; color:var(--muted); font: .63rem var(--font-mono); }
.catalog-table { width:100%; border-collapse:collapse; font-size:.72rem; }
.catalog-table th { padding:.7rem .55rem; border-bottom:1px solid var(--fg); color:var(--muted); font:700 .63rem var(--font-mono); text-align:left; text-transform:uppercase; letter-spacing:.06em; }
.catalog-table .category-divider th { padding:1.3rem .55rem .55rem; border-bottom:1px solid var(--border); color:var(--fg); font-size:.75rem; }
.catalog-table .category-divider span { margin-left:.35rem; color:var(--muted); font-weight:500; text-transform:none; letter-spacing:0; }
.catalog-table td { padding:.65rem .55rem; border-bottom:1px solid var(--border); vertical-align:top; }
.catalog-table tbody tr:first-child td { border-top:1px solid var(--border); }
.catalog-table td:first-child { min-width:220px; }
.catalog-table td a { color:var(--fg); font-weight:700; text-decoration-color:var(--accent-dark); text-underline-offset:3px; }
.catalog-table td small { display:block; max-width:34ch; margin-top:.15rem; color:var(--muted); font-size:.67rem; }
.catalog-table td:nth-child(3),.catalog-table td:nth-child(4) { white-space:nowrap; font-variant-numeric:tabular-nums; }
.catalog-table tr[hidden] { display:none; }
.model-group { scroll-margin-top:6rem; }
.model-notes { display:grid; grid-template-columns:1fr 1fr; gap:2rem; padding:1.4rem 0 3rem; color:var(--muted); font-size:.74rem; }
.model-notes b { color:var(--fg); }
.about-labs .models-heading { padding-bottom:3rem; }
.about-method { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; padding:2rem 0 3rem; border-bottom:1px solid var(--border); }
.about-method>div { border-top:1px solid var(--fg); padding-top:.7rem; }
.about-method span { color:var(--accent-dark); font: .66rem var(--font-mono); }
.about-method h2 { margin:.6rem 0; font-size:1.1rem; letter-spacing:-.03em; }
.about-contact { padding:3rem 0 5rem; }
.about-contact h2 { margin-bottom:1.2rem; }
.not-found { width:min(100% - 2rem,1280px); min-height:55vh; margin:5rem auto; }
.not-found h1 { font-size:clamp(3rem,7vw,6rem); letter-spacing:-.07em; }
.not-found p:not(.eyebrow) { color:var(--muted); }

@media(max-width:950px) { .lab-hero { grid-template-columns:1fr; gap:2rem; } .system-figure { max-width:640px; } .principle-section,.task-section,.fit-section,.delivery-section { grid-template-columns:120px 1fr; } .fit-inputs { grid-template-columns:repeat(3,1fr); } .filter-controls { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .lab-home,.models-index,.about-labs { width:min(100% - 1.4rem,1280px); } .lab-hero { padding:3rem 0; } .hero-copy h1 { font-size:clamp(3.4rem,16vw,5.3rem); } .principle-section,.task-section,.fit-section,.delivery-section { grid-template-columns:1fr; gap:.6rem; padding:3rem 0; } .section-index { margin-bottom:.6rem; } .section-heading { grid-template-columns:1fr; gap:.7rem; margin-bottom:1.2rem; } .principle-grid,.task-list,.model-notes,.about-method { grid-template-columns:1fr; } .fit-inputs { grid-template-columns:repeat(2,1fr); padding:.8rem; gap:.7rem; } .fit-output { grid-template-columns:1fr; padding:.8rem; } .fit-meter { min-height:115px; } .delivery-steps li { grid-template-columns:2rem 1fr; gap:.6rem; } .delivery-steps small { grid-column:2; } .model-filter { grid-template-columns:1fr; gap:.8rem; } #catalog-status { grid-column:1; } .catalog-table { min-width:760px; } .models-heading { padding:3rem 0 1.7rem; } footer .bar { flex-wrap:wrap; } }


/* Single-color editorial system: warm white, ink, quiet gray, one indigo. */
body { background:var(--bg); color:var(--fg); }
::selection { background:var(--accent); color:#fff; }
header { background:color-mix(in srgb,var(--bg) 96%,transparent); }
nav.small a[aria-current] { color:var(--accent); }
.wordmark { display:inline-flex; align-items:baseline; gap:.38rem; color:var(--fg); text-decoration:none; font-family: var(--font-sans); font-size:2.05rem; font-weight:790; letter-spacing:-.09em; line-height:.9; }
.wordmark span { color:var(--accent); font-size:.65rem; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }
.btn { border-radius:0; background:var(--accent); border-color:var(--accent); }
.text-link span,.task-no,.filter-intro span,.about-method span,.delivery-steps li>span { color:var(--accent); }
.hero-copy h1 em,.models-heading h1 em { color:var(--accent); }
.hero-copy h1 { max-width:10ch; }
.hero-deck { max-width:34ch; }
.live-dot { background:var(--accent); box-shadow:none; }
.fit-panel { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(16rem,.78fr); border:0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.fit-workbench { grid-column:1; grid-row:1; padding:0 1rem 0 0; }
.fit-controls { display:grid; }
.fit-row { display:grid; grid-template-columns:minmax(8.5rem,12rem) minmax(0,1fr); gap:1rem; align-items:start; padding:1rem 0; border-bottom:1px solid var(--border); }
.fit-row>span { padding-top:.4rem; color:var(--muted); font-size:.86rem; }
.fit-choices { display:flex; flex-wrap:wrap; gap:.3rem; }
.fit-choices button { min-height:2.5rem; border:0; padding:.48rem .8rem; background:#f0f1f5; color:var(--fg); font:500 .87rem/1.2 var(--font-mono); cursor:pointer; }
.fit-choices button:hover { background:#e5e8f2; }
.fit-choices button[aria-pressed="true"] { background:var(--accent); color:#fff; }
.fit-choices small { display:block; margin-top:.15rem; color:inherit; font-size:.64rem; opacity:.8; }
.fit-source { position:absolute!important; width:1px!important; height:1px!important; clip:rect(0 0 0 0)!important; clip-path:inset(50%)!important; overflow:hidden!important; white-space:nowrap!important; }
.fit-output { grid-column:2; grid-row:1; display:block; padding:1.15rem 0 1.15rem 1.3rem; border-left:1px solid var(--border); }
.fit-meter { min-height:0; display:grid; align-content:start; justify-items:start; gap:.4rem; border:0; background:transparent; text-align:left; }
.fit-meter span { font-size:clamp(2.7rem,5vw,4rem); line-height:1; color:var(--fg); }
.fit-meter small { color:var(--muted); font-size:.72rem; }
.fit-meter::after { content:""; display:block; width:100%; height:.55rem; margin:.6rem 0 1.1rem; background:linear-gradient(to right,var(--accent) var(--fit),var(--border) var(--fit)); }
.fit-stats { grid-template-columns:1fr; gap:0; }
.fit-stats p { padding:.55rem 0; font-size:.76rem; }
.fit-stats .calc-fit,.fit-stats .calc-fit.bad { color:var(--accent); }
.fit-caveat { line-height:1.5; }
.fit-foot { grid-column:1/-1; padding:.85rem 0; border-top:1px solid var(--border); }
.workflow-section,.principle-section,.task-section,.fit-section,.delivery-section { display:grid; grid-template-columns:190px minmax(0,1fr); gap:clamp(1.5rem,4vw,4rem); padding:5rem 0; border-bottom:1px solid var(--border); }
.workflow-steps { list-style:none; margin:0; padding:0; border-top:1px solid var(--border); }
.workflow-steps li { display:grid; grid-template-columns:2rem minmax(0,1fr); gap:.8rem; padding:1rem 0; border-bottom:1px solid var(--border); }
.workflow-steps li>span { padding-top:.2rem; color:var(--accent); font: .75rem var(--font-mono); }
.workflow-steps b { font-size:.93rem; }
.workflow-steps p { max-width:68ch; margin:.25rem 0 0; color:var(--muted); font-size:.83rem; }
.home-next { display:grid; grid-template-columns:1fr auto; gap:.6rem 2rem; align-items:end; padding:4rem 0; }
.home-next .eyebrow { grid-column:1/-1; }
.home-next h2 { margin:0; font-size:clamp(2rem,4vw,3.5rem); letter-spacing:-.06em; line-height:1; }
.home-next .text-link { justify-self:end; }
.delivery-content>.btn { display:inline-block; margin-top:1.5rem; }
.delivery-steps li>span { color:var(--accent); }
@media(max-width:950px) {
  .fit-panel { grid-template-columns:minmax(0,1.25fr) minmax(14rem,.75fr); }
  .fit-row { grid-template-columns:1fr; gap:.45rem; }
  .workflow-section,.principle-section,.task-section,.fit-section,.delivery-section { grid-template-columns:120px 1fr; }
}
@media(max-width:700px) {
  .wordmark { font-size:1.8rem; }
  .fit-panel { grid-template-columns:1fr; }
  .fit-workbench,.fit-output,.fit-foot { grid-column:1; }
  .fit-workbench { grid-row:1; padding:0; }
  .fit-output { grid-row:2; padding:1.2rem 0; border-top:1px solid var(--border); border-left:0; }
  .fit-row { grid-template-columns:1fr; padding:.8rem 0; }
  .fit-choices { flex-wrap:nowrap; overflow-x:auto; padding-bottom:.25rem; }
  .fit-choices button { flex:none; }
  .workflow-section,.principle-section,.task-section,.fit-section,.delivery-section { grid-template-columns:1fr; gap:.6rem; padding:3rem 0; }
  .home-next { grid-template-columns:1fr; }
  .home-next .text-link { justify-self:start; }
}
@media(max-width:950px) {
  .fit-panel { grid-template-columns:minmax(0,1fr); }
  .fit-workbench,.fit-output,.fit-foot { grid-column:1; }
  .fit-workbench { grid-row:1; padding:0; }
  .fit-output { grid-row:2; padding:1.2rem 0; border-top:1px solid var(--border); border-left:0; }
  .fit-row { grid-template-columns:minmax(9rem,12rem) minmax(0,1fr); }
}
@media(max-width:700px) { .fit-row { grid-template-columns:1fr; } }
@media(max-width:1100px) {
  .fit-panel { grid-template-columns:minmax(0,1fr); }
  .fit-workbench,.fit-output,.fit-foot { grid-column:1; }
  .fit-workbench { grid-row:1; padding:0; }
  .fit-output { grid-row:2; padding:1.2rem 0; border-top:1px solid var(--border); border-left:0; }
}
@media(max-width:950px) {
  .section-heading { grid-template-columns:minmax(0,1fr); gap:.7rem; }
  .delivery-steps li { grid-template-columns:2rem minmax(0,1fr); gap:.6rem; }
  .delivery-steps small { grid-column:2; }
}

.lab-hero { min-height:0; grid-template-columns:minmax(0,1.1fr) minmax(21rem,25rem); align-items:start; gap:clamp(2rem,5vw,4.5rem); padding:clamp(4rem,9vw,8rem) 0 2rem; }
.hero-copy { max-width:72rem; }
.hero-copy h1 { max-width:18ch; font-size:clamp(3.7rem,9vw,8.4rem); }

/* deployment-fit calculator, top right of the hero */
.hero-calc { padding:1.1rem 1.15rem 1.2rem; border:1px solid var(--border); background:color-mix(in srgb,var(--bg) 88%,white); }
.hero-calc-head .eyebrow { margin-bottom:.35rem; }
.hero-calc-head h2 { margin:0; font-size:clamp(1.55rem,2.2vw,2.05rem); line-height:1.05; letter-spacing:-.045em; }
.hero-calc-head > p:last-child { margin:.45rem 0 1rem; color:var(--muted); font-size:.78rem; line-height:1.45; }
.hero-calc .fit-panel { display:block; border:0; padding:0; }
.hero-calc .fit-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem .7rem; }
.hero-calc .fit-controls label { display:grid; gap:.25rem; color:var(--muted); font:700 .58rem/1.3 var(--font-mono); letter-spacing:.06em; text-transform:uppercase; }
.hero-calc .fit-controls label:first-child { grid-column:1/-1; }
.hero-calc .fit-controls select { width:100%; min-height:2.25rem; padding:.4rem .45rem; border:1px solid var(--border); border-radius:0; background:var(--bg); color:var(--fg); font:inherit; font-size:.72rem; }
.hero-calc .fit-output { display:block; margin-top:1rem; padding:1rem 0 0; border-top:1px solid var(--border); }
.hero-calc .fit-meter { display:grid; align-content:start; justify-items:start; gap:.15rem; min-height:0; border:0; background:transparent; text-align:left; }
.hero-calc .fit-meter span { color:var(--fg); font-size:2.5rem; line-height:1; }
.hero-calc .fit-meter small { color:var(--muted); font-size:.64rem; }
.hero-calc .fit-meter::after { content:""; display:block; width:100%; height:.5rem; margin:.55rem 0 .85rem; background:linear-gradient(to right,var(--accent) var(--fit),var(--border) var(--fit)); }
.hero-calc .fit-meter.oom span { color:var(--bad); }
.hero-calc .fit-meter.oom::after { background:linear-gradient(to right,var(--bad) 100%,var(--bad) 100%); }
.hero-calc .fit-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 .8rem; }
.hero-calc .fit-stats p { padding:.42rem 0; font-size:.7rem; }
.hero-calc .fit-stats .calc-fit { grid-column:1/-1; font-size:.72rem; line-height:1.4; }
.hero-calc .fit-stats .calc-fit.ok { color:var(--ok); }
.hero-calc .fit-stats .calc-fit.tight { color:var(--warn); }
.hero-calc .fit-stats .calc-fit.bad { color:var(--bad); }

@media(max-width:950px) { .lab-hero { grid-template-columns:minmax(0,1fr); gap:1.8rem; } .hero-calc { max-width:34rem; } }
@media(max-width:700px) { .hero-calc .fit-controls { grid-template-columns:1fr; } .hero-calc .fit-controls label:first-child { grid-column:auto; } }

@media(max-width:700px) { .fit-choices { flex-wrap:wrap; overflow:visible; } }

/* Shared navigation, trust and editorial details */
.wordmark { gap:.38rem; align-items:baseline; font-size:1.75rem; font-weight:790; letter-spacing:-.075em; text-transform:none; }
.wordmark span { font-size:.62rem; font-weight:750; letter-spacing:.12em; }
.wordmark .mark { display:inline-grid; place-items:center; align-self:center; width:1.55rem; height:1.55rem; margin:0 .1rem 0 0; border:2px solid var(--fg); color:var(--accent); font-size:1.05rem; font-weight:400; line-height:1; letter-spacing:0; text-transform:none; }
.mail-link { display:inline-flex; align-items:center; color:var(--muted); }
.mail-link:hover { color:var(--accent); }
.header-cta { padding:.52rem .8rem; background:var(--accent); color:white!important; text-decoration:none; }
header .bar { gap:1rem; }
nav.small { align-items:center; }
footer { margin-top:3rem; border-top:1px solid var(--border); }
.footer-inner { width:min(100% - 2rem,var(--page-max)); margin:auto; padding:1.5rem 0; display:flex; flex-wrap:wrap; align-items:center; gap:1rem 2rem; color:var(--muted); font-size:.78rem; }
.footer-inner nav { display:flex; flex-wrap:wrap; gap:.55rem 1rem; flex:1; }
.footer-inner a { color:var(--fg); }
.footer-brand { font-weight:800; text-decoration:none; }
.trust-strip { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; align-items:center; margin:0 0 1rem; padding:1rem 1.25rem; border-block:1px solid var(--border); background:color-mix(in srgb,var(--accent) 5%,var(--bg)); }
.trust-strip strong { color:var(--accent); }
.home-faq { padding:3rem 0; max-width:75ch; }
.home-faq details { border-top:1px solid var(--border); padding:.8rem 0; }
.home-faq summary { cursor:pointer; font-weight:700; }
.home-faq details p { color:var(--muted); }
.task-form { display:grid; max-width:42rem; grid-template-columns:1fr 1fr; gap:1rem; }
.task-form label { display:grid; gap:.35rem; color:var(--muted); font-size:.84rem; }
.task-form input,.task-form select,.task-form textarea { width:100%; padding:.7rem; border:1px solid var(--border); background:var(--bg); color:var(--fg); font:inherit; }
.task-form button { justify-self:start; }
.contact-note,.about-team { max-width:68ch; color:var(--muted); }
.about-team { margin-top:2rem; padding-top:1rem; border-top:1px solid var(--border); }
.blog-index h1 { max-width:16ch; font-size:clamp(2.6rem,6vw,5.2rem); line-height:1; letter-spacing:-.06em; }
.post-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:2.5rem 0; }
.post-card { display:grid; align-content:start; gap:.55rem; padding:1.4rem; border:1px solid var(--border); color:var(--fg); text-decoration:none; }
.post-card:hover { border-color:var(--accent); }
.post-card h2 { margin:0; font-size:1.4rem; line-height:1.2; }
.post-card p,.post-heading>p { color:var(--muted); }
.post-card>span:last-child { color:var(--accent); font-weight:700; }
.post-page { max-width:78ch; }
.post-heading { margin:3rem 0 2rem; position:static; inset:auto; z-index:auto; background:none; border:0; -webkit-backdrop-filter:none; backdrop-filter:none; }
.post-heading h1 { font-size:clamp(2.5rem,6vw,4.5rem); line-height:1; letter-spacing:-.06em; }
.post-page .model-doc { display:block!important; }
.post-page .doc-sec { scroll-margin-top:5rem; }
.post-page pre { overflow:auto; }
.cite-note { margin:2rem 0; padding:1rem; border-left:3px solid var(--accent); background:var(--code-bg); }
.catalog-table thead th { position:sticky; top:0; z-index:2; background:var(--bg); }
.model-filter { position:sticky; top:4.15rem; z-index:4; background:var(--bg); border-bottom:1px solid var(--border); }
.catalog-table td .fit-indicator { display:inline-flex; padding:.12rem .35rem; border:1px solid currentColor; font-size:.68rem; font-weight:700; white-space:nowrap; }
.fit-indicator.yes { color:#176b42; }.fit-indicator.no { color:#9b312b; }
.catalog-table td .license-note { display:block; max-width:14ch; white-space:normal; color:var(--muted); font-size:.67rem; }
@media(max-width:700px){.post-grid,.task-form{grid-template-columns:1fr}.footer-inner{align-items:flex-start;flex-direction:column}.header-cta{padding:.4rem .55rem}.model-filter{position:static}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.selection-method { max-width:75ch; padding:.85rem 1rem; border-left:2px solid var(--accent); background:var(--code-bg); font-size:.82rem!important; }
@media(max-width:700px){
 .table-scroll { overflow:visible; }
 .catalog-table,.catalog-table tbody,.catalog-table tr,.catalog-table td { display:block; width:100%; min-width:0; }
 .catalog-table { border-collapse:separate; }
 .catalog-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
 .catalog-table tbody.model-group { display:grid; gap:.75rem; margin:1rem 0; }
 .catalog-table tbody tr[data-category] { padding:.65rem .8rem; border:1px solid var(--border); background:color-mix(in srgb,var(--bg) 92%,var(--accent)); }
 .catalog-table td { display:grid; grid-template-columns:8rem minmax(0,1fr); gap:.6rem; padding:.4rem 0; border:0; font-size:.78rem; }
 .catalog-table td::before { color:var(--muted); font:700 .62rem var(--font-mono); text-transform:uppercase; }
 .catalog-table td:nth-child(1)::before { content:"Candidate"; }.catalog-table td:nth-child(2)::before { content:"Task area"; }.catalog-table td:nth-child(3)::before { content:"Parameters"; }.catalog-table td:nth-child(4)::before { content:"Weight estimate"; }.catalog-table td:nth-child(5)::before { content:"Typical task"; }.catalog-table td:nth-child(6)::before { content:"License"; }.catalog-table td:nth-child(7)::before { content:"Device fit"; }
 .catalog-table .category-divider { display:block; padding:0; border:0; background:transparent; }
 .catalog-table .category-divider th { display:block; padding:.6rem 0; }
}
.post-toc { margin:1.5rem 0 2rem; padding:1rem 1.25rem; border:1px solid var(--border); background:var(--code-bg); }
.post-toc ol { columns:2; margin:.5rem 0 0; padding-left:1.2rem; }
@media (max-width:700px) { .post-toc ol { columns:1; } }
.post-toc a { color:var(--fg); }
.glossary-details>summary { cursor:pointer; color:var(--accent); font-weight:750; }
.glossary-details[open]>summary { margin-bottom:1rem; }
.download-data { display:inline-block; padding:.5rem .75rem; border:1px solid var(--border); color:var(--accent); font-weight:700; text-decoration:none; }

/* ---- task cards: one example in, one example out ---- */
.task-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.task-list a.task-card {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) auto;
  grid-template-rows: auto auto auto auto;
  gap: .15rem .7rem;
  align-content: start;
  min-width: 0;
  padding: 1rem 1.05rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--bg) 72%, white);
}
.task-card:hover { border-color: var(--accent); }
.task-card .task-no { grid-row: 1 / span 2; padding-top: .1rem; }
.task-card strong { font-size: .93rem; line-height: 1.35; }
.task-card small { font-size: .74rem; }
.task-card .task-arrow { grid-column: 3; grid-row: 1; align-self: start; }
.task-example {
  grid-column: 2 / -1;
  display: grid;
  grid-template-columns: 2.1rem minmax(0, 1fr);
  gap: .4rem;
  margin-top: .35rem;
  padding-top: .35rem;
  border-top: 1px dashed var(--border);
  color: var(--muted);
  font: .7rem/1.45 var(--font-mono);
}
.task-example:first-of-type { margin-top: .5rem; }
.task-example b { color: var(--accent); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }

/* ---- workflow: numbered nodes with explicit stop gates ---- */
.workflow-steps { position: relative; }
.workflow-steps li { position: relative; grid-template-columns: 2.4rem minmax(0, 1fr); gap: 1rem; padding: 1rem 0 1rem 0; }
.workflow-steps li::before {
  content: "";
  position: absolute;
  left: .78rem;
  top: 2.1rem;
  bottom: -.2rem;
  width: 1px;
  background: var(--border);
}
.workflow-steps li:last-child::before { display: none; }
.workflow-steps li > span {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  padding: 0;
  border: 1px solid var(--accent);
  background: var(--bg);
  color: var(--accent);
  font: 600 .65rem/1 var(--font-mono);
}
.workflow-steps .step-gate > span { background: var(--accent); color: var(--accent-contrast); }
.workflow-steps .gate-stop {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-top: .55rem;
  padding: .28rem .5rem;
  border: 1px solid var(--accent);
  color: var(--accent);
  font: 700 .66rem/1.2 var(--font-mono);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.workflow-steps .gate-stop::before { content: "■"; font-size: .55rem; }

/* ---- model table: licence, fit and a readable scroll area ---- */
.model-tables .table-scroll { max-height: min(76vh, 940px); overflow: auto; }
.model-tables .catalog-table thead th { top: 0; }
.catalog-table th[role="button"] { cursor: pointer; user-select: none; }
.catalog-table th[role="button"]:hover { color: var(--accent); }
.catalog-table th[aria-sort="ascending"]::after { content: " ↑"; color: var(--accent); }
.catalog-table th[aria-sort="descending"]::after { content: " ↓"; color: var(--accent); }
.license-cell { display: grid; gap: .1rem; min-width: 9rem; }
.license-cell b { color: var(--fg); font-size: .68rem; font-weight: 650; line-height: 1.3; }
.license-cell small { margin: 0; color: var(--muted); font-size: .64rem; }
.fit-indicator.yes { color: var(--ok); }
.fit-indicator.no { color: var(--bad); }
.fit-indicator.unknown { color: var(--warn); }

/* ---- about and work-with-us ---- */
.about-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 2rem 0; }
.about-facts div { padding: 1rem; border-top: 2px solid var(--fg); }
.about-facts span { color: var(--accent); font: 700 .66rem/1.4 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
.about-facts b { display: block; margin-top: .35rem; font-size: .95rem; }
.about-facts p { margin: .25rem 0 0; color: var(--muted); font-size: .82rem; }
.sample-deliverable { margin: 2rem 0; border: 1px solid var(--border); border-radius: var(--radius-md); background: color-mix(in srgb, var(--bg) 76%, white); }
.sample-deliverable summary { cursor: pointer; padding: 1rem 1.15rem; font-weight: 700; }
.sample-deliverable > div { padding: 0 1.15rem 1.15rem; }
.sample-deliverable table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.sample-deliverable th, .sample-deliverable td { padding: .5rem .55rem; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.sample-deliverable th { color: var(--muted); font: 700 .64rem/1.3 var(--font-mono); text-transform: uppercase; letter-spacing: .06em; }
.sample-deliverable .pass { color: var(--ok); font-weight: 700; }
.sample-deliverable .fail { color: var(--bad); font-weight: 700; }
.engagement { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 2rem 0; }
.engagement div { padding: 1rem 1.1rem; border: 1px solid var(--border); border-radius: var(--radius-md); }
.engagement b { display: block; color: var(--accent); font: 700 .66rem/1.4 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.engagement p { margin: .35rem 0 0; color: var(--muted); font-size: .84rem; }
.timeline-note { margin: 1rem 0 0; color: var(--muted); font-size: .76rem; }
.about-cta { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin-top: 1.4rem; }

@media (max-width: 700px) {
  .task-list, .about-facts, .engagement { grid-template-columns: 1fr; }
  .model-tables .table-scroll { max-height: none; overflow: visible; }
  .workflow-steps li { grid-template-columns: 2rem minmax(0, 1fr); }
  .workflow-steps li::before { left: .6rem; }
}

/* ---- work page: engagement signals and licence caveats ---- */
.engagement-section { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); padding: 4rem 0; border-bottom: 1px solid var(--border); }
.engagement-section .section-index { padding-top: .4rem; }
.license-verify { color: var(--warn); }
.cite-note pre { margin: .6rem 0; padding: .75rem; overflow: auto; border: 1px solid var(--border); background: var(--bg); font-size: .74rem; }
.cite-note strong { display: block; margin-top: .6rem; }
.cite-note strong:first-child { margin-top: 0; }
@media (max-width: 700px) {
  .engagement-section { grid-template-columns: 1fr; gap: .6rem; padding: 3rem 0; }
}

/* ---- hero proof: one measured number near the top ---- */
.hero-copy h1 { max-width: none; font-size: clamp(3.7rem, 9vw, 7.4rem); }
.hero-proof {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--space-4);
  align-items: center;
  margin-top: 1rem;
  padding: var(--space-3) 0;
  border-block: 1px solid var(--border);
}
.proof-figure { display: grid; gap: .15rem; min-width: 8.5rem; }
.proof-figure span { color: var(--accent); font: 700 2.5rem/1 var(--font-mono); letter-spacing: -.06em; }
.proof-figure small { color: var(--muted); font: .68rem/1.4 var(--font-mono); text-transform: uppercase; letter-spacing: .06em; }
.proof-copy b { font-size: .95rem; }
.proof-copy p { max-width: 56ch; margin: .25rem 0 0; color: var(--muted); font-size: .84rem; }
.hero-proof .text-link { white-space: nowrap; }
@media (max-width: 700px) {
  .hero-proof { grid-template-columns: 1fr; gap: .8rem; }
  .hero-proof .text-link { justify-self: start; }
}

/* Keep all seven columns visible without horizontal scrolling on a laptop. */
@media (min-width: 701px) {
  .model-tables .catalog-table { table-layout: fixed; min-width: 100%; width: 100%; }
  .model-tables .catalog-table td:first-child { min-width: 0; }
  .model-tables .catalog-table th:nth-child(1), .model-tables .catalog-table td:nth-child(1) { width: 32%; }
  .model-tables .catalog-table th:nth-child(2), .model-tables .catalog-table td:nth-child(2) { width: 12%; }
  .model-tables .catalog-table th:nth-child(3), .model-tables .catalog-table td:nth-child(3) { width: 8%; }
  .model-tables .catalog-table th:nth-child(4), .model-tables .catalog-table td:nth-child(4) { width: 12%; }
  .model-tables .catalog-table th:nth-child(5), .model-tables .catalog-table td:nth-child(5) { width: 22%; }
  .model-tables .catalog-table th:nth-child(6), .model-tables .catalog-table td:nth-child(6) { width: 14%; }
  .model-tables .catalog-table td { overflow-wrap: anywhere; }
  .model-tables .catalog-table td:nth-child(2) { color: var(--muted); }
}

/* Modalities are closed by default; open one to see its curated models. */
.model-tables { border-top: 1px solid var(--border); }
.model-modality { border-bottom: 1px solid var(--border); }
.model-modality summary { display: flex; align-items: baseline; gap: 1rem; padding: 1.15rem 0; cursor: pointer; list-style: none; font-size: clamp(1.15rem, 1.9vw, 1.5rem); font-weight: 760; letter-spacing: -.035em; }
.model-modality summary::-webkit-details-marker { display: none; }
.model-modality summary::after { content: "+"; margin-left: .2rem; color: var(--accent); font: 700 1.35rem/1 var(--font-mono); }
.model-modality[open] summary::after { content: "−"; }
.modality-count { margin-left: auto; color: var(--muted); font: 700 .62rem/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.model-modality .table-scroll { max-height: none; overflow: visible; margin: 0 0 1.5rem; }
.model-modality[open] summary { border-bottom: 1px solid var(--border); margin-bottom: .35rem; }

/* Mobile: let long action rows wrap instead of widening the page. */
@media (max-width: 700px) {
  .hero-copy { min-width: 0; }
  .hero-actions { flex-wrap: wrap; gap: .8rem 1.2rem; }
  .hero-actions .btn { width: auto; }
  .hero-copy h1 { font-size: clamp(2.9rem, 12.5vw, 4.4rem); max-width: 100%; overflow-wrap: normal; }
  .hero-deck, .hero-claim { max-width: 100%; }
  .hero-proof .text-link { white-space: normal; }
  .section-heading h2, .principle-copy h2, .about-contact h2 { overflow-wrap: anywhere; }

  /* Model cards: override desktop cell widths and the old 220px minimum. */
  .model-tables .table-scroll table { min-width: 0; }
  .model-tables .catalog-table td,
  .model-tables .catalog-table td:first-child { width: auto; min-width: 0; overflow-wrap: anywhere; }
  .model-tables .catalog-table td { grid-template-columns: 6.8rem minmax(0, 1fr); }
  .model-tables .catalog-table td a { overflow-wrap: anywhere; }
  .model-tables .catalog-table td .fit-indicator { white-space: normal; }
}
