/* ZB Stack · 0924 preview · tokens, base, nav, footer.
   The site's light system (globals.css v0895) as plain CSS; home.css follows
   verbatim (fonts remapped to the Google Fonts names); extras.css adds the
   inner-page blocks. */
:root {
  --color-bg: #ffffff;
  --color-bg-alt: #f7f7f5;
  --color-surface: #ffffff;
  --color-surface-soft: #fafaf8;
  --color-heading: #141414;
  --color-text: #2b2b28;
  --color-muted: #6e6e68;
  --color-faint: #a1a19b;
  --color-line: #e8e8e3;
  --color-line-strong: #d6d6d0;
  --color-amber: #b45309;
  --color-amber-bright: #f59e0b;
  --color-amber-wash: #fbf4e8;
  --color-solid: #111111;
  --font-source-serif: "Source Serif 4";
  --font-instrument-sans: "Instrument Sans";
  --font-jetbrains-mono: "JetBrains Mono";
}
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--color-bg); color: var(--color-text); font-family: "Instrument Sans", "Helvetica Neue", Arial, sans-serif; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ── Nav (SiteNav v0897/0920) ─────────────────────────────────────────── */
.zbn { position: sticky; top: 0; z-index: 50; background: var(--color-bg); border-bottom: 1px solid transparent; transition: border-color 0.2s; }
.zbn.is-scrolled, .zbn.is-open { border-color: var(--color-line); }
.zbn__skip { position: absolute; left: -9999px; top: 12px; z-index: 60; padding: 8px 12px; border-radius: 6px; background: var(--color-solid); color: #fff; font-size: 13px; }
.zbn__skip:focus { left: 16px; }
.zbn__in { display: flex; align-items: center; gap: 32px; height: 72px; width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 max(20px, 6vw); box-sizing: border-box; }
.zbn__logo { display: flex; align-items: center; height: 32px; flex: none; }
.zbn__logo img { height: 32px; width: auto; display: block; }
.zbn__links { display: flex; align-items: center; gap: 30px; margin-left: auto; }
.zbn__links a { font-size: 14px; font-weight: 500; color: var(--color-text); text-decoration: none; white-space: nowrap; transition: color 0.15s; }
.zbn__links a:hover, .zbn__links a[aria-current="page"] { color: var(--color-heading); }
.zbn__cta { margin-left: 8px; }
.zbn__cta .zbm-btn { height: 38px; padding: 0 16px; font-size: 13px; }
.zbn__menu { display: none; margin-left: auto; padding: 8px 0; border: 0; background: none; font: inherit; font-size: 14px; font-weight: 500; color: var(--color-heading); cursor: pointer; }
.zbn__panel { display: none; position: absolute; left: 0; right: 0; top: 100%; padding: 12px max(20px, 6vw) 28px; background: var(--color-bg); border-bottom: 1px solid var(--color-line); }
.zbn__panel a { display: block; padding: 12px 0; font-size: 17px; font-weight: 500; color: var(--color-heading); text-decoration: none; border-bottom: 1px solid var(--color-line); }
.zbn__panel .zbm-btn { margin-top: 20px; width: 100%; }
.zbn.is-open .zbn__panel { display: block; }
@media (max-width: 899px) {
  .zbn__links, .zbn__cta { display: none; }
  .zbn__menu { display: inline-flex; }
}

/* ── Footer (SiteFooter v0909) ────────────────────────────────────────── */
.zbf { border-top: 1px solid var(--color-line); background: var(--color-bg); padding: 44px 0 52px; }
.zbf__in { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: start; width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 max(20px, 6vw); box-sizing: border-box; }
.zbf__logo img { height: 24px; width: auto; display: block; }
.zbf__copy { margin: 16px 0 0; font-family: "JetBrains Mono", monospace; font-size: 11px; line-height: 1.8; letter-spacing: 0.08em; color: var(--color-faint); }
.zbf__copy a { color: inherit; text-decoration: none; }
.zbf__copy a:hover { color: var(--color-heading); }
.zbf__nav { display: flex; flex-wrap: wrap; gap: 40px 56px; }
.zbf__group { display: grid; align-content: start; gap: 10px; }
.zbf__group p, .zbf__group a { margin: 0; font-family: "JetBrains Mono", monospace; font-size: 11px; line-height: 1.5; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; }
.zbf__group p { color: var(--color-faint); }
.zbf__group a { color: var(--color-muted); transition: color 0.15s; }
.zbf__group a:hover { color: var(--color-heading); }
@media (max-width: 760px) { .zbf__in { grid-template-columns: 1fr; } .zbf__nav { gap: 40px; } }
.zbn__panel a.zbm-btn { display: inline-flex; padding: 0 22px; border-bottom: 0; color: #fff; font-size: 15px; }
.zbn__panel a.zbm-btn { box-sizing: border-box; width: 100%; justify-content: center; }

/* ═══════════════════════════════════════════════════════════════════════════
 * home.css — v0911, the HOME PAGE on CG's visual idiom (BRIEF-0911.md).
 * Imported by HomePage.tsx only.
 *
 * Every class is `zbm-` prefixed and lives under the `.zbm` root, so nothing
 * here can reach the nav, the footer, the kit, another route or the
 * generated demo. Light only, on the site tokens (var(--color-*)); the few
 * colours with no token (role tints, the candle, the dark close) are
 * declared once on `.zbm`. Unlayered on purpose: it beats Tailwind's utility
 * layer and the base layer.
 *
 * GRID. `.zbm-wrap` is the nav's own box — max 1180px including
 * max(20px, 6vw) side padding — so every section shares the logo's left edge
 * and the nav button's right edge, at every width.
 *
 * TYPE. Headings: Source Serif 4 with optical sizing on (the display cut at
 * 56–88px). Body: Instrument Sans. Labels: JetBrains Mono, 11px, tracked,
 * uppercase; section kickers carry a short amber rule.
 *
 * MOTION CONTRACT (HomeMotion.tsx): `.zbm-rv` fades up 12px over 500ms;
 * `.zbm-graph` grows its `.zbm-bar > i` from 0 to `--w`. The hidden start
 * state is armed ONLY by `.js` on <html> (layout.tsx), so the server HTML, a
 * no-JS read and `?static` captures show everything at its final state.
 * HomeMotion adds `.is-in`; `--zbm-d` carries the stagger delay.
 * ═══════════════════════════════════════════════════════════════════════════ */

.zbm {
  --zbm-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --zbm-sans: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
  --zbm-mono: "JetBrains Mono", "SFMono-Regular", Menlo, monospace;

  /* no site token for these */
  --zbm-ink: #141414; /* the dark close */
  --zbm-ink-line: #2c2c29;
  --zbm-ink-text: #c4c4bd; /* 10.4:1 on the ink */
  --zbm-ink-muted: #a1a19b; /* 7.0:1 on the ink */
  --zbm-paper: #f5f5f0;
  --zbm-track: #ecece7; /* bar tracks */
  --zbm-bar-grey: #a1a19b; /* the non-amber bars */
  --zbm-shadow: 0 1px 2px rgba(20, 20, 20, 0.04), 0 12px 32px -12px rgba(20, 20, 20, 0.12);
  --zbm-shadow-lg: 0 1px 2px rgba(20, 20, 20, 0.04), 0 2px 6px rgba(20, 20, 20, 0.03), 0 32px 64px -24px rgba(20, 20, 20, 0.18);

  /* role tints (the beta's) */
  --zbm-t-amber: #b45309; --zbm-t-amber-wash: #fbf4e8;
  --zbm-t-blue: #4a6b96;  --zbm-t-blue-wash: #edf2f8;
  --zbm-t-teal: #3c7d86;  --zbm-t-teal-wash: #e8f2f3;
  --zbm-t-rose: #9a5a6c;  --zbm-t-rose-wash: #f7edf0;
  --zbm-t-olive: #6f7042; --zbm-t-olive-wash: #f1f1e6;
  --zbm-t-taupe: #83685a; --zbm-t-taupe-wash: #f4eeea;
  --zbm-t-slate: #5c6775; --zbm-t-slate-wash: #eef0f2;
  --zbm-t-plum: #7a5f78;  --zbm-t-plum-wash: #f3eef2;

  --zbm-pad: max(20px, 6vw);
  --zbm-band: 136px;
  --zbm-gap: 80px; /* split column gap */
  --zbm-r: 12px;
  --zbm-ease: cubic-bezier(0.2, 0.7, 0.2, 1);

  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--zbm-sans);
  font-size: 17px;
  line-height: 1.6;
  font-feature-settings: "kern";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ── Base (zero specificity: any single zbm- class below beats these) ──── */
:where(.zbm) :where(*, *::before, *::after) { box-sizing: border-box; }
:where(.zbm) :where(img, svg) { display: block; max-width: 100%; }
:where(.zbm) :where(a) { color: inherit; text-decoration: none; }
:where(.zbm) :where(p, figure, dl, dd) { margin: 0; }
:where(.zbm) :where(h1, h2, h3) { margin: 0; font-weight: inherit; font-size: inherit; }
:where(.zbm) :where(ul) { margin: 0; padding: 0; list-style: none; }
:where(.zbm) :where(summary) { list-style: none; }
:where(.zbm) :where(summary)::-webkit-details-marker { display: none; }

.zbm-wrap { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 var(--zbm-pad); }
.zbm-band { padding: var(--zbm-band) 0; }
.zbm-band--alt { background: var(--color-bg-alt); }
.zbm [id] { scroll-margin-top: 72px; }

/* ── Type ──────────────────────────────────────────────────────────────── */
.zbm-h1,
.zbm-h2 {
  font-family: var(--zbm-serif);
  font-optical-sizing: auto;
  font-weight: 440;
  color: var(--color-heading);
  font-feature-settings: "kern", "liga";
}
.zbm-h1 { font-size: clamp(44px, 1.6rem + 4.4vw, 88px); line-height: 1.02; letter-spacing: -0.03em; }
.zbm-h2 { font-size: clamp(34px, 1.5rem + 2.3vw, 56px); line-height: 1.06; letter-spacing: -0.025em; text-wrap: balance; }
.zbm-h2--xl { font-size: clamp(40px, 1.6rem + 3vw, 68px); line-height: 1.02; }
.zbm-am { color: var(--color-amber); }

.zbm-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 24px;
  font-family: var(--zbm-mono);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.zbm-kicker::before { content: ""; flex: none; width: 22px; height: 1.5px; background: var(--color-amber-bright); }

/* a plain mono label (no rule) */
.zbm-label {
  display: block;
  font-family: var(--zbm-mono);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-muted);
}

.zbm-lede { margin-top: 28px; max-width: 620px; font-size: 18.5px; line-height: 1.6; color: var(--color-text); }
.zbm-body { margin-top: 18px; max-width: 620px; font-size: 16px; line-height: 1.65; color: var(--color-muted); }
.zbm-head { max-width: 760px; }
.zbm-after { margin-top: 32px; max-width: 620px; font-size: 16px; line-height: 1.65; color: var(--color-muted); }

/* two-column head: kicker + H2 left, lede right (CG's example head) */
.zbm-xhead { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--zbm-gap); align-items: end; }
.zbm-xhead .zbm-h2 { max-width: 480px; }
.zbm-xhead .zbm-lede { margin-top: 0; font-size: 17px; color: var(--color-muted); }

/* split: copy one side, one visual the other */
.zbm-split { display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr); gap: var(--zbm-gap); align-items: center; }
.zbm-split__copy .zbm-lede { font-size: 17.5px; }
.zbm-visual { min-width: 0; }
.zbm-cap {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 14px;
  font-family: var(--zbm-mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-muted);
}

/* buttons */
.zbm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  padding: 0 22px;
  border-radius: 8px;
  border: 1px solid transparent;
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  transition: background-color 0.18s, border-color 0.18s, color 0.18s, transform 0.18s var(--zbm-ease);
}
.zbm-btn--primary { background: var(--color-solid); border-color: var(--color-solid); color: #ffffff; }
.zbm-btn--primary:hover { background: #2a2a28; transform: translateY(-1px); }
.zbm-btn--ghost { background: var(--color-bg); border-color: var(--color-line-strong); color: var(--color-heading); }
.zbm-btn--ghost:hover { border-color: #b9b9b2; background: var(--color-bg-alt); }
.zbm-btn--light { background: var(--zbm-paper); border-color: var(--zbm-paper); color: var(--zbm-ink); }
.zbm-btn--light:hover { background: #ffffff; transform: translateY(-1px); }

/* text link with arrow */
.zbm-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 32px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--color-line-strong);
  font-size: 15px;
  font-weight: 500;
  color: var(--color-heading);
  transition: color 0.18s, border-color 0.18s;
}
.zbm-link:hover { color: var(--color-amber); border-color: var(--color-amber); }
.zbm-arrow { width: 15px; height: 15px; flex: none; transition: transform 0.2s var(--zbm-ease); }
.zbm-link:hover .zbm-arrow { transform: translateX(3px); }

/* focus: the site's amber ring, on every link and control here */
.zbm a:focus-visible,
.zbm summary:focus-visible { outline: 2px solid var(--color-amber); outline-offset: 4px; border-radius: 4px; }

/* model chip */
.zbm-chip {
  display: inline-flex;
  align-items: center;
  font-family: var(--zbm-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--color-heading);
  border: 1px solid var(--color-line);
  background: var(--color-bg-alt);
  padding: 4px 9px;
  border-radius: 999px;
  white-space: nowrap;
}
.zbm-price { font-family: var(--zbm-mono); font-size: 13px; font-variant-numeric: tabular-nums; color: var(--color-heading); }

/* reveal — armed only by `.js` on <html> */
.js .zbm-rv {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.5s ease, transform 0.5s var(--zbm-ease);
  transition-delay: var(--zbm-d, 0ms);
}
.js .zbm-rv.is-in { opacity: 1; transform: none; }

/* bars: full width by default (server HTML, no JS, ?static); `.js` arms the
   0 start and `.zbm-graph.is-in` grows them to --w */
.zbm-bar { display: block; height: 4px; background: var(--zbm-track); border-radius: 2px; overflow: hidden; }
.zbm-bar > i {
  display: block;
  height: 100%;
  width: var(--w);
  border-radius: 2px;
  background: var(--zbm-bar-grey);
  transition: width 0.9s var(--zbm-ease);
  transition-delay: var(--zbm-d, 0ms);
}
.zbm-bar > i.zbm-am { background: var(--color-amber); }
.js .zbm-bar > i { width: 0; }
.js .zbm-graph.is-in .zbm-bar > i { width: var(--w); }

/* ── 1 · Hero ──────────────────────────────────────────────────────────── */
.zbm-hero { padding: 120px 0 112px; background: var(--color-bg); }
.zbm-hero__in { display: flex; flex-direction: column; align-items: center; text-align: center; }
.zbm-nw { white-space: nowrap; }
@media (min-width: 720px) { .zbm-hero .zbm-h1 .zbm-am { white-space: nowrap; } }
.zbm-hero__sub { margin-top: 28px; max-width: 600px; font-size: clamp(17px, 1rem + 0.35vw, 20px); line-height: 1.55; color: var(--color-muted); text-wrap: balance; }
.zbm-hero__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 40px; }

/* the three-part rail */
.zbm-rail {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  margin-top: 88px;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  text-align: left;
}
.zbm-rail li + li { border-left: 1px solid var(--color-line); }
.zbm-rail__item { display: flex; flex-direction: column; height: 100%; padding: 26px 28px 28px; transition: background-color 0.2s; }
.zbm-rail li:first-child .zbm-rail__item { padding-left: 0; }
.zbm-rail li:last-child .zbm-rail__item { padding-right: 0; }
.zbm-rail__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.zbm-rail__job { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-amber); }
.zbm-rail__no { display: inline-flex; align-items: center; gap: 5px; font-family: var(--zbm-mono); font-size: 11px; color: var(--color-muted); }
.zbm-rail__no svg { width: 11px; height: 11px; transition: transform 0.2s var(--zbm-ease); }
.zbm-rail__name { margin-top: 18px; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 26px; line-height: 1.1; letter-spacing: -0.015em; color: var(--color-heading); }
.zbm-rail__clause { margin-top: 8px; font-size: 15px; line-height: 1.5; color: var(--color-muted); }
.zbm-rail__item:hover .zbm-rail__no { color: var(--color-heading); }
.zbm-rail__item:hover .zbm-rail__no svg { transform: translate(2px, 2px); }
.zbm-rail__item:hover .zbm-rail__name { color: var(--color-amber); }

/* the prompt screen, cropped out of its painted ground into a clean frame.
   The desktop source (2880×1840) holds the window at x 146–2733, y 379–;
   the phone source (1200×538) holds its card at x 32–1167, y 32–505. The
   frame shows a crop just inside those edges: --cx/--cy is the crop's
   origin, --cw/--ch its size, --iw the source width (all source px). */
.zbm-shot {
  --cx: 150; --cy: 384; --cw: 2580; --ch: 1440; --iw: 2880;
  position: relative;
  width: 100%;
  margin-top: 72px;
  aspect-ratio: 2580 / 1440;
  overflow: hidden;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: var(--zbm-shadow-lg);
}
.zbm-shot::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(20, 20, 20, 0.1); border-radius: inherit; pointer-events: none; }
.zbm-shot img {
  position: absolute;
  max-width: none;
  width: calc(100% * var(--iw) / var(--cw));
  height: auto;
  left: calc(-100% * var(--cx) / var(--cw));
  top: calc(-100% * var(--cy) / var(--ch));
}

.zbm-works { display: flex; flex-direction: column; align-items: center; gap: 18px; margin-top: 64px; }
.zbm-works__label { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
.zbm-works__row { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 36px; font-size: 17px; font-weight: 500; letter-spacing: -0.01em; color: var(--color-muted); }

/* ── 2 · AI teams ──────────────────────────────────────────────────────── */
.zbm-split--teams { grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr); gap: 72px; }

/* the workspace mock */
.zbm-win {
  background: #ffffff;
  border: 1px solid var(--color-line);
  border-radius: var(--zbm-r);
  box-shadow: var(--zbm-shadow-lg);
  overflow: hidden;
  font-size: 13px;
  line-height: 1.45;
  text-align: left;
}
.zbm-win__bar { display: flex; align-items: center; gap: 14px; height: 44px; padding: 0 16px; border-bottom: 1px solid var(--color-line); }
.zbm-win__dots { display: flex; gap: 6px; }
.zbm-win__dots i { width: 9px; height: 9px; border-radius: 50%; background: #e4e4df; }
.zbm-win__title { font-size: 13px; font-weight: 600; color: var(--color-heading); }
.zbm-win__main { display: grid; grid-template-columns: 136px minmax(0, 1fr); }
.zbm-win__side { padding: 18px 10px; background: #fafaf8; border-right: 1px solid var(--color-line); }
.zbm-win__label { display: block; margin: 0 8px 12px; font-family: var(--zbm-mono); font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted); }
.zbm-win__side li { display: flex; align-items: center; gap: 9px; padding: 6px 8px; margin-bottom: 2px; border-radius: 6px; font-size: 13px; color: var(--color-text); }
.zbm-win__side li i { width: 7px; height: 7px; border-radius: 50%; background: var(--zbm-tint, #bdbdb7); flex: none; }
.zbm-win__side li.is-on { background: #ffffff; box-shadow: 0 0 0 1px var(--color-line), 0 1px 2px rgba(20, 20, 20, 0.04); color: var(--color-heading); font-weight: 600; }
.zbm-win__feed { display: flex; flex-direction: column; padding: 18px 20px 16px; min-width: 0; }
.zbm-win__chan { display: block; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--color-line); font-size: 13px; font-weight: 600; color: var(--color-heading); }
.zbm-msg { display: flex; gap: 11px; margin-bottom: 16px; }
.zbm-msg__av { width: 28px; height: 28px; flex: none; display: grid; place-items: center; border-radius: 7px; font-size: 12px; font-weight: 600; background: var(--zbm-wash, var(--color-bg-alt)); color: var(--zbm-tint, var(--color-heading)); }
.zbm-msg__av--you { background: var(--zbm-t-amber-wash); color: var(--zbm-t-amber); }
.zbm-msg b { display: block; font-size: 12.5px; font-weight: 600; color: var(--color-heading); }
.zbm-msg p { margin-top: 2px; font-size: 13.5px; line-height: 1.45; color: var(--color-text); }
.zbm-tasks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 2px 0 0 39px; }
.zbm-task { display: flex; flex-direction: column; padding: 13px 13px 12px; border: 1px solid var(--color-line); border-radius: 8px; background: #ffffff; box-shadow: 0 1px 2px rgba(20, 20, 20, 0.03); }
.zbm-task__type { font-family: var(--zbm-mono); font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted); }
.zbm-task b { margin-top: 8px; font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--color-heading); }
.zbm-task__st { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-size: 11.5px; color: var(--color-muted); }
.zbm-task__st::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--color-amber-bright); }
.zbm-win__compose { display: flex; align-items: center; justify-content: space-between; margin-top: 18px; height: 38px; padding: 0 8px 0 12px; border: 1px solid var(--color-line); border-radius: 8px; font-size: 12.5px; color: var(--color-muted); }
.zbm-win__compose i { width: 22px; height: 22px; border-radius: 6px; background: var(--color-solid); position: relative; }
.zbm-win__compose i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; border-top: 1.5px solid #fff; border-left: 1.5px solid #fff; transform: translate(-50%, -25%) rotate(45deg); }

/* role tints (sidebar dots, the Marketing avatar, the role strip) */
.zbm [data-r="lead"] { --zbm-tint: var(--zbm-t-amber); --zbm-wash: var(--zbm-t-amber-wash); }
.zbm [data-r="product"] { --zbm-tint: var(--zbm-t-slate); --zbm-wash: var(--zbm-t-slate-wash); }
.zbm [data-r="design"] { --zbm-tint: var(--zbm-t-plum); --zbm-wash: var(--zbm-t-plum-wash); }
.zbm [data-r="coding"] { --zbm-tint: var(--zbm-t-blue); --zbm-wash: var(--zbm-t-blue-wash); }
.zbm [data-r="marketing"] { --zbm-tint: var(--zbm-t-rose); --zbm-wash: var(--zbm-t-rose-wash); }
.zbm [data-r="sales"] { --zbm-tint: var(--zbm-t-olive); --zbm-wash: var(--zbm-t-olive-wash); }
.zbm [data-r="operations"] { --zbm-tint: var(--zbm-t-teal); --zbm-wash: var(--zbm-t-teal-wash); }
.zbm [data-r="service"] { --zbm-tint: var(--zbm-t-taupe); --zbm-wash: var(--zbm-t-taupe-wash); }

/* the example systems: four columns in one hairline panel */
.zbm-systems { margin-top: 112px; }
.zbm-systems__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 18px;
  background: #ffffff;
  border: 1px solid var(--color-line);
  border-radius: var(--zbm-r);
}
.zbm-grp { padding: 22px 24px 24px; }
.zbm-grp + .zbm-grp { border-left: 1px solid var(--color-line); }
.zbm-grp__label { display: flex; align-items: center; gap: 9px; padding-bottom: 14px; margin-bottom: 12px; border-bottom: 1px solid var(--color-line); font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-heading); }
.zbm-grp__label::before { content: ""; width: 7px; height: 7px; border-radius: 2px; background: var(--zbm-g); flex: none; }
.zbm-grp[data-g="front"] { --zbm-g: var(--zbm-t-blue); }
.zbm-grp[data-g="growth"] { --zbm-g: var(--zbm-t-rose); }
.zbm-grp[data-g="ops"] { --zbm-g: var(--zbm-t-teal); }
.zbm-grp[data-g="run"] { --zbm-g: var(--zbm-t-slate); }
.zbm-grp__list li { padding: 5px 0; font-size: 15px; line-height: 1.45; color: var(--color-text); }

