/* ───────── tokens ───────── */
:root {
  --bg: #faf8f3;
  --surface: #ffffff;
  --surface-2: #f4f0e8;
  --ink: #1a1a1a;
  --ink-2: #4a4a4a;
  --muted: #777268;
  --line: #e6e0d4;
  --accent: #5a4c2a;
  --accent-soft: #c8b88a;
  --link: #5a4c2a;
  --link-hover: #8b6f1f;

  /* badges */
  --b-priority-bg: #fef3c7; --b-priority-fg: #78350f; --b-priority-line: #d4a017;
  --b-contender-bg: #dbeafe; --b-contender-fg: #1e3a8a; --b-contender-line: #93c5fd;
  --b-reframe-bg: #fef0c4;  --b-reframe-fg: #7c2d12;  --b-reframe-line: #fbbf24;
  --b-drop-bg: #f1ede5;     --b-drop-fg: #574e3f;     --b-drop-line: #d6cdb9;
  --b-replicate-bg: #ede9fe; --b-replicate-fg: #4c1d95; --b-replicate-line: #c4b5fd;

  --b-strong-yes-bg: #d1fae5; --b-strong-yes-fg: #065f46;
  --b-yes-bg: #ccfbf1;        --b-yes-fg: #115e59;
  --b-maybe-bg: #fef3c7;      --b-maybe-fg: #92400e;
  --b-no-bg: #fee2e2;         --b-no-fg: #991b1b;

  --b-novel-high-bg: #e0e7ff; --b-novel-high-fg: #3730a3;
  --b-novel-med-bg: #f1ede5;  --b-novel-med-fg: #4a4034;
  --b-novel-low-bg: #f5f5f4;  --b-novel-low-fg: #57534e;
  --b-pending-bg: #f5f5f4;    --b-pending-fg: #78716c;

  --theme-pill-bg: #efe7d3; --theme-pill-fg: #5a4c2a;
  --axis-pill-bg: #e7eef0;  --axis-pill-fg: #2c4a52;

  --shadow: 0 1px 2px rgba(20, 20, 20, .03), 0 4px 16px rgba(20, 20, 20, .04);

  --radius: 12px;
  --radius-sm: 6px;

  --serif: "Charter", "Iowan Old Style", "Iowan", "Source Serif Pro", "PT Serif", "Georgia", serif;
  --sans: "Inter", -apple-system, "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
  --mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;
}
[data-theme="dark"] {
  --bg: #14130f;
  --surface: #1c1a16;
  --surface-2: #25221c;
  --ink: #f0ece2;
  --ink-2: #c5beb0;
  --muted: #8a8473;
  --line: #2f2b22;
  --accent: #d4b87a;
  --accent-soft: #6f5e35;
  --link: #d4b87a;
  --link-hover: #f0d68a;

  --b-priority-bg: #3d2e0a; --b-priority-fg: #fde68a; --b-priority-line: #b8901a;
  --b-contender-bg: #1a2a4a; --b-contender-fg: #bfdbfe; --b-contender-line: #3b5fa3;
  --b-reframe-bg: #3a2a10;  --b-reframe-fg: #fcd34d;
  --b-drop-bg: #25221c;     --b-drop-fg: #a8a08a;
  --b-replicate-bg: #2a1f4a; --b-replicate-fg: #c4b5fd;

  --b-strong-yes-bg: #0f3a2a; --b-strong-yes-fg: #6ee7b7;
  --b-yes-bg: #0e3935;        --b-yes-fg: #5eead4;
  --b-maybe-bg: #3a2a10;      --b-maybe-fg: #fcd34d;
  --b-no-bg: #3a1010;         --b-no-fg: #fca5a5;

  --b-novel-high-bg: #1f1f3a; --b-novel-high-fg: #c4b5fd;
  --b-novel-med-bg: #25221c;  --b-novel-med-fg: #c5beb0;
  --b-novel-low-bg: #1f1d18;  --b-novel-low-fg: #8a8473;
  --b-pending-bg: #1f1d18;    --b-pending-fg: #8a8473;

  --theme-pill-bg: #2c2515; --theme-pill-fg: #d4b87a;
  --axis-pill-bg: #1a262a;  --axis-pill-fg: #88c2cc;
}

