:root {
  --bg: #faf7f2;
  --bg-alt: #f4efe7;
  --surface: #fff;
  --fg: #1c1a17;
  --fg-soft: #3d3934;
  --muted: #8a817a;
  --accent: #7a5230;
  --forest: #2f5b4f;
  --border: rgba(28, 26, 23, 0.1);
  --border-strong: rgba(28, 26, 23, 0.18);
  --serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { background: var(--bg); color: var(--fg); font-family: var(--sans); line-height: 1.7; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
.topic-nav { position: sticky; top: 0; z-index: 20; background: rgba(250,247,242,.94); border-bottom: 1px solid var(--border); backdrop-filter: blur(12px); }
.topic-nav-inner { width: min(1120px, calc(100% - 48px)); min-height: 62px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.topic-brand { font-family: var(--serif); font-size: 15px; font-weight: 700; display: inline-flex; align-items: center; gap: 9px; }
.topic-brand::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.topic-back { color: var(--muted); font-size: 14px; }
.topic-back:hover { color: var(--accent); }
.topic-shell { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.topic-hero { padding: 90px 0 72px; border-bottom: 1px solid var(--border); }
.topic-kicker { color: var(--forest); font-size: 13px; font-weight: 700; margin-bottom: 20px; }
.topic-title { max-width: 900px; font-family: var(--serif); font-size: clamp(38px, 6vw, 68px); line-height: 1.16; font-weight: 700; }
.topic-subtitle { max-width: 820px; margin-top: 26px; color: var(--fg-soft); font-size: 20px; line-height: 1.75; }
.topic-intro { max-width: 760px; margin-top: 24px; color: var(--muted); font-size: 16px; }
.topic-section { padding: 76px 0; }
.section-head { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: end; margin-bottom: 34px; }
.section-label { color: var(--accent); font-size: 13px; font-weight: 700; margin-bottom: 12px; }
.section-title { font-family: var(--serif); font-size: clamp(28px, 4vw, 42px); line-height: 1.28; }
.section-note { color: var(--muted); font-size: 15px; justify-self: end; max-width: 480px; }
.topic-list { border-top: 1px solid var(--border-strong); }
.topic-item { display: grid; grid-template-columns: 72px minmax(0,1fr) auto; gap: 28px; align-items: center; min-height: 146px; padding: 28px 4px; border-bottom: 1px solid var(--border); }
.topic-item:hover .topic-item-title, .topic-item:hover .topic-read { color: var(--accent); }
.topic-num { color: var(--forest); font-family: var(--serif); font-size: 18px; }
.topic-item-title { font-family: var(--serif); font-size: 23px; line-height: 1.4; transition: color .2s; }
.topic-item-desc { margin-top: 8px; color: var(--muted); font-size: 14px; }
.topic-cluster { border-bottom: 1px solid var(--border); }
.topic-cluster > .topic-item { border-bottom: 0; }
.topic-sublist { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: -12px 0 0 104px; padding: 0 4px 26px; }
.topic-sub-label { flex: 0 0 100%; color: var(--muted); font-size: 12px; font-weight: 700; }
.topic-sublist a { color: var(--forest); font-size: 13px; line-height: 1.6; }
.topic-sublist a::after { content: " →"; }
.topic-sublist a:hover { color: var(--accent); }
.topic-read { color: var(--forest); font-size: 14px; white-space: nowrap; transition: color .2s; }
.extension { margin: 0 0 76px; padding: 28px 30px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 28px; border: 1px solid var(--border); background: rgba(255,255,255,.5); }
.extension-label { color: var(--muted); font-size: 12px; font-weight: 700; margin-bottom: 7px; }
.extension-title { font-family: var(--serif); font-size: 21px; }
.extension-desc { margin-top: 5px; color: var(--muted); font-size: 14px; }
.extension-meta { color: var(--accent); font-size: 14px; margin-top: 8px; }
.text-link { color: var(--forest); font-size: 14px; font-weight: 600; white-space: nowrap; }
.topic-footer { border-top: 1px solid var(--border); padding: 30px 24px; text-align: center; color: var(--muted); font-size: 13px; }

.article-shell { width: min(760px, calc(100% - 48px)); margin: 0 auto; padding: 64px 0 72px; }
.article-topic-link { display: inline-flex; color: var(--forest); font-size: 13px; font-weight: 700; margin-bottom: 20px; }
.article-title { font-family: var(--serif); font-size: clamp(32px, 5vw, 48px); line-height: 1.28; }
.article-lead { margin-top: 22px; color: var(--fg-soft); font-size: 18px; line-height: 1.8; }
.article-rule { margin: 38px 0; height: 1px; background: var(--border); }
.article-content { color: var(--fg-soft); font-size: 17px; line-height: 1.95; }
.article-content h2 { margin: 48px 0 20px; color: var(--fg); font-family: var(--serif); font-size: 27px; line-height: 1.45; }
.article-content h2:first-child { margin-top: 0; }
.article-content h3 { margin: 32px 0 14px; color: var(--fg); font-family: var(--serif); font-size: 20px; line-height: 1.55; }
.article-content p { margin: 0 0 18px; }
.article-model { margin: 34px 0 38px; padding: 24px; border: 1px solid var(--border-strong); border-radius: 8px; background: var(--bg-alt); }
.article-model-title { margin-bottom: 18px; color: var(--fg); font-family: var(--serif); font-size: 18px; font-weight: 700; }
.model-grid { display: grid; grid-template-columns: repeat(var(--model-cols, 4), minmax(0,1fr)); gap: 10px; }
.model-node { min-width: 0; padding: 14px 10px; border: 1px solid var(--border); background: var(--surface); color: var(--fg); text-align: center; font-size: 14px; line-height: 1.55; }
.model-arrow { display: flex; align-items: center; justify-content: center; color: var(--accent); font-weight: 700; }
.model-caption { margin-top: 14px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.model-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.model-column { padding: 18px; border: 1px solid var(--border); background: var(--surface); }
.model-column strong { display: block; margin-bottom: 10px; color: var(--forest); font-size: 16px; }
.model-column span { display: block; color: var(--fg-soft); font-size: 14px; line-height: 1.75; }
.draft-note { padding: 28px 30px; border-left: 3px solid var(--accent); background: var(--bg-alt); }
.draft-note strong { display: block; font-family: var(--serif); font-size: 20px; margin-bottom: 8px; }
.draft-note p { color: var(--muted); font-size: 15px; }
.related-reading { margin-top: 44px; }
.related-reading h2 { font-family: var(--serif); font-size: 21px; margin-bottom: 14px; }
.related-reading a { display: block; padding: 13px 0; border-bottom: 1px solid var(--border); color: var(--forest); font-size: 14px; }
.article-nav { margin-top: 62px; padding-top: 26px; border-top: 1px solid var(--border-strong); display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; align-items: center; }
.article-nav a { color: var(--muted); font-size: 13px; }
.article-nav a:hover { color: var(--accent); }
.article-nav .next { text-align: right; }
.article-nav .all { color: var(--forest); font-weight: 600; text-align: center; }

.deep-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--border-strong); }
.deep-group { padding: 34px 28px 38px 0; border-bottom: 1px solid var(--border); }
.deep-group:nth-child(even) { padding-left: 28px; padding-right: 0; border-left: 1px solid var(--border); }
.deep-type { color: var(--accent); font-size: 12px; font-weight: 700; margin-bottom: 14px; }
.deep-title { font-family: var(--serif); font-size: 22px; line-height: 1.4; }
.deep-desc { min-height: 52px; margin-top: 10px; color: var(--muted); font-size: 14px; }
.deep-meta { margin-top: 18px; color: var(--fg-soft); font-size: 14px; }
.deep-link { display: inline-block; margin-top: 14px; color: var(--forest); font-size: 14px; font-weight: 600; }

@media (max-width: 700px) {
  .topic-nav-inner, .topic-shell, .article-shell { width: min(100% - 40px, 1120px); }
  .topic-nav-inner { min-height: 56px; }
  .topic-brand { font-size: 14px; }
  .topic-hero { padding: 58px 0 48px; }
  .topic-title { font-size: 38px; }
  .topic-subtitle { font-size: 17px; }
  .topic-section { padding: 52px 0; }
  .section-head { grid-template-columns: 1fr; gap: 12px; }
  .section-note { justify-self: start; }
  .topic-item { grid-template-columns: 44px minmax(0,1fr); gap: 14px; min-height: 0; padding: 24px 0; }
  .topic-item-title { font-size: 19px; }
  .topic-read { grid-column: 2; }
  .topic-sublist { margin: -8px 0 0 52px; padding: 0 0 24px; gap: 8px 0; }
  .topic-sublist a { flex: 0 0 100%; }
  .extension { grid-template-columns: 1fr; padding: 24px 20px; margin-bottom: 54px; }
  .article-shell { padding: 42px 0 56px; }
  .article-title { font-size: 31px; }
  .article-lead { font-size: 16px; }
  .article-content { font-size: 16px; line-height: 1.9; }
  .article-content h2 { margin-top: 40px; font-size: 23px; }
  .article-content h3 { margin-top: 28px; font-size: 18px; }
  .article-model { padding: 20px 16px; }
  .model-grid { grid-template-columns: 1fr; }
  .model-arrow { min-height: 22px; transform: rotate(90deg); }
  .model-compare { grid-template-columns: 1fr; }
  .draft-note { padding: 22px 20px; }
  .article-nav { grid-template-columns: 1fr 1fr; }
  .article-nav .all { grid-column: 1 / -1; grid-row: 2; }
  .deep-grid { grid-template-columns: 1fr; }
  .deep-group, .deep-group:nth-child(even) { padding: 28px 0; border-left: 0; }
  .deep-desc { min-height: 0; }
}

.article-meta { margin: 16px 0; color: var(--muted, #68737a); font-size: 14px; line-height: 1.8; }
.article-meta a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
