/* ════════════════════════════════════════════════════════════
   republic-baseline.css — 民国副刊基础元素统一层（2026-08-24）
   目标：与主刊首页同一套基础元素——字体、字阶、行高、颜色、间距、卡片、题头。
   各栏目保留身份（标题文字、朱砂点缀、报头宣纸带、日记信笺），基础元素不再各自为政。
   必须在每个 /republic* 入口的 <link> 列表**压轴**加载（在 republic-unified.css 之后）。
   规则来源：主刊 tokens（globals.css / fsmag-tokens.css）与 fsmag-front.css 的 .fsh 题头。
   ════════════════════════════════════════════════════════════ */

/* ── 0. 基线：字体 / 行高 / 页底 ─────────────────────────────── */
.republic-page,
.republic-subpage,
.minguo-page {
  --rb-ink: var(--fsmag-color-ink, #202020);
  --rb-ink-soft: var(--fsmag-color-ink-soft, #55504A);
  --rb-ink-muted: var(--fsmag-color-ink-muted, #746E68);
  --rb-ink-subtle: var(--fsmag-color-ink-subtle, #A69E93);
  --rb-red: var(--fsmag-color-deep, #8F2A24);
  --rb-rule: var(--edition-rule, #BE3B2E);
  --rb-border: var(--fsmag-color-border, #DAD4C9);
  --rb-border-soft: var(--fsmag-color-border-soft, #E8E3DA);
  --rb-paper: #FFFFFF;
  --rb-page: var(--fsmag-color-paper-warm, #F7F4EE);
  --rb-surface-soft: var(--fsmag-color-surface-soft, #F0EDE5);
  --rb-title: var(--fsmag-font-title, "Noto Serif SC", "Source Han Serif SC", "Songti SC", Georgia, serif);
  --rb-eng: var(--fsmag-font-eng, "Montserrat", -apple-system, "Segoe UI", sans-serif);
  --rb-mono: var(--fsmag-font-mono, "JetBrains Mono", "SF Mono", Menlo, monospace);
  --rb-sans: var(--fsmag-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans GB", "PingFang SC", "Microsoft YaHei", sans-serif);
  --rb-gap: 3.2rem;              /* 区块间距（主刊 section 节奏） */
  --rb-shell: 1180px;
  --rb-pad: clamp(16px, 4vw, 32px);
  background: var(--rb-page);
  color: var(--rb-ink);
  font-family: var(--rb-sans);
  line-height: 1.72;
  letter-spacing: 0.012em;
}
/* 装饰体（Ma Shan Zheng 书法体）全面退役：副刊内一律衬线 */
.republic-page .font-song,
.republic-subpage .font-song,
.republic-topbar-brand-cn,
.republic-footer-title,
.diary-title.font-song,
.diary-zone .seal {
  font-family: var(--rb-title, "Noto Serif SC", serif) !important;
}

/* ── 1. 版心与区块节奏 ───────────────────────────────────────── */
.republic-page .read-shell {
  max-width: var(--rb-shell);
  margin: 0 auto;
  padding: 0 var(--rb-pad);
}
.republic-page .read-shell > * + *,
.republic-page .read-lower > * + * { margin-top: var(--rb-gap); }
.republic-page .read-lower { margin-top: var(--rb-gap); padding-bottom: 1rem; }

/* ── 2. 题头：与主刊 .fsh 同骨架 ───────────────────────────── */
.rsh { display: block; margin-bottom: 1.2rem; text-decoration: none; color: inherit; }
.rsh .fsmag-dbl-rule { border-color: var(--rb-rule); }
.rsh-row { display: flex; align-items: baseline; gap: 1rem; padding-top: 0.65rem; min-width: 0; }
.rsh h2 {
  font-family: var(--rb-title);
  font-size: clamp(1.02rem, 1.5vw, 1.2rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.25;
  color: var(--rb-ink);
  margin: 0;
}
.rsh .fsmag-kicker { position: relative; top: -0.05em; color: var(--rb-red); white-space: nowrap; }
.rsh-more {
  margin-left: auto;
  font-family: var(--rb-title);
  font-size: 0.85rem;
  color: var(--rb-ink-muted);
  white-space: nowrap;
  transition: color .18s ease;
}
.rsh.is-link:hover h2, .rsh.is-link:hover .rsh-more { color: var(--rb-red); }
@media (max-width: 640px) {
  .rsh-row { flex-wrap: wrap; gap: 0.35rem 0.8rem; }
  .rsh-more { margin-left: 0; flex-basis: 100%; }
}

/* ── 3. 报头（宣纸带保留为身份，尺寸并入主刊字阶） ────────── */
.republic-page .hero--republic-xuan { padding: 2.4rem 0 2rem; }
.republic-page .hero--republic-xuan .hero-inner { max-width: var(--rb-shell); padding: 0 var(--rb-pad); }
.republic-page .hero--republic-xuan .hero-en {
  font-family: var(--rb-eng);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rb-red);
  margin-bottom: 0.6rem;
}
.republic-page .hero--republic-xuan .hero-title {
  font-family: var(--rb-title);
  font-size: clamp(2.2rem, 4.6vw, 3.1rem);
  letter-spacing: 0.1em;
  line-height: 1.12;
  color: var(--rb-ink);
}
.republic-page .hero--republic-xuan .hero-title .accent { color: var(--rb-red); }
.republic-page .hero--republic-xuan .hero-desc {
  font-family: var(--rb-title);
  font-size: 0.95rem;
  line-height: 1.85;
  color: var(--rb-ink-soft);
  max-width: 34em;
  margin-top: 0.7rem;
}
.republic-page .hero--republic-xuan .hero-date {
  font-family: var(--rb-mono);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  color: var(--rb-ink-subtle);
  margin-top: 0.8rem;
}

/* ── 4. 刊首语：白卡收紧 ─────────────────────────────────── */
.republic-page .opening-note {
  background: var(--rb-paper);
  border: 1px solid var(--rb-border);
  border-radius: 2px;
  padding: 1.3rem 1.6rem 1.2rem;
  box-shadow: none;
  max-width: none;
  margin-top: 2.4rem;
}
.republic-page .opening-kicker {
  font-family: var(--rb-eng);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rb-red);
  margin-bottom: 0.6rem;
}
.republic-page .opening-text {
  font-family: var(--rb-title);
  font-size: 0.95rem;
  line-height: 1.95;
  color: var(--rb-ink-soft);
  max-width: 44em;
  margin: 0;
  white-space: pre-line;
}

/* ── 5. 日记区：信笺保留，外框/字阶并入基线 ───────────────── */
.republic-page .diary-zone {
  background: var(--rb-paper);
  border: 1px solid var(--rb-border);
  border-radius: 2px;
  box-shadow: none;
  padding: 1.2rem 1.4rem 1.3rem;
}
.republic-page .diary-zone .rsh { margin-bottom: 1rem; }
.republic-page .diary-profile { background: var(--rb-paper); border: 1px solid var(--rb-border-soft); box-shadow: none; }
.republic-page .diary-avatar { width: 72px; height: 72px; }
.republic-page .diary-name { font-family: var(--rb-title); font-size: 0.95rem; color: var(--rb-ink); letter-spacing: 0.06em; }
.republic-page .diary-bio { font-size: 0.8rem; line-height: 1.7; color: var(--rb-ink-muted); }
.republic-page .diary-text { font-family: var(--rb-title); font-size: 0.98rem; line-height: 1.95; color: var(--rb-ink); }
.republic-page .diary-year-jump a,
.republic-page .diary-year-jump button,
.republic-page .diary-btn {
  font-family: var(--rb-mono);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  border: 1px solid var(--rb-border);
  color: var(--rb-ink-soft);
  background: var(--rb-paper);
  border-radius: 2px;
}
.republic-page .diary-year-jump .active,
.republic-page .diary-year-jump [aria-current],
.republic-page .diary-btn:hover { border-color: var(--rb-red); color: var(--rb-red); }
.republic-page .diary-counter,
.republic-page .diary-tag,
.republic-page .diary-date-pill { font-family: var(--rb-mono); font-size: 0.7rem; letter-spacing: 0.08em; color: var(--rb-ink-subtle); }

/* ── 6. 论与纪：头条 + 编年目录行（主刊「洞见」同款） ─────── */
.re-date {
  font-family: var(--rb-mono);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  color: var(--rb-ink-subtle);
  white-space: nowrap;
}
.re-more { font-family: var(--rb-title); font-size: 0.85rem; color: var(--rb-red); }
.re-lead {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 1.6rem;
  align-items: center;
  text-decoration: none;
  color: inherit;
  background: var(--rb-paper);
  border: 1px solid var(--rb-border);
  border-radius: 2px;
  padding: 1rem;
}
.re-lead-pic { aspect-ratio: 3 / 2; overflow: hidden; background: var(--rb-surface-soft); min-width: 0; }
.re-lead-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.re-lead-body { min-width: 0; }
.re-lead-title {
  font-family: var(--rb-title);
  font-size: clamp(1.15rem, 1.8vw, 1.45rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.01em;
  color: var(--rb-ink);
  margin: 0.4rem 0 0.5rem;
  text-wrap: pretty;
}
.re-lead-dek { font-size: 0.9rem; line-height: 1.8; color: var(--rb-ink-soft); margin: 0 0 0.7rem; }
.re-lead:hover .re-lead-title { color: var(--rb-red); }
.re-rows { list-style: none; margin: 0; padding: 0; }
.re-lead + .re-rows { margin-top: 0.4rem; }
.re-rows li { border-bottom: 1px solid var(--rb-border-soft); }
.re-rows li:last-child { border-bottom: 0; }
.re-row {
  display: grid;
  grid-template-columns: 6.2rem minmax(0, 1fr);
  gap: 1rem;
  align-items: baseline;
  padding: 0.75rem 0.2rem;
  text-decoration: none;
  color: inherit;
}
.re-row-main { min-width: 0; display: flex; flex-direction: column; gap: 0.15rem; }
.re-row-title { font-family: var(--rb-title); font-size: 1rem; font-weight: 700; line-height: 1.5; color: var(--rb-ink); }
.re-row:hover .re-row-title { color: var(--rb-red); }
.re-row-dek {
  font-size: 0.84rem; line-height: 1.7; color: var(--rb-ink-muted);
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;
}
.re-rows--compact .re-row { padding: 0.6rem 0.2rem; }
.re-rows--compact .re-row-title { font-size: 0.95rem; font-weight: 600; }
@media (max-width: 720px) {
  .re-lead { grid-template-columns: 1fr; gap: 0.9rem; }
  .re-row { grid-template-columns: 1fr; gap: 0.15rem; padding: 0.7rem 0; }
}

/* ── 7. 支线带：≤3 张小图卡 + 文字目录 ──────────────────── */
.re-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.re-cards[data-count="1"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.re-card {
  text-decoration: none; color: inherit; min-width: 0;
  background: var(--rb-paper); border: 1px solid var(--rb-border); border-radius: 2px; padding: 0.6rem;
}
.re-card-pic { aspect-ratio: 3 / 2; overflow: hidden; background: var(--rb-surface-soft); margin-bottom: 0.55rem; }
.re-card-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.re-strip[data-tone="fig"] .re-card-pic { aspect-ratio: 4 / 5; }
.re-strip[data-tone="fig"] .re-card-pic img { object-position: center 18%; }
.re-card-title { font-family: var(--rb-title); font-size: 0.95rem; font-weight: 600; line-height: 1.5; color: var(--rb-ink); margin-top: 0.15rem; text-wrap: pretty; }
.re-card:hover .re-card-title { color: var(--rb-red); }
.re-cards + .re-rows { margin-top: 0.6rem; border-top: 1px solid var(--rb-border-soft); }
/* 生成式文字封面（.fsmag-cover-frame）保持完整显示 */
.re-card-pic .fsmag-cover-img, .re-lead-pic .fsmag-cover-img { object-fit: contain !important; background: var(--rb-surface-soft); }
@media (max-width: 720px) {
  .re-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; }
  .re-strip[data-tone="fig"] .re-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .re-card { padding: 0.45rem; }
  .re-card-title { font-size: 0.9rem; }
}

/* ── 8. 系列专题两卡 ────────────────────────────────────── */
.re-special-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.re-special {
  display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 1rem; align-items: center;
  text-decoration: none; color: inherit;
  background: var(--rb-paper); border: 1px solid var(--rb-border); border-radius: 2px; padding: 0.8rem;
}
.re-special-pic { aspect-ratio: 4 / 3; overflow: hidden; background: var(--rb-surface-soft); }
.re-special-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.re-special-body { min-width: 0; }
.re-special-title { font-family: var(--rb-title); font-size: 1.05rem; font-weight: 700; line-height: 1.4; color: var(--rb-ink); margin: 0.3rem 0 0.35rem; }
.re-special:hover .re-special-title { color: var(--rb-red); }
.re-special-desc {
  font-size: 0.84rem; line-height: 1.7; color: var(--rb-ink-soft); margin: 0 0 0.4rem;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.re-special-meta { font-family: var(--rb-mono); font-size: 0.7rem; letter-spacing: 0.06em; color: var(--rb-ink-subtle); }
@media (max-width: 860px) { .re-special-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .re-special { grid-template-columns: 110px minmax(0, 1fr); } }

/* ── 9. 报头栏 / 页脚：装饰体退役、色与线并入主刊 ────────── */
.republic-topbar { background: var(--rb-paper); border-bottom: 1px solid var(--rb-border); }
.republic-topbar-brand-cn { font-size: 1.2rem; font-weight: 700; letter-spacing: 0.08em; color: var(--rb-red); }
.republic-topbar-brand-shoulder { border-left-color: var(--rb-border); }
.republic-topbar-brand-shoulder-cn { color: var(--rb-ink-muted); }
.republic-topbar-brand-en { color: var(--rb-ink-subtle); }
.republic-topbar-menu a { font-family: var(--rb-title); font-size: 0.92rem; color: var(--rb-ink-soft); }
.republic-topbar-menu a.is-active, .republic-topbar-menu a:hover { color: var(--rb-red); }
.republic-footer { background: var(--rb-surface-soft); color: var(--rb-ink-soft); font-family: var(--rb-sans); margin-top: var(--rb-gap); }
.republic-footer-rule { border-top-color: var(--rb-rule); border-bottom-color: var(--rb-rule); }
.republic-footer-inner { max-width: var(--rb-shell); padding-left: var(--rb-pad); padding-right: var(--rb-pad); }
.republic-footer-eyebrow { color: var(--rb-red); font-family: var(--rb-eng); font-weight: 600; letter-spacing: 0.22em; }
.republic-footer-title { font-size: 1.1rem; font-weight: 700; color: var(--rb-ink); letter-spacing: 0.06em; }
.republic-footer-tagline { color: var(--rb-ink-muted); }
.republic-footer-nav a, .republic-footer-aux a, .republic-footer-link { color: var(--rb-ink-soft); }
.republic-footer-nav a:hover, .republic-footer-aux a:hover { color: var(--rb-red); }
.republic-footer-baseline { color: var(--rb-ink-subtle); font-family: var(--rb-mono); font-size: 0.7rem; letter-spacing: 0.08em; }

/* ════════════════════════════════════════════════════════════
   二级页统一（faces / vista / lianda / lizhuang / lurk / shenbao / lurk 子页）
   ════════════════════════════════════════════════════════════ */

/* ── 10. 版心统一 1180 + 页底同主刊 ─────────────────────────── */
.faces-shell, .vista-shell,
.republic-subpage .read-shell,
.minguo-page,
.lurk-script-shell {
  max-width: var(--rb-shell, 1180px);
  margin-left: auto; margin-right: auto;
  padding-left: var(--rb-pad, clamp(16px, 4vw, 32px));
  padding-right: var(--rb-pad, clamp(16px, 4vw, 32px));
  background: transparent;
  border-left: 0; border-right: 0;
}
.faces-page, .vista-page, .republic-subpage, .minguo-page { background: var(--rb-page, #F7F4EE); }
.minguo-page { color: var(--rb-ink); font-family: var(--rb-sans); line-height: 1.72; }

/* ── 11. 大标统一字阶（并入主刊 hero 尺度；unified 的 4.5rem 收一档） ── */
.faces-hero h1, .vista-hero h1,
.republic-page .hero--republic-sub .hero-title,
.republic-subpage .hero-title,
.republic-page .fsmag-roc-paper-hero .hero-title,
.minguo-hero-title {
  font-family: var(--rb-title);
  font-size: clamp(2.2rem, 4.6vw, 3.1rem);
  letter-spacing: 0.1em;
  line-height: 1.12;
  font-weight: 700;
  color: var(--rb-ink);
  margin-bottom: 0.4rem;
}
.faces-hero-sub, .vista-hero-sub, .faces-kicker, .vista-kicker,
.republic-page .hero-en, .republic-subpage .hero-en, .minguo-hero-kicker,
.republic-page [class$="-kicker"], .republic-subpage [class$="-kicker"], .minguo-page [class$="-kicker"],
.republic-page [class$="-en"], .republic-subpage [class$="-en"] {
  font-family: var(--rb-eng);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rb-red);
}
.faces-hero-lede, .vista-hero-lede,
.republic-page .hero-desc, .republic-subpage .hero-desc, .minguo-hero-desc,
.faces-parts-lede, .vista-parts-lede {
  font-family: var(--rb-title);
  font-size: 0.95rem;
  line-height: 1.85;
  color: var(--rb-ink-soft);
  max-width: 40em;
  font-style: normal;
  text-align: left;
  margin-left: 0;
}
.faces-hero, .vista-hero, .republic-subpage .hero, .minguo-hero,
.republic-page .fsmag-roc-paper-hero { padding-top: 2.4rem; padding-bottom: 2rem; }
.faces-hero, .vista-hero { border-bottom: 1px solid var(--rb-border); box-shadow: none; }
.hero-followup { margin-top: 1rem; }
.hero-followup-pull { font-family: var(--rb-title); font-size: 0.95rem; color: var(--rb-ink-soft); border-left: 2px solid var(--rb-rule); }
.hero-followup-meta { font-family: var(--rb-mono); font-size: 0.7rem; letter-spacing: 0.1em; color: var(--rb-ink-subtle); }
.faces-hero-actions a, .vista-hero-actions a, .hero-badge {
  font-family: var(--rb-title); font-size: 0.82rem; border: 1px solid var(--rb-border-strong, #C8C1B4);
  color: var(--rb-ink-soft); background: var(--rb-paper); border-radius: 2px; padding: 0.35rem 0.8rem;
}
.faces-hero-actions a:hover, .vista-hero-actions a:hover { border-color: var(--rb-red); color: var(--rb-red); }

/* ── 12. 栏目题头统一：双线规 + 衬线小标 + 英文眉（同主刊 .fsh） ─── */
.faces-section-head, .vista-section-head,
.subpage-section-head,
.republic-page .section-head,
.intel-section-head,
.minguo-series-head,
.lurk-search-head {
  position: relative;
  border-top: 3px solid var(--rb-rule);
  border-bottom: 0;
  padding-top: 0.75rem;
  margin-bottom: 1.2rem;
  display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap;
  box-shadow: none;
}
.faces-section-head::before, .vista-section-head::before,
.subpage-section-head::before, .republic-page .section-head::before,
.intel-section-head::before, .minguo-series-head::before, .lurk-search-head::before {
  content: ""; position: absolute; left: 0; right: 0; top: 2px;
  border-top: 1px solid var(--rb-rule);
}
.faces-section-head h2, .vista-section-head h2,
.subpage-section-head h2, .republic-page .section-head h2,
.intel-section-head h2, .minguo-series-title, .lurk-search-head h2 {
  font-family: var(--rb-title) !important;
  font-size: clamp(1.02rem, 1.5vw, 1.2rem) !important;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.25;
  color: var(--rb-ink) !important;
  margin: 0;
}
.faces-section-head span, .vista-section-head span,
.subpage-section-head span, .subpage-section-head .en, .republic-page .section-head span,
.intel-section-head span, .minguo-series-en, .minguo-series-sub {
  font-family: var(--rb-eng); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--rb-red); position: relative; top: -0.05em;
}
.minguo-series-head { border-color: var(--rb-rule) !important; align-items: center; }
.minguo-series-id {
  background: transparent !important; color: var(--rb-red) !important; border: 1px solid var(--rb-red);
  width: 1.9rem; height: 1.9rem; font-size: 0.85rem; font-family: var(--rb-eng); font-weight: 600;
}
.minguo-series-count, .minguo-series-desc { font-size: 0.84rem; color: var(--rb-ink-muted); }
.minguo-series-desc { font-family: var(--rb-title); }
/* 申报 / 潜伏走进民国 的系列彩色（蓝/棕/金）退役：一律朱砂 */
.minguo-page { --tone-a: var(--rb-red); --tone-b: var(--rb-red); --tone-c: var(--rb-red); --tone-d: var(--rb-red); }
.minguo-nav-id { background: transparent !important; color: var(--rb-red) !important; border: 1px solid var(--rb-red); font-family: var(--rb-eng); }
.minguo-nav-item { border-color: var(--rb-border); background: var(--rb-paper); border-radius: 2px; font-family: var(--rb-title); font-size: 0.86rem; }
.minguo-hero { text-align: left; }

/* ── 13. 区块节奏统一 ───────────────────────────────────── */
.faces-shell + .faces-shell, .vista-shell + .vista-shell { margin-top: 0; }
.faces-shell, .vista-shell { padding-top: var(--rb-gap); padding-bottom: 0; }
.subpage-section { padding: var(--rb-gap) 0 0; }
.subpage-section:last-child { padding-bottom: var(--rb-gap); }
.minguo-series { margin-top: var(--rb-gap); }
.minguo-series + .minguo-series { padding-top: 0; border-top: 0; }
.faces-overview-grid, .vista-overview-grid, .primer-block, .feature-link-grid, .grid-3, .archive-grid, .photo-stories { gap: 1rem; }

/* ── 14. 卡片统一：白面 + 1px 灰线 + 2px 圆角，无投影、无渐变、无暖黄 ── */
.republic-page [class$="-card"], .republic-subpage [class$="-card"], .minguo-page [class$="-card"],
.faces-part-card, .vista-part-card, .primer-card, .focus-card, .grid-card, .archive-card,
.photo-story-card, .feature-link-card, .lianda-sister-card, .zhi-card, .minguo-card,
.faces-style-panel, .vista-style-panel, .relation-box, .source-panel {
  background: var(--rb-paper) !important;
  background-image: none !important;
  border: 1px solid var(--rb-border) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  transform: none !important;
}
.republic-page [class$="-card"]:hover, .republic-subpage [class$="-card"]:hover, .minguo-page [class$="-card"]:hover,
.zhi-card:hover { border-color: var(--rb-border-strong, #C8C1B4) !important; box-shadow: none !important; transform: none !important; }
.faces-part-card, .vista-part-card { padding: 1.4rem 1.5rem 1.3rem !important; }
.faces-part-card-head h3, .vista-part-card-head h3,
.focus-title, .feature-link-card h2, .primer-card-title, .lianda-sister-label,
.photo-story-title, .grid-title, .archive-title, .essay-title, .inline-essay-title, .lianda-essay-title,
.minguo-card-title, .intel-article-title, .zhi-card-title {
  font-family: var(--rb-title) !important;
  color: var(--rb-ink) !important;
  font-weight: 700;
  line-height: 1.45;
  text-wrap: pretty;
}
.faces-part-card-head h3, .vista-part-card-head h3 { font-size: 1.12rem !important; }
.focus-title { font-size: clamp(1.15rem, 1.8vw, 1.45rem) !important; }
.feature-link-card h2, .lianda-sister-label { font-size: 1.05rem !important; }
.primer-card-title, .photo-story-title, .grid-title, .inline-essay-title, .lianda-essay-title { font-size: 1rem !important; }
.archive-title, .minguo-card-title, .zhi-card-title, .essay-title { font-size: 0.92rem !important; }
.faces-part-index, .vista-part-index {
  border-color: var(--rb-red) !important; color: var(--rb-red) !important; background: transparent !important;
  font-family: var(--rb-eng); font-weight: 600; box-shadow: none !important;
}
.faces-part-question, .vista-part-question, .faces-part-key, .vista-part-key {
  background: transparent !important; border-left: 2px solid var(--rb-rule) !important; border-radius: 0 !important;
  padding: 0.3rem 0 0.3rem 0.9rem; font-style: normal; color: var(--rb-ink-soft); font-size: 0.9rem; line-height: 1.8;
}
.faces-part-question strong, .vista-part-question strong, .faces-part-key strong, .vista-part-key strong { color: var(--rb-red); font-weight: 700; }
.faces-part-intro, .vista-part-intro, .faces-part-points, .vista-part-points, .primer-card-body, .grid-dek, .focus-dek,
.photo-story-dek, .lianda-essay-preview, .lianda-sister-lede, .minguo-card-dek, .intel-article-dek {
  font-size: 0.88rem; line-height: 1.8; color: var(--rb-ink-soft);
}
.faces-part-points li::before, .vista-part-points li::before { background: var(--rb-red); }
.faces-people-label, .vista-people-label, .lianda-sister-figures-label {
  font-family: var(--rb-eng); font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rb-red); font-weight: 600;
}
/* 日期 / 编号 / 元数据统一 mono */
.archive-date, .grid-kicker, .focus-kicker, .photo-story-era, .archive-meta, .intel-article-meta,
.lianda-essay-num, .lianda-essay-mark, .minguo-card-num, .minguo-card-meta, .lurk-script-meta, .essay-num {
  font-family: var(--rb-mono) !important; font-size: 0.7rem; letter-spacing: 0.08em; color: var(--rb-ink-subtle);
}
/* 蓝（民国蓝 #1C355E）与金褐在二级页退役：标题一律炭黑，只留红作点缀 */
.republic-subpage :is(h2, h3, h4), .minguo-page :is(h2, h3, h4), .faces-page :is(h3, h4), .vista-page :is(h3, h4) { color: var(--rb-ink); }
.republic-subpage .accent, .faces-page .accent, .vista-page .accent { color: var(--rb-red); }
.focus-cta, .feature-link-cta, .lianda-sister-cta, .relation-link, .minguo-back, .essay-link {
  font-family: var(--rb-title); font-size: 0.85rem; color: var(--rb-red) !important; background: transparent !important;
  border: 0 !important; padding: 0 !important; box-shadow: none !important;
}
.subpage-section a:hover .grid-title, .subpage-section a:hover .archive-title, .subpage-section a:hover .focus-title,
.minguo-card:hover .minguo-card-title, .zhi-card:hover .zhi-card-title { color: var(--rb-red) !important; }

/* ── 15. 图位缩小一档 ───────────────────────────────────── */
.zhi-card-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important; gap: 0.8rem !important; }
.zhi-card-cover { aspect-ratio: 4 / 3; background: var(--rb-surface-soft); }
.zhi-card { padding: 0.45rem !important; }
.zhi-text-list a { font-family: var(--rb-title); font-size: 0.9rem; color: var(--rb-ink-soft); border: 1px solid var(--rb-border); border-radius: 2px; background: var(--rb-paper); }
.focus-card { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr) !important; }
.focus-pic { aspect-ratio: 3 / 2 !important; max-height: 300px; }
.grid-pic { aspect-ratio: 3 / 2 !important; max-height: 190px; }
.archive-thumb, .photo-story-card .pic, .intel-article-cover { aspect-ratio: 4 / 3; max-height: 160px; }
.archive-grid { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)) !important; }
@media (max-width: 720px) {
  .focus-card { grid-template-columns: 1fr !important; }
  .archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* ── 16. 潜伏知识图谱区：外框与控件并入基线（节点色为数据色，保留） ── */
.lurk-graph-section, .hf-graph-viz { background: var(--rb-paper); border: 1px solid var(--rb-border); border-radius: 2px; box-shadow: none; }
.hf-viz-controls, .hf-range-wrap { background: transparent; }
.hf-mini-btn { font-family: var(--rb-title); font-size: 0.8rem; border: 1px solid var(--rb-border); background: var(--rb-paper); color: var(--rb-ink-soft); border-radius: 2px; box-shadow: none; }
.hf-mini-btn:hover { border-color: var(--rb-red); color: var(--rb-red); }
.hf-year-slider::-webkit-slider-thumb { background: var(--rb-red); }
.hf-year-slider::-moz-range-thumb { background: var(--rb-red); }
.hf-svg-wrap { background: var(--rb-page); border: 1px solid var(--rb-border-soft); }

/* ── 17. lurk 剧本 / 走进民国 子页：与同级页同规 ───────────── */
.lurk-script-list-body h3, .lurk-search-group-title { font-family: var(--rb-title); color: var(--rb-ink); }
.lurk-script-page mark { background: #F3E2DE; color: inherit; }
.minguo-card { padding: 0.9rem 1rem !important; }
.minguo-back { display: inline-block; margin-top: var(--rb-gap); }

/* ── 18. 窄屏字号基线（中文密度：≤640px 逐档抬高，行高同步） ─── */
@media (max-width: 640px) {
  .republic-page, .republic-subpage, .minguo-page { font-size: 15px; line-height: 1.75; }
  .re-date, .archive-date, .grid-kicker { font-size: 0.74rem; }
  .re-row-title { font-size: 1rem; }
  .re-row-dek, .re-lead-dek, .faces-part-intro, .vista-part-intro, .grid-dek { font-size: 0.9rem; line-height: 1.8; }
  .faces-part-card, .vista-part-card { padding: 1.1rem 1rem 1rem !important; }
  .rsh h2, .faces-section-head h2, .vista-section-head h2, .subpage-section-head h2, .minguo-series-title { font-size: 1.05rem !important; }
}

/* ════════════════════════════════════════════════════════════
   19. 收口补丁（2026-08-24 第二轮实测）
   ════════════════════════════════════════════════════════════ */
/* 变量作用域扩到 layout 包裹层：页脚/报头在 .republic-page 之外也能取到 --rb-* */
[data-edition="republic"] {
  --rb-ink: var(--fsmag-color-ink, #202020);
  --rb-ink-soft: var(--fsmag-color-ink-soft, #55504A);
  --rb-ink-muted: var(--fsmag-color-ink-muted, #746E68);
  --rb-ink-subtle: var(--fsmag-color-ink-subtle, #A69E93);
  --rb-red: var(--fsmag-color-deep, #8F2A24);
  --rb-rule: var(--edition-rule, #BE3B2E);
  --rb-border: var(--fsmag-color-border, #DAD4C9);
  --rb-border-soft: var(--fsmag-color-border-soft, #E8E3DA);
  --rb-paper: #FFFFFF;
  --rb-page: var(--fsmag-color-paper-warm, #F7F4EE);
  --rb-surface-soft: var(--fsmag-color-surface-soft, #F0EDE5);
  --rb-title: var(--fsmag-font-title, "Noto Serif SC", "Source Han Serif SC", "Songti SC", Georgia, serif);
  --rb-eng: var(--fsmag-font-eng, "Montserrat", -apple-system, "Segoe UI", sans-serif);
  --rb-mono: var(--fsmag-font-mono, "JetBrains Mono", "SF Mono", Menlo, monospace);
  --rb-sans: var(--fsmag-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans GB", "PingFang SC", "Microsoft YaHei", sans-serif);
  --rb-gap: 3.2rem;
  --rb-shell: 1180px;
  --rb-pad: clamp(16px, 4vw, 32px);
  background: var(--rb-page);
}
/* 页底：子页/二级页所有壳层统一 */
.republic-page, .republic-page.republic-subpage, .republic-subpage, .faces-page, .vista-page { background: var(--rb-page) !important; color: var(--rb-ink) !important; }

/* 支线栏目题：压过 uplift 的 .republic-page .topic-strip h2（34/42px + 左红条） */
.republic-page .topic-strip .rsh h2,
.republic-page .re-strip .rsh h2,
.republic-page .rsh h2 {
  font-family: var(--rb-title) !important;
  font-size: clamp(1.02rem, 1.5vw, 1.2rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  line-height: 1.25 !important;
  color: var(--rb-ink) !important;
  border: 0 !important; padding: 0 !important; margin: 0 !important; background: none !important;
}
.republic-page .rsh h2 a { color: inherit; text-decoration: none; }
.republic-page .rsh .fsmag-kicker { font-size: 0.7rem !important; letter-spacing: 0.22em !important; color: var(--rb-red) !important; font-family: var(--rb-eng) !important; text-transform: uppercase; }

/* 二级页章节题：压过 uplift 的 clamp(1.5rem,3vw,2rem) !important（同特异性、后载胜出） */
.republic-page .subpage-section-head h2,
.republic-page .vista-section-head h2,
.republic-page .faces-section-head h2,
.republic-page .vista-parts .vista-section-head h2,
.republic-page .faces-parts .faces-section-head h2,
.republic-page .intel-section-head h2,
.republic-page .lurk-graph-section h2,
.republic-page .section-head h2 {
  font-family: var(--rb-title) !important;
  font-size: clamp(1.02rem, 1.5vw, 1.2rem) !important;
  letter-spacing: 0.04em !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  color: var(--rb-ink) !important;
  margin: 0 !important; border: 0 !important; padding: 0 !important;
}
.republic-page .subpage-section-head, .republic-page .faces-section-head, .republic-page .vista-section-head { margin-bottom: 1.2rem !important; padding-bottom: 0 !important; }
.republic-page .subpage-section-head .en, .republic-page .subpage-section-head span,
.republic-page .faces-section-head span, .republic-page .vista-section-head span {
  font-size: 0.7rem !important; letter-spacing: 0.22em !important; color: var(--rb-red) !important; font-family: var(--rb-eng) !important; font-weight: 600; text-transform: uppercase;
}
/* 联大页：外层已有「梅贻琦日记」章节题，日记信笺内的题头隐藏，避免双题 */
.lianda-diary-wrap .diary-zone .rsh { display: none; }
.lianda-diary-wrap .diary-zone { border: 0; padding: 0; background: transparent; }
/* 日记信笺：空白横线减半 */
.republic-page .diary-body, .republic-page .diary-text { min-height: 0 !important; }
.republic-page .diary-body { padding-bottom: 0.6rem; }
/* 潜伏图谱：年份滑轨金色→朱砂 */
.hf-year-slider { accent-color: var(--rb-red); }
.hf-range-wrap input[type="range"] { accent-color: var(--rb-red); }
/* 报头栏内边距与版心 */
.republic-topbar-inner { max-width: var(--rb-shell); padding-left: var(--rb-pad); padding-right: var(--rb-pad); }
/* 支线带左侧旧红条（.topic-strip::before）退役；潜伏页剧本入口面板并入白卡 */
.republic-page .topic-strip::before, .republic-page .topic-strip::after { display: none !important; content: none !important; }
.republic-page .topic-strip { padding-left: 0 !important; border-left: 0 !important; }
.lurk-script-cta { background: var(--rb-paper) !important; background-image: none !important; border: 1px solid var(--rb-border) !important; border-left: 3px solid var(--rb-rule) !important; border-radius: 2px !important; box-shadow: none !important; }
.lurk-script-cta h2, .lurk-script-cta h3 { color: var(--rb-ink) !important; font-family: var(--rb-title) !important; font-size: 1.05rem !important; }
.lurk-script-cta-kicker { color: var(--rb-red) !important; }