/* ───────── base ───────── */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "kern", "liga", "onum";
}
a { color: var(--link); text-decoration: none; }
a:hover { color: var(--link-hover); text-decoration: underline; text-underline-offset: 2px; }
code, pre {
  font-family: var(--mono);
  font-size: .9em;
}
code { background: var(--surface-2); padding: .1em .3em; border-radius: 3px; }

h1, h2, h3, h4 { font-family: var(--sans); letter-spacing: -0.02em; line-height: 1.2; color: var(--ink); }
h1 { font-size: 2.5rem; font-weight: 600; margin: 0 0 1rem; }
h2 { font-size: 1.6rem; font-weight: 600; margin: 2.5rem 0 1rem; }
h3 { font-size: 1.2rem; font-weight: 600; margin: 1.5rem 0 .5rem; }

/* ───────── header ───────── */
.site-header {
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(8px);
}
.header-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  height: 64px;
}
.brand {
  display: flex; align-items: center; gap: .5rem;
  font-family: var(--sans); font-weight: 600; font-size: 1rem; letter-spacing: -0.01em;
  color: var(--ink);
}
.brand:hover { text-decoration: none; color: var(--ink); }
.brand-mark { color: var(--accent); font-size: 1.1rem; }
.site-nav {
  display: flex; gap: 1.5rem;
  margin-left: auto;
  font-family: var(--sans); font-size: .92rem;
}
.nav-link {
  color: var(--ink-2);
  padding: .25rem 0;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
}
.nav-link:hover { color: var(--ink); text-decoration: none; }
.nav-link.active { color: var(--ink); border-bottom-color: var(--accent); }
.theme-toggle {
  background: none; border: 1px solid var(--line); color: var(--ink-2);
  width: 36px; height: 36px; border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
  transition: all .15s;
}
.theme-toggle:hover { background: var(--surface-2); color: var(--ink); }

/* ───────── layout ───────── */
.container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 3rem 1.5rem 6rem;
}
.site-footer {
  border-top: 1px solid var(--line);
  padding: 1.5rem 0;
  font-size: .85rem;
  color: var(--muted);
  font-family: var(--sans);
}
.site-footer p { margin: 0; }

/* ───────── hero ───────── */
.eyebrow {
  font-family: var(--sans);
  font-size: .8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
  margin-bottom: .75rem;
}
.hero {
  margin-bottom: 4rem;
  max-width: 740px;
}
.hero-title {
  font-size: 3rem;
  margin: 0 0 .5rem;
}
.hero-affiliation {
  font-family: var(--sans);
  color: var(--muted);
  font-size: 1rem;
  margin-bottom: 1.5rem;
}
.hero-summary {
  font-size: 1.15rem;
  line-height: 1.7;
  color: var(--ink-2);
  border-left: 3px solid var(--accent-soft);
  padding-left: 1.25rem;
  font-style: italic;
}
.hero-summary p { margin: 0; }

/* ───────── stats ───────── */
.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1rem;
  margin: 2rem 0 4rem;
}
.stat {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.25rem;
  text-align: center;
}
.stat-num {
  font-family: var(--sans);
  font-size: 2.25rem;
  font-weight: 600;
  color: var(--accent);
  line-height: 1;
}
.stat-label {
  font-family: var(--sans);
  font-size: .85rem;
  color: var(--muted);
  margin-top: .35rem;
}

/* ───────── blocks ───────── */
.block { margin-bottom: 4rem; }
.block-head {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 1.5rem;
}
.block-head h2 { margin: 0; }
.see-all {
  font-family: var(--sans); font-size: .9rem;
}

