
:root {
  --bg: #f8fafc;
  --surface: #ffffff;
  --surface-2: #f1f5f9;
  --text: #1e293b;
  --muted: #64748b;
  --line: #e2e8f0;
  --deep: #0f172a;
  --gold: #b8860b;
  --gold-light: #f7e9b7;
  --blue: #2563eb;
  --open: #7c3aed;
  --danger: #b42318;
  --ok: #087f5b;
  --shadow: 0 12px 35px rgba(15, 23, 42, .08);
  --radius: 1.25rem;
}
[data-reviewer="true"] .callout.warning,[data-reviewer="true"] .callout.open,
[data-reviewer="true"] .badge.corrected,[data-reviewer="true"] .badge.open {
  outline:2px solid color-mix(in srgb,var(--danger) 70%,transparent); outline-offset:2px;
}
[data-reviewer="true"] .reviewer-priority { display:block; }
.reviewer-priority { display:none; }

[data-theme="dark"] {
  --bg: #0b1120;
  --surface: #111827;
  --surface-2: #1e293b;
  --text: #e5e7eb;
  --muted: #a8b3c5;
  --line: #334155;
  --deep: #f8fafc;
  --gold: #e0b84a;
  --gold-light: #3a2f13;
  --shadow: 0 15px 40px rgba(0, 0, 0, .3);
}
[data-theme="dark"] .button.primary,
[data-theme="dark"] .button.primary:hover {
  color: var(--bg);
  background: var(--deep);
  border-color: var(--deep);
}
[data-theme="dark"] .button:not(.primary) {
  color: var(--text);
  background: var(--surface);
  border-color: var(--line);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body {
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font-family: Inter, system-ui, sans-serif;
  line-height: 1.7;
}
a { color: var(--blue); text-underline-offset: 3px; }
img, canvas, svg { max-width: 100%; }
button, input, select { font: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible,
summary:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

.skip-link {
  position: fixed; left: 1rem; top: -6rem; z-index: 200;
  padding: .7rem 1rem; background: var(--deep); color: var(--bg); border-radius: .5rem;
}
.skip-link:focus { top: 1rem; }

.site-nav {
  position: sticky; top: 0; z-index: 100;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  backdrop-filter: blur(14px);
}
.nav-inner {
  max-width: 1440px; margin: auto; padding: .8rem 1.4rem;
  display: flex; align-items: center; gap: 1rem;
}
.brand { display: flex; align-items: center; gap: .75rem; color: var(--deep); text-decoration: none; }
.brand-mark {
  width: 2.35rem; height: 2.35rem; display: grid; place-items: center;
  border-radius: 50%; border: 2px solid var(--gold); color: var(--gold); font-weight: 800;
}
.brand small { display: block; color: var(--muted); font-size: .67rem; letter-spacing: .08em; }
.nav-links { margin-left: auto; display: flex; align-items: center; gap: .2rem; flex-wrap: wrap; }
.nav-links a, .nav-button {
  padding: .48rem .62rem; border: 0; border-radius: .55rem; color: var(--muted);
  background: transparent; text-decoration: none; font-size: .78rem; font-weight: 650; cursor: pointer;
}
.nav-links a:hover, .nav-links a[aria-current="page"], .nav-button:hover {
  color: var(--gold); background: var(--surface-2);
}
.nav-group { position: relative; }
.nav-group > summary { list-style: none; padding: .48rem .62rem; border-radius: .55rem; color: var(--muted); font-size: .78rem; font-weight: 650; cursor: pointer; }
.nav-group > summary::-webkit-details-marker { display:none; }
.nav-group > summary::after { content: "▾"; margin-left: .35rem; font-size: .65rem; }
.nav-group[open] > summary, .nav-group > summary:hover { color: var(--gold); background: var(--surface-2); }
.nav-submenu { position:absolute; top:calc(100% + .3rem); right:0; z-index:120; display:grid; min-width:13rem; padding:.45rem; border:1px solid var(--line); border-radius:.75rem; background:var(--surface); box-shadow:var(--shadow); }
.nav-submenu a { white-space:nowrap; }
.reviewer-panel { position:fixed; right:1rem; bottom:1rem; z-index:60; display:grid; gap:.35rem; max-width:min(26rem,calc(100vw - 2rem)); padding:1rem 1.1rem; border:1px solid var(--gold); border-radius:1rem; background:var(--surface); box-shadow:var(--shadow); }
.reviewer-panel a { color:var(--blue); font-weight:800; }
.reviewer-panel small { color:var(--muted); }
.menu-toggle { display: none; margin-left: auto; }

.page { max-width: 1360px; margin: auto; padding: 2rem 1.4rem 6rem; }
.hero {
  padding: clamp(3rem, 7vw, 7rem) 0 4rem;
  display: grid; grid-template-columns: 1.35fr .65fr; gap: 3rem; align-items: center;
}
.eyebrow {
  display: inline-flex; align-items: center; gap: .5rem; padding: .3rem .7rem;
  border: 1px solid color-mix(in srgb, var(--gold) 35%, var(--line));
  color: var(--gold); background: color-mix(in srgb, var(--gold-light) 45%, transparent);
  border-radius: 999px; font-size: .76rem; font-weight: 750; letter-spacing: .04em;
}
h1, h2, h3, h4 { color: var(--deep); line-height: 1.16; }
h1 { font-size: clamp(2.7rem, 6vw, 5.7rem); letter-spacing: -.055em; margin: 1rem 0; }
h2 { font-size: clamp(1.8rem, 4vw, 3rem); letter-spacing: -.035em; margin: 0 0 1rem; }
h3 { margin-top: 0; }
.gradient-text {
  background: linear-gradient(120deg, var(--deep), var(--gold));
  background-clip: text; -webkit-background-clip: text; color: transparent;
}
.lead { font-size: clamp(1.05rem, 2vw, 1.28rem); color: var(--muted); max-width: 76ch; }
.hero-orbit {
  aspect-ratio: 1; border-radius: 50%; position: relative; display: grid; place-items: center;
  background: radial-gradient(circle, var(--gold-light), transparent 62%);
  border: 1px solid var(--line);
}
.hero-orbit::before, .hero-orbit::after {
  content: ""; position: absolute; border: 1px solid var(--gold); border-radius: 50%;
  width: 70%; height: 70%; transform: rotate(25deg) scaleY(.42);
}
.hero-orbit::after { width: 92%; height: 92%; transform: rotate(-25deg) scaleY(.45); opacity: .45; }
.orbit-core { font-size: 4.5rem; color: var(--gold); font-weight: 300; }
.actions { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 1.6rem; }
.button {
  display: inline-flex; gap: .45rem; align-items: center; padding: .75rem 1rem;
  border: 1px solid var(--line); border-radius: .75rem; text-decoration: none;
  background: var(--surface); color: var(--text); font-weight: 700;
}
.button.primary { color: white; border-color: var(--deep); background: var(--deep); }
.button:hover { transform: translateY(-1px); box-shadow: var(--shadow); }

.section { margin: 5rem 0; }
.section-head { max-width: 900px; margin-bottom: 2rem; }
.section-kicker { color: var(--gold); text-transform: uppercase; letter-spacing: .12em; font-size: .73rem; font-weight: 800; }
.grid { display: grid; gap: 1.2rem; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card {
  padding: 1.4rem; border-radius: var(--radius); border: 1px solid var(--line);
  background: var(--surface); box-shadow: 0 4px 18px rgba(15,23,42,.035);
}
.card:hover { border-color: color-mix(in srgb, var(--gold) 45%, var(--line)); }
.metric-card strong { display: block; font-size: 2rem; color: var(--deep); }
.metric-card span { color: var(--muted); font-size: .83rem; }
.callout {
  padding: 1.2rem 1.35rem; border-left: 4px solid var(--gold);
  border-radius: .25rem var(--radius) var(--radius) .25rem; background: var(--surface);
}
.callout.warning { border-left-color: var(--danger); }
.callout.open { border-left-color: var(--open); }
.callout.tested { border-left-color: var(--blue); }
.formula {
  display: grid; place-items: center; min-height: 5.5rem;
  padding: 1.45rem 1.25rem; margin: 1.15rem 0;
  background: linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--surface-2) 55%,var(--surface)));
  border: 1px solid color-mix(in srgb,var(--gold) 30%,var(--line)); border-left: 4px solid var(--gold);
  border-radius: 1rem; box-shadow: 0 4px 14px rgba(15,23,42,.045);
  font: 500 clamp(1.08rem, 1.8vw, 1.32rem)/1.9 "STIX Two Math", "Cambria Math", Georgia, serif;
  overflow-x: auto; overflow-y: hidden; letter-spacing: .01em; text-align:center;
}
.formula:hover { box-shadow:0 10px 22px rgba(15,23,42,.08); transform:translateY(-1px); }
.formula mjx-container,.rendered-math mjx-container { max-width:100%; overflow-x:auto; overflow-y:hidden; padding:.3rem; }
.formula mjx-container[display="true"], .math-box mjx-container[display="true"] { display:block; width:100%; overflow-x:auto; overflow-y:hidden; text-align:center; }
.card > p { max-width:72ch; }
.equation-notes mjx-container:not([display="true"]), .notation-definition mjx-container:not([display="true"]) { white-space:nowrap; }
.equation-notes strong { white-space:nowrap; }
.formula.big { font-size: clamp(1.15rem, 2.3vw, 1.65rem); text-align: center; padding-block: 1.35rem; }
.math-box {
  position: relative; display: grid; place-items: center; min-height: 6.5rem;
  margin: 1.15rem 0; padding: 1.5rem 1.25rem 1.15rem;
  border: 1px solid color-mix(in srgb, var(--gold) 34%, var(--line));
  border-radius: 1rem; overflow-x: auto;
  background: linear-gradient(135deg, var(--surface), var(--surface-2));
  box-shadow: inset 4px 0 0 var(--gold);
  font: 500 clamp(1.18rem, 2.2vw, 1.65rem)/1.7 "STIX Two Math", "Cambria Math", Georgia, serif;
}
.math-box mjx-container { max-width: 100%; overflow-x: auto; overflow-y: hidden; padding: .35rem; }
.math-box > mjx-container, .formula > mjx-container { display:block; min-width:0; max-width:100%; }
.math-box, .formula, .card, .equation-notes, .symbol-list { min-width:0; overflow-wrap:anywhere; }
.equation-notes strong, .equation-notes span { overflow-wrap:anywhere; word-break:normal; }
.math-box[data-label]::before {
  content: attr(data-label); position: absolute; left: 1rem; top: .55rem;
  color: var(--muted); font: 800 .64rem/1 Inter, sans-serif;
  letter-spacing: .09em; text-transform: uppercase;
}
.equation-notes {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem 1rem;
  margin: .8rem 0 1.4rem; padding: 1rem; border-radius: .8rem; background: var(--surface-2);
}
.equation-notes div { display: grid; grid-template-columns: minmax(3.8rem,auto) 1fr; gap: .55rem; }
.equation-notes strong { color: var(--deep); font-family: "STIX Two Math", Georgia, serif; }
.equation-notes span { color: var(--muted); font-size: .88rem; }
.derivation-steps { counter-reset: derivation; display: grid; gap: .8rem; margin: 1rem 0; }
.derivation-step {
  counter-increment: derivation; display: grid; grid-template-columns: 2.4rem 1fr;
  gap: .85rem; align-items: start; padding: 1rem; border: 1px solid var(--line);
  border-radius: .9rem; background: var(--surface);
}
.derivation-step::before {
  content: counter(derivation); display: grid; place-items: center; width: 2.25rem;
  aspect-ratio: 1; border-radius: 50%; color: white; background: var(--gold); font-weight: 800;
}
.derivation-step > div > :first-child { margin-top: 0; }
.status-matrix td:first-child { font-weight: 800; }
.status-matrix .current { color: var(--ok); }
.status-matrix .superseded { color: var(--danger); }
.equation { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .35em; white-space: normal; max-width:100%; }
.math-var { font-family: Georgia, "Times New Roman", serif; font-style: italic; }
.frac { display: inline-grid; grid-template-rows: auto auto; vertical-align: middle; text-align: center; line-height: 1.25; }
.frac > span:first-child { border-bottom: 1.5px solid currentColor; padding: 0 .22em .08em; }
.frac > span:last-child { padding: .08em .22em 0; }
.where { margin: -.45rem 0 1rem; color: var(--muted); font-size: .9rem; }
.symbol-list { display: grid; grid-template-columns: auto 1fr; gap: .45rem 1rem; margin: 1rem 0 0; }
.symbol-list dt { font-weight: 800; color: var(--deep); }
.symbol-list dd { margin: 0; }
.badge {
  display: inline-flex; align-items: center; padding: .18rem .5rem; border-radius: 999px;
  font-size: .68rem; letter-spacing: .03em; font-weight: 800; background: var(--surface-2);
  border: 1px solid var(--line); color: var(--muted);
}
.badge.canonical { color: var(--ok); border-color: color-mix(in srgb, var(--ok) 40%, var(--line)); }
.badge.open { color: var(--open); border-color: color-mix(in srgb, var(--open) 40%, var(--line)); }
.badge.corrected { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 40%, var(--line)); }
.badge.tested { color: var(--blue); border-color: color-mix(in srgb, var(--blue) 40%, var(--line)); }

