:root {
  --ink: #1f2d33;
  --ink-soft: #405158;
  --muted: #68767a;
  --paper: #f4f0e7;
  --paper-deep: #e8e0d2;
  --white: #fffefa;
  --green: #275f4b;
  --green-soft: #dce8e1;
  --red: #914236;
  --red-soft: #f2dfda;
  --gold: #987642;
  --blue-soft: #e7edef;
  --line: rgba(31, 45, 51, .17);
  --shadow: 0 18px 50px rgba(31, 45, 51, .10);
  --serif: "Times New Roman", "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans SC", "Source Han Sans SC", serif;
  --sans: "Times New Roman", "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans SC", "Source Han Sans SC", system-ui, sans-serif;
  --display: "STKaiti", "Kaiti SC", "KaiTi", "楷体", "Noto Serif SC", "Source Han Serif SC", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.78; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
body.dialog-open { overflow: hidden; }
button, input, select { color: inherit; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
svg { width: 1em; height: 1em; display: block; stroke-width: 1.8; }
.shell { width: min(1240px, calc(100% - 56px)); margin-inline: auto; }
.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; z-index: 500; top: 10px; left: 10px; padding: 10px 14px; background: var(--white); border: 1px solid var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.eyebrow { margin: 0 0 14px; color: var(--red); font-size: 11px; font-weight: 800; letter-spacing: .16em; }
h1, h2, h3 { font-family: var(--serif); font-weight: 700; letter-spacing: -.025em; }
.eyebrow, .brand-copy small, .page-number, code, .record-id, .cat-letter, .grade, .graph-hint, .archive-path, .activity-type, .status-tag, time, [class*="date"], [class*="year"] { font-family: "Times New Roman", serif; font-variant-numeric: lining-nums tabular-nums; }

.site-header { position: sticky; z-index: 100; top: 0; background: rgba(244, 240, 231, .97); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.header-primary { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 13px; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; color: var(--red); border: 1px solid var(--red); font-family: var(--serif); font-size: 13px; }
.brand-copy strong, .brand-copy small { display: block; }
.brand-copy strong { font-family: var(--serif); font-size: 18px; font-weight: 700; line-height: 1.25; letter-spacing: -.02em; }
.brand-copy small { margin-top: 4px; color: var(--muted); font-size: 9px; letter-spacing: .08em; }
.header-tools { display: flex; align-items: center; gap: 14px; }
.header-search, .menu-button { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 14px; color: var(--white); background: var(--green); border: 1px solid var(--green); font-size: 12px; }
.header-search svg { font-size: 16px; }
.menu-button { display: none; width: 42px; padding: 0; color: var(--ink); background: transparent; border-color: var(--line); }
.primary-nav { min-height: 51px; display: grid; grid-template-columns: repeat(8, 1fr); border-top: 1px solid var(--line); }
.primary-nav a { min-height: 51px; padding: 8px 7px; display: flex; align-items: center; justify-content: center; gap: 6px; color: var(--ink-soft); border-right: 1px solid var(--line); font-size: 13px; font-weight: 500; transition: color .18s, background .18s; }
.primary-nav a:first-child { border-left: 1px solid var(--line); }
.primary-nav a:hover, .primary-nav a.active { color: var(--white); background: var(--green); }

.app-main { min-height: calc(100vh - 180px); }
.page-view { display: none; padding-bottom: 88px; }
.page-view.active { display: block; }
.page-view[data-page="home"] { padding-bottom: 36px; }
.page-masthead { min-height: 250px; padding: 62px 0 46px; display: flex; align-items: flex-end; justify-content: space-between; gap: 50px; border-bottom: 1px solid var(--line); }
.page-masthead > div { max-width: 790px; }
.page-masthead h1 { margin: 0; font-size: clamp(44px, 5vw, 68px); line-height: 1.15; }
.lead { margin: 22px 0 0; color: var(--ink-soft); font-family: var(--serif); font-size: 18px; line-height: 1.9; }
.page-number { color: rgba(145,66,54,.2); font-family: var(--serif); font-size: 88px; line-height: 1; }
.section-intro { display: grid; grid-template-columns: 1fr .7fr; gap: 70px; align-items: end; }
.section-intro h2 { margin: 0; font-size: 36px; }
.section-intro > p { margin: 0; color: var(--muted); font-family: var(--serif); font-size: 15px; }
.section-intro.compact { margin-bottom: 30px; }
.paper-panel { background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow); }
.panel-heading { min-height: 72px; padding: 19px 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }
.panel-heading h2 { margin: 0; font-size: 24px; }
.status-tag { padding: 4px 9px; font-size: 11px; border: 1px solid currentColor; }
.status-tag.disputed { color: var(--red); background: var(--red-soft); }
.primary-button { min-height: 46px; padding: 0 18px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; color: var(--white); background: var(--green); border: 1px solid var(--green); font-size: 13px; font-weight: 700; }
.primary-button:hover { background: #194b39; }

/* Home */
.home-hero { min-height: 450px; position: relative; background: var(--white); border-bottom: 1px solid var(--line); overflow: hidden; }
.home-image { position: absolute; inset: 0 0 0 auto; width: 55%; overflow: hidden; background: linear-gradient(90deg, rgba(255,254,250,.3) 0%, rgba(255,254,250,0) 38%), url("assets/hero-archive-v2.webp") center / cover no-repeat; }
.home-image::before, .home-image::after { display: none; }
.home-panel { min-height: 450px; position: relative; display: grid; grid-template-columns: 1.05fr .75fr; gap: 82px; align-items: center; }
.home-copy { width: 100%; max-width: 590px; padding: 24px 48px 22px 0; background: var(--white); position: relative; z-index: 2; }
.home-copy::after { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 100%; width: 150px; background: linear-gradient(90deg, var(--white) 0%, rgba(255,254,250,.9) 28%, rgba(255,254,250,0) 100%); }
.home-copy h1 { margin: 0; font-family: var(--display); font-size: clamp(56px, 5.4vw, 76px); font-weight: 400; line-height: 1.24; letter-spacing: .09em; }
.home-copy .lead { margin-top: 14px; font-size: 16px; line-height: 1.75; }
.hero-actions { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 9px; }
.hero-actions .primary-button, .hero-actions .secondary-button { min-height: 40px; padding: 0 16px; font-size: 12px; }
.secondary-button { display: inline-flex; align-items: center; justify-content: center; color: var(--green); background: rgba(255,254,250,.88); border: 1px solid var(--green); font-weight: 700; }
.secondary-button:hover { color: var(--white); background: var(--green); }
.home-search { height: 48px; margin-top: 20px; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 10px; padding-left: 16px; background: var(--paper); border: 1px solid var(--line); }
.home-search svg { color: var(--muted); }
.home-search input { width: 100%; height: 100%; border: 0; outline: 0; background: transparent; font-size: 14px; }
.home-search button { align-self: stretch; padding: 0 22px; color: var(--white); background: var(--green); border: 0; font-size: 13px; }
.research-notice { margin: 14px 0 0; display: grid; grid-template-columns: 20px 1fr; gap: 10px; color: var(--red); font-size: 12px; }
.research-notice svg { margin-top: 4px; }
.home-academy { padding-top: 28px; }
.home-academy-card { display: grid; grid-template-columns: .78fr 1.22fr; background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--green); }
.home-academy-heading { padding: 18px 24px; background: var(--green-soft); }
.home-academy-heading .eyebrow { margin-bottom: 6px; }
.home-academy-heading h2 { margin: 0; font-size: 30px; }
.home-academy-heading > p:not(.eyebrow) { margin: 5px 0 0; max-width: 430px; color: var(--ink-soft); font-family: var(--serif); font-size: 12px; line-height: 1.55; }
.home-academy-heading .primary-button { min-height: 34px; margin-top: 8px; padding-inline: 14px; font-size: 11px; }
.home-academy-facts { margin: 0; padding: 10px 20px; display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 20px; }
.home-academy-facts > div { padding: 7px 0; border-bottom: 1px solid var(--line); }
.home-academy-facts > div:nth-last-child(-n+3) { border-bottom: 0; }
.home-academy-facts dt { color: var(--muted); font-size: 10px; }
.home-academy-facts dd { margin: 2px 0 0; font-family: var(--serif); font-size: 14px; }
.home-academy-facts dd small { margin-top: 3px; display: block; color: var(--red); font-family: var(--sans); font-size: 9px; }
.research-spine { margin-top: 14px; padding: 22px 24px; display: grid; grid-template-columns: 1fr 1.2fr; gap: 38px; align-items: center; background: var(--ink); color: var(--white); }
.research-spine .eyebrow { margin-bottom: 7px; color: #dfbd7f; }
.research-spine h2 { margin: 0; font-size: 24px; }
.research-spine-copy > p:last-child { margin: 6px 0 0; color: rgba(255,255,255,.68); font-size: 11px; line-height: 1.7; }
.research-spine-stats { margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.research-spine-stats div { min-height: 62px; padding: 8px 18px; border-left: 1px solid rgba(255,255,255,.18); }
.research-spine-stats dt { color: rgba(255,255,255,.52); font-size: 9px; }
.research-spine-stats dd { margin: 7px 0 0; font-family: var(--serif); font-size: 13px; }
.home-directory { padding-top: 14px; }
.directory-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.directory-grid a, .directory-grid button { min-height: 68px; position: relative; padding: 10px 20px; display: grid; grid-template-columns: 32px 1fr; grid-template-rows: auto auto; align-content: center; align-items: center; text-align: left; background: var(--white); border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: color .18s, background .18s; }
.directory-grid a:hover, .directory-grid button:hover { color: var(--white); background: var(--green); }
.directory-grid i { grid-row: 1 / 3; display: block; color: var(--red); font-style: normal; font-size: 20px; }
.directory-grid strong { margin: 0; font-family: var(--serif); font-size: 17px; }
.directory-grid small { margin-top: 1px; color: var(--muted); font-size: 10px; }
.directory-grid a:hover i, .directory-grid a:hover small, .directory-grid button:hover i, .directory-grid button:hover small { color: var(--white); }
.home-about { margin-top: 34px; display: grid; grid-template-columns: .72fr 1.28fr; min-height: 300px; background: var(--white); border: 1px solid var(--line); }
.about-archive-image { min-height: 300px; position: relative; background: linear-gradient(rgba(31,45,51,.06), rgba(31,45,51,.14)), url("assets/hero-archive-v2.webp") 76% center / cover no-repeat; }
.about-archive-image::after { content: ""; position: absolute; inset: 18px; border: 1px solid rgba(255,254,250,.55); }
.about-archive-copy { padding: 30px 40px; align-self: center; }
.about-archive-copy h2 { margin: 0 0 18px; font-size: 36px; }
.about-archive-copy > p:not(.eyebrow) { margin: 0 0 12px; color: var(--ink-soft); font-size: 13px; line-height: 1.9; }
.about-archive-copy .about-note { color: var(--muted); font-size: 11px; }
.about-method { margin: 13px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.about-method summary { padding: 9px 0; color: var(--green); cursor: pointer; font-size: 11px; font-weight: 700; }
.about-method p { margin: 0 0 12px; color: var(--ink-soft); font-size: 12px; line-height: 1.8; }
.about-archive-copy blockquote { margin: 20px 0 0; padding: 12px 0 12px 22px; color: var(--green); border-left: 2px solid var(--red); font-family: var(--serif); font-size: 15px; line-height: 1.8; }

/* Academy */
.institution-grid { padding-top: 46px; display: grid; grid-template-columns: 1fr 390px; gap: 32px; align-items: start; }
.metadata-list { margin: 0; }
.metadata-list > div { min-height: 62px; padding: 14px 24px; display: grid; grid-template-columns: 165px 1fr; gap: 20px; align-items: center; border-bottom: 1px solid var(--line); }
.metadata-list > div:last-child { border-bottom: 0; }
.metadata-list dt { color: var(--muted); font-size: 12px; }
.metadata-list dd { margin: 0; font-family: var(--serif); font-size: 16px; }
.metadata-list dd small { margin-left: 14px; color: var(--red); font-family: var(--sans); font-size: 11px; }
.metadata-list dd a, .inline-entity { padding: 0; color: var(--green); background: transparent; border: 0; border-bottom: 1px solid currentColor; font-family: inherit; }
.critical-panel { padding: 30px; background: var(--blue-soft); border-left: 3px solid var(--red); }
.critical-panel h2 { margin: 0; font-size: 30px; }
.critical-panel > p:not(.eyebrow) { color: var(--ink-soft); font-size: 14px; }
.year-comparison { margin: 25px 0; border-top: 1px solid var(--line); }
.year-comparison div { padding: 13px 0; display: grid; grid-template-columns: 62px 1fr; gap: 12px; border-bottom: 1px solid var(--line); }
.year-comparison strong { color: var(--red); font-family: var(--serif); font-size: 17px; }
.year-comparison span { color: var(--muted); font-size: 12px; }
.relation-summary { padding-top: 62px; }
.relation-cards { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.relation-cards a { min-height: 145px; padding: 22px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.relation-cards small { color: var(--red); font-size: 9px; letter-spacing: .1em; }
.relation-cards strong { margin-top: 24px; font-family: var(--serif); font-size: 16px; }
.relation-cards span { margin-top: auto; color: var(--green); font-size: 11px; }

/* Archives */
.archive-layout { padding-top: 44px; display: grid; grid-template-columns: 245px 1fr; gap: 30px; align-items: start; }
.archive-categories { background: var(--white); border: 1px solid var(--line); }
.archive-categories button { width: 100%; min-height: 72px; padding: 13px 16px; display: grid; grid-template-columns: 30px 1fr auto; gap: 10px; align-items: center; text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line); }
.archive-categories button:last-child { border-bottom: 0; }
.archive-categories button.active { color: var(--white); background: var(--green); }
.archive-categories .cat-letter { color: var(--red); font-family: var(--serif); font-size: 14px; }
.archive-categories button.active .cat-letter { color: var(--white); }
.archive-categories strong { display: block; font-family: var(--serif); font-size: 14px; }
.archive-categories small { display: block; color: var(--muted); font-size: 9px; }
.archive-categories button.active small { color: rgba(255,255,255,.72); }
.archive-categories em { color: var(--gold); font-style: normal; font-size: 10px; }
.archive-toolbar { display: grid; grid-template-columns: 1fr 132px 132px; gap: 10px; }
.archive-toolbar label { height: 48px; padding: 0 14px; display: flex; align-items: center; gap: 10px; background: var(--white); border: 1px solid var(--line); }
.archive-toolbar input { width: 100%; border: 0; outline: 0; background: transparent; }
.archive-toolbar select { padding: 0 12px; background: var(--white); border: 1px solid var(--line); }
.archive-topic { margin-top: 16px; padding: 22px 24px; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; background: var(--blue-soft); border-left: 3px solid var(--red); }
.archive-topic h2 { margin: 0; font-size: 23px; }
.archive-topic p { margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.archive-topic a { color: var(--green); font-size: 12px; font-weight: 700; }
.archive-path { margin: 0 0 5px!important; color: var(--red)!important; font-family: var(--serif); font-size: 11px!important; letter-spacing: .04em; }
.records-table { margin-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pdf-record-card { min-height: 158px; padding: 18px; display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 15px; align-items: center; background: var(--white); border: 1px solid var(--line); }
.pdf-record-icon { width: 54px; height: 64px; display: grid; place-items: center; position: relative; color: var(--green); background: var(--paper); border: 1px solid var(--line); }
.pdf-record-icon svg { width: 23px; height: 23px; }
.pdf-record-icon span { position: absolute; right: 4px; bottom: 3px; color: var(--red); font-family: "Times New Roman", serif; font-size: 8px; font-weight: 700; }
.pdf-record-copy { min-width: 0; }
.pdf-record-copy h3 { margin: 4px 0 5px; font-size: 16px; line-height: 1.55; }
.pdf-record-copy > p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.evidence-path { margin-top: 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--muted); font-size: 9px; }
.evidence-path i { color: var(--red); font-style: normal; }
.evidence-path strong { color: var(--green); font-family: var(--sans); font-size: 9px; }
.pdf-record-tags { margin-top: 9px; display: flex; flex-wrap: wrap; gap: 5px; }
.pdf-record-tags span { padding: 2px 7px; color: var(--ink-soft); background: var(--paper); border: 1px solid var(--line); border-radius: 999px; font-size: 9px; }
.pdf-record-action { min-height: 34px; padding: 0 10px; color: var(--red); background: transparent; border: 1px solid var(--line); font-size: 10px; white-space: nowrap; }
.pdf-record-action:hover { color: var(--white); background: var(--green); border-color: var(--green); }
.record-row { min-height: 78px; padding: 13px 18px; display: grid; grid-template-columns: 85px 55px 1fr 120px 30px; gap: 14px; align-items: center; border-bottom: 1px solid var(--line); }
.record-row:last-child { border-bottom: 0; }
.record-id { color: var(--muted); font-family: ui-monospace, monospace; font-size: 10px; }
.record-grade, .grade { width: 25px; height: 25px; display: grid; place-items: center; color: var(--white); font-family: var(--sans); font-size: 10px; font-weight: 700; }
.record-grade.s, .grade.s { background: var(--red); }
.record-grade.a, .grade.a { background: var(--green); }
.record-grade.b, .grade.b { background: #536d79; }
.record-grade.c, .grade.c { background: var(--gold); }
.record-grade.d, .grade.d { color: var(--ink); background: #d7d5cf; }
.record-main strong, .record-main small { display: block; }
.record-main strong { font-family: var(--serif); font-size: 16px; }
.record-main small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.record-status { color: var(--red); font-size: 11px; }
.record-row button { width: 30px; height: 30px; display: grid; place-items: center; color: var(--green); background: transparent; border: 1px solid var(--line); }
.empty-records { padding: 48px; text-align: center; color: var(--muted); }

/* People */
.people-layout { padding-top: 44px; display: grid; grid-template-columns: 220px 1fr; gap: 30px; align-items: start; }
.database-sidebar { background: var(--white); border: 1px solid var(--line); }
.database-sidebar > p { margin: 0; padding: 16px; color: var(--red); border-bottom: 1px solid var(--line); font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.database-sidebar > button { width: 100%; min-height: 46px; padding: 0 16px; text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.database-sidebar > button.active { color: var(--white); background: var(--green); }
.sidebar-note { padding: 18px 16px; }
.sidebar-note strong, .sidebar-note span { display: block; }
.sidebar-note strong { font-family: var(--serif); font-size: 14px; }
.sidebar-note span { margin-top: 8px; color: var(--muted); font-size: 10px; }
.person-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.person-card { min-height: 138px; padding: 18px; text-align: left; background: var(--white); border: 1px solid var(--line); }
.person-card.active { border-top: 3px solid var(--red); box-shadow: var(--shadow); }
.person-card small, .person-card strong, .person-card span { display: block; }
.person-card small { color: var(--red); font-size: 9px; }
.person-card strong { margin-top: 22px; font-family: var(--serif); font-size: 18px; }
.person-card span { margin-top: 4px; color: var(--muted); font-size: 10px; }
.person-profile { margin-top: 24px; padding: 30px; }
.profile-top { display: grid; grid-template-columns: 1fr 310px; gap: 40px; }
.profile-top h2 { margin: 0; font-size: 34px; }
.profile-top .occupation { margin: 7px 0 20px; color: var(--red); font-size: 13px; }
.profile-top p { color: var(--ink-soft); font-size: 14px; }
.profile-evidence-button, .claim-evidence-button, .evidence-columns button { min-height: 36px; margin-top: 12px; padding: 0 12px; display: inline-flex; align-items: center; gap: 8px; color: var(--green); background: transparent; border: 1px solid var(--green); font-size: 10px; font-weight: 700; }
.profile-evidence-button:hover, .claim-evidence-button:hover, .evidence-columns button:hover { color: var(--white); background: var(--green); }
.profile-facts { margin: 0; }
.profile-facts div { padding: 10px 0; display: grid; grid-template-columns: 90px 1fr; border-bottom: 1px solid var(--line); }
.profile-facts dt { color: var(--muted); font-size: 11px; }
.profile-facts dd { margin: 0; font-size: 13px; }
.career-flow { margin-top: 28px; padding-top: 24px; display: flex; align-items: stretch; border-top: 1px solid var(--line); overflow-x: auto; }
.career-flow span { min-width: 118px; padding: 14px; text-align: center; background: var(--paper); border: 1px solid var(--line); font-size: 12px; }
.career-flow i { min-width: 28px; display: grid; place-items: center; color: var(--red); font-style: normal; }
.profile-links { margin-top: 26px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.profile-links div { padding: 14px; background: var(--blue-soft); }
.profile-links small, .profile-links strong { display: block; }
.profile-links small { color: var(--red); font-size: 9px; }
.profile-links strong { margin-top: 5px; font-family: var(--serif); font-size: 13px; }
.profile-resources { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--line); }
.profile-resources-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; }
.profile-resources-heading .eyebrow { margin-bottom: 5px; }
.profile-resources-heading h3 { margin: 0; font-size: 25px; }
.profile-resources-heading > span { color: var(--muted); font-size: 10px; }
.profile-resources-note { margin: 8px 0 18px; max-width: 850px; color: var(--muted); font-size: 11px; line-height: 1.75; }
.profile-resource-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.profile-resource-group { min-width: 0; background: var(--paper); border: 1px solid var(--line); }
.profile-resource-group > header { min-height: 66px; padding: 12px 15px; display: flex; align-items: center; justify-content: space-between; gap: 15px; background: var(--blue-soft); border-bottom: 1px solid var(--line); }
.profile-resource-group header small { color: var(--red); font-size: 8px; letter-spacing: .1em; }
.profile-resource-group h4 { margin: 2px 0 0; font-family: var(--serif); font-size: 16px; }
.profile-resource-group > header > span { color: var(--muted); font-size: 9px; }
.profile-resource-empty, .profile-resource-entry { min-height: 120px; padding: 16px; display: flex; flex-direction: column; }
.profile-resource-empty strong { color: var(--muted); font-family: var(--serif); font-size: 14px; font-weight: 500; }
.profile-resource-empty p, .profile-resource-entry p { margin: 8px 0; color: var(--muted); font-size: 9px; line-height: 1.65; }
.profile-resource-empty span, .profile-resource-entry span { margin-top: auto; color: var(--red); font-size: 8px; }
.profile-resource-entry + .profile-resource-entry { border-top: 1px solid var(--line); }
.profile-resource-entry strong { font-family: var(--serif); font-size: 14px; }
.profile-resource-entry a { margin-top: 8px; display: inline-flex; align-items: center; gap: 5px; color: var(--green); font-size: 9px; text-decoration: none; }
.profile-resource-entry a svg { width: 12px; height: 12px; stroke-width: 1.6; }
.profile-resource-toggle { width: 100%; min-height: 42px; color: var(--green); background: var(--white); border: 0; border-top: 1px solid var(--line); font: inherit; font-size: 9px; cursor: pointer; }

/* Newspapers */
.newspaper-overview { padding-top: 44px; }
.newspaper-titles { display: grid; grid-template-columns: repeat(6, 1fr); border: 1px solid var(--line); }
.newspaper-titles button { min-height: 58px; padding: 8px; background: var(--white); border: 0; border-right: 1px solid var(--line); font-family: var(--serif); font-size: 13px; }
.newspaper-titles button:last-child { border-right: 0; }
.newspaper-titles button.active { color: var(--white); background: var(--green); }
.newspaper-search { height: 50px; margin-top: 16px; padding: 0 16px; display: flex; align-items: center; gap: 10px; background: var(--white); border: 1px solid var(--line); }
.newspaper-search input { width: 100%; border: 0; outline: 0; background: transparent; }
.newspaper-table { margin-top: 16px; background: var(--white); border-top: 2px solid var(--ink); }
.paper-row { min-height: 78px; padding: 14px 18px; display: grid; grid-template-columns: 115px 150px 1fr 110px 115px 28px; gap: 16px; align-items: center; border-bottom: 1px solid var(--line); }
.paper-row.header { min-height: 42px; color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.paper-row:not(.header) span { font-size: 12px; }
.paper-row strong { font-family: var(--serif); font-size: 16px; }
.paper-row em { color: var(--red); font-style: normal; font-size: 11px; }
.paper-row button { width: 28px; height: 28px; display: grid; place-items: center; color: var(--green); background: transparent; border: 1px solid var(--line); }
.special-topic { margin-top: 34px; padding: 32px; display: grid; grid-template-columns: 320px 1fr; gap: 50px; background: var(--blue-soft); border-left: 3px solid var(--red); }
.special-topic h2 { margin: 0; font-size: 30px; }
.special-topic p:not(.eyebrow) { color: var(--ink-soft); font-size: 13px; }
.topic-flow { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; }
.topic-flow span, .topic-flow strong { padding: 9px 12px; background: var(--white); border: 1px solid var(--line); font-size: 11px; }
.topic-flow i { color: var(--red); font-style: normal; }

/* Activities */
.activities-layout { padding-top: 44px; }
.view-tabs, .debate-tabs { display: flex; border-bottom: 1px solid var(--line); }
.view-tabs button, .debate-tabs button { min-width: 130px; min-height: 48px; padding: 0 18px; background: transparent; border: 0; border-right: 1px solid var(--line); font-size: 13px; }
.view-tabs button.active, .debate-tabs button.active { color: var(--white); background: var(--green); }
.activity-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.activity-card { min-height: 240px; padding: 24px; display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); }
.activity-card .activity-type { color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.activity-card h2 { margin: 30px 0 8px; font-size: 22px; }
.activity-card p { margin: 0; color: var(--muted); font-size: 13px; }
.activity-card dl { margin: auto 0 0; padding-top: 18px; border-top: 1px solid var(--line); }
.activity-card dl div { display: flex; justify-content: space-between; gap: 20px; font-size: 11px; }
.activity-card dt { color: var(--muted); }
.activity-card dd { margin: 0; }
.work-table { margin-top: 24px; background: var(--white); border-top: 2px solid var(--ink); }
.work-row { min-height: 62px; padding: 10px 18px; display: grid; grid-template-columns: 1.1fr 1fr 1fr 90px 1fr 1.2fr; gap: 14px; align-items: center; border-bottom: 1px solid var(--line); font-size: 12px; }
.work-row.header { min-height: 40px; color: var(--muted); font-size: 10px; }

/* Time & space */
.timespace-switcher { margin-top: 34px; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); }
.timespace-switcher button { min-height: 52px; background: var(--white); border: 0; border-right: 1px solid var(--line); font-family: var(--serif); font-size: 15px; }
.timespace-switcher button:last-child { border-right: 0; }
.timespace-switcher button.active { color: var(--white); background: var(--green); }
.timespace-panel { display: none; }
.timespace-panel.active { display: block; }

/* Timeline */
.timeline-layout { padding-top: 48px; }
.timeline-track { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); }
.timeline-track::before { content: ""; position: absolute; top: 26px; left: 6%; right: 6%; height: 1px; background: var(--line); }
.timeline-year { min-height: 100px; position: relative; padding: 0 9px; text-align: center; background: transparent; border: 0; }
.timeline-year i { width: 13px; height: 13px; position: relative; z-index: 1; margin: 20px auto 13px; display: block; border: 2px solid var(--green); border-radius: 50%; background: var(--paper); }
.timeline-year strong, .timeline-year small { display: block; }
.timeline-year strong { font-family: var(--serif); font-size: 20px; }
.timeline-year small { color: var(--muted); font-size: 10px; }
.timeline-year.active i { background: var(--red); border-color: var(--red); box-shadow: 0 0 0 6px var(--red-soft); }
.timeline-year.active strong { color: var(--red); }
.timeline-panel { min-height: 330px; margin-top: 26px; padding: 32px; }
.timeline-panel h2 { margin: 0; font-size: 30px; }
.timeline-panel > p { max-width: 760px; color: var(--ink-soft); font-family: var(--serif); font-size: 16px; }
.timeline-events { margin-top: 24px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.timeline-event { padding: 16px; background: var(--paper); border-left: 2px solid var(--green); }
.timeline-event strong, .timeline-event small { display: block; }
.timeline-event strong { font-family: var(--serif); font-size: 15px; }
.timeline-event small { margin-top: 5px; color: var(--muted); font-size: 11px; }
.timeline-event.pending { border-color: var(--red); }

/* Map */
.map-layout { padding-top: 44px; display: grid; grid-template-columns: 1fr 320px; gap: 24px; }
.research-map { min-height: 520px; position: relative; overflow: hidden; background: #e7e2d7; border: 1px solid var(--line); }
.map-grid-lines { width: 1px; height: 100%; position: absolute; left: 120px; top: 0; background: rgba(31,45,51,.08); box-shadow: 120px 0 0 rgba(31,45,51,.08), 240px 0 0 rgba(31,45,51,.08), 360px 0 0 rgba(31,45,51,.08), 480px 0 0 rgba(31,45,51,.08), 600px 0 0 rgba(31,45,51,.08), 720px 0 0 rgba(31,45,51,.08); }
.map-grid-lines::after { content: ""; width: 900px; height: 1px; position: absolute; left: -120px; top: 100px; background: rgba(31,45,51,.08); box-shadow: 0 100px 0 rgba(31,45,51,.08), 0 200px 0 rgba(31,45,51,.08), 0 300px 0 rgba(31,45,51,.08), 0 400px 0 rgba(31,45,51,.08); }
.map-road { position: absolute; display: block; background: rgba(145,66,54,.18); }
.road-a { width: 115%; height: 18px; left: -7%; top: 48%; transform: rotate(-8deg); }
.road-b { width: 18px; height: 130%; left: 52%; top: -15%; transform: rotate(14deg); }
.map-wall { position: absolute; left: 27%; top: 24%; width: 47%; height: 46%; display: grid; place-items: center; color: rgba(31,45,51,.28); border: 3px double rgba(31,45,51,.25); font-family: var(--serif); font-size: 13px; letter-spacing: .16em; }
.map-marker { position: absolute; padding: 0; display: flex; align-items: flex-start; gap: 10px; text-align: left; background: transparent; border: 0; }
.map-marker i { width: 18px; height: 18px; flex: 0 0 auto; display: block; border: 4px solid var(--white); border-radius: 50%; background: var(--green); box-shadow: 0 2px 8px rgba(31,45,51,.28); }
.map-marker.active i { background: var(--red); box-shadow: 0 0 0 7px var(--red-soft); }
.map-marker span { padding: 7px 10px; background: rgba(255,254,250,.94); border: 1px solid var(--line); font-family: var(--serif); font-size: 13px; white-space: nowrap; }
.map-marker small { display: block; color: var(--red); font-family: var(--sans); font-size: 9px; }
.marker-academy { left: 45%; top: 36%; }
.marker-paper { left: 19%; top: 58%; }
.marker-concert { left: 64%; top: 67%; }
.marker-school { left: 70%; top: 18%; }
.map-disclaimer { position: absolute; right: 12px; bottom: 9px; margin: 0; color: var(--muted); font-size: 10px; }
.place-panel { padding: 28px; background: var(--white); border-top: 3px solid var(--red); box-shadow: var(--shadow); }
.place-panel h2 { margin: 0; font-size: 27px; }
.place-panel > p { color: var(--ink-soft); font-size: 13px; }
.place-panel dl { margin: 25px 0 0; }
.place-panel dl div { padding: 11px 0; border-bottom: 1px solid var(--line); }
.place-panel dt { color: var(--muted); font-size: 10px; }
.place-panel dd { margin: 3px 0 0; font-size: 12px; }

/* Graph */
.graph-studio { padding-top: 44px; }
.graph-toolbar { min-height: 62px; padding: 10px 12px; display: grid; grid-template-columns: minmax(190px, 260px) 1fr auto; gap: 14px; align-items: center; background: var(--white); border: 1px solid var(--line); border-bottom: 0; }
.graph-search { height: 40px; padding: 0 12px; display: flex; align-items: center; gap: 8px; background: var(--paper); border: 1px solid var(--line); }
.graph-search svg { width: 16px; color: var(--muted); }
.graph-search input { width: 100%; border: 0; outline: 0; background: transparent; font-size: 12px; }
.graph-filters, .graph-actions { display: flex; align-items: center; gap: 5px; }
.graph-filters { overflow-x: auto; scrollbar-width: none; }
.graph-filters::-webkit-scrollbar { display: none; }
.graph-filters button, .graph-actions button { min-height: 34px; padding: 0 11px; white-space: nowrap; color: var(--ink-soft); background: transparent; border: 1px solid transparent; font-size: 11px; }
.graph-filters button:hover, .graph-filters button.active { color: var(--white); background: var(--green); }
.graph-actions button { background: var(--paper); border-color: var(--line); }
.graph-actions button:first-child, .graph-actions button:nth-child(2) { width: 34px; padding: 0; font-size: 17px; }
.graph-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 330px; min-height: 690px; }
.graph-canvas { min-width: 0; min-height: 690px; position: relative; overflow: hidden; background-color: #fbfaf6; background-image: radial-gradient(rgba(37,72,65,.11) .7px, transparent .7px); background-size: 18px 18px; border: 1px solid var(--line); cursor: grab; touch-action: none; }
.graph-canvas.dragging { cursor: grabbing; }
.graph-canvas svg { width: 100%; height: 100%; min-height: 690px; display: block; user-select: none; }
.graph-edge { fill: none; stroke: #aab5b2; stroke-width: 1.35; marker-end: url(#graph-arrow); transition: opacity .18s, stroke .18s, stroke-width .18s; }
.graph-edge.disputed { stroke: var(--red); stroke-dasharray: 7 5; }
.graph-edge.active { stroke: var(--green); stroke-width: 2.4; }
.graph-edge.dimmed, .graph-edge-label.dimmed, .kg-node.dimmed { opacity: .11; }
.graph-edge-label { pointer-events: none; transition: opacity .18s; }
.graph-edge-label rect { fill: rgba(251,250,246,.94); stroke: rgba(166,174,171,.55); }
.graph-edge-label text { fill: var(--muted); font-size: 9px; text-anchor: middle; }
.kg-node { cursor: pointer; outline: none; transition: opacity .18s; }
.kg-node circle { stroke: var(--white); stroke-width: 3; filter: drop-shadow(0 3px 5px rgba(26,45,41,.18)); transition: stroke .18s, stroke-width .18s, transform .18s; }
.kg-node:hover circle, .kg-node:focus circle, .kg-node.active circle { stroke: var(--ink); stroke-width: 4; }
.kg-node text { fill: var(--ink); font-family: var(--serif); font-size: 12px; font-weight: 700; text-anchor: middle; pointer-events: none; paint-order: stroke; stroke: rgba(255,254,250,.96); stroke-width: 4px; stroke-linejoin: round; }
.kg-node .kg-symbol { fill: var(--white); font-family: var(--serif); font-size: 15px; stroke: none; }
.kg-node .kg-type { fill: var(--muted); font-family: var(--sans); font-size: 7px; font-weight: 700; letter-spacing: .1em; stroke-width: 3px; }
.graph-panel { padding: 28px; background: var(--white); border: 1px solid var(--line); border-left: 0; }
.graph-panel .entity-kicker { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.graph-panel .entity-kicker i { width: 9px; height: 9px; border-radius: 50%; background: var(--entity-color, var(--green)); }
.graph-panel h2 { margin: 14px 0 0; font-size: 28px; }
.graph-panel > p { color: var(--ink-soft); font-family: var(--serif); font-size: 14px; }
.graph-panel dl { margin-top: 24px; }
.graph-panel dl div { padding: 10px 0; border-bottom: 1px solid var(--line); }
.graph-panel dt { color: var(--muted); font-size: 10px; }
.graph-panel dd { margin: 4px 0 0; font-size: 12px; }
.graph-relations { margin-top: 24px; }
.graph-relations h3 { margin: 0 0 8px; font-size: 14px; }
.graph-relations button { width: 100%; padding: 9px 0; display: grid; grid-template-columns: 1fr auto; gap: 10px; color: var(--ink-soft); text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line); font-size: 11px; }
.graph-relations button span:last-child { color: var(--red); }
.graph-hint { position: absolute; left: 12px; bottom: 12px; padding: 7px 9px; color: var(--muted); background: rgba(255,254,250,.9); border: 1px solid var(--line); font-size: 9px; pointer-events: none; }
.graph-summary { min-height: 48px; padding: 9px 12px; display: flex; justify-content: space-between; align-items: center; gap: 18px; background: var(--white); border: 1px solid var(--line); border-top: 0; }
.graph-legend { display: flex; flex-wrap: wrap; gap: 12px; }
.graph-legend span { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; }
.graph-legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--legend-color); }
.graph-summary p { margin: 0; color: var(--muted); font-size: 10px; white-space: nowrap; }
.triples-section { padding-top: 54px; }
.triple-table { background: var(--white); border-top: 2px solid var(--ink); }
.triple-row { min-height: 60px; padding: 12px 18px; display: grid; grid-template-columns: 1fr 150px 1fr 100px; gap: 18px; align-items: center; border-bottom: 1px solid var(--line); font-size: 13px; }
.triple-row strong { font-family: var(--serif); }
.triple-row .relation { color: var(--red); text-align: center; }
.triple-row button { padding: 5px 8px; color: var(--green); background: transparent; border: 1px solid var(--line); font-size: 10px; }

/* Research */
.research-layout { padding-top: 44px; display: grid; gap: 28px; }
.research-system-nav { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.research-system-nav a { min-height: 106px; padding: 15px; display: flex; flex-direction: column; background: var(--white); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.research-system-nav small { color: var(--red); font-size: 9px; }
.research-system-nav strong { margin-top: 14px; font-family: var(--serif); font-size: 15px; }
.research-system-nav span { margin-top: auto; color: var(--muted); font-size: 9px; }
.research-system-nav a:hover { color: var(--white); background: var(--green); }
.research-system-nav a:hover small, .research-system-nav a:hover span { color: rgba(255,255,255,.72); }
.thesis-card { padding: 36px; background: var(--green); color: var(--white); }
.thesis-card .eyebrow { color: #d8b778; }
.thesis-card h2 { margin: 0; max-width: 980px; font-size: 30px; line-height: 1.55; }
.thesis-card p:last-child { max-width: 850px; color: rgba(255,255,255,.78); font-size: 14px; }
.debate-section { background: var(--white); border: 1px solid var(--line); }
.debate-section .panel-heading { padding: 25px 28px; }
.debate-section .panel-heading h2 { font-size: 29px; }
.debate-tabs { padding: 0 28px; }
.debate-content { min-height: 260px; padding: 30px; }
.debate-content h3 { margin: 0; font-size: 25px; }
.debate-content > p { color: var(--ink-soft); font-size: 14px; }
.evidence-columns { margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.evidence-columns div { padding: 20px; background: var(--paper); border-left: 2px solid var(--green); }
.evidence-columns div:last-child { border-color: var(--red); }
.evidence-columns h4 { margin: 0 0 10px; font-family: var(--serif); }
.evidence-columns ul { margin: 0; padding-left: 18px; color: var(--muted); font-size: 12px; }
.research-bibliography { scroll-margin-top: 150px; background: var(--white); border: 1px solid var(--line); }
.research-bibliography-heading { padding: 28px 30px; display: grid; grid-template-columns: 230px 1fr auto; gap: 28px; align-items: center; border-bottom: 1px solid var(--line); }
.research-bibliography-heading h2 { margin: 0; font-size: 27px; }
.research-bibliography-heading > p { margin: 0; max-width: 700px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.research-bibliography-count { min-width: 82px; padding: 8px 10px; color: var(--green); border: 1px solid var(--green); text-align: center; font-family: var(--latin); font-size: 11px; }
.research-bibliography-toolbar { display: grid; grid-template-columns: 230px 1fr; border-bottom: 1px solid var(--line); }
.research-bibliography-toolbar label { min-height: 62px; padding: 10px 15px; display: flex; flex-direction: column; gap: 5px; border-right: 1px solid var(--line); }
.research-bibliography-toolbar label:last-child { border-right: 0; }
.research-bibliography-toolbar span { color: var(--muted); font-size: 8px; letter-spacing: .08em; }
.research-bibliography-toolbar select, .research-bibliography-toolbar input { width: 100%; min-width: 0; padding: 0; color: var(--ink); background: transparent; border: 0; outline: 0; font: inherit; font-size: 12px; }
.research-publication-list { display: grid; grid-template-columns: repeat(2, 1fr); }
.research-publication-card { min-width: 0; padding: 24px 26px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.research-publication-card:nth-child(2n) { border-right: 0; }
.research-publication-card header { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; }
.research-publication-card header > span { color: var(--red); font-size: 9px; letter-spacing: .08em; }
.research-publication-card header > small { color: var(--muted); font-family: var(--latin); font-size: 9px; }
.research-publication-card header .grade { margin: 0; }
.research-publication-card h3 { margin: 18px 0 6px; font-family: var(--serif); font-size: 19px; line-height: 1.45; }
.research-publication-authors { margin: 0; color: var(--green); font-size: 11px; }
.research-publication-citation { margin: 14px 0 0; color: var(--ink-soft); font-size: 11px; line-height: 1.8; }
.research-publication-card ul { margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
.research-publication-card li { padding: 4px 7px; color: var(--muted); background: var(--paper); border: 1px solid var(--line); font-size: 8px; }
.research-publication-note { margin: 14px 0 18px; color: var(--muted); font-size: 10px; line-height: 1.75; }
.research-publication-card footer { margin-top: auto; padding-top: 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); }
.research-publication-card footer > span { color: var(--red); font-size: 9px; }
.research-card-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.research-publication-card footer button { min-height: 34px; padding: 0 12px; display: inline-flex; align-items: center; gap: 7px; color: var(--green); background: transparent; border: 1px solid var(--green); font: inherit; font-size: 10px; cursor: pointer; }
.research-publication-card footer button:hover, .research-publication-card footer button:focus-visible { color: var(--white); background: var(--green); }
.research-publication-card footer button svg { width: 13px; height: 13px; stroke-width: 1.6; }
.research-publication-card footer .research-fulltext-button { color: var(--white); background: var(--green); }
.research-publication-card footer .research-fulltext-button:hover, .research-publication-card footer .research-fulltext-button:focus-visible { background: var(--ink); border-color: var(--ink); }
.research-publication-empty { grid-column: 1 / -1; margin: 0; padding: 40px; color: var(--muted); text-align: center; }
.research-pagination { min-height: 54px; padding: 8px 15px; display: flex; align-items: center; justify-content: flex-end; gap: 12px; background: var(--paper); border-top: 1px solid var(--line); }
.research-pagination button { min-width: 70px; height: 34px; color: var(--green); background: var(--white); border: 1px solid var(--line); font: inherit; font-size: 10px; cursor: pointer; }
.research-pagination button:disabled { color: var(--muted); background: transparent; cursor: default; opacity: .55; }
.research-pagination span { min-width: 48px; color: var(--muted); font-family: var(--latin); font-size: 10px; text-align: center; }
.evidence-levels { padding: 32px; display: grid; grid-template-columns: 280px 1fr; gap: 45px; background: var(--blue-soft); }
.evidence-levels h2 { margin: 0; font-size: 28px; }
.evidence-levels > div > p:last-child { color: var(--muted); font-size: 13px; }
.evidence-levels ol { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); list-style: none; }
.evidence-levels li { padding: 8px 14px; border-left: 1px solid var(--line); }
.evidence-levels li .grade { margin-bottom: 16px; }
.evidence-levels li strong, .evidence-levels li small { display: block; }
.evidence-levels li strong { color: var(--gold); letter-spacing: .06em; font-size: 12px; }
.evidence-levels li small { margin-top: 8px; color: var(--muted); font-size: 10px; }
.entity-types { padding-top: 22px; }
#entity-type-grid { display: grid; grid-template-columns: repeat(7, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.entity-type { min-height: 80px; padding: 14px; background: var(--white); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.entity-type code, .entity-type span { display: block; }
.entity-type code { color: var(--red); font-size: 9px; }
.entity-type span { margin-top: 8px; font-family: var(--serif); font-size: 14px; }
.site-footer { padding: 28px 0; color: rgba(255,255,255,.7); background: var(--ink); }
.footer-inner { display: flex; justify-content: space-between; gap: 30px; }
.footer-inner > div { display: flex; flex-direction: column; }
.footer-inner strong { color: var(--white); font-family: var(--serif); font-size: 15px; }
.footer-inner span { font-size: 9px; letter-spacing: .04em; }
.footer-inner > div:last-child { text-align: right; }

/* Dialogs */
.search-dialog, .evidence-dialog { width: min(720px, calc(100% - 32px)); max-height: calc(100vh - 40px); padding: 0; background: var(--white); border: 0; box-shadow: var(--shadow); }
.search-dialog::backdrop, .evidence-dialog::backdrop, .pdf-dialog::backdrop, .research-preview-dialog::backdrop { background: rgba(31,45,51,.62); backdrop-filter: blur(4px); }
.research-preview-dialog { width: min(1040px, calc(100% - 32px)); max-height: calc(100vh - 40px); padding: 0; overflow: auto; background: var(--white); border: 0; box-shadow: var(--shadow); }
.research-preview-content { padding: 40px; }
.research-preview-layout { display: grid; grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr); gap: 40px; }
.research-preview-media { min-width: 0; }
.research-preview-figure { margin: 0; padding: 14px; background: var(--paper); border: 1px solid var(--line); }
.research-preview-figure img { width: 100%; max-height: 610px; display: block; object-fit: contain; filter: sepia(.08); }
.research-preview-figure figcaption { margin-top: 10px; color: var(--muted); font-size: 9px; text-align: center; }
.research-preview-placeholder { min-height: 420px; padding: 32px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: var(--muted); background: var(--paper); border: 1px solid var(--line); text-align: center; }
.research-preview-placeholder svg { width: 44px; height: 44px; color: var(--red); stroke-width: 1; }
.research-preview-placeholder span { color: var(--ink); font-family: var(--serif); font-size: 16px; }
.research-preview-placeholder small { font-size: 10px; }
.research-preview-record h2 { margin: 0 42px 8px 0; font-family: var(--serif); font-size: clamp(24px, 3vw, 35px); line-height: 1.35; }
.research-preview-authors { margin: 0 0 22px; color: var(--green); font-size: 13px; }
.research-preview-meta { margin: 0 0 22px; display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); }
.research-preview-meta div { padding: 11px 0; border-bottom: 1px solid var(--line); }
.research-preview-meta dt { color: var(--muted); font-size: 9px; }
.research-preview-meta dd { margin: 4px 0 0; color: var(--ink); font-size: 11px; }
.research-preview-section { margin-top: 18px; }
.research-preview-section h3 { margin: 0 0 6px; color: var(--red); font-size: 10px; letter-spacing: .08em; }
.research-preview-section p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.85; }
.research-preview-tags { margin: 18px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
.research-preview-tags li { padding: 5px 8px; color: var(--muted); background: var(--paper); border: 1px solid var(--line); font-size: 9px; }
.research-preview-access { margin: 0; padding: 13px 15px; color: var(--muted); background: var(--blue-soft); border-left: 2px solid var(--green); font-size: 10px; line-height: 1.7; }
.research-preview-actions { margin-top: 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.research-preview-actions button, .research-preview-actions a { min-height: 38px; padding: 0 14px; display: inline-flex; align-items: center; gap: 7px; color: var(--white); background: var(--green); border: 1px solid var(--green); font: inherit; font-size: 10px; text-decoration: none; cursor: pointer; }
.research-preview-actions .research-preview-read { color: var(--white); background: var(--red); border-color: var(--red); }
.research-preview-actions .research-preview-read svg { width: 13px; height: 13px; }
.research-preview-actions a { color: var(--green); background: transparent; }
.research-preview-actions a svg { width: 13px; height: 13px; }
.research-preview-actions > span { color: var(--muted); font-size: 9px; }
.pdf-dialog { width: min(1180px, calc(100% - 32px)); height: calc(100vh - 32px); padding: 0; background: var(--white); border: 0; box-shadow: var(--shadow); }
.pdf-dialog[open] { display: flex; flex-direction: column; }
.pdf-dialog-heading { min-height: 86px; padding: 14px 64px 12px 22px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.pdf-dialog-heading .eyebrow { margin-bottom: 2px; }
.pdf-dialog-heading h2 { margin: 0; font-size: 19px; line-height: 1.35; }
.pdf-dialog-heading-copy { min-width: 0; }
.pdf-dialog-toolbar { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; }
.pdf-dialog-toolbar button, .pdf-dialog-toolbar a { min-height: 34px; padding: 0 10px; color: var(--green); background: var(--white); border: 1px solid var(--line); font: inherit; font-size: 9px; text-decoration: none; cursor: pointer; }
.pdf-dialog-toolbar button:disabled { color: var(--muted); background: var(--paper); cursor: default; opacity: .6; }
.pdf-dialog-toolbar span { min-width: 150px; color: var(--muted); font-size: 9px; text-align: center; }
.pdf-dialog iframe { width: 100%; min-height: 0; flex: 1; display: block; border: 0; background: var(--paper); }
.dialog-inner { padding: 40px; }
.dialog-inner h2 { margin: 0 0 22px; font-size: 32px; }
.dialog-close { width: 38px; height: 38px; position: absolute; z-index: 2; top: 14px; right: 14px; display: grid; place-items: center; background: var(--white); border: 1px solid var(--line); }
.search-dialog label { height: 52px; padding: 0 14px; display: flex; align-items: center; gap: 10px; background: var(--paper); border: 1px solid var(--line); }
.search-dialog input { width: 100%; border: 0; outline: 0; background: transparent; }
.search-results { margin-top: 18px; }
.search-result { width: 100%; min-height: 64px; padding: 12px 4px; display: grid; grid-template-columns: 110px 1fr 20px; gap: 12px; align-items: center; text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line); }
.search-result small { color: var(--red); font-size: 9px; }
.search-result strong { font-family: var(--serif); font-size: 15px; }
.search-placeholder { padding: 28px 0; color: var(--muted); text-align: center; font-size: 13px; }
.evidence-detail h2 { margin: 0; font-size: 29px; }
.evidence-detail > p { color: var(--ink-soft); font-size: 14px; }
.evidence-chain { margin: 20px 0 4px; padding: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--ink-soft); background: var(--blue-soft); font-size: 10px; }
.evidence-chain i { color: var(--red); font-style: normal; }
.evidence-meta { margin: 24px 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.evidence-meta div { padding: 12px 0; border-bottom: 1px solid var(--line); }
.evidence-meta dt { color: var(--muted); font-size: 10px; }
.evidence-meta dd { margin: 3px 0 0; font-size: 12px; }
.evidence-meta a { color: var(--green); text-underline-offset: 3px; }
.evidence-note { padding: 16px; background: var(--red-soft); border-left: 2px solid var(--red); font-size: 12px; }
.citation-box { padding: 15px; display: grid; grid-template-columns: 1fr auto; gap: 14px; align-items: center; background: var(--paper); border: 1px solid var(--line); }
.citation-box small { color: var(--red); font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.citation-box p { margin: 4px 0 0; font-size: 11px; line-height: 1.65; }
.citation-box button { min-height: 34px; padding: 0 12px; color: var(--white); background: var(--green); border: 0; font-size: 10px; }
.toast { position: fixed; z-index: 500; right: 22px; bottom: 22px; padding: 11px 15px; color: var(--white); background: var(--green); font-size: 12px; opacity: 0; transform: translateY(10px); pointer-events: none; transition: opacity .18s, transform .18s; }
.toast.show { opacity: 1; transform: translateY(0); }

@media (max-width: 1100px) {
  .header-primary { min-height: 68px; }
  .primary-nav { position: absolute; top: 68px; left: 0; right: 0; width: 100%; max-height: calc(100vh - 68px); padding: 12px 20px 22px; display: none; grid-template-columns: repeat(2, 1fr); overflow-y: auto; background: var(--paper); box-shadow: var(--shadow); border-top: 1px solid var(--line); }
  .primary-nav.open { display: grid; }
  .primary-nav a { justify-content: flex-start; padding: 12px; border-left: 0!important; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .menu-button { display: inline-flex; }
  .header-search span:last-child { display: none; }
  .header-search { width: 42px; padding: 0; }
  .home-panel { grid-template-columns: 1fr .7fr; }
  .home-copy { width: 100%; max-width: 520px; }
  .directory-grid { grid-template-columns: repeat(2, 1fr); }
  .institution-grid { grid-template-columns: 1fr 340px; }
  .person-cards { grid-template-columns: repeat(3, 1fr); }
  .profile-top { grid-template-columns: 1fr 270px; }
  .newspaper-titles { grid-template-columns: repeat(3, 1fr); }
  .newspaper-titles button:nth-child(3) { border-right: 0; }
  .newspaper-titles button:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .paper-row { grid-template-columns: 100px 130px 1fr 100px 28px; }
  .paper-row > :nth-child(5) { display: none; }
  .special-topic { grid-template-columns: 280px 1fr; }
  .evidence-levels { grid-template-columns: 1fr; }
  #entity-type-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 820px) {
  .shell { width: min(100% - 36px, 1240px); }
  .brand-copy small { display: none; }
  .page-view { padding-bottom: 68px; }
  .page-masthead { min-height: 210px; padding: 44px 0 34px; }
  .page-masthead h1 { font-size: 45px; }
  .page-number { font-size: 64px; }
  .section-intro { grid-template-columns: 1fr; gap: 14px; }
  .home-hero { padding-top: 200px; }
  .home-image { inset: 0 0 auto 0; width: 100%; height: 200px; background-position: 66% center; }
  .home-panel { min-height: auto; display: block; }
  .home-copy { width: 100%; padding: 30px 0 24px; }
  .home-copy::after { display: none; }
  .research-spine { grid-template-columns: 1fr; gap: 18px; }
  .research-spine-stats { border-top: 1px solid rgba(255,255,255,.18); }
  .research-spine-stats div:first-child { border-left: 0; }
  .home-copy h1 { font-size: 50px; }
  .home-academy-card { grid-template-columns: 1fr; }
  .home-academy-heading { padding: 22px; }
  .home-academy-facts { grid-template-columns: repeat(3, 1fr); }
  .home-about { grid-template-columns: 1fr; }
  .about-archive-image { min-height: 280px; }
  .directory-grid { grid-template-columns: repeat(2, 1fr); }
  .institution-grid { grid-template-columns: 1fr; }
  .relation-cards { grid-template-columns: repeat(2, 1fr); }
  .archive-layout, .people-layout { grid-template-columns: 1fr; }
  .archive-categories { display: grid; grid-template-columns: repeat(2, 1fr); }
  .archive-categories button { border-right: 1px solid var(--line); }
  .archive-categories button:nth-child(2n) { border-right: 0; }
  .records-table { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pdf-record-card { grid-template-columns: 46px minmax(0, 1fr); }
  .pdf-record-icon { width: 46px; height: 56px; }
  .pdf-record-action { grid-column: 2; width: fit-content; }
  .person-cards { grid-template-columns: repeat(3, 1fr); }
  .profile-top { grid-template-columns: 1fr; }
  .profile-links { grid-template-columns: repeat(2, 1fr); }
  .profile-resource-grid { grid-template-columns: repeat(3, 1fr); }
  .newspaper-titles { overflow-x: auto; display: flex; }
  .newspaper-titles button { min-width: 145px; border-bottom: 0!important; }
  .paper-row { grid-template-columns: 95px 1fr 95px 28px; }
  .paper-row > :nth-child(2) { display: none; }
  .paper-row.header span:nth-child(3) { grid-column: 2; }
  .special-topic { grid-template-columns: 1fr; }
  .activity-grid { grid-template-columns: repeat(2, 1fr); }
  .work-table { overflow-x: auto; }
  .work-row { min-width: 760px; }
  .timeline-track { overflow-x: auto; grid-template-columns: repeat(6, 130px); }
  .timeline-events { grid-template-columns: 1fr; }
  .map-layout { grid-template-columns: 1fr; }
  .research-map { min-height: 470px; }
  .graph-toolbar { grid-template-columns: minmax(180px, 1fr) auto; }
  .graph-filters { grid-column: 1 / -1; grid-row: 2; }
  .graph-workspace { grid-template-columns: 1fr; }
  .graph-canvas, .graph-canvas svg { min-height: 580px; }
  .graph-panel { min-height: 220px; border-left: 1px solid var(--line); border-top: 0; }
  .triple-row { grid-template-columns: 1fr 100px 1fr 80px; }
  .evidence-levels ol { grid-template-columns: repeat(3, 1fr); }
  .research-system-nav { grid-template-columns: repeat(3, 1fr); }
  .research-bibliography-heading { grid-template-columns: 1fr; gap: 12px; }
  #entity-type-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-inner { flex-direction: column; }
  .footer-inner > div:last-child { text-align: left; }
}

@media (max-width: 560px) {
  body { font-size: 15px; }
  .shell { width: min(100% - 28px, 1240px); }
  .brand-copy strong { font-size: 16px; }
  .header-tools { gap: 7px; }
  .header-search { display: none; }
  .primary-nav { grid-template-columns: 1fr; }
  .page-masthead { min-height: 190px; align-items: center; }
  .page-masthead h1 { font-size: 39px; }
  .page-number { display: none; }
  .lead { font-size: 16px; }
  .home-hero { padding-top: 150px; }
  .home-image { height: 150px; }
  .home-image { background-position: 70% center; }
  .home-copy { padding: 26px 0 22px; }
  .home-copy h1 { font-size: 40px; line-height: 1.25; letter-spacing: .08em; }
  .home-copy .lead { font-size: 14px; }
  .hero-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .hero-actions .primary-button { grid-column: 1 / -1; }
  .home-search { grid-template-columns: 20px 1fr; padding-right: 12px; }
  .home-search button { display: none; }
  .home-academy { padding-top: 24px; }
  .home-academy-heading { padding: 20px; }
  .home-academy-heading h2 { font-size: 32px; }
  .home-academy-facts { display: none; }
  .research-spine { padding: 20px; }
  .research-spine-stats { grid-template-columns: 1fr; }
  .research-spine-stats div { min-height: 50px; padding: 8px 0; border-left: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .home-directory { padding-top: 12px; }
  .directory-grid { grid-template-columns: 1fr 1fr; }
  .directory-grid a, .directory-grid button { min-height: 88px; padding: 12px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
  .directory-grid i { display: block; }
  .directory-grid strong { margin-top: 9px; font-size: 16px; }
  .directory-grid small { display: none; }
  .home-about { margin-top: 32px; }
  .about-archive-image { min-height: 170px; }
  .about-archive-copy { padding: 28px 22px; }
  .about-archive-copy h2 { font-size: 30px; }
  .about-archive-copy blockquote { font-size: 14px; }
  .metadata-list > div { grid-template-columns: 108px 1fr; padding: 13px 16px; }
  .metadata-list dd small { display: block; margin: 4px 0 0; }
  .critical-panel { padding: 24px; }
  .relation-cards { grid-template-columns: 1fr; }
  .archive-categories { grid-template-columns: 1fr; }
  .archive-categories button { border-right: 0; }
  .archive-toolbar { grid-template-columns: 1fr; }
  .archive-toolbar select { height: 44px; }
  .archive-topic { grid-template-columns: 1fr; }
  .records-table { grid-template-columns: 1fr; }
  .pdf-record-card { min-height: 148px; }
  .record-row { grid-template-columns: 70px 32px 1fr 28px; gap: 9px; }
  .record-status { display: none; }
  .person-cards { grid-template-columns: repeat(2, 1fr); }
  .person-profile { padding: 22px; }
  .profile-links { grid-template-columns: 1fr; }
  .profile-resources-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .profile-resource-grid { grid-template-columns: 1fr; }
  .paper-row { grid-template-columns: 82px 1fr 28px; gap: 9px; }
  .paper-row > :nth-child(4), .paper-row.header span:nth-child(4) { display: none; }
  .paper-row.header span:nth-child(3) { grid-column: 2; }
  .special-topic { padding: 25px; }
  .topic-flow { justify-content: flex-start; }
  .activity-grid { grid-template-columns: 1fr; }
  .timespace-switcher { margin-top: 22px; }
  .timespace-switcher button { min-height: 48px; font-size: 13px; }
  .view-tabs button, .debate-tabs button { min-width: 0; flex: 1; padding: 0 8px; }
  .research-map { min-height: 500px; }
  .map-marker span { max-width: 140px; white-space: normal; }
  .marker-academy { left: 32%; top: 34%; }
  .marker-paper { left: 9%; top: 60%; }
  .marker-concert { left: 52%; top: 72%; }
  .marker-school { left: 54%; top: 15%; }
  .graph-studio { padding-top: 32px; }
  .graph-toolbar { grid-template-columns: 1fr; gap: 9px; }
  .graph-filters { grid-column: auto; grid-row: auto; }
  .graph-actions { justify-content: flex-start; overflow-x: auto; }
  .graph-canvas, .graph-canvas svg { min-height: 500px; }
  .graph-panel { padding: 22px; }
  .graph-summary { align-items: flex-start; flex-direction: column; gap: 8px; }
  .triples-section { padding-top: 44px; }
  .triple-row { grid-template-columns: 1fr 72px 1fr; gap: 8px; font-size: 11px; }
  .triple-row button { grid-column: 1 / -1; width: fit-content; }
  .thesis-card { padding: 26px; }
  .thesis-card h2 { font-size: 24px; }
  .debate-section .panel-heading { align-items: flex-start; flex-direction: column; }
  .debate-tabs { padding: 0; overflow-x: auto; }
  .debate-tabs button { min-width: 88px; }
  .debate-content { padding: 24px; }
  .evidence-columns { grid-template-columns: 1fr; }
  .research-system-nav { grid-template-columns: repeat(2, 1fr); }
  .research-system-nav a { min-height: 96px; }
  .research-bibliography-heading { padding: 24px; }
  .research-bibliography-toolbar { grid-template-columns: 1fr; }
  .research-bibliography-toolbar label { border-right: 0; border-bottom: 1px solid var(--line); }
  .research-bibliography-toolbar label:last-child { border-bottom: 0; }
  .research-publication-list { grid-template-columns: 1fr; }
  .research-publication-card { padding: 22px; border-right: 0; }
  .research-preview-content { padding: 34px 22px 24px; }
  .research-preview-layout { grid-template-columns: 1fr; gap: 24px; }
  .research-preview-media { max-width: 330px; margin: 0 auto; }
  .research-preview-placeholder { min-height: 240px; }
  .research-preview-meta { grid-template-columns: 1fr; }
  .research-publication-card footer { align-items: flex-start; flex-direction: column; }
  .research-card-actions { width: 100%; justify-content: flex-start; }
  .pdf-dialog { width: calc(100% - 12px); height: calc(100vh - 12px); }
  .pdf-dialog-heading { padding: 14px 54px 12px 14px; align-items: flex-start; flex-direction: column; gap: 10px; }
  .pdf-dialog-heading h2 { font-size: 15px; }
  .pdf-dialog-toolbar { width: 100%; flex-wrap: wrap; }
  .pdf-dialog-toolbar span { min-width: 120px; flex: 1; }
  .evidence-levels { padding: 24px; }
  .evidence-levels ol { grid-template-columns: 1fr; }
  .evidence-levels li { min-height: 64px; display: grid; grid-template-columns: 30px 75px 1fr; align-items: center; border-left: 0; border-top: 1px solid var(--line); }
  .evidence-levels li .grade { margin: 0; }
  .evidence-levels li small { margin: 0; }
  #entity-type-grid { grid-template-columns: repeat(2, 1fr); }
  .dialog-inner { padding: 34px 22px 24px; }
  .evidence-meta { grid-template-columns: 1fr; }
  .citation-box { grid-template-columns: 1fr; }
}

@media print {
  .site-header, dialog { display: none!important; }
  .page-view { display: none!important; }
  .page-view.active { display: block!important; padding: 0; }
  body { background: #fff; }
  .paper-panel, .person-card { box-shadow: none; }
}

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