/* ═══════════════════════════════════════════════════════════════════════════
   TALARIA — private model access
   Palette (from the Talaria wing): dark purple · orange · white / grey
   Type: Cormorant Garamond (serif), Archivo expanded (strong), Geist (text), JetBrains Mono (labels)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── self-hosted web fonts (latin + latin-ext subsets, from Google Fonts) ── */
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 500 800; font-stretch: 112% 125%; font-display: swap; src: url(../fonts/archivo-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 500 800; font-stretch: 112% 125%; font-display: swap; src: url(../fonts/archivo-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 300 400; font-display: swap; src: url(../fonts/cormorant-italic-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 300 400; font-display: swap; src: url(../fonts/cormorant-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 300 500; font-display: swap; src: url(../fonts/cormorant-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 300 500; font-display: swap; src: url(../fonts/cormorant-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 300 600; font-display: swap; src: url(../fonts/geist-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 300 600; font-display: swap; src: url(../fonts/geist-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 500; font-display: swap; src: url(../fonts/jetbrains-mono-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 500; font-display: swap; src: url(../fonts/jetbrains-mono-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* metric-matched fallbacks (second in each stack): only on screen until the web fonts arrive. size-adjust keeps line breaks,
   the overrides keep line heights, and the latin-only range leaves arrows and symbols on the same system fonts as before */
@font-face { font-family: 'Geist Fallback'; font-weight: 300 450; src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans'); size-adjust: 102.6%; ascent-override: 97.95%; descent-override: 28.75%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Geist Fallback'; font-weight: 451 550; src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans'); size-adjust: 105.5%; ascent-override: 95.26%; descent-override: 27.96%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Geist Fallback'; font-weight: 600 900; src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'); size-adjust: 103.8%; ascent-override: 96.8%; descent-override: 28.4%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Archivo Fallback'; font-weight: 500 900; font-stretch: 50% 114%; src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'); size-adjust: 117.4%; ascent-override: 74.8%; descent-override: 17.9%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Archivo Fallback'; font-weight: 500 900; font-stretch: 115% 121%; src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'); size-adjust: 120.2%; ascent-override: 73%; descent-override: 17.5%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Archivo Fallback'; font-weight: 500 900; font-stretch: 122% 200%; src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'); size-adjust: 131.6%; ascent-override: 66.7%; descent-override: 16%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Cormorant Fallback'; font-style: normal; font-weight: 300 500; src: local('Times New Roman'), local('TimesNewRomanPSMT'), local('Liberation Serif'), local('LiberationSerif'); size-adjust: 96%; ascent-override: 96.2%; descent-override: 29.9%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Cormorant Fallback'; font-style: italic; font-weight: 300 500; src: local('Times New Roman Italic'), local('TimesNewRomanPS-ItalicMT'), local('Liberation Serif Italic'), local('LiberationSerif-Italic'); size-adjust: 87.6%; ascent-override: 105.5%; descent-override: 32.8%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'JetBrains Mono Fallback'; font-weight: 400 500; src: local('Courier New'), local('CourierNewPSMT'), local('Liberation Mono'), local('LiberationMono'); size-adjust: 100%; ascent-override: 102%; descent-override: 30%; line-gap-override: 0%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --bg: #140a1f;
  --bg-2: #190d27;
  --bg-3: #21123a;
  --panel: rgba(255, 255, 255, .035);
  --line: rgba(240, 226, 255, .11);
  --line-2: rgba(240, 226, 255, .22);
  --txt: #f5f1f8;
  --txt-2: #ddd4e6;
  --muted: #a99cb8;

  --light: #f3f1f4;
  --light-2: #e8e4ea;
  --ink: #170c22;
  --ink-2: #2a1b3a;
  --muted-l: #5f5469;
  --line-l: rgba(23, 12, 34, .13);
  --line-l-2: rgba(23, 12, 34, .28);

  --accent: #ff7a3d;
  --accent-hi: #ff9358;
  --accent-ink: #1d0d06;
  --magenta: #d6336c;
  --violet: #c3a6ff;
  --brand: linear-gradient(100deg, #6a2c91 0%, #b8236e 38%, #e2353f 66%, #f7843e 100%);

  --sev-critical: #ff4d5e;
  --sev-high: #ff8a3d;
  --sev-medium: #c39bff;
  --sev-low: #9ea6b8;

  --serif: "Cormorant Garamond", "Cormorant Fallback", "Iowan Old Style", Georgia, serif;
  --strong: "Archivo", "Archivo Fallback", "Helvetica Neue", Arial, sans-serif;
  --sans: "Geist", "Geist Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "JetBrains Mono", "JetBrains Mono Fallback", ui-monospace, SFMono-Regular, Menlo, monospace;

  --gutter: clamp(16px, 3.4vw, 48px);
  --maxw: 1320px;
  --ticker-h: 32px;
  --nav-h: 84px;
  --ease: cubic-bezier(.2, .7, .1, 1);
  /* vertical rhythm: one block step between components inside a section */
  --block: clamp(48px, 5vw, 72px);
  --bar-h: 42px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 76px; }
body { margin: 0; background: var(--bg); color: var(--txt); font: 400 16px/1.6 var(--sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
img, svg, canvas { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
::selection { background: var(--accent); color: var(--accent-ink); }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--accent); color: var(--accent-ink); padding: 8px 12px; font: 500 13px var(--mono); }
.skip:focus { left: 8px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

/* ── type ────────────────────────────────────────────────────────────────── */
.serif { font-family: var(--serif); font-weight: 300; letter-spacing: -.012em; }
.strong { font-family: var(--strong); font-weight: 760; font-stretch: 118%; text-transform: uppercase; letter-spacing: -.012em; }
.accent { color: var(--accent); }
.label, .eyebrow, .k { font: 500 11.5px/1.35 var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.eyebrow { display: block; color: var(--muted); margin: 0 0 18px; }
.sq { width: 7px; height: 7px; background: var(--accent); display: inline-block; flex: none; }
.sec--light .eyebrow { color: var(--muted-l); }

/* line reveals */
[data-split] { display: inline-block; }
.js [data-split] { opacity: 0; transform: translateY(.4em); transition: opacity 1s var(--ease), transform 1.1s var(--ease); }
.js [data-split].in { opacity: 1; transform: none; }
.js [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.js [data-reveal].in { opacity: 1; transform: none; }

/* ── buttons ─────────────────────────────────────────────────────────────── */
.btn { --h: 44px; display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; height: var(--h); padding: 0 18px; border: 1px solid transparent; font: 500 12px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; cursor: pointer; white-space: nowrap; transition: background-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease), transform .4s var(--ease); }
.btn i { font-style: normal; transition: transform var(--t-move) var(--ease); }
.btn:hover i { transform: translateX(4px); }
.btn--lg { --h: 54px; padding: 0 22px; font-size: 12.5px; }
.btn--block { width: 100%; }
.btn--accent { background: var(--accent); color: var(--accent-ink); }
.btn--accent:hover { background: var(--accent-hi); }
.btn--ghost { border-color: rgba(255, 255, 255, .45); color: #fff; background: rgba(20, 10, 31, .25); }
.btn--ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }
.btn--ink { background: var(--ink); color: #fff; }
.btn--ink:hover { background: var(--ink-2); }
.btn[disabled] { opacity: .6; pointer-events: none; }

/* ── status dot ─────────────────────────────────────────────────────────── */
.dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); display: inline-block; flex: none; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ── nav ─────────────────────────────────────────────────────────────────── */
.nav { position: sticky; top: 0; z-index: 30; height: var(--nav-h); margin-bottom: calc(var(--nav-h) * -1); display: flex; align-items: center; gap: 28px; padding: 0 var(--gutter); color: var(--txt); border-bottom: 1px solid transparent; transition: background-color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease), height .35s; }
.nav.is-scrolled { --nav-h: 68px; background: rgba(20, 10, 31, .78); backdrop-filter: blur(14px) saturate(1.2); -webkit-backdrop-filter: blur(14px) saturate(1.2); border-bottom-color: var(--line); }
body[data-theme="light"] .nav.is-scrolled { background: rgba(243, 241, 244, .86); border-bottom-color: var(--line-l); color: var(--ink); }
.brand { display: flex; align-items: center; margin-right: auto; height: 100%; padding: 8px 0; }
.brand { position: relative; }
.brand__logo { height: 120px; width: auto; margin-top: 46px; transition: height .4s var(--ease), margin .4s var(--ease); filter: drop-shadow(0 6px 18px rgba(0,0,0,.35)); }
.nav.is-scrolled .brand__logo { height: 62px; margin-top: 0; filter: none; }
.brand__logo--dark { display: none; }
body[data-theme="light"] .nav.is-scrolled .brand__logo--light { display: none; }
body[data-theme="light"] .nav.is-scrolled .brand__logo--dark { display: block; }
.nav__links { display: flex; gap: 2px; }
.nav__links a { font: 500 11.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; padding: 11px 13px; opacity: .78; border-bottom: 1px solid transparent; transition: opacity var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease); }
.nav__links a:hover { opacity: 1; }
.nav__links a.is-active { opacity: 1; border-bottom-color: var(--accent); }
.nav__cta { --h: 40px; }
.nav__burger { display: none; width: 44px; height: 44px; border: 1px solid currentColor; background: transparent; position: relative; cursor: pointer; }
.nav__burger span { position: absolute; left: 12px; right: 12px; height: 1.5px; background: currentColor; transition: transform var(--t-move) var(--ease); }
.nav__burger span:first-child { top: 17px; } .nav__burger span:last-child { top: 25px; }
.nav.is-open .nav__burger span:first-child { transform: translateY(4px) rotate(45deg); }
.nav.is-open .nav__burger span:last-child { transform: translateY(-4px) rotate(-45deg); }

/* ── field / grain ───────────────────────────────────────────────────────── */
.field { position: absolute; inset: 0; width: 100%; height: 100%; }
.grain { position: absolute; inset: -50%; pointer-events: none; opacity: .32; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }

/* ── HERO ────────────────────────────────────────────────────────────────── */
.hero { position: relative; isolation: isolate; overflow: hidden; min-height: max(780px, calc(100svh - var(--ticker-h))); background: #2a1240; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: 1fr auto; column-gap: clamp(24px, 4vw, 72px); padding: calc(var(--nav-h) + 32px) var(--gutter) 0; }
.hero > .field { z-index: -3; } .hero > .grain { z-index: -2; }
.hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(14,6,22,.62) 0%, rgba(14,6,22,.25) 45%, rgba(14,6,22,0) 70%), linear-gradient(0deg, rgba(14,6,22,.7) 0%, rgba(14,6,22,0) 38%); }
.hero__copy { align-self: end; padding-bottom: 44px; }
.display { margin: 0 0 26px; line-height: .92; }
.display .line { display: block; }
.display .serif { font-size: clamp(36px, 4.4vw, 100px); line-height: 1; margin-bottom: .06em; white-space: nowrap; }
.display .strong { font-size: clamp(44px, 4.9vw, 118px); line-height: .92; white-space: nowrap; }
.lede { max-width: 560px; font-size: clamp(16px, 1.25vw, 19px); line-height: 1.55; margin: 0 0 30px; color: var(--txt-2); }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.seats { display: grid; grid-template-columns: repeat(var(--n, 12), 1fr); gap: 3px; }
.seats i { height: 8px; background: var(--accent); }
.seats i.free { background: transparent; box-shadow: inset 0 0 0 1px rgba(255, 122, 61, .55); }

.hero__specs { grid-column: 1 / -1; margin: 0 calc(var(--gutter) * -1); display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-2); background: rgba(14, 6, 22, .55); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.hero__specs > div { padding: 18px var(--gutter); display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-right: 1px solid var(--line); }
.hero__specs > div:last-child { border-right: 0; }
.hero__specs .k { color: var(--muted); font-size: 10.5px; }
.hero__specs .v { font: 700 24px/1 var(--strong); font-stretch: 112%; white-space: nowrap; }
.hero__specs b { font-weight: inherit; }

/* finding rows (hero panel + console) */
.finding { display: grid; grid-template-columns: 82px 1fr auto; gap: 4px 14px; align-items: start; padding: 13px 16px; border-bottom: 1px solid var(--line); position: relative; animation: findIn .6s var(--ease) both; }
.finding::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--c, var(--accent)); }
.finding[data-sev="critical"] { --c: var(--sev-critical); background: linear-gradient(90deg, rgba(255, 77, 94, .07), transparent 50%); }
.finding[data-sev="high"] { --c: var(--sev-high); }
.finding[data-sev="medium"] { --c: var(--sev-medium); }
.finding[data-sev="low"] { --c: var(--sev-low); }
.finding .sev { justify-self: start; margin-top: 2px; }
.finding__t { font-size: 14.5px; color: #fff; line-height: 1.4; }
.finding__loc { grid-column: 2; font: 400 12px var(--mono); color: #9c8fae; }
.finding__meta { grid-row: 1 / span 2; grid-column: 3; text-align: right; font: 500 10.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.finding__poc { color: var(--accent); white-space: nowrap; }
.finding__poc.is-pending { color: var(--muted); }
@keyframes findIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.sev { font: 500 10px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; padding: 5px 7px; border: 1px solid currentColor; white-space: nowrap; }
.sev--low { color: var(--sev-low); } .sev--medium { color: var(--sev-medium); } .sev--high { color: var(--sev-high); } .sev--critical { color: var(--sev-critical); }
.sev--exceptional { color: #fff; background: var(--brand); border-color: transparent; }
.sev--total { color: var(--muted-l); }

/* ── paid-by ─────────────────────────────────────────────────────────────── */
.paidby { background: #0f0718; border-bottom: 1px solid var(--line); padding: 24px 0 28px; overflow: hidden; }
.paidby .label { text-align: center; color: var(--muted); margin: 0 0 16px; }
.marquee { mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.marquee__track { display: flex; width: max-content; animation: marquee 44s linear infinite; }

/* ── sections ────────────────────────────────────────────────────────────── */
.sec { position: relative; padding: clamp(96px, 11vw, 160px) 0; }
.sec--dark { background: var(--bg); }
.sec--alt { background: var(--bg-2); }
.sec--light { background: var(--light); color: var(--ink); }
.frame { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); position: relative; }
.sec__head { margin-bottom: clamp(36px, 4vw, 56px); }
.sec__head--split { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; flex-wrap: wrap; }
.sec__aside { max-width: 380px; color: var(--muted); margin: 0; font-size: 15.5px; }
.sec--light .sec__aside { color: var(--muted-l); }
.h2 { margin: 0; line-height: .98; }
.h2 .serif { display: block; font-size: clamp(34px, 4.2vw, 60px); line-height: 1.05; }
.h2 .strong { display: block; font-size: clamp(32px, 4.4vw, 63px); line-height: .98; margin-top: .08em; }
.h2 b { font-weight: inherit; }

/* ── 01 corpus ───────────────────────────────────────────────────────────── */


/* ── 02 training ─────────────────────────────────────────────────────────── */
.train { position: relative; height: 380vh; background: var(--bg-3); }
.train__sticky { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; isolation: isolate; }
.train__sticky > .field { z-index: -2; } .train__sticky > .grain { z-index: -1; }
.train__inner { height: 100%; max-width: var(--maxw); margin: 0 auto; padding: calc(var(--nav-h) + 8px) var(--gutter) 48px; display: grid; grid-template-columns: 6fr 5fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.train__pct { display: flex; align-items: flex-start; font: 700 clamp(96px, 13vw, 200px)/.85 var(--strong); font-stretch: 112%; letter-spacing: -.04em; }
.train__pct span { font-size: .4em; margin-top: .12em; color: var(--accent); }
.train__sub { margin: 18px 0 28px; color: var(--txt-2); font: 500 12px var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.train__sub b { color: #fff; font-weight: 500; }
.tbars { display: grid; gap: 10px; max-width: 560px; }
.tbar { display: grid; grid-template-columns: 110px 1fr 64px; gap: 14px; align-items: center; font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.tbar__track { height: 10px; background: rgba(255, 255, 255, .07); position: relative; overflow: hidden; }
.tbar__fill { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--c); }
.tbar[data-k="exceptional"] .tbar__fill { background: var(--brand); }
.tbar b { text-align: right; color: var(--txt); font-weight: 500; }
.train__steps { list-style: none; margin: 0; padding: 0; }
.train__steps li { padding: 18px 0 18px 22px; border-left: 1px solid var(--line-2); opacity: .35; transition: opacity .5s, border-color .5s; position: relative; }
.train__steps li::before { content: ""; position: absolute; left: -4px; top: 25px; width: 7px; height: 7px; background: var(--muted); transition: background-color .4s; }
.train__steps li.is-on { opacity: 1; border-left-color: var(--accent); }
.train__steps li.is-on::before { background: var(--accent); }
.train__steps .n { font: 500 11px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.train__steps h3 { font: 400 clamp(26px, 2.3vw, 34px)/1.1 var(--serif); margin: 6px 0 8px; }
.train__steps p { margin: 0; color: var(--txt-2); font-size: 15px; max-width: 440px; max-height: 0; overflow: hidden; transition: max-height .6s var(--ease); }
.train__steps li.is-on p { max-height: 200px; }

/* ── 03 evals ────────────────────────────────────────────────────────────── */
.toggle { position: relative; display: inline-grid; grid-template-columns: 1fr 1fr; padding: 4px; border: 1px solid var(--line-2); }
.toggle button { position: relative; z-index: 1; border: 0; background: none; cursor: pointer; padding: 12px 20px; font: 500 12px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); transition: color var(--t-quick) var(--ease); }
.toggle button[aria-pressed="true"] { color: var(--accent-ink); }
.toggle__thumb { position: absolute; top: 4px; bottom: 4px; left: 4px; width: calc(50% - 4px); background: var(--accent); transition: transform .5s var(--ease), background-color var(--t-quick) var(--ease); }
.toggle[data-on="base"] .toggle__thumb { transform: translateX(0); background: #cfc6d8; }
.toggle[data-on="t1"] .toggle__thumb { transform: translateX(100%); }
.evals { display: grid; gap: var(--block); }
.metrics { border-top: 1px solid var(--line); }
.metric { display: grid; grid-template-columns: minmax(200px, 3fr) 6fr minmax(120px, 1.2fr); gap: 28px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); }
.metric__label { font-size: 15px; color: var(--txt-2); }
.metric__track { position: relative; height: 24px; background: repeating-linear-gradient(90deg, rgba(240,226,255,.1) 0 1px, transparent 1px 10%); }
.metric__bar { position: absolute; left: 0; top: 3px; bottom: 3px; width: 0; background: var(--accent); transition: width 1.2s var(--ease), background-color .4s; display: flex; align-items: center; justify-content: flex-end; }
.metric__bar span { font: 500 12.5px var(--mono); color: var(--accent-ink); padding: 0 8px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.metric__bar.is-out span { position: absolute; left: 100%; padding-left: 10px; color: var(--txt) !important; }
.metrics[data-on="base"] .metric__bar { background: #8f839c; }
.metrics[data-on="base"] .metric__bar span { color: #fff; }
.metric__ghost { position: absolute; top: -4px; bottom: -4px; width: 2px; background: rgba(255, 255, 255, .6); transition: left 1.2s var(--ease); }
.metric__ghost::after { content: attr(data-l); position: absolute; top: -16px; left: 50%; transform: translateX(-50%); font: 500 9.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.metric__delta { font: 700 22px/1 var(--strong); font-stretch: 112%; text-align: right; color: var(--accent); }
.metric__delta small { display: block; font: 500 10px var(--mono); letter-spacing: .12em; color: var(--muted); margin-top: 6px; text-transform: uppercase; }
.metrics[data-on="base"] .metric__delta { color: var(--muted); font-size: 15px; }

/* window bar: the header strip on every code / output / console panel */
.win__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: var(--bar-h); padding: 0 16px; border-bottom: 1px solid var(--line); background: rgba(240, 226, 255, .025); }
.win__bar .label { font-size: 10.5px; letter-spacing: .12em; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.win__bar .label + .label { color: #8d7fa0; flex: none; }
.win__bar .sev { flex: none; }
   
/* ── 04 console ──────────────────────────────────────────────────────────── */
.console { display: grid; grid-template-columns: 320px 1fr; border: 1px solid var(--line-2); background: #10071a; }
.console__side { padding: 22px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 14px; }
.console__side .label { color: var(--muted); margin: 4px 0 0; }
.targets { display: grid; gap: 6px; }
.targets button, .depth button { all: unset; cursor: pointer; padding: 11px 12px; border: 1px solid var(--line); font-size: 14.5px; color: var(--txt-2); display: flex; align-items: center; justify-content: space-between; gap: 10px; transition: border-color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease); }
.targets button::after { content: ""; width: 8px; height: 8px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--line-2); flex: none; }
.targets button:hover, .depth button:hover { border-color: var(--line-2); color: #fff; }
.targets button[aria-pressed="true"] { border-color: var(--accent); background: rgba(255, 122, 61, .08); color: #fff; }
.targets button[aria-pressed="true"]::after { background: var(--accent); box-shadow: none; }
.depth { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.depth button { flex-direction: column; align-items: flex-start; gap: 4px; font: 500 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.depth button small { font-size: 10px; color: var(--muted); }
.depth button[aria-pressed="true"] { border-color: var(--accent); color: #fff; }
.targets button:focus-visible, .depth button:focus-visible, .seg-ctl button:focus-visible, .chips button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.console__side .btn { margin-top: 6px; }
.console__fine { margin: 0; font: 400 11.5px/1.5 var(--mono); color: #8d7fa0; }
.console__main { display: flex; flex-direction: column; min-width: 0; }
.console__status { display: inline-flex; align-items: center; gap: 8px; font: 500 11px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.console__status .dot { background: #6c5d7e; }
.console.is-running .console__status { color: var(--accent); }
.console.is-running .console__status .dot { background: var(--accent); }
.console.is-done .console__status { color: #fff; }
.console.is-done .console__status .dot { background: #fff; }
.console__counts { display: grid; grid-template-columns: repeat(5, 1fr); border-bottom: 1px solid var(--line); }
.console__counts > div { padding: 16px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 6px; }
.console__counts > div:last-child { border-right: 0; }
.console__counts b { font: 700 32px/1 var(--strong); font-stretch: 112%; }
.console__counts span { font: 500 10px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.console__counts [data-sev="critical"] b { color: var(--sev-critical); }
.console__counts [data-sev="high"] b { color: var(--sev-high); }
.console__counts [data-sev="medium"] b { color: var(--sev-medium); }
.console__counts [data-sev="low"] b { color: var(--sev-low); }
.console__counts [data-sev="poc"] b { color: #fff; }
.console__progress { height: 2px; background: rgba(255, 255, 255, .06); }
.console__progress > div { height: 100%; width: 0; background: var(--accent); transition: width .4s linear; }
.console__phases { list-style: none; margin: 0; padding: 10px 16px; display: flex; flex-wrap: wrap; gap: 6px 18px; border-bottom: 1px solid var(--line); font: 500 10.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: #6c5d7e; }
.console__phases li { display: flex; align-items: center; gap: 8px; }
.console__phases li::before { content: ""; width: 6px; height: 6px; border: 1px solid currentColor; }
.console__phases li.is-on { color: var(--accent); }
.console__phases li.is-on::before { background: var(--accent); }
.console__phases li.is-done { color: var(--txt-2); }
.console__phases li.is-done::before { background: var(--txt-2); border-color: var(--txt-2); }
.feed { list-style: none; margin: 0; padding: 0; min-height: 478px; }
.feed__empty { padding: 34px 20px; color: #8d7fa0; font: 400 13px/1.6 var(--mono); }
.feed__empty b { color: var(--accent); font-weight: 500; }
.feed__done { padding: 16px 18px; font: 500 12px/1.6 var(--mono); letter-spacing: .06em; color: var(--txt-2); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; animation: findIn .6s var(--ease) both; }
.feed__done a { color: var(--accent); text-decoration: none; border-bottom: 1px solid rgba(255, 122, 61, .4); }

/* ── 05 record (light) ───────────────────────────────────────────────────── */
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-l-2); border-bottom: 1px solid var(--line-l-2); margin-bottom: var(--block); }
.kpi { padding: 28px 24px 26px 0; border-right: 1px solid var(--line-l); }
.kpi + .kpi { padding-left: 24px; }
.kpi:last-child { border-right: 0; }
.kpi__v { font: 700 clamp(34px, 3.6vw, 54px)/1 var(--strong); font-stretch: 112%; letter-spacing: -.03em; display: block; }
.kpi__l { display: block; margin-top: 14px; font-weight: 500; font-size: 15px; }
.kpi__s { display: block; color: var(--muted-l); font-size: 13.5px; margin-top: 2px; }
.row__amt--muted { font: 500 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted-l); }
.sev--na { border: 0; padding-left: 0; color: var(--muted-l); }
.ranks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: var(--block); }
@media (max-width: 1180px) { .ranks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ranks { grid-template-columns: 1fr; } }
.ranks:empty { display: none; }
.rank { border: 1px solid var(--line-l-2); padding: 18px; background: #fff; text-decoration: none; display: flex; flex-direction: column; transition: border-color var(--t-quick) var(--ease), transform var(--t-move) var(--ease); }
.rank:hover { border-color: var(--ink); transform: translateY(-2px); }
.rank__p { font: 500 11px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--muted-l); }
.rank__v { font: 700 28px/1.05 var(--strong); font-stretch: 112%; margin: 10px 0 6px; }
.rank__d { font-size: 13.5px; color: #3d3148; }
.rank__src { margin-top: auto; padding-top: 10px; font: 500 10.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted-l); }
.record__filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.chipf { border: 1px solid var(--line-l-2); background: transparent; padding: 8px 12px; cursor: pointer; font: 500 11px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted-l); transition: color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease); }
.chipf:hover { color: var(--ink); border-color: var(--ink); }
.chipf.is-on { background: var(--ink); color: #fff; border-color: var(--ink); }
.table { border-top: 1px solid var(--ink); }
.row { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 3.4fr) minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1.5fr); gap: 20px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line-l); transition: background-color var(--t-quick) var(--ease); }
.row:hover { background: rgba(23, 12, 34, .035); }
.row--head { font: 500 10.5px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--muted-l); padding: 12px 0; }
.row--head:hover { background: none; }
.row__vendor { font: 500 clamp(21px, 1.9vw, 26px)/1.1 var(--serif); }
.row__title { color: #2d2238; }
.row__title small { color: var(--muted-l); font: 400 12px var(--mono); }
.row__amt { font: 700 17px var(--strong); font-stretch: 112%; }
.row__src { font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--muted-l); display: flex; flex-direction: column; gap: 3px; }
.row__src a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line-l-2); width: max-content; max-width: 100%; }
.row__src a:hover { border-color: var(--accent); color: #c2410c; }
.row .sev { justify-self: start; }
.row .sev--low { color: #5c6577; } .row .sev--medium { color: #6d3fc0; } .row .sev--high { color: #c2410c; } .row .sev--critical { color: #d61f36; }
.row.is-hidden { display: none; }
.tag-src { font: 500 9.5px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted-l); }
.quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin-top: var(--block); border-top: 1px solid var(--line-l-2); }
.quotes:empty { display: none; }
.quote { padding: 28px 28px 24px 0; margin: 0; border-right: 1px solid var(--line-l); }
.quote + .quote { padding-left: 28px; }
.quote:last-child { border-right: 0; }
.quote p { font: 400 italic clamp(19px, 1.6vw, 22px)/1.3 var(--serif); margin: 0 0 16px; }
.quote footer { font: 500 11px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted-l); display: flex; gap: 10px; flex-wrap: wrap; }

/* ── 06 team ─────────────────────────────────────────────────────────────── */
.h2--sentence { max-width: 900px; text-wrap: balance; }
.h2--sentence .serif { display: inline; font-size: clamp(30px, 3.3vw, 52px); line-height: 1.14; }
.team { border-top: 1px solid var(--line-2); }
.member { display: grid; grid-template-columns: minmax(0, 3.2fr) minmax(0, 4fr) minmax(0, 4.8fr); gap: clamp(20px, 3vw, 48px); padding: 34px 0 32px; border-bottom: 1px solid var(--line); align-items: start; }
.member__name { font: 400 clamp(30px, 2.6vw, 40px)/1 var(--serif); margin: 0 0 10px; letter-spacing: -.01em; }
.member__role { margin: 0 0 16px; font: 500 11.5px/1.5 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.member__role { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; }
.member__role span { color: var(--muted); text-transform: none; letter-spacing: .04em; }
.member__links { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.member__links a { font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--txt-2); text-decoration: none; border-bottom: 1px solid var(--line-2); padding-bottom: 2px; transition: color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease); }
.member__links a:hover { color: #fff; border-color: var(--accent); }
.member__bio { margin: 4px 0 0; color: var(--txt-2); font-size: 16px; line-height: 1.6; }
.member__facts { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 10px; }
.member__facts:empty { display: none; }
.member__facts li { position: relative; padding-left: 20px; font-size: 15px; color: var(--txt); line-height: 1.45; }
.member__facts li::before { content: ""; position: absolute; left: 0; top: 11px; width: 10px; height: 1px; background: var(--accent); }
@media (max-width: 1020px) { .member { grid-template-columns: 1fr 1fr; } .member__id { grid-column: 1 / -1; } }
@media (max-width: 600px) { .member { grid-template-columns: 1fr; } }

/* ── 07 pricing ──────────────────────────────────────────────────────────── */
.config { display: grid; grid-template-columns: 1fr 390px; gap: 24px; align-items: start; }
.config__opts { display: grid; gap: 34px; }
.opt { border: 0; margin: 0; padding: 0; min-width: 0; }
.opt legend { display: flex; align-items: center; gap: 12px; padding: 0; margin-bottom: 14px; font: 500 12px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--txt-2); }
.opt legend .n { color: var(--accent); }
.opt__badge { font-size: 9.5px; padding: 4px 7px; color: var(--accent-ink); background: var(--accent); letter-spacing: .14em; }
.plans { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.plan { position: relative; cursor: pointer; display: block; }
.plan input { position: absolute; opacity: 0; pointer-events: none; }
.plan__body { display: flex; flex-direction: column; height: 100%; padding: 22px; border: 1px solid var(--line-2); background: var(--panel); transition: border-color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease), box-shadow var(--t-quick) var(--ease); }
.plan:hover .plan__body { border-color: rgba(240, 226, 255, .4); }
.plan input:checked + .plan__body { border-color: var(--accent); background: rgba(255, 122, 61, .06); box-shadow: inset 0 0 0 1px var(--accent); }
.plan input:focus-visible + .plan__body { outline: 2px solid var(--accent); outline-offset: 3px; }
.plan__tag { align-self: flex-start; font: 500 10px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent-ink); background: var(--accent); padding: 5px 8px; }
.plan__tag--line { background: transparent; color: var(--txt-2); border: 1px solid var(--line-2); }
.plan__name { font: 760 clamp(30px, 3vw, 42px)/1 var(--strong); font-stretch: 118%; text-transform: uppercase; margin: 18px 0 8px; }
.plan__one { font: 400 19px/1.35 var(--serif); color: var(--txt); margin-bottom: 16px; }
.plan__list { display: grid; border-top: 1px solid var(--line); margin-bottom: 18px; flex: 1; align-content: start; }
.plan__list span { padding: 9px 0 9px 18px; border-bottom: 1px solid var(--line); font-size: 14px; color: var(--txt-2); position: relative; }
.plan__list span::before { content: ""; position: absolute; left: 0; top: 17px; width: 8px; height: 1px; background: var(--accent); }
.plan__price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.plan__price b { font: 700 28px/1 var(--strong); font-stretch: 112%; }
.plan__price small { font: 500 10.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.seg-ctl { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 6px; }
.seg-ctl button { all: unset; cursor: pointer; padding: 12px 14px; border: 1px solid var(--line-2); display: flex; flex-direction: column; gap: 4px; transition: border-color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease); }
.seg-ctl button b { font: 500 15px var(--sans); color: #fff; }
.seg-ctl button small { font: 500 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.seg-ctl button:hover { border-color: rgba(240, 226, 255, .45); }
.seg-ctl button[aria-pressed="true"] { border-color: var(--accent); background: rgba(255, 122, 61, .08); }
.seg-ctl button[aria-pressed="true"] small { color: var(--accent); }
.switch { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: center; cursor: pointer; padding: 16px; border: 1px solid var(--line-2); background: var(--panel); position: relative; }
.switch input { position: absolute; opacity: 0; }
.switch__ui { width: 46px; height: 26px; border-radius: 999px; background: rgba(240, 226, 255, .16); position: relative; transition: background-color var(--t-quick) var(--ease); }
.switch__ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform var(--t-move) var(--ease); }
.switch input:checked + .switch__ui { background: var(--accent); }
.switch input:checked + .switch__ui::after { transform: translateX(20px); }
.switch input:focus-visible + .switch__ui { outline: 2px solid var(--accent); outline-offset: 3px; }
.switch__txt { font-size: 15px; color: var(--txt-2); }
.audit-opts { display: grid; gap: 12px; margin-top: 16px; transition: opacity var(--t-quick) var(--ease); }
.audit-opts.is-off { opacity: .45; }
.audit-opts .label { color: var(--muted); margin: 6px 0 0; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips button { all: unset; cursor: pointer; padding: 10px 14px; border: 1px solid var(--line-2); font-size: 14px; color: var(--txt-2); display: inline-flex; gap: 8px; align-items: center; transition: color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease); }
.chips button::before { content: "+"; font: 500 13px var(--mono); color: var(--muted); }
.chips button[aria-pressed="true"] { border-color: var(--accent); color: var(--accent-ink); background: var(--accent); }
.chips button[aria-pressed="true"]::before { content: "✓"; color: var(--accent-ink); }
.summary { position: sticky; top: 88px; padding: 24px; background: var(--light); color: var(--ink); }
.summary__plate { position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--brand); }
.summary > .label { color: var(--muted-l); margin: 6px 0 14px; }
.summary__lines { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-l-2); }
.summary__lines li { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line-l); font-size: 14.5px; }
.summary__lines li small { display: block; color: var(--muted-l); font: 400 11.5px var(--mono); margin-top: 2px; }
.summary__lines li b { font: 500 13.5px var(--mono); white-space: nowrap; }
.summary__total { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; padding: 20px 0 16px; }
.summary__total .label { color: var(--muted-l); margin-bottom: 10px; }
.summary__total b { font: 700 clamp(36px, 3.2vw, 48px)/1 var(--strong); font-stretch: 112%; letter-spacing: -.03em; }
.summary__total small { margin-top: 10px; font: 500 10.5px/1.5 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted-l); }
.summary__total b { font-variant-numeric: tabular-nums; }
.summary__lock { display: block; margin: 0 0 16px; font-size: 13px; line-height: 1.5; color: #3d3148; }
.summary__lock b { color: var(--ink); }
.summary__fine { margin: 12px 0 0; font-size: 12px; color: var(--muted-l); }

.faq { margin-top: var(--block); display: grid; grid-template-columns: 4fr 8fr; gap: 40px; }
.faq__title { font: 400 clamp(32px, 3vw, 44px)/1.05 var(--serif); margin: 0; }
.faq details { border-top: 1px solid var(--line-2); }
.faq details:last-of-type { border-bottom: 1px solid var(--line-2); }
.faq summary { list-style: none; cursor: pointer; padding: 20px 40px 20px 0; position: relative; font-size: 17px; font-weight: 500; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 4px; top: 16px; font: 300 24px var(--mono); color: var(--accent); transition: transform var(--t-move) var(--ease); }
.faq summary { transition: color var(--t-quick) var(--ease); }
.faq summary:hover { color: #fff; }
.faq summary:focus-visible { outline-offset: 4px; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { margin: -4px 0 24px; color: var(--muted); max-width: 64ch; line-height: 1.65; }
.faq details[open] p { animation: faqIn .45s var(--ease) both; }
@keyframes faqIn { from { opacity: 0; transform: translateY(-4px); } }
.faq details a { color: var(--accent); }

/* ── 08 CTA ──────────────────────────────────────────────────────────────── */
.cta { position: relative; overflow: hidden; isolation: isolate; background: #2a1240; padding: clamp(88px, 8vw, 120px) 0; }
.cta > .field { z-index: -2; } .cta > .grain { z-index: -1; }
.cta__inner { display: grid; grid-template-columns: 6fr 5fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.display--cta .serif { font-size: clamp(38px, 4.8vw, 76px); }
.display--cta .strong { font-size: clamp(46px, 6.4vw, 108px); }
.display--cta b { font-weight: inherit; }
.cohort { margin-top: 10px; max-width: 520px; padding: 16px 18px; background: rgba(14, 6, 22, .6); border: 1px solid var(--line-2); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.cohort__row { display: flex; justify-content: space-between; font: 500 11.5px var(--mono); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px; }
.cohort__row b { color: var(--accent); font-weight: 500; }
.seats--lg i { height: 14px; }
.form { position: relative; padding: 26px; background: var(--light); color: var(--ink); display: grid; gap: 14px; box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .65); overflow: hidden; }
.form::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--brand); }
.form__head { display: flex; justify-content: space-between; color: var(--muted-l); padding-top: 2px; }
.form label { display: grid; gap: 6px; }
.form label > span { font: 500 10.5px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted-l); }
.form input, .form textarea { width: 100%; border: 1px solid var(--line-l-2); background: #fff; padding: 12px; border-radius: 0; font-size: 15px; color: var(--ink); transition: border-color var(--t-quick) var(--ease), box-shadow var(--t-quick) var(--ease); }
.form textarea { resize: vertical; min-height: 84px; }
.form input:focus, .form textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(255, 122, 61, .25); }
.form .is-bad { border-color: #d61f36 !important; }
.form__cfg { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 12px 14px; background: var(--ink); color: #fff; }
.form__cfg .label { color: var(--accent); font-size: 10px; }
.form__cfg p { margin: 0; font-size: 14px; }
.form__edit { grid-row: 1 / span 2; grid-column: 2; align-self: center; font: 500 11px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); text-decoration: none; }
.form__done { position: absolute; inset: 0; background: var(--ink); color: #fff; padding: 32px; display: flex; flex-direction: column; justify-content: center; }
.form__done[hidden] { display: none; }
.form__done .label { color: var(--accent); }
.form__done h3 { font: 400 36px/1.1 var(--serif); margin: 12px 0; }
.form__done p { color: #cfc4da; margin: 0; }

/* ── footer ──────────────────────────────────────────────────────────────── */
.foot { background: #0d0616; border-top: 1px solid var(--line); }
.foot__inner { max-width: var(--maxw); margin: 0 auto; padding: 64px var(--gutter) 40px; display: grid; grid-template-columns: auto 1fr; gap: 40px 64px; }
.foot__brand img { height: 150px; width: auto; }
.foot__small { margin: 16px 0 0; font: 400 12px/1.6 var(--mono); color: var(--muted); }
.foot__nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; justify-self: end; width: min(100%, 640px); }
.foot__nav > div { display: flex; flex-direction: column; gap: 10px; }
.foot__nav .label { color: var(--muted); margin-bottom: 4px; }
.foot__nav a { font-size: 14.5px; color: var(--txt-2); text-decoration: none; width: max-content; border-bottom: 1px solid transparent; }
.foot__nav a:hover { color: #fff; border-color: var(--accent); }
.foot__legal { grid-column: 1 / -1; margin: 0; padding-top: 24px; border-top: 1px solid var(--line); font: 400 12px/1.6 var(--mono); color: #8d7fa0; }

/* ── review mode (?review=1) ─────────────────────────────────────────────── */
.review [data-ph], .review .is-ph { outline: 2px dashed #ff2d75 !important; outline-offset: 2px; background-color: rgba(255, 45, 117, .14) !important; }

/* ── responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
  .nav__links a { padding: 11px 9px; letter-spacing: .08em; }
    .config { grid-template-columns: 1fr; }
  .summary { position: relative; top: 0; }
}
@media (max-width: 1020px) {
  :root { --nav-h: 68px; }
  .brand__logo { height: 76px; margin-top: 18px; }
  .nav.is-scrolled .brand__logo { height: 52px; }
  .nav__links, .nav__cta { display: none; }
  .nav__burger { display: block; }
  .nav.is-open { background: var(--bg); height: auto; flex-wrap: wrap; padding-bottom: 18px; }
  .nav.is-open .nav__links { display: flex; flex-direction: column; width: 100%; order: 3; }
  .nav.is-open .nav__links a { padding: 15px 0; font-size: 13px; border-bottom: 1px solid var(--line); }
  .nav.is-open .nav__cta { display: inline-flex; order: 4; width: 100%; margin-top: 12px; --h: 54px; font-size: 12.5px; }
  body[data-theme="light"] .nav.is-open { color: var(--txt); }
  body[data-theme="light"] .nav.is-open .brand__logo--light { display: block; }
  body[data-theme="light"] .nav.is-open .brand__logo--dark { display: none; }
  .hero { grid-template-columns: 1fr; grid-template-rows: auto auto auto; padding-top: calc(var(--nav-h) + 24px); min-height: 0; }
  .hero__copy { padding-bottom: 32px; }
      .hero__specs { grid-template-columns: 1fr 1fr; }
  .hero__specs > div:nth-child(2) { border-right: 0; }
  .hero__specs > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .train { height: auto; }
  .train__sticky { position: relative; height: auto; }
  .train__inner { grid-template-columns: 1fr; padding-top: 88px; padding-bottom: 88px; }
  .train__steps li { opacity: 1; border-left-color: var(--accent); }
  .train__steps li::before { background: var(--accent); }
  .train__steps li p { max-height: none; }
  .metric { grid-template-columns: 1fr auto; gap: 12px 16px; }
  .metric__track { grid-column: 1 / -1; grid-row: 2; }
  .metric__delta { grid-row: 1; grid-column: 2; }
  .console { grid-template-columns: 1fr; }
  .console__side { border-right: 0; border-bottom: 1px solid var(--line); }
  .targets { grid-template-columns: 1fr 1fr; }
  .kpis { grid-template-columns: 1fr 1fr; }
  .kpi { border-bottom: 1px solid var(--line-l); }
  .kpi:nth-child(2n) { border-right: 0; }
  .kpi:nth-child(odd) { padding-left: 0; }
  .kpi:nth-last-child(-n+2) { border-bottom: 0; }
  .row { grid-template-columns: 1fr auto; gap: 6px 14px; }
  .row--head { display: none; }
  .row__amt { grid-column: 2; grid-row: 1; text-align: right; }
  .row__title { grid-column: 1 / -1; }
  .row__src { grid-column: 2; grid-row: 3; align-items: flex-end; }
  .quotes { grid-template-columns: 1fr; }
  .quote { border-right: 0; border-bottom: 1px solid var(--line-l); padding-left: 0 !important; }
  .plans { grid-template-columns: 1fr; }
  .faq { grid-template-columns: 1fr; gap: 20px; }
  .cta__inner { grid-template-columns: 1fr; }
  .foot__inner { grid-template-columns: 1fr; }
  .foot__nav { justify-self: start; }
}
@media (max-width: 600px) {
  .display .strong, .display .serif { white-space: normal; }
      .hero__specs .v { font-size: 19px; }
  .hero__specs > div { flex-direction: column; align-items: flex-start; gap: 6px; }
  .finding { grid-template-columns: 1fr auto; }
  .finding .sev { grid-column: 1; }
  .finding__t, .finding__loc { grid-column: 1 / -1; }
  .finding__meta { grid-row: 1; grid-column: 2; flex-direction: row; }
        .targets { grid-template-columns: 1fr; }
  .console__counts { grid-template-columns: repeat(3, 1fr); }
  .console__counts > div:nth-child(3) { border-right: 0; }
  .console__counts > div:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .console__counts b { font-size: 26px; }
  .tbar { grid-template-columns: 86px 1fr 48px; }
  .foot__nav { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .js [data-split], .js [data-reveal] { opacity: 1; transform: none; }
}

/* grid items must be allowed to shrink below their content (long code lines) */
.evals { grid-template-columns: minmax(0, 1fr); }
.config > *, .config__opts > *, .cta__inner > *, .console > * { min-width: 0; }

/* API example under the console */
.api { display: grid; grid-template-columns: 4fr 5fr 5fr; gap: 16px; margin-top: var(--block); align-items: stretch; }
.api > * { min-width: 0; }
.api__intro { padding: 22px 4px 0 0; }
.api__intro .label { color: var(--accent); margin: 0 0 10px; }
.api__intro h3 { font: 400 clamp(24px, 2.2vw, 32px)/1.1 var(--serif); margin: 0 0 10px; }
.api__intro p { color: var(--muted); margin: 0; font-size: 15px; }
.api__code { background: #10071a; border: 1px solid var(--line); }
.api__code pre { margin: 0; padding: 16px 18px; overflow: auto; font: 400 12.5px/1.7 var(--mono); color: var(--txt-2); }
.api .c { color: #8d7fa0; } .api .kw { color: var(--violet); } .api .s { color: #ffb38a; } .api .f { color: #fff; }
@media (max-width: 1180px) { .api { grid-template-columns: 1fr 1fr; } .api__intro { grid-column: 1 / -1; padding-top: 8px; } }
@media (max-width: 1180px) { .api__code pre { font-size: 11.5px; } }

/* record headline figure */

/* access dock */
.dock { position: fixed; z-index: 35; left: 50%; bottom: 18px; transform: translate(-50%, 140%); display: flex; align-items: center; gap: 16px; padding: 8px 8px 8px 16px; background: rgba(16, 7, 26, .86); border: 1px solid var(--line-2); backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2); box-shadow: 0 24px 60px -20px rgba(0,0,0,.7); transition: transform .6s var(--ease), opacity .4s; opacity: 0; max-width: calc(100vw - 24px); }
.dock[hidden] { display: flex; visibility: hidden; }
.dock.is-on { transform: translate(-50%, 0); opacity: 1; visibility: visible; }
.dock__live { display: inline-flex; align-items: center; gap: 8px; font: 500 10.5px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); white-space: nowrap; }
.dock__seats { width: 120px; }
.dock__seats i { height: 6px; }
.dock__msg { font-size: 14px; color: var(--txt-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 360px; transition: opacity var(--t-quick) var(--ease); }
.dock__msg b { color: #fff; font-weight: 600; }
.dock__msg.is-swap { opacity: 0; }
.dock__btn { --h: 40px; }
.dock__x { width: 28px; height: 28px; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 18px; line-height: 1; }
.dock__x:hover { color: #fff; }
.seats i.mine { background: #fff; box-shadow: none; animation: none; }
@media (max-width: 760px) {
  .dock { left: 8px; right: 8px; bottom: 8px; transform: translateY(140%); gap: 10px; padding: 8px 8px 8px 12px; }
  .dock.is-on { transform: translateY(0); }
  .dock__seats { display: none; }
  .dock__x { width: 36px; height: 36px; flex: none; }
  .dock__msg { flex: 1; font-size: 13px; max-width: none; }
}
@media (max-width: 760px) { .dock__live { display: none; } .dock__msg { white-space: normal; line-height: 1.3; } }

/* announcement bar (replaces the scrolling ticker) */
.announce { position: relative; z-index: 40; height: var(--ticker-h); display: flex; align-items: center; justify-content: center; gap: 22px; padding: 0 var(--gutter); background: #0d0616; border-bottom: 1px solid var(--line); font: 500 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: #d9cfe3; }
.announce span { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.announce b { color: #fff; font-weight: 500; }
.announce a { color: var(--accent); text-decoration: none; white-space: nowrap; }
.announce a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 520px) { .announce { gap: 12px; font-size: 10px; letter-spacing: .06em; } }
.cta .lede b { color: #fff; font-weight: 600; }
.announce { overflow: hidden; }
@media (max-width: 520px) { .announce a { display: none; } }

.record__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: 16px; }
.record__note { margin: 0; font: 400 12.5px/1.6 var(--mono); color: var(--muted-l); }
.record__foot .record__more { margin-top: 0; }
.record__more { transition: border-color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease); }
.record__more:focus-visible, .chipf:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.record__more { margin-top: 16px; padding: 12px 16px; border: 1px solid var(--line-l-2); background: transparent; cursor: pointer; font: 500 11px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.record__more:hover { border-color: var(--ink); }
.record__more[hidden] { display: none; }

/* ── hero: live run panel ─────────────────────────────────────────────────── */
.run { position: relative; align-self: center; justify-self: end; width: min(100%, 500px); margin-top: 8px;
  border: 1px solid transparent; background: linear-gradient(rgba(17, 8, 28, .78), rgba(17, 8, 28, .78)) padding-box, linear-gradient(140deg, rgba(247,132,62,.75), rgba(184,35,110,.35) 40%, rgba(106,44,145,.25) 70%, rgba(247,132,62,.35)) border-box;
  backdrop-filter: blur(18px) saturate(1.2); -webkit-backdrop-filter: blur(18px) saturate(1.2); box-shadow: 0 60px 120px -50px rgba(0,0,0,.75), 0 0 0 1px rgba(0,0,0,.2); }
.run__top { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.run__brand { font: 760 13px/1 var(--strong); font-stretch: 118%; letter-spacing: .08em; text-transform: uppercase; color: #fff; }
.run__mode { display: inline-flex; align-items: center; gap: 8px; font: 500 10.5px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.run__clock { font: 500 13px var(--mono); color: #fff; letter-spacing: .06em; font-variant-numeric: tabular-nums; }
.run__target { display: flex; align-items: baseline; gap: 12px; padding: 12px 18px 10px; font: 400 13px var(--mono); color: var(--txt-2); min-width: 0; }
.run__target .k { color: var(--muted); font-size: 10px; }
.run__repo { color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.run__ref { color: var(--muted); white-space: nowrap; }
.run__phases { display: grid; grid-template-columns: repeat(5, 1fr); gap: 3px; padding: 0 18px; }
.run__phases i { height: 3px; background: rgba(255,255,255,.08); position: relative; overflow: hidden; }
.run__phases i.is-done { background: rgba(255,122,61,.75); }
.run__phases i.is-on { background: rgba(255,122,61,.2); }
.run__phases i.is-on::after { content: ""; position: absolute; inset: 0; width: 40%; background: var(--accent); animation: phaseRun 1.1s var(--ease) infinite; }
@keyframes phaseRun { from { transform: translateX(-100%); } to { transform: translateX(250%); } }
.run__phase { display: flex; justify-content: space-between; padding: 8px 18px 12px; border-bottom: 1px solid var(--line); font: 500 10.5px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.run__phase span:last-child { color: var(--txt-2); font-variant-numeric: tabular-nums; }
.run__feed { list-style: none; margin: 0; padding: 0; height: 300px; overflow: hidden; position: relative; }
.run__feed::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 56px; background: linear-gradient(0deg, rgba(17, 8, 28, .95), transparent); pointer-events: none; }
.run__feed .finding { padding: 12px 18px; grid-template-columns: 78px 1fr auto; transition: background-color 1.2s var(--ease); }
.run__feed .finding.is-new { background-color: rgba(255,122,61,.10); }
@media (max-width: 1020px) { .run { justify-self: stretch; width: 100%; margin: 0 0 32px; } .run__feed { height: 250px; } }
@media (max-width: 600px) { .run__feed .finding { grid-template-columns: 1fr auto; }   }

/* ── 04 case files ───────────────────────────────────────────────────────── */
.cases { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 16px; align-items: start; }
.cases__list { display: grid; gap: 8px; position: sticky; top: 96px; }
.ctab { all: unset; cursor: pointer; display: flex; flex-direction: column; gap: 8px; padding: 16px 18px; border: 1px solid var(--line-2); background: var(--panel); transition: border-color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease); position: relative; }
.ctab:hover { border-color: rgba(240,226,255,.4); }
.ctab.is-on { border-color: var(--accent); background: rgba(255,122,61,.06); }
.ctab.is-on::before { content: ""; position: absolute; left: -1px; top: -1px; bottom: -1px; width: 2px; background: var(--accent); }
.ctab:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ctab__k { font: 500 10.5px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.ctab__t { font: 400 19px/1.25 var(--serif); color: #fff; }
.ctab__m { margin-top: auto; display: flex; align-items: center; gap: 10px; font: 500 10.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.case { border: 1px solid var(--line-2); background: #10071a; min-height: 560px; display: flex; flex-direction: column; }
.case__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(200px, 280px); gap: 24px; padding: 22px 24px; border-bottom: 1px solid var(--line); }
.case__head .label { color: var(--muted); margin: 0 0 8px; }
.case__title { margin: 0; font: 400 clamp(22px, 2vw, 30px)/1.15 var(--serif); }
.case__meta { display: flex; flex-wrap: wrap; align-items: center; align-content: flex-start; gap: 10px; }
.case__time { font: 500 12px var(--mono); color: #fff; letter-spacing: .06em; }
.trace { list-style: none; margin: 0; padding: 18px 24px 8px; flex: 1; position: relative; }
.trace__step { display: block; padding: 0 0 4px; position: relative; transition: opacity .4s; }
/* the open step types over its own dim copy, so typing never changes its height */
.trace__step.is-typing .trace__ghost { visibility: visible; opacity: .35; }
/* the rail runs from each step number to the next one (the numbers sit on top of it) */
.trace__step::before { content: ""; position: absolute; left: 17px; top: 20px; bottom: -20px; width: 1px; background: var(--line-2); }
.trace__step:last-child::before { display: none; }
.trace__n { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line-2); font: 500 11px var(--mono); color: var(--muted); background: #10071a; position: relative; z-index: 1; }
.trace__step.is-active .trace__n { border-color: var(--accent); color: var(--accent-ink); background: var(--accent); }
.trace__step--final .trace__n { border-color: var(--sev-critical); color: var(--sev-critical); }
.trace__phase { margin: 6px 0 6px; font: 500 10.5px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.trace__text { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--txt); max-width: 70ch; min-height: 1.6em; }
.trace__text { display: grid; }
.trace__ghost, .trace__live { grid-area: 1 / 1; }
.trace__ghost { visibility: hidden; }
.trace__step.is-typing .trace__live::after { content: "▍"; color: var(--accent); }
.trace__step--final .trace__text { color: #fff; }
.trace__code { margin-top: 12px; border: 1px solid var(--line); background: #0b0513; overflow: hidden; }
.trace__file { display: block; padding: 7px 12px; border-bottom: 1px solid var(--line); font: 500 10.5px var(--mono); letter-spacing: .1em; color: var(--muted); }
.trace__code pre { margin: 0; padding: 10px 0; overflow: auto; font: 400 12.5px/1.7 var(--mono); color: var(--txt-2); }
.trace__code .ln { display: block; padding: 0 12px; white-space: pre; border-left: 2px solid transparent; }
.trace__code .ln.is-hl { background: rgba(255,122,61,.10); border-left-color: var(--accent); color: #fff; }
.trace__chip { display: inline-block; margin-top: 12px; padding: 6px 10px; border: 1px solid rgba(255,122,61,.5); font: 500 10.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }
.case__replay { flex: none; white-space: nowrap; border: 1px solid var(--line-2); background: transparent; padding: 9px 12px; cursor: pointer; font: 500 11px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--txt-2); }
.case__replay:hover { border-color: var(--accent); color: #fff; }
@media (max-width: 1100px) { .cases { grid-template-columns: 1fr; } .cases__list { position: static; grid-template-columns: repeat(3, minmax(0, 1fr)); } .case__head { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .cases__list { grid-template-columns: 1fr; } .ctab__t { font-size: 17px; } .trace { padding: 16px 14px 6px; } .case__head { padding-left: 14px; padding-right: 14px; } .trace__n { width: 30px; height: 30px; } .trace__step::before { left: 15px; } }

.summary__roi { margin: 0 0 14px; padding: 12px 14px; background: rgba(255,122,61,.10); border-left: 2px solid var(--accent); font-size: 13.5px; line-height: 1.5; color: #2d2238; }
.summary__roi:empty { display: none; }
.summary__roi b { color: var(--ink); }

.hero .eyebrow { color: var(--txt-2); letter-spacing: .16em; }
.train__viz .train__pct { margin-top: 0; }

/* ═══ review pass ═══════════════════════════════════════════════════════════ */
/* one grid: nav + hero share the section edge */
:root { --edge: max(var(--gutter), calc((100% - var(--maxw)) / 2 + var(--gutter))); }
.nav, .hero { padding-left: var(--edge); padding-right: var(--edge); }
.hero__specs { margin: 0; position: relative; background: none; border-top: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
.hero__specs::before { content: ""; position: absolute; top: 0; bottom: 0; left: -100vw; right: -100vw; z-index: -1; background: rgba(14,6,22,.55); border-top: 1px solid var(--line-2); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.hero__specs > div:first-child { padding-left: 0; } .hero__specs > div:last-child { padding-right: 0; }
.run { align-self: end; margin-bottom: 44px; }
.hero .display .serif { font-size: clamp(34px, 4vw, 60px); }
.hero .display .strong { font-size: clamp(42px, 4.4vw, 66px); }
.hero__price { margin: 18px 0 0; font: 500 11.5px/1.5 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--txt-2); }
.hero__price b { color: #fff; font-weight: 600; }
.hero__price a { color: var(--accent); text-decoration: none; }
.hero__price a:hover { text-decoration: underline; text-underline-offset: 3px; }
.brand__logo { height: 108px; margin-top: 30px; }
.nav.is-scrolled { --nav-h: 72px; }
.nav.is-scrolled .brand__logo { height: 58px; }
.foot__brand img { height: 96px; }

/* serif numerals + code ligatures */
.serif, .display, .h2, .train__steps h3, .member__name, .quote p, .faq__title, .api__intro h3, .form__done h3, .plan__one, .row__vendor, .ctab__t, .case__title { font-variant-numeric: lining-nums; }
pre, code, .finding__loc, .trace__code { font-variant-ligatures: none; }

/* no hollow cells */
.seats { gap: 0; background: rgba(255,122,61,.18); }
.seats i { height: 6px; }
.seats i.free { background: transparent; box-shadow: none; }
.targets button::after { display: none; }
.targets button[aria-pressed="true"] { box-shadow: inset 2px 0 0 var(--accent); }
.console__phases li::before { width: 10px; height: 1px; border: 0; background: currentColor; }
.console__phases { color: #8a7c9c; }

/* orange as a signal, not a fill */
.metric__bar { background: #efe9f5; }
.metric__bar span { color: #140a1f; }
.metric__delta { color: #fff; }
.metric__track { background: linear-gradient(rgba(240,226,255,.1), rgba(240,226,255,.1)) 0 50% / 100% 1px no-repeat; }
.metrics[data-on="base"] .metric__bar { background: #6f6380; }
.chips { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); }
.chips button[aria-pressed="true"] { background: rgba(255,122,61,.08); border-color: var(--accent); color: #fff; }
.chips button[aria-pressed="true"]::before { color: var(--accent); }
.plan__tag { background: transparent; color: var(--txt-2); border: 1px solid var(--line-2); }
.plan input:checked + .plan__body .plan__tag { color: var(--accent); border-color: rgba(255,122,61,.55); }
.opt__badge { background: transparent; color: var(--accent); border: 1px solid rgba(255,122,61,.55); }
.btn--accent[disabled] { opacity: 1; background: rgba(255,122,61,.12); color: var(--accent); border-color: rgba(255,122,61,.45); }

/* training steps readable over the field */
.train__sticky::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(14,6,22,.2) 0%, rgba(14,6,22,.35) 40%, rgba(14,6,22,.65) 62%, rgba(14,6,22,.72) 100%); }
.train__steps li { opacity: .5; }
.train__steps li:not(.is-on) .n { color: var(--txt-2); }

/* rhythm */
.sec { padding: clamp(64px, 6vw, 96px) 0; }
.sec--dark + .sec--dark { border-top: 1px solid var(--line); }
.row__amt.row__amt--muted { font: 500 11px/1 var(--mono); letter-spacing: .12em; }
a.kpi { text-decoration: none; color: inherit; transition: background-color var(--t-quick) var(--ease); }
a.kpi:hover { background: rgba(23,12,34,.035); }

/* API strip */
.api__intro p.label { font-size: 11.5px; }
.api { grid-template-columns: 1fr 1fr; }
.api__intro { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; row-gap: 12px; align-items: end; padding-top: 0; padding-bottom: 8px; }
.api__intro .label { grid-column: 1 / -1; }

/* CTA headline fits its column */
.display--cta .serif { font-size: clamp(34px, 3.6vw, 52px); }
.display--cta .strong { font-size: clamp(38px, 3.9vw, 56px); }
.cta::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(14,6,22,.62) 0%, rgba(14,6,22,.3) 45%, rgba(14,6,22,0) 70%); }
.form__steps { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 6px; font: 400 12.5px/1.5 var(--sans); color: var(--muted-l); }
.form__steps li { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.form__steps b { font: 500 10.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }

/* dock: phones only (desktop has the header button), properly hidden when off */
.dock { visibility: hidden; transition: transform .6s var(--ease), opacity .4s, visibility 0s linear .6s; }
.dock.is-on { visibility: visible; transition-delay: 0s; }
@media (min-width: 1021px) { .dock { display: none !important; } }

@media (max-width: 1020px) {
  .hero__specs > div:nth-child(odd) { padding-left: 0; } .hero__specs > div:nth-child(even) { padding-right: 0; }
  .train__sticky::after { background: rgba(14,6,22,.55); }
  .metric__ghost::after { top: auto; bottom: -15px; }
  .metric { padding-bottom: 28px; }
  .nav.is-open { position: fixed; top: 0; left: 0; right: 0; max-height: 100svh; overflow-y: auto; }
    .brand__logo { height: 76px; margin-top: 18px; }
}
@media (max-width: 700px) { .api__code pre { font-size: 11.5px; } }
@media (max-width: 600px) {  .chips { grid-template-columns: 1fr 1fr; } }

/* ── Perpetuum wordmark ──────────────────────────────────────────────────── */
.pp { position: relative; display: inline-block; font-family: var(--strong); font-weight: 760; font-stretch: 125%; text-transform: uppercase; letter-spacing: .2em; white-space: nowrap; line-height: 1; font-variant-numeric: lining-nums; }
.pp__txt { display: inline-block; color: #fff; background: none; }
.pp__fx { position: absolute; left: 0; top: 0; white-space: nowrap; pointer-events: none; color: var(--accent); }
.pp__fx span { display: inline-block; opacity: .9; }
.pp__fx span.ok { color: #fff; opacity: 1; }
.pp.is-decoding .pp__txt { visibility: hidden; }
.pp--sm { font-size: 13px; letter-spacing: .16em; }
.pp--inherit { font: inherit; letter-spacing: inherit; font-stretch: inherit; }
.hero__product { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; margin: 0 0 22px; }
.hero__product .pp { font-size: clamp(17px, 1.5vw, 22px); }
.hero__by { font: 500 11px/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--txt-2); padding-left: 16px; border-left: 1px solid var(--line-2); }
.foot__product { margin: 18px 0 0; }
.foot__product .pp { font-size: 18px; }
.foot__product + .foot__small { margin-top: 8px; }
@media (max-width: 600px) { .hero__by { border-left: 0; padding-left: 0; flex-basis: 100%; } }

/* ═══ polish pass: sections below the hero ═══════════════════════════════════ */
/* corpus */

/* training: a plain title so the scrolly reads on its own */
.train__pct, .train__sub, .tbar b { font-variant-numeric: tabular-nums; }

/* benchmarks */
.metric__label { line-height: 1.4; }
.metric__delta { font-variant-numeric: tabular-nums; }
.toggle button:hover { color: var(--txt); }
.toggle button[aria-pressed="true"]:hover { color: var(--accent-ink); }
.toggle button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.api__code pre code, .trace__code pre code { font-variant-ligatures: none; }

/* case files */
.ctab__k { line-height: 1.4; }
.case__replay { transition: border-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease); }
.case__replay:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* automated audits console */
.console__main > .win__bar { min-height: 46px; }
.console__main > .win__bar .label { color: var(--txt-2); }
.console__counts b { font-variant-numeric: tabular-nums; transition: color var(--t-quick) var(--ease); }
.console__counts b.bump { color: #fff !important; }
.feed__done a { transition: border-color var(--t-quick) var(--ease); }
.feed__done a:hover { border-color: var(--accent); }
.api__intro h3 { margin-bottom: 0; }
.api__intro p:not(.label) { max-width: 560px; }

/* track record */
.kpi__v { font-variant-numeric: tabular-nums; }
.rank:focus-visible, a.kpi:focus-visible, .row__src a:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.rank__src { line-height: 1.6; }
.quote p { text-wrap: pretty; }
.quote footer a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line-l-2); transition: border-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease); }
.quote footer a:hover { color: #c2410c; border-color: #c2410c; }

/* team: same head as every other section */
.member__links a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

/* pricing */
.plan__price b, .seg-ctl small, .summary__lines b { font-variant-numeric: tabular-nums; }
.seg-ctl button, .chips button { box-sizing: border-box; }
.chips button:hover { border-color: rgba(240, 226, 255, .45); color: #fff; }
.summary .btn--ink { margin-top: 2px; }

/* request form */
.display--cta .serif { white-space: normal; text-wrap: balance; }
.form__edit { transition: color var(--t-quick) var(--ease); }
.form__edit:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.form input:hover, .form textarea:hover { border-color: var(--ink-2); }
.form input::placeholder, .form textarea::placeholder { color: #8a8094; }
.form .is-bad:focus { box-shadow: 0 0 0 3px rgba(214, 31, 54, .18); }

/* footer */
.foot__brand { display: flex; flex-direction: column; align-items: flex-start; }
.foot__small { max-width: 34ch; }
.foot__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }

/* ── responsive refinements ── */
@media (max-width: 1020px) {
  .row .sev--na, .row__amt.is-empty { display: none; }
  }
@media (max-width: 700px) {
  .cases__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .ctab { padding: 12px 10px 11px; gap: 6px; align-content: start; }
  .ctab__t, .ctab__m .sev { display: none; }
  .ctab__k { font-size: 10px; letter-spacing: .1em; }
  .ctab__m { font-size: 10px; }
  .record__foot { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 600px) {
  .targets { grid-template-columns: 1fr 1fr; }
  .targets button { padding: 10px; font-size: 13.5px; }
  .console__counts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .console__counts > div { padding: 12px 10px; }
  .console__counts > div:nth-child(3) { border-right: 1px solid var(--line); }
  .console__counts > div:nth-child(4) { border-right: 0; }
  .console__counts > div:nth-child(-n+4) { border-bottom: 1px solid var(--line); }
  .console__counts > [data-sev="poc"] { grid-column: 1 / -1; flex-direction: row; align-items: baseline; gap: 10px; }
  .console__counts b { font-size: 24px; }
  .seg-ctl[data-cadence] { grid-template-columns: 1fr; }
  .seg-ctl[data-cadence] button { flex-direction: row; justify-content: space-between; align-items: baseline; gap: 12px; }
  .faq summary { font-size: 16px; }
  .form { padding: 22px 18px; }
  .form__steps li { grid-template-columns: 96px minmax(0, 1fr); }
  .win__bar { padding: 0 12px; }
  .console__side { padding: 18px 14px; }
  .console__main > .win__bar { padding: 0 14px; }
  .console__counts > div { padding: 12px 14px; }
  .console__phases { padding: 10px 14px; }
  .feed .finding { padding: 12px 14px; }
  .feed__done { padding: 14px; }
}

/* ── companies strip ─────────────────────────────────────────────────────── */
.paidby { background: #0f0718; border-bottom: 1px solid var(--line); padding: 0; overflow: hidden; }
.pb { display: grid; grid-template-columns: minmax(300px, 440px) minmax(0, 1fr); max-width: none; border-top: 1px solid var(--line); }
.pb__head { display: flex; align-items: center; gap: 20px; padding: 26px 28px 26px var(--edge, var(--gutter)); border-right: 1px solid var(--line-2); background: linear-gradient(90deg, rgba(255,122,61,.06), transparent); }
.pb__label { margin: 0 0 6px; font: 500 11.5px/1.35 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.pb__rows { display: grid; align-content: center; min-width: 0; }
.pb__rows .marquee { -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.pb__rows .marquee + .marquee { border-top: 1px solid var(--line); }
.paidby .marquee__track { animation: marquee 110s linear infinite; }
.paidby .marquee__track--rev { animation-direction: reverse; animation-duration: 125s; }
.paidby:hover .marquee__track { animation-play-state: paused; }
.pb .pb__cell { position: relative; display: inline-flex; align-items: center; height: 62px; padding: 0 34px; border-right: 1px solid var(--line); white-space: nowrap;
  font: 600 14px/1 var(--strong); font-stretch: 115%; letter-spacing: .06em; text-transform: uppercase; color: #c9bed6; transition: color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease); }
.pb .pb__cell::after { content: ""; position: absolute; left: 34px; right: 34px; bottom: 16px; height: 1px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform var(--t-move) var(--ease); }
.pb .pb__cell:hover { color: #fff; background: rgba(255,255,255,.03); }
.pb .pb__cell:hover::after { transform: scaleX(1); }
.pb .marquee + .marquee .pb__cell { color: #a99cb8; }
.pb__rows .marquee + .marquee .pb .pb__cell:hover { color: #fff; }
@media (max-width: 1020px) {
  .pb { grid-template-columns: 1fr; }
  .pb__head { border-right: 0; border-bottom: 1px solid var(--line); padding: 20px var(--gutter); }
    .pb__cell { height: 52px; padding: 0 24px; font-size: 12.5px; }
  .pb .pb__cell::after { left: 24px; right: 24px; bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) { .paidby .marquee__track { animation: none; } .pb__rows .marquee { overflow-x: auto; } }
/* whole-pixel rows so 1px dashes don't blur */
.plan__list span { line-height: 22px; }
.plan__list span::before { top: 19px; }
.member__facts li { line-height: 22px; }
.foot__legal a { color: inherit; text-decoration: none; transition: color var(--t-quick) var(--ease); }
.foot__legal a:hover { color: #fff; }
/* headings never leave a single word on the last line */
.h2 .serif, .case__title, .ctab__t, .api__intro h3 { text-wrap: balance; }
.sec__aside, .member__bio, .plan__one { text-wrap: pretty; }
/* phones: platform ranks become a swipeable row with the next card peeking */
@media (max-width: 560px) {
  .ranks { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1); padding: 0 var(--gutter) 6px; scroll-padding: 0 var(--gutter); scrollbar-width: none; }
  .ranks::-webkit-scrollbar { display: none; }
  .rank { flex: 0 0 82%; scroll-snap-align: start; }
  .rank:hover { transform: none; }
}
/* 1021–1180: keep the plan summary beside the options */
@media (min-width: 1021px) and (max-width: 1180px) {
  .config { grid-template-columns: minmax(0, 1fr) 320px; }
  .summary { position: sticky; top: 88px; }
}

/* ── restructure: training section carries the corpus intro ─────────────── */
@media (min-width: 1021px) { .train { height: 150vh; } }
.train__h { margin: 0 0 22px; }
@media (min-width: 1021px) {
  .train__inner { grid-template-rows: auto auto; align-content: center; row-gap: clamp(28px, 4vh, 48px); }
  .train__h { grid-column: 1 / -1; margin: 0; }
  .train__steps { align-self: center; }
}
.train__pct { font-size: clamp(72px, 8.5vw, 140px); }
@media (max-width: 1020px) { .train__h { margin-bottom: 18px; } }

/* ═══ HERO v2 ═══════════════════════════════════════════════════════════════
   "Editorial monument" (variant A, judged winner) + grafts from B and C.
   The headline spans the content frame (--edge, same as the nav and every
   section), the copy and stats sit on a quiet grid underneath, and the
   sample-run panel stands on the frosted base band.
   ═══════════════════════════════════════════════════════════════════════════ */
:root {
  /* panel and gap stop growing once the frame stops growing (1320px), so 1920+ is the 1440 layout with wider margins */
  --run-w: clamp(420px, 31.5vw, 454px);
  --hero-gap: clamp(36px, 4vw, 58px);
}

.hero {
  z-index: 2; overflow: visible; overflow-x: clip; container-type: inline-size;
  min-height: max(760px, min(calc(100svh - var(--ticker-h)), 940px));
  grid-template-columns: minmax(0, 1fr) var(--run-w);
  grid-template-rows: minmax(0, 1fr) auto auto auto auto;
  grid-template-areas: ". ." "title title" "mast mast" "copy run" "base run";
  column-gap: var(--hero-gap);
  padding-top: calc(var(--nav-h) + 72px); padding-bottom: 0;
}
.hero__grain { position: absolute; inset: 0; z-index: -2; overflow: hidden; pointer-events: none; }
.hero__shade {
  background:
    linear-gradient(180deg, rgba(14,6,22,.5) 0%, rgba(14,6,22,.08) 24%, rgba(14,6,22,0) 46%, rgba(14,6,22,.18) 72%, rgba(14,6,22,.42) 100%),
    linear-gradient(90deg, rgba(14,6,22,.5) 0%, rgba(14,6,22,.22) 48%, rgba(14,6,22,.06) 100%);
}

/* signature line under the monument: wordmark, hairline, byline */
.hero__mast { grid-area: mast; min-width: 0; margin: clamp(26px, 2.3vw, 44px) 0 clamp(30px, 2.8vw, 52px); }
.hero .hero__product { display: flex; flex-wrap: nowrap; align-items: center; gap: 22px; margin: 0; }
.hero .hero__product .pp { font-size: clamp(17px, 1.42vw, 26px); flex: none; }
.hero__rule { flex: 1 1 auto; min-width: 40px; height: 1px; background: linear-gradient(90deg, rgba(240,226,255,.34), rgba(240,226,255,.12)); }
.hero .hero__by { flex: none; padding-left: 0; border-left: 0; color: var(--txt-2); }

/* the monument */
.hero__title { grid-area: title; margin: 0; position: relative; }
.hero .display .line { display: block; }
.hero .display .serif {
  font-size: 4.6vw; font-size: calc(100cqi / 10.32 * .56);
  line-height: 1.02; margin: 0 0 .1em; white-space: nowrap; letter-spacing: -.016em;
  color: #f4eef8; text-shadow: 0 10px 50px rgba(14,6,22,.35);
}
.hero .display .strong {
  font-size: 8.4vw; font-size: calc(100cqi / 10.32);
  line-height: .82; letter-spacing: -.02em; white-space: nowrap; margin-left: -.08em;
  color: #fff; text-shadow: 0 14px 70px rgba(14,6,22,.4);
}
/* graft from C: a faint warm top-lit fill (plain white where background-clip:text is missing) */
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .hero .display .strong {
    background: linear-gradient(180deg, #ffffff 30%, #fbefe7 74%, #f3d9c9 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    text-shadow: none; filter: drop-shadow(0 14px 50px rgba(14,6,22,.4));
  }
}

/* copy column */
.hero .hero__copy { grid-area: copy; align-self: start; min-width: 0; padding: 0 0 clamp(28px, 3.3vh, 52px); }
.hero .lede { max-width: 36em; font-size: clamp(16px, 1.16vw, 19px); line-height: 1.58; margin: 0 0 28px; color: #e6def0; text-wrap: pretty; }
.hero .hero__ctas { gap: 12px; }
.hero .hero__price { margin-top: 18px; color: #cfc4dc; }
.hero .hero__price .nw, .hero .hero__price a { white-space: nowrap; }

/* sample-run panel: stands on the base band, flush with the hero's bottom edge */
.hero .run {
  grid-area: run; align-self: stretch; justify-self: stretch; width: auto; min-width: 0;
  margin: 0; z-index: 3;
  display: flex; flex-direction: column;
  background: linear-gradient(rgba(19, 9, 31, .82), rgba(15, 7, 25, .9)) padding-box, linear-gradient(150deg, rgba(247,132,62,.85), rgba(184,35,110,.4) 34%, rgba(106,44,145,.22) 64%, rgba(247,132,62,.3)) border-box;
  box-shadow: 0 90px 120px -60px rgba(0,0,0,.85), 0 40px 80px -40px rgba(8,2,14,.7), 0 0 0 1px rgba(0,0,0,.25);
}
.hero .run > * { flex: none; }
.hero .run__top { padding: 15px 20px; }
.run__tabs { display: grid; grid-template-columns: repeat(6, auto); border-bottom: 1px solid var(--line); }
.run__tabs:empty { display: none; }
.run__tab { appearance: none; -webkit-appearance: none; position: relative; margin: 0; padding: 12px 4px 11px; border: 0; border-right: 1px solid var(--line); background: transparent; cursor: pointer; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font: 500 10px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: #9d90af; transition: color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease); }
.run__tab:last-child { border-right: 0; }
.run__tab:hover { color: #fff; background: rgba(255,255,255,.035); }
.run__tab.is-on { color: #fff; background: rgba(255,122,61,.08); }
/* graft from B: the active tab's underline is the run's progress (--p set by site.js, 0..1) */
.run__tab.is-on::before { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: rgba(255,122,61,.22); }
.run__tab.is-on::after { content: ""; position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; background: var(--accent); transform-origin: left; transform: scaleX(var(--p, 1)); }
.run__tab:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.hero .run__target { padding: 14px 20px 12px; }
.hero .run__phases { padding: 0 20px; }
/* no looping shimmer: each segment fills once, driven by --f (0..1) from site.js */
.hero .run__phases i.is-on { background: rgba(255,255,255,.08); }
.hero .run__phases i::after { content: ""; position: absolute; inset: 0; width: auto; background: var(--accent); animation: none; transform-origin: left; transform: scaleX(var(--f, 0)); }
.hero .run__phases i.is-done::after { transform: none; opacity: .75; }
.hero .run__phase { padding: 9px 20px 12px; }
/* graft from B: rows fade out at the bottom instead of a hard cut */
.hero .run__feed { flex: 1 1 0; height: auto; min-height: 150px;
  -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 64px), transparent); mask-image: linear-gradient(180deg, #000 calc(100% - 64px), transparent); }
.hero .run__feed::after { display: none; }
.hero .run__feed .finding { padding: 13px 20px; }
/* graft from B: severity as plain coloured mono text, no box */
.hero .run .sev { padding: 0; border: 0; margin-top: 3px; letter-spacing: .14em; }
.finding__poc.is-review { color: var(--muted); }

/* base band: the four stats, full-bleed, the panel stands on it */
.hero__base { grid-area: base; position: relative; min-width: 0; padding: 22px 0 24px; }
.hero__base::before { content: ""; position: absolute; top: 0; bottom: 0; left: -100vw; right: -100vw; z-index: -1; background: rgba(13, 6, 21, .6); border-top: 1px solid rgba(240,226,255,.2); border-bottom: 1px solid var(--line); -webkit-backdrop-filter: blur(14px) saturate(1.1); backdrop-filter: blur(14px) saturate(1.1); }
.hero .hero__specs { grid-column: auto; margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.32fr) minmax(0, 1.1fr) minmax(0, 1fr); background: none; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
.hero .hero__specs::before { display: none; }
.hero .hero__specs > div { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 10px; padding: 0 20px; border: 0; border-left: 1px solid var(--line); }
.hero .hero__specs > div:first-child { padding-left: 0; border-left: 0; }
.hero .hero__specs > div:last-child { padding-right: 0; }
.hero .hero__specs .v { font: 700 clamp(26px, 2.2vw, 32px)/1 var(--strong); font-stretch: 112%; letter-spacing: -.01em; color: #fff; white-space: nowrap; font-variant-numeric: tabular-nums lining-nums; }
/* graft from B: + and × as small orange superscripts */
.hero .hero__specs .v small { font-size: .62em; margin-left: .06em; color: var(--accent); vertical-align: .38em; }
.hero .hero__specs .k { font-size: 10px; line-height: 1.45; letter-spacing: .13em; color: #a99cb8; text-wrap: balance; }

/* graft from C: the field fades up from dark on first load; text is visible at once */
@keyframes heroFieldIn { from { opacity: 0; } to { opacity: 1; } }
.js .hero > .field { animation: heroFieldIn 2.2s cubic-bezier(.3, 0, .2, 1) both; }

/* ── HERO v2: short laptop screens (1366×768, 1280×720/800) ── */
@media (min-width: 1021px) and (max-height: 820px) {
  .hero { min-height: max(640px, calc(100svh - var(--ticker-h))); padding-top: calc(var(--nav-h) + 56px); }
  .hero__mast { margin: 18px 0 22px; }
  .hero .lede { margin-bottom: 22px; }
  .hero .hero__copy { padding-bottom: 22px; }
  .hero__base { padding: 16px 0 18px; }
  .hero .run__feed { min-height: 120px; }
  .brand__logo { height: 88px; margin-top: 18px; }
}

/* ── HERO v2: in-between widths ── */
@media (max-width: 1240px) and (min-width: 1021px) {
  .hero .hero__specs > div { padding: 0 14px; }
  .hero .hero__specs .k { font-size: 9.5px; letter-spacing: .1em; }
  .run__tab { letter-spacing: .06em; padding-left: 2px; padding-right: 2px; }
}
@media (max-width: 1180px) and (min-width: 1021px) {
  .hero .hero__specs { grid-template-columns: 1fr 1fr; row-gap: 18px; }
  .hero .hero__specs > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .hero .hero__specs > div:nth-child(even) { padding-right: 0; }
}

/* ── HERO v2: tablet + phone ── */
@media (max-width: 1020px) {
  .hero {
    grid-template-columns: minmax(0, 1fr); grid-template-rows: none;
    grid-template-areas: "title" "mast" "copy" "run" "base";
    padding-top: calc(var(--nav-h) + 56px); min-height: 0;
  }
  .hero .run { align-self: start; margin: 0 0 36px; }
  .hero__mast { margin: 26px 0 30px; }
  .hero .run__feed { flex: none; height: 262px; min-height: 0; }
  .hero .hero__copy { padding-bottom: 40px; }
  .hero .hero__specs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hero .hero__specs > div:nth-child(n) { border-bottom: 0; }
  /* open menu: fill the screen so the hero CTA never shows under the menu's */
  .nav.is-open { z-index: 50; min-height: 100svh; align-content: flex-start; }
}
@media (max-width: 760px) {
  .hero .hero__specs { grid-template-columns: 1fr 1fr; row-gap: 22px; }
  .hero .hero__specs > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .hero .hero__specs > div:nth-child(even) { padding-right: 0; }
}
@media (max-width: 600px) {
  .hero { padding-top: calc(var(--nav-h) + 52px); }
  .hero .hero__product { flex-wrap: wrap; gap: 10px 14px; }
  .hero .hero__by { flex-basis: 100%; font-size: 10px; }
  .hero .display .serif { font-size: 9.6vw; font-size: calc(100cqi / 9.7); }
  .hero .display .strong { font-size: 15.2vw; font-size: calc(100cqi / 6.16); white-space: normal; line-height: .86; margin-left: -.07em; }
  .hero .lede { font-size: 16px; }
  .hero .hero__ctas { display: grid; grid-template-columns: minmax(0, 1fr); }
  .hero .hero__ctas .btn { width: 100%; }
  .hero .hero__price { font-size: 10.5px; letter-spacing: .05em; }
  .run__tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .run__tab:nth-child(3n) { border-right: 0; }
  .run__tab:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .hero .run__top, .hero .run__target, .hero .run__phase { padding-left: 14px; padding-right: 14px; }
  .hero .run__phases { padding: 0 14px; }
        .hero .run__feed .finding { padding: 12px 14px; }
  .hero .hero__specs .v { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .js .hero > .field { animation: none; }
  .run__tab.is-on::after { transform: none; }
}
/* ═══ /HERO v2 ═══ */

/* companies strip: tinted caption panel runs from the screen edge, label on the content edge */
@media (min-width: 1021px) {
  .pb { padding-left: 0; grid-template-columns: calc(var(--edge) + 392px) minmax(0, 1fr); }
  /* % padding on a grid item resolves against its column (edge + 392px), so this equals --edge */
  .pb .pb__head { padding-left: calc(100% - 392px); }
}
@media (max-width: 1020px) { .pb .pb__head { padding-left: var(--gutter); } }

/* ═══ round-1 review fixes ═══════════════════════════════════════════════ */
.nw { white-space: nowrap; }
/* training: phones/tablets show every step in full */
@media (max-width: 1020px) { .train__steps li p, .train__steps li.is-on p { max-height: none; } }
/* section heads stack the same way in every section below 1120px */
@media (max-width: 1120px) { .sec__head--split { flex-direction: column; align-items: flex-start; gap: 24px; } .sec__aside { max-width: 600px; } }
/* record: platform rank cards share row lines so descriptions start level */
@media (min-width: 561px) {
  .ranks { grid-auto-rows: auto; }
  .rank { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; }
  .rank__src { margin-top: 0; align-self: end; }
}
.row__title small { white-space: nowrap; }
/* pricing: summary panel lines up with the plan cards, not the legend */
@media (min-width: 1021px) { .summary { margin-top: 30px; } }
@media (max-width: 1180px) { .plan__price { flex-direction: column; align-items: flex-start; gap: 6px; } }
/* API example: stack the panels before they get too narrow; intro paragraph on the response panel's edge */
.api__intro { padding-right: 0; }
@media (max-width: 900px) { .api, .api__intro { grid-template-columns: 1fr; } .api__intro { row-gap: 10px; } }
/* benchmarks: delta cell content centred in its reserved height */
.metric__delta { display: flex; flex-direction: column; justify-content: center; align-items: flex-end; }
/* mono label floor */
@media (min-width: 601px) {
  .tag-src, .opt__badge, .metric__ghost::after, .hero .hero__specs .k, .console__counts span { font-size: 10.5px; }
}
/* 420px panel (1021–1340): keep FINDINGS / CRITICAL inside their columns */
.cta .lede { text-wrap: pretty; }
/* request form: one-line error */
.form__err { margin: -2px 0 0; font-size: 13px; color: #b3122a; }
.form__err[hidden] { display: none; }

/* ═══ round-2 review fixes ═══════════════════════════════════════════════ */
/* record: rank titles wrap evenly */
.rank__v { text-wrap: balance; }
/* case-sensitive identifiers and times keep their case inside uppercase labels */
.label .id, [data-target-label], .ctab__m > span:not(.sev) { text-transform: none; letter-spacing: .04em; }
/* phone dock: message gets room for two readable lines */
@media (max-width: 420px) { .dock__btn { padding-left: 14px; padding-right: 14px; letter-spacing: .08em; } }
/* screen-reader-only live text */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* request form fallback actions (email-draft mode) */
.form__acts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.form__acts[hidden] { display: none; }
.form__acts button { border: 1px solid rgba(240, 226, 255, .3); background: transparent; color: #fff; padding: 11px 14px; cursor: pointer; font: 500 11px var(--mono); letter-spacing: .12em; text-transform: uppercase; transition: border-color var(--t-quick) var(--ease); }
.form__acts button:hover { border-color: var(--accent); }
.form__acts button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* ═══ round-3 review fixes ═══════════════════════════════════════════════ */
/* separator lists ("a · b · c", built by site.js / index.html): each item draws its own dot,
   and the dot of an item that starts a line falls left of the clip edge, so no line starts with "·" */
.seps-wrap { display: block; clip-path: inset(-12px -12px -12px 0); }
.seps { --sep: 1.9em; display: flex; flex-wrap: wrap; margin-left: calc(var(--sep) * -1); }
.seps > span { margin-left: var(--sep); position: relative; white-space: nowrap; }
.seps > span::before { content: "·"; position: absolute; left: calc(var(--sep) / -2 - .3em); width: .6em; text-align: center; }
.seps > span.is-wrap { white-space: normal; }
.trace__chip .seps-wrap { clip-path: inset(-8px -8px -8px 0); }

/* hero sample run (desktop): two full findings fit above the fade; the console keeps file:line */
@media (min-width: 1021px) {
  .hero .run__feed .finding__loc { display: none; }
  .hero .run__feed { -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(180deg, #000 calc(100% - 28px), transparent); }
}

/* audit console: static placeholder rows hold the reserved space before and during a run */
.finding--ghost { animation: none; min-height: 71px; opacity: .5; }
.finding--ghost::before { background: var(--line-2); }
.finding--ghost .ghost__sev { grid-column: 1; display: block; width: 54px; height: 10px; margin-top: 4px; background: rgba(240,226,255,.07); }
.finding--ghost .finding__t, .finding--ghost .finding__loc { display: block; height: 10px; margin: 6px 0; background: rgba(240,226,255,.07); }
.finding--ghost .finding__t { width: 62%; }
.finding--ghost .finding__loc { width: 34%; }

/* phones: code wraps inside its panel instead of running off the edge */
@media (max-width: 600px) {
  .api__code pre, .trace__code pre { white-space: pre-wrap; overflow-wrap: anywhere; }
  .trace__code .ln { white-space: pre-wrap; }
}

/* API intro: the eyebrow sits on the heading; the paragraph stays on the response panel's edge */
@media (min-width: 901px) {
  .api__intro { grid-template-rows: 1fr auto; }
  .api__intro .label { grid-column: 1; grid-row: 1; align-self: end; margin: 0; }
  .api__intro h3 { grid-column: 1; grid-row: 2; }
  .api__intro p:not(.label) { grid-column: 2; grid-row: 1 / span 2; align-self: end; }
}

/* request: the short copy column (heading + licence meter) centres against the form instead of leaving bare canvas under it */
@media (min-width: 1021px) {
  .cta__inner { align-items: center; }
  .cta__copy { padding-top: 0; }
}

/* request timeline: "Within 1 business day" stays on one line; phones stack label over text */
.form__steps li { grid-template-columns: 158px minmax(0, 1fr); }
.form__steps b { white-space: nowrap; }
@media (max-width: 420px) { .form__steps li { grid-template-columns: 1fr; gap: 2px; } }

/* team at 1021–1180: the ID column fits René's four links on one line */
@media (min-width: 1021px) and (max-width: 1180px) {
  .member { grid-template-columns: minmax(0, 3.6fr) minmax(0, 3.8fr) minmax(0, 4.6fr); }
}

/* console phase strip: an even grid instead of a ragged wrap. Columns follow the panel's own width
   (5 in one row when they fit, else 3 + 2, else 2 + 2 + 1), and no phase name breaks inside its cell */

/* phone menu: the page's serif display voice instead of small mono labels */
@media (max-width: 1020px) {
  .nav.is-open .nav__links a { font: 400 26px/1.15 var(--serif); letter-spacing: 0; text-transform: none; padding: 14px 0; opacity: .85; }
  .nav.is-open .nav__links a.is-active { opacity: 1; border-bottom-color: var(--line); }
}
/* phones: "Est. bounty budget saved" stays on one line (left padding keeps the panel's 14px edge) */
/* phone menu opened over the light #record section: keep the dark sheet (the light scrolled-nav fill made it unreadable) */
@media (max-width: 1020px) {
  body[data-theme="light"] .nav.is-open { background: var(--bg); border-bottom-color: var(--line); }
}

/* ═══ HERO v3 ═══════════════════════════════════════════════════════════════
   Owner feedback: the panel goes back up beside the headline, in its own column,
   overlapping nothing; the stats band runs full width underneath. The panel is a
   calm pre-release review with one summary line.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (min-width: 1021px) {
  .hero {
    grid-template-columns: minmax(0, 1fr) var(--run-w);
    grid-template-rows: minmax(0, 1fr) auto auto auto minmax(32px, .55fr) auto;
    grid-template-areas: ". ." "mast run" "title run" "copy run" ". ." "base base";
    padding-top: calc(var(--nav-h) + 40px);
  }
  .hero__mast { margin: 0 0 clamp(18px, 1.7vw, 28px); }
  .hero__title { margin: 0 0 clamp(22px, 2vw, 34px); }
  .hero .display .strong { font-size: calc((100cqi - var(--run-w) - var(--hero-gap)) / 10.7); margin-left: -.06em; }
  .hero .display .serif { font-size: calc((100cqi - var(--run-w) - var(--hero-gap)) / 10.7 * .62); }
  .hero .hero__copy { padding-bottom: 0; }
  .hero .run { align-self: stretch; min-height: 0; }
  .hero .run__feed { min-height: 168px; }
}
.hero__base { margin-top: 0; }
@media (min-width: 1021px) and (max-height: 820px) {
  .hero { padding-top: calc(var(--nav-h) + 28px); }
  .hero .run__feed { min-height: 140px; }
}
@media (max-width: 1020px) {
  .hero { grid-template-areas: "mast" "title" "copy" "run" "base"; }
  .hero__mast { margin: 0 0 22px; }
  .hero__title { margin: 0 0 26px; }
}

/* pre-release summary: one calm line instead of three counters */
.run__sum { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; padding: 14px 20px 16px; border-top: 1px solid var(--line); background: rgba(255,255,255,.02); }
.run__caught, .run__saved { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.run__saved { align-items: flex-end; text-align: right; }
.run__sum .k { font: 500 10px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: #a99cb8; }
.run__caught b { font: 500 13px/1.35 var(--mono); letter-spacing: .04em; color: #fff; text-transform: uppercase; }
.run__saved b { font: 700 22px/1 var(--strong); font-stretch: 112%; color: var(--accent); font-variant-numeric: tabular-nums lining-nums; }
@media (max-width: 600px) { .run__sum { padding: 12px 14px 14px; } .run__saved b { font-size: 19px; } .run__caught b { font-size: 12px; } }
.run__caught b, .run__sum .k { white-space: nowrap; }
.hero .run__top { grid-template-columns: auto minmax(0, 1fr) auto; }
.hero .run__mode { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 600px) { .hero .run__top { gap: 10px; } .hero .run__mode { font-size: 9.5px; letter-spacing: .1em; } }
/* ═══ /HERO v3 ═══ */

/* ═══ MODEL SECTION ═════════════════════════════════════════════════════════ */
.model { display: grid; gap: 16px; }
.model__pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pillar { position: relative; padding: clamp(24px, 2.6vw, 36px); border: 1px solid var(--line-2); background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0)); }
.pillar--accent { border-color: rgba(255,122,61,.5); background: linear-gradient(180deg, rgba(255,122,61,.08), rgba(255,122,61,0) 70%); }
.pillar__t { margin: 0 0 12px; font: 760 clamp(24px, 2.4vw, 34px)/1.05 var(--strong); font-stretch: 118%; text-transform: uppercase; letter-spacing: -.01em; color: #fff; }
.pillar--accent .pillar__t { color: var(--accent); }
.pillar__b { margin: 0; max-width: 58ch; font-size: 16px; line-height: 1.6; color: var(--txt-2); }
.spec { margin: 0; border: 1px solid var(--line-2); background: rgba(255,255,255,.02); }
.spec__row { display: grid; grid-template-columns: minmax(110px, .8fr) 1.6fr; gap: 16px; padding: 14px 20px; border-bottom: 1px solid var(--line); align-items: baseline; }
.spec__row:last-child { border-bottom: 0; }
.spec dt { font: 500 10.5px/1.3 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.spec dd { margin: 0; font-size: 15px; color: #fff; }
@media (max-width: 1020px) { .model__pillars { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .spec__row { grid-template-columns: 1fr; gap: 4px; padding: 12px 14px; } }
/* ═══ /MODEL SECTION ═══ */

/* ── key-phrase highlight: white text + a soft orange marker stroke that draws in once ── */
mark.hl { color: #fff; font-weight: 500; padding: 0 .06em; -webkit-box-decoration-break: clone; box-decoration-break: clone;
  background: linear-gradient(180deg, transparent 50%, rgba(255,122,61,.2) 50%, rgba(255,122,61,.2) 96%, transparent 96%) no-repeat 0 0 / 0% 100%;
  transition: background-size 1.2s cubic-bezier(.2, .7, .1, 1) .15s; }
mark.hl.in { background-size: 100% 100%; }

.sec--light mark.hl { color: var(--ink); background-image: linear-gradient(180deg, transparent 50%, rgba(255,122,61,.26) 50%, rgba(255,122,61,.26) 96%, transparent 96%); }
.hero .lede mark.hl { color: #fff; }
@media (prefers-reduced-motion: reduce) { mark.hl { transition: none; background-size: 100% 100%; } }

/* ── companies strip: real logos ── */
.pb .pb__cell--logo { gap: 10px; }
.pb .pb__cell--logo img { display: block; width: auto; max-width: 180px; opacity: .78; transition: opacity var(--t-quick) var(--ease); }
.pb .pb__cell--logo:hover img { opacity: 1; }
.pb .pb__name { font: 600 15px/1 var(--sans); letter-spacing: -.005em; text-transform: none; color: #d9cfe3; white-space: nowrap; }
.pb .pb__cell--logo:hover .pb__name { color: #fff; }
.pb .pb__cell--logo::after { bottom: 12px; }
@media (max-width: 1020px) { .pb .pb__cell--logo img { transform: scale(.86); transform-origin: left center; } .pb .pb__name { font-size: 13.5px; } }

/* ═══ DECLUTTER PASS (2026-11-01) ════════════════════════════════════════════
   One block, last in the file, so it overrides the earlier layers.
   ═══════════════════════════════════════════════════════════════════════════ */
/* model: three-cell spec strip under the pillars */
.spec--strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.spec--strip .spec__row { grid-template-columns: 1fr; gap: 6px; align-content: start; border-bottom: 0; border-left: 1px solid var(--line); }
.spec--strip .spec__row:first-child { border-left: 0; }
@media (max-width: 1020px) { .spec--strip { grid-template-columns: 1fr; } .spec--strip .spec__row { border-left: 0; border-bottom: 1px solid var(--line); } .spec--strip .spec__row:last-child { border-bottom: 0; } }

/* benchmarks: the BASE / PERPETUUM-1 tick label shows on the first row only */
.metric + .metric .metric__ghost::after { content: none; }
@media (max-width: 1020px) { .metric + .metric { padding-bottom: 18px; } }

/* case files: severity, time and replay sit beside the title (the footer strip is gone) */
.case__side { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; min-width: 0; }
@media (max-width: 1100px) { .case__side { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; } }

/* audits: CI block is the intro beside one request window */
@media (min-width: 901px) {
  .api { grid-template-columns: minmax(0, 4fr) minmax(0, 5fr); }
  .api__intro { grid-column: auto; display: block; padding: 8px 0 0; }
  .api__intro .label { margin: 0 0 10px; }
  .api__intro h3 { margin: 0 0 10px; }
}

/* record: four rank cards, the rest behind "Show 4 more rankings" (phones keep all of them in the swipe row) */
.ranks { margin-bottom: 16px; }
@media (min-width: 561px) { .ranks:not(.is-open) .rank.is-more { display: none; } }
.ranks__foot { margin-bottom: var(--block); }
.ranks__foot .record__more { margin-top: 0; }
@media (max-width: 560px) { .ranks__foot { display: none; } .ranks { margin-bottom: var(--block); } }

/* team: three cards instead of three wide rows */
.team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; border-top: 0; }
.team .member { display: flex; flex-direction: column; gap: 18px; padding: clamp(20px, 2vw, 28px); border: 1px solid var(--line-2); }
.member__facts { margin-top: 0; }
@media (max-width: 1020px) { .team { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .team { grid-template-columns: 1fr; } }

/* footer: contact column only */
.foot__nav { grid-template-columns: 1fr; width: auto; }

/* ═══ ENGAGEMENT PASS (2026-11-01) ═════════════════════════════════════════ */
/* case files: trace stepper. Only the open step shows its body; the others are one row each */
.trace__row { all: unset; box-sizing: border-box; width: 100%; min-height: 40px; cursor: pointer; display: grid; grid-template-columns: 34px auto minmax(0, 1fr); gap: 14px; align-items: center; }
.trace__row .trace__phase { margin: 0; white-space: nowrap; }
.trace__peek { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--muted); font-size: 14px; transition: color var(--t-quick) var(--ease); }
.trace__peek::before { content: attr(data-peek); }
.trace__row:hover .trace__peek { color: var(--txt-2); }
.trace__step.is-open .trace__peek { visibility: hidden; }
.trace__body { padding: 6px 0 4px 48px; }
.trace__body[hidden] { padding: 0; }
.trace__step.is-done .trace__n { font-size: 0; }
/* the hidden number stays in the box as a zero-size text item, so the check is laid over the whole box */
.trace__step.is-done .trace__n::after { content: "✓"; content: "✓" / ""; position: absolute; inset: 0; display: grid; place-items: center; font-size: 12px; line-height: 1; color: var(--accent); }
.trace__step.is-done.is-active .trace__n::after { color: var(--accent-ink); }
.trace__step.is-done::before { background: var(--accent); }
.trace__row:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ctab.is-viewed .ctab__k::after { content: "✓"; content: "✓" / ""; margin-left: 8px; color: var(--accent); }
@media (max-width: 700px) {
  .trace__row { grid-template-columns: 30px auto minmax(0, 1fr); gap: 12px; }
  .trace__step::before { top: 18px; bottom: -18px; }
  .trace__body { padding-left: 42px; }
  .trace__body[hidden] { padding: 0; }
}

/* pricing summary: break-even estimate with its own stepper */
.be__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.be__step { display: flex; align-items: center; gap: 6px; }
.be__step button { all: unset; width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(20,10,31,.25); cursor: pointer; }
.be__step button:disabled, .be__step button[aria-disabled="true"] { opacity: .35; cursor: default; }
.be__step button:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.be__step output { min-width: 2ch; text-align: center; font: 600 15px var(--mono); color: var(--ink); }
.be__bar { position: relative; height: 6px; margin: 12px 0 10px; background: rgba(20,10,31,.12); }
.be__fill { position: absolute; inset: 0 auto 0 0; background: var(--accent); transition: width .4s var(--ease); }
.be__mark { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--ink); }
.be__out { margin: 0; }

/* ═══ QA PASS 3 (2026-11-01) ═════════════════════════════════════════════════ */
/* team on tablets: three full-width cards (name and links left, facts right) instead of 2 + 1 */
@media (min-width: 601px) and (max-width: 1020px) {
  .team { grid-template-columns: minmax(0, 1fr); }
  .team .member { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 16px 32px; align-items: start; }
  .team .member__id { grid-column: auto; }
}

/* pricing summary on short desktop screens: tighter spacing so the sticky summary fits under the nav without being shifted */
@media (min-width: 1021px) and (max-height: 860px) {
  .summary { padding: 18px 20px; }
  .summary > .label { margin: 2px 0 10px; }
  .summary__lines li { padding: 8px 0; }
  .summary__total { padding: 12px 0 10px; }
  .summary__total small { margin-top: 6px; }
  .summary__roi { margin-bottom: 10px; padding: 10px 12px; }
  .be__bar { margin: 8px 0; }
  .summary__lock { margin-bottom: 10px; }
  .summary__fine { margin-top: 8px; }
}

/* case files: the stacked layout (tabs in a row above the case) at every width, so no empty column sits beside the trace */
.cases { grid-template-columns: minmax(0, 1fr); }
.cases__list { position: static; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.case__head { grid-template-columns: minmax(0, 1fr); }
.case__side { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; }

/* record table: company logos in the Program column */
.row__vendor--logo { display: inline-flex; align-items: center; gap: 10px; min-height: 26px; }
.row__vendor--logo img { display: block; width: auto; max-width: 150px; opacity: .88; }
.row:hover .row__vendor--logo img { opacity: 1; }
.row__vname { font: 600 15px/1 var(--sans); color: var(--ink); letter-spacing: -.005em; }

/* ═══ PRECISION PASS (2026-11-01) ═══════════════════════════════════════════
   Calm by default: nothing moves unless the visitor caused it or a demo they are
   watching is running. One block, last in the file, so it overrides earlier layers.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 0.1 motion tokens (easing is always var(--ease); the logo marquee stays linear) ── */
:root {
  --t-quick: 140ms;   /* colour, border and background state changes */
  --t-move: 220ms;    /* icons and small nudges */
  --t-glide: 320ms;   /* list re-layout */
  --t-enter: 650ms;   /* section headings */
  --t-data: 1200ms;   /* bars and data animations */
}

/* ── 0.2 stack: rows placed with `translate` only (site.js makeStack) ── */
.stack { position: relative; }
.stack > * { position: absolute; top: var(--stack-top, 0px); left: var(--stack-x, 0px); right: var(--stack-x, 0px);
  translate: 0 var(--y, 0px); transition: translate var(--t-glide) var(--ease), opacity var(--fade, var(--t-quick)) var(--ease); }
.stack.no-anim > *, .stack > .is-placing { transition: none; }
.stack > .is-leaving { opacity: 0; pointer-events: none; }
/* a row that has played its entrance never replays it when it moves in the DOM */
.finding.is-static, .feed__done.is-static { animation: none; }

/* ── 0.4 stretched link: the whole card or row is the link's hit area ── */
.has-stretch { position: relative; }
.has-stretch .stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.has-stretch:has(.stretch:focus-visible) { outline: 2px solid var(--focus, var(--accent)); outline-offset: 2px; }
.has-stretch .stretch:focus-visible { outline: none; }
@supports not selector(:has(*)) { .has-stretch:focus-within { outline: 2px solid var(--focus, var(--accent)); outline-offset: 2px; } }

/* ── A19 native UI follows the surface ── */
:root { color-scheme: dark; }
.sec--light, .summary, .form { color-scheme: light; }

/* ── A12 focus: one ring, ink on light surfaces, accent on dark ones ── */
.sec--light, .summary, .form, body[data-theme="light"] .nav.is-scrolled:not(.is-open) { --focus: var(--ink); }
.form__cfg, .form__done { --focus: var(--accent); }
:focus-visible { outline: 2px solid var(--focus, var(--accent)); }
.targets button:focus-visible, .depth button:focus-visible, .seg-ctl button:focus-visible, .chips button:focus-visible,
.ctab:focus-visible, .case__replay:focus-visible, .toggle button:focus-visible, .member__links a:focus-visible,
.form__acts button:focus-visible, .trace__row:focus-visible { outline-color: var(--focus, var(--accent)); }
.plan input:focus-visible + .plan__body, .switch input:focus-visible + .switch__ui { outline-color: var(--focus, var(--accent)); }
.form input:focus, .form textarea:focus { box-shadow: none; }
.form input:focus-visible, .form textarea:focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; }
.form .is-bad:focus { box-shadow: 0 0 0 3px rgba(214, 31, 54, .18); }
.form input::placeholder, .form textarea::placeholder { color: #6f6579; }

/* ── A12 states: quick colour changes, a 1px press, arrows that follow their direction ── */
.btn { transition: background-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease), transform var(--t-quick) var(--ease); }
.btn:active { transform: translateY(1px); }
.btn--accent:active { background: #f26b2e; }
.btn--ink:active { background: #0f0717; }
.run__tab:active, .ctab:active, .targets button:active, .depth button:active, .seg-ctl button:active, .chips button:active, .case__replay:active { background-color: rgba(255, 255, 255, .06); }
.chipf:active, .record__more:active, .be__step button:active { background-color: rgba(20, 10, 31, .06); }
[data-start-audit]:hover i { transform: translateY(3px); }
.case__replay i { display: inline-block; font-style: normal; transition: transform var(--t-move) var(--ease); }
.case__replay:hover i { transform: rotate(-90deg); }
.be__step button { transition: border-color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease); }
.be__step button:hover { border-color: var(--ink); background: rgba(20, 10, 31, .05); }
.be__mark { transition: left .4s var(--ease); }
/* one link pattern: an underline that fades in under the text */
.announce a, .hero__price a, .form__edit, .foot__nav a, .foot__legal a {
  text-decoration-line: underline; text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: 3px;
  transition: color var(--t-quick) var(--ease), text-decoration-color var(--t-quick) var(--ease); }
.announce a:hover, .hero__price a:hover, .form__edit:hover, .foot__nav a:hover, .foot__legal a:hover { text-decoration-line: underline; text-decoration-color: currentColor; }
.foot__nav a, .foot__nav a:hover { border-bottom: 0; }
/* the busy run button keeps its focus (aria-disabled instead of disabled) */
.btn[aria-disabled="true"] { pointer-events: none; }
.btn--accent[aria-disabled="true"] { opacity: 1; background: rgba(255, 122, 61, .12); color: var(--accent); border-color: rgba(255, 122, 61, .45); }

/* ── A2 hero: the headline is on screen from the first paint and only rises into place ── */
.js .hero [data-split] { opacity: 1; transform: none; transition: none; }
@keyframes heroRise { from { transform: translateY(.16em); } }
.js .hero .hero__title .line { animation: heroRise .7s var(--ease) both; }
.js .hero .hero__title .line + .line { animation-delay: 80ms; }
.js .hero > .field { animation: none; opacity: 0; }
.js .hero > .field.is-ready { opacity: 1; animation: heroFieldIn 1.2s cubic-bezier(.3, 0, .2, 1) both; }
.hero mark.hl { transition-delay: 0s; }
.pp .sr-only { text-transform: none; letter-spacing: normal; }

/* ── A13 section entrances: shorter, and staggered across siblings ── */
.js [data-split] { transform: translateY(.22em); transition: opacity var(--t-enter) var(--ease), transform .7s var(--ease); }
.js [data-reveal] { transform: translateY(12px); transition: opacity .6s var(--ease), transform .6s var(--ease); transition-delay: calc(var(--i, 0) * 60ms); }
.js .hero [data-split] { transform: none; transition: none; }

/* ── A1 rows that mix fonts on one line keep their loaded height while web fonts arrive ── */
.hero .hero__product { height: var(--lock-mast, auto); }
.run__top { height: var(--lock-top, auto); }
.run__target { height: var(--lock-target, auto); }
.run__phase { height: var(--lock-phase, auto); }
/* lock values = the fonts-loaded heights (wordmark line-height 1; the byline wraps under it at 1021–1160 and on phones) */
.hero { --lock-top: 48px; --lock-target: 43px; --lock-phase: 36.17px; }
@media (min-width: 1161px) { .hero { --lock-mast: clamp(17px, 1.42vw, 26px); } }
@media (min-width: 1021px) and (max-width: 1160px) {
  .hero { --lock-mast: 41.1px; }
  /* A11: the byline wraps under the wordmark instead of running out of its column */
  .hero .hero__product { flex-wrap: wrap; row-gap: 8px; }
  .hero__rule { display: none; }
  .hero .hero__by { flex-basis: 100%; }
}
@media (min-width: 601px) and (max-width: 1020px) { .hero { --lock-mast: 17px; } }
@media (max-width: 600px) { .hero { --lock-mast: 41px; } }

/* ── A4 hero sample run: rows glide into severity order; old rows dim until the next run's first finding ── */
/* the product tabs are built by site.js; their row is reserved so a first paint before the script runs has the same height */
.js .run__tabs:empty { display: block; height: 34px; }
@media (max-width: 600px) { .js .run__tabs:empty { height: 68px; } }
.hero .run { -webkit-backdrop-filter: none; backdrop-filter: none; }
.run__panel { position: relative; min-width: 0; display: flex; flex-direction: column; }
.hero .run__panel { flex: 1 1 0; min-height: 168px; }
.hero .run__panel > .run__feed { flex: 1 1 0; height: auto; min-height: 0; }
@media (min-width: 1021px) and (max-height: 820px) { .hero .run__panel { min-height: 140px; } }
@media (max-width: 1020px) { .hero .run__panel { flex: none; height: 262px; min-height: 0; } }
.run__feed.stack > .finding { animation-duration: 360ms;
  transition: translate var(--t-glide) var(--ease), opacity var(--fade, var(--t-quick)) var(--ease), background-color 1.2s var(--ease); }
.run__feed.stack.no-anim > .finding, .run__feed.stack > .finding.is-placing { transition: none; }
.run__feed .finding.is-stale:not(.is-leaving) { opacity: .35; }
.run__repo, .run__ref { transition: opacity 160ms var(--ease); }
/* the estimate keeps the width of its largest sample value, so its right-aligned figure never slides */
.run__saved b { min-width: 6.4ch; text-align: right; }
.run__phase span:last-child { min-width: 4.5ch; text-align: right; }
@media (min-width: 601px) { .console__status { min-width: calc(5.76em + 14px); justify-content: flex-end; } }
/* the console progress bar fills with a transform (no layout while a run continues off screen) */
.console__progress > div { width: 100%; transform-origin: left; transform: scaleX(var(--pp, 0)); transition: transform .4s linear; }
.run__repo.is-swap, .run__ref.is-swap { opacity: 0; }

/* ── A3 case trace: one rail, rows glide, the open body fades ── */
.trace.stack { --stack-x: 24px; --stack-top: 18px; flex: none; }
.trace.stack > .trace__step { z-index: 1; }
.trace.stack .trace__step::before { content: none; }
.trace.stack::before, .trace.stack::after { content: ""; position: absolute; left: calc(var(--stack-x) + 17px); top: calc(var(--stack-top) + var(--rail-top, 20px));
  width: 1px; height: var(--rail-h, 0px); pointer-events: none; transition: height var(--t-glide) var(--ease), transform var(--t-glide) var(--ease); }
.trace.stack::before { background: var(--line-2); }
.trace.stack::after { background: var(--accent); transform-origin: top; transform: scaleY(var(--rail-p, 0)); }
.trace.stack.no-anim::before, .trace.stack.no-anim::after { transition: none; }
.trace.stack .trace__body { transition: opacity 200ms var(--ease), transform 200ms var(--ease); }
.trace.stack .trace__body.is-leaving { opacity: 0; transition-duration: 120ms; }
.trace.stack .trace__body.is-entering { opacity: 0; transform: translateY(4px); transition: none; }
/* typing caret: a zero-width element re-created on each tick (the old ::after caret moved every frame) */
/* the dim preview of the text being typed is drawn from data-full (decorative; the ghost span only holds the height) */
.trace__step.is-typing .trace__ghost { visibility: hidden; }
.trace__step.is-typing .trace__text::before { content: attr(data-full); grid-area: 1 / 1; opacity: .35; pointer-events: none; }
.trace__step.is-typing .trace__live::after { content: none; }
.trace__caret { display: inline-block; width: 0; font-style: normal; }
.trace__caret::after { content: "▍"; color: var(--accent); }
/* pending steps are marked on the number box only (text keeps full contrast) */
.trace__step:not(.is-done):not(.is-open):not(.is-active) .trace__n { color: var(--muted); border-color: var(--line); }
.trace, [data-case-kicker], [data-case-title], [data-case-meta] { transition: opacity 200ms var(--ease); }
.trace.is-xfade, .is-xfade { opacity: 0; transition-duration: 160ms; }
@media (max-width: 700px) {
  .trace.stack { --stack-x: 14px; --stack-top: 16px; }
  .trace.stack::before, .trace.stack::after { left: calc(var(--stack-x) + 15px); }
}

/* ── A5 audit console: placeholders hold the slots; findings land in place ── */
.finding--ghost.is-fresh { animation: ghostIn var(--t-quick) var(--ease) backwards; }
@keyframes ghostIn { from { opacity: 0; } }

/* ── A9 training steps (pinned desktop): rows glide, the step text fades ── */
.train__steps.stack > li { position: absolute; transition: translate var(--t-glide) var(--ease), opacity .5s, border-color .5s; }
.train__steps.stack.no-anim > li { transition: none; }
.train__steps.stack li p { max-height: none; overflow: visible; position: absolute; left: 22px; right: 0; visibility: hidden; opacity: 0;
  transition: opacity var(--t-quick) var(--ease), visibility 0s linear var(--t-quick); }
.train__steps.stack li.is-on p { position: static; visibility: visible; opacity: 1; transition: opacity var(--t-quick) var(--ease) var(--t-quick), visibility 0s; }

/* ── A6 logo strip: moves only on screen; hover or focus in the rows holds it ── */
.paidby, .pb__rows .marquee { overflow: clip; }
.paidby:hover .marquee__track { animation-play-state: running; }
.pb__rows:hover .marquee__track, .pb__rows:focus-within .marquee__track,
.paidby.is-offscreen .marquee__track { animation-play-state: paused; }
/* A17: the cells lost the 32px padding the old ticker rule leaked into the names, so the loops are re-timed to keep
   the same speed in px/s (desktop 20.8 / 23.9 px/s, phones 19.5 / 23.0 px/s) */
.paidby .marquee__track { animation-duration: 97.5s; }
.paidby .marquee__track--rev { animation-duration: 105.5s; }
@media (max-width: 1020px) { .paidby .marquee__track { animation-duration: 96.5s; } .paidby .marquee__track--rev { animation-duration: 103.5s; } }
/* only logos that open evidence get a hover state */
.pb .pb__cell:not(.pb__cell--link):hover { background: none; }
.pb .pb__cell:not(.pb__cell--link):hover::after { transform: scaleX(0); }
.pb .pb__cell--logo:not(.pb__cell--link):hover img { opacity: .78; }
.pb .pb__cell--logo:not(.pb__cell--link):hover .pb__name { color: #d9cfe3; }
.pb .marquee + .marquee .pb__cell--logo:not(.pb__cell--link):hover .pb__name { color: #d9cfe3; }
@media (prefers-reduced-motion: reduce) {
  .pb__cell[aria-hidden="true"] { display: none; }
  .paidby .marquee__track { flex-wrap: wrap; width: auto; animation: none; }
  .pb__rows .marquee { overflow: visible; -webkit-mask-image: none; mask-image: none; }
}

/* ── A8 benchmarks: the bar width is driven with its label (site.js), the delta fades in after ── */
.metric__bar { transition: background-color .4s; }
.metric__delta { transition: opacity 240ms var(--ease), transform 240ms var(--ease); }
.metric__delta.is-wait { opacity: 0; transform: translateY(4px); transition: none; }

/* ── A14 FAQ answers open and close smoothly (Chrome 131+; elsewhere as before) ── */
.faq details { interpolate-size: allow-keywords; }
.faq details::details-content { block-size: 0; overflow: clip; transition: block-size .28s var(--ease), content-visibility .28s allow-discrete; }
.faq details[open]::details-content { block-size: auto; }

/* ── A15 record: honest link areas, quiet arrows, visible reveals ── */
.row:not(.row--head):hover .row__src a { color: #c2410c; border-color: var(--accent); }
.row__title { position: relative; z-index: 2; pointer-events: none; }
a.kpi { position: relative; }
a.kpi::after { content: "↗"; position: absolute; top: 24px; right: 16px; font: 500 12px var(--mono); color: var(--muted-l); transition: color var(--t-quick) var(--ease); }
a.kpi:hover::after, a.kpi:focus-visible::after { color: #c2410c; }
.rank:hover .rank__src { color: #c2410c; }
@keyframes recIn { from { opacity: 0; transform: translateY(6px); } }
.row.is-entering, .rank.is-entering { animation: recIn 240ms var(--ease) both; animation-delay: calc(var(--ri, 0) * 30ms); }
.table .row:not(.row--head) { transition: background-color var(--t-quick) var(--ease), opacity 160ms var(--ease); }
.table.is-fading .row:not(.row--head) { opacity: 0; transition-duration: var(--t-quick), 100ms; }
/* A16: the column headers stay in the accessibility tree on small screens */
@media (max-width: 1020px) {
  .row--head { display: grid; position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
}

/* ── A10 nav: the bar is drawn on ::before, so scrolling never changes the nav's layout ── */
.nav { pointer-events: none; height: var(--nav-h); background: none; border-bottom-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none;
  transition: color 250ms var(--ease); }
.nav > * { pointer-events: auto; }
.nav.is-scrolled { --nav-h: inherit; }
.nav.is-scrolled:not(.is-open), body[data-theme="light"] .nav.is-scrolled:not(.is-open) { background: none; border-bottom-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
.nav::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 72px; z-index: -1; pointer-events: none;
  background: transparent; border-bottom: 1px solid transparent;
  transition: background-color 250ms var(--ease), border-color 250ms var(--ease); }
.nav.is-scrolled::before { pointer-events: auto; background: rgba(20, 10, 31, .9); border-bottom-color: var(--line);
  -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); }
body[data-theme="light"] .nav.is-scrolled::before { background: rgba(243, 241, 244, .92); border-bottom-color: var(--line-l); }
/* both logos share one grid cell and swap by opacity; the shrink is a transform of the resting box */
.brand { display: grid; grid-template-rows: 100%; align-items: center; }
.brand__logo { grid-area: 1 / 1; transform-origin: left top; transition: transform .4s var(--ease), opacity 250ms var(--ease); }
.brand__logo--dark { display: block; opacity: 0; }
body[data-theme="light"] .nav.is-scrolled .brand__logo--light { display: block; opacity: 0; }
body[data-theme="light"] .nav.is-scrolled .brand__logo--dark { display: block; opacity: 1; }
.nav.is-scrolled .brand__logo { height: 108px; margin-top: 30px; transform: translateY(4px) scale(calc(58 / 108)); filter: none; }
.nav__links, .nav__cta, .nav__burger { transition: translate .4s var(--ease); }
.nav.is-scrolled .nav__links, .nav.is-scrolled .nav__cta { translate: 0 -6px; }
@media (min-width: 1021px) and (max-height: 820px) {
  .nav.is-scrolled .brand__logo { height: 88px; margin-top: 18px; transform: scale(calc(58 / 88)); }
}
@media (max-width: 1020px) {
  .nav.is-scrolled .brand__logo { height: 76px; margin-top: 18px; transform: translateY(2px) scale(calc(58 / 76)); }
  .nav.is-scrolled .nav__burger { translate: 0 2px; }
  /* phone menu: the sheet fades in, the links rise in turn; closing is instant */
  .nav.is-open { pointer-events: auto; animation: navSheet 160ms var(--ease) both; }
  .nav.is-open .nav__links, .nav.is-open .nav__cta { translate: none; }
  .nav.is-open .nav__links a, .nav.is-open .nav__cta { animation: navLink 240ms var(--ease) both; animation-delay: calc(var(--n, 0) * 25ms); }
  .nav.is-open .nav__links a:nth-child(2) { --n: 1; } .nav.is-open .nav__links a:nth-child(3) { --n: 2; } .nav.is-open .nav__links a:nth-child(4) { --n: 3; }
  .nav.is-open .nav__links a:nth-child(5) { --n: 4; } .nav.is-open .nav__links a:nth-child(6) { --n: 5; } .nav.is-open .nav__cta { --n: 6; }
  body[data-theme="light"] .nav.is-open { --focus: var(--accent); }
  body[data-theme="light"] .nav.is-open::before { background: rgba(20, 10, 31, .9); border-bottom-color: var(--line); }
  body[data-theme="light"] .nav.is-open .brand__logo--light { opacity: 1; }
  body[data-theme="light"] .nav.is-open .brand__logo--dark { opacity: 0; }
}
@keyframes navSheet { from { background-color: rgba(20, 10, 31, 0); } }
@keyframes navLink { from { opacity: 0; transform: translateY(6px); } }

/* ── A11 widths: the console phase strip wraps evenly; the dock fits 360px; hyphenated words stay whole ── */
.console__phases { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 18px; }
.console__phases li { white-space: nowrap; }
.dock__msg b { white-space: nowrap; }
@media (max-width: 379px) { .dock__btn { padding: 0 12px; gap: 10px; letter-spacing: .06em; } .dock { gap: 8px; } }
.plan__list .nw { padding: 0; border: 0; position: static; font-size: inherit; color: inherit; }
.plan__list .nw::before { content: none; }

/* ── A20 small mono labels: three sizes ──
   s: captions and meta inside panels, m: section and card labels, btn: buttons and controls.
   Exceptions (space-bound): .run__tab and the phone .hero__specs .k stay at 10px; the announce bar and the
   phone run summary keep their tighter tracking; the price line keeps .06em tracking. */
:root {
  --lab-s: 500 10.5px/1.35 var(--mono);
  --lab-m: 500 11.5px/1.35 var(--mono);
  --lab-btn: 500 12px/1 var(--mono);
}
.finding__meta, .sev, .run__mode, .run__phase, .run__target .k, .run__sum .k, .console__status, .console__counts span, .console__phases,
.win__bar .label, .depth button small, .seg-ctl button small, .metric__delta small, .metric__ghost::after, .plan__tag, .plan__price small,
.summary__total small, .form label > span, .form__steps b, .form__cfg .label, .dock__live, .ctab__k, .ctab__m, .trace__phase, .trace__chip, .spec dt,
.rank__src, .row--head, .tag-src, .opt__badge, .tbar { font: var(--lab-s); letter-spacing: .12em; }
.sev { line-height: 1; }
.summary__total small { line-height: 1.5; }
.label, .eyebrow, .k, .train__steps .n, .rank__p, .chipf, .row__src, .quote footer, .member__links a, .form__edit, .record__more,
.case__replay, .form__acts button, .cohort__row, .pb__label { font: var(--lab-m); letter-spacing: .14em; }
.hero__by { font: var(--lab-m); letter-spacing: .14em; line-height: 1.4; }
.member__role { font: var(--lab-m); letter-spacing: .14em; line-height: 1.5; }
.row__amt.row__amt--muted { font: var(--lab-m); letter-spacing: .14em; line-height: 1; }
.hero__price { font: var(--lab-m); letter-spacing: .06em; line-height: 1.5; }
.btn, .btn--lg, .toggle button, .depth button, .opt legend, .train__sub { font: var(--lab-btn); letter-spacing: .12em; }
.depth button { line-height: 1.35; }
.hero .hero__specs .k { font-size: 10.5px; }
.run__tab { font-size: 10px; }
@media (max-width: 600px) { .hero .hero__specs .k { font-size: 10px; } .hero .hero__by { font-size: 10px; letter-spacing: .12em; } }
@media (max-width: 420px) { .run__sum .k { letter-spacing: .06em; } }
@media (max-width: 520px) { .announce { font-size: 10px; letter-spacing: .06em; } }
@media (max-width: 1180px) { .nav__links a { letter-spacing: .08em; } .console__phases { letter-spacing: .06em; column-gap: 12px; } }
.nav__links a { font: 500 11.5px/1 var(--mono); }
/* space-bound exceptions that keep their tighter tracking on phones */
@media (max-width: 700px) { .ctab__k { font-size: 10px; letter-spacing: .1em; } .ctab__m { font-size: 10px; letter-spacing: .08em; } }
@media (max-width: 420px) { .dock__btn { letter-spacing: .08em; } }
@media (max-width: 379px) { .dock__btn { padding: 0 12px; gap: 10px; letter-spacing: .06em; } .dock { gap: 8px; } }
/* the summary lines clip a wrapped line's leading dot with overflow instead of clip-path (same look; contrast tools read the light surface) */
.summary .seps-wrap { clip-path: none; overflow-x: clip; }
/* phones: the logos scale with zoom (not a transform), so the icon-to-name gap stays 10px */
@media (max-width: 1020px) { .pb .pb__cell--logo img { transform: none; zoom: .86; } }
/* phone menu: the brand keeps its closed-bar box (the logo does not drop when the sheet opens); the sheet draws its own fill */
@media (max-width: 1020px) {
  .nav.is-open.is-scrolled .brand { height: var(--nav-h); }
  .nav.is-open::before, body[data-theme="light"] .nav.is-open::before { background: transparent; border-bottom-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* ── B. interaction upgrades: every claim opens the data behind it, only when the visitor asks ──
   One language: the trigger is the claim itself (a 1px underline or an accent edge on hover and focus),
   revealed content fades and rises (140–240ms), every reveal has a keyboard path and closes with Esc. */

/* B5 hero figures: the whole cell goes to the section that backs it; the small label turns white and underlines */
.hero__specs a { color: inherit; text-decoration: none; }
.hero__specs .stretch { text-decoration-line: underline; text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: 3px;
  transition: text-decoration-color var(--t-quick) var(--ease); }
.hero .hero__specs .k { transition: color var(--t-quick) var(--ease); }
.hero .hero__specs .has-stretch:hover .k, .hero .hero__specs .has-stretch:has(a:focus-visible) .k { color: #fff; }
.hero__specs .has-stretch:hover .stretch, .hero__specs .has-stretch:has(a:focus-visible) .stretch { text-decoration-color: currentColor; }
/* the pinned training section lands at its own top (0%), as it does when entered by scrolling */
@media (min-width: 1021px) { #training { scroll-margin-top: -76px; } }

/* B4 benchmarks: the grey marker carries the other model's value. Row 1 keeps its word at rest; rows 2–4 show nothing
   until hover, a tap on the bar, or keyboard focus on the Base / Perpetuum-1 toggle */
.metric + .metric .metric__ghost::after { content: attr(data-lv); opacity: 0; transition: opacity var(--t-quick) var(--ease); }
@media (hover: hover) {
  .metric:hover .metric__ghost::after { opacity: 1; }
  .metric:first-child:hover .metric__ghost::after { content: attr(data-lv); }
}
.metric.is-peek .metric__ghost::after, .metrics.is-peek .metric__ghost::after { opacity: 1; content: attr(data-lv); }
.metric__ghost[data-al="start"]::after { left: 0; transform: none; }
.metric__ghost[data-al="end"]::after { left: auto; right: 0; transform: none; }
.metric__ghost::after { pointer-events: none; }
/* a taller tap area for the bar (inside the row's own padding) */
.metric__track::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; bottom: -10px; }
/* measures a label's width for the placement above (never visible) */
.metric__probe { position: absolute; left: 0; top: 0; visibility: hidden; pointer-events: none; white-space: nowrap; font: var(--lab-s); letter-spacing: .12em; text-transform: uppercase; }
/* phones and tablets: the label sits under the bar, so every row keeps the bottom room row 1 has */
@media (max-width: 1020px) { .metric + .metric { padding-bottom: 28px; } }

/* B2 the estimate opens its basis */
.run__sum { position: relative; z-index: 2; }
.run__basis { -webkit-appearance: none; appearance: none; margin: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer;
  display: flex; flex-direction: column; align-items: flex-end; gap: 6px; min-width: 0; text-align: right; }
.run__basis .k, .feed__basis { text-decoration-line: underline; text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: 3px;
  transition: text-decoration-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease); }
.run__basis:hover .k, .run__basis:focus-visible .k, .run__basis[aria-expanded="true"] .k { text-decoration-color: currentColor; color: var(--txt-2); }
.run__basis:focus-visible { outline-offset: 4px; }
.feed__basis { -webkit-appearance: none; appearance: none; display: inline; margin: 0; padding: 0; border: 0; background: none; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; cursor: pointer; }
.feed__basis:hover, .feed__basis:focus-visible, .feed__basis[aria-expanded="true"] { color: #fff; text-decoration-color: currentColor; }
.basis { position: absolute; z-index: 3; right: 20px; bottom: calc(100% + 8px); width: 280px; max-width: calc(100% - 28px);
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 16px; padding: 12px 14px;
  background: #10071a; border: 1px solid var(--line-2); box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .8);
  font: 500 11.5px/1.35 var(--mono); letter-spacing: .08em; text-transform: uppercase; text-align: left; color: var(--txt-2); white-space: nowrap;
  animation: basisIn 160ms var(--ease) both; }
.basis[hidden] { display: none; }
.basis b { font-weight: 500; text-align: right; color: #fff; font-variant-numeric: tabular-nums; }
.basis .basis__rev { color: var(--muted); }
.basis__rule { grid-column: 1 / -1; height: 1px; margin: 2px 0 1px; background: var(--line-2); }
.basis .basis__total { color: #fff; font-weight: 600; }
@keyframes basisIn { from { opacity: 0; transform: translateY(4px); } }
/* in the console it opens under the summary line, over the findings */
.feed > .feed__done { z-index: 2; }
.basis--below { top: calc(100% - 4px); bottom: auto; left: 18px; right: auto; }
@media (max-width: 600px) {
  .run__sum .basis { left: 0; right: 0; bottom: 100%; width: auto; max-width: none; }
  .basis--below { left: 14px; right: 14px; width: auto; max-width: none; }
}

/* B3 a demo finding links to its trace; the trace's Report chip links to the paid public report */
.finding__trace { font: var(--lab-s); letter-spacing: .12em; color: var(--accent); white-space: nowrap; text-decoration-line: underline; text-decoration-color: transparent;
  text-decoration-thickness: 1px; text-underline-offset: 3px; transition: text-decoration-color var(--t-quick) var(--ease), opacity 160ms var(--ease); }
.finding__trace:hover, .finding__trace:focus-visible { text-decoration-color: currentColor; }
.finding__trace.is-pending { visibility: hidden; opacity: 0; }
a.trace__chip { text-decoration: none; transition: border-color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease); }
a.trace__chip:hover, a.trace__chip:focus-visible { border-color: var(--accent); background-color: rgba(255, 122, 61, .08); color: #ffa06f; }
a.trace__chip:active { background-color: rgba(255, 255, 255, .06); }
.row.is-target, .row.is-target:hover { box-shadow: inset 3px 0 0 var(--accent); background: #fff6f0; }

/* B1 a logo opens its company's sourced entries. Only those logos react; the rest of the strip has no hover state */
/* each marquee box is the visible strip (its grid column used to grow to the track's full length), so the 6% edge fade
   sits at both visible edges and a focused logo can be centred in what the visitor sees */
.pb__rows { grid-template-columns: minmax(0, 1fr); }
.pb button.pb__cell { -webkit-appearance: none; appearance: none; margin: 0; background: transparent; border-style: solid; border-color: var(--line); border-width: 0 1px 0 0; cursor: pointer; }
.pb .pb__cell--link:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; color: #fff; }
.pb .pb__cell--link:focus-visible::after { transform: scaleX(1); }
.pb .pb__cell--link:focus-visible img { opacity: 1; }
.pb .pb__cell--link:focus-visible .pb__name { color: #fff; }
.pb .pb__cell--link:active { background-color: rgba(255, 255, 255, .06); }
/* keyboard focus in the strip drops the edge fade, so a focused logo at either end is fully visible */
.pb__rows:has(.pb__cell--link:focus-visible) .marquee { -webkit-mask-image: none; mask-image: none; }
.rank.is-match { border-color: var(--ink); }
.chipf--vendor i { font-style: normal; margin-left: 8px; }
.table .row.is-held, .rank.is-held { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .basis { animation: none; } .metric + .metric .metric__ghost::after { transition: none; } }