.dashboard {
  display: grid; grid-template-columns: minmax(240px, 320px) 1fr;
  border: 1px solid var(--line); border-radius: 1.5rem; overflow: hidden;
  background: var(--surface); box-shadow: var(--shadow);
}
.controls { padding: 1.4rem; background: var(--surface-2); border-right: 1px solid var(--line); }
.control { margin: 0 0 1.3rem; }
.control label { display: flex; justify-content: space-between; gap: 1rem; font-weight: 700; font-size: .85rem; }
.control input[type="range"] { width: 100%; accent-color: var(--gold); }
.control input[type="number"], .control select, .search {
  width: 100%; padding: .65rem .75rem; color: var(--text); background: var(--surface);
  border: 1px solid var(--line); border-radius: .65rem;
}
.chart-wrap { min-height: 470px; padding: 1.3rem; position: relative; }
.chart-wrap canvas { display: block; width: 100%; height: 470px; touch-action: none; }
.result {
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem;
  padding-top: 1rem; border-top: 1px solid var(--line);
}
.result div { background: var(--surface); padding: .6rem; border-radius: .55rem; }
.result small { display: block; color: var(--muted); }
.result strong { font-family: ui-monospace, monospace; }
.toggle-row { display: flex; flex-wrap: wrap; gap: .4rem; }

