@font-face {
  font-family: "Instrument Sans";
  src: url("/fonts/instrument-sans-latin-wght-normal.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Plex Mono";
  src: url("/fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
:root {
  --paper: #fdfcf9;
  --surface: #fff;
  --surface-muted: #f3f5f0;
  --ink: #252a25;
  --ink-soft: #58645d;
  --muted: #758078;
  --line: #dfe4dc;
  --line-dark: #c7d0c4;
  --green: #315d42;
  --green-soft: #f0f5ec;
  --green-light: #e6eedf;
  --teal: #17776d;
  --coral: #c76a55;
  --mono: "Plex Mono", ui-monospace, monospace;
  font-family: "Instrument Sans", system-ui, sans-serif;
  font-size: 15px;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 360px; }
button, input { font: inherit; }
button, a { color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; }
a { text-underline-offset: 4px; }
button { transition: color .12s, background .12s; }
button:focus-visible, a:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 4px;
}
button:focus:not(:focus-visible) { outline: none; }
[hidden] { display: none !important; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { font-weight: 500; }
p { line-height: 1.65; }
.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; }
.skip-link { position:fixed; left:24px; top:-60px; background:white; padding:12px; z-index:100; }
.skip-link:focus { top:8px; }

/* Preserve the original Atlas mark. */
.brand { display:inline-flex; gap:12px; align-items:center; text-decoration:none; flex-shrink:0; }
.brand-mark { display:flex; width:23px; height:23px; position:relative; align-items:center; justify-content:center; gap:3px; transform:rotate(-22deg); }
.brand-mark::before, .brand-mark::after { content:""; position:absolute; height:1px; width:20px; background:var(--teal); opacity:.65; transform:rotate(45deg); }
.brand-mark::after { transform:rotate(-45deg); }
.brand-mark span { width:5px; height:5px; border:1.5px solid var(--teal); background:var(--paper); border-radius:50%; z-index:1; }
.brand-mark span:nth-child(2) { width:7px; height:7px; background:var(--teal); }
.brand-name { font-family:Georgia,"Times New Roman",serif; font-size:25px; letter-spacing:-.055em; font-weight:700; }
.brand-period { color:var(--coral); }

/* One masthead. One content grid. */
.masthead { position:sticky; top:0; z-index:30; background:var(--paper); border-bottom:1px solid var(--line); }
.masthead-inner { max-width:1440px; height:78px; padding:0 48px; margin:auto; display:flex; align-items:center; gap:36px; }
.main-nav { display:flex; align-self:stretch; align-items:stretch; gap:28px; margin-left:32px; }
.main-nav button { border:0; border-bottom:2px solid transparent; background:none; padding:2px 0 0; color:var(--ink-soft); font-size:14px; white-space:nowrap; }
.main-nav button[aria-current] { color:var(--green); border-bottom-color:var(--green); }
.main-nav button:hover { color:var(--green); }
.method-button { padding:5px 0; background:none; border:0; color:var(--ink-soft); font-size:13px; }
.method-button:hover { color:var(--green); }
.search-section { width:290px; min-width:210px; margin-left:auto; position:relative; }
.search-form { height:36px; display:flex; align-items:center; padding:0 7px 0 0; border-bottom:1px solid var(--line-dark); }
.search-form:focus-within { border-bottom-color:var(--green); }
.search-icon { width:12px; height:12px; border:1.4px solid #77867a; border-radius:50%; margin-right:14px; position:relative; flex-shrink:0; }
.search-icon::after { content:""; position:absolute; right:-4px; bottom:-3px; width:5px; height:1.4px; background:#77867a; transform:rotate(45deg); }
.search-form input { width:100%; min-width:0; border:0; outline:0; background:none; color:var(--ink); font-size:13px; }
.search-form input::placeholder { color:#7b857e; }
.search-submit { border:0; background:none; color:var(--muted); font-size:17px; padding:2px 4px; }
.search-results { position:absolute; top:43px; right:0; width:max(100%,440px); padding:6px; background:white; border:1px solid var(--line-dark); box-shadow:0 10px 24px #283c2415; }
.suggestion { display:grid; grid-template-columns:80px 1fr; width:100%; padding:12px 9px; border:0; gap:4px 10px; text-align:left; background:none; }
.suggestion:hover, .suggestion.is-active { background:var(--green-soft); }
.suggestion-kind { font-family:var(--mono); font-size:10px; color:var(--green); grid-row:span 2; padding-top:3px; }
.suggestion strong { font-size:14px; font-weight:500; }
.suggestion-alias { font-size:12px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.search-empty { padding:15px; color:var(--muted); font-size:13px; }
.demo-ribbon { max-width:1344px; margin:0 auto; padding:11px 0; display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--line); font-size:11px; line-height:1.5; color:var(--muted); }
.demo-ribbon strong { font-size:11px; font-weight:500; color:#647b57; }
.demo-ribbon__dot { width:4px; height:4px; background:#849b73; border-radius:50%; flex-shrink:0; }
main { max-width:1440px; padding:0 48px; margin:auto; }
.workspace { padding:30px 0 52px; min-height:calc(100vh - 180px); outline:none; }
.workspace:has(.index-intro) { padding-top:0; }
.footer { max-width:1344px; margin:auto; padding:20px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; font-size:11px; color:var(--muted); }
.footer-divider { margin:0 9px; color:var(--line-dark); }

/* A short introduction and one editorial image lead directly into the index. */
.index-intro { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:64px; padding:64px 0 60px; }
.index-intro-copy { padding:0 0 12px; min-width:0; }
.collection-label { margin:0 0 23px; color:var(--green); font-size:13px; font-weight:500; }
.index-intro h1 { font-size:clamp(42px,4.7vw,66px); line-height:1.06; letter-spacing:-.055em; font-weight:500; margin:0 0 26px; }
.index-intro h1 span { display:block; }
.index-description { max-width:390px; font-size:17px; color:var(--ink-soft); line-height:1.65; margin:0; }
.intro-actions { display:flex; align-items:center; flex-wrap:wrap; gap:27px; margin-top:31px; }
.intro-primary { display:inline-flex; justify-content:space-between; align-items:center; gap:29px; min-height:47px; padding:12px 19px; background:var(--green); color:#fff; border:1px solid var(--green); border-radius:2px; font-size:14px; font-weight:500; }
.intro-primary:hover { background:#234631; border-color:#234631; }
.intro-primary span { font-size:19px; line-height:1; }
.intro-guide { padding:9px 0; border:0; background:none; border-bottom:1px solid var(--line-dark); font-size:13px; }
.intro-guide:hover { color:var(--green); border-bottom-color:var(--green); }
.intro-figure { min-width:0; margin:0; }
.intro-art { display:block; width:100%; aspect-ratio:4 / 3; height:auto; object-fit:cover; background:#eeeedd; }
.intro-caption { display:flex; justify-content:space-between; align-items:baseline; gap:15px; padding:12px 0 0; font-size:11px; line-height:1.5; color:var(--ink-soft); }
.illustration-note { flex-shrink:0; font-size:10px; color:var(--muted); }
.disease-directory { scroll-margin-top:100px; }
.disease-directory:focus { outline:none; }
.disease-directory:focus-visible .index-heading h2 { text-decoration:underline; text-decoration-color:var(--green); text-underline-offset:5px; }

.index-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:17px 0 19px; border-top:1px solid var(--line-dark); }
.index-heading { display:flex; align-items:baseline; gap:12px; }
.index-heading h2 { font-size:20px; font-weight:500; letter-spacing:-.02em; margin:0; }
.record-total { font-size:12px; color:var(--muted); }
.index-order { font-size:12px; color:var(--muted); }
.disease-table { width:100%; border-collapse:collapse; table-layout:fixed; text-align:left; }
.disease-col { width:30%; }
.mechanism-col { width:32%; }
.effect-col { width:23%; }
.evidence-col { width:12%; }
.arrow-col { width:3%; text-align:right; }
.disease-table th { padding:12px 12px 13px 0; font-size:11px; font-weight:400; color:var(--muted); border-top:1px solid var(--line); border-bottom:1px solid var(--line); white-space:nowrap; }
.disease-table td { padding:17px 14px 17px 0; border-bottom:1px solid var(--line); vertical-align:middle; }
.disease-table th.arrow-col, .disease-table td.arrow-col { padding-right:1px; }
.disease-row { cursor:pointer; transition:background .12s; }
.disease-row:hover { background:#f0f4ec; }
.disease-row:hover .disease-open strong { color:var(--green); }
.disease-row:hover .row-arrow { transform:translate(2px,-2px); }
.disease-open { border:0; background:none; padding:0; display:flex; flex-direction:column; gap:5px; text-align:left; }
.disease-open strong { font-size:16px; font-weight:500; letter-spacing:-.01em; }
.disease-alias { font-size:10px; color:var(--muted); line-height:1.6; }
.mechanism-name { display:block; font-size:13px; color:var(--ink-soft); line-height:1.5; padding-right:15px; }
.effect-value { font-size:13px; color:var(--ink); line-height:1.5; }
.record-note { display:block; margin-top:4px; font-size:11px; color:var(--muted); }
.is-conflict { color:#9d5e47; }
.is-unknown { color:#8a774c; }
.record-count { font-family:var(--mono); font-size:13px; color:var(--ink-soft); }
.row-arrow { display:inline-block; color:var(--green); font-size:18px; transition:transform .12s; }
.index-note { margin-top:23px; display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.index-note p { max-width:720px; font-size:12px; color:var(--muted); line-height:1.7; margin:0; }
.text-link { border:0; background:none; color:var(--green); padding:2px 0; font-size:12px; white-space:nowrap; text-decoration:underline; text-underline-offset:4px; }

/* Shared typography: sentence case, restrained metadata. */
.eyebrow, .section-kicker, .detail-label, .card-type { font-family:var(--mono); font-size:10px; font-weight:400; line-height:1.5; color:var(--muted); letter-spacing:.015em; }
.eyebrow { margin-bottom:15px; }
.detail-label { display:block; margin-bottom:9px; }
.section-kicker { margin:0 0 8px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:18px; }
.section-heading h2 { font-size:28px; letter-spacing:-.025em; font-weight:400; margin:0; }
.section-aside { font-family:var(--mono); font-size:11px; color:var(--muted); padding-bottom:3px; }
.section-intro { color:var(--ink-soft); font-size:14px; margin:0 0 24px; line-height:1.7; }
.secondary-button, .primary-button { display:inline-flex; justify-content:center; align-items:center; gap:8px; padding:10px 14px; font-size:12px; font-weight:500; border-radius:2px; border:1px solid var(--line-dark); background:white; color:var(--green); white-space:nowrap; }
.secondary-button:hover { background:var(--green-soft); border-color:var(--green); }
.primary-button { background:var(--green); border-color:var(--green); color:#fff; }
.back-button { background:none; border:0; padding:0; color:var(--muted); font-size:12px; margin-bottom:20px; }
.back-button:hover { color:var(--green); }
.disease-heading { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-bottom:30px; }
.disease-heading h1 { font-size:36px; font-weight:400; letter-spacing:-.03em; line-height:1.15; margin-bottom:10px; }
.disease-description { font-size:13px; color:var(--muted); margin-bottom:0; }
.disease-meta { display:flex; align-items:flex-end; flex-direction:column; gap:12px; }
.entity-id { font-family:var(--mono); font-size:10px; color:var(--muted); overflow-wrap:anywhere; }
.pill { display:inline-flex; align-items:center; gap:6px; font-size:11px; line-height:1.5; padding:0; color:var(--muted); }
.pill--positive { color:#3d714c; }
.pill--caution { color:#997b32; }
.pill--conflict { color:#a85e48; }
.pill--muted { color:#8a7369; }
.pill--teal { color:var(--green); }
.pill--positive::before, .pill--caution::before, .pill--conflict::before, .pill--muted::before { content:""; width:4px; height:4px; border-radius:50%; background:currentColor; flex-shrink:0; }

/* Compare candidates in a stable left rail; inspect the selected record on the right. */
.research-workbench { display:grid; grid-template-columns:226px minmax(0,1fr); border-top:1px solid var(--ink); min-height:560px; }
.candidate-rail { padding:24px 22px 25px 0; border-right:1px solid var(--line); }
.candidate-rail h2 { font-size:16px; font-weight:500; margin:0 0 6px; }
.rail-note { font-size:12px; color:var(--muted); margin:0 0 22px; }
.candidate-selectors { display:flex; flex-direction:column; }
.candidate-selector { display:block; width:100%; text-align:left; padding:16px 12px; border:0; border-left:2px solid transparent; border-bottom:1px solid var(--line); background:none; }
.candidate-selector:hover { background:#f1f4ed; }
.candidate-selector.is-selected { background:#edf3e8; border-left-color:#3b6f46; }
.candidate-selector-title { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; }
.candidate-selector-title strong { font-size:14px; font-weight:500; }
.candidate-arrow { color:var(--green); opacity:0; }
.candidate-selector.is-selected .candidate-arrow { opacity:1; }
.candidate-selector .pill { font-size:11px; }
.ranking-details { margin-top:26px; color:var(--muted); font-size:11px; line-height:1.65; }
.ranking-details summary { cursor:pointer; }
.ranking-details p { margin-top:12px; }
.connection-detail { min-width:0; }
.connection-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 0 24px 30px; }
.connection-label { font-size:12px; color:var(--muted); margin:0 0 7px; }
.connection-heading h2 { margin:0; font-size:25px; font-weight:400; letter-spacing:-.02em; }
.detail-tabs { display:flex; gap:30px; padding:0 0 0 30px; border-bottom:1px solid var(--line); }
.detail-tabs button { padding:12px 0 14px; background:none; border:0; border-bottom:2px solid transparent; color:var(--muted); font-size:13px; }
.detail-tabs button:hover { color:var(--green); }
.detail-tabs button.active { border-bottom-color:var(--green); color:var(--green); }
.connection-panel { min-height:410px; }
.map-canvas { padding:12px 12px 0 25px; background:#fafbf7; border-bottom:1px solid var(--line); overflow:auto; }
.map-canvas svg { display:block; width:100%; min-width:630px; max-height:350px; height:auto; }
.map-node { cursor:pointer; }
.map-node rect { fill:#fff; stroke:#cbd6c4; stroke-width:1; }
.map-node.mechanism rect { fill:#eaf1e2; stroke:#93aa80; }
.map-node:hover rect { stroke:#315c40; stroke-width:1.6; }
.map-node-type { font-family:var(--mono); font-size:10px; fill:#73826a; }
.map-node-name { font-family:"Instrument Sans",sans-serif; font-size:14px; fill:#30452d; font-weight:500; }
.map-edge { fill:none; stroke:#869e72; stroke-width:1.3; }
.map-edge.inferred { stroke-dasharray:5 5; stroke:#b69a63; }
.map-edge.conflict { stroke:#bd7c6e; stroke-dasharray:4 3; }
.edge-label { cursor:pointer; }
.edge-label rect { fill:#fafbf7; stroke:none; }
.edge-label text { font-family:var(--mono); fill:#62764f; font-size:10px; }
.edge-label:hover rect { fill:#ddebd1; }
.edge-label.conflict rect { fill:#fff0e9; }
.edge-label.conflict text { fill:#9c5643; }
.edge-label.inferred rect { stroke:#c9b890; stroke-dasharray:3 3; stroke-width:.6; }
.map-caption { padding:12px 0 12px 30px; display:flex; justify-content:space-between; gap:16px; font-size:11px; color:var(--muted); border-bottom:1px solid var(--line); }
.mobile-map-hint { display:none; }
.assessment { margin:24px 0 24px 30px; }
.assessment h3 { font-size:15px; font-weight:500; margin-bottom:10px; }
.assessment--muted h3 { color:#925d49; }
.assessment--caution h3 { color:#8d753b; }
.assessment h4 { font-size:13px; margin:18px 0 9px; }
.plain-list { padding-left:17px; margin:0; color:var(--ink-soft); font-size:13px; line-height:1.7; }
.plain-list li + li { margin-top:7px; }
.asset-preview { display:flex; align-items:center; justify-content:space-between; gap:22px; margin:25px 0 0 30px; padding:22px 0; border-top:1px solid var(--line); }
.asset-preview > div { display:flex; flex-direction:column; gap:7px; }
.asset-preview strong { font-size:14px; font-weight:500; }
.asset-preview .detail-label { margin:0; font-size:10px; }
.asset-preview span:not(.detail-label) { font-size:12px; color:var(--muted); }
.asset-preview p { font-size:13px; color:var(--muted); margin:0; }
.evidence-table { padding:24px 0 24px 30px; }
.evidence-table .section-intro { font-size:13px; }
.claim-button { width:100%; display:flex; align-items:center; gap:12px; border:0; border-bottom:1px solid var(--line); padding:17px 5px; background:none; text-align:left; }
.claim-button:hover { background:var(--green-soft); }
.claim-mark { color:#7d906e; font-size:16px; flex-shrink:0; }
.claim-copy { font-size:13px; line-height:1.6; flex:1; }
.claim-arrow { font-size:11px; color:var(--green); margin-left:auto; }
.claim-table-meta { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:7px; max-width:190px; font-family:var(--mono); font-size:10px; color:var(--muted); }
.claim-table-meta .pill { font-family:var(--mono); font-size:10px; }
.evidence-links { margin-top:26px; }
.claim-links { border-top:1px solid var(--line); }

/* Missing evidence gets a useful explanation, not a decorative empty card. */
.no-route-card { margin:0 0 30px; padding:22px 24px; background:#f6f4ec; border-left:2px solid #aa9561; }
.no-route-symbol { display:none; }
.no-route-card > .card-type { color:#907947; }
.no-route-card h2 { font-size:21px; margin:9px 0 12px; }
.no-route-lede { font-size:13px; color:#706955; margin:0 0 21px; max-width:780px; }
.gap-columns { display:grid; grid-template-columns:1fr 1fr; gap:38px; }
.gap-panel .detail-label { color:#897850; }
.gap-panel .plain-list { font-size:12px; color:#79715c; }
.coverage-line { font-family:var(--mono); font-size:10px; color:#8b826c; padding-top:17px; margin:20px 0 0; border-top:1px solid #e4dfcf; line-height:1.8; }
.opportunity-card { padding:26px 0 26px 30px; }
.opportunity-top { display:flex; align-items:flex-start; gap:15px; margin-bottom:17px; }
.opportunity-icon { color:var(--green); padding-top:15px; font-size:25px; }
.opportunity-top h3 { font-size:23px; line-height:1.35; letter-spacing:-.02em; font-weight:400; margin:7px 0 0; }
.opportunity-proposal { font-size:14px; color:var(--ink-soft); line-height:1.8; }
.asset-row { margin:25px 0; padding:17px 18px; background:var(--green-soft); border-left:2px solid #9eb98b; }
.asset-button { background:none; border:0; padding:0; text-align:left; color:var(--green); font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.asset-connector { display:block; font-size:12px; color:var(--muted); margin-top:10px; }
.opportunity-groups { display:grid; grid-template-columns:1fr 1fr; gap:26px; margin:24px 0; }
.chip-row { display:flex; flex-wrap:wrap; gap:7px; }
.entity-chip { border:0; border-bottom:1px solid var(--line-dark); background:none; padding:6px 0; font-size:13px; text-align:left; line-height:1.5; color:var(--green); }
.entity-chip:hover { border-color:var(--green); }
.next-step { padding:18px; border-left:2px solid #95ab80; background:#f5f7f0; margin:26px 0; display:flex; gap:18px; }
.next-step-number { font-family:var(--mono); font-size:10px; color:var(--green); padding-top:4px; }
.next-step p { font-size:13px; margin:0; }
.reuse-note, .difference-note { font-size:12px; color:var(--muted); line-height:1.8; margin:23px 0; }
.library-page { padding-top:10px; }
.library-list { display:grid; gap:0; border-top:1px solid var(--ink); }
.source-card { border-bottom:1px solid var(--line); padding:25px 0; }
.source-card h4 { font-size:19px; font-weight:500; margin:0 0 13px; }
.source-metadata, .source-locator, .source-attribution { font-size:12px; color:var(--muted); line-height:1.7; overflow-wrap:anywhere; }
.source-link { font-size:12px; color:var(--green); }
.asset-library-row { display:flex; gap:22px; align-items:center; padding:24px 0; border:0; border-bottom:1px solid var(--line); background:none; text-align:left; }
.asset-library-row:hover { background:var(--green-soft); }
.asset-library-row strong { font-weight:500; font-size:16px; flex:1; }
.asset-library-icon { color:var(--green); font-size:23px; }
.result-list { border-top:1px solid var(--line); }
.result-row { display:grid; grid-template-columns:90px 1fr auto; gap:18px; align-items:center; text-align:left; width:100%; border:0; border-bottom:1px solid var(--line); background:none; padding:23px 8px; }
.result-row:hover { background:var(--green-soft); }
.result-kind { font-family:var(--mono); font-size:10px; color:var(--green); }
.result-main { display:flex; flex-direction:column; gap:7px; }
.result-main strong { font-size:16px; font-weight:500; }
.result-summary { font-size:13px; color:var(--muted); }
.result-meta { display:flex; align-items:center; gap:12px; }
.alias-tag { font-family:var(--mono); font-size:10px; color:var(--muted); }
.result-arrow { color:var(--green); }
.entity-card { padding:24px 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--line); }
.entity-topline { display:flex; justify-content:space-between; gap:24px; margin-bottom:20px; }
.entity-title { font-size:32px; font-weight:400; letter-spacing:-.03em; }
.entity-description { font-size:14px; color:var(--muted); }
.entity-aliases { font-size:13px; margin-top:26px; }
.claim-list-panel { margin-top:32px; }
.claim-list-panel h3 { font-size:20px; }
.empty-state, .empty-card { padding:38px; text-align:center; color:var(--muted); font-size:14px; line-height:1.8; }
.empty-icon { font-size:25px; }
.muted-copy { font-size:13px; color:var(--muted); padding:12px 24px; }
.notice { margin-top:24px; padding:17px; background:#f9f1e5; border-left:2px solid #c7a867; font-size:14px; }
.loading-state { min-height:220px; display:flex; align-items:center; justify-content:center; gap:12px; color:var(--muted); font-size:14px; }
.spinner { width:15px; height:15px; border:1.5px solid var(--line); border-top-color:var(--green); border-radius:50%; animation:spin .7s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

/* Source excerpts sit in a readable sheet while the connection stays in view. */
dialog { border:1px solid var(--line); color:var(--ink); padding:30px; background:#fff; box-shadow:0 12px 70px #14291020; }
dialog::backdrop { background:#1d302931; }
.evidence-dialog { position:fixed; inset:0 0 0 auto; margin:0; width:min(620px,100%); height:100dvh; max-height:100dvh; max-width:100%; border-radius:0; border-width:0 0 0 1px; overflow:auto; }
.dialog-head { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:25px; }
.dialog-head .eyebrow { margin:0 0 12px; }
.dialog-head h2 { font-size:26px; line-height:1.35; letter-spacing:-.02em; font-weight:400; margin:0; }
.icon-button { display:grid; place-items:center; border:0; background:none; width:30px; height:30px; flex-shrink:0; font-size:24px; color:var(--muted); }
.icon-button:hover { background:var(--surface-muted); }
.evidence-meta { display:flex; align-items:center; justify-content:space-between; gap:17px; margin-bottom:23px; }
.claim-context { padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.claim-context-copy { font-size:13px; line-height:1.9; margin:0; }
.confidence-note { font-size:11px; color:var(--muted); margin:13px 0 0; }
.evidence-section { margin-top:28px; }
.evidence-section h3 { font-size:17px; margin:9px 0 21px; }
.evidence-record { padding:18px 20px; background:#f6f8f2; border-left:2px solid #94ae7e; margin:15px 0; }
.evidence-record--contradiction { background:#fcf4ed; border-left-color:#b97a64; }
.evidence-status { font-family:var(--mono); font-size:9px; color:#6e825d; }
.evidence-record--contradiction .evidence-status { color:#a96853; }
.review-tag { font-family:var(--mono); font-size:9px; color:var(--muted); float:right; text-transform:capitalize; }
.evidence-record h4 { font-size:15px; margin:13px 0; }
.evidence-excerpt { margin:14px 0 0; font-size:14px; line-height:1.85; color:var(--ink-soft); }
.source-attribution { margin-bottom:5px; color:#627256; }
.source-locator { font-family:var(--mono); font-size:10px; margin-bottom:7px; }
.source-list { display:grid; gap:0; }
.source-list .source-card { padding:19px 0; }
.source-list h4 { font-size:15px; }
.evidence-caveat { font-size:12px; line-height:1.8; margin:27px 0 7px; color:var(--muted); }
.error-copy { color:#9a4f3b; font-size:14px; }
.method-dialog { width:min(720px,90vw); }
.dialog-lede { font-size:15px; color:var(--ink-soft); }
.method-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin:28px 0; }
.method-grid h3 { font-size:19px; margin:14px 0; }
.method-grid p { font-size:13px; color:var(--ink-soft); }
.method-index { font-family:var(--mono); font-size:11px; color:var(--green); }
.dialog-caution { padding-top:20px; border-top:1px solid var(--line); font-size:12px; color:var(--muted); }

@media(max-width:1440px) {
  .demo-ribbon, .footer { margin-left:48px; margin-right:48px; }
}
@media(max-width:1100px) {
  .index-intro { gap:36px; padding:48px 0; }
  .index-intro h1 { font-size:46px; }
  .index-description { font-size:16px; }
  .intro-caption { flex-direction:column; gap:3px; }

  .masthead-inner { padding:0 32px; gap:25px; }
  .main-nav { gap:22px; margin-left:18px; }
  .search-section { width:245px; min-width:160px; }
  main { padding:0 32px; }
  .demo-ribbon, .footer { margin-left:32px; margin-right:32px; }
  .research-workbench { grid-template-columns:205px minmax(0,1fr); }
  .candidate-rail { padding-right:18px; }
  .connection-heading, .detail-tabs { padding-left:24px; }
  .map-caption { padding-left:24px; }
  .asset-preview { align-items:flex-start; flex-direction:column; }
  .assessment { margin-left:24px; }
  .opportunity-card, .evidence-table { padding-left:24px; }
  .disease-col { width:29%; }
  .mechanism-col { width:29%; }
  .effect-col { width:25%; }
  .evidence-col { width:14%; }
  .disease-table td { padding-right:10px; }
}
@media(max-width:850px) {
  .index-intro { grid-template-columns:1fr; gap:30px; padding:38px 0; }
  .index-intro-copy { padding:0; }
  .index-intro h1 { font-size:52px; margin-bottom:20px; }
  .index-description { max-width:500px; }
  .collection-label { margin-bottom:19px; }
  .intro-actions { margin-top:23px; }
  .intro-art { aspect-ratio:2 / 1; object-position:center 45%; }
  .intro-caption { flex-direction:row; }
}
@media(max-width:800px) {
  .masthead-inner { padding:0 24px; height:70px; gap:22px; }
  .main-nav { margin-left:8px; gap:18px; }
  .main-nav button { font-size:13px; }
  .search-section { width:190px; min-width:120px; }
  .method-button { font-size:12px; }
  .brand { gap:9px; }
  .brand-name { font-size:24px; }
  main { padding:0 24px; }
  .demo-ribbon, .footer { margin-left:24px; margin-right:24px; }
  .demo-ribbon { font-size:10px; gap:9px; }
  .index-order { font-size:11px; }
  .disease-open strong { font-size:14px; }
  .mechanism-name, .effect-value { font-size:12px; }
  .record-note { font-size:10px; }
  .disease-table th { font-size:10px; }
  .research-workbench { grid-template-columns:180px minmax(0,1fr); }
  .candidate-rail { padding-right:13px; }
  .candidate-selector { padding:14px 9px; }
  .candidate-selector-title strong { font-size:12px; }
  .connection-heading { padding-left:20px; }
  .connection-heading h2 { font-size:22px; }
  .detail-tabs { gap:20px; padding-left:20px; }
  .detail-tabs button { font-size:12px; }
  .claim-table-meta { max-width:120px; }
  .map-caption { flex-direction:column; gap:5px; padding-left:20px; }
  .footer span:last-child { display:none; }
}
@media(min-width:651px) and (max-width:950px) {
  .research-workbench { display:block; }
  .candidate-rail { padding:20px 0 15px; border-right:0; border-bottom:1px solid var(--line); }
  .candidate-rail h2, .rail-note { display:inline; margin:0 13px 0 0; }
  .candidate-selectors { flex-direction:row; overflow:auto; margin-top:16px; gap:3px; padding-bottom:5px; }
  .candidate-selector { width:164px; min-width:164px; padding:12px; border:0; border-bottom:2px solid transparent; }
  .candidate-selector.is-selected { border-bottom-color:var(--green); }
  .ranking-details { margin-top:10px; }
  .connection-heading { padding:24px 0; }
  .detail-tabs { padding-left:0; }
  .map-canvas { padding-left:0; padding-right:0; }
  .map-caption { padding-left:0; padding-right:0; }
  .assessment, .asset-preview { margin-left:0; margin-right:0; }
  .evidence-table, .opportunity-card { padding-left:0; padding-right:0; }
}
@media(max-width:650px) {
  .index-intro { gap:28px; padding:32px 0 30px; }
  .index-intro h1 { font-size:42px; margin-bottom:20px; letter-spacing:-.055em; }
  .collection-label { font-size:12px; margin-bottom:18px; }
  .index-description { font-size:15px; max-width:350px; }
  .intro-actions { gap:23px; margin-top:22px; }
  .intro-primary { min-height:44px; font-size:13px; padding:10px 16px; }
  .intro-art { aspect-ratio:3 / 2; }
  .intro-caption { flex-direction:column; gap:3px; font-size:10px; }
  .illustration-note { font-size:9px; }
  .disease-directory { scroll-margin-top:130px; }

  .masthead-inner { height:auto; min-height:112px; display:grid; grid-template-columns:95px 1fr auto; grid-template-rows:58px 47px; gap:0 12px; padding:0 18px 7px; }
  .brand { grid-column:1; grid-row:1; }
  .main-nav { grid-column:2; grid-row:1; justify-content:flex-end; gap:19px; margin:0; }
  .main-nav button { font-size:12px; padding:0; }
  .method-button { grid-column:3; grid-row:2; align-self:center; }
  .search-section { grid-column:1 / 3; grid-row:2; width:100%; margin:0; }
  .search-form { height:33px; }
  .search-results { width:min(420px,calc(100vw - 36px)); left:0; right:auto; }
  .search-form input { font-size:12px; }
  .masthead-inner > .main-nav { grid-column:2 / 4; }
  .demo-ribbon, .footer { margin-left:18px; margin-right:18px; }
  .demo-ribbon { align-items:flex-start; gap:9px; line-height:1.6; padding:10px 0; }
  .demo-ribbon strong { font-size:9px; }
  .demo-ribbon__dot { margin-top:6px; }
  main { padding:0 18px; }
  .workspace { padding-top:23px; }
  .index-toolbar { padding:15px 0; }
  .index-heading h2 { font-size:18px; }
  .index-order { font-size:0; }
  .index-order::after { content:"A–Z"; font-family:var(--mono); font-size:10px; }
  .disease-table .mechanism-col, .disease-table .evidence-col { display:none; }
  .disease-col { width:57%; }
  .effect-col { width:38%; }
  .arrow-col { width:5%; }
  .disease-table td { padding-top:16px; padding-bottom:16px; }
  .disease-open strong { font-size:14px; }
  .disease-alias { font-size:9px; }
  .effect-value { font-size:12px; }
  .index-note { flex-direction:column; gap:16px; margin-top:20px; }
  .index-note p { font-size:11px; }
  .disease-heading { flex-direction:column; align-items:flex-start; gap:18px; }
  .disease-heading h1 { font-size:31px; }
  .disease-description { font-size:12px; }
  .disease-meta { flex-direction:row; align-items:center; gap:17px; }
  .disease-meta .entity-id { font-size:9px; }
  .research-workbench { display:block; }
  .candidate-rail { padding:18px 0; border-right:0; border-bottom:1px solid var(--line); }
  .candidate-rail h2, .rail-note { display:inline; margin:0 13px 0 0; }
  .candidate-selectors { flex-direction:row; overflow:auto; margin-top:16px; gap:3px; padding-bottom:5px; }
  .candidate-selector { width:160px; min-width:160px; padding:12px; border:0; border-bottom:2px solid transparent; }
  .candidate-selector.is-selected { border-bottom-color:var(--green); }
  .ranking-details { margin-top:13px; }
  .connection-heading { padding:23px 0; gap:18px; }
  .connection-label { font-size:11px; }
  .connection-heading h2 { font-size:23px; }
  .detail-tabs { padding:0; gap:24px; }
  .detail-tabs button { font-size:12px; padding-top:9px; }
  .map-canvas { padding:10px 0 0; }
  .map-canvas svg { min-width:760px; }
  .mobile-map-hint { display:block; margin:0; padding:12px 0; font-size:10px; color:var(--muted); }
  .map-caption { padding:12px 0; font-size:10px; }
  .assessment { margin:23px 0; }
  .assessment h3 { font-size:15px; }
  .asset-preview { margin:24px 0 0; padding:22px 0; gap:16px; }
  .asset-preview strong { font-size:13px; }
  .plain-list { font-size:12px; }
  .evidence-table, .opportunity-card { padding:23px 0; }
  .claim-table-meta { display:none; }
  .claim-copy { font-size:13px; }
  .claim-button { gap:9px; }
  .gap-columns { grid-template-columns:1fr; gap:23px; }
  .no-route-card { padding:21px 17px; }
  .opportunity-groups { grid-template-columns:1fr; gap:21px; }
  .opportunity-top h3 { font-size:22px; }
  .opportunity-proposal { font-size:13px; }
  .section-heading h2 { font-size:26px; }
  .section-intro { font-size:13px; }
  .section-aside { font-size:10px; }
  .result-row { grid-template-columns:65px 1fr 16px; gap:10px; padding-left:0; }
  .result-main strong { font-size:15px; }
  .result-meta .alias-tag { display:none; }
  .result-kind { font-size:9px; }
  .entity-title { font-size:27px; }
  .entity-topline { flex-direction:column; gap:12px; }
  .method-grid { grid-template-columns:1fr; gap:13px; }
  .method-dialog { padding:24px; }
  .evidence-dialog { padding:24px; }
  .dialog-head h2 { font-size:23px; }
  .review-tag { float:none; display:block; margin-top:7px; }
  .footer { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
}