/* the eight AI teammates */
.zbm-roles { display: flex; align-items: center; gap: 12px 24px; margin-top: 28px; }
.zbm-roles .zbm-label { flex: none; }
.zbm-roles ul { display: flex; flex-wrap: wrap; gap: 8px; }
.zbm-roles li { display: inline-flex; align-items: center; gap: 8px; padding: 6px 13px 6px 11px; border: 1px solid var(--color-line); border-radius: 999px; background: #ffffff; font-size: 13.5px; line-height: 1.3; color: var(--color-heading); }
.zbm-roles li i { width: 7px; height: 7px; border-radius: 50%; background: var(--zbm-tint); }

.zbm-recap {
  margin-top: 64px;
  padding-top: 40px;
  border-top: 1px solid var(--color-line);
  font-family: var(--zbm-serif);
  font-optical-sizing: auto;
  font-weight: 440;
  font-size: clamp(22px, 1rem + 0.9vw, 30px);
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: var(--color-heading);
  text-wrap: balance;
}

/* ── 3 · Model Router ──────────────────────────────────────────────────── */
/* <ModelRouter /> is styled in globals.css §15 (.zbr-*); this page only
   places it, full content width on its own row. */
.zbm-router { margin-top: 80px; }
.zbm-router .zbr-svg .s-name { font-variation-settings: normal; }
/* The drawing keeps a 980px minimum width (globals §15) so phones scroll it
   sideways. Above 760px it should never scroll: let it scale to fit, and
   below the 1180 frame let it use the side padding too. */
@media (min-width: 761px) {
  .zbm-router .zbr-svg { min-width: 0; }
}
@media (min-width: 761px) and (max-width: 1180px) {
  .zbm-router { margin-left: calc(16px - var(--zbm-pad)); margin-right: calc(16px - var(--zbm-pad)); }
}
.zbm-providers { display: flex; justify-content: space-between; align-items: center; gap: 24px 48px; margin-top: 80px; padding-top: 28px; border-top: 1px solid var(--color-line); }
.zbm-providers .zbm-label { flex: none; }
.zbm-providers ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 36px; font-size: 19px; font-weight: 500; letter-spacing: -0.015em; color: var(--color-heading); }
.zbm-providers__more { color: var(--color-muted); }

/* ── 4 · The models board ──────────────────────────────────────────────── */
.zbm-board {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin-top: 64px;
  background: #ffffff;
  border: 1px solid var(--color-line);
  border-radius: var(--zbm-r);
  overflow: hidden;
}
.zbm-mcard {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 28px;
  min-height: 148px;
  padding: 20px 20px 22px;
  box-shadow: inset -1px 0 0 var(--color-line), inset 0 -1px 0 var(--color-line);
  transition: background-color 0.2s;
}
.zbm-mcard:hover { background: #fcfcfa; }
.zbm-mcard__job { font-family: var(--zbm-mono); font-size: 10.5px; line-height: 1.45; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted); }
.zbm-mcard__name { font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 26px; line-height: 1.05; letter-spacing: -0.015em; color: var(--color-heading); }
/* the panel border draws the outer edges: drop the last column's and last
   row's inner hairlines */
.zbm-mcard:nth-child(6n) { box-shadow: inset 0 -1px 0 var(--color-line); }
.zbm-mcard:nth-last-child(-n + 6) { box-shadow: inset -1px 0 0 var(--color-line); }
.zbm-mcard:last-child { box-shadow: none; }

/* ── 5 · ZB Cloud ──────────────────────────────────────────────────────── */
.zbm-split--cloud { align-items: center; }
.zbm-cb { padding: 26px; background: var(--color-bg-alt); border: 1px solid var(--color-line); border-radius: var(--zbm-r); }
.zbm-cb__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 22px; }
.zbm-cb__title { font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 500; font-size: 19px; letter-spacing: -0.01em; color: var(--color-heading); }
.zbm-cb__tag { font-family: var(--zbm-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
.zbm-cb__in { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.zbm-cb__tile { display: flex; flex-direction: column; gap: 14px; padding: 16px 14px 15px; background: #ffffff; border: 1px solid var(--color-line); border-radius: 8px; font-size: 13.5px; font-weight: 500; line-height: 1.3; color: var(--color-heading); }
.zbm-cb__tile svg { width: 20px; height: 20px; fill: none; stroke: var(--color-heading); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.zbm-cb__merge { display: block; width: 100%; height: 40px; overflow: visible; }
.zbm-cb__merge path { fill: none; stroke: #8a8a84; stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.zbm-cb__lanes { background: #ffffff; border: 1px solid var(--color-line); border-radius: 8px; overflow: hidden; }
.zbm-cb__lanes li { position: relative; display: flex; align-items: center; gap: 12px; height: 50px; padding: 0 16px; font-size: 14.5px; color: var(--color-text); }
.zbm-cb__lanes li + li { border-top: 1px solid var(--color-line); }
.zbm-cb__lanes li i { width: 9px; height: 9px; flex: none; border-radius: 50%; border: 1.5px solid #8a8a84; }
.zbm-cb__lanes li.is-on { background: var(--color-amber-wash); color: var(--color-heading); font-weight: 600; }
.zbm-cb__lanes li.is-on::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--color-amber); }
.zbm-cb__lanes li.is-on i { border-color: var(--color-amber); background: var(--color-amber-bright); box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.18); }
.zbm-cb__name { flex: 1; min-width: 0; }
.zbm-cb__run { font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-amber); }

/* ── 6 · The example ───────────────────────────────────────────────────── */
.zbm-ex { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 64px; }

.zbm-store {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 32px 32px 28px;
  background: #ffffff;
  border: 1px solid var(--color-line);
  border-radius: var(--zbm-r);
  overflow: hidden;
}
.zbm-store__name { margin-top: 18px; max-width: 260px; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 440; font-size: 38px; line-height: 1.04; letter-spacing: -0.02em; color: var(--color-heading); }
.zbm-store__line { margin-top: 14px; max-width: 270px; font-size: 15px; line-height: 1.5; color: var(--color-muted); }
.zbm-store__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 28px; }
.zbm-store__tags li { padding: 5px 10px; border: 1px solid var(--color-line); border-radius: 6px; background: var(--color-bg-alt); font-size: 12.5px; line-height: 1.3; color: var(--color-text); }
.zbm-store__stats { display: flex; flex-wrap: wrap; gap: 6px 28px; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--color-line); font-size: 13.5px; color: var(--color-muted); }
.zbm-store__tags + .zbm-store__stats { margin-top: 28px; }
.zbm-store__stats b { font-weight: 600; color: var(--color-heading); font-variant-numeric: tabular-nums; }

/* the candle: a jar, a label, a wick, a small flame */
.zbm-candle { position: absolute; top: 34px; right: 36px; width: 92px; height: 136px; }
.zbm-candle__jar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 112px;
  border-radius: 10px 10px 16px 16px;
  background: linear-gradient(90deg, #e2d9ca 0%, #f3eee5 30%, #efe8dc 62%, #d8cdbb 100%);
  box-shadow: inset 0 0 0 1px rgba(120, 100, 70, 0.12), 0 16px 24px -14px rgba(90, 70, 40, 0.35);
}
.zbm-candle__jar::before { content: ""; position: absolute; left: 4px; right: 4px; top: -5px; height: 12px; border-radius: 50%; background: #e9e1d2; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 0 0 1px rgba(120, 100, 70, 0.14); }
.zbm-candle__label { position: absolute; left: 12px; right: 12px; top: 38px; height: 40px; display: grid; place-items: center; background: #fbf8f2; border: 1px solid #e6ddcd; font-family: var(--zbm-serif); font-size: 8.5px; letter-spacing: 0.16em; text-transform: uppercase; color: #6b604c; }
.zbm-candle__wick { position: absolute; left: 50%; bottom: 109px; width: 1.5px; height: 9px; margin-left: -0.75px; background: #4a4234; }
.zbm-candle__flame { position: absolute; left: 50%; bottom: 117px; width: 9px; height: 15px; margin-left: -4.5px; border-radius: 50% 50% 50% 50% / 62% 62% 38% 38%; background: radial-gradient(circle at 50% 70%, #fde7b0 0%, var(--color-amber-bright) 70%); }

/* the cost panel */
.zbm-costp { display: flex; flex-direction: column; padding: 14px 32px 28px; background: #ffffff; border: 1px solid var(--color-line); border-radius: var(--zbm-r); }
.zbm-costp__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 20px; align-items: baseline; padding: 20px 0 22px; border-bottom: 1px solid var(--color-line); }
.zbm-costp__name { font-size: 15px; line-height: 1.45; color: var(--color-muted); }
.zbm-costp__name b { font-weight: 600; color: var(--color-heading); }
.zbm-costp__val { font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 440; font-size: 30px; line-height: 1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--color-muted); }
.zbm-costp__row .zbm-bar { grid-column: 1 / -1; }
.zbm-costp__row.is-am { border-bottom: 0; padding-bottom: 6px; }
.zbm-costp__row.is-am .zbm-costp__val { color: var(--color-amber); font-size: 38px; }
.zbm-costp__row.is-am .zbm-costp__name { color: var(--color-text); }
.zbm-less { align-self: flex-start; margin-top: 18px; padding: 6px 10px; border-radius: 6px; background: var(--color-amber-wash); border: 1px solid #efd9b8; font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-amber); }


/* the record */
.zbm-rec { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: var(--zbm-gap); align-items: start; margin-top: 96px; padding-top: 48px; border-top: 1px solid var(--color-line); }
.zbm-rec__head { margin-top: 18px; max-width: 340px; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 440; font-size: 32px; line-height: 1.1; letter-spacing: -0.02em; color: var(--color-heading); text-wrap: balance; }
.zbm-rec__line { margin-top: 14px; font-size: 16px; line-height: 1.55; color: var(--color-muted); }
.zbm-rec .zbm-link { margin-top: 24px; }
.zbm-rec__card { background: #ffffff; border: 1px solid var(--color-line); border-radius: var(--zbm-r); padding: 6px 24px 4px; }
.zbm-rtable { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.zbm-rtable th { padding: 14px 0 12px; border-bottom: 1px solid var(--color-line); font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; text-align: left; color: var(--color-muted); }
.zbm-rtable td { padding: 14px 0; border-bottom: 1px solid var(--color-line); vertical-align: middle; color: var(--color-text); }
.zbm-rtable tr:last-child td { border-bottom: 0; }
.zbm-rtable .zbm-c { width: 120px; padding-left: 16px; }
.zbm-rtable .zbm-r { width: 64px; text-align: right; }

.zbm-foot { margin-top: 40px; max-width: 820px; font-size: 12px; line-height: 1.65; color: var(--color-muted); }

/* ── 7 · Pricing ───────────────────────────────────────────────────────── */
.zbm-split--price { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.zbm-checks { display: grid; gap: 12px; margin-top: 36px; }
.zbm-checks li { display: flex; align-items: center; gap: 12px; font-size: 16px; line-height: 1.45; color: var(--color-text); }
.zbm-checks svg { width: 16px; height: 16px; flex: none; color: var(--color-amber); }
.zbm-split--price .zbm-btn { margin-top: 40px; }

.zbm-receipt { padding: 34px 36px 32px; background: var(--color-bg-alt); border: 1px solid var(--color-line); border-radius: var(--zbm-r); }
.zbm-receipt dl { margin-top: 22px; }
.zbm-receipt__line { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--color-line); }
.zbm-receipt__line dt { font-size: 15px; color: var(--color-text); }
.zbm-receipt__line dd { font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 440; font-size: 24px; letter-spacing: -0.015em; font-variant-numeric: tabular-nums; color: var(--color-heading); }
.zbm-receipt__line:nth-child(2) { border-bottom: 1px dashed var(--color-line-strong); }
.zbm-receipt__total { border-bottom: 0; padding: 24px 0 4px; }
.zbm-receipt__total dt { font-size: 16px; font-weight: 600; color: var(--color-heading); }
.zbm-receipt__total dd { font-size: 60px; line-height: 1; letter-spacing: -0.03em; }
.zbm-receipt__micro { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--color-line); font-size: 13.5px; line-height: 1.55; color: var(--color-muted); }

/* ── 8 · Who it is for ─────────────────────────────────────────────────── */
.zbm-for {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 64px;
  background: #ffffff;
  border: 1px solid var(--color-line);
  border-radius: var(--zbm-r);
  overflow: hidden;
}
.zbm-for__card { display: flex; flex-direction: column; padding: 36px 40px 36px; }
.zbm-for__card:nth-child(even) { border-left: 1px solid var(--color-line); }
.zbm-for__card:nth-child(n + 3) { border-top: 1px solid var(--color-line); }
.zbm-for__who { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-amber); }
.zbm-for__head { margin-top: 18px; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 440; font-size: 30px; line-height: 1.12; letter-spacing: -0.02em; color: var(--color-heading); }
.zbm-for__body { margin-top: 14px; max-width: 420px; font-size: 15.5px; line-height: 1.6; color: var(--color-text); }
.zbm-for__link { align-self: flex-start; margin-top: auto; }
.zbm-for__body + .zbm-for__link { margin-top: 28px; }

/* ── 9 · Questions ─────────────────────────────────────────────────────── */
.zbm-faq { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); gap: var(--zbm-gap); align-items: start; }
.zbm-faq__head .zbm-h2 { max-width: 360px; }
.zbm-faq__head .zbm-link { margin-top: 28px; }
.zbm-qa { border-top: 1px solid var(--color-line); }
.zbm-qa details { border-bottom: 1px solid var(--color-line); }
.zbm-qa summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 22px 0;
  cursor: pointer;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--color-heading);
  transition: color 0.18s;
}
.zbm-qa summary:hover { color: var(--color-amber); }
.zbm-pm { position: relative; width: 14px; height: 14px; flex: none; color: var(--color-muted); }
.zbm-pm::before,
.zbm-pm::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; margin-top: -0.75px; background: currentColor; border-radius: 1px; transition: transform 0.25s var(--zbm-ease); }
.zbm-pm::after { transform: rotate(90deg); }
.zbm-qa details[open] .zbm-pm::after { transform: rotate(0deg); }
.zbm-qa .zbm-ans { max-width: 620px; padding: 0 40px 24px 0; font-size: 15.5px; line-height: 1.65; color: var(--color-muted); }

/* ── 10 · Close (the one dark band) ────────────────────────────────────── */
.zbm-close { background: var(--zbm-ink); color: var(--zbm-paper); }
.zbm-close__in { display: flex; flex-direction: column; align-items: center; text-align: center; }
.zbm-close .zbm-kicker { color: var(--zbm-ink-muted); }
.zbm-close .zbm-h2 { max-width: 820px; font-size: clamp(38px, 1.6rem + 3.2vw, 72px); line-height: 1.02; color: var(--zbm-paper); }
.zbm-close__sub { margin-top: 28px; max-width: 540px; font-size: 17.5px; line-height: 1.6; color: var(--zbm-ink-text); }
.zbm-close .zbm-btn { margin-top: 40px; }
.zbm-close__micro { margin-top: 22px; font-size: 14px; color: var(--zbm-ink-muted); }
.zbm-close__micro a { color: var(--zbm-paper); text-decoration: underline; text-decoration-color: #5a5a55; text-underline-offset: 4px; transition: text-decoration-color 0.18s; }
.zbm-close__micro a:hover { text-decoration-color: var(--zbm-paper); }
.zbm-close a:focus-visible { outline-color: var(--color-amber-bright); }

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
  .zbm { --zbm-gap: 56px; }
  .zbm-board { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .zbm-mcard,
  .zbm-mcard:nth-child(6n),
  .zbm-mcard:nth-last-child(-n + 6) { box-shadow: inset -1px 0 0 var(--color-line), inset 0 -1px 0 var(--color-line); }
  .zbm-mcard:nth-child(3n) { box-shadow: inset 0 -1px 0 var(--color-line); }
  .zbm-mcard:nth-last-child(-n + 3) { box-shadow: inset -1px 0 0 var(--color-line); }
  .zbm-mcard:last-child { box-shadow: none; }
  .zbm-split--teams { gap: 48px; }
  .zbm-providers { flex-direction: column; align-items: flex-start; gap: 18px; }
  .zbm-providers ul { justify-content: flex-start; }
  .zbm-win__main { grid-template-columns: 120px minmax(0, 1fr); }
  .zbm-candle { width: 76px; height: 116px; right: 28px; }
  .zbm-candle__jar { height: 94px; }
  .zbm-candle__label { top: 30px; height: 34px; font-size: 7.5px; }
  .zbm-candle__wick { bottom: 91px; }
  .zbm-candle__flame { bottom: 99px; }
}
@media (max-width: 960px) {
  .zbm { --zbm-band: 104px; }
  .zbm-split,
  .zbm-split--teams,
  .zbm-split--price,
  .zbm-xhead,
  .zbm-rec,
  .zbm-faq { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .zbm-xhead { gap: 24px; }
  .zbm-xhead .zbm-h2 { max-width: 640px; }
  .zbm-visual { max-width: 640px; }
  .zbm-receipt { max-width: 560px; }
  .zbm-ex { grid-template-columns: minmax(0, 1fr); }
  .zbm-systems__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zbm-grp:nth-child(3) { border-left: 0; }
  .zbm-grp:nth-child(n + 3) { border-top: 1px solid var(--color-line); }
  .zbm-roles { flex-direction: column; align-items: flex-start; }
  .zbm-rec { gap: 32px; }
  .zbm-faq { gap: 40px; }
  .zbm-router { margin-top: 56px; }
  .zbm-works__row { max-width: 460px; gap: 6px 24px; }
  .zbm-rail__item { padding: 22px 20px 24px; }
  .zbm-rail__job { font-size: 10px; letter-spacing: 0.1em; }
  .zbm-rail__name { font-size: 23px; }
}
@media (max-width: 640px) {
  .zbm { --zbm-band: 80px; font-size: 16px; }
  .zbm-hero { padding: 64px 0 72px; }
  .zbm-hero__cta { flex-direction: column; align-items: stretch; width: 100%; max-width: 340px; margin-top: 32px; }
  .zbm-rail { grid-template-columns: minmax(0, 1fr); margin-top: 56px; }
  .zbm-rail li + li { border-left: 0; border-top: 1px solid var(--color-line); }
  .zbm-rail__item,
  .zbm-rail li:first-child .zbm-rail__item,
  .zbm-rail li:last-child .zbm-rail__item { padding: 20px 0 22px; }
  .zbm-rail__name { margin-top: 10px; font-size: 23px; }
  .zbm-rail__clause { margin-top: 4px; }
  /* the phone source: card at x 32–1167, y 32–505 of 1200×538 */
  .zbm-shot { --cx: 36; --cy: 36; --cw: 1128; --ch: 466; --iw: 1200; aspect-ratio: 1128 / 466; margin-top: 48px; border-radius: 12px; }
  .zbm-works { margin-top: 48px; gap: 14px; }
  .zbm-works__row { gap: 6px 22px; font-size: 15.5px; }
  .zbm-lede,
  .zbm-split__copy .zbm-lede { font-size: 17px; margin-top: 22px; }
  .zbm-xhead .zbm-lede { font-size: 16.5px; }
  .zbm-kicker { margin-bottom: 18px; }
  .zbm-link { margin-top: 26px; }

  .zbm-win { font-size: 12px; }
  .zbm-win__main { grid-template-columns: minmax(0, 1fr); }
  .zbm-win__side { display: none; }
  .zbm-win__bar { height: 40px; }
  .zbm-win__feed { padding: 16px 16px 14px; }
  .zbm-tasks { grid-template-columns: minmax(0, 1fr); margin-left: 39px; gap: 8px; }
  .zbm-task__st { margin-top: 8px; }
  .zbm-cap { flex-direction: column; gap: 4px; }

  .zbm-systems { margin-top: 72px; }
  .zbm-systems__grid { grid-template-columns: minmax(0, 1fr); }
  .zbm-grp { padding: 18px 20px 18px; }
  .zbm-grp + .zbm-grp { border-left: 0; border-top: 1px solid var(--color-line); }
  .zbm-grp__list { display: flex; flex-wrap: wrap; gap: 2px 18px; }
  .zbm-grp__list li { padding: 3px 0; font-size: 14.5px; }
  .zbm-roles li { font-size: 13px; padding: 5px 11px 5px 9px; }
  .zbm-recap { margin-top: 48px; padding-top: 32px; }

  .zbm-router { margin-top: 40px; margin-right: calc(var(--zbm-pad) * -1); }
  .zbm-providers { margin-top: 48px; }
  .zbm-providers ul { gap: 6px 24px; font-size: 17px; }

  .zbm-board { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 40px; }
  .zbm-mcard,
  .zbm-mcard:nth-child(3n),
  .zbm-mcard:nth-last-child(-n + 3) { box-shadow: inset -1px 0 0 var(--color-line), inset 0 -1px 0 var(--color-line); }
  .zbm-mcard:nth-child(2n) { box-shadow: inset 0 -1px 0 var(--color-line); }
  .zbm-mcard:nth-last-child(-n + 2) { box-shadow: inset -1px 0 0 var(--color-line); }
  .zbm-mcard:last-child { box-shadow: none; }
  .zbm-mcard { min-height: 118px; padding: 16px 16px 18px; gap: 20px; }
  .zbm-mcard__name { font-size: 23px; }

  .zbm-cb { padding: 18px; }
  .zbm-cb__in { gap: 6px; }
  .zbm-cb__tile { padding: 12px 10px; gap: 10px; font-size: 12.5px; }
  .zbm-cb__lanes li { height: 46px; padding: 0 14px; font-size: 14px; }

  .zbm-ex { margin-top: 40px; gap: 14px; }
  .zbm-store { padding: 26px 22px 22px; }
  .zbm-store__name { font-size: 32px; max-width: 200px; }
  .zbm-store__line { max-width: 190px; font-size: 14.5px; }
  .zbm-candle { top: 26px; right: 20px; width: 64px; height: 100px; }
  .zbm-candle__jar { height: 80px; border-radius: 8px 8px 12px 12px; }
  .zbm-candle__label { left: 9px; right: 9px; top: 26px; height: 28px; font-size: 6.5px; letter-spacing: 0.12em; }
  .zbm-candle__wick { bottom: 77px; }
  .zbm-candle__flame { bottom: 85px; width: 8px; height: 13px; margin-left: -4px; }
  .zbm-costp { padding: 8px 22px 22px; }
  .zbm-costp__val { font-size: 26px; }
  .zbm-costp__row.is-am .zbm-costp__val { font-size: 32px; }
  .zbm-rec { margin-top: 64px; padding-top: 36px; }
  .zbm-rec__card { padding: 4px 18px; }
  .zbm-rtable thead { display: none; }
  .zbm-rtable tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; padding: 14px 0; border-bottom: 1px solid var(--color-line); }
  .zbm-rtable tr:last-child { border-bottom: 0; }
  .zbm-rtable td { display: block; padding: 0; border: 0; }
  .zbm-rtable td.zbm-c { grid-column: 1; grid-row: 2; width: auto; padding-left: 0; }
  .zbm-rtable td.zbm-r { grid-column: 2; grid-row: 1 / span 2; align-self: center; width: auto; }

  .zbm-receipt { padding: 26px 22px 24px; }
  .zbm-receipt__total dd { font-size: 48px; }
  .zbm-checks { margin-top: 28px; }
  .zbm-split--price .zbm-btn { margin-top: 32px; }

  .zbm-for { grid-template-columns: minmax(0, 1fr); margin-top: 40px; }
  .zbm-for__card { padding: 28px 22px 28px; }
  .zbm-for__card:nth-child(even) { border-left: 0; }
  .zbm-for__card + .zbm-for__card { border-top: 1px solid var(--color-line); }
  .zbm-for__head { font-size: 27px; }

  .zbm-qa summary { padding: 19px 0; font-size: 16px; }
  .zbm-qa .zbm-ans { padding-right: 0; font-size: 15px; }

  .zbm-close__sub { font-size: 16.5px; }
}

/* ── Reduced motion ────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .js .zbm-rv { opacity: 1; transform: none; transition: none; }
  .js .zbm-bar > i,
  .zbm-bar > i { transition: none; width: var(--w); }
  .zbm-btn,
  .zbm-link,
  .zbm-arrow,
  .zbm-rail__item,
  .zbm-rail__no svg,
  .zbm-mcard,
  .zbm-qa summary,
  .zbm-pm::before,
  .zbm-pm::after { transition: none; }
}

/* Foundation-led positioning: the access promise precedes the product. */
.zbm-hero__promise { margin-top: 28px; max-width: 600px; }
.zbm-hero__promise p { font-family: var(--zbm-serif); font-size: 27px; line-height: 1.2; color: var(--color-heading); }
.zbm-hero__promise span { display: block; margin-top: 12px; font-size: 16px; line-height: 1.6; color: var(--color-muted); text-wrap: balance; }
.zbm-foundation { background: var(--zbm-t-amber-wash); border-block: 1px solid var(--color-line); }
.zbm-foundation__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; list-style: none; margin: 48px 0 0; padding: 32px 0 0; border-top: 1px solid var(--color-line-strong); }
.zbm-foundation__steps h3 { margin-top: 18px; font-family: var(--zbm-serif); font-size: 26px; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-heading); }
.zbm-foundation__steps p { margin-top: 12px; font-size: 16px; line-height: 1.6; color: var(--color-muted); }
.zbm-foundation__links { display: flex; flex-wrap: wrap; column-gap: 32px; }
.zbm-foundation .zbm-xhead .zbm-lede + .zbm-lede { margin-top: 16px; }
.zbm-foundation__logo { display: block; width: 260px; height: auto; margin: 0 0 32px; }
@media (max-width: 760px) {
  .zbm-foundation__logo { width: 210px; margin-bottom: 24px; }
  .zbm-foundation__steps { grid-template-columns: 1fr; gap: 28px; }
  .zbm-hero__promise p { font-size: 24px; }
}

/* The product overview follows the Foundation as its own section. */
.zbm-product-intro .zbm-rail { margin-top: 0; }

/* ZB Stack · 0924 preview · inner-page blocks on the home idiom. */

/* inner-page hero: left-aligned */
.zbm-hero--page { padding: 96px 0 0; }
.zbm-hero--page .zbm-hero__in { align-items: flex-start; text-align: left; }
.zbm-hero--page .zbm-h1 { max-width: 18ch; font-size: clamp(42px, 1.5rem + 3.6vw, 76px); }
.zbm-hero--page .zbm-hero__sub { max-width: 620px; text-wrap: pretty; }
.zbm-hero--page .zbm-hero__cta { justify-content: flex-start; }
.zbm-hero--page .zbm-hero__note { margin-top: 18px; font-size: 13.5px; color: var(--color-faint); }
.zbm-hero--page + .zbm-band, .zbm-hero--page .zbm-frame { margin-top: 0; }
.zbm-hero__art { width: 100%; margin-top: 64px; }
.zbm-hero--page.zbm-hero--tight { padding-bottom: 96px; }

/* centred hero with a wide measure (Foundation) */
.zbm-hero--mission .zbm-h1 { max-width: none; }
.zbm-hero--mission .zbm-hero__sub { max-width: 640px; }

/* framed screenshot */
.zbm-frame { position: relative; overflow: hidden; border-radius: 16px; background: #fff; box-shadow: var(--zbm-shadow-lg); }
.zbm-frame::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(20, 20, 20, 0.1); border-radius: inherit; pointer-events: none; }
.zbm-frame img { width: 100%; height: auto; display: block; }
.zbm-frame--soft { box-shadow: var(--zbm-shadow); border-radius: 12px; }

/* numbered steps, 3-up (and 2-up) */
.zbm-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin-top: 64px; padding-top: 36px; border-top: 1px solid var(--color-line); }
.zbm-steps--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zbm-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.zbm-steps li { list-style: none; }
.zbm-steps h3 { margin-top: 18px; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 26px; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-heading); }
.zbm-steps p { margin-top: 12px; max-width: 34ch; font-size: 16px; line-height: 1.6; color: var(--color-muted); }
.zbm-steps .zbm-link { margin-top: 20px; }