/* ───────── idea cards ───────── */
.idea-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  gap: 1rem;
}
.idea-card {
  display: block;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.25rem;
  color: var(--ink);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.idea-card:hover {
  text-decoration: none;
  border-color: var(--accent-soft);
  transform: translateY(-1px);
  box-shadow: var(--shadow);
}
.idea-card-head {
  display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .75rem;
}
.idea-card-title {
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 600;
  margin: 0 0 .5rem;
  line-height: 1.3;
  color: var(--ink);
}
.idea-card-line {
  font-size: .92rem;
  color: var(--ink-2);
  margin: 0 0 1rem;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.idea-card-foot {
  display: flex; gap: .5rem; flex-wrap: wrap;
}

/* ───────── badges ───────── */
.badge {
  display: inline-block;
  font-family: var(--sans);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .02em;
  padding: .2em .55em;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--ink-2);
  text-transform: uppercase;
  white-space: nowrap;
}
.badge-priority { background: var(--b-priority-bg); color: var(--b-priority-fg); border: 1px solid var(--b-priority-line); text-transform: none; }
.badge-contender { background: var(--b-contender-bg); color: var(--b-contender-fg); }
.badge-reframe { background: var(--b-reframe-bg); color: var(--b-reframe-fg); }
.badge-drop { background: var(--b-drop-bg); color: var(--b-drop-fg); }
.badge-replicate { background: var(--b-replicate-bg); color: var(--b-replicate-fg); }
.badge-strong-yes { background: var(--b-strong-yes-bg); color: var(--b-strong-yes-fg); }
.badge-yes { background: var(--b-yes-bg); color: var(--b-yes-fg); }
.badge-maybe { background: var(--b-maybe-bg); color: var(--b-maybe-fg); }
.badge-no { background: var(--b-no-bg); color: var(--b-no-fg); }
.badge-novel-high { background: var(--b-novel-high-bg); color: var(--b-novel-high-fg); }
.badge-novel-med { background: var(--b-novel-med-bg); color: var(--b-novel-med-fg); }
.badge-novel-low { background: var(--b-novel-low-bg); color: var(--b-novel-low-fg); }
.badge-pending { background: var(--b-pending-bg); color: var(--b-pending-fg); }

.theme-pill, .axis-pill {
  display: inline-block;
  font-family: var(--mono);
  font-size: .72rem;
  padding: .2em .55em;
  border-radius: 4px;
  font-weight: 500;
}
.theme-pill { background: var(--theme-pill-bg); color: var(--theme-pill-fg); }
.axis-pill { background: var(--axis-pill-bg); color: var(--axis-pill-fg); }

.badge-row {
  display: flex; gap: .5rem; flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

/* ───────── prose ───────── */
.prose { max-width: 740px; }
.prose.narrow { max-width: 640px; }
.prose p, .prose ul, .prose ol { margin: 1em 0; }
.prose ul, .prose ol { padding-left: 1.5em; }
.prose li { margin: .35em 0; }
.prose blockquote {
  border-left: 3px solid var(--accent-soft);
  margin: 1.5em 0;
  padding-left: 1.25rem;
  color: var(--ink-2);
  font-style: italic;
}
.prose hr { border: none; border-top: 1px solid var(--line); margin: 2rem 0; }
.prose table {
  border-collapse: collapse;
  margin: 1.5em 0;
  font-family: var(--sans);
  font-size: .92em;
  width: 100%;
}
.prose th, .prose td {
  border: 1px solid var(--line);
  padding: .5em .75em;
  text-align: left;
}
.prose th { background: var(--surface-2); font-weight: 600; }
.prose strong { font-weight: 600; color: var(--ink); }

/* ───────── page heads ───────── */
.page-head { margin-bottom: 3rem; max-width: 740px; }
.page-head h1 { margin: 0 0 .75rem; }
.page-lead {
  font-size: 1.1rem;
  color: var(--ink-2);
  line-height: 1.6;
  margin: 0;
}
.idea-head { margin-bottom: 2rem; }

/* ───────── ideas table ───────── */
.filter-bar {
  display: flex; gap: .75rem; margin-bottom: 1.5rem; flex-wrap: wrap;
  font-family: var(--sans);
}
.filter-bar input, .filter-bar select {
  font-family: var(--sans);
  font-size: .9rem;
  padding: .5rem .75rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--ink);
}
.filter-bar input { flex: 1; min-width: 200px; }
.filter-bar input:focus, .filter-bar select:focus {
  outline: none; border-color: var(--accent-soft);
}
.ideas-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--sans);
  font-size: .92rem;
}
.ideas-table thead th {
  text-align: left;
  font-weight: 600;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  padding: .75rem .5rem;
  border-bottom: 1px solid var(--line);
}
.ideas-table tbody tr {
  border-bottom: 1px solid var(--line);
  transition: background .1s;
}
.ideas-table tbody tr:hover { background: var(--surface-2); }
.ideas-table td { padding: 1rem .5rem; vertical-align: top; }
.cell-title { max-width: 420px; }
.cell-title a {
  font-weight: 500;
  font-size: 1rem;
  color: var(--ink);
}
.cell-title a:hover { color: var(--accent); }
.cell-line { color: var(--muted); font-size: .85rem; margin-top: .35rem; line-height: 1.5; }
.cell-pill { white-space: nowrap; }

