:root {
  color-scheme: light;
  --paper: #fbfbf7;
  --ink: #182026;
  --muted: #65717b;
  --line: #ead9cf;
  --ember: #c6241e;
  --flame: #ef6b22;
  --gold: #d59b2a;
  --blue: #315f78;
  --wash: #fff0e8;
  --shadow: 0 18px 50px rgba(111, 30, 18, .14);
  font-family: "Inter", "Segoe UI", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); line-height: 1.65; overflow-x: hidden; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
.campus-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 14px clamp(18px, 5vw, 64px); background: #fffaf5; border-bottom: 1px solid var(--line); }
.campus-mark { display: inline-flex; gap: 12px; align-items: center; text-decoration: none; min-width: 220px; }
.campus-mark strong, .campus-mark small { display: block; }
.campus-mark small { color: var(--muted); font-size: 12px; }
.mark-grid { width: 34px; height: 34px; border: 2px solid var(--ink); background: radial-gradient(circle at 66% 36%, var(--gold) 0 18%, transparent 19%), linear-gradient(135deg, #fff 0 35%, #ffe1cb 36% 58%, var(--flame) 59% 72%, var(--ember) 73%); box-shadow: 5px 5px 0 var(--gold); }
.site-menu { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 18px; align-items: center; font-size: 14px; }
.site-menu a { text-decoration: none; color: #28343c; }
.site-menu a:hover { color: var(--ember); }
.hero { min-height: min(680px, calc(100vh - 78px)); display: grid; align-items: end; padding: clamp(24px, 6vw, 72px); background-image: linear-gradient(90deg, rgba(10, 16, 20, .78), rgba(10, 16, 20, .34) 44%, rgba(10, 16, 20, .08)), var(--hero-image); background-size: cover; background-position: center; color: #fff; }
.hero-copy { max-width: 820px; min-width: 0; padding-bottom: clamp(24px, 7vh, 86px); }
.eyebrow { margin: 0 0 12px; color: var(--ember); text-transform: uppercase; font-size: 12px; letter-spacing: .12em; font-weight: 800; }
.hero .eyebrow { color: #ffd36b; }
h1, h2, h3 { line-height: 1.12; margin: 0 0 16px; letter-spacing: 0; }
h1 { font-size: clamp(36px, 7vw, 72px); max-width: 980px; overflow-wrap: anywhere; }
.plain-hero h1, .article-shell h1 { font-size: clamp(34px, 5vw, 58px); }
h2 { font-size: clamp(25px, 3.4vw, 42px); }
h3 { font-size: 22px; }
p { margin: 0 0 16px; }
p, span, a, dd, li { overflow-wrap: anywhere; }
.hero p { max-width: 740px; font-size: 18px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hero-actions a, .text-link, .track-grid a, .route-links a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; background: #fff; color: var(--ink); text-decoration: none; border: 1px solid rgba(255,255,255,.4); }
.hero-actions a + a { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.status-band { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.status-band div { padding: 22px clamp(18px, 4vw, 44px); border-right: 1px solid var(--line); }
.status-band div { min-width: 0; }
.status-band div:last-child { border-right: 0; }
.status-band strong, .status-band span { display: block; }
.status-band span { color: var(--muted); font-size: 14px; }
.split-ledger, .research-tracks, .article-river, .faq-strip, .plain-hero, .method-panel, .topic-columns, .hsyun-lab, .article-shell, .archive-map, .link-matrix, .legal-copy, .recovered-route, .article-index-list { width: min(1180px, calc(100% - 36px)); margin: 0 auto; }
.split-ledger { display: grid; grid-template-columns: minmax(0, .88fr) minmax(320px, .72fr); gap: clamp(34px, 6vw, 82px); padding: 88px 0; }
.ledger-list { list-style: none; padding: 0; margin: 0; border-left: 3px solid var(--flame); }
.ledger-list li { display: grid; grid-template-columns: 96px 1fr; gap: 18px; padding: 0 0 30px 24px; position: relative; }
.ledger-list li::before { content: ""; position: absolute; left: -9px; top: 7px; width: 15px; height: 15px; background: var(--paper); border: 3px solid var(--ember); }
.ledger-list time { font-weight: 800; color: var(--blue); }
.research-tracks { padding: 74px 0; border-top: 1px solid var(--line); }
.track-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 28px; border: 1px solid var(--line); background: #fff; }
.track-grid a { display: block; min-height: 190px; padding: 24px; border: 0; border-right: 1px solid var(--line); }
.track-grid a:last-child { border-right: 0; }
.track-grid strong, .track-grid span { display: block; }
.track-grid span { color: var(--muted); margin-top: 12px; }
.article-river { display: grid; grid-template-columns: 260px 1fr; gap: 40px; padding: 74px 0; border-top: 1px solid var(--line); }
.article-river.compact { grid-template-columns: 1fr; }
.article-river article { padding: 0 0 26px; margin-bottom: 26px; border-bottom: 1px solid var(--line); }
.article-river time, .article-index-list time { color: var(--ember); font-weight: 800; font-size: 13px; }
.article-river h3, .article-river h2, .article-index-list h2 { margin-top: 6px; }
.faq-strip { padding: 74px 0 92px; border-top: 1px solid var(--line); }
details { background: #fff; border: 1px solid var(--line); padding: 18px 22px; margin-top: 12px; }
summary { cursor: pointer; font-weight: 800; }
.plain-hero { padding: 82px 0 48px; }
.plain-hero p { max-width: 860px; }
.method-panel { padding: 30px; background: #fff; border-left: 6px solid var(--flame); box-shadow: var(--shadow); }
.method-panel ul { margin: 18px 0 0; padding-left: 22px; }
.topic-columns, .archive-map { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; padding: 42px 0 82px; }
.topic-columns article, .archive-map article { background: #fff; border: 1px solid var(--line); padding: 24px; min-height: 240px; }
.hsyun-lab { display: grid; grid-template-columns: 1fr minmax(320px, .64fr); gap: 34px; padding: 30px 0 70px; }
.hsyun-lab dl { margin: 0; background: #581510; color: #fff; padding: 26px; }
.hsyun-lab dt { color: #ffd36b; font-weight: 800; }
.hsyun-lab dd { margin: 0 0 18px; color: #d9efef; }
.link-matrix { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding-bottom: 78px; }
.link-matrix a { background: #fff; border: 1px solid var(--line); padding: 16px; text-decoration: none; }
.article-shell { padding: 46px 0 90px; }
.crumbs { display: flex; flex-wrap: wrap; gap: 9px; color: var(--muted); font-size: 14px; margin-bottom: 34px; }
.article-deck { max-width: 860px; font-size: 19px; color: #37444d; }
.date-row { display: flex; flex-wrap: wrap; gap: 0; margin: 28px 0 0; border: 1px solid var(--line); width: fit-content; background: #fff; }
.date-row div { padding: 12px 18px; border-right: 1px solid var(--line); }
.date-row div:last-child { border-right: 0; }
.date-row dt { font-size: 12px; color: var(--muted); text-transform: uppercase; font-weight: 800; }
.date-row dd { margin: 0; font-weight: 800; }
.article-grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 54px; margin-top: 48px; }
.article-aside { position: sticky; top: 92px; align-self: start; padding: 22px; background: var(--wash); border: 1px solid var(--line); }
.article-aside a { display: block; margin-top: 12px; font-weight: 800; }
.article-body { max-width: 790px; }
.article-body section { margin-bottom: 38px; }
.inline-note, .legal-copy, .recovered-route { background: #fff; border: 1px solid var(--line); padding: 24px; }
.article-index-list { padding-bottom: 86px; }
.article-index-list article { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 28px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.article-index-list span { display: block; color: var(--muted); margin-top: 4px; }
.archive-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-bottom: 26px; }
.archive-card { background: #fff; border: 1px solid var(--line); padding: 24px; }
.archive-card code, .archive-facts code { overflow-wrap: anywhere; }
.button-link { display: inline-block; margin-top: 8px; padding: 12px 16px; background: var(--ink); color: #fff; text-decoration: none; font-weight: 800; }
.archive-facts { background: var(--wash); border: 1px solid var(--line); padding: 26px; margin-bottom: 28px; }
.archive-facts dl { margin: 0; display: grid; gap: 10px; }
.archive-facts div { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 16px; padding-bottom: 10px; border-bottom: 1px solid rgba(17, 24, 28, .12); }
.archive-facts dt { font-weight: 800; color: var(--muted); }
.archive-facts dd { margin: 0; }
.route-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.site-footer { display: flex; justify-content: space-between; gap: 34px; padding: 34px clamp(18px, 5vw, 64px); background: #172126; color: #f4f7f5; }
.site-footer p { color: #c4d0d2; max-width: 680px; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 16px; align-content: flex-start; }
.site-footer a { color: #fff; }
@media (max-width: 860px) {
  .campus-header { align-items: flex-start; flex-direction: column; }
  .site-menu { justify-content: flex-start; width: 100%; }
  .hero { min-height: 620px; padding: 24px 18px; background-image: linear-gradient(0deg, rgba(10, 16, 20, .84), rgba(10, 16, 20, .28)), var(--hero-image); }
  .hero-copy { max-width: 320px; min-width: 0; width: calc(100vw - 64px); }
  .hero p { max-width: 100%; }
  h1 { font-size: 28px; max-width: 100%; overflow-wrap: anywhere; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions a { width: 100%; }
  .status-band, .split-ledger, .track-grid, .article-river, .topic-columns, .hsyun-lab, .archive-map, .link-matrix, .article-grid, .article-index-list article, .archive-grid, .site-footer { grid-template-columns: 1fr; display: grid; }
  .archive-facts div { grid-template-columns: 1fr; gap: 4px; }
  .status-band div, .track-grid a { border-right: 0; border-bottom: 1px solid var(--line); }
  .track-grid a { min-height: 0; }
  .split-ledger { padding: 56px 0; }
  .article-aside { position: static; }
  .date-row { width: 100%; }
  .date-row div { flex: 1 1 160px; }
  .site-footer { display: grid; }
}
