:root {
  /* Semantic roles now resolve against the dark shell. Names keep their meaning:
     --ink is body text, --surface is a raised panel, --line is a divider. */
  --ink: #f7f8f8;
  --ink-soft: #d0d6e0;
  --muted: #8a8f98;
  --line: #23252a;
  --line-strong: #34343a;
  --paper: #08090a;
  --surface: #0f1011;
  --surface-2: #141516;
  --green: #27a644;
  --green-dark: #087333;
  --green-soft: #dff7e6;
  /* Accent is the brand blue carried by the logo mark, so the identity and the
     interface resolve to one colour. */
  --accent: #4c5dd7;
  --accent-bright: #6b7cf0;
  --accent-hover: #828fff;
  --accent-tint: #18182f;
  --lime: #7170ff;
  --cyan: #00b8cc;
  --cyan-soft: #e0f7f9;
  --violet: #7857d8;
  --violet-soft: #eee9ff;
  --coral: #eb5757;
  --coral-soft: #fff0ed;
  --amber: #f0bf00;
  --amber-soft: #fff4d8;
  /* Outcome pairs for the dark shell: hue-tinted surface, lightened hue as text.
     Pale light-theme washes read as bleached rectangles on #08090a. */
  --ok: #4cc38a;   --ok-bg: #27a64421;
  --err: #ff8b8b;  --err-bg: #eb575721;
  --warn: #f5cf3d; --warn-bg: #f0bf0021;
  --info: #9aa4f2; --info-bg: #5e6ad221;
  --font-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --radius-sm: 4px;   /* chips, ticks */
  --radius-md: 8px;   /* controls */
  --radius-lg: 12px;  /* panels and cards */

  /* Dark surface scale and text ramp measured from linear.app's shipped tokens. */
  --d-bg-0: #08090a;
  --d-bg-1: #0f1011;
  --d-bg-2: #141516;
  --d-bg-3: #191a1b;
  --d-fg-1: #f7f8f8;
  --d-fg-2: #d0d6e0;
  --d-fg-3: #8a8f98;
  --d-fg-4: #62666d;
  --d-border-1: #23252a;
  --d-border-2: #34343a;
  --d-line-1: #202122;
  --d-alpha-1: #ffffff0d;
  --d-alpha-2: #ffffff14;
  --d-header-bg: #0b0b0bcc;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--d-bg-0);
  color: var(--d-fg-2);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0;
  font-feature-settings: "lnum" 1;
  font-variant-numeric: lining-nums;
  -webkit-font-smoothing: antialiased;
}
button, a, input { font: inherit; }
button { letter-spacing: 0; }
a { color: inherit; }
.mono, code { font-family: var(--font-mono); }
/* No base heading rules existed, so any heading a component rule missed fell to
   the browser default of 1.5em / 1.17em and produced fractional sizes. */
h1, h2, h3 { color: var(--d-fg-1); font-weight: 600; letter-spacing: -0.02em; }
h2 { margin: 0; font-size: 30px; line-height: 1.2; letter-spacing: -0.026em; }
h3 { margin: 0 0 10px; font-size: 18px; line-height: 1.3; letter-spacing: -0.013em; }
.muted { color: var(--muted); }