.table-wrap { width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: 1rem; }
table { width: 100%; border-collapse: collapse; min-width: 720px; background: var(--surface); }
th, td { text-align: left; padding: .8rem .9rem; border-bottom: 1px solid var(--line); vertical-align: top; }
th { position: sticky; top: 0; background: var(--surface-2); color: var(--deep); font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; }
tr:hover td { background: color-mix(in srgb, var(--surface-2) 55%, transparent); }
code, pre { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
code { font-size: .88em; }
pre {
  margin: 1rem 0; padding: 1rem; overflow: auto; border-radius: .8rem;
  color: #e2e8f0; background: #0f172a; line-height: 1.5;
}

.toc {
  display: flex; gap: .45rem; overflow-x: auto; padding: .65rem 0 1rem;
  scrollbar-width: thin;
}
.toc a {
  white-space: nowrap; border: 1px solid var(--line); border-radius: 999px;
  padding: .35rem .65rem; color: var(--muted); text-decoration: none; background: var(--surface);
}
.toc a:hover { border-color: var(--gold); color: var(--gold); }
details {
  border: 1px solid var(--line); border-radius: .85rem; padding: .85rem 1rem;
  background: var(--surface); margin: .65rem 0;
}
summary { cursor: pointer; font-weight: 750; color: var(--deep); }
details[open] summary { margin-bottom: .7rem; }

.four-levels { counter-reset: level; }
.level { position: relative; padding-left: 3.2rem; }
.level::before {
  counter-increment: level; content: counter(level);
  position: absolute; left: 0; top: 1.1rem; width: 2rem; height: 2rem;
  display: grid; place-items: center; border-radius: 50%; color: white; background: var(--gold); font-weight: 800;
}
.graph {
  display: grid; grid-template-columns: repeat(4, minmax(150px,1fr)); gap: 1rem;
  align-items: center;
}
.graph-node { padding: 1rem; text-align: center; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); }
.graph-node:not(:last-child)::after { content: "→"; float: right; margin-right: -1.6rem; color: var(--gold); }
.timeline { border-left: 2px solid var(--gold); margin-left: .7rem; padding-left: 1.5rem; }
.timeline-item { position: relative; margin-bottom: 1.5rem; }
.timeline-item::before { content:""; position:absolute; left:-1.95rem; top:.45rem; width:.8rem; height:.8rem; border-radius:50%; background:var(--gold); }
.catalog-list { display: grid; gap: .75rem; }
.catalog-item { padding: 1rem; border: 1px solid var(--line); border-radius: .9rem; background: var(--surface); }
.catalog-item h3 { margin-bottom: .3rem; }
.catalog-meta { display: flex; gap: .4rem; flex-wrap: wrap; margin: .55rem 0; }
.visual-module { scroll-margin-top: 5.5rem; }
.visual-grid {
  display: grid; grid-template-columns: minmax(240px, 330px) minmax(0, 1fr);
  border: 1px solid var(--line); border-radius: 1.25rem; overflow: hidden;
  background: var(--surface); box-shadow: var(--shadow);
}
.visual-controls { padding: 1.25rem; background: var(--surface-2); border-right: 1px solid var(--line); }
.lab-canvas { display: block; width: 100%; height: 430px; background: var(--surface); touch-action: none; }
.metric-master-controls { border:1px solid var(--line); border-radius:1rem; box-shadow:var(--shadow); }
.metric-wide-canvas { margin-top:1rem; border:1px solid var(--line); border-radius:1rem; box-shadow:var(--shadow); }
.metric-wide-canvas:focus, #metric-geometry:focus { outline:3px solid var(--gold); outline-offset:3px; }
.metric-scope-tabs .button[aria-pressed="true"] { background:var(--deep); color:var(--surface); border-color:var(--deep); }
.metric-local-control { display:grid; grid-template-columns:1fr auto; gap:.35rem 1rem; align-items:center; margin:.65rem 1rem 1rem; padding:.75rem 1rem; border:1px solid var(--line); border-radius:.8rem; background:var(--surface-2); font-weight:700; }
.metric-local-control input { grid-column:1/-1; width:100%; }
.metric-local-control output { font-family:ui-monospace,monospace; color:var(--gold); }
.metric-preset-card { cursor:pointer; }
.metric-preset-card:hover { border-color:var(--gold); transform:translateY(-2px); }
.plot-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.plot-gallery figure { margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); box-shadow: var(--shadow); }
.plot-gallery a { display: block; aspect-ratio: 16/9; overflow: hidden; background: var(--surface-2); }
.plot-gallery img { width: 100%; height: 100%; object-fit: contain; transition: transform .25s ease; }
.plot-gallery a:hover img { transform: scale(1.025); }
.plot-gallery figcaption { display: grid; gap: .15rem; padding: .8rem 1rem; }
.plot-gallery figcaption span { color: var(--muted); font-size: .82rem; }
.image-lightbox { position: fixed; inset: 0; z-index: 500; display:grid; place-items:center; padding:clamp(1rem,4vw,3rem); background:rgba(2,6,23,.9); }
.image-lightbox[hidden] { display:none; }
.image-lightbox img { max-width: min(96vw, 1500px); max-height: 88vh; width:auto; height:auto; object-fit:contain; border-radius:.6rem; box-shadow:0 20px 70px rgba(0,0,0,.45); }
.image-lightbox button { position:absolute; top:1rem; right:1rem; z-index:1; border:1px solid rgba(255,255,255,.55); border-radius:.6rem; padding:.65rem .9rem; background:#0f172a; color:#fff; font-weight:750; cursor:pointer; }
.image-lightbox figcaption { position:absolute; left:1rem; bottom:1rem; right:1rem; color:#fff; text-align:center; font-size:.9rem; }
.atlas-map { width: 100%; height: 600px; display: block; border: 1px solid var(--line); border-radius: 1.25rem; background: var(--surface); box-shadow: var(--shadow); }
.atlas-list { display: grid; gap: 1rem; }
.atlas-card { padding: 1.2rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); }
.atlas-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.atlas-card-head h3 { margin-top: .35rem; }
.atlas-stats { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .5rem; margin: 1rem 0; }
.atlas-stats span { padding: .55rem; border-radius: .55rem; background: var(--surface-2); color: var(--muted); font-size: .75rem; }
.atlas-stats strong { display: block; color: var(--deep); font-size: 1rem; }
.atlas-card details ul { max-height: 16rem; overflow: auto; }
.pagination { display:flex; align-items:center; justify-content:center; gap:.7rem; margin-top:1rem; }
.pagination button { padding:.45rem .7rem; border:1px solid var(--line); background:var(--surface); color:var(--text); border-radius:.5rem; cursor:pointer; }
.progress-track { width:9rem; height:.55rem; overflow:hidden; border-radius:999px; background:var(--surface-2); }
.progress-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--gold),var(--ok)); }
.evaluation-canvas { width:100%; height:420px; display:block; border:1px solid var(--line); border-radius:1rem; background:var(--surface); }
.evidence-stack { display:grid; gap:.8rem; }
.evidence-stack > div { padding:.8rem; border:1px solid var(--line); border-radius:.8rem; background:var(--surface-2); }
.evidence-stack p { margin:.45rem 0 0; color:var(--muted); }
.evidence-ladder { list-style:none; counter-reset:evidence; display:grid; gap:.55rem; padding:0; margin:1rem 0 0; }
.evidence-ladder li {
  counter-increment:evidence; display:grid; grid-template-columns:2.2rem minmax(0,1fr);
  gap:.2rem .75rem; padding:.75rem; border:1px solid var(--line); border-radius:.8rem; background:var(--surface-2);
}
.evidence-ladder li::before {
  content:counter(evidence); grid-row:1 / span 2; display:grid; place-items:center;
  width:2rem; height:2rem; border-radius:50%; background:var(--deep); color:white; font-weight:800;
}
.evidence-ladder strong,.evidence-ladder span { grid-column:2; }
.evidence-ladder span { color:var(--muted); font-size:.86rem; }
.scope-strip {
  display:flex; flex-wrap:wrap; gap:.45rem .75rem; align-items:center; margin:1rem 0 2rem;
  padding:.8rem 1rem; border:1px solid var(--line); border-radius:.8rem; background:var(--surface-2);
  color:var(--muted); font-size:.82rem;
}
.scope-strip strong { color:var(--text); }
.claim-list { display:grid; gap:1rem; margin-top:1.2rem; }
.claim-card { border:1px solid var(--line); border-radius:1rem; background:var(--surface); box-shadow:var(--shadow); overflow:hidden; }
.claim-card > header { display:flex; justify-content:space-between; gap:1rem; padding:1rem 1.2rem; background:var(--surface-2); }
.claim-card header div { min-width:0; }
.claim-card header h3 { margin:.35rem 0 .15rem; }
.claim-card header small { margin-left:.5rem; color:var(--muted); }
.claim-card header code,.hash { overflow-wrap:anywhere; }
.claim-statement { padding:1rem 1.2rem; margin:0; font-size:1.04rem; }
.claim-formula-panel { margin:0 1.2rem 1.2rem; padding:1rem; border:1px solid color-mix(in srgb,var(--gold) 38%,var(--line)); border-radius:1rem; background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 96%,var(--gold)),var(--surface)); box-shadow:inset 0 1px 0 rgba(255,255,255,.45); }
.claim-formula-heading { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.4rem 1rem; margin-bottom:.65rem; color:var(--muted); font-size:.82rem; letter-spacing:.02em; }
.claim-formula-heading strong { color:var(--text); font-size:.92rem; }
.claim-formula-panel .math-box { margin:.55rem 0; overflow-x:auto; text-align:center; border-color:color-mix(in srgb,var(--gold) 26%,var(--line)); background:color-mix(in srgb,var(--surface) 92%,var(--bg)); }
.claim-formula-panel .math-box svg { max-width:100%; height:auto; }
.claim-formula-panel > p { margin:.35rem 0 .8rem; text-align:center; color:var(--muted); }
.claim-card details { border-top:1px solid var(--line); padding:.85rem 1.2rem 1.2rem; }
.claim-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.claim-detail-grid section { padding:1rem; border:1px solid var(--line); border-radius:.8rem; background:var(--surface-2); min-width:0; }
.claim-detail-grid h4 { margin:.15rem 0 .55rem; }
.claim-detail-grid p,.claim-detail-grid li { font-size:.84rem; }
.claim-graph { min-height:560px; }