/* hairline card grid (the "for" panel, N columns) */
.zbm-cards { display: grid; margin-top: 64px; background: #fff; border: 1px solid var(--color-line); border-radius: var(--zbm-r); overflow: hidden; }
.zbm-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zbm-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zbm-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.zbm-card { display: flex; flex-direction: column; padding: 32px 34px 34px; box-shadow: inset -1px 0 0 var(--color-line), inset 0 -1px 0 var(--color-line); }
.zbm-card__who { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-amber); }
.zbm-card__head { margin-top: 16px; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 26px; line-height: 1.14; letter-spacing: -0.02em; color: var(--color-heading); text-wrap: balance; }
.zbm-card__head--sm { font-size: 22px; }
.zbm-card__body { margin-top: 12px; max-width: 38ch; font-size: 15.5px; line-height: 1.6; color: var(--color-text); }
.zbm-card .zbm-link { align-self: flex-start; margin-top: auto; padding-top: 24px; }
.zbm-card__body + .zbm-link { margin-top: 24px; padding-top: 0; }
.zbm-card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.zbm-card__tags li { padding: 4px 9px; border: 1px solid var(--color-line); border-radius: 6px; background: var(--color-bg-alt); font-size: 12.5px; color: var(--color-text); }
.zbm-card--alt { background: var(--color-bg-alt); }

/* stat strip */
.zbm-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 56px; border-top: 1px solid var(--color-line-strong); }
.zbm-stats li { list-style: none; padding: 32px 32px 32px 0; border-bottom: 1px solid var(--color-line); }
.zbm-stats li + li { padding-left: 32px; border-left: 1px solid var(--color-line); }
.zbm-stats b { display: block; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 440; font-size: clamp(36px, 1.2rem + 2.4vw, 54px); line-height: 1; letter-spacing: -0.03em; color: var(--color-heading); font-variant-numeric: tabular-nums; white-space: nowrap; }
.zbm-stats b.zbm-am { color: var(--color-amber); }
.zbm-stats span { display: block; margin-top: 12px; font-size: 15.5px; line-height: 1.5; color: var(--color-muted); max-width: 26ch; }

/* pull statement (serif, large) */
.zbm-pull { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--color-line); max-width: 900px; }
.zbm-pull p { font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 440; font-size: clamp(26px, 1.2rem + 1.6vw, 40px); line-height: 1.22; letter-spacing: -0.02em; color: var(--color-heading); text-wrap: balance; }
.zbm-pull p + p { margin-top: 20px; font-family: var(--zbm-sans); font-size: 17.5px; line-height: 1.6; letter-spacing: 0; color: var(--color-muted); max-width: 620px; }

/* prose column */
.zbm-prose { max-width: 620px; }
.zbm-prose p { font-size: 18px; line-height: 1.62; color: var(--color-text); }
.zbm-prose p + p { margin-top: 18px; }
.zbm-prose p.zbm-big { font-family: var(--zbm-serif); font-size: 24px; line-height: 1.3; color: var(--color-heading); }
.zbm-prose--muted p { color: var(--color-muted); font-size: 16.5px; }

/* 2-col: head left, prose right */
.zbm-twocol { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: var(--zbm-gap); align-items: start; }
.zbm-twocol .zbm-h2 { max-width: 440px; }