/* ───────── idea detail page ───────── */
.breadcrumb { margin-bottom: 1.5rem; font-family: var(--sans); font-size: .9rem; }
.idea-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  margin-bottom: 3rem;
}
@media (min-width: 980px) {
  .idea-cols { grid-template-columns: 1fr 1fr; gap: 3rem; }
}
.idea-col { max-width: none; }
.col-tag {
  font-family: var(--sans);
  text-transform: uppercase;
  font-size: .8rem;
  letter-spacing: .08em;
  color: var(--muted);
  margin: 0 0 1rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--line);
  font-weight: 600;
}
.idea-col-eval { background: var(--surface); border-radius: var(--radius); padding: 1.5rem; border: 1px solid var(--line); }
@media (min-width: 980px) { .idea-col-eval { padding: 2rem; } }
.idea-nav {
  display: flex; justify-content: space-between; gap: 2rem;
  border-top: 1px solid var(--line);
  padding-top: 1.5rem;
  font-family: var(--sans);
  font-size: .9rem;
}

/* ───────── evidence page ───────── */
.evidence-toc {
  display: flex; gap: 1rem; flex-wrap: wrap;
  margin-top: 1.5rem;
  font-family: var(--sans); font-size: .9rem;
}
.evidence-toc a {
  padding: .35rem .75rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 999px;
}
.evidence-toc a:hover { border-color: var(--accent-soft); text-decoration: none; }
.evidence-section {
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--line);
}
.evidence-section:first-of-type { border-top: none; padding-top: 0; }

.muted { color: var(--muted); }

/* ───────── round-002 additions ───────── */
:root {
  --b-ph-high-bg: #e0f2fe; --b-ph-high-fg: #075985;
  --b-ph-med-bg: #f0f4f8;  --b-ph-med-fg: #475569;
  --b-ph-low-bg: #f5f5f4;  --b-ph-low-fg: #78716c;
  --b-fund-strong-bg: #ecfccb; --b-fund-strong-fg: #3f6212;
  --b-fund-mod-bg: #fefce8;    --b-fund-mod-fg: #713f12;
  --b-fund-weak-bg: #f5f5f4;   --b-fund-weak-fg: #78716c;
}
[data-theme="dark"] {
  --b-ph-high-bg: #0c2a3a; --b-ph-high-fg: #7dd3fc;
  --b-ph-med-bg: #1f1d18;  --b-ph-med-fg: #c5beb0;
  --b-ph-low-bg: #1f1d18;  --b-ph-low-fg: #8a8473;
  --b-fund-strong-bg: #1a2a0a; --b-fund-strong-fg: #bef264;
  --b-fund-mod-bg: #2a2010;    --b-fund-mod-fg: #fde047;
  --b-fund-weak-bg: #1f1d18;   --b-fund-weak-fg: #8a8473;
}
.badge-ph-high { background: var(--b-ph-high-bg); color: var(--b-ph-high-fg); }
.badge-ph-med  { background: var(--b-ph-med-bg);  color: var(--b-ph-med-fg); }
.badge-ph-low  { background: var(--b-ph-low-bg);  color: var(--b-ph-low-fg); }
.badge-fund-strong { background: var(--b-fund-strong-bg); color: var(--b-fund-strong-fg); }
.badge-fund-mod    { background: var(--b-fund-mod-bg);    color: var(--b-fund-mod-fg); }
.badge-fund-weak   { background: var(--b-fund-weak-bg);   color: var(--b-fund-weak-fg); }

