﻿:root {
  --ink: #111111;
  --ink-soft: #4f5560;
  --line: #dfe3e8;
  --panel: #f5f6f8;
  --blue: #1f4aa8;
  --blue-soft: #eaf0ff;
  --paper: #ffffff;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: #ffffff;
  color: var(--ink);
  font-family: "Noto Sans", Arial, sans-serif;
  line-height: 1.68;
}
img { display: block; max-width: 100%; }
main { padding-bottom: 56px; }
.container {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
}
.container.narrow,
.narrow-header,
.narrow-figure {
  width: min(980px, calc(100% - 32px));
  margin-left: auto;
  margin-right: auto;
}
.wide-scroll-shell {
  width: min(1360px, calc(100% - 24px));
  margin: 0 auto;
}
.hero {
  padding: 48px 0 18px;
  text-align: center;
}
.eyebrow {
  margin: 0 0 10px;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.eyebrow-link {
  color: var(--blue);
  text-decoration: none;
}
.eyebrow-link:hover { text-decoration: underline; }
.title {
  margin: 0;
  font-family: "Google Sans", "Noto Sans", Arial, sans-serif;
  font-size: clamp(1.7rem, 2.7vw, 2.7rem);
  line-height: 1.14;
  font-weight: 700;
}
.wide-text-block {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.author-block { margin-top: 22px; }
.authors {
  margin: 0;
  color: var(--blue);
  font-size: 1.05rem;
}
.authors-line + .authors-line { margin-top: 4px; }
.author-sup {
  font-size: 0.72em;
  vertical-align: super;
  font-weight: 700;
}
.institution-lines {
  margin-top: 18px;
  color: var(--ink-soft);
  font-size: 0.96rem;
  line-height: 1.7;
}
.institution-lines p { margin: 0; }
.institution-lines p + p { margin-top: 4px; }
.button-row {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
.paper-btn,
.copy-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid #d6d6d6;
  background: #f6f6f6;
  color: var(--ink);
  text-decoration: none;
  font-weight: 600;
  cursor: pointer;
}
.paper-btn.primary {
  background: var(--blue);
  border-color: var(--blue);
  color: #ffffff;
}
.hero-figure-block { padding: 10px 0 8px; }
.main-figure,
.content-figure { margin: 0; }
.main-figure img,
.content-figure img,
.stage-panel img {
  width: 100%;
  border-radius: 12px;
  border: 1px solid #e6e6e6;
}
figcaption {
  margin-top: 10px;
  text-align: center;
  color: #444444;
  font-size: 0.95rem;
}
.section { padding: 34px 0; }
.section.gray { background: var(--panel); }
.section-title {
  margin: 0 0 16px;
  text-align: center;
  font-family: "Google Sans", "Noto Sans", Arial, sans-serif;
  font-size: 1.84rem;
  font-weight: 700;
}
.section-title.left { text-align: left; }
.section p,
.section li { font-size: 1rem; }
.section-intro {
  max-width: 800px;
  margin: 0 auto 18px;
  color: var(--ink-soft);
  text-align: center;
}
.section-intro.center { margin-bottom: 20px; }
.abstract-card,
.survey-lens,
.level-item,
.takeaway-item,
.context-note,
.stage-copy,
.panel-card,
.subpoint-card {
  background: var(--paper);
}
.abstract-card {
  padding: 28px 30px;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.abstract-card.stacked > * + * { margin-top: 18px; }
.abstract-lead {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 1.1rem;
  line-height: 1.82;
  color: #22262d;
}
.full-abstract { max-width: none; }
.abstract-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.panel-card {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px 18px 16px;
  background: linear-gradient(180deg, #ffffff, #fafbfd);
}
.panel-card.emphasis {
  background: linear-gradient(180deg, #f9fbff, #eef4ff);
}
.panel-card h3,
.survey-lens h3,
.level-item h3,
.context-note h3,
.stage-copy h3,
.subpoint-card h3 {
  margin: 0 0 8px;
  font-family: "Google Sans", "Noto Sans", Arial, sans-serif;
  font-size: 1rem;
}
.panel-card p,
.context-note p,
.stage-copy p,
.subpoint-card p { margin: 0; color: var(--ink-soft); }
.survey-lens {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(180deg, #fbfcff, #f4f7ff);
  padding: 18px 20px;
}
.survey-lens-inline ul {
  margin: 0;
  padding-left: 18px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 18px;
}
.framework-figure,
.autonomy-figure,
.history-figure,
.centered-figure { margin-bottom: 18px; }
.level-band {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}
.level-item {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px;
}
.level-item span {
  display: inline-block;
  margin-bottom: 12px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--blue-soft);
  color: var(--blue);
  font-weight: 700;
  font-size: 0.88rem;
}
.context-note {
  margin-top: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px 20px;
}
.figure-center-wrap {
  display: flex;
  justify-content: center;
}
.stage-scroll,
.subpoint-scroll {
  display: flex;
  gap: 28px;
  overflow-x: auto;
  padding: 12px 10px 18px;
  margin-top: 24px;
  scroll-snap-type: x proximity;
}
.stage-scroll::-webkit-scrollbar,
.subpoint-scroll::-webkit-scrollbar { height: 10px; }
.stage-scroll::-webkit-scrollbar-thumb,
.subpoint-scroll::-webkit-scrollbar-thumb {
  background: #cad3df;
  border-radius: 999px;
}
.scroll-card,
.subpoint-card {
  scroll-snap-align: start;
}
.scroll-card {
  flex: 0 0 min(540px, 90vw);
}
.stage-panel {
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  background: var(--paper);
}
.stage-panel img {
  min-height: 320px;
  object-fit: cover;
}
.stage-copy.compact-copy {
  padding: 16px 18px;
}
.subpoint-card {
  flex: 0 0 min(420px, 86vw);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 24px 24px 22px;
  background: linear-gradient(180deg, #ffffff, #fbfcff);
}
.subpoint-card.highlight {
  background: linear-gradient(180deg, #f9fbff, #eef4ff);
}
.subpoint-card h3 {
  font-size: 1.08rem;
  margin-bottom: 10px;
}
.subpoint-card p {
  line-height: 1.76;
}
.subpoint-card ul {
  margin: 14px 0 0;
  padding-left: 20px;
  color: var(--ink-soft);
}
.subpoint-card li + li {
  margin-top: 10px;
}
.resource-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}
.resource-list a {
  color: var(--blue);
  font-weight: 600;
  text-decoration: none;
}
.resource-list a:hover { text-decoration: underline; }
.bibtex-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
pre {
  margin: 0;
  padding: 18px;
  overflow-x: auto;
  border-radius: 12px;
  background: #ffffff;
  border: 1px solid #dddddd;
}
code {
  font-family: Consolas, "Courier New", monospace;
  font-size: 0.92rem;
}
.copy-btn.copied {
  background: #1f7a46;
  border-color: #1f7a46;
  color: #ffffff;
}
@media (max-width: 900px) {
  .abstract-panels,
  .level-band,
  .survey-lens-inline ul {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .hero { padding-top: 32px; }
  .bibtex-head {
    flex-direction: column;
    align-items: flex-start;
  }
  .authors { font-size: 0.98rem; }
  .institution-lines { font-size: 0.92rem; }
  .scroll-card { flex-basis: 92vw; }
  .subpoint-card { flex-basis: 88vw; }
  .stage-panel img { min-height: 250px; }
}


.eval-card,
.domain-card {
  box-shadow: 0 10px 28px rgba(18, 28, 45, 0.05);
}
.eval-card.eval-blue { background: linear-gradient(180deg, #f7faff, #edf3ff); border-color: #d7e4ff; }
.eval-card.eval-slate { background: linear-gradient(180deg, #fbfcfe, #f1f4f8); border-color: #dbe3ee; }
.eval-card.eval-sand { background: linear-gradient(180deg, #fffaf2, #f9f2e8); border-color: #eddcc0; }
.eval-card.eval-green { background: linear-gradient(180deg, #f6fcf8, #eaf5ee); border-color: #d1e7d8; }
.eval-card.eval-plum { background: linear-gradient(180deg, #fbf8ff, #f1ebfb); border-color: #dfd3f4; }
.domain-card.domain-blue { background: linear-gradient(180deg, #f6faff, #eaf2ff); border-color: #d5e2ff; }
.domain-card.domain-slate { background: linear-gradient(180deg, #f9fafc, #eef2f6); border-color: #d7dfe8; }
.domain-card.domain-amber { background: linear-gradient(180deg, #fffaf3, #f7efdf); border-color: #ecd8b5; }
.domain-card.domain-green { background: linear-gradient(180deg, #f7fcf8, #ebf5ed); border-color: #d3e7d6; }
.domain-card.domain-teal { background: linear-gradient(180deg, #f4fcfb, #e7f4f2); border-color: #cde5e1; }
.domain-card.domain-red { background: linear-gradient(180deg, #fff7f7, #f8ecec); border-color: #ecd1d1; }
.domain-card.domain-violet { background: linear-gradient(180deg, #faf8ff, #f1ecfb); border-color: #ddd2f4; }
.domain-card.domain-earth { background: linear-gradient(180deg, #faf9f4, #f1eee2); border-color: #e0d9c4; }