.footer { border-top: 1px solid var(--line); background: var(--surface); }
.footer-inner {
  max-width: 1360px; margin: auto; padding: 2.5rem 1.4rem;
  display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 2rem;
}
.footer p, .footer a { color: var(--muted); font-size: .85rem; }
.filter-bar { display:grid; grid-template-columns:2fr 1fr 1fr; gap:.75rem; margin-bottom:1.2rem; }
.filter-bar select { width:100%; padding:.65rem .75rem; color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:.65rem; }
.paper-list { display:grid; gap:.85rem; }
.paper-card { display:grid; grid-template-columns:4rem 1fr; gap:1rem; padding:1.25rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface); }
.paper-number { display:grid; place-items:center; align-self:start; aspect-ratio:1; border-radius:50%; color:var(--gold); border:1px solid var(--gold); font-weight:800; }
.paper-card h3 { margin:.65rem 0 .25rem; }
.paper-card p { margin:.3rem 0; }
.paper-meta,.paper-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; color:var(--muted); font-size:.8rem; }
.paper-actions { margin-top:.8rem; padding-top:.75rem; border-top:1px solid var(--line); }
.scope-note { color:var(--muted); }
.research-map { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.75rem; margin:1.25rem 0; }
.research-map div { position:relative; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface); }
.research-map div:not(:last-child)::after { content:"→"; position:absolute; right:-.65rem; top:50%; color:var(--gold); z-index:2; }
.research-map strong,.research-map span { display:block; }
.research-map span { margin-top:.35rem; color:var(--muted); font-size:.8rem; }
.formula-catalog { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.formula-entry { padding:1.25rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface); }
.formula-entry-head { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
.formula-entry-head h3 { margin:.5rem 0 0; }
.rendered-math { min-height:5.5rem; display:grid; place-items:center; font-size:clamp(1.1rem,2vw,1.45rem); }
.rendered-math mjx-container { max-width:100%; overflow-x:auto; overflow-y:hidden; padding:.25rem; }
.formula-meta { display:grid; grid-template-columns:auto 1fr; gap:.35rem .8rem; margin:0; font-size:.87rem; }
.formula-meta dt { font-weight:800; color:var(--deep); }
.formula-meta dd { margin:0; color:var(--muted); }
.starmap-layout { display:grid; grid-template-columns:minmax(270px,340px) 1fr; border:1px solid var(--line); border-radius:1.25rem; overflow:hidden; background:var(--surface); box-shadow:var(--shadow); }
.starmap-stage { position:relative; min-width:0; }
.starmap-canvas { height:clamp(520px,62vw,760px); cursor:grab; touch-action:none; }
.starmap-canvas:active { cursor:grabbing; }
.starmap-detail { position:absolute; left:1rem; right:1rem; bottom:1rem; display:flex; flex-wrap:wrap; gap:.35rem .8rem; padding:.75rem 1rem; border:1px solid var(--line); border-radius:.8rem; color:var(--text); background:color-mix(in srgb,var(--surface) 92%,transparent); backdrop-filter:blur(10px); font-size:.78rem; }
.starmap-detail strong { width:100%; }
.starmap-detail span,.starmap-detail small { color:var(--muted); }
.dynamic-fragment-targets { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.notation-definition { display:grid; gap:.55rem; margin:1rem 0; }
.notation-definition div { display:grid; grid-template-columns:4.5rem 1fr; align-items:center; gap:.8rem; padding:.55rem .7rem; border:1px solid var(--line); border-radius:.7rem; background:var(--surface-2); }
.notation-definition dt { font-size:1.15rem; font-weight:800; color:var(--deep); }
.notation-definition dd { margin:0; color:var(--muted); }
@media (max-width: 680px) {
  .notation-definition div { grid-template-columns: minmax(3.2rem, 5.2rem) 1fr; align-items:start; }
  .equation-notes div { grid-template-columns: minmax(3.2rem, 5.2rem) 1fr; align-items:start; }
  .math-box, .formula { padding-inline:.7rem; font-size:1.05rem; }
}
.coordinate-card var { font-family:Georgia,serif; font-weight:700; color:var(--deep); }
.galactic-modebar,.galactic-viewbar { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.galactic-modebar .active { color:#fff; background:var(--deep); border-color:var(--deep); }
.galactic-stage { position:relative; min-width:0; }
.galactic-webgl { min-height:620px; cursor:grab; touch-action:none; background:linear-gradient(180deg,#f8fafc,#eef2f7); }
.galactic-webgl:active { cursor:grabbing; }
#galactic-year-canvas { display:none !important; }
.galactic-overlay { position:absolute; top:1rem; left:1rem; display:grid; gap:.25rem; max-width:min(26rem,80%); padding:.8rem 1rem; border:1px solid var(--line); border-radius:.8rem; background:color-mix(in srgb,var(--surface) 90%,transparent); backdrop-filter:blur(8px); pointer-events:none; }
.galactic-overlay strong { letter-spacing:.12em; color:var(--gold); }
.galactic-overlay span,.galactic-overlay small { color:var(--muted); }
.galactic-small-multiples { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1rem 0; }
.galactic-small-multiples figure { margin:0; padding:.7rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface); }
.galactic-small-multiples canvas { display:block; width:100%; height:190px; }
.galactic-small-multiples figcaption { color:var(--muted); font-size:.78rem; text-align:center; }
.fallback-panel { margin:1rem 0; }
.regime-lanes { display:grid; gap:1.2rem; margin:1.2rem 0; }
.regime-lane { position:relative; display:grid; min-height:4.2rem; border:1px solid var(--line); border-radius:.8rem; overflow:hidden; }
.regime-lane.analytic { grid-template-columns:2.8fr .4fr 4.8fr; }
.regime-lane.physical { grid-template-columns:.8fr .4fr .6fr .4fr 2fr 2.8fr; }
.regime-lane span { display:grid; place-items:center; padding:.5rem; border-right:1px solid var(--line); color:var(--muted); font-size:.75rem; text-align:center; }
.regime-lane i { position:absolute; top:0; bottom:0; width:3px; background:#b42318; transform:translateX(-50%); box-shadow:0 0 0 3px color-mix(in srgb,#b42318 20%,transparent); }
.maturity-pipeline { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.65rem; margin:1rem 0; }
.maturity-stage { display:grid; gap:.35rem; min-height:5.5rem; padding:.7rem; border:1px solid var(--line); border-radius:.7rem; background:var(--surface); }
.maturity-stage span { color:var(--muted); font-size:.78rem; }
.maturity-stage.complete { border-left:5px solid #16836b; }
.maturity-stage.partial,.maturity-stage.proxy { border-left:5px solid #b8860b; }
.maturity-stage.open,.maturity-stage.hypothesis { border-left:5px solid #b42318; }

/* Switch to the compact navigation before the 23-link research menu becomes
   crowded on medium-width laptops and tablets. */
@media (max-width: 1180px) {
  .nav-links { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 1rem; background: var(--surface); border-bottom: 1px solid var(--line); }
  .nav-links.open { display: grid; grid-template-columns: repeat(2,1fr); }
  .nav-group { min-width:0; }
  .nav-group > summary { padding:.7rem .62rem; }
  .nav-group[open] .nav-submenu { position:static; min-width:0; margin:.2rem 0 .5rem; box-shadow:none; border-radius:.5rem; }
  .menu-toggle { display: inline-flex; }
  .hero { grid-template-columns: 1fr; }
  .hero-orbit { max-width: 360px; margin: auto; width: 100%; }
  .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .dashboard { grid-template-columns: 1fr; }
  .visual-grid { grid-template-columns: 1fr; }
  .visual-controls { border-right: 0; border-bottom: 1px solid var(--line); }
  .controls { border-right: 0; border-bottom: 1px solid var(--line); }
  .graph { grid-template-columns: repeat(2,1fr); }
  .research-map { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .formula-catalog { grid-template-columns:1fr; }
  .claim-detail-grid { grid-template-columns:1fr; }
  .starmap-layout { grid-template-columns:1fr; }
  .galactic-small-multiples { grid-template-columns:1fr; }
  .maturity-pipeline { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .research-map div::after { display:none; }
  .graph-node::after { display:none; }
}
@media (max-width: 640px) {
  .page { padding-inline: 1rem; }
  h1 { font-size: 2.65rem; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .plot-gallery { grid-template-columns: 1fr; }
  .atlas-map { height: 440px; }
  .atlas-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-inner { grid-template-columns: 1fr; }
  .result { grid-template-columns: 1fr; }
  .chart-wrap { min-height: 360px; padding: .5rem; }
  .chart-wrap canvas { height: 360px; }
  .lab-canvas { height: 360px; }
  .nav-links.open { grid-template-columns: 1fr; max-height: calc(100vh - 4rem); overflow:auto; }
  .nav-links > a, .nav-links > .nav-group, .nav-links > .nav-button { width:100%; box-sizing:border-box; }
  .nav-group { border:1px solid var(--line); border-radius:.65rem; background:var(--surface-2); }
  .nav-group > summary { display:flex; align-items:center; justify-content:space-between; padding:.75rem .8rem; color:var(--text); }
  .nav-group[open] > summary { color:var(--gold); border-bottom:1px solid var(--line); }
  .nav-group[open] .nav-submenu { margin:0; padding:.25rem .45rem .45rem; }
  .nav-group .nav-submenu a { display:block; padding:.55rem .7rem; border-radius:.45rem; }
  .filter-bar { grid-template-columns:1fr; }
  .paper-card { grid-template-columns:1fr; }
  .paper-number { width:3rem; }
  .research-map { grid-template-columns:1fr; }
  .equation-notes { grid-template-columns:1fr; }
  .math-box { min-height:5rem; padding-inline:.65rem; font-size:1.08rem; }
  .equation-notes { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media print {
  .site-nav, .actions, .controls, .footer { display: none !important; }
  .page { max-width: none; padding: 0; }
  .card, .dashboard { box-shadow: none; break-inside: avoid; }
}