/* breadcrumbs */
.crumbs {
  font-family: var(--sans); font-size: .85rem;
  margin-bottom: 1.5rem; color: var(--muted);
}
.crumb { color: var(--muted); }
.crumb:hover { color: var(--ink); text-decoration: none; }
.crumb-sep { margin: 0 .5rem; color: var(--line); }
.crumb-current { color: var(--ink); font-weight: 500; }

/* hero summary plain (no quote bar) */
.hero-summary-plain {
  font-size: 1.15rem; line-height: 1.7; color: var(--ink-2);
  max-width: 720px;
}

/* researcher cards on home */
.researcher-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1rem;
}
.researcher-card {
  display: block;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.5rem;
  color: var(--ink);
  transition: transform .12s, box-shadow .12s, border-color .12s;
}
.researcher-card:hover {
  text-decoration: none;
  border-color: var(--accent-soft);
  transform: translateY(-1px);
  box-shadow: var(--shadow);
}
.researcher-name {
  font-family: var(--sans); font-size: 1.25rem; font-weight: 600;
  margin-bottom: .35rem;
}
.researcher-aff {
  font-family: var(--sans); font-size: .9rem; color: var(--muted);
  margin-bottom: 1rem;
}
.researcher-stats {
  font-family: var(--sans); font-size: .9rem; color: var(--ink-2);
  display: flex; gap: .5rem; align-items: center; flex-wrap: wrap;
}
.researcher-stats .dot { color: var(--line); }

.researcher-actions {
  display: flex; gap: 1.5rem; margin-top: 1.5rem; flex-wrap: wrap;
  font-family: var(--sans); font-size: .95rem;
}
.action-link {
  font-weight: 500;
}

/* funder cards */
.funder-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1rem;
}
.funder-card {
  display: block;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  color: var(--ink);
  font-family: var(--sans);
}
.funder-card:hover { border-color: var(--accent-soft); text-decoration: none; }
.funder-card-large { padding: 2rem; }
.funder-card-large h3 { margin: 0; }

/* runs listing */
.runs { display: flex; flex-direction: column; gap: 1.5rem; }
.run-row {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.5rem;
}
.run-row-head {
  display: flex; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap; gap: .5rem;
  margin-bottom: 1rem;
}
.run-row-head h3 {
  margin: 0; font-size: 1.3rem;
}
.run-row-head h3 a { color: var(--ink); }
.run-row-head h3 a:hover { color: var(--accent); text-decoration: none; }
.run-row-stats {
  display: flex; gap: .4rem; flex-wrap: wrap; align-items: center;
  font-family: var(--sans);
}
.run-row-changes { margin-bottom: 1rem; }
.run-row-changes p:first-child { margin-top: 0; }
.run-row-foot { font-family: var(--sans); font-size: .9rem; }
.run-row-link { font-weight: 500; }

/* run actions row */
.run-actions {
  display: flex; gap: 1.5rem; margin-bottom: 2.5rem; flex-wrap: wrap;
  font-family: var(--sans); font-size: .95rem;
}

/* meta-row on idea page */
.meta-row {
  font-family: var(--sans); font-size: .9rem; color: var(--ink-2);
  margin-top: .5rem;
}