/* definition list rows (features) */
.zbm-rows { margin-top: 56px; border-top: 1px solid var(--color-line); }
.zbm-rows > div { display: grid; grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr); gap: 40px; padding: 28px 0; border-bottom: 1px solid var(--color-line); }
.zbm-rows dt { font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 24px; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-heading); }
.zbm-rows dt small { display: block; margin-bottom: 10px; font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
.zbm-rows dd { font-size: 16.5px; line-height: 1.6; color: var(--color-text); max-width: 56ch; }
.zbm-rows dd ul { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.zbm-rows dd ul li { padding: 4px 9px; border: 1px solid var(--color-line); border-radius: 6px; background: var(--color-bg-alt); font-size: 12.5px; color: var(--color-text); }

/* the journey: step rows with screens */
.zbm-journey { margin-top: 72px; display: grid; gap: 96px; }
.zbm-journey > li { list-style: none; display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: var(--zbm-gap); align-items: center; }
.zbm-journey > li:nth-child(even) > .zbm-journey__copy { order: 2; }
.zbm-journey__no { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--color-line-strong); font-family: var(--zbm-mono); font-size: 12px; color: var(--color-heading); }
.zbm-journey h3 { margin-top: 20px; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 30px; line-height: 1.12; letter-spacing: -0.02em; color: var(--color-heading); }
.zbm-journey p { margin-top: 14px; max-width: 42ch; font-size: 16.5px; line-height: 1.6; color: var(--color-text); }
.zbm-journey .zbm-cap { margin-top: 12px; }
.zbm-journey--plain > li { display: block; }

/* technical table (how it works) */
.zbm-ttable { width: 100%; margin-top: 40px; border-collapse: collapse; font-size: 14.5px; line-height: 1.5; }
.zbm-ttable th { padding: 12px 16px 12px 0; border-bottom: 1px solid var(--color-line-strong); text-align: left; font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
.zbm-ttable td { padding: 14px 16px 14px 0; border-bottom: 1px solid var(--color-line); vertical-align: top; color: var(--color-text); }
.zbm-ttable td:first-child { font-weight: 600; color: var(--color-heading); white-space: nowrap; }
.zbm-ttable td:nth-child(2) { color: var(--color-muted); }
details.zbm-tech > summary { display: inline-flex; align-items: center; gap: 10px; margin-top: 48px; cursor: pointer; font-size: 15px; font-weight: 500; color: var(--color-heading); }
details.zbm-tech > summary::after { content: "+"; font-family: var(--zbm-mono); color: var(--color-muted); }
details.zbm-tech[open] > summary::after { content: "−"; }

/* the architecture stack (how it works §02) */
.zbm-arch { margin-top: 56px; display: grid; gap: 10px; }
.zbm-arch__row { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 28px; padding: 24px 28px; background: #fff; border: 1px solid var(--color-line); border-radius: 10px; }
.zbm-arch__row.is-alt { background: var(--color-bg-alt); }
.zbm-arch__row.is-ink { background: var(--zbm-ink); border-color: var(--zbm-ink); color: var(--zbm-ink-text); }
.zbm-arch__row.is-ink b { color: var(--zbm-paper); }
.zbm-arch__row.is-ink .zbm-arch__tags li { border-color: var(--zbm-ink-line); background: transparent; color: var(--zbm-ink-text); }
.zbm-arch__row b { font-family: var(--zbm-serif); font-weight: 450; font-size: 21px; line-height: 1.15; letter-spacing: -0.015em; color: var(--color-heading); }
.zbm-arch__row b small { display: block; margin-top: 6px; font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted); }
.zbm-arch__row p { font-size: 15.5px; line-height: 1.6; color: inherit; max-width: 62ch; }
.zbm-arch__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.zbm-arch__tags li { padding: 4px 9px; border: 1px solid var(--color-line); border-radius: 6px; background: var(--color-bg-alt); font-size: 12.5px; color: var(--color-text); }
.zbm-arch__three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.zbm-arch__three .zbm-arch__row { grid-template-columns: minmax(0, 1fr); gap: 14px; }

/* the price card (startups) */
.zbm-pcard { padding: 36px 40px 40px; background: var(--color-bg-alt); border: 1px solid var(--color-line); border-radius: var(--zbm-r); }
.zbm-pcard__price { margin-top: 18px; font-family: var(--zbm-serif); font-weight: 440; font-size: clamp(44px, 1.6rem + 3vw, 68px); line-height: 1; letter-spacing: -0.03em; color: var(--color-heading); }
.zbm-pcard__price small { display: block; margin-top: 14px; font-family: var(--zbm-sans); font-size: 16px; letter-spacing: 0; color: var(--color-muted); }
.zbm-pcard .zbm-checks { margin-top: 28px; }
.zbm-pcard .zbm-btn { margin-top: 32px; }

/* the step table (one task, step by step) */
.zbm-stable { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.zbm-stable th { padding: 12px 0; border-bottom: 1px solid var(--color-line); text-align: left; font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
.zbm-stable td { padding: 12px 0; border-bottom: 1px solid var(--color-line); color: var(--color-text); vertical-align: middle; }
.zbm-stable td.zbm-c { width: 110px; padding-left: 12px; }
.zbm-stable td.zbm-r, .zbm-stable th.zbm-r { width: 64px; text-align: right; }
.zbm-stable tr.is-total td { border-bottom: 0; font-weight: 600; color: var(--color-heading); }
.zbm-stable tr.is-note td { color: var(--color-amber); font-size: 13.5px; }

/* form */
.zbm-form { margin-top: 48px; padding: 40px; background: var(--color-surface-soft); border: 1px solid var(--color-line); border-radius: 14px; max-width: 720px; }
.zbm-form .zbm-field { margin-bottom: 22px; }
.zbm-form label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 500; color: var(--color-heading); }
.zbm-form label small { font-weight: 400; color: var(--color-muted); }
.zbm-form input, .zbm-form select, .zbm-form textarea { width: 100%; box-sizing: border-box; padding: 11px 13px; border: 1px solid var(--color-line-strong); border-radius: 8px; background: #fff; font: inherit; font-size: 15px; color: var(--color-heading); }
.zbm-form textarea { min-height: 110px; resize: vertical; }
.zbm-form input:focus, .zbm-form select:focus, .zbm-form textarea:focus { outline: 2px solid var(--color-amber); outline-offset: 1px; border-color: var(--color-amber); }
.zbm-form .zbm-hint { margin-top: 6px; font-size: 13px; color: var(--color-muted); }
.zbm-form .zbm-btn { margin-top: 8px; }
.zbm-form__hp { position: absolute; left: -9999px; }
.zbm-form__two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }

/* insights list */
.zbm-posts { margin-top: 56px; border-top: 1px solid var(--color-line); }
.zbm-posts a { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 32px; padding: 26px 0; border-bottom: 1px solid var(--color-line); text-decoration: none; }
.zbm-posts a:hover h3 { color: var(--color-amber); }
.zbm-posts h3 { font-family: var(--zbm-serif); font-weight: 450; font-size: 24px; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-heading); transition: color 0.18s; }
.zbm-posts p { margin-top: 8px; font-size: 15.5px; color: var(--color-muted); }

/* compact recap rail reused on inner pages */
.zbm-rail--inner { margin-top: 48px; }

/* small centre note (hero disclaimers) */
.zbm-note { font-size: 13px; line-height: 1.6; color: var(--color-faint); }

/* responsive */
@media (max-width: 1180px) {
  .zbm-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zbm-steps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .zbm-steps, .zbm-steps--2 { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .zbm-cards--3 { grid-template-columns: minmax(0, 1fr); }
  .zbm-twocol { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .zbm-journey > li { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .zbm-journey > li:nth-child(even) > .zbm-journey__copy { order: 0; }
  .zbm-journey { gap: 72px; }
  .zbm-rows > div { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .zbm-arch__row { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .zbm-arch__three { grid-template-columns: minmax(0, 1fr); }
  .zbm-stats { grid-template-columns: minmax(0, 1fr); }
  .zbm-stats li, .zbm-stats li + li { padding: 24px 0; border-left: 0; }
  .zbm-hero__art { margin-top: 48px; }
}
@media (max-width: 640px) {
  .zbm-cards--2, .zbm-cards--4, .zbm-steps--4 { grid-template-columns: minmax(0, 1fr); }
  .zbm-card { padding: 24px 22px 26px; }
  .zbm-form { padding: 24px 18px; }
  .zbm-form__two { grid-template-columns: 1fr; }
  .zbm-posts a { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .zbm-hero--page { padding-top: 56px; }
  .zbm-ttable { font-size: 13.5px; }
  .zbm-ttable td:first-child { white-space: normal; }
}

/* ═══════════════════════════════════════════════════════════════════════════
 * design.css — 0931, the design pass. Loaded LAST, after base/home/extras.
 *
 * What it adds, in order:
 *   1. Tokens and rhythm     (band height, radii, shadows, the easing)
 *   2. Type scale            (H1/H2 display cut, italic accent, marks, numerals)
 *   3. Nav + footer          (sticky blur, current-page rule, two-row footer)
 *   4. Image placeholders    (.ph: amber wash, id, aspect, intent; hides on load)
 *   5. Section layouts       (hero media overlap, split variants, cost ledger)
 *   6. Motion                (reveal; everything off under reduced motion)
 *   7. Responsive            (≤1180, ≤960, ≤640; 16px gutters at 375)
 *
 * HIGHLIGHT RULES (keep it premium, not loud):
 *   .zbm-hl   italic serif, amber    — the one word or clause that carries the
 *                                      meaning of a headline. One per headline.
 *   .zbm-mk   amber highlighter wash — a phrase of consequence (free, an AI team).
 *                                      Never with .zbm-hl in the same headline
 *                                      except the startups price line.
 *   .zbm-num  display numeral        — 300+, the three prices, $0.
 *   kickers stay mono, tracked, with the short amber rule.
 * ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · Tokens and rhythm ─────────────────────────────────────────────── */
.zbm {
  --zbm-band: 128px;
  --zbm-gap: 88px;
  --zbm-r: 14px;
  --zbm-r-lg: 20px;
  --zbm-ease: cubic-bezier(0.22, 0.8, 0.22, 1);
  --zbm-shadow: 0 1px 2px rgba(20, 20, 20, 0.04), 0 14px 36px -14px rgba(20, 20, 20, 0.14);
  --zbm-shadow-lg: 0 1px 2px rgba(20, 20, 20, 0.04), 0 2px 6px rgba(20, 20, 20, 0.03), 0 40px 80px -28px rgba(20, 20, 20, 0.22);
  --zbm-amber-ink: #8a3f06;        /* darker amber for small italic on light */
  --zbm-amber-wash-2: #f6e6c8;     /* highlighter stroke */
  font-size: 17px;
}
.zbm-wrap { padding: 0 max(16px, 6vw); }
.zbn__in, .zbf__in, .zbf__bar-in, .zbn__panel { padding-left: max(16px, 6vw); padding-right: max(16px, 6vw); }
.zbm-band { padding: var(--zbm-band) 0; }
.zbm-band--alt { background: var(--color-bg-alt); }
.zbm [id] { scroll-margin-top: 84px; }

/* ── 2 · Type ──────────────────────────────────────────────────────────── */
.zbm-h1, .zbm-h2 { font-weight: 430; font-feature-settings: "kern", "liga", "ss01"; }
.zbm-h1 { font-size: clamp(46px, 1.2rem + 5.2vw, 100px); line-height: 0.98; letter-spacing: -0.035em; }
.zbm-h2 { font-size: clamp(34px, 1.3rem + 2.7vw, 62px); line-height: 1.03; letter-spacing: -0.03em; }
.zbm-hero--page .zbm-h1 { font-size: clamp(44px, 1.3rem + 4vw, 84px); max-width: 16ch; }
.zbm-hero--mission .zbm-h1 { max-width: none; }

/* the italic accent */
.zbm-hl { font-style: italic; font-weight: 400; color: var(--color-amber); letter-spacing: -0.025em; font-variation-settings: "opsz" 60; }
.zbm-h1 .zbm-am, .zbm-h2 .zbm-am { font-style: italic; font-weight: 400; letter-spacing: -0.025em; }
.zbm-close .zbm-hl, .zbm-close .zbm-am { color: #f6c15c; }

/* the highlighter wash: a stroke under the lower third of the x-height */
.zbm-mk {
  color: inherit;
  background: linear-gradient(to top, transparent 0 0.16em, var(--zbm-amber-wash-2) 0.16em 0.56em, transparent 0.56em);
  background-repeat: no-repeat;
  padding: 0 0.08em;
  margin: 0 -0.08em;
  border-radius: 2px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.zbm-h1 .zbm-mk, .zbm-h2 .zbm-mk { background-image: linear-gradient(to top, transparent 0 0.17em, rgba(245, 158, 11, 0.3) 0.17em 0.55em, transparent 0.55em); }

/* the hand underline (rare: "free") */
.zbm-ul {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'%3E%3Cpath d='M1 6 C 25 2, 60 1, 99 4' fill='none' stroke='%23F59E0B' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 0 100% / 100% 0.16em;
  padding-bottom: 0.1em;
}

/* display numerals */
.zbm-num {
  display: block;
  font-family: var(--zbm-serif);
  font-optical-sizing: auto;
  font-weight: 400;
  font-size: clamp(72px, 2rem + 8vw, 168px);
  line-height: 0.88;
  letter-spacing: -0.045em;
  font-variant-numeric: lining-nums tabular-nums;
  color: var(--color-heading);
}
.zbm-num--am { color: var(--color-amber); }
.zbm-num sup { font-size: 0.42em; vertical-align: 0.9em; letter-spacing: -0.02em; margin-left: 0.04em; }

/* kickers: a touch smaller, the amber rule shorter */
.zbm-kicker { font-size: 10.5px; letter-spacing: 0.16em; color: var(--color-muted); }
.zbm-kicker::before { width: 18px; height: 1.5px; }
.zbm-label { font-size: 10.5px; letter-spacing: 0.16em; }
.zbm-lede { font-size: 19px; line-height: 1.58; }
.zbm-hero__sub { font-size: clamp(17px, 1rem + 0.4vw, 21px); line-height: 1.5; max-width: 640px; }
.zbm-prose p { font-size: 18px; line-height: 1.64; }
.zbm-prose p.zbm-big { font-size: 25px; line-height: 1.28; font-weight: 430; letter-spacing: -0.012em; }
.zbm-pull p { font-size: clamp(30px, 1.3rem + 2.1vw, 48px); line-height: 1.12; letter-spacing: -0.028em; font-weight: 430; }
.zbm-recap { font-size: clamp(22px, 1rem + 1vw, 32px); font-weight: 430; letter-spacing: -0.02em; }

/* buttons: pill, a hair taller, with a resting shadow on the primary */
.zbm-btn { height: 48px; padding: 0 24px; border-radius: 999px; font-size: 15px; font-weight: 500; letter-spacing: -0.005em; }
.zbm-btn--primary { box-shadow: 0 1px 2px rgba(20, 20, 20, 0.12), 0 8px 20px -10px rgba(20, 20, 20, 0.35); }
.zbm-btn--primary:hover { background: #262624; transform: translateY(-1px); box-shadow: 0 1px 2px rgba(20, 20, 20, 0.12), 0 12px 24px -10px rgba(20, 20, 20, 0.4); }
.zbm-btn--ghost { background: transparent; border-color: var(--color-line-strong); }
.zbm-btn--ghost:hover { background: #fff; border-color: #a9a9a2; }
.zbm-btn--light { box-shadow: 0 8px 24px -10px rgba(0, 0, 0, 0.5); }
.zbm-link { font-size: 15px; }

/* cards: hairline, quiet hover */
.zbm-card, .zbm-for__card, .zbm-mcard, .zbm-rail__item { transition: background-color 0.25s var(--zbm-ease); }
.zbm-card:hover, .zbm-for__card:hover { background: #fcfcfa; }
.zbm-band--alt .zbm-card:hover, .zbm-band--alt .zbm-for__card:hover { background: #ffffff; }
.zbm-cards, .zbm-for, .zbm-board, .zbm-systems__grid, .zbm-store, .zbm-costp, .zbm-rec__card, .zbm-cb, .zbm-win { border-radius: var(--zbm-r); }
.zbm-frame, .zbm-shot { border-radius: var(--zbm-r-lg); }
.zbm-card__head { font-size: 27px; }
.zbm-card__who, .zbm-for__who, .zbm-rail__job { font-size: 10.5px; letter-spacing: 0.16em; }
.zbm-steps h3 { font-size: 27px; }

/* ── 3 · Nav ───────────────────────────────────────────────────────────── */
.zbn {
  background: rgba(255, 255, 255, 0.72);
  -webkit-backdrop-filter: saturate(160%) blur(16px);
  backdrop-filter: saturate(160%) blur(16px);
  border-bottom: 1px solid transparent;
  transition: border-color 0.25s, background-color 0.25s;
}
.zbn.is-scrolled { background: rgba(255, 255, 255, 0.82); border-color: rgba(20, 20, 20, 0.08); }
.zbn.is-open { background: #fff; border-color: var(--color-line); }
.zbn__in { height: 68px; gap: 36px; }
.zbn__logo img { height: 30px; }
.zbn__links { gap: 28px; }
.zbn__links a { position: relative; padding: 4px 0; font-size: 14px; font-weight: 500; letter-spacing: -0.005em; color: var(--color-muted); }
.zbn__links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1.5px; background: var(--color-amber-bright); transform: scaleX(0); transform-origin: left; transition: transform 0.25s var(--zbm-ease); }
.zbn__links a:hover { color: var(--color-heading); }
.zbn__links a[aria-current="page"] { color: var(--color-heading); }
.zbn__links a[aria-current="page"]::after { transform: scaleX(1); }
.zbn__cta .zbm-btn { height: 38px; padding: 0 18px; font-size: 13.5px; box-shadow: none; }
.zbn__cta .zbm-btn:hover { transform: none; }
.zbn__menu { display: none; align-items: center; gap: 10px; margin-left: auto; padding: 8px 0 8px 8px; }
.zbn__burger { position: relative; width: 18px; height: 12px; }
.zbn__burger i { position: absolute; left: 0; right: 0; height: 1.5px; background: var(--color-heading); border-radius: 1px; transition: transform 0.25s var(--zbm-ease), top 0.25s var(--zbm-ease); }
.zbn__burger i:first-child { top: 0; }
.zbn__burger i:last-child { top: 10px; }
.zbn.is-open .zbn__burger i:first-child { top: 5px; transform: rotate(45deg); }
.zbn.is-open .zbn__burger i:last-child { top: 5px; transform: rotate(-45deg); }
.zbn__panel { padding-top: 8px; padding-bottom: 28px; box-shadow: 0 24px 40px -20px rgba(20, 20, 20, 0.2); }
.zbn__panel a { font-size: 19px; font-family: var(--zbm-serif, "Source Serif 4", serif); font-weight: 450; letter-spacing: -0.01em; padding: 14px 0; }
.zbn__panel a.zbm-btn { font-family: inherit; font-size: 15px; }
@media (max-width: 899px) { .zbn__menu { display: inline-flex; } }

/* ── 3b · Footer ───────────────────────────────────────────────────────── */
.zbf { padding: 64px 0 0; border-top: 1px solid var(--color-line); background: var(--color-bg); }
.zbf__in { grid-template-columns: minmax(0, 0.8fr) minmax(0, 2fr); gap: 48px; padding-bottom: 48px; }
.zbf__brand { display: grid; align-content: start; gap: 18px; }
.zbf__logo img { height: 26px; }
.zbf__nav { gap: 40px 64px; justify-content: flex-end; }
.zbf__group { gap: 12px; }
.zbf__group p { color: var(--color-faint); }
.zbf__group a { font-family: "Instrument Sans", sans-serif; font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--color-text); }
.zbf__group a:hover { color: var(--color-amber); }
.zbf__bar { border-top: 1px solid var(--color-line); background: var(--color-bg-alt); }
.zbf__bar-in { display: flex; justify-content: space-between; align-items: center; gap: 24px; width: 100%; max-width: 1180px; margin: 0 auto; padding-top: 18px; padding-bottom: 18px; box-sizing: border-box; }
.zbf__copy { margin: 0; font-size: 11px; letter-spacing: 0.06em; }
.zbf__copy a:hover { color: var(--color-amber); }

/* ── 4 · Image placeholders ────────────────────────────────────────────── */
/* <figure class="ph" data-img="id" data-ar="21:9" data-px="2400×1029" data-desc="…" style="--ar:21/9;--ar-m:4/3">
     <img src="/img/0931/id.webp" …>            ← drop the file in; the chrome goes
     <span class="ph__d">intended image</span>
   </figure>
   The box is sized by --ar before anything loads, so nothing shifts. */
.ph {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  aspect-ratio: var(--ar, 3 / 2);
  overflow: hidden;
  border-radius: var(--zbm-r-lg);
  background:
    radial-gradient(circle at 50% 50%, transparent 0 25px, var(--color-amber-bright) 25.5px 27.5px, transparent 28px),
    radial-gradient(circle at 50% 50%, rgba(245, 158, 11, 0.18) 0 7px, transparent 7.5px),
    radial-gradient(rgba(180, 83, 9, 0.14) 0.8px, transparent 1.1px),
    linear-gradient(135deg, #fcf6ea 0%, #f8efdd 50%, #f3e8d2 100%);
  background-size: auto, auto, 16px 16px, auto;
  box-shadow: inset 0 0 0 1px rgba(180, 83, 9, 0.12);
  isolation: isolate;
}
.ph::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 35%, rgba(252, 246, 234, 0.85) 80%);
  pointer-events: none;
}
.ph::after {
  content: attr(data-img) "  ·  " attr(data-ar) "  ·  " attr(data-px);
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 15px;
  font-family: "JetBrains Mono", monospace;
  font-size: 10.5px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-amber);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ph__d {
  position: absolute;
  left: 18px;
  right: 18px;
  top: 15px;
  max-width: 40ch;
  font-family: "Source Serif 4", Georgia, serif;
  font-style: italic;
  font-size: clamp(14px, 0.7rem + 0.5vw, 18px);
  line-height: 1.3;
  letter-spacing: -0.005em;
  color: var(--zbm-amber-ink, #8a3f06);
  text-wrap: pretty;
}
.ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transition: opacity 0.7s ease; }
.ph.is-loaded img { opacity: 1; }
.ph.is-loaded { background: var(--color-bg-alt); box-shadow: var(--zbm-shadow); }
.ph.is-loaded::before, .ph.is-loaded::after, .ph.is-loaded .ph__d { display: none; }
.ph.is-missing img { display: none; }
.ph--sm::after { content: attr(data-img); left: 10px; right: 10px; bottom: 9px; font-size: 9px; letter-spacing: 0.1em; }
.ph--sm .ph__d { display: none; }
.ph--sm { background-size: auto, auto, 12px 12px, auto; border-radius: 14px; }
.ph--sm::before { background: none; }
.ph--inset { box-shadow: inset 0 0 0 1px rgba(180, 83, 9, 0.12), var(--zbm-shadow); }
.ph--sticky { position: sticky; top: 92px; }
.ph-cap { margin-top: 14px; font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted); }

/* ── 5 · Section layouts ───────────────────────────────────────────────── */
/* home hero (0930 mixture copy) */
.zbm-hero { padding: 108px 0 0; }
.zbm-hero--mixture .zbm-h1 .zbm-hero__mixture { display: inline-block; white-space: normal; margin-top: 14px; font-size: clamp(30px, 0.8rem + 2.9vw, 58px); line-height: 1.1; }
.zbm-hero--mixture .zbm-hero__sub { margin-top: 30px; }
.zbm-hero--mixture .zbm-hero__body { margin-top: 14px; max-width: 600px; font-size: 18px; line-height: 1.55; color: var(--color-muted); text-wrap: balance; }
.zbm-hero--mixture .zbm-hero__sponsor { margin-top: 16px; max-width: 600px; font-size: 14px; line-height: 1.6; color: var(--color-muted); text-wrap: balance; }
.zbm-hero--mixture .zbm-hero__sponsor::before { content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 9px 1px 0; border-radius: 50%; background: var(--color-amber-bright); }

/* hero with a media band that overlaps the next section */
.zbm-hero--media { padding-bottom: 0; }
.zbm-hero__media { position: relative; z-index: 2; width: 100%; margin-top: 72px; margin-bottom: calc(-1 * var(--zbm-overlap, 120px)); }
.zbm-hero__media .ph { box-shadow: var(--zbm-shadow-lg), inset 0 0 0 1px rgba(180, 83, 9, 0.12); }
.zbm-hero--media + .zbm-band { padding-top: calc(var(--zbm-band) + var(--zbm-overlap, 120px)); }
.zbm-hero--page.zbm-hero--media .zbm-hero__media { margin-top: 64px; }
.zbm-hero--tight.zbm-hero--media { padding-bottom: 0; }

/* page hero as a split (startups) */
.zbm-hero--split .zbm-hero__in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: var(--zbm-gap); align-items: center; text-align: left; }
.zbm-hero--split .zbm-hero__cta { justify-content: flex-start; }
.zbm-hero--split .zbm-hero__sub { text-wrap: pretty; }
.zbm-hero--split.zbm-hero--page { padding-bottom: 112px; }
.zbm-hero--split .ph { max-width: 460px; justify-self: end; }

/* split with a portrait on the left */
.zbm-split--why { grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr); align-items: center; }
.zbm-split--why .ph { max-width: 440px; }
.zbm-split--copy-first { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
.zbm-split--copy-first .ph { order: 2; max-width: 440px; justify-self: end; }

/* figure inside a left head column */
.zbm-head-media { margin-top: 40px; max-width: 480px; }

/* a wide band inside a section (after the head, before the grid) */
.zbm-band-media { margin-top: 64px; }
.zbm-band-media + .zbm-steps, .zbm-band-media + .zbm-cards { margin-top: 64px; }

/* models: the 300+ numeral */
.zbm-models__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--zbm-gap); align-items: end; }
.zbm-models__head .zbm-h2 { max-width: 560px; }
.zbm-models__head .zbm-h2 .zbm-num { margin: 8px 0 18px; }
.zbm-models__head .zbm-lede { margin-top: 0; font-size: 17px; color: var(--color-muted); }

/* the cost ledger: three prices as display numerals */
.zbm-ex { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 20px; }
.zbm-costp { padding: 10px 36px 30px; }
.zbm-costp__row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 24px; padding: 22px 0 24px; }
.zbm-costp__name { font-size: 14.5px; }
.zbm-costp__val { font-size: clamp(34px, 1.2rem + 1.6vw, 46px); letter-spacing: -0.035em; color: var(--color-heading); font-weight: 400; }
.zbm-costp__row:not(.is-am) .zbm-costp__val { color: var(--color-muted); }
.zbm-costp__row.is-am { padding-top: 26px; padding-bottom: 10px; }
.zbm-costp__row.is-am .zbm-costp__val { font-size: clamp(52px, 1.6rem + 3.4vw, 84px); line-height: 0.95; letter-spacing: -0.045em; color: var(--color-amber); }
.zbm-costp__row.is-am .zbm-costp__name { font-size: 15px; }
.zbm-bar { height: 5px; }
.zbm-less { margin-top: 22px; }

/* the store card with the candle photo */
.zbm-store { padding: 32px 32px 28px; }
.zbm-store .ph { position: absolute; top: 28px; right: 28px; width: 128px; aspect-ratio: 1 / 1; }
.zbm-store__name { max-width: 240px; }
.zbm-store__line { max-width: 250px; }

/* home foundation band */
.zbm-foundation { background: var(--zbm-t-amber-wash); border-block: 1px solid #efe3cf; }
.zbm-foundation .zbm-band-media { margin-top: 72px; }
.zbm-foundation .zbm-band-media .ph { box-shadow: var(--zbm-shadow-lg), inset 0 0 0 1px rgba(180, 83, 9, 0.12); }
.zbm-foundation__logo { width: 250px; margin-bottom: 36px; }

/* foundation: the idea (portrait beside the pull) */
.zbm-idea { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: var(--zbm-gap); align-items: center; margin-top: 80px; }
.zbm-idea .ph { max-width: 420px; }
.zbm-idea .zbm-pull { margin-top: 0; padding-top: 0; border-top: 0; }

/* foundation: measured in public */
.zbm-measure { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: var(--zbm-gap); align-items: start; }
.zbm-measure .ph { max-width: 420px; }
.zbm-measure .zbm-steps { margin-top: 48px; padding-top: 0; border-top: 0; gap: 22px 40px; }
.zbm-measure .zbm-steps li { padding: 22px 0 0; border-top: 1px solid var(--color-line); }
.zbm-measure .zbm-steps .zbm-label { color: var(--color-amber); }
.zbm-measure .zbm-steps h3 { margin-top: 10px; font-size: 24px; }

/* price card: $0 as a numeral */
.zbm-pcard { padding: 40px 44px 44px; border-radius: var(--zbm-r-lg); background: #fff; box-shadow: var(--zbm-shadow); }
.zbm-band:not(.zbm-band--alt) .zbm-pcard { background: var(--color-bg-alt); box-shadow: none; }
.zbm-pcard__price { margin-top: 22px; font-size: clamp(72px, 2rem + 5vw, 120px); line-height: 0.9; letter-spacing: -0.045em; font-weight: 400; }
.zbm-pcard__price small { margin-top: 18px; font-size: 16px; max-width: 30ch; }

/* about / cloud: media in the left column of a twocol */
.zbm-twocol .zbm-head-media { margin-top: 36px; max-width: none; }

/* apply: form + sticky portrait */
.zbm-apply { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 64px; align-items: start; width: 100%; margin-top: 48px; }
.zbm-apply .zbm-form { margin-top: 0; max-width: none; background: #fff; box-shadow: var(--zbm-shadow); border-radius: var(--zbm-r-lg); padding: 44px; }
.zbm-apply .zbm-form input, .zbm-apply .zbm-form select, .zbm-apply .zbm-form textarea { border-radius: 10px; padding: 12px 14px; transition: border-color 0.2s, box-shadow 0.2s; }
.zbm-apply .zbm-form input:focus, .zbm-apply .zbm-form select:focus, .zbm-apply .zbm-form textarea:focus { outline: none; border-color: var(--color-amber); box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.18); }
.zbm-apply__aside { display: grid; gap: 14px; }

/* thanks: media below */
.zbm-thanks__media { width: 100%; max-width: 760px; margin-top: 64px; }

/* insights list: larger titles */
.zbm-posts { margin-top: 64px; }
.zbm-posts a { padding: 28px 0; }
.zbm-posts h3 { font-size: 26px; }

/* journey + frames */
.zbm-journey h3 { font-size: 32px; }
.zbm-journey__no { border-color: var(--color-amber); color: var(--color-amber); }

/* the dark close: a faint amber glow */
.zbm-close { position: relative; overflow: hidden; }
.zbm-close::before { content: ""; position: absolute; left: 50%; top: -40%; width: 900px; height: 900px; transform: translateX(-50%); background: radial-gradient(circle, rgba(245, 158, 11, 0.16) 0%, rgba(245, 158, 11, 0) 60%); pointer-events: none; }
.zbm-close__in { position: relative; }
.zbm-close .zbm-h2 { font-size: clamp(38px, 1.5rem + 3.4vw, 76px); }

/* faq summary: serif question */
.zbm-qa summary { font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 19px; letter-spacing: -0.012em; padding: 22px 0; }
.zbm-qa .zbm-ans { font-size: 16px; }

/* ── 6 · Motion ────────────────────────────────────────────────────────── */
.js .zbm-rv { opacity: 0; transform: translateY(16px); transition: opacity 0.7s ease, transform 0.8s var(--zbm-ease); transition-delay: var(--zbm-d, 0ms); }
.js .zbm-rv.is-in { opacity: 1; transform: none; }
.zbm-hero .zbm-rv { transition-duration: 0.9s, 1s; }
@media (prefers-reduced-motion: reduce) {
  .js .zbm-rv { opacity: 1; transform: none; transition: none; }
  .ph img, .zbn__links a::after, .zbn__burger i, .zbm-btn, .zbm-card, .zbm-for__card { transition: none; }
}

/* ── 7 · Responsive ────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
  .zbm { --zbm-gap: 56px; }
  .zbf__nav { justify-content: flex-start; }
}
@media (max-width: 960px) {
  .zbm { --zbm-band: 104px; --zbm-overlap: 80px; }
  .zbm-hero--split .zbm-hero__in { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .zbm-hero--split .ph { max-width: 520px; justify-self: start; }
  .zbm-split--why, .zbm-idea, .zbm-measure, .zbm-models__head, .zbm-apply { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .zbm-split--why .ph, .zbm-idea .ph, .zbm-measure .ph { max-width: 520px; }
  .zbm-split--copy-first .ph { order: 0; }
  .zbm-apply__aside { max-width: 420px; }
  .ph--sticky { position: static; }
  .zbf__in { grid-template-columns: minmax(0, 1fr); gap: 36px; }
}
@media (max-width: 640px) {
  .zbm { --zbm-band: 80px; --zbm-overlap: 56px; font-size: 16px; }
  .zbm-hero { padding: 56px 0 0; }
  .zbm-hero:not(.zbm-hero--media) { padding-bottom: 64px; }
  .zbm-hero--page.zbm-hero--media, .zbm-hero--media { padding-bottom: 0; }
  .zbm-hero__media { margin-top: 44px; }
  .ph { aspect-ratio: var(--ar-m, var(--ar, 3 / 2)); border-radius: 14px; }
  .ph::after { left: 12px; right: 12px; bottom: 10px; font-size: 9.5px; letter-spacing: 0.1em; }
  .ph__d { left: 12px; right: 12px; top: 10px; font-size: 13.5px; }
  .zbm-h1 { font-size: clamp(40px, 1rem + 9vw, 56px); }
  .zbm-hero--page .zbm-h1 { font-size: clamp(38px, 1rem + 8vw, 52px); }
  .zbm-h2 { font-size: clamp(31px, 1rem + 6vw, 40px); }
  .zbm-hero--mixture .zbm-h1 .zbm-hero__mixture { font-size: clamp(24px, 0.6rem + 5vw, 32px); }
  .zbm-num { font-size: clamp(64px, 2rem + 12vw, 96px); }
  .zbm-models__head .zbm-h2 .zbm-num { margin: 6px 0 12px; }
  .zbm-costp { padding: 6px 20px 22px; }
  .zbm-costp__val { font-size: 30px; }
  .zbm-costp__row.is-am .zbm-costp__val { font-size: 54px; }
  .zbm-store { padding: 24px 20px 22px; }
  .zbm-store .ph { top: 20px; right: 20px; width: 84px; }
  .zbm-store__name { max-width: 180px; font-size: 30px; }
  .zbm-store__line { max-width: 180px; }
  .zbm-pcard { padding: 28px 22px 30px; }
  .zbm-pcard__price { font-size: 72px; }
  .zbm-apply .zbm-form { padding: 24px 18px; }
  .zbm-measure .zbm-steps { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .zbm-foundation__logo { width: 200px; margin-bottom: 26px; }
  .zbm-hero--split.zbm-hero--page { padding-bottom: 64px; }
  .zbm-thanks__media { margin-top: 44px; }
  .zbf { padding-top: 48px; }
  .zbf__bar-in { flex-direction: column; align-items: flex-start; }
  .zbm-qa summary { font-size: 17.5px; }
  .zbn__in { height: 60px; }
  .zbn__logo img { height: 28px; }
}

/* ── 8 · Small fixes found while wiring the pages ──────────────────────── */
.zbm-split__copy .zbm-prose { margin-top: 28px; }
.zbm-hero__in > .zbm-band-media { width: 100%; }
.zbm-split--copy-first .zbm-head { max-width: none; }
.zbn a, .zbf a, .zbn__panel a { text-decoration: none; }

/* five steps (startups) and the technical table on phones */
.zbm-steps--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px; }
.zbm-steps--5 h3 { font-size: 22px; }
@media (max-width: 1180px) { .zbm-steps--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 960px) { .zbm-steps--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .zbm-steps--5 { grid-template-columns: minmax(0, 1fr); }
  details.zbm-tech { max-width: 100%; }
  .zbm-ttable { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .zbm-ttable thead, .zbm-ttable tbody { display: table; width: 100%; min-width: 640px; }
}

/* ── 9 · Self-critique round (founder vs Stripe/Linear) ────────────────── */
/* 1. hero hierarchy: the sub-line carries weight; body and sponsor recede */
.zbm-hero--mixture .zbm-hero__sub { color: var(--color-heading); font-size: clamp(18px, 1rem + 0.55vw, 23px); font-weight: 500; letter-spacing: -0.012em; }
.zbm-hero--mixture .zbm-hero__body { margin-top: 12px; }
.zbm-hero--mixture .zbm-hero__sponsor { margin-top: 14px; }
/* 2. band edges: a hairline where the paper changes */
.zbm-band--alt { box-shadow: inset 0 1px 0 var(--color-line), inset 0 -1px 0 var(--color-line); }
.zbm-foundation { box-shadow: none; }
/* 3. the ledger: the one-model prices sit back, the routed price leads */
.zbm-costp__row:not(.is-am) .zbm-costp__val { font-weight: 300; color: var(--color-faint); }
.zbm-costp__row.is-am .zbm-costp__val { font-weight: 400; }

/* 0935: icons in place of 01/02/03 step numbers */
.zbm-ico { flex: none; width: 18px; height: 18px; color: var(--color-amber); }
.zbm-label:has(.zbm-ico) { display: flex; align-items: center; gap: 10px; }
.zbm-label:has(.zbm-ico) .zbm-ico { width: 20px; height: 20px; }
.zbm-label:not(:has(> :not(svg))):has(.zbm-ico) .zbm-ico { width: 28px; height: 28px; }
.zbm-kicker:has(.zbm-ico)::before { display: none; }
.zbm-kicker .zbm-ico { width: 18px; height: 18px; }
.zbm-close .zbm-kicker .zbm-ico { color: var(--color-amber-bright); }
.zbm-rail__no .zbm-ico { width: 20px; height: 20px; color: var(--color-amber); }
.zbm-rail__no:has(.zbm-ico) { gap: 8px; }

/* 0936 ZB Cloud rewrite ─────────────────────────────────────────────────── */
/* hero slot for {include:cloud-hero} (the visual brings its own CSS) */
.zbm-visual--cloud { min-width: 0; }

/* runs-on strip: provider names as text, grouped by kind */
.zbm-runs { padding: 40px 0 44px; background: var(--color-bg-alt); box-shadow: inset 0 1px 0 var(--color-line), inset 0 -1px 0 var(--color-line); }
.zbm-runs .zbm-label { margin: 0 0 20px; color: var(--color-muted); }
.zbm-runs__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 32px; margin: 0; padding: 0; list-style: none; }
.zbm-runs__list li { display: grid; gap: 8px; padding-left: 16px; border-left: 1.5px solid var(--color-amber-bright); }
.zbm-runs__kind { font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-amber); }
.zbm-runs__names { font-family: var(--zbm-serif); font-optical-sizing: auto; font-size: 19px; font-weight: 450; line-height: 1.3; letter-spacing: -0.012em; color: var(--color-heading); }

/* workload cards: icon in the label, mono specifics at the foot */
.zbm-card__who:has(.zbm-ico) { display: flex; align-items: center; gap: 10px; }
.zbm-card__who .zbm-ico { width: 20px; height: 20px; }
.zbm-wl .zbm-card__body { flex: 1 0 auto; }
.zbm-spec { display: grid; gap: 0; margin: 24px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--color-line); }
.zbm-spec li { position: relative; padding: 9px 0 9px 16px; border-bottom: 1px dashed var(--color-line); font-family: var(--zbm-mono); font-size: 12.5px; line-height: 1.45; letter-spacing: -0.01em; color: var(--color-text); }
.zbm-spec li::before { content: ""; position: absolute; left: 0; top: 16px; width: 6px; height: 1.5px; background: var(--color-amber-bright); }
.zbm-spec li:last-child { border-bottom: 0; padding-bottom: 0; }

/* the "Example" badge */
.zbm-badge { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border: 1px solid rgba(180, 83, 9, 0.35); border-radius: 999px; background: var(--color-amber-wash); font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-amber); white-space: nowrap; }

/* router: the worked example */
.zbm-steps--5 .zbm-label { color: var(--color-muted); }
.zbm-ex2 { margin: 72px 0 0; padding: 32px 36px 30px; background: #fff; border: 1px solid var(--color-line); border-radius: var(--zbm-r-lg); box-shadow: var(--zbm-shadow); }
.zbm-ex2__head { display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.zbm-ex2__job { margin: 0; flex: 1 1 360px; font-size: 17px; line-height: 1.5; color: var(--color-text); }
.zbm-ex2__job b { font-family: var(--zbm-serif); font-weight: 500; font-size: 20px; letter-spacing: -0.012em; color: var(--color-heading); margin-right: 4px; }
.zbm-ex2__after { margin: 22px 0 0; max-width: 72ch; font-size: 15.5px; line-height: 1.6; color: var(--color-muted); }
.zbm-xtable, .zbm-kinds { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.zbm-xtable { margin-top: 26px; }
.zbm-xtable th, .zbm-kinds thead th { padding: 0 16px 12px 0; border-bottom: 1px solid var(--color-line-strong); text-align: left; font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
.zbm-xtable td { padding: 14px 16px 14px 0; border-bottom: 1px solid var(--color-line); vertical-align: top; color: var(--color-text); }
.zbm-xtable td:first-child { font-weight: 600; color: var(--color-heading); }
.zbm-xtable tr.is-out td { color: var(--color-faint); }
.zbm-xtable tr.is-out td:first-child { color: var(--color-muted); font-weight: 500; }
.zbm-xtable tr.is-pick td { background: var(--color-amber-wash); }
.zbm-xtable tr.is-pick td:first-child { box-shadow: inset 3px 0 0 var(--color-amber-bright); padding-left: 14px; }
.zbm-xtable tr:not(.is-pick) td:first-child { padding-left: 14px; }
.zbm-xtable th:first-child { padding-left: 14px; }
.zbm-xtable__res { font-weight: 600; color: var(--color-amber); }

/* four kinds of cloud: comparison table */
.zbm-kinds { margin-top: 56px; }
.zbm-kinds tbody th { padding: 22px 20px 22px 0; border-bottom: 1px solid var(--color-line); text-align: left; vertical-align: top; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 22px; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-heading); width: 17%; }
.zbm-kinds td { padding: 24px 20px 22px 0; border-bottom: 1px solid var(--color-line); vertical-align: top; color: var(--color-text); }
.zbm-kinds td:nth-child(3) { font-family: var(--zbm-mono); font-size: 13px; letter-spacing: -0.01em; }
.zbm-kinds td:last-child { padding-right: 0; color: var(--color-muted); }

/* built on four ideas: primitives + example job spec */
.zbm-ideas { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); gap: var(--zbm-gap); align-items: start; margin-top: 64px; }
.zbm-prims { margin: 0; border-top: 1px solid var(--color-line); }
.zbm-prims > div { padding: 22px 0 22px; border-bottom: 1px solid var(--color-line); }
.zbm-prims dt { display: flex; align-items: center; gap: 12px; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 26px; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-heading); }
.zbm-prims dt .zbm-ico { width: 22px; height: 22px; }
.zbm-prims dd { margin: 10px 0 0 34px; max-width: 46ch; font-size: 16px; line-height: 1.6; color: var(--color-text); }
.zbm-code { margin: 0; min-width: 0; background: #fff; border: 1px solid var(--color-line); border-radius: var(--zbm-r-lg); box-shadow: var(--zbm-shadow); overflow: hidden; }
.zbm-code__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--color-line); background: var(--color-surface-soft); }
.zbm-code__file { font-family: var(--zbm-mono); font-size: 12px; color: var(--color-muted); }
.zbm-code pre { margin: 0; padding: 22px 22px 24px; overflow-x: auto; -webkit-overflow-scrolling: touch; font-family: var(--zbm-mono); font-size: 13px; line-height: 1.85; color: var(--color-heading); tab-size: 2; }
.zbm-code code { font: inherit; white-space: pre; }
.zbm-code .k { color: var(--color-amber); font-weight: 500; }
.zbm-code .c { color: var(--color-faint); }

/* zero devops: one account / one balance / one record */
.zbm-managed { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 56px 0 0; padding: 0; list-style: none; background: var(--color-bg-alt); border: 1px solid var(--color-line); border-radius: var(--zbm-r); overflow: hidden; }
.zbm-managed li { display: grid; gap: 6px; padding: 24px 28px; box-shadow: inset -1px 0 0 var(--color-line); }
.zbm-managed b { font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 24px; letter-spacing: -0.02em; color: var(--color-heading); }
.zbm-managed span { font-size: 15px; line-height: 1.5; color: var(--color-muted); }
#devops .zbm-steps--4 { margin-top: 56px; }
#devops .zbm-steps h3 { margin-top: 16px; font-size: 24px; }

@media (max-width: 1180px) {
  .zbm-runs__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .zbm-cards--3.zbm-wl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zbm-ideas { grid-template-columns: minmax(0, 1fr); gap: 40px; }

  /* the comparison table becomes stacked cards */
  .zbm-kinds, .zbm-kinds tbody, .zbm-kinds tr, .zbm-kinds th, .zbm-kinds td { display: block; width: auto; }
  .zbm-kinds thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .zbm-kinds tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .zbm-kinds tr { padding: 24px 24px 8px; background: #fff; border: 1px solid var(--color-line); border-radius: var(--zbm-r); }
  .zbm-kinds tbody th { padding: 0 0 14px; border-bottom: 0; font-size: 24px; width: auto; }
  .zbm-kinds td { padding: 12px 0 14px; border-bottom: 0; border-top: 1px solid var(--color-line); }
  .zbm-kinds td::before { content: attr(data-label); display: block; margin-bottom: 4px; font-family: var(--zbm-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
}
@media (max-width: 760px) {
  /* the worked example becomes stacked rows */
  .zbm-xtable, .zbm-xtable tbody, .zbm-xtable tr, .zbm-xtable td { display: block; width: auto; }
  .zbm-xtable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .zbm-xtable tr { padding: 14px 14px 12px; border-bottom: 1px solid var(--color-line); }
  .zbm-xtable tr.is-pick { background: var(--color-amber-wash); box-shadow: inset 3px 0 0 var(--color-amber-bright); border-radius: 8px; }
  .zbm-xtable tr.is-pick td, .zbm-xtable tr.is-pick td:first-child { background: none; box-shadow: none; }
  .zbm-xtable td, .zbm-xtable tr:not(.is-pick) td:first-child, .zbm-xtable tr.is-pick td:first-child { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 3px 0; border: 0; }
  .zbm-xtable tr td:first-child, .zbm-xtable tr:not(.is-pick) td:first-child, .zbm-xtable tr.is-pick td:first-child { display: block; padding: 0 0 8px; }
  .zbm-xtable td:first-child::before { display: none; }
  .zbm-xtable td::before { content: attr(data-label); font-family: var(--zbm-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted); padding-top: 3px; }
  .zbm-managed { grid-template-columns: minmax(0, 1fr); }
  .zbm-managed li { box-shadow: inset 0 -1px 0 var(--color-line); }
}
@media (max-width: 640px) {
  .zbm-runs { padding: 32px 0 34px; }
  .zbm-runs__list { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .zbm-runs__names { font-size: 18px; }
  .zbm-cards--3.zbm-wl { grid-template-columns: minmax(0, 1fr); }
  .zbm-kinds tbody { grid-template-columns: minmax(0, 1fr); }
  .zbm-kinds tr { padding: 20px 18px 6px; }
  .zbm-ex2 { margin-top: 48px; padding: 22px 16px 20px; }
  .zbm-ex2__job { flex-basis: 100%; font-size: 16px; }
  .zbm-ex2__job b { font-size: 18px; }
  .zbm-ideas { margin-top: 44px; }
  .zbm-prims dt { font-size: 23px; }
  .zbm-prims dd { margin-left: 0; }
  .zbm-code pre { padding: 18px 16px 20px; font-size: 12.5px; }
}

/* 0943 hero design ─────────────────────────────────────────────────────
   One headline pair (name + the amber mixture line, tight), then a sum:
   two parallel lines side by side over a rule, "One AI stack." beneath it
   in the display serif. Sans explains, serif states. */
.zbm-hero--mixture { padding-top: 96px; }
.zbm-hero--mixture .zbm-h1 { display: flex; flex-direction: column; align-items: center; max-width: none; font-size: clamp(48px, 1.2rem + 5.4vw, 104px); line-height: 0.96; letter-spacing: -0.04em; }
.zbm-hero--mixture .zbm-h1 .zbm-hero__name { display: block; }
.zbm-hero--mixture .zbm-h1 .zbm-hero__mixture { display: block; margin-top: 0.2em; font-size: 0.42em; line-height: 1.15; letter-spacing: -0.022em; font-variation-settings: "opsz" 48; color: var(--color-amber); }
.zbm-hero--mixture .zbm-hero__sum { margin-top: 48px; width: min(100%, 760px); }
.zbm-hero--mixture .zbm-hero__pair { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.zbm-hero--mixture .zbm-hero__line { margin: 0; padding: 4px 28px; font-size: clamp(17px, 1rem + 0.35vw, 20px); font-weight: 500; line-height: 1.4; letter-spacing: -0.012em; color: var(--color-heading); text-wrap: balance; }
.zbm-hero--mixture .zbm-hero__line + .zbm-hero__line { border-left: 1px solid var(--color-line-strong); }
.zbm-hero--mixture .zbm-hero__stackline { position: relative; margin: 26px 0 0; padding-top: 24px; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 430; font-size: clamp(28px, 1rem + 1.4vw, 38px); line-height: 1.05; letter-spacing: -0.025em; color: var(--color-heading); }
.zbm-hero--mixture .zbm-hero__stackline::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--color-line-strong); }
.zbm-hero--mixture .zbm-hero__stackline::after { content: ""; position: absolute; left: 50%; top: -1px; width: 56px; height: 3px; margin-left: -28px; background: var(--color-amber-bright); }
.zbm-hero--mixture .zbm-hero__cta { margin-top: 44px; }
.zbm-hero--mixture .zbm-hero__cta + .zbm-hero__sponsor { margin: 22px auto 0; font-size: 13.5px; }
.zbm-hero--mixture .zbm-hero__media { margin-top: 64px; }
@media (max-width: 640px) {
  .zbm-hero--mixture { padding-top: 48px; }
  .zbm-hero--mixture .zbm-h1 { font-size: clamp(38px, 0.4rem + 10.6vw, 50px); }
  .zbm-hero--mixture .zbm-h1 .zbm-hero__mixture { margin-top: 0.3em; font-size: 0.5em; }
  .zbm-hero--mixture .zbm-hero__sum { margin-top: 34px; }
  .zbm-hero--mixture .zbm-hero__pair { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .zbm-hero--mixture .zbm-hero__line { padding: 0 8px; }
  .zbm-hero--mixture .zbm-hero__line + .zbm-hero__line { border-left: 0; }
  .zbm-hero--mixture .zbm-hero__stackline { margin-top: 22px; padding-top: 20px; }
  .zbm-hero--mixture .zbm-hero__cta { margin-top: 34px; }
  .zbm-hero--mixture .zbm-hero__media { margin-top: 44px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
 * tech.css — 0934, the tech-focused pass. Loaded LAST, after design.css.
 *
 *   1. Surfaces       blueprint grid on heroes, dot grid on alt bands, the ink
 *                     close band with a grid; corners stop being pills
 *   2. Mono           model / provider / works-with rows become mono chips;
 *                     captions and tables tighten
 *   3. Placeholders   .ph--mj: the Midjourney slot chrome (blueprint, crosshair,
 *                     id · aspect · px); .ph--draw: a drawn figure, no chrome
 *   4. Diagrams       .dg nodes + orthogonal connectors (how-hero, ai-teams-how,
 *                     cloud-world, startups-hire, thanks-hero)
 *   5. Figures        .st stack layers, .tk token field, .rl ruler, .ws workspace
 *                     blueprint, .cs console card
 *   6. Motion         pulse + marching dash; all off under reduced motion
 *   7. Phones         ≤640px
 * ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · Surfaces ──────────────────────────────────────────────────────── */
.zbm {
  --t-grid: rgba(20, 20, 20, 0.045);
  --t-dot: rgba(20, 20, 20, 0.11);
  --t-line: var(--color-line-strong);
  --zbm-r: 10px;
  --zbm-r-lg: 14px;
}
.zbm-btn { border-radius: 9px; }
.zbn__cta .zbm-btn { border-radius: 8px; }

/* heroes: a blueprint grid that fades out below the headline */
.zbm-hero { position: relative; isolation: isolate; }
.zbm-hero::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: min(70vh, 640px);
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(var(--t-grid) 1px, transparent 1px) 0 0 / 120px 120px,
    linear-gradient(90deg, var(--t-grid) 1px, transparent 1px) 0 0 / 120px 120px,
    radial-gradient(var(--t-dot) 1px, transparent 1.3px) 0 0 / 24px 24px;
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.9), transparent 92%);
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.9), transparent 92%);
}
/* alt bands: a quiet dot grid behind the cards */
.zbm-band--alt {
  background-image: radial-gradient(var(--t-dot) 0.8px, transparent 1.2px);
  background-size: 22px 22px;
  background-color: var(--color-bg-alt);
}
.zbm-foundation { background-image: radial-gradient(rgba(180, 83, 9, 0.12) 0.8px, transparent 1.2px); background-size: 22px 22px; }
/* the ink close: grid in the ink line colour, amber glow kept */
.zbm-close {
  background-image:
    radial-gradient(ellipse at 50% 120%, rgba(245, 158, 11, 0.16), transparent 60%),
    linear-gradient(var(--zbm-ink-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--zbm-ink-line) 1px, transparent 1px);
  background-size: auto, 120px 120px, 120px 120px;
  background-color: var(--zbm-ink);
}
/* the model board and the systems grid sit on solid paper (no dots through the cells) */
.zbm-board, .zbm-systems__grid { background-color: var(--color-bg-alt); }
.zbm-band--alt .zbm-board { background-color: #fff; }
/* cards, frames, windows: squarer */
.zbm-card, .zbm-for__card, .zbm-rail, .zbm-cards, .zbm-for, .zbm-board, .zbm-systems__grid, .zbm-store, .zbm-costp, .zbm-rec__card, .zbm-cb, .zbm-win, .zbm-pcard, .zbm-arch__row, .zbm-form, .zbm-posts a { border-radius: var(--zbm-r); }
.zbm-frame, .zbm-shot, .ph { border-radius: var(--zbm-r-lg); }
.zbm-frame { box-shadow: var(--zbm-shadow), 0 0 0 1px var(--color-line); }
/* a mono tag in the corner of every screenshot frame: the window dots */
.zbm-frame::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 0;
  z-index: 1;
}

/* ── 2 · Mono ──────────────────────────────────────────────────────────── */
.zbm-works__row, .zbm-providers ul { gap: 8px; }
.zbm-works__row li, .zbm-providers ul li {
  font-family: var(--zbm-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text);
  padding: 7px 11px;
  border: 1px solid var(--color-line-strong);
  border-radius: 6px;
  background: #fff;
}
.zbm-providers ul li.zbm-providers__more { color: var(--color-muted); border-style: dashed; background: transparent; }
.zbm-chip { border-radius: 5px; border-color: var(--color-line-strong); background: #fff; }
.zbm-store__tags li, .zbm-arch__tags li { border-radius: 5px; font-family: var(--zbm-mono); font-size: 11px; letter-spacing: 0.06em; }
.zbm-cap { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-muted); }
.zbm-cap span + span::before { content: "/ "; color: var(--color-faint); }
.zbm-mcard__name { font-family: var(--zbm-serif); }
.zbm-mcard { position: relative; }
.zbm-mcard::after { content: ""; position: absolute; top: 14px; right: 14px; width: 6px; height: 6px; border-radius: 50%; background: var(--color-amber-bright); opacity: 0.85; }
.zbm-rail__item { position: relative; }
.zbm-roles li i, .zbm-win__side li i { border-radius: 2px; }
.zbm-costp__name b { font-family: var(--zbm-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; }
.zbm-store__stats b { font-family: var(--zbm-mono); font-weight: 500; }
.zbm-rtable th, .zbm-stable th, .zbm-ttable th { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; }
.zbm-journey__no { font-family: var(--zbm-mono); }
.zbm-kicker, .zbm-label, .zbm-card__who, .zbm-for__who, .zbm-rail__job { font-weight: 500; }
.zbm-steps li { position: relative; }

/* ── 3 · Placeholders ──────────────────────────────────────────────────── */
/* a Midjourney slot (and a kept file before it loads): blueprint paper, a crosshair, the spec line */
.ph--mj, .ph--kept, .ph--mj.is-missing, .ph--kept.is-missing {
  background:
    linear-gradient(var(--t-grid) 1px, transparent 1px) 0 0 / 96px 96px,
    linear-gradient(90deg, var(--t-grid) 1px, transparent 1px) 0 0 / 96px 96px,
    radial-gradient(var(--t-dot) 0.8px, transparent 1.2px) 0 0 / 24px 24px,
    var(--color-bg-alt);
  box-shadow: inset 0 0 0 1px var(--color-line-strong);
}
.ph--mj::before, .ph--kept::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(var(--color-amber-bright), var(--color-amber-bright)) 50% 50% / 1px 56px no-repeat,
    linear-gradient(var(--color-amber-bright), var(--color-amber-bright)) 50% 50% / 56px 1px no-repeat,
    radial-gradient(circle at 50% 50%, transparent 0 17px, var(--color-amber-bright) 17.5px 18.5px, transparent 19px),
    radial-gradient(circle at 50% 50%, var(--color-bg-alt) 0 11px, transparent 11.5px);
  pointer-events: none;
}
.ph--kept::after { content: attr(data-img) " · " attr(data-ar) " · " attr(data-px); }
.ph--mj::after { content: "MJ · " attr(data-img) " · " attr(data-ar) " · " attr(data-px); }
.ph--mj::after, .ph--kept::after {
  left: 16px; right: auto; bottom: 14px;
  padding: 5px 8px;
  border: 1px solid var(--color-line-strong);
  border-radius: 5px;
  background: #fff;
  color: var(--color-amber);
  font-size: 10px;
  letter-spacing: 0.12em;
}
.ph--mj .ph__d, .ph--kept .ph__d {
  left: 16px; right: 16px; top: 14px;
  max-width: 44ch;
  font-family: var(--zbm-mono);
  font-style: normal;
  font-size: 11.5px;
  line-height: 1.5;
  letter-spacing: 0;
  color: var(--color-muted);
}
.ph--mj .ph__d::before { content: "Image · "; color: var(--color-faint); }
.ph--kept .ph__d::before { content: "Screenshot · "; color: var(--color-faint); }
/* corner ticks */
.ph--mj .ph__d::after {
  content: "";
  position: absolute;
  inset: auto;
}
.ph--mj.is-loaded { box-shadow: var(--zbm-shadow), 0 0 0 1px var(--color-line); }
.zbm-hero__media .ph--mj.is-loaded, .zbm-foundation .zbm-band-media .ph--mj.is-loaded { box-shadow: var(--zbm-shadow-lg), 0 0 0 1px var(--color-line); }
.zbm-hero__media .ph { box-shadow: var(--zbm-shadow-lg), 0 0 0 1px var(--color-line); }
.zbm-foundation .zbm-band-media .ph { box-shadow: var(--zbm-shadow-lg), 0 0 0 1px var(--color-line); }
.ph.is-loaded { box-shadow: var(--zbm-shadow), 0 0 0 1px var(--color-line); }

/* a drawn figure: paper, a hairline, a dot grid; no chrome at all */
.ph--draw, .ph--draw::before, .ph--draw::after { background: none; content: none; }
.ph--draw {
  background:
    radial-gradient(var(--t-dot) 0.8px, transparent 1.2px) 0 0 / 22px 22px,
    #fff;
  box-shadow: 0 0 0 1px var(--color-line-strong), var(--zbm-shadow);
}
.zbm-band--alt .ph--draw, .zbm-hero .ph--draw { background-color: #fff; }
.zbm-hero__media .ph--draw { box-shadow: 0 0 0 1px var(--color-line-strong), var(--zbm-shadow-lg); }
.ph--draw::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 50% 50%, transparent 55%, rgba(255, 255, 255, 0.7) 100%); }

/* ── 4 · Diagrams ──────────────────────────────────────────────────────── */
.dg { position: absolute; inset: 0; font-family: var(--zbm-mono); }
.dg__e { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; display: block; }
.dg__e--m { display: none; }
.dg__e path, .dg__e rect, .dg__e ellipse { fill: none; stroke: var(--t-line); stroke-width: 1.25; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.dg__e .am { stroke: var(--color-amber-bright); stroke-width: 1.6; }
.dg__e .dash { stroke-dasharray: 4 4; }
.dg__e .am.dash { stroke-dasharray: 3 3; animation: dg-march 1.2s linear infinite; }

.dg__n, .dg__t, .dg__c {
  position: absolute;
  left: var(--x); top: var(--y);
  transform: translate(-50%, -50%);
  white-space: nowrap;
}
.dg__n {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 6px 10px;
  border: 1px solid var(--color-line-strong);
  border-radius: 6px;
  background: #fff;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--color-heading);
  box-shadow: 0 1px 2px rgba(20, 20, 20, 0.05);
}
.dg__n small { font-size: 9px; letter-spacing: 0.12em; color: var(--color-muted); }
.dg__n--hub {
  padding: 9px 14px;
  background: var(--zbm-ink);
  border-color: var(--zbm-ink);
  color: var(--zbm-paper);
  font-family: var(--zbm-serif);
  font-size: 15px;
  font-weight: 450;
  letter-spacing: -0.01em;
  text-transform: none;
  box-shadow: 0 6px 18px -8px rgba(20, 20, 20, 0.5);
}
.dg__n--you, .dg__n--in { background: var(--color-bg-alt); color: var(--color-muted); border-radius: 999px; }
.dg__n--model { font-weight: 600; }
.dg__n--am { border-color: var(--color-amber-bright); color: var(--color-amber); box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.14); }
.dg__n--rec, .dg__n--doc { border-style: dashed; background: var(--color-bg-alt); }
.dg__n--board { padding-right: 14px; }
.dg__n--board::after {
  content: "";
  width: 30px; height: 10px; margin-top: 2px;
  background:
    linear-gradient(var(--color-amber-bright), var(--color-amber-bright)) 0 0 / 8px 10px no-repeat,
    linear-gradient(var(--color-line-strong), var(--color-line-strong)) 11px 0 / 8px 7px no-repeat,
    linear-gradient(var(--color-line-strong), var(--color-line-strong)) 22px 0 / 8px 4px no-repeat;
}
.dg__t {
  padding: 3px 7px;
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-muted);
  background: #fff;
  transform: translate(0, -50%);
}
.dg__c svg { display: block; fill: var(--color-heading); width: 58px; height: 58px; }
.dg__c svg rect.dash { fill: none; stroke: var(--t-line); stroke-dasharray: 3 3; }
.dg__c svg rect:not(.dash) { fill: var(--color-heading); opacity: 0.85; }
.dg__n--pulse {
  width: 40px; height: 40px; padding: 0;
  justify-content: center;
  border-radius: 50%;
  border-color: var(--color-amber-bright);
  background: var(--color-amber-bright);
  color: #fff;
  box-shadow: 0 0 0 8px rgba(245, 158, 11, 0.14);
}
.dg__n--pulse::before { content: ""; position: absolute; inset: -1px; border-radius: 50%; border: 1px solid var(--color-amber-bright); animation: dg-pulse 2.4s ease-out infinite; }
.dg--pipeline .dg__n--hub { animation: none; }
.dg__n--hub.is-live::after, .dg--flow .dg__n--hub::after, .dg--pipeline .dg__n--hub::after, .dg--clouds .dg__n--hub::after, .dg--ring .dg__n--hub::after {
  content: ""; position: absolute; top: -4px; right: -4px; width: 8px; height: 8px; border-radius: 50%;
  background: var(--color-amber-bright); box-shadow: 0 0 0 2px #fff; animation: dg-blink 2.2s ease-in-out infinite;
}

/* ── 5 · Figures ───────────────────────────────────────────────────────── */
/* the stack, three layers (home-why) */
.st { position: absolute; inset: 0; display: grid; grid-template-rows: repeat(3, 1fr); padding: 10% 8% 10% 12%; box-sizing: border-box; }
.st__axis {
  position: absolute; left: 7%; top: 50%;
  transform: translate(-50%, -50%) rotate(-90deg);
  font-family: var(--zbm-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-muted);
  white-space: nowrap;
}
.st::before { content: ""; position: absolute; left: 7%; top: 12%; bottom: 12%; width: 1px; background: var(--t-line); }
.st::after { content: ""; position: absolute; left: 7%; top: 44%; height: 12%; width: 1px; background: #fff; }
.st__row { display: grid; grid-template-columns: 44% 1fr; align-items: center; gap: 5%; }
.st__plate { position: relative; aspect-ratio: 1.45; display: grid; place-items: center; }
.st__plate i {
  display: block; width: 74%; aspect-ratio: 1;
  transform: rotateX(54deg) rotateZ(45deg);
  background:
    linear-gradient(var(--t-grid) 1px, transparent 1px) 0 0 / 25% 25%,
    linear-gradient(90deg, var(--t-grid) 1px, transparent 1px) 0 0 / 25% 25%,
    rgba(255, 255, 255, 0.92);
  border: 1px solid var(--color-line-strong);
  box-shadow: 0 10px 22px -10px rgba(20, 20, 20, 0.25), 0 0 0 1px #fff inset;
}
.st__row:nth-child(2) .st__plate i { box-shadow: 0 10px 22px -10px rgba(20, 20, 20, 0.25), 0 0 0 1px #fff inset, 0 0 0 4px rgba(245, 158, 11, 0.1); }
.st__plate::after { content: ""; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; border-radius: 50%; background: var(--color-amber-bright); transform: translate(-50%, -50%); box-shadow: 0 0 0 3px #fff; }
.st__row:nth-child(3) .st__plate::after { background: var(--color-heading); }
.st__lab { display: grid; gap: 6px; }
.st__job { font-family: var(--zbm-mono); font-size: 9.5px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
.st__name { font-family: var(--zbm-serif); font-size: clamp(18px, 1rem + 0.6vw, 24px); font-weight: 450; letter-spacing: -0.015em; color: var(--color-heading); line-height: 1.1; }

/* a field of tokens (foundation-idea) */
.tk { position: absolute; inset: 0; padding: 9% 10% 12%; box-sizing: border-box; }
.tk__grid { display: grid; grid-template-columns: repeat(var(--c), 1fr); gap: 6px; height: 100%; align-content: stretch; }
.tk__grid i { display: block; border-radius: 1.5px; background: var(--color-heading); opacity: 0.5; }
.tk__grid i.is-off { opacity: 0.06; }
.tk__grid i.is-am { background: var(--color-amber-bright); opacity: 1; }
.tk__tag { position: absolute; left: 10%; bottom: 5%; font-family: var(--zbm-mono); font-size: 9.5px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-muted); }
.tk__tag::before { content: ""; display: inline-block; width: 8px; height: 8px; margin: 0 8px 0 0; vertical-align: -1px; border-radius: 2px; background: var(--color-amber-bright); }

/* the scale (foundation-measure) */
.rl { position: absolute; inset: 0; }
.rl__axis {
  position: absolute; left: 22%; top: 7%; bottom: 7%; width: 14px;
  border-left: 1px solid var(--color-heading);
  background:
    repeating-linear-gradient(to bottom, var(--color-heading) 0 1px, transparent 1px 100%) 0 0 / 6px calc(100% / 48 + 0px),
    repeating-linear-gradient(to bottom, var(--color-heading) 0 1px, transparent 1px 100%) 0 0 / 14px calc(100% / 12);
  background-repeat: repeat-y;
}
.rl__m {
  position: absolute; left: calc(22% + 14px); top: var(--y);
  transform: translateY(-50%);
  display: flex; align-items: center; gap: 12px;
  font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-heading);
  white-space: nowrap;
}
.rl__m i { display: block; width: 36px; height: 1px; background: var(--color-heading); position: relative; }
.rl__m i::after { content: ""; position: absolute; right: -4px; top: -3.5px; width: 7px; height: 7px; border-radius: 50%; background: var(--color-amber-bright); }
.rl__m:nth-child(3) i::after, .rl__m:nth-child(5) i::after { background: var(--color-heading); }

/* a blueprint of the workspace (ai-teams-workspace) */
.ws { position: absolute; inset: 7%; display: grid; grid-template-rows: auto 1fr auto auto; gap: 10px; font-family: var(--zbm-mono); }
.ws .dg__t { position: static; transform: none; display: inline-block; padding: 0 0 8px; background: transparent; }
.ws__bar { display: flex; gap: 5px; padding-bottom: 8px; border-bottom: 1px solid var(--color-line); }
.ws__bar i { width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--color-line-strong); }
.ws__main { display: grid; grid-template-columns: 34% 1fr; gap: 12px; min-height: 0; }
.ws__side { display: grid; align-content: start; gap: 9px; padding-right: 12px; border-right: 1px solid var(--color-line); }
.ws__ch { display: block; height: 7px; width: 70%; border-radius: 2px; background: var(--color-line-strong); }
.ws__ch:nth-child(3) { width: 85%; background: var(--color-heading); opacity: 0.85; }
.ws__ch:nth-child(5) { width: 55%; }
.ws__feed { display: grid; grid-template-rows: 1fr auto; gap: 10px; min-height: 0; }
.ws__msgs { display: grid; align-content: start; gap: 12px; }
.ws__msg { display: grid; grid-template-columns: 16px 1fr; gap: 8px; align-items: start; }
.ws__av { width: 16px; height: 16px; border-radius: 4px; background: var(--color-line-strong); }
.ws__av.is-am { background: var(--color-amber-bright); }
.ws__msg b { display: block; height: 6px; border-radius: 2px; background: var(--color-line); width: var(--w); margin-top: 3px; }
.ws__msg b:first-child { background: var(--color-line-strong); margin-top: 5px; }
.ws__pill { height: 26px; border: 1px solid var(--color-line-strong); border-radius: 6px; background: #fff; position: relative; }
.ws__pill::after { content: ""; position: absolute; left: 10px; top: 8px; width: 1px; height: 10px; background: var(--color-heading); animation: dg-blink 1s steps(2) infinite; }
.ws__board { padding-top: 10px; border-top: 1px solid var(--color-line); }
.ws__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ws__col { display: grid; align-content: start; gap: 5px; padding: 7px; border: 1px dashed var(--color-line-strong); border-radius: 6px; min-height: 64px; }
.ws__col span { font-size: 8.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted); padding-bottom: 2px; }
.ws__col b { display: block; height: var(--h); border-radius: 3px; background: #fff; border: 1px solid var(--color-line-strong); }
.ws__col:nth-child(2) b:first-of-type { border-color: var(--color-amber-bright); box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.25); }
.ws__foot { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-top: 10px; border-top: 1px solid var(--color-line); }
.ws__know { display: flex; flex-wrap: wrap; gap: 4px; }
.ws__know b { width: 26px; height: 12px; border-radius: 3px; border: 1px solid var(--color-line-strong); background: var(--color-bg-alt); }
.ws__week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.ws__week i { height: 12px; border-radius: 2px; background: var(--color-line); }
.ws__week i.is-am { background: var(--color-amber-bright); }

/* the console card (apply-side): the one dark panel on the site */
.ph--draw:has(.cs) { background: var(--zbm-ink); box-shadow: 0 0 0 1px var(--zbm-ink), var(--zbm-shadow-lg); }
.ph--draw:has(.cs)::before { background: linear-gradient(var(--zbm-ink-line) 1px, transparent 1px) 0 0 / 100% 28px; opacity: 0.6; }
.cs { position: absolute; inset: 0; display: grid; grid-template-rows: auto 1fr; font-family: var(--zbm-mono); color: var(--zbm-ink-text); font-size: 11.5px; letter-spacing: 0.02em; }
.cs__bar { display: flex; align-items: center; gap: 6px; padding: 16px 20px; border-bottom: 1px solid var(--zbm-ink-line); }
.cs__bar i { width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--zbm-ink-muted); }
.cs__bar i:first-child { background: var(--color-amber-bright); border-color: var(--color-amber-bright); }
.cs__bar span { margin-left: auto; font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--zbm-ink-muted); }
.cs__body { display: grid; align-content: start; gap: 14px; padding: 24px 20px; }
.cs__row { display: grid; grid-template-columns: 10px 1fr auto; gap: 10px; align-items: baseline; }
.cs__row i { width: 6px; height: 6px; border-radius: 50%; background: var(--color-amber-bright); align-self: center; }
.cs__row span { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--zbm-ink-muted); }
.cs__row b { font-family: var(--zbm-serif); font-weight: 450; font-size: 16px; letter-spacing: -0.01em; color: var(--zbm-paper); }
.cs__row--p { grid-template-columns: 1fr auto; }
.cs__row--p b { font-family: var(--zbm-mono); font-size: 12px; font-weight: 500; }
.cs__row--p b.is-am { color: #f6c15c; }
.cs hr { border: 0; border-top: 1px dashed var(--zbm-ink-line); margin: 6px 0; }
.cs__prompt { display: flex; align-items: center; gap: 8px; margin-top: 10px; color: var(--zbm-ink-muted); }
.cs__prompt i { width: 7px; height: 13px; background: var(--color-amber-bright); animation: dg-blink 1s steps(2) infinite; }

/* ── 6 · Motion ────────────────────────────────────────────────────────── */
@keyframes dg-march { to { stroke-dashoffset: -12; } }
@keyframes dg-pulse { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(2.2); opacity: 0; } }
@keyframes dg-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) {
  .dg__e .am.dash, .dg__n--pulse::before, .dg__n--hub::after, .ws__pill::after, .cs__prompt i { animation: none !important; }
}

@media (max-width: 960px) { .ph--sticky { position: relative; top: auto; } }

/* ── 7 · Phones ────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .dg__e { display: none; }
  .dg__e--m { display: block; }
  .dg__n, .dg__t, .dg__c { left: var(--xm, var(--x)); top: var(--ym, var(--y)); }
  .dg__n { font-size: 9.5px; padding: 5px 7px; letter-spacing: 0.06em; }
  .dg__n--hub { font-size: 13.5px; padding: 7px 11px; }
  .dg__c svg { width: 34px; height: 34px; }
  .dg__t { font-size: 8.5px; }
  .ph--mj::after { font-size: 9px; padding: 4px 6px; left: 12px; bottom: 10px; }
  .ph--mj .ph__d { font-size: 10.5px; left: 12px; right: 12px; top: 10px; }
  .st { padding: 8% 6% 8% 12%; }
  .st__name { font-size: 18px; }
  .tk__grid { gap: 5px; }
  .rl__m { font-size: 9.5px; }
  .ws { inset: 6%; gap: 8px; }
  .ws__col { min-height: 52px; }
  .zbm-works__row li, .zbm-providers ul li { font-size: 10px; padding: 6px 9px; }
}

/* ── 8 · 0938 token-grid backgrounds ───────────────────────────────────── */
/* The foundation-idea figure (a field of tokens) as the site's background
 * motif. Generated by tokengrid.py at build time: an inline SVG in the
 * top-right corner of every hero (tokens arriving), the blank 40px tile on the
 * alt bands (the grid, waiting), and a dark field along the floor of the ink
 * close (tokens accumulated). Knobs: the --tk-* colours here, the density and
 * amber constants in tokengrid.py. */
.zbm {
  --tk-e: rgba(20, 20, 20, 0.045);    /* empty square on paper */
  --tk-f: rgba(20, 20, 20, 0.115);    /* filled square on paper */
  --tk-a: #f59e0b;                    /* amber token */
  --tk-ink-e: rgba(255, 255, 255, 0.045);
  --tk-ink-f: rgba(255, 255, 255, 0.105);
}
.tkbg { position: absolute; display: block; pointer-events: none; z-index: -1; }
.tkbg rect { width: 26px; height: 26px; rx: 2px; }
.tkbg .e { fill: var(--tk-e); }
.tkbg .f { fill: var(--tk-f); }
.tkbg .a { fill: var(--tk-a); opacity: 0.9; }
/* heroes: the field sits in the top-right corner and thins toward the headline */
.tkbg--hero {
  top: 0; right: 0;
  width: min(560px, 44vw);
  height: min(100%, 560px);
  -webkit-mask-image: radial-gradient(ellipse 100% 100% at 100% 0%, #000 8%, transparent 70%);
  mask-image: radial-gradient(ellipse 100% 100% at 100% 0%, #000 8%, transparent 70%);
}
/* the hero's blueprint grid loses its fine dots where the field now reads as the texture */
.zbm-hero::before {
  background:
    linear-gradient(var(--t-grid) 1px, transparent 1px) right top / 120px 120px,
    linear-gradient(90deg, var(--t-grid) 1px, transparent 1px) right top / 120px 120px;
}
/* alt bands keep the 0934 dot grid (founder, 15 Oct: tokens at top and bottom only) */
/* the ink close: the dark console, tokens piled along the floor */
.zbm-close { isolation: isolate; }
.zbm-close::before { z-index: -1; }
.tkbg--close {
  left: 50%; bottom: 0;
  width: 100%; min-width: 1600px;
  height: 320px;
  transform: translateX(-50%);
  -webkit-mask-image: radial-gradient(ellipse 40% 130% at 50% 0%, transparent 44%, #000 84%);
  mask-image: radial-gradient(ellipse 40% 130% at 50% 0%, transparent 44%, #000 84%);
}
.tkbg--close .e { fill: var(--tk-ink-e); }
.tkbg--close .f { fill: var(--tk-ink-f); }
.tkbg--close .a { opacity: 0.85; }
/* a few amber tokens light and fade, slowly; off under reduced motion */
@keyframes tk-live { 0%, 100% { opacity: 0.3; } 50% { opacity: 0.95; } }
.tkbg .l0, .tkbg .l1, .tkbg .l2, .tkbg .l3, .tkbg .l4 { animation: tk-live 7s ease-in-out infinite; }
.tkbg .l1 { animation-delay: -1.4s; animation-duration: 8s; }
.tkbg .l2 { animation-delay: -2.9s; animation-duration: 6.5s; }
.tkbg .l3 { animation-delay: -4.1s; animation-duration: 9s; }
.tkbg .l4 { animation-delay: -5.6s; animation-duration: 7.5s; }
@media (prefers-reduced-motion: reduce) { .tkbg rect { animation: none !important; } }
@media (max-width: 640px) {
  .tkbg--hero { width: 190px; height: min(100%, 190px); opacity: 0.8; }
  /* phones: the text column is the full width, so the field keeps to the floor */
  .tkbg--close { min-width: 1000px; height: 180px;
    -webkit-mask-image: linear-gradient(to top, #000 30%, transparent 78%);
    mask-image: linear-gradient(to top, #000 30%, transparent 78%); }
}

/* ═══ 0936 · ZB Cloud hero: the Cloud Router panel (src/partials/cloud-hero.html) ═══
 * All classes .zbm-ch*. Starting point: the 0931 .zbm-cb panel (off-white shell,
 * white inner cards, amber wash on the running lane). States are set by the
 * partial's script: checks .is-on/.is-ok, lanes [data-s] = "" | dim | run | move | start. */

.zbm-ch { position: relative; min-width: 0; margin: 0; }
.zbm-ch__panel {
  position: relative;
  padding: 22px 22px 18px;
  background: var(--color-bg-alt);
  border: 1px solid var(--color-line);
  border-radius: var(--zbm-r, 14px);
  box-shadow: var(--zbm-shadow);
}
.zbm-ch.is-live .zbm-ch__panel { cursor: pointer; }
.zbm-ch__screen { display: block; }

/* bar */
.zbm-ch__bar { display: flex; align-items: center; gap: 8px; padding-right: 40px; margin-bottom: 16px; min-height: 28px; }
.zbm-ch__crumb { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.06em; color: var(--color-muted); }
.zbm-ch__title { font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 500; font-size: 18px; letter-spacing: -0.01em; color: var(--color-heading); }
.zbm-ch__status {
  margin-left: auto; display: inline-flex; align-items: center; gap: 7px; flex: none;
  padding: 4px 10px 4px 9px; border: 1px solid var(--color-line); border-radius: 999px; background: #fff;
  font-family: var(--zbm-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted);
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}
.zbm-ch__status i { width: 7px; height: 7px; border-radius: 50%; background: var(--color-faint); flex: none; }
.zbm-ch__status[data-k="run"] { color: var(--color-amber); border-color: var(--zbm-amber-wash-2, #f6e6c8); }
.zbm-ch__status[data-k="run"] i { background: var(--color-amber-bright); box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.18); }
.zbm-ch__status[data-k="alert"] { color: var(--zbm-amber-ink, #8a3f06); background: var(--color-amber-wash); border-color: var(--zbm-amber-wash-2, #f6e6c8); }
.zbm-ch__status[data-k="alert"] i { background: var(--color-amber-bright); animation: zbm-ch-pulse 1s ease-in-out infinite; }
.zbm-ch__ctl {
  position: absolute; top: 20px; right: 20px; width: 30px; height: 30px; padding: 0;
  display: grid; place-items: center; border: 1px solid var(--color-line); border-radius: 50%;
  background: #fff; color: var(--color-muted); cursor: pointer;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.zbm-ch__ctl:hover, .zbm-ch__ctl:focus-visible { color: var(--color-heading); border-color: var(--color-line-strong); }
.zbm-ch__ctl:focus-visible { outline: 2px solid var(--color-amber); outline-offset: 2px; }
.zbm-ch__ctl svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.zbm-ch__play { display: none; }
.zbm-ch.is-paused .zbm-ch__pause { display: none; }
.zbm-ch.is-paused .zbm-ch__play { display: block; fill: currentColor; }

/* job card */
.zbm-ch__job { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; column-gap: 12px; row-gap: 12px; padding: 16px 16px 15px; background: #fff; border: 1px solid var(--color-line); border-radius: 10px; }
.zbm-ch__lbl { font-family: var(--zbm-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); }
.zbm-ch__name { font-family: var(--zbm-mono); font-size: 13.5px; font-weight: 500; color: var(--color-heading); overflow-wrap: anywhere; }
.zbm-ch__chips { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 6px; min-height: 56px; margin: 0; padding: 0; list-style: none; } /* two rows reserved: the panel keeps its height when the job changes */
.zbm-ch__chips li {
  padding: 4px 8px; border: 1px solid var(--color-line); border-radius: 6px; background: var(--color-surface-soft);
  font-family: var(--zbm-mono); font-size: 11px; line-height: 1.3; color: var(--color-text); white-space: nowrap;
  transition: border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}
.zbm-ch__chips li.is-hot { border-color: var(--color-amber-bright); background: var(--color-amber-wash); color: var(--zbm-amber-ink, #8a3f06); }
.zbm-ch__job.is-swap { animation: zbm-ch-swap 0.55s var(--zbm-ease) both; }

/* checks */
.zbm-ch__checks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.zbm-ch__checks li {
  position: relative; display: flex; flex-direction: column; gap: 4px; padding: 13px 12px 12px;
  background: #fff; border: 1px solid var(--color-line); border-radius: 8px;
  transition: border-color 0.35s ease, box-shadow 0.35s ease;
}
.zbm-ch__ico { width: 19px; height: 19px; margin-bottom: 6px; fill: none; stroke: var(--color-muted); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; transition: stroke 0.3s ease; }
.zbm-ch__cname { font-size: 13.5px; font-weight: 600; line-height: 1.25; color: var(--color-heading); }
.zbm-ch__cdesc { font-size: 11.5px; line-height: 1.35; color: var(--color-muted); }
.zbm-ch__mark {
  position: absolute; top: 11px; right: 11px; width: 16px; height: 16px; border-radius: 50%;
  border: 1.5px solid var(--color-line-strong); background: #fff; display: grid; place-items: center;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}
.zbm-ch__mark svg { width: 12px; height: 12px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transform: scale(0.6); transition: opacity 0.25s ease, transform 0.35s var(--zbm-ease); }
.zbm-ch__checks li.is-on { border-color: var(--color-amber-bright); box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.12); }
.zbm-ch__checks li.is-on .zbm-ch__ico { stroke: var(--color-heading); }
.zbm-ch__checks li.is-on .zbm-ch__mark { border-color: var(--color-amber-bright); animation: zbm-ch-pulse 0.9s ease-in-out infinite; }
.zbm-ch__checks li.is-ok { border-color: var(--zbm-amber-wash-2, #f6e6c8); }
.zbm-ch__checks li.is-ok .zbm-ch__ico { stroke: var(--color-heading); }
.zbm-ch__checks li.is-ok .zbm-ch__mark { background: var(--color-amber-bright); border-color: var(--color-amber-bright); }
.zbm-ch__checks li.is-ok .zbm-ch__mark svg { opacity: 1; transform: none; }

/* connector */
.zbm-ch__merge { display: block; width: 100%; height: 28px; overflow: visible; }
.zbm-ch__merge path { fill: none; stroke: #8a8a84; stroke-width: 1.25; vector-effect: non-scaling-stroke; }

/* lanes */
.zbm-ch__lanes { margin: 0; padding: 0; list-style: none; background: #fff; border: 1px solid var(--color-line); border-radius: 8px; overflow: hidden; }
.zbm-ch__lanes li {
  position: relative; display: grid; grid-template-columns: 9px minmax(0, 1fr) auto; grid-template-areas: "dot name tag" ". prov tag";
  align-items: center; column-gap: 12px; row-gap: 2px; min-height: 56px; padding: 9px 16px;
  transition: background-color 0.4s ease;
}
.zbm-ch__lanes li + li { border-top: 1px solid var(--color-line); }
.zbm-ch__lanes li::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--color-amber); transform: scaleY(0); transition: transform 0.4s var(--zbm-ease); }
.zbm-ch__lanes i { grid-area: dot; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid #8a8a84; transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease; }
.zbm-ch__lname { grid-area: name; font-size: 14.5px; line-height: 1.25; color: var(--color-text); transition: opacity 0.4s ease, color 0.3s ease; }
.zbm-ch__prov { grid-area: prov; font-family: var(--zbm-mono); font-size: 10.5px; line-height: 1.35; letter-spacing: 0.02em; color: var(--color-muted); transition: opacity 0.4s ease; }
.zbm-ch__tag { grid-area: tag; justify-self: end; text-align: right; max-width: 150px; font-family: var(--zbm-mono); font-size: 10px; font-weight: 500; line-height: 1.3; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-muted); }
.zbm-ch__tag:empty { display: none; }

.zbm-ch__lanes li[data-s="dim"] .zbm-ch__lname,
.zbm-ch__lanes li[data-s="dim"] .zbm-ch__prov,
.zbm-ch__lanes li[data-s="dim"] i { opacity: 0.38; }
.zbm-ch__lanes li[data-s="dim"] .zbm-ch__tag { font-weight: 400; letter-spacing: 0.06em; text-transform: none; font-size: 10.5px; }

.zbm-ch__lanes li[data-s="run"] { background: var(--color-amber-wash); }
.zbm-ch__lanes li[data-s="run"]::before { transform: none; }
.zbm-ch__lanes li[data-s="run"] .zbm-ch__lname { color: var(--color-heading); font-weight: 600; }
.zbm-ch__lanes li[data-s="run"] i { border-color: var(--color-amber); background: var(--color-amber-bright); box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.18); }
.zbm-ch__lanes li[data-s="run"] .zbm-ch__tag,
.zbm-ch__lanes li[data-s="start"] .zbm-ch__tag { color: var(--color-amber); }

.zbm-ch__lanes li[data-s="start"] { background: #fdf9f2; }
.zbm-ch__lanes li[data-s="start"] .zbm-ch__lname { color: var(--color-heading); }
.zbm-ch__lanes li[data-s="start"] i { border-color: var(--color-amber); animation: zbm-ch-pulse 0.8s ease-in-out infinite; }
.zbm-ch__lanes li[data-s="move"] .zbm-ch__lname { color: var(--color-heading); }
.zbm-ch__lanes li[data-s="move"] i { border-color: var(--color-amber); border-style: dashed; }
.zbm-ch__lanes li[data-s="move"] .zbm-ch__tag { color: var(--zbm-amber-ink, #8a3f06); }

/* footer: log line + the moment the job moves */
.zbm-ch__foot { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; margin-top: 13px; min-height: 20px; }
.zbm-ch__log { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.04em; color: var(--color-muted); }
.zbm-ch__log::before { content: "› "; color: var(--color-faint); }
.zbm-ch__note { font-size: 13px; font-weight: 500; line-height: 1.35; color: var(--zbm-amber-ink, #8a3f06); opacity: 0; transform: translateY(4px); transition: opacity 0.4s ease, transform 0.5s var(--zbm-ease); }
.zbm-ch__note.is-on { opacity: 1; transform: none; }

@keyframes zbm-ch-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.35); } 50% { box-shadow: 0 0 0 5px rgba(245, 158, 11, 0); } }
@keyframes zbm-ch-swap { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* without the script (and under reduced motion) the still is job 1 placed; the note stays out */
.zbm-ch:not(.is-live) .zbm-ch__note { display: none; }

@media (max-width: 960px) {
  .zbm-ch { max-width: 600px; }
}
@media (max-width: 560px) {
  .zbm-ch__panel { padding: 16px 14px 14px; }
  .zbm-ch__ctl { top: 14px; right: 12px; width: 28px; height: 28px; }
  .zbm-ch__bar { gap: 6px; padding-right: 36px; margin-bottom: 12px; }
  .zbm-ch__crumb { display: none; }
  .zbm-ch__title { font-size: 16.5px; }
  .zbm-ch__status { padding: 3px 8px 3px 7px; font-size: 9.5px; letter-spacing: 0.08em; }
  .zbm-ch__job { padding: 13px 12px 12px; row-gap: 10px; column-gap: 10px; }
  .zbm-ch__name { font-size: 12.5px; }
  .zbm-ch__chips { gap: 5px; min-height: 47px; }
  .zbm-ch__chips li { padding: 3px 6px; font-size: 10px; }
  .zbm-ch__checks { gap: 6px; }
  .zbm-ch__checks li { padding: 10px 8px 9px; }
  .zbm-ch__mark { top: 8px; right: 8px; width: 14px; height: 14px; }
  .zbm-ch__mark svg { width: 10px; height: 10px; }
  .zbm-ch__ico { width: 17px; height: 17px; margin-bottom: 4px; }
  .zbm-ch__cname { font-size: 12.5px; }
  .zbm-ch__cdesc { font-size: 10.5px; }
  .zbm-ch__merge { height: 20px; }
  .zbm-ch__lanes li { column-gap: 10px; min-height: 52px; padding: 8px 12px; }
  .zbm-ch__lname { font-size: 13.5px; }
  .zbm-ch__prov { font-size: 9.5px; letter-spacing: 0; }
  .zbm-ch__tag { max-width: 92px; font-size: 9px; letter-spacing: 0.06em; }
  .zbm-ch__lanes li[data-s="dim"] .zbm-ch__tag { font-size: 9.5px; letter-spacing: 0; }
  .zbm-ch__note { font-size: 12.5px; }
}

@media (prefers-reduced-motion: reduce) {
  .zbm-ch *, .zbm-ch *::before { animation: none !important; transition: none !important; }
}

/* ═══ 0939 · /model-router (src/pages/model-router.html) ═══
 * 1. Hero: the home Model Router animation (partials/router-anim.html, .zbr-*)
 *    sits under the headline, full width, with one mono line beneath it.
 * 2. The flow diagram (.zbm-mrflow): two inline SVGs, desktop and phone.
 *    Classes inside the SVG are mr-*. Amber is the only accent: the step
 *    numbers, the Check node, the pass label, the fail loop and the pulse.
 * 3. The six step cards, the worked-example table, the three-price bars, the
 *    board table, the five ideas, the rules file. */

/* ── 1 · Hero ──────────────────────────────────────────────────────────── */
.zbm-mr-hero { padding-bottom: 96px; }
.zbm-mr-art { width: 100%; margin-top: 64px; }
.zbm-mr-art .zbr { display: block; }
.zbm-mr-art .zbr__card { border-radius: var(--zbm-r-lg); box-shadow: var(--zbm-shadow-lg), 0 0 0 1px var(--color-line); border-color: transparent; }
.zbm-mr-art__line {
  margin: 18px 0 0;
  font-family: var(--zbm-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-muted);
  text-align: center;
}
.zbm-mr-art__line::before { content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 10px 1px 0; border-radius: 50%; background: var(--color-amber-bright); vertical-align: middle; }

/* ── 2 · The flow diagram ──────────────────────────────────────────────── */
.zbm-mrflow {
  position: relative;
  margin: 64px 0 0;
  padding: 28px 28px 22px;
  background:
    radial-gradient(var(--t-dot) 0.8px, transparent 1.2px) 0 0 / 22px 22px,
    #fff;
  border: 1px solid var(--color-line-strong);
  border-radius: var(--zbm-r-lg);
  box-shadow: var(--zbm-shadow);
}
.zbm-mrflow::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: radial-gradient(ellipse at 50% 50%, transparent 55%, rgba(255, 255, 255, 0.7) 100%); }
.zbm-mrflow svg { position: relative; display: block; width: 100%; height: auto; overflow: visible; font-family: var(--zbm-mono); }
.zbm-mrflow .zbm-mrflow__m { display: none; max-width: 400px; margin: 0 auto; }
.zbm-mrflow .zbm-cap { position: relative; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--color-line); }

/* strokes: hairlines, never scaled */
.mr-main path, .mr-in path, .mr-fb, .mr-fail, .mr-node rect { fill: none; vector-effect: non-scaling-stroke; }
.mr-main path { stroke: #8a8a84; stroke-width: 1.25; }
.mr-in path { stroke: #a1a19b; stroke-width: 1; }
.mr-fb { stroke: #a1a19b; stroke-width: 1; stroke-dasharray: 2 4; stroke-linecap: round; }
.mr-fail { stroke: var(--color-amber-bright); stroke-width: 1.5; stroke-dasharray: 4 4; animation: mr-march 1.2s linear infinite; }
.mr-ah { fill: none; stroke: #8a8a84; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.mr-ah--am { stroke: var(--color-amber-bright); }
.mr-ah--th { stroke: #a1a19b; stroke-width: 1.2; }

/* the pulse: one amber dash that travels the main line under the nodes */
.mr-pulse { fill: none; stroke: var(--color-amber-bright); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 36 1000; stroke-dashoffset: 36; opacity: 0.9; animation: mr-pulse 6.5s linear infinite; }
@keyframes mr-pulse { from { stroke-dashoffset: 36; } to { stroke-dashoffset: -1000; } }
@keyframes mr-march { to { stroke-dashoffset: -16; } }

/* nodes */
.mr-node rect { fill: #fff; stroke: var(--color-line-strong); stroke-width: 1.25; }
.mr-node text { font-size: 12.5px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; fill: var(--color-heading); }
.mr-node .mr-n { fill: var(--color-amber); font-weight: 600; }
.mr-node--end rect { fill: var(--color-bg-alt); stroke-dasharray: 3 3; }
.mr-node--end text { fill: var(--color-muted); font-weight: 500; letter-spacing: 0.12em; }
.mr-node--check rect { stroke: var(--color-amber-bright); stroke-width: 1.5; }

/* labels */
.mr-t { font-size: 10.5px; font-weight: 500; letter-spacing: 0.06em; fill: var(--color-muted); }
.mr-t--am { fill: var(--color-amber); }
.mr-t--fb { fill: var(--color-faint); font-style: italic; letter-spacing: 0.04em; }
.mr-in text { font-size: 10.5px; letter-spacing: 0.04em; fill: var(--color-text); }

/* the six step cards: two rows of three */
.zbm-mr-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px 40px; margin-top: 56px; }
.zbm-mr-steps h3 { font-size: 24px; }
.zbm-mr-steps p { max-width: 38ch; font-size: 15.5px; }
.zbm-mr-steps .zbm-label { color: var(--color-muted); }

/* ── 3 · Example table ─────────────────────────────────────────────────── */
.zbm-mr-table th:nth-child(2), .zbm-mr-table td:nth-child(2) { white-space: nowrap; }
.zbm-mr-table th:last-child, .zbm-mr-table td:last-child { text-align: right; padding-right: 14px; }
.zbm-mr-cost { font-family: var(--zbm-mono); font-size: 13.5px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.zbm-mr-table .zbm-chip { font-family: var(--zbm-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.zbm-mr-table tr.is-pick td:first-child { color: var(--color-amber); }
.zbm-mr-table tfoot td { border-bottom: 0; padding-top: 16px; font-weight: 600; color: var(--color-heading); }
.zbm-mr-table tfoot .zbm-mr-cost { font-size: 16px; color: var(--color-amber); }

/* ── 4 · Three prices ──────────────────────────────────────────────────── */
.zbm-mr-prices { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: var(--zbm-gap); align-items: end; margin-top: 64px; }
.zbm-mr-prices .zbm-costp { padding: 10px 36px 30px; }
.zbm-mr-prices__note { margin: 0 0 8px; max-width: 42ch; font-size: 15px; line-height: 1.65; color: var(--color-muted); }

/* ── 5 · The board ─────────────────────────────────────────────────────── */
.zbm-mr-board { display: block; width: 100%; margin-top: 56px; border-collapse: collapse; }
.zbm-mr-board tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; }
.zbm-mr-board tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; }
.zbm-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.zbm-mr-board__cap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; }
.zbm-mr-board__h { display: flex; justify-content: space-between; gap: 16px; padding: 0 0 12px; border-bottom: 1px solid var(--color-line-strong); }
.zbm-mr-board__h i { font-style: normal; font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted); }
.zbm-mr-board tbody th { padding: 14px 20px 14px 0; border-bottom: 1px solid var(--color-line); text-align: left; font-weight: 400; font-size: 15.5px; color: var(--color-text); }
.zbm-mr-board tbody td { padding: 14px 0; border-bottom: 1px solid var(--color-line); text-align: right; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: 21px; letter-spacing: -0.012em; color: var(--color-heading); white-space: nowrap; }
.zbm-mr-board tbody td::before { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 12px 3px 0; border-radius: 50%; background: var(--color-amber-bright); }
.zbm-mr-behind { max-width: 720px; }
.zbm-mr-behind__k { font-family: var(--zbm-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-amber); margin-right: 6px; }

/* ── 6 · Five ideas ────────────────────────────────────────────────────── */
.zbm-mr-prims { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 32px; margin-top: 56px; border-top: 0; }
.zbm-mr-prims > div { padding: 24px 0 0; border-top: 1px solid var(--color-line-strong); border-bottom: 0; }
.zbm-mr-prims dt { font-size: 24px; }
.zbm-mr-prims dd { margin-left: 0; font-size: 15.5px; }

/* ── 7 · Rules ─────────────────────────────────────────────────────────── */
.zbm-mr-rules { align-items: center; }
.zbm-mr-rules .zbm-code pre { font-size: 12.5px; }

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
  .zbm-mr-prims { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 32px; }
}
@media (max-width: 960px) {
  .zbm-mrflow .zbm-mrflow__d { display: none; }
  .zbm-mrflow .zbm-mrflow__m { display: block; }
  .zbm-mrflow { padding: 24px 20px 18px; }
  .zbm-mr-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 32px; }
  .zbm-mr-prices { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .zbm-mr-prices__note { max-width: 60ch; }
  .zbm-mr-prims { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .zbm-mr-board { margin-top: 40px; }
  .zbm-mr-board tbody, .zbm-mr-board__cap { grid-template-columns: minmax(0, 1fr); }
  .zbm-mr-board__h--2 { display: none; }
  .zbm-mr-board tbody th { font-size: 15px; }
  .zbm-mr-board tbody td { font-size: 19px; }
}
@media (max-width: 640px) {
  .zbm-mr-hero { padding-bottom: 64px; }
  .zbm-mr-art { margin-top: 44px; }
  .zbm-mr-art__line { font-size: 10px; letter-spacing: 0.08em; }
  .zbm-mrflow { margin-top: 44px; padding: 18px 14px 14px; }
  .zbm-mr-steps { grid-template-columns: minmax(0, 1fr); gap: 32px; margin-top: 44px; }
  .zbm-mr-steps h3 { font-size: 22px; }
  .zbm-mr-steps p { max-width: none; }
  .zbm-mr-table td:last-child { text-align: left; padding-right: 0; }
  .zbm-mr-table tr td:nth-child(2), .zbm-mr-table th:nth-child(2) { white-space: normal; }
  .zbm-mr-table tfoot tr { padding: 14px 14px 12px; border-bottom: 0; }
  .zbm-mr-table tfoot td { padding-top: 0; }
  .zbm-mr-prices { margin-top: 44px; }
  .zbm-mr-prices .zbm-costp { padding: 6px 20px 22px; }
  .zbm-mr-prims { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 40px; }
  .zbm-mr-prims > div { padding: 20px 0 22px; border-bottom: 0; }
  .zbm-mr-prims dt { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .mr-pulse { animation: none; stroke-dashoffset: -520; opacity: 0.8; }
  .mr-fail { animation: none; }
}

/* ══════════════════════════════════════════════════════════════════════
   0945 · Maestro home page (17 Oct 2026). Loaded last. Everything new on
   the page lives here; the rest of the site's CSS is untouched.
   ══════════════════════════════════════════════════════════════════════ */

/* ── hero: kicker centred over the name; the amber line is the claim ── */
.zbm-hero--maestro .zbm-kicker { justify-content: center; margin-bottom: 22px; }
.zbm-hero--maestro .zbm-kicker::before { display: none; }
.zbm-hero--maestro .zbm-h1 .zbm-hero__mixture { font-size: 0.4em; max-width: 14em; text-wrap: balance; }
.zbm-hero--maestro .zbm-hero__sub { margin-top: 30px; max-width: 680px; color: var(--color-heading); font-size: clamp(18px, 1rem + 0.45vw, 22px); text-wrap: pretty; }
.zbm-hero--maestro .zbm-hero__cta { margin-top: 40px; }
.zbm-hero--maestro .zbm-hero__media { max-width: 1120px; margin-left: auto; margin-right: auto; }

/* ── the preview-only VERIFY chip (strip before release) ── */
.zbm-verify { display: inline-block; vertical-align: 0.15em; margin: 0 6px 0 4px; padding: 1px 7px; border: 1px solid #F1DFC2; border-radius: 4px; background: var(--color-wash, #FBF4E8); font-family: var(--zbm-mono); font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-amber); cursor: help; }

/* ── a smaller serif heading inside a section ── */
.zbm-h3 { font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 430; font-size: clamp(26px, 1.1rem + 1.4vw, 38px); line-height: 1.12; letter-spacing: -0.025em; color: var(--color-heading); text-wrap: balance; }
.zbm-h3 .zbm-num { font-size: 1.35em; line-height: 0.9; }

/* ── why: the models board under the prose ── */
.zbm-models__head--inner { margin-top: 72px; padding-top: 40px; border-top: 1px solid var(--color-line); }
.zbm-models__head--inner .zbm-label { margin-bottom: 14px; }
.zbm-models__head--inner .zbm-lede { font-size: 17px; color: var(--color-muted); }
#why .zbm-board { margin-top: 36px; background-color: #fff; }

/* ── maestro: "Give Maestro a task" + the example grid ── */
.zbm-give { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: var(--zbm-gap); align-items: start; margin-top: 72px; padding-top: 48px; border-top: 1px solid var(--color-line); }
.zbm-give__copy .zbm-h3 { max-width: 10em; }
.zbm-prose-line { margin-top: 18px; max-width: 420px; font-size: 17.5px; line-height: 1.6; color: var(--color-text); }
.zbm-mx { margin: 0; border: 1px solid var(--color-line-strong); border-radius: var(--zbm-r-lg, 14px); background: #fff; overflow: hidden; box-shadow: var(--zbm-shadow, 0 1px 2px rgba(20,20,20,.04)); }
.zbm-mx__cap { display: flex; align-items: center; gap: 12px; padding: 16px 22px; font-size: 15px; color: var(--color-muted); border-bottom: 1px solid var(--color-line); }
.zbm-mx__eg { flex: 0 0 auto; font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-amber); border: 1px solid currentColor; border-radius: 4px; padding: 2px 8px; }
.zbm-mx__head, .zbm-mx__row { display: grid; grid-template-columns: 1.3fr 1fr 1.3fr; gap: 20px; padding: 14px 22px; align-items: baseline; }
.zbm-mx__head { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted); border-bottom: 1px solid var(--color-line); }
.zbm-mx__row { font-size: 17px; line-height: 1.4; border-bottom: 1px solid var(--color-line); }
.zbm-mx__row:last-child { border-bottom: 0; }
.zbm-mx__row b { font-weight: 600; color: var(--color-amber); }
.zbm-mx__row span:nth-child(3) { color: var(--color-muted); }
.zbm-mx__row--sum { background: var(--color-bg-alt); }
.zbm-recap--four { margin-top: 56px; text-align: center; }
.zbm-recap--four .zbm-nw { display: inline-block; margin: 0 0.18em; }

/* ── what you get: three cards + a line ── */
.zbm-cards--get .zbm-card__who { display: inline-flex; align-items: center; gap: 8px; }
.zbm-cards--get .zbm-card__who .zbm-ico { width: 16px; height: 16px; color: var(--color-amber); }
.zbm-card__body { margin-top: 14px; font-size: 16px; line-height: 1.6; color: var(--color-muted); }
#get .zbm-recap { margin-top: 56px; max-width: 760px; }

/* ── smarter: the flywheel ── */
.zbm-split--smarter { align-items: center; }
.zbm-loop__in { position: relative; aspect-ratio: 1 / 1; max-width: 520px; margin: 0 auto; padding: 24px; background: #fff; border: 1px solid var(--color-line); border-radius: var(--zbm-r-lg, 14px); box-shadow: var(--zbm-shadow, 0 1px 2px rgba(20,20,20,.04)); overflow: visible; }
.zbm-loop__ring { position: absolute; inset: 24px; width: calc(100% - 48px); height: calc(100% - 48px); color: var(--color-amber); overflow: visible; }
.zbm-loop__track { fill: none; stroke: var(--color-line-strong); stroke-width: 1; }
.zbm-loop__arc { fill: none; stroke: currentColor; stroke-width: 1.6; }
.zbm-loop__dot { fill: none; stroke: var(--color-amber-bright); stroke-width: 6; stroke-linecap: round; stroke-dasharray: 0.01 100; transform: rotate(-90deg); transform-origin: 200px 200px; animation: zbm-loop-run 7s linear infinite; }
@keyframes zbm-loop-run { to { stroke-dashoffset: -100; } }
.zbm-loop__node { position: absolute; display: flex; flex-direction: column; align-items: center; gap: 3px; width: 164px; padding: 11px 14px; background: #fff; border: 1px solid var(--color-line-strong); border-radius: 10px; text-align: center; box-shadow: 0 1px 2px rgba(20,20,20,.05), 0 8px 20px -12px rgba(20,20,20,.25); }
.zbm-loop__node b { font-family: var(--zbm-serif); font-weight: 500; font-size: 17px; line-height: 1.15; color: var(--color-heading); }
.zbm-loop__node small { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.06em; color: var(--color-muted); }
.zbm-loop__ring { inset: 64px; width: calc(100% - 128px); height: calc(100% - 128px); }
.zbm-loop__node--1 { left: 50%; top: calc(50% - 37.7%); transform: translate(-50%, -50%); }
.zbm-loop__node--2 { left: calc(50% + 32.6%); top: calc(50% + 18.8%); transform: translate(-50%, -50%); width: 150px; }
.zbm-loop__node--3 { left: calc(50% - 32.6%); top: calc(50% + 18.8%); transform: translate(-50%, -50%); width: 150px; }
.zbm-loop__hub { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; background: var(--zbm-ink, #141414); color: #fff; border-radius: 999px; font-family: var(--zbm-serif); font-size: 19px; font-weight: 500; letter-spacing: -0.01em; box-shadow: 0 10px 24px -12px rgba(20,20,20,.5); }
.zbm-loop__hub i { width: 8px; height: 8px; border-radius: 50%; background: var(--color-amber-bright); box-shadow: 0 0 0 0 rgba(245,158,11,.5); animation: zbm-loop-pulse 2.4s ease-out infinite; }
@keyframes zbm-loop-pulse { 0% { box-shadow: 0 0 0 0 rgba(245,158,11,.55); } 100% { box-shadow: 0 0 0 10px rgba(245,158,11,0); } }
@media (prefers-reduced-motion: reduce) { .zbm-loop__dot, .zbm-loop__hub i { animation: none; } }

/* ── one stack: the two parts under the rail ── */
.zbm-parts { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--zbm-gap); margin-top: 64px; align-items: start; }
.zbm-part .zbm-visual { margin: 0; }
.zbm-part__line { margin-top: 22px; max-width: 480px; font-size: 17px; line-height: 1.6; color: var(--color-text); }
.zbm-part .zbm-link { margin-top: 14px; }
#stack .zbm-recap { margin-top: 64px; }
#stack .zbm-rail { margin-top: 48px; }
#stack .zbm-rail .zbm-rail__item { background: transparent; }
.zbm-parts .zbm-cb { background: #fff; }
@media (min-width: 641px) {
  .zbm-parts .zbm-win__main { grid-template-columns: 118px minmax(0, 1fr); }
  .zbm-parts .zbm-tasks { grid-template-columns: minmax(0, 1fr); margin-left: 0; }
  .zbm-parts .zbm-win__feed { padding: 16px 16px 14px; }
}

/* ── phones ── */
@media (max-width: 960px) {
  .zbm-ex { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .zbm-give { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .zbm-parts { grid-template-columns: minmax(0, 1fr); gap: 48px; }
}
@media (max-width: 760px) {
  .zbm-hero--maestro .zbm-h1 .zbm-hero__mixture { font-size: 0.5em; }
  .zbm-mx__head { display: none; }
  .zbm-mx__row { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 14px 18px; }
  .zbm-mx__row span:nth-child(2)::before { content: "Goes to "; color: var(--color-muted); font-weight: 400; }
  .zbm-recap--four { text-align: left; }
  .zbm-loop__node { width: 128px; padding: 9px 10px; }
  .zbm-loop__node b { font-size: 14.5px; }
  .zbm-loop__node small { display: none; }
  .zbm-loop__node--2, .zbm-loop__node--3 { width: 112px; }
  .zbm-loop__ring { inset: 48px; width: calc(100% - 96px); height: calc(100% - 96px); }
  .zbm-loop__node--1 { top: calc(50% - 38%); }
  .zbm-loop__node--2 { left: calc(50% + 33%); top: calc(50% + 19%); }
  .zbm-loop__node--3 { left: calc(50% - 33%); top: calc(50% + 19%); }
  .zbm-loop__hub { font-size: 16px; padding: 8px 14px; }
}

/* 0946 · the scale line in the close (one of the four additions) */
.zbm-close__scale { margin-top: 34px; max-width: 760px; font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 450; font-size: clamp(22px, 1rem + 1.4vw, 32px); line-height: 1.2; letter-spacing: -0.015em; color: var(--zbm-paper); }
.zbm-close .zbm-verify { border-color: #5a5a55; background: transparent; color: #f6c15c; }
.zbm-close__sub { margin-top: 22px; }
/* 0946 · the contrast band on /model-router */
.zbm-mr-diff .zbm-h2 { max-width: 15em; }
.zbm-mr-diff .zbm-lede { max-width: 640px; }
@media (max-width: 640px) { .zbm-close__scale { font-size: 21px; } }

/* ══════════════════════════════════════════════════════════════════════
   0947 · the standalone /maestro page (17 Oct 2026). Loaded after
   maestro.css. Every rule is scoped to a .zbm-mp-* class or a #section on
   body[data-page="maestro"]; nothing else on the site changes.
   ══════════════════════════════════════════════════════════════════════ */

/* ── hero: copy left, the "one task, two choices" card right ── */
.zbm-split--mp { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.zbm-mp-hero .zbm-h1 { max-width: 12ch; }
.zbm-mp-hero .zbm-hero__sub { max-width: 560px; }

.zbm-mp-pick { margin: 0; background: #fff; border: 1px solid var(--color-line-strong); border-radius: var(--zbm-r-lg, 14px); box-shadow: 0 1px 2px rgba(20,20,20,.04), 0 24px 48px -32px rgba(20,20,20,.28); overflow: hidden; }
.zbm-mp-pick__bar { display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-bottom: 1px solid var(--color-line); font-family: var(--zbm-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-muted); }
.zbm-mp-pick__task { display: flex; flex-direction: column; gap: 6px; margin: 20px 20px 0; padding: 16px 18px; border: 1px solid var(--color-line); border-radius: 10px; background: var(--color-bg-alt); }
.zbm-mp-pick__k { font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-amber); }
.zbm-mp-pick__task b { font-family: var(--zbm-serif); font-weight: 480; font-size: 21px; line-height: 1.2; letter-spacing: -0.01em; color: var(--color-heading); }
.zbm-mp-pick__meta { font-size: 14px; color: var(--color-muted); }
.zbm-mp-pick__hub { position: relative; display: flex; justify-content: center; padding: 22px 0; }
.zbm-mp-pick__hub::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: var(--color-line-strong); }
.zbm-mp-pick__hub span { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 999px; background: var(--zbm-ink, #141414); color: #fff; font-family: var(--zbm-serif); font-size: 18px; font-weight: 500; box-shadow: 0 10px 24px -12px rgba(20,20,20,.5); }
.zbm-mp-pick__hub i { width: 8px; height: 8px; border-radius: 50%; background: var(--color-amber-bright); animation: zbm-loop-pulse 2.4s ease-out infinite; }
.zbm-mp-pick__cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; padding: 0 20px 20px; }
.zbm-mp-pick__col { border-top: 1px solid var(--color-line-strong); padding-top: 14px; }
.zbm-mp-pick__q { margin: 0 0 10px; font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-heading); }
.zbm-mp-pick__col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.zbm-mp-pick__col li { display: flex; flex-direction: column; gap: 1px; padding: 8px 11px; border: 1px solid var(--color-line); border-radius: 8px; color: var(--color-faint); }
.zbm-mp-pick__col li b { font-weight: 600; font-size: 14.5px; color: var(--color-muted); }
.zbm-mp-pick__col li small { font-size: 12.5px; }
.zbm-mp-pick__col li.is-pick { border-color: var(--color-amber); background: var(--color-amber-wash); color: var(--color-amber); box-shadow: 0 0 0 1px var(--color-amber) inset; }
.zbm-mp-pick__col li.is-pick b { color: var(--color-heading); }
.zbm-mp-pick__col li.is-pick b::after { content: " ✓"; color: var(--color-amber); }

/* ── what it is: three facts under the prose ── */
.zbm-mp-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 72px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--color-line); }
.zbm-mp-facts li { padding: 28px 32px 4px 0; }
.zbm-mp-facts li + li { padding-left: 32px; border-left: 1px solid var(--color-line); }
.zbm-mp-facts .zbm-card__who { display: inline-flex; align-items: center; gap: 8px; }
.zbm-mp-facts .zbm-card__who .zbm-ico { width: 16px; height: 16px; }
.zbm-mp-facts p { margin-top: 14px; font-family: var(--zbm-serif); font-size: 22px; line-height: 1.3; letter-spacing: -0.01em; color: var(--color-heading); text-wrap: pretty; }
.zbm-mp-facts .zbm-num { font-size: 1.3em; color: var(--color-amber); }

/* ── two choices ── */
.zbm-mp-two { margin-top: 56px; background: #fff; }
.zbm-mp-two .zbm-card { padding: 40px 42px 38px; }
.zbm-mp-two .zbm-card__who { display: inline-flex; align-items: center; gap: 8px; }
.zbm-mp-two .zbm-card__head { margin-top: 18px; font-size: clamp(26px, 1rem + 1.2vw, 34px); }
.zbm-mp-two .zbm-card__body { font-size: 17px; color: var(--color-text); }
#choices .zbm-recap { margin-top: 48px; }

/* ── what it weighs: four ── */
.zbm-mp-four { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 56px 0 0; padding: 0; list-style: none; border: 1px solid var(--color-line); border-radius: var(--zbm-r); background: #fff; overflow: hidden; }
.zbm-mp-four li { padding: 30px 28px 32px; }
.zbm-mp-four li + li { border-left: 1px solid var(--color-line); }
.zbm-mp-four__ico { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 10px; background: var(--color-amber-wash); color: var(--color-amber); }
.zbm-mp-four__ico .zbm-ico { width: 20px; height: 20px; }
.zbm-mp-four h3 { margin-top: 20px; font-family: var(--zbm-serif); font-weight: 450; font-size: 26px; letter-spacing: -0.02em; color: var(--color-heading); }
.zbm-mp-four p { margin-top: 10px; font-size: 16px; line-height: 1.6; color: var(--color-text); }
.zbm-mp-rules { margin-top: 32px; max-width: 760px; font-size: 16.5px; line-height: 1.6; color: var(--color-muted); }
.zbm-mp-rules .zbm-link { display: flex; width: max-content; margin: 14px 0 0; padding-top: 0; }

/* ── follow one task: five steps + the two-price bar ── */
.zbm-mp-steps p { font-size: 15.5px; line-height: 1.6; }
.zbm-mp-steps .zbm-label { display: inline-flex; align-items: center; gap: 8px; color: var(--color-amber); }
.zbm-mp-task { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 40px; align-items: center; margin-top: 56px; }
.zbm-mp-task__note { font-size: 14.5px; line-height: 1.6; color: var(--color-muted); }
.zbm-mp-task__note a { color: var(--color-amber); text-decoration: underline; text-underline-offset: 3px; }

/* ── smarter every day ── */
.zbm-mp-when { margin-top: 56px; background: #fff; }
.zbm-mp-when .zbm-card__who { display: inline-flex; align-items: center; gap: 8px; }
.zbm-mp-when .zbm-card__head { margin-top: 16px; }
#learns .zbm-recap { margin-top: 48px; max-width: 760px; }

/* ── who sends it tasks: three across ── */
.zbm-for--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zbm-for--3 .zbm-for__card:nth-child(n + 3) { border-top: 0; }
.zbm-for--3 .zbm-for__card + .zbm-for__card { border-left: 1px solid var(--color-line); }

/* ── proof ── */
.zbm-mp-store { margin-top: 48px; max-width: 880px; }

/* ── tablets and phones ── */
@media (max-width: 1100px) {
  .zbm-mp-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zbm-mp-four li:nth-child(3) { border-left: 0; }
  .zbm-mp-four li:nth-child(n + 3) { border-top: 1px solid var(--color-line); }
  .zbm-steps--5.zbm-mp-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .zbm-split--mp { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .zbm-mp-pick { max-width: 560px; }
  .zbm-mp-facts { grid-template-columns: minmax(0, 1fr); }
  .zbm-mp-facts li, .zbm-mp-facts li + li { padding: 24px 0 20px; border-left: 0; }
  .zbm-mp-facts li + li { border-top: 1px solid var(--color-line); }
  .zbm-mp-task { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .zbm-for--3 { grid-template-columns: minmax(0, 1fr); }
  .zbm-for--3 .zbm-for__card + .zbm-for__card { border-left: 0; border-top: 1px solid var(--color-line); }
}
@media (max-width: 640px) {
  .zbm-mp-four { grid-template-columns: minmax(0, 1fr); }
  .zbm-mp-four li + li { border-left: 0; border-top: 1px solid var(--color-line); }
  .zbm-steps--5.zbm-mp-steps { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .zbm-mp-two .zbm-card { padding: 28px 24px; }
  .zbm-mp-pick__task { margin: 16px 14px 0; }
  .zbm-mp-pick__cols { padding: 0 14px 14px; gap: 10px; }
  .zbm-mp-pick__col li { padding: 7px 9px; }
  .zbm-mp-pick__col li b { font-size: 13.5px; }
  .zbm-mp-pick__col li small { font-size: 11.5px; }
  .zbm-mp-facts p { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) { .zbm-mp-pick__hub i { animation: none; } }

/* ══════════════════════════════════════════════════════════════════════
   0951 · "Give Maestro a task." flow figure on /maestro (19 Oct 2026).
   Band #flow sits between the hero and #what. The SVG is the figure from
   output/maestro-flow-visual-2026-10-19/, classes prefixed zbm-flow-*.
   ══════════════════════════════════════════════════════════════════════ */
.zbm-mp-flow { margin: 56px 0 0; }
.zbm-mp-flow__card { border: 1px solid var(--color-line-strong); border-radius: var(--zbm-r-lg, 14px); background: #fff; box-shadow: var(--zbm-shadow, 0 1px 2px rgba(20,20,20,.04)); padding: 28px 24px 20px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.zbm-flow__svg { display: block; width: 100%; min-width: 940px; height: auto; color: var(--color-heading); }
.zbm-mp-flow .zbm-cap { margin-top: 14px; }
#flow .zbm-recap { margin-top: 40px; }
@media (max-width: 720px) { .zbm-mp-flow { margin-top: 40px; } .zbm-mp-flow__card { padding: 16px 12px 12px; border-radius: 10px; } }
@media (prefers-reduced-motion: no-preference) {
  .zbm-flow-pulse { animation: zbm-flow-pulse 2.4s ease-out infinite; transform-origin: center; transform-box: fill-box; }
  @keyframes zbm-flow-pulse { 0% { opacity: 1; transform: scale(1); } 70% { opacity: 0; transform: scale(3); } 100% { opacity: 0; transform: scale(3); } }
}
.zbm-flow-card { fill: #ffffff; stroke: var(--color-line-strong); stroke-width: 1; }
.zbm-flow-card-out { fill: var(--color-amber-wash); stroke: var(--color-amber); stroke-width: 1; }
.zbm-flow-task { fill: var(--color-bg-alt); stroke: var(--color-line-strong); stroke-width: 1; }
.zbm-flow-hub { fill: var(--zbm-ink, #141414); }
.zbm-flow-hub-t { fill: #ffffff; font-family: var(--zbm-serif); font-size: 24px; font-weight: 500; letter-spacing: -0.01em; }
.zbm-flow-hub-s { fill: #b8b8b2; font-size: 11.5px; }
.zbm-flow-dot { fill: var(--color-amber-bright); }
.zbm-flow-spine { stroke: var(--color-heading); stroke-width: 1.4; fill: none; }
.zbm-flow-rail { stroke: var(--color-amber); stroke-width: 1.4; fill: none; }
.zbm-flow-loop { stroke: var(--color-heading); stroke-width: 1.4; fill: none; }
.zbm-flow-learn { stroke: var(--color-amber); stroke-width: 1.4; fill: none; stroke-dasharray: 5 4; }
.zbm-flow-tag { fill: var(--color-amber); font-family: var(--zbm-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.12em; }
.zbm-flow-lbl { fill: var(--color-muted); font-family: var(--zbm-mono); font-size: 10px; letter-spacing: 0.1em; }
.zbm-flow-lbl-am { fill: var(--color-amber); font-family: var(--zbm-mono); font-size: 10.5px; letter-spacing: 0.1em; }
.zbm-flow-t { fill: var(--color-heading); font-family: var(--zbm-serif); font-size: 20px; font-weight: 500; letter-spacing: -0.01em; }
.zbm-flow-s { fill: var(--color-muted); font-size: 12px; }
.zbm-flow-m { fill: var(--color-amber); font-size: 13.5px; font-weight: 600; }
.zbm-flow-mw { fill: var(--color-muted); font-size: 11px; }
.zbm-flow-div { stroke: var(--color-line); stroke-width: 1; }
.zbm-flow-chk { fill: var(--color-amber-wash); stroke: var(--color-amber); stroke-width: 1; }
.zbm-flow-chk-m { stroke: var(--color-amber); stroke-width: 1.6; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.zbm-flow-pill { fill: #ffffff; stroke: var(--color-heading); stroke-width: 1.2; }
.zbm-flow-pill-t { fill: var(--color-heading); font-size: 12px; font-weight: 600; }
.zbm-flow-pill-s { fill: var(--color-muted); font-size: 11px; }
.zbm-flow-note { fill: var(--color-text); font-size: 12.5px; }
.zbm-flow-note-am { fill: var(--color-amber); font-size: 12.5px; font-weight: 500; }
.zbm-flow-q { fill: var(--color-heading); font-family: var(--zbm-serif); font-size: 17px; font-weight: 450; letter-spacing: -0.01em; }
.zbm-flow-arr-ink { fill: var(--color-heading); }
.zbm-flow-arr-am { fill: var(--color-amber); }

/* 0951b · the animated figure (partials/maestro-flow-anim.html) replaces the static SVG in #flow.
   The site gives every figure paper + a hairline; the zbf card draws its own, so undo that here. */
#flow .zbm-mp-flow .zbf { background: transparent; border: 0; padding: 0; box-shadow: none; margin: 0; }
#flow .zbm-mp-flow .zbf::before, #flow .zbm-mp-flow .zbf::after { display: none; }
#flow .zbm-mp-flow .zbf__card { padding-top: 22px; }

/* 0948: Who it is for, four cards on a tonal ramp (after Replit's platform row).
   Scoped to the home #for section so /maestro keeps the shared .zbm-for grid; loaded last by build.py. */
#for .zbm-for {
  background: none; border: 0; border-radius: 0; overflow: visible;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 64px;
}
#for .zbm-for__card {
  /* the ramp: card 1 is paper, card 4 is the full brand amber */
  --c-bg: #ffffff;
  --c-edge: var(--color-line);
  --c-ink: var(--color-amber);            /* line-art stroke + label */
  --c-dot: var(--color-amber-bright);     /* the moving accent */
  --c-node: #ffffff;                      /* node fill */
  --c-rule: var(--color-line-strong);     /* link underline */
  position: relative; border: 0;
  display: flex; flex-direction: column;
  min-height: 500px;
  padding: 24px 24px 26px;
  border-radius: var(--zbm-r-lg);
  background: var(--c-bg);
  color: var(--color-heading);
  box-shadow: inset 0 0 0 1px var(--c-edge);
  transition: transform 0.45s var(--zbm-ease), box-shadow 0.45s var(--zbm-ease);
}
#for .zbm-for__card:nth-child(2) { --c-bg: #fbf4e8; --c-edge: #f0e3cb; --c-node: #fffdf8; }
#for .zbm-for__card:nth-child(3) { --c-bg: #f7d497; --c-edge: #ecc27b; --c-node: #fff9ec; --c-rule: rgba(20, 20, 20, 0.3); }
#for .zbm-for__card:nth-child(4) { --c-bg: #f59e0b; --c-edge: #e3910a; --c-ink: #7a3804; --c-dot: #141414; --c-node: #fff6e4; --c-rule: rgba(20, 20, 20, 0.3); }
#for .zbm-for__card:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px var(--c-edge), 0 28px 44px -28px rgba(20, 20, 20, 0.32); }
#for .zbm-for__card:has(.zbm-for__link:focus-visible) { outline: 2px solid var(--color-amber); outline-offset: 3px; }

#for .zbm-for__who { font-family: var(--zbm-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-ink); }
#for .zbm-for__head {
  margin-top: 12px; min-height: calc(3 * 1.12em);
  font-family: var(--zbm-serif); font-optical-sizing: auto; font-weight: 440;
  font-size: 24px; line-height: 1.12; letter-spacing: -0.02em; color: var(--color-heading); text-wrap: balance;
}
#for .zbm-for__art { flex: 1; display: flex; align-items: center; justify-content: center; margin: 14px -6px 12px; min-height: 0; }
#for .zbm-for__art svg { width: 100%; height: auto; max-height: 100%; overflow: visible; }
#for .zbm-for__body { margin-top: auto; max-width: none; font-size: 14.5px; line-height: 1.55; color: var(--color-text); }
#for .zbm-for__link { align-self: flex-start; margin-top: 16px; font-size: 14px; color: var(--color-heading); border-color: var(--c-rule); }
#for .zbm-for__link:hover { color: var(--color-heading); border-color: var(--color-heading); }
#for .zbm-for__card:nth-child(-n + 2) .zbm-for__link:hover { color: var(--color-amber); border-color: var(--color-amber); }
/* the whole card is the link; the visible link stays */
#for .zbm-for__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
#for .zbm-for__link:focus-visible { outline: none; }

/* line-art: one idiom for all four drawings */
#for .zbm-for__art .s { fill: none; stroke: var(--c-ink); stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
#for .zbm-for__art .sd { fill: none; stroke: var(--c-ink); stroke-width: 1.2; stroke-linecap: round; stroke-dasharray: 2.2 4; }
#for .zbm-for__art .sf { fill: none; stroke: var(--c-ink); stroke-width: 1.2; stroke-linecap: round; stroke-dasharray: 1.4 3.2; opacity: 0.6; }
#for .zbm-for__art .n { fill: var(--c-node); stroke: var(--c-ink); stroke-width: 1.2; stroke-linejoin: round; }
#for .zbm-for__art .nd { fill: var(--c-node); stroke: var(--c-ink); stroke-width: 1.2; stroke-dasharray: 2.2 3; opacity: 0.6; }
#for .zbm-for__art .q { fill: none; stroke: var(--c-ink); stroke-width: 1.1; stroke-linecap: round; opacity: 0.45; }
#for .zbm-for__art .t { font-family: var(--zbm-mono); font-size: 8.5px; font-weight: 500; letter-spacing: 0.1em; fill: var(--c-ink); }
#for .zbm-for__art .d { fill: var(--c-dot); }
#for .zbm-for__art .dot { fill: var(--c-dot); }
#for .zbm-for__art .ring { stroke-dasharray: 2.6 4.6; animation: zbm-march 14s linear infinite; }
#for .zbm-for__art .flow { animation: zbm-march 6s linear infinite; }
@keyframes zbm-march { to { stroke-dashoffset: -64; } }
/* enterprises: the swap replays on hover */
#for .zbm-for__card:hover .sw-new { animation: zbm-swap-in 0.9s var(--zbm-ease) both; }
#for .zbm-for__card:hover .sw-old { animation: zbm-swap-out 0.9s var(--zbm-ease) both; }
@keyframes zbm-swap-in  { from { transform: translateX(60px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes zbm-swap-out { from { transform: translateX(84px); opacity: 1; } to { transform: none; opacity: 0.6; } }
@media (prefers-reduced-motion: reduce) {
  #for .zbm-for__card, .zbm-arrow { transition: none; }
  #for .zbm-for__card:hover { transform: none; }
  #for .zbm-for__art .ring, #for .zbm-for__art .flow, #for .zbm-for__card:hover .sw-new, #for .zbm-for__card:hover .sw-old { animation: none; }
  #for .zbm-for__art .dot { display: none; }
}

/* ≤1024: two by two, the ramp still reads in order */
@media (max-width: 1024px) {
  #for .zbm-for { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #for .zbm-for__card { min-height: 480px; }
  #for .zbm-for__head { min-height: 0; }
}
/* ≤640: a horizontal scroll-snap strip, one card in view with the next peeking */
@media (max-width: 640px) {
  #for .zbm-for {
    display: flex; gap: 12px; margin: 40px -16px 0; padding: 4px 16px 8px;
    overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scroll-padding-inline: 16px;
    scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  #for .zbm-for::-webkit-scrollbar { display: none; }
  #for .zbm-for__card { flex: 0 0 min(82vw, 320px); min-height: 500px; scroll-snap-align: start; padding: 22px 22px 24px; }
  #for .zbm-for__head { font-size: 23px; min-height: calc(3 * 1.12em); }
  #for .zbm-for__card:hover { transform: none; }
  #for .zbm-for__art { margin: 14px 0 12px; }
}