.site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  border-bottom: 1px solid var(--d-alpha-2);
  background: var(--d-header-bg);
  backdrop-filter: blur(20px);
}
.header-inner, main, footer { width: min(1440px, calc(100% - 48px)); margin-inline: auto; }
.header-inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 28px; align-items: center; min-height: 64px; }
.brand { display: inline-flex; gap: 4px; align-items: center; color: var(--d-fg-1); text-decoration: none; font-size: 17px; letter-spacing: -0.016em; font-weight: 600; }
.brand-mark { width: 30px; height: 30px; flex: none; display: block; }
.header-campaign { display: flex; gap: 8px; align-items: center; min-width: 0; overflow: hidden; color: var(--d-fg-3); font-size: 13px; letter-spacing: -0.013em; white-space: nowrap; }
.header-campaign span:last-child { overflow: hidden; text-overflow: ellipsis; }
.pulse-dot { width: 6px; height: 6px; flex: none; border-radius: 50%; background: #27a644; box-shadow: 0 0 0 3px #27a6441f; }
.header-nav { display: flex; gap: 2px; align-items: center; }
.header-nav button { min-height: 32px; padding: 5px 10px; border: 0; border-radius: var(--radius-md); color: var(--d-fg-3); background: transparent; cursor: pointer; font-size: 13px; letter-spacing: -0.013em; font-weight: 500; transition: color 120ms ease, background 120ms ease; }
.header-nav button:hover, .header-nav button:focus-visible { color: var(--d-fg-1); background: var(--d-alpha-1); outline: none; }
.header-nav .join-button { margin-left: 6px; padding-inline: 12px; color: #ffffff; background: var(--accent); font-weight: 600; }
.header-nav .join-button:hover, .header-nav .join-button:focus-visible { color: #ffffff; background: var(--accent-bright); }

.graph-hero { display: block; width: 100vw; min-height: calc(100svh - 116px); margin-left: calc(50% - 50vw); padding: 22px max(24px, calc((100vw - 1440px) / 2)) 14px; overflow: hidden; color: var(--d-fg-2); background: var(--d-bg-0); }
.hero-heading { width: min(1440px, 100%); margin-inline: auto; }
.hero-copy { min-width: 0; }
.hero-kicker { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; color: #999895; font-size: 11px; }
.evidence-pill { padding: 4px 8px; border: 1px solid #71e4a55e; border-radius: var(--radius-sm); color: #9af5bc; background: #183c2a; font-weight: 700; }
.hero h1 { max-width: 660px; margin: 0; color: #ffffff; font-size: 46px; line-height: 1.05; letter-spacing: -0.032em; font-weight: 700; text-wrap: balance; }
/* Linear puts the lede left and a quiet secondary link hard right, which is what
   stops the far side of a wide hero from reading as dead space. */
/* The link belongs to the lede, so it sits just past it rather than at the far
   edge of the column, which reads as an orphan. */
.hero-lede { display: flex; gap: 28px; justify-content: space-between; align-items: baseline; max-width: 860px; margin-top: 14px; }
.hero-summary { max-width: 560px; margin: 0; color: var(--d-fg-3); font-size: 15px; line-height: 1.6; letter-spacing: -0.011em; }
.lede-link { display: inline-flex; gap: 6px; align-items: center; flex: none; padding: 0; border: 0; color: var(--d-fg-2); background: transparent; cursor: pointer; font-size: 14px; letter-spacing: -0.011em; font-weight: 500; }
.lede-link span { transition: transform 160ms ease; }
.lede-link:hover, .lede-link:focus-visible { color: var(--d-fg-1); outline: none; }
.lede-link:hover span { transform: translateX(3px); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 18px; }
.primary-action, .secondary-action { min-height: 38px; padding: 7px 14px; border-radius: var(--radius-md); cursor: pointer; font-size: 13px; font-weight: 700; }
.primary-action { border: 1px solid var(--accent); color: #ffffff; background: var(--accent); }
.primary-action:hover, .primary-action:focus-visible { border-color: var(--accent-bright); color: #ffffff; background: var(--accent-bright); outline: none; }
.primary-action.compact { width: 100%; min-height: 38px; margin-top: 18px; }
.secondary-action { border: 1px solid var(--d-border-2); color: var(--d-fg-1); background: transparent; }
.secondary-action:hover, .secondary-action:focus-visible { border-color: var(--d-fg-3); background: var(--d-bg-2); outline: none; }
.graph-hero .secondary-action { border-color: #575653; color: #ededec; background: transparent; }
.graph-hero .secondary-action:hover, .graph-hero .secondary-action:focus-visible { border-color: var(--d-border-2); background: var(--d-bg-2); }
/* Quiet second action: one CTA should carry the weight, not two. */
.ghost-action { display: inline-flex; gap: 7px; align-items: center; min-height: 38px; padding: 7px 12px; border: 0; border-radius: var(--radius-md); color: #b8b7b5; background: transparent; cursor: pointer; font-size: 13px; font-weight: 600; }
.ghost-action span { transition: transform 160ms ease; }
.ghost-action:hover, .ghost-action:focus-visible { color: var(--d-fg-1); background: var(--d-bg-2); outline: none; }
.ghost-action:hover span { transform: translateX(3px); }
.hero-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; color: #8b8a87; font-size: 10px; }
.hero-meta strong { color: #b7b6b4; }
.hero-meta code { color: #ebebeb; }

.live-state { padding: 3px 8px; border: 1px solid #ffffff26; border-radius: var(--radius-sm); color: var(--lime); font-size: 11px; }

/* Research lineage. Set as citations, not as a partner strip: these are papers
   this design learned from, not organisations that endorse it. */
.lineage-band { padding: 80px 0; border-bottom: 1px solid var(--d-border-1); }
.lineage-head { max-width: 720px; }
.lineage-eyebrow { margin: 0 0 14px; color: var(--lime); font-size: 12px; font-weight: 600; letter-spacing: -0.006em; }
.lineage-band h2 { margin: 0; color: var(--d-fg-1); font-size: 30px; line-height: 1.14; letter-spacing: -0.028em; font-weight: 600; text-wrap: balance; }
.lineage-sub { margin: 16px 0 0; color: var(--d-fg-3); font-size: 15px; line-height: 1.6; letter-spacing: -0.011em; }
/* Tall statement cards after linear.app's quote panels: big type at the top,
   credit pinned to the bottom, alternating surfaces for rhythm. The large text
   is our own claim; the source is credited underneath, not quoted. */
.lineage-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 44px 0 0; padding: 0; list-style: none; }
.claim-card { display: flex; }
.claim-card a {
  display: flex; flex-direction: column; justify-content: space-between; gap: 48px;
  width: 100%; min-height: 320px; padding: 32px 32px 30px;
  border-radius: var(--radius-lg); color: inherit; text-decoration: none;
  transition: transform 160ms ease, filter 160ms ease;
}
.claim-card a:hover, .claim-card a:focus-visible { outline: none; transform: translateY(-3px); }
.claim-quote { margin: 0; font-size: 25px; line-height: 1.24; letter-spacing: -0.024em; font-weight: 600; text-wrap: balance; }
.claim-source { display: grid; gap: 12px; font-size: 13px; letter-spacing: -0.011em; }
.claim-rule { display: block; width: 28px; height: 2px; border-radius: 2px; }
.claim-source strong { display: block; font-weight: 600; }
.claim-source span span { display: block; opacity: 0.66; }

.claim-card.is-tint a { background: #dcdff5; color: #16182e; }
.claim-card.is-tint .claim-rule { background: #16182e33; }
.claim-card.is-solid a { background: var(--accent); color: #ffffff; }
.claim-card.is-solid .claim-rule { background: #ffffff59; }
.claim-card.is-raised a { border: 1px solid var(--d-border-1); background: var(--d-bg-1); color: var(--d-fg-1); }
.claim-card.is-raised .claim-rule { background: var(--accent-bright); }
.claim-card.is-raised a:hover { border-color: var(--d-border-2); background: var(--d-bg-2); }
.lineage-note { max-width: 720px; margin: 26px 0 0; color: var(--d-fg-3); font-size: 12px; line-height: 1.6; }
@media (max-width: 1000px) { .lineage-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lineage-band h2 { font-size: 27px; } .claim-quote { font-size: 22px; } }
@media (max-width: 640px) { .lineage-list { grid-template-columns: minmax(0, 1fr); } .claim-card a { min-height: 0; gap: 32px; padding: 26px; } }

/* The three numbers that form the race are one relationship, so they read as
   one object: two ends and the distance still between them. */
.frontier-rail { width: min(1440px, 100%); margin: 24px auto 0; }
.race-scale { max-width: 720px; }
.race-ends { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; }
.race-end { display: grid; gap: 5px; }
.race-end.is-right { text-align: right; }
.race-label { color: #8b8a87; font-size: 12px; font-weight: 500; }
.race-value { font-size: 30px; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums lining-nums; font-weight: 700; }
/* Live value takes the accent; the target is an unreached goal, so it is drawn
   in neutral rather than a second accent competing with the brand. */
.race-value.is-best { color: var(--accent-bright); }
.race-value.is-target { color: var(--d-fg-2); }
/* "x" means nothing on its own; say what the multiplier is against. */
.race-hint { color: var(--d-fg-3); font-size: 12px; }

/* A measured axis, not a progress bar: real ticks at real values, and the
   distance still to run drawn as a dimension between marker and target. */
/* One line, carrying the attempts that actually landed. A progress bar at zero
   has nothing to draw, so the axis plots where every measured run fell instead. */
.race-axis { position: relative; margin-top: 20px; height: 12px; }
.race-track { position: absolute; top: 5px; right: 0; left: 0; height: 2px; border-radius: 2px; background: var(--d-border-2); }
.race-fill { position: absolute; top: 0; left: 0; width: 0; height: 100%; border-radius: 2px; background: var(--accent-bright); transition: width 320ms ease; }
.race-target-cap { position: absolute; top: 50%; right: 0; width: 2px; height: 12px; border-radius: 2px; background: var(--d-fg-2); transform: translate(50%, -50%); }
.race-plot { position: absolute; inset: 0; display: block; }
.race-run { position: absolute; top: 50%; width: 10px; height: 10px; border: 2px solid var(--d-bg-0); border-radius: 50%; background: var(--accent-bright); transform: translate(-50%, -50%); }
.race-run.is-candidate { background: var(--ok); }

.race-foot { display: flex; flex-wrap: wrap; gap: 6px 24px; justify-content: space-between; align-items: baseline; margin-top: 8px; }
.race-note { margin: 0; color: var(--d-fg-3); font-size: 13px; }

.hero-meta-line { display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: center; width: min(1440px, 100%); margin: 18px auto 0; padding-top: 14px; border-top: 1px solid var(--d-border-1); color: #8b8a87; font-size: 13px; }
.hero-meta-line strong { color: #ededec; font-variant-numeric: tabular-nums lining-nums; font-weight: 700; }
.hero-meta-line .live-state { margin-left: auto; }

.hero-graph { position: relative; width: min(1440px, 100%); height: min(40svh, 348px); min-height: 270px; margin: 46px auto 0; overflow: visible; border-top: 1px solid #323231; border-bottom: 1px solid #323231; }
.hero-graph-toolbar { position: absolute; z-index: 4; top: 9px; right: 10px; left: 10px; display: flex; justify-content: space-between; gap: 16px; align-items: center; pointer-events: none; }
.hero-graph-toolbar > * { pointer-events: auto; }
.hero-graph-legend { position: absolute; top: -31px; left: -10px; display: flex; flex-wrap: wrap; gap: 13px; color: #9e9d9b; font-size: 9px; }
.hero-graph-legend span { display: inline-flex; gap: 6px; align-items: center; }
.graph-hero .graph-controls { border: 1px solid #3e3d3b; background: #0f1011e8; }
.graph-hero .icon-button { color: #b8b7b5; }
.graph-hero .icon-button:hover, .graph-hero .icon-button:focus-visible { color: var(--d-fg-1); background: var(--d-bg-3); }
.hero-node-readout { position: absolute; z-index: 4; right: 12px; bottom: 12px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 2px 12px; align-items: center; width: min(610px, calc(100% - 24px)); padding: 10px 12px; border: 1px solid #444342; border-radius: var(--radius-md); color: #e4e4e3; background: #0f1011eb; backdrop-filter: blur(10px); }
.hero-node-readout > span:first-child { grid-row: 1 / span 2; align-self: center; color: var(--lime); font-size: 9px; text-transform: uppercase; }
.hero-node-readout strong { min-width: 0; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.hero-node-readout > span:nth-child(3) { min-width: 0; overflow: hidden; color: #9a9996; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.readout-action { grid-row: 1 / span 2; grid-column: 3; min-height: 30px; padding: 5px 9px; border: 1px solid #5e5d5a; border-radius: var(--radius-sm); color: #f8f8f7; background: transparent; cursor: pointer; font-size: 10px; font-weight: 700; }
.readout-action:hover, .readout-action:focus-visible { border-color: var(--lime); color: var(--lime); outline: none; }
.hero-footer { display: flex; justify-content: space-between; gap: 20px; align-items: center; width: min(1440px, 100%); margin: 10px auto 0; }
.hero-next { color: var(--d-fg-3); font-size: 9px; text-transform: uppercase; }
.capture-meta { display: none; }
.hero-mobile-spine { display: none; }

.view-tabs { display: flex; gap: 24px; overflow-x: auto; border-bottom: 1px solid var(--line); }
.view-tab { min-height: 48px; padding: 2px 0 0; border: 0; border-bottom: 3px solid transparent; color: var(--muted); background: transparent; cursor: pointer; white-space: nowrap; font-size: 14px; font-weight: 700; }
.view-tab:hover { color: var(--ink); }
.view-tab.active { border-bottom-color: var(--accent-bright); color: var(--ink); }
.view-panel { padding: 34px 0 48px; }
.view-panel[hidden] { display: none; }
.site-status-banner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-top: 18px; padding: 13px 14px; border: 1px solid #e5ad52; border-radius: var(--radius-md); color: #5c3900; background: var(--amber-soft); }
.site-status-banner[hidden] { display: none; }
.site-status-banner strong, .site-status-banner span { display: block; }
.site-status-banner strong { font-size: 12px; }
.site-status-banner div > span { margin-top: 1px; color: #75551e; font-size: 10px; }
.status-banner-icon { width: 19px; height: 19px; }
.site-status-banner .secondary-action { display: inline-flex; gap: 7px; align-items: center; min-height: 32px; padding: 5px 9px; border-color: #c99c52; background: #fffaf0; font-size: 11px; }
.site-status-banner .secondary-action svg { width: 14px; height: 14px; }
.intake-panel { margin-top: 28px; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.intake-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
.intake-heading h3 { margin: 0; font-size: 18px; letter-spacing: -0.013em; }
.intake-heading p:last-child { margin: 5px 0 0; color: var(--muted); }
.intake-count { display: grid; place-items: center; width: 36px; aspect-ratio: 1; border-radius: 50%; color: #ffffff; background: var(--accent); font-weight: 800; }
.intake-list { display: grid; gap: 8px; margin-top: 16px; }
.intake-item { padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.intake-item-heading { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.intake-summary { margin: 5px 0 0; color: var(--ink-soft); }
.intake-meta { margin: 8px 0 0; overflow-wrap: anywhere; color: var(--muted); font-size: 10px; }
.intake-empty { margin: 0; padding: 16px; color: var(--muted); background: var(--surface-2); }
.section-heading { margin-bottom: 22px; }
.section-heading h2 { margin: 0; font-size: 30px; line-height: 1.2; letter-spacing: -0.026em; }
.section-heading h3 { margin: 0; font-size: 18px; letter-spacing: -0.013em; }
.section-copy { margin: 6px 0 0; color: var(--muted); }
.row-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; }
.eyebrow { margin: 0 0 5px; color: var(--accent-bright); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0; }
.lead { max-width: 780px; margin: 10px 0 0; color: var(--ink-soft); font-size: 17px; }
.lead.small { font-size: 15px; }

.leaderboard-key { display: flex; flex-wrap: wrap; gap: 14px; color: var(--muted); font-size: 12px; }
.leaderboard-key span { display: inline-flex; gap: 6px; align-items: center; }
.key-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--line-strong); }
.key-dot.measured { background: var(--green); }
.key-dot.blocked { background: var(--coral); }
.leaderboard-layout { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 14px; align-items: stretch; }
.activity-strip { margin-bottom: 14px; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.activity-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 13px; }
.activity-heading h3 { margin: 1px 0 0; font-size: 17px; letter-spacing: 0; }
.activity-note { color: var(--muted); font-size: 11px; }
.activity-list { display: grid; margin: 0; padding: 0; list-style: none; }
.activity-item { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 58px; padding: 9px 0; border-top: 1px solid var(--line); }
.activity-item:first-child { border-top: 0; }
.activity-marker { width: 8px; height: 8px; border: 2px solid var(--ink); border-radius: 50%; background: var(--surface); box-shadow: 0 0 0 3px #eef1ed; }
.activity-experiment .activity-marker { border-color: var(--cyan); }
.activity-reproduction .activity-marker { border-color: var(--green); background: var(--green); }
.activity-lead .activity-marker { border-color: var(--violet); }
.activity-body { display: grid; min-width: 0; gap: 2px; }
.activity-topline { display: flex; align-items: center; gap: 8px; }
.activity-verb { color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.activity-time { color: var(--muted); font-size: 9px; }
.activity-title { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.activity-meta { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.activity-outcome { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.activity-copy { min-height: 30px; padding: 5px 9px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); color: var(--ink); background: #fff; font-size: 10px; font-weight: 700; cursor: pointer; }
.activity-copy:hover { border-color: var(--ink); }
.activity-no-command { color: var(--muted); font-size: 10px; }
.activity-empty { padding: 16px 0 3px; color: var(--muted); font-size: 12px; }
.leaderboard-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.leaderboard-table { width: 100%; min-width: 720px; border-collapse: collapse; }
.leaderboard-table th { padding: 12px 16px; color: var(--muted); background: var(--surface-2); text-align: left; font-size: 11px; font-weight: 700; }
.leaderboard-table td { height: 66px; padding: 10px 16px; border-top: 1px solid var(--line); vertical-align: middle; }
.leaderboard-table tbody tr { cursor: pointer; }
.leaderboard-table tbody tr:hover td { background: var(--d-bg-2); }
.rank-cell { width: 62px; color: var(--ink); font-family: var(--font-mono); font-size: 17px; font-weight: 800; }
.solver-cell { display: flex; gap: 10px; align-items: center; min-width: 180px; }
.solver-avatar { display: grid; place-items: center; width: 34px; aspect-ratio: 1; flex: none; border-radius: 50%; color: #ffffff; background: var(--accent); font-family: var(--font-mono); font-size: 11px; font-weight: 800; }
.solver-name { display: block; color: var(--ink); font-weight: 700; }
.solver-meta { display: block; color: var(--muted); font-size: 11px; }
.score-cell { color: var(--d-fg-1); font-family: var(--font-mono); font-size: 17px; font-weight: 800; }
.result-chip { display: inline-flex; align-items: center; min-height: 25px; padding: 3px 8px; border-radius: var(--radius-sm); font-size: 11px; font-weight: 700; }
.result-chip.status-research_candidate { color: var(--ok); background: var(--ok-bg); }
.result-chip.status-valid_not_faster { color: var(--info); background: var(--info-bg); }
.result-chip.status-rejected { color: var(--err); background: var(--err-bg); }
.result-chip.status-infrastructure_failed { color: var(--warn); background: var(--warn-bg); }
.race-summary { display: flex; min-height: 100%; flex-direction: column; padding: 22px; border: 1px solid #5e6ad24d; border-radius: var(--radius-lg); color: var(--d-fg-1); background: var(--accent-tint); }
.race-summary .eyebrow { color: #c9f59c; }
/* The accent is a foreground on neutral dark, or a solid fill under white text.
   It must never sit on a saturated surface: indigo on this green measured
   1.56:1, because the two are near-complementary at the same luminance. */
.race-gap { margin-top: 10px; color: #ffffff; font-size: 38px; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums lining-nums; }
.race-summary > span { margin-top: 5px; color: #d0cfce; font-size: 12px; }
.race-counts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: auto; padding-top: 26px; }
.race-counts b, .race-counts span { display: block; }
.race-counts b { font-size: 20px; }
.race-counts span { color: #d0cfce; font-size: 10px; }
.frontier-card { margin-top: 14px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.frontier-plot { margin-top: 14px; overflow-x: auto; }
.frontier-plot svg { display: block; width: 100%; min-width: 720px; height: auto; }
.frontier-caption { margin: 7px 0 0; color: var(--muted); font-size: 12px; }
.frontier-band { fill: var(--surface-2); }
.frontier-rule { stroke-width: 1.5; }
.frontier-rule.floor { stroke: var(--green); }
.frontier-rule.parity { stroke: #a09f9e; stroke-dasharray: 4 5; }
.frontier-rail { stroke: var(--line-strong); }
.frontier-rule-label, .frontier-tick, .frontier-agent { fill: var(--muted); font-family: var(--font-mono); font-size: 11px; }
.frontier-clock { fill: var(--d-fg-4); font-family: var(--font-mono); font-size: 10px; }
.frontier-rule-label.floor { fill: var(--ok); font-weight: 700; }
.frontier-track { fill: none; stroke: var(--accent-bright); stroke-width: 2.5; }
.frontier-drop { stroke: var(--line-strong); stroke-dasharray: 3 4; }
.frontier-point { fill: var(--accent-bright); stroke: var(--d-bg-0); stroke-width: 2.5; }
.frontier-point.outcome-research_candidate { fill: var(--green); }
.frontier-mark { fill: var(--muted); stroke: var(--surface); stroke-width: 2.5; rx: 2; }
.frontier-mark.outcome-rejected { fill: var(--coral); }
.frontier-mark.outcome-infrastructure_failed { fill: var(--amber); }
.frontier-bar { fill: var(--accent-bright); }
.frontier-bar.outcome-research_candidate { fill: var(--green); }
.frontier-bar.outcome-rejected { fill: var(--coral); }
.frontier-bar.outcome-infrastructure_failed { fill: var(--amber); }
.frontier-bar-label { fill: #ffffff; font-size: 11px; font-weight: 700; }
.frontier-empty { fill: var(--muted); font-size: 14px; }

.graph-actions { display: flex; gap: 8px; align-items: center; }
.graph-filters, .graph-controls { display: inline-flex; gap: 2px; padding: 3px; border-radius: var(--radius-md); background: var(--surface-2); }
.filter, .frontier-tab { min-width: 62px; padding: 5px 10px; border: 0; border-radius: var(--radius-sm); color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; font-weight: 700; }
.filter:hover, .frontier-tab:hover { color: var(--ink); }
.filter.active, .frontier-tab.active { color: var(--ink); background: var(--surface); box-shadow: 0 1px 3px #14141317; }
.icon-button { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; border-radius: var(--radius-sm); color: var(--ink-soft); background: transparent; cursor: pointer; }
.icon-button:hover, .icon-button:focus-visible { color: var(--d-fg-1); background: var(--d-bg-2); outline: none; }
.icon-button svg, .icon-text-button svg { display: block; width: 16px; height: 16px; stroke-width: 1.8; }
.icon-text-button { display: inline-flex; gap: 7px; align-items: center; min-height: 32px; padding: 5px 9px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); color: var(--ink-soft); background: var(--surface); cursor: pointer; font-size: 11px; font-weight: 700; }
.icon-text-button:hover, .icon-text-button:focus-visible { border-color: var(--accent); color: var(--accent-bright); outline: none; }
.graph-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 14px; align-items: start; }
.graph-column { min-width: 0; }
.graph-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 8px; color: var(--muted); font-size: 11px; }
.graph-legend span { display: inline-flex; gap: 6px; align-items: center; }
.edge-key { width: 18px; height: 2px; background: var(--line-strong); }
.edge-key.supports { background: var(--green); }
.edge-key.refutes { border-top: 2px dashed var(--coral); background: transparent; }
.edge-key.reproduces { background: var(--cyan); }
.edge-key.lineage { background: #91908e; }
.detail-graph-shell { position: relative; height: min(68svh, 680px); min-height: 520px; overflow: hidden; border: 1px solid #2d2d2c; border-radius: var(--radius-lg); background: #0e0e0e; }
.detail-graph-empty { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; color: #9f9e9b; text-align: center; }
.detail-graph-empty[hidden] { display: none; }
.research-graph-svg { display: block; width: 100%; height: 100%; overflow: hidden; touch-action: none; }
.research-graph-svg:focus-visible { outline: 2px solid var(--lime); outline-offset: -2px; }
.graph-stage rect { fill: #161615; stroke: #2b2b2a; stroke-width: 1; }
.graph-stage:nth-child(even) rect { fill: #131313; }
.graph-stage text { fill: #82807c; font-family: var(--font-mono); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.research-edge-halo { fill: none; stroke: #0e0e0e; stroke-linecap: round; stroke-width: 8px; }
.research-edge { fill: none; stroke: #807f7c; stroke-linecap: round; stroke-width: 2px; vector-effect: non-scaling-stroke; transition: opacity 180ms ease, stroke-width 180ms ease; }
.research-edge.edge-supports { stroke: #60d394; }
.research-edge.edge-refutes { stroke: #ff725e; stroke-dasharray: 8 6; }
.research-edge.edge-reproduces { stroke: #5bd6e8; stroke-width: 3px; }
.research-edge.edge-combines { stroke: #ab8cff; }
.research-edge.is-muted, .research-edge-halo.is-muted { opacity: 0.09; }
.research-edge.is-active { stroke-width: 3px; opacity: 1; }
.research-node { cursor: pointer; opacity: 1; transition: opacity 180ms ease; }
.research-node .node-shape { fill: #1e1e1d; stroke: #636260; stroke-width: 1.5px; vector-effect: non-scaling-stroke; transition: fill 180ms ease, stroke 180ms ease, stroke-width 180ms ease; }
.research-node:hover .node-shape { fill: #272625; stroke: #a7a5a4; }
.research-node:focus { outline: none; }
.research-node:focus-visible .node-shape, .research-node.is-selected .node-shape { stroke: var(--lime); stroke-width: 3px; }
.research-node.is-muted { opacity: 0.18; }
.research-node.is-ancestor .node-shape { stroke: #9c9b98; }
.research-node.is-descendant .node-shape { stroke: #60d394; }
.research-node.type-human_seed .node-shape, .research-node.type-human_intervention .node-shape { fill: #211d31; stroke: #9a80e8; }
.research-node.type-experiment .node-shape { fill: #1d1d1c; }
.research-node.type-reproduction .node-shape { fill: #132329; stroke: #5bd6e8; }
.research-node.type-finalist_handoff .node-shape { fill: #173324; stroke: #6fe09b; }
.research-node.type-memory_capsule .node-shape { fill: #25231a; stroke: #c3aa5c; }
.research-node.status-rejected .node-shape { stroke: #ff725e; }
.research-node.status-infrastructure_failed .node-shape { stroke: #f3bd5a; }
.research-node.status-valid_not_faster .node-shape { stroke: #5bd6e8; }
.research-node.status-research_candidate .node-shape { stroke: #60d394; }
.research-node.is-redacted .node-shape { stroke-dasharray: 5 4; }
.node-inner-border { fill: none; stroke: #5bd6e866; stroke-width: 1px; }
.node-measurement-rail { fill: #5bd6e8; }
.node-fold { fill: none; stroke: #c3aa5c; stroke-width: 1px; }
.node-kicker { fill: #9e9d9c; font-family: var(--font-mono); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.node-title { fill: #f5f5f5; font-size: 14px; font-weight: 700; }
.node-meta { fill: #a6a5a2; font-size: 10px; font-weight: 600; }
.node-status-dot { fill: #868481; }
.status-rejected .node-status-dot { fill: #ff725e; }
.status-infrastructure_failed .node-status-dot { fill: #f3bd5a; }
.status-valid_not_faster .node-status-dot { fill: #5bd6e8; }
.status-research_candidate .node-status-dot { fill: #60d394; }
.graph-signal { fill: #b2b1af; pointer-events: none; }
.graph-signal.supports { fill: #8af0af; }
.graph-signal.refutes { fill: #ff8a78; }
.graph-signal.reproduces { fill: #77e4f3; }
.graph-underbar { display: flex; gap: 14px; align-items: center; margin-top: 9px; }
.graph-underbar .graph-hint { flex: 1; }
.graph-hint { margin: 0; color: var(--muted); font-size: 11px; }
.mobile-research-spine { display: none; margin: 0; padding: 0; list-style: none; }
.mobile-stage { position: relative; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 11px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.mobile-stage:last-child { border-bottom: 0; }
.mobile-stage::after { position: absolute; top: 46px; bottom: -10px; left: 15px; width: 1px; content: ""; background: var(--line-strong); }
.mobile-stage:last-child::after { display: none; }
.mobile-stage-index { display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--accent-bright); background: var(--surface); font-family: var(--font-mono); font-size: 10px; font-weight: 800; }
.mobile-stage-body { min-width: 0; }
.mobile-stage-label { display: block; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.mobile-stage-nodes { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
.mobile-node { max-width: 100%; padding: 4px 7px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-soft); background: var(--surface); cursor: pointer; font-size: 11px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.mobile-node:hover, .mobile-node:focus-visible, .mobile-node.selected { border-color: var(--accent); color: var(--accent-bright); outline: none; }

.evidence-inspector { position: sticky; top: 82px; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 8px 26px #1414130c; }
.evidence-inspector h3 { margin: 0; font-size: 18px; line-height: 1.25; }
.inspector-head p { margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.inspector-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.inspector-action { min-height: 32px; padding: 6px 9px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface); cursor: pointer; font-size: 11px; font-weight: 700; }
.inspector-action:hover, .inspector-action:focus-visible { border-color: var(--accent); color: var(--accent-bright); outline: none; }
.inspector-action.quiet { color: var(--muted); background: var(--surface-2); }
.inspector-details, .policy-list { display: grid; grid-template-columns: minmax(88px, auto) 1fr; gap: 6px 12px; margin: 16px 0 0; }
.inspector-details dt, .policy-list dt { color: var(--muted); font-size: 12px; }
.inspector-details dd, .policy-list dd { margin: 0; overflow-wrap: anywhere; color: var(--ink); font-size: 12px; font-weight: 600; }
.inspector-evidence { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.evidence-heading { margin: 0 0 8px; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.evidence-empty { margin: 0; color: var(--muted); font-size: 12px; }
.evidence-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.evidence-item { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 8px; }
.evidence-kind { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.evidence-body { display: grid; gap: 1px; min-width: 0; }
.evidence-label { font-size: 12px; }
.evidence-digest { overflow-wrap: anywhere; color: var(--muted); font-size: 10px; }
.evidence-outcome { font-size: 11px; font-weight: 700; }
.gate-passed .evidence-outcome { color: var(--ok); }
.gate-failed .evidence-outcome { color: var(--coral); }
.gate-infrastructure_failed .evidence-outcome { color: var(--amber); }
.gate-unknown .evidence-outcome { color: var(--violet); }

.table-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.table-scroll.compact { margin-top: 12px; }
table { width: 100%; min-width: 820px; border-collapse: collapse; font-size: 13px; }
th, td { padding: 11px 13px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); background: var(--surface-2); font-size: 10px; font-weight: 800; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: var(--d-bg-2); }
tbody tr[role="button"] { cursor: pointer; }
tbody tr[role="button"]:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: -2px; }
.status-text { font-weight: 700; }
.status-research_candidate { color: var(--ok); }
.status-valid_not_faster { color: var(--info); }
.status-rejected { color: var(--err); }
.status-infrastructure_failed { color: var(--warn); }
.delta-over { color: var(--ok); }
.delta-under { color: var(--d-fg-3); }
.ledger-note { margin: 12px 0 0; color: var(--muted); font-size: 12px; }
.artifact-time { color: var(--muted); font-size: 10px; }
.attempt-inspector { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(250px, 1fr) minmax(280px, 1.2fr); gap: 26px; margin-top: 14px; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.attempt-inspector h3 { margin: 0; font-size: 18px; }
.attempt-inspector p { color: var(--muted); }
.attempt-inspector .inspector-details, .attempt-inspector .inspector-evidence { margin-top: 0; }
.attempt-inspector .inspector-evidence { padding-top: 0; border-top: 0; }
.source-chain { display: grid; gap: 4px; margin: 7px 0 16px; padding-left: 18px; color: var(--muted); font-size: 11px; }
.source-chain li::marker { color: var(--green); }
.replay-note { margin: 10px 0 0; color: var(--muted); font-size: 11px; }

.people-layout { display: grid; grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr); gap: 24px; align-items: start; }
.people-list { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.person-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 12px; align-items: center; width: 100%; min-height: 70px; padding: 12px 14px; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: transparent; cursor: pointer; text-align: left; }
.person-row:last-child { border-bottom: 0; }
.person-row:hover, .person-row:focus-visible { background: var(--surface-2); outline: none; }
.person-row.selected { box-shadow: inset 3px 0 var(--green-dark); background: var(--green-soft); }
.person-avatar { display: grid; place-items: center; width: 40px; aspect-ratio: 1; border: 1px solid #aad4b8; border-radius: 50%; color: var(--green-dark); background: var(--green-soft); font-family: var(--font-mono); font-size: 11px; font-weight: 800; }
.person-row-body { display: grid; min-width: 0; gap: 3px; }
.person-row-body strong, .person-row-body span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person-row-body strong { font-size: 13px; }
.person-row-body span { color: var(--muted); font-size: 10px; }
.person-count { color: var(--muted); font-size: 11px; }
.person-profile { min-height: 420px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.person-profile-head { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 14px; align-items: center; }
.person-profile-head .person-avatar { width: 52px; color: var(--ink); background: var(--lime); border-color: #a5c31b; }
.person-profile h3, .person-profile p { margin: 0; }
.person-profile h3 { margin-top: 3px; font-size: 22px; }
.person-github { margin-top: 4px !important; color: var(--muted); font-size: 11px; }
.person-github a { color: var(--green-dark); font-weight: 700; }
.person-roles { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.person-role { display: inline-flex; align-items: center; min-height: 23px; padding: 3px 7px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); color: var(--ink-soft); background: var(--surface-2); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.person-timeline { display: grid; gap: 0; margin: 20px 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.person-event { display: grid; gap: 4px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.person-event-heading { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.person-event-heading time { color: var(--muted); font-size: 9px; }
.person-event-title { width: fit-content; padding: 0; border: 0; color: var(--ink); background: transparent; cursor: pointer; font-size: 13px; font-weight: 700; text-align: left; }
.person-event-title:hover, .person-event-title:focus-visible { color: var(--green-dark); outline: none; text-decoration: underline; }
.person-event-state, .person-event-model { color: var(--muted); font-size: 10px; }
.people-empty { margin: 0; padding: 24px; color: var(--muted); }
.ownership-strip { display: flex; gap: 10px; align-items: baseline; margin-top: 18px; padding: 15px 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-2); font-size: 12px; }
.ownership-strip span { color: var(--muted); }

.participate-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 36px; align-items: start; }
.participation-state { display: flex; gap: 10px; align-items: center; min-width: 230px; padding: 12px 14px; border: 1px solid #27a64459; border-radius: var(--radius-md); background: var(--ok-bg); }
.participation-state strong, .participation-state span { display: block; }
.participation-state strong { color: var(--ok); font-size: 13px; }
.participation-state span { color: var(--d-fg-2); font-size: 11px; }
.agent-task-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 34px; align-items: center; margin-top: 26px; padding: 22px; border-radius: var(--radius-lg); color: #eef6f1; background: var(--ink); }
.agent-task-cta h3, .agent-task-cta p { margin: 0; }
.agent-task-cta h3 { font-size: 20px; }
.agent-task-cta > div:first-child > p:last-child { max-width: 720px; margin-top: 5px; color: #b6b5b4; font-size: 12px; }
.agent-task-cta .eyebrow { margin-bottom: 5px; color: var(--lime); }
.agent-task-action { min-width: 225px; }
.agent-task-action button { display: inline-flex; gap: 9px; align-items: center; justify-content: center; width: 100%; min-height: 42px; padding: 8px 14px; border: 1px solid var(--lime); border-radius: var(--radius-md); color: var(--ink); background: var(--lime); cursor: pointer; font-size: 12px; font-weight: 800; }
.agent-task-action button:hover, .agent-task-action button:focus-visible { border-color: #fff; background: #fff; outline: none; }
.agent-task-action button:disabled { cursor: wait; opacity: 0.72; }
.agent-task-action button svg { width: 16px; height: 16px; }
.agent-task-action p { max-width: 225px; margin-top: 7px; color: #999896; font-size: 9px; line-height: 1.35; }
.state-dot { width: 9px; height: 9px; flex: none; border-radius: 50%; background: var(--green); }
.participation-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; }
.participation-steps > li { display: grid; grid-template-rows: auto 1fr; min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.participation-steps h3 { margin: 12px 0 4px; font-size: 16px; }
.participation-steps p { min-height: 42px; margin: 0 0 12px; color: var(--muted); font-size: 12px; }
.step-number { display: grid; place-items: center; width: 34px; aspect-ratio: 1; border-radius: var(--radius-sm); color: #ffffff; background: var(--accent); font-size: 11px; font-weight: 800; }
.command-stack { display: grid; gap: 7px; }
.command-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; overflow: hidden; border: 1px solid var(--d-border-1); border-radius: var(--radius-md); background: var(--d-bg-2); }
.reproduction-command { margin-top: 7px; }
.command-row code { min-width: 0; padding: 10px 11px; overflow-x: auto; color: var(--d-fg-1); font-size: 10px; white-space: nowrap; }
.copy-command { min-width: 54px; border: 0; border-left: 1px solid var(--d-alpha-2); color: var(--d-fg-2); background: transparent; cursor: pointer; font-size: 10px; font-weight: 700; }
.copy-command:hover, .copy-command:focus-visible { color: var(--d-fg-1); background: var(--d-alpha-2); outline: none; }
.privacy-strip { display: flex; gap: 10px; align-items: baseline; margin-top: 14px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); font-size: 12px; }
.privacy-strip span { color: var(--muted); }
.target-strip { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 10px; padding: 10px 13px; color: var(--muted); font-size: 11px; }
.target-strip strong { color: var(--ink); }
.target-strip code { color: var(--ok); }

.flow-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.flow-grid article { position: relative; min-height: 150px; padding: 22px; overflow: hidden; border: 1px solid var(--d-border-1); border-radius: var(--radius-lg); color: var(--d-fg-1); background: var(--d-bg-1); }
.flow-grid article:nth-child(2) { color: #ffffff; background: var(--accent); }
.flow-grid article:nth-child(2) > span { color: #ffffffeb; }
.flow-grid article:nth-child(2) p { color: #ffffff; }
.flow-grid article:nth-child(3) { border-color: #27a64459; background: var(--ok-bg); }
.flow-grid article > span { color: var(--d-fg-3); font-family: var(--font-mono); font-size: 11px; }
.flow-grid h3 { margin: 24px 0 4px; font-size: 18px; letter-spacing: -0.013em; }
.flow-grid p { margin: 0; color: var(--d-fg-2); }
.contract-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 48px; margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--line); }
.contract-grid > div { min-width: 0; }
.contract-grid h3 { margin: 0 0 8px; }
.policy-list { padding-top: 14px; border-top: 1px solid var(--line); }
.method-strip { display: grid; grid-template-columns: minmax(190px, 0.36fr) minmax(0, 1fr); gap: 22px 42px; align-items: start; margin-top: 34px; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-2); }
.method-strip h3, .method-strip p { margin: 0; }
.method-heading h3 { max-width: 250px; margin-top: 5px; font-size: 22px; line-height: 1.08; }
.method-body { min-width: 0; }
.method-copy { max-width: 820px; color: var(--ink-soft); font-size: 15px; line-height: 1.55; }
.source-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 18px; }
.source-link { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 10px; align-items: center; min-width: 0; min-height: 58px; padding: 10px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface); text-decoration: none; transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease; }
.source-link:hover, .source-link:focus-visible { border-color: var(--green-dark); box-shadow: 0 5px 16px #173d2b12; outline: none; transform: translateY(-1px); }
.source-link > span:last-child { min-width: 0; }
.source-link strong, .source-link small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.source-link strong { font-size: 11px; line-height: 1.2; }
.source-link small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.source-mark { display: grid; place-items: center; width: 32px; aspect-ratio: 1; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; }
.source-mark img { width: 17px; height: 17px; }
.method-related { margin-top: 12px !important; color: var(--muted); font-size: 10px; }
.method-related a { color: var(--green-dark); font-weight: 700; }
.method-disclaimer { margin-top: 6px !important; color: var(--muted); font-size: 9px; }

/* Multi-column footer over a meta bar. The bar carries artifact identity, which
   is the thing an evidence console owes the reader on every page. */
footer { padding: 80px 0 40px; border-top: 1px solid var(--d-border-1); color: var(--d-fg-3); font-size: 14px; }
.footer-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 40px 32px; }
.footer-brand .brand { color: var(--d-fg-1); font-size: 17px; }
.footer-brand p { max-width: 340px; margin: 16px 0 0; color: var(--d-fg-3); font-size: 14px; line-height: 1.6; letter-spacing: -0.011em; }
.footer-col { display: grid; gap: 12px; align-content: start; justify-items: start; }
.footer-col h2 { margin: 0 0 2px; color: var(--d-fg-1); font-size: 13px; letter-spacing: -0.011em; font-weight: 600; }
.footer-col a, .footer-col button {
  padding: 0; border: 0; color: var(--d-fg-3); background: transparent; cursor: pointer;
  font-size: 14px; letter-spacing: -0.011em; font-weight: 400; text-align: left; text-decoration: none;
  transition: color 120ms ease;
}
.footer-col a:hover, .footer-col a:focus-visible, .footer-col button:hover, .footer-col button:focus-visible { color: var(--d-fg-1); outline: none; }
.footer-meta { display: flex; flex-wrap: wrap; gap: 10px 24px; justify-content: space-between; align-items: baseline; margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--d-line-1); }
.footer-identity { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; color: var(--d-fg-3); font-size: 12px; }
.footer-claim { margin: 0; color: var(--d-fg-3); font-size: 12px; }
@media (max-width: 900px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; } footer { padding-top: 56px; } }

@media (max-width: 1160px) {
  .hero-heading { grid-template-columns: minmax(0, 1fr) 360px; gap: 34px; }
  .hero h1 { font-size: 44px; letter-spacing: -0.03em; }
  .graph-workspace { grid-template-columns: 1fr; }
  .evidence-inspector { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
  .evidence-inspector .inspector-evidence { margin-top: 0; padding-top: 0; border-top: 0; }
  .participation-steps { grid-template-columns: 1fr; }
  .participation-steps > li { grid-template-columns: 44px minmax(0, 1fr); }
  .participation-steps h3 { margin-top: 0; }
  .participation-steps p { min-height: 0; }
}
@media (max-width: 900px) {
  .hero-heading { grid-template-columns: 1fr; gap: 22px; }
  .scoreboard { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; align-items: end; }
  .scoreboard-top, .score-note, .score-stats { grid-column: 1 / -1; }
  .score-line { margin-top: 0; }
  .progress-track { align-self: center; }
  .hero-graph { height: min(45svh, 420px); }
  .leaderboard-layout { grid-template-columns: 1fr; }
  .race-summary { min-height: 210px; }
  .attempt-inspector, .contract-grid, .people-layout { grid-template-columns: 1fr; }
  .agent-task-cta { grid-template-columns: 1fr; gap: 18px; }
  .agent-task-action { min-width: 0; }
  .agent-task-action p { max-width: none; }
  .source-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .header-inner, main, footer { width: min(100% - 28px, 1440px); }
  .header-inner { grid-template-columns: 1fr auto; gap: 10px; min-height: 58px; }
  .header-campaign { display: none; }
  .header-nav button:not(.join-button) { display: none; }
  .graph-hero { width: 100vw; min-height: calc(100svh - 58px); padding: 26px 14px 16px; }
  .hero-heading { gap: 18px; }
  .hero h1 { font-size: 34px; letter-spacing: -0.028em; }
  .hero-offer { font-size: 17px; }
  .hero-summary { font-size: 14px; }
  .hero-actions { margin-top: 14px; }
  .primary-action, .secondary-action { min-height: 38px; padding: 7px 11px; font-size: 12px; }
  .scoreboard { display: block; }
  .hero-score, .score-target { font-size: 27px; }
  .score-line { margin-top: 8px; }
  .score-stats { margin-top: 9px; padding-top: 8px; }
  .hero-graph { height: auto; min-height: 0; margin-top: 17px; padding: 13px 0 3px; overflow: visible; border-color: #323231; }
  .hero-graph-toolbar, .hero-graph-svg, .hero-node-readout { display: none; }
  .hero-mobile-spine { display: grid; margin: 0; padding: 0; list-style: none; }
  .hero-mobile-spine .mobile-stage { border-color: #2f2e2d; }
  .hero-mobile-spine .mobile-stage::after { background: #3e3d3b; }
  .hero-mobile-spine .mobile-stage-index { border-color: #4c4b49; color: var(--lime); background: #161615; }
  .hero-mobile-spine .mobile-stage-label { color: #908f8c; }
  .hero-mobile-spine .mobile-node { border-color: #3e3d3b; color: #dbdbdb; background: #191919; }
  .hero-mobile-spine .mobile-node.selected { border-color: var(--lime); color: var(--lime); }
  .hero-footer { align-items: flex-start; flex-direction: column; gap: 6px; margin-top: 8px; }
  .hero-next { display: none; }
  .hero-meta { display: grid; gap: 5px; }
  .view-tabs { gap: 20px; }
  .view-panel { padding-top: 28px; }
  .row-heading, .participate-heading { grid-template-columns: 1fr; align-items: flex-start; flex-direction: column; }
  .leaderboard-key { margin-top: 8px; }
  .activity-strip { padding: 16px; }
  .activity-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .activity-item { grid-template-columns: 10px minmax(0, 1fr); }
  .activity-outcome { grid-column: 2; justify-content: flex-start; flex-wrap: wrap; }
  .activity-title, .activity-meta { white-space: normal; }
  .frontier-card { padding: 16px; }
  .graph-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .graph-filters { width: 100%; }
  .filter { flex: 1; min-width: 0; }
  .graph-controls { align-self: flex-end; }
  .graph-legend, .detail-graph-shell, .graph-underbar { display: none; }
  .mobile-research-spine { display: grid; }
  .evidence-inspector { display: block; }
  .evidence-inspector .inspector-evidence { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
  .participation-state { min-width: 0; }
  .participation-steps > li { grid-template-columns: 38px minmax(0, 1fr); padding: 16px; }
  .command-row { grid-template-columns: 1fr; }
  .copy-command { min-height: 34px; border-top: 1px solid var(--d-alpha-2); border-left: 0; }
  .privacy-strip { align-items: flex-start; flex-direction: column; }
  .ownership-strip { align-items: flex-start; flex-direction: column; }
  .person-profile { padding: 17px; }
  .site-status-banner { grid-template-columns: auto minmax(0, 1fr); }
  .site-status-banner .secondary-action { grid-column: 1 / -1; justify-content: center; width: 100%; }
  .flow-grid { grid-template-columns: 1fr; }
  .flow-grid article { min-height: 130px; }
  .method-strip { grid-template-columns: 1fr; gap: 16px; padding: 20px; }
  .method-heading h3 { max-width: none; }
  .source-links { grid-template-columns: 1fr 1fr; }
  footer { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 18px; }
}
@media (max-width: 430px) {
  .source-links { grid-template-columns: 1fr; }
}
.capture-mode { width: 2400px; min-width: 2400px; height: 1350px; overflow: hidden; background: #0e0e0e; }
.capture-mode .site-header, .capture-mode .view-tabs, .capture-mode main > section:not(#story), .capture-mode footer { display: none; }
.capture-mode main { width: 2400px; max-width: none; margin: 0; }
.capture-mode .graph-hero { width: 2400px; min-height: 1350px; margin: 0; padding: 66px 80px 38px; }
.capture-mode .hero-heading, .capture-mode .hero-graph, .capture-mode .hero-footer { width: 2240px; max-width: none; }
.capture-mode .hero-heading { grid-template-columns: minmax(0, 1fr) 560px; gap: 110px; }
.capture-mode .hero h1 { font-size: 72px; letter-spacing: -0.036em; }
.capture-mode .hero-offer { font-size: 25px; }
.capture-mode .hero-summary { max-width: 920px; font-size: 17px; }
.capture-mode .hero-graph { height: 820px; max-height: none; margin-top: 34px; }
.capture-mode .hero-graph-toolbar { display: none; }
.capture-mode .hero-node-readout { right: 18px; bottom: 18px; }
.capture-mode .capture-meta { display: block; margin: 4px 0 0; color: #7a7875; font-size: 10px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
