:root {
  --ink: #1a1a1f;
  --muted: #5b6470;
  --accent: #2b5cb8;
  --accent-dark: #1d3f86;
  --up: #c0392b;
  --down: #1f8a55;
  --epistemic: #d98324;
  --line: #e7eaef;
  --soft: #f5f7fa;
}

html { scroll-behavior: smooth; }

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}

/* ---------- hero ---------- */
.hero.head {
  background: radial-gradient(1100px 420px at 50% -120px, #eef3fb 0%, #ffffff 70%);
  border-bottom: 1px solid var(--line);
  padding-top: 1rem;
}
.venue-tag {
  background: #eaf1fb; color: var(--accent-dark);
  font-weight: 600; letter-spacing: .02em; margin-bottom: 1.4rem;
}
.paper-title {
  font-weight: 800; letter-spacing: -0.02em; line-height: 1.12;
  font-size: 2.45rem; color: var(--ink); max-width: 60rem; margin: 0 auto 1.6rem auto;
}
@media (max-width: 768px) { .paper-title { font-size: 1.8rem; } }

.authors { font-size: 1.18rem; font-weight: 600; line-height: 1.9; }
.authors .author { white-space: nowrap; margin: 0 .35rem; }
.authors a { color: var(--accent); border-bottom: 1px solid transparent; }
.authors a:hover { border-bottom-color: var(--accent); }
.authors sup { color: var(--muted); font-weight: 500; }

.affiliations {
  margin-top: 1rem; color: var(--muted); font-size: .96rem; line-height: 1.7;
  display: flex; flex-wrap: wrap; justify-content: center; gap: .15rem 1.1rem;
}
.equal-contrib { color: var(--muted); font-size: .9rem; margin-top: .5rem; }

/* ---------- link buttons ---------- */
.link-buttons { margin-top: 1.8rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; }
.link-button {
  display: inline-flex; align-items: center; gap: .5rem;
  background: #20242b; color: #fff; padding: .58rem 1.25rem; border-radius: 999px;
  font-weight: 600; font-size: .98rem; transition: transform .12s ease, background .2s ease;
}
.link-button:hover { background: var(--accent); color: #fff; transform: translateY(-2px); }
.link-button .icon { font-size: 1.05rem; }
.link-button.is-disabled { background: #e9edf2; color: #9aa3af; cursor: default; }
.link-button.is-disabled:hover { background: #e9edf2; color: #9aa3af; transform: none; }

/* ---------- sections ---------- */
.section-title {
  font-weight: 800; letter-spacing: -0.015em; font-size: 1.7rem; margin-bottom: 1.6rem; color: var(--ink);
}
.section-title::after {
  content: ""; display: block; width: 46px; height: 3px;
  background: var(--accent); border-radius: 3px; margin: .55rem auto 0 auto;
}
.has-background-light-grey { background: var(--soft); }
.pt-0 { padding-top: 0 !important; }
.lead { max-width: 50rem; margin: 0 auto 2rem auto; color: #2a2f37; font-size: 1.08rem; line-height: 1.7; }

/* ---------- figures ---------- */
.figure { margin: 0 auto; max-width: 980px; }
.figure img {
  width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--line);
  box-shadow: 0 14px 40px -22px rgba(20,30,60,.35); background: #fff;
}
.figure figcaption {
  margin-top: 1rem; color: var(--muted); font-size: .96rem; line-height: 1.6;
  text-align: center; max-width: 820px; margin-left: auto; margin-right: auto;
}
.teaser-section { padding-top: 2.5rem; padding-bottom: 1rem; }

/* ---------- abstract ---------- */
.abstract p { font-size: 1.12rem; line-height: 1.78; color: #2a2f37; max-width: 50rem; margin: 0 auto; }

/* ---------- contributions ---------- */
.contrib-card {
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  padding: 1.5rem 1.6rem; height: 100%; transition: transform .14s ease, box-shadow .2s ease;
}
.contrib-card:hover { transform: translateY(-3px); box-shadow: 0 16px 36px -24px rgba(20,30,60,.4); }
.contrib-icon {
  width: 44px; height: 44px; border-radius: 11px; background: #eaf1fb; color: var(--accent);
  display: flex; align-items: center; justify-content: center; font-size: 1.25rem; margin-bottom: .9rem;
}
.contrib-card h3 { font-weight: 700; font-size: 1.18rem; margin-bottom: .45rem; }
.contrib-card p { color: var(--muted); font-size: .98rem; line-height: 1.6; }

/* ---------- stat cards ---------- */
.stat-row { margin-top: .5rem; }
.stat-card {
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  padding: 1.5rem 1rem; text-align: center; height: 100%; transition: transform .14s ease, box-shadow .2s ease;
}
.stat-card:hover { transform: translateY(-3px); box-shadow: 0 16px 36px -24px rgba(20,30,60,.4); }
.stat-number { font-size: 2.1rem; font-weight: 800; color: var(--accent); letter-spacing: -0.02em; }
.stat-number.up { color: var(--up); }
.stat-number.down { color: var(--down); }
.stat-label { margin-top: .5rem; color: var(--muted); font-size: .9rem; line-height: 1.45; }
.takeaway { margin-top: 1.8rem; font-size: 1.08rem; font-weight: 500; color: #2a2f37; max-width: 46rem; margin-left: auto; margin-right: auto; }

/* ---------- dataset ---------- */
.vert-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; margin-bottom: 1.6rem; }
.vert { display: inline-flex; align-items: center; gap: .55rem; background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: .5rem 1.15rem; font-weight: 600; font-size: .95rem; color: var(--ink); transition: transform .12s ease, box-shadow .2s ease; }
.vert:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -16px rgba(20,30,60,.4); }
.vert i { color: var(--accent); font-size: 1.05rem; }
.config-line { text-align: center; color: var(--muted); font-size: .95rem; line-height: 1.9; max-width: 52rem; margin: 0 auto 1.4rem auto; }
.config-line code { background: #eef2f8; color: var(--accent-dark); padding: .1rem .4rem; border-radius: 5px; font-size: .85rem; }
.code-block {
  background: #1c1f26; color: #e6e9ef; border-radius: 12px; padding: 1.3rem 1.5rem;
  font-size: .9rem; line-height: 1.6; overflow-x: auto; max-width: 50rem; margin: 0 auto 1.2rem auto;
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
}

/* ---------- taxonomy ---------- */
.loci-row { margin-bottom: 1.4rem; }
.locus-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; border-top: 4px solid var(--accent); padding: 1.4rem 1.3rem; height: 100%; }
.locus-content { border-top-color: var(--accent); }
.locus-epistemic { border-top-color: var(--epistemic); }
.locus-model { border-top-color: var(--up); }
.locus-name { font-weight: 800; font-size: 1.2rem; margin-bottom: .5rem; }
.locus-desc { color: var(--muted); font-size: .96rem; line-height: 1.55; }

.tax-table-wrap { max-width: 40rem; margin: 0 auto 1.8rem auto; }
.tax-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.tax-table th { background: #f0f3f8; text-align: left; padding: .7rem 1rem; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.tax-table td { padding: .6rem 1rem; border-top: 1px solid var(--line); font-size: .96rem; }
.tax-table code { background: #eef2f8; color: var(--accent-dark); padding: .05rem .45rem; border-radius: 5px; font-weight: 700; }
.locus-pill { font-size: .8rem; font-weight: 600; padding: .15rem .6rem; border-radius: 999px; }
.locus-pill.content { background: #e9f0fb; color: var(--accent-dark); }
.locus-pill.epistemic { background: #fbf0e2; color: #9a5a12; }
.locus-pill.model { background: #fbeae8; color: #9a2d22; }

.family-row { margin-top: .4rem; }
.family-card { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 1.1rem; text-align: center; height: 100%; display: flex; align-items: center; gap: .9rem; justify-content: center; }
.family-n { font-size: 1.8rem; font-weight: 800; color: var(--accent); }
.family-card div span { color: var(--muted); font-size: .82rem; }
.family-card > div { text-align: left; font-weight: 600; line-height: 1.25; }
.taxonomy-foot { margin-top: 1.6rem; color: var(--muted); font-size: .98rem; line-height: 1.8; }
.doc-link { display: inline-block; font-weight: 600; color: var(--accent); }
.doc-link:hover { color: var(--accent-dark); }

/* ---------- mitigation layers ---------- */
.layer-list { max-width: 50rem; margin: 0 auto; }
.layer { display: flex; align-items: baseline; gap: 1rem; padding: .9rem 1.1rem; background: #fff; border: 1px solid var(--line); border-radius: 12px; margin-bottom: .65rem; }
.layer-tag { flex: none; width: 2.4rem; font-weight: 800; color: #fff; background: var(--accent); border-radius: 7px; text-align: center; padding: .15rem 0; font-size: .9rem; }
.layer-name { flex: none; font-weight: 700; min-width: 11rem; }
.layer-desc { color: var(--muted); font-size: .96rem; line-height: 1.45; }
@media (max-width: 768px) { .layer { flex-wrap: wrap; } .layer-name { min-width: 0; } }

/* ---------- metrics ---------- */
.metric-row { margin-top: .3rem; }
.metric-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 1.3rem 1.1rem; height: 100%; text-align: center; }
.metric-name { font-weight: 800; font-size: 1.25rem; color: var(--accent); font-family: 'SFMono-Regular', Consolas, monospace; }
.metric-desc { margin-top: .5rem; color: var(--muted); font-size: .9rem; line-height: 1.45; }

/* ---------- results ---------- */
.results-fig { max-width: 560px; margin-bottom: .5rem; }
.results-subhead { text-align: center; font-weight: 700; font-size: 1.08rem; color: var(--ink); margin: 2rem 0 .9rem; }
.results-wrap { overflow-x: auto; max-width: 60rem; margin: 0 auto; }
.results-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; font-size: .94rem; }
.results-table th { background: #f0f3f8; color: var(--muted); text-transform: uppercase; font-size: .76rem; letter-spacing: .04em; padding: .7rem .9rem; text-align: left; white-space: nowrap; }
.results-table td { padding: .58rem .9rem; border-top: 1px solid var(--line); white-space: nowrap; }
.results-table tr.hl { background: #eef5ef; }
.results-table .good { color: var(--down); font-weight: 600; }
.results-table .bad { color: var(--up); font-weight: 600; }
.results-table .delta { color: #9aa3af; font-size: .85rem; }
.results-table .muted { color: #9aa3af; font-weight: 400; font-size: .85rem; }
.results-note { max-width: 50rem; margin: 1rem auto 0; color: var(--muted); font-size: .95rem; line-height: 1.6; text-align: center; }
.results-note.robustness { margin-top: 1.6rem; padding: 1rem 1.2rem; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 10px; text-align: left; }
.results-note.robustness b { color: var(--ink); }

/* ---------- bibtex ---------- */
.bibtex-wrap { position: relative; max-width: 50rem; margin: 0 auto; }
#bibtex-block {
  background: #1c1f26; color: #e6e9ef; border-radius: 12px; padding: 1.4rem 1.5rem;
  font-size: .9rem; line-height: 1.6; overflow-x: auto;
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
}
.copy-btn {
  position: absolute; top: .7rem; right: .7rem; display: inline-flex; align-items: center; gap: .4rem;
  background: #2f343d; color: #e6e9ef; border: 1px solid #444b57; border-radius: 8px;
  padding: .35rem .7rem; font-size: .82rem; cursor: pointer; transition: background .15s ease;
}
.copy-btn:hover { background: var(--accent); border-color: var(--accent); color: #fff; }

/* ---------- footer ---------- */
.footer { background: #fff; border-top: 1px solid var(--line); padding: 2.5rem 1.5rem 3rem; }
.footer-links a { color: var(--accent); font-weight: 600; }
.footer-links { font-size: 1.02rem; margin-bottom: .6rem; }
.footer-soon { color: var(--muted); }
.footer-note { color: var(--muted); font-size: .86rem; line-height: 1.6; }
.footer-note a { color: var(--muted); text-decoration: underline; }
