/* ============================================================
 * 伟大长征精神史料库 · 样式表（红色纪念场馆 · 大气庄重版）
 * 配色：中国红 #9E1B1B · 金 #C9A227 · 宣纸 #F6EFE0 · 墨 #241C18
 * ============================================================ */

:root{
  --red:#9E1B1B;
  --red-dk:#6E1010;
  --red-lt:#C0392B;
  --gold:#C9A227;
  --gold-lt:#E9CF7A;
  --gold-dk:#9A7A12;
  --paper:#F6EFE0;
  --paper-2:#FBF7EE;
  --paper-3:#EFE6D2;
  --ink:#241C18;
  --ink-2:#4A4038;
  --ink-3:#7A6F60;
  --line:#E2D6BD;
  --line-2:#CBB98C;
  --shadow:0 1px 2px rgba(36,28,24,.07), 0 10px 30px rgba(36,28,24,.07);
  --shadow-lg:0 6px 16px rgba(110,16,16,.14), 0 26px 60px rgba(36,28,24,.12);
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",Georgia,serif;
  --kai:"Kaiti SC","KaiTi","STKaiti","楷体",var(--serif);
  --sans:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans SC",-apple-system,"Segoe UI",sans-serif;
  --maxw:1240px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  line-height:1.78;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(circle at 10% 6%, rgba(158,27,27,.05), transparent 40%),
    radial-gradient(circle at 90% 94%, rgba(201,162,39,.06), transparent 44%);
  background-attachment:fixed;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
img{max-width:100%}
::selection{background:rgba(158,27,27,.18)}

::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--paper-3)}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:6px;border:2px solid var(--paper-3)}
::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}

/* ---------- 布局 ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.section{padding:66px 0}
.section-sm{padding:42px 0}
.section-band{background:linear-gradient(180deg,#F3EAD6,#FBF7EE);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* ---------- 顶栏（深红·金线） ---------- */
.topbar{
  position:sticky;top:0;z-index:80;
  background:linear-gradient(180deg,#7A1212,#6E1010);
  border-bottom:2px solid var(--gold);
  box-shadow:0 2px 14px rgba(0,0,0,.25);
}
.topbar-in{max-width:var(--maxw);margin:0 auto;padding:0 28px;display:flex;align-items:center;gap:26px;height:64px}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.brand-mark{
  width:34px;height:34px;border-radius:6px;
  background:linear-gradient(145deg,var(--gold),var(--gold-dk));
  display:grid;place-items:center;color:var(--red-dk);
  font-family:var(--serif);font-size:17px;font-weight:800;
  box-shadow:0 2px 6px rgba(0,0,0,.3);
}
.brand-txt{line-height:1.15}
.brand-txt b{font-family:var(--serif);font-size:16.5px;letter-spacing:1px;display:block;color:#F7EFDD}
.brand-txt span{font-size:10px;color:var(--gold-lt);letter-spacing:2px}

.nav{display:flex;gap:3px;margin-left:auto;flex-wrap:wrap}
.nav a{
  padding:8px 14px;border-radius:6px;font-size:14px;color:#EADFC8;
  transition:.18s;white-space:nowrap;position:relative;
}
.nav a:hover{background:rgba(233,207,122,.16);color:#FFF}
.nav a.on{color:#FFF;font-weight:600}
.nav a.on::after{content:'';position:absolute;left:14px;right:14px;bottom:2px;height:2px;background:var(--gold-lt);border-radius:2px}

/* ---------- Hero（纪念碑式大场景） ---------- */
.hero{
  position:relative;overflow:hidden;color:#F7F0E0;
  background:linear-gradient(160deg,#5E0E0E 0%,#7A1212 50%,#9E1B1B 100%);
}
.hero-scene{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;opacity:.92}
.hero::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:120px;z-index:1;
  background:linear-gradient(180deg,transparent,rgba(94,14,14,.65));
  pointer-events:none;
}
.hero-in{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:84px 28px 92px}
.hero-tag{
  display:inline-flex;align-items:center;gap:9px;
  padding:7px 17px;border:1px solid rgba(233,207,122,.55);border-radius:99px;
  font-size:12.5px;letter-spacing:2.6px;color:var(--gold-lt);margin-bottom:26px;
  background:rgba(110,16,16,.35);backdrop-filter:blur(2px);
}
.hero-tag i{width:6px;height:6px;border-radius:50%;background:var(--gold-lt);display:block}
.hero h1{
  font-family:var(--serif);font-size:clamp(38px,6vw,70px);line-height:1.12;
  letter-spacing:5px;font-weight:800;margin-bottom:22px;text-shadow:0 2px 18px rgba(0,0,0,.35);
}
.hero h1 em{font-style:normal;color:var(--gold-lt)}
.hero-sub{
  font-size:17px;line-height:2;max-width:780px;
  color:rgba(247,240,224,.92);margin-bottom:36px;
}
.hero-cta{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:54px}
.btn{
  display:inline-flex;align-items:center;gap:9px;
  padding:13px 28px;border-radius:8px;font-size:15px;font-weight:600;
  transition:.2s;cursor:pointer;border:1.5px solid transparent;
}
.btn-gold{background:linear-gradient(180deg,var(--gold-lt),var(--gold));color:#4A3506;box-shadow:0 6px 20px rgba(201,162,39,.4)}
.btn-gold:hover{filter:brightness(1.05);transform:translateY(-2px)}
.btn-ghost{background:rgba(60,20,20,.72);border-color:var(--gold-lt);color:#F7F0E0;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.btn-ghost:hover{background:rgba(90,30,30,.85);border-color:var(--gold);color:#FFF9E8}

.hero-stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;
  background:rgba(233,207,122,.22);border:1px solid rgba(233,207,122,.32);border-radius:12px;overflow:hidden;
  box-shadow:0 12px 40px rgba(0,0,0,.28);
}
.hero-stat{background:rgba(94,14,14,.5);padding:24px 20px;text-align:center;backdrop-filter:blur(2px)}
.hero-stat b{display:block;font-family:var(--serif);font-size:34px;color:var(--gold-lt);line-height:1.2;letter-spacing:1px}
.hero-stat span{font-size:12.5px;color:rgba(247,240,224,.85);letter-spacing:1.4px}

/* ---------- 诗词金句横幅 ---------- */
.quote-banner{
  display:flex;align-items:center;gap:24px;justify-content:center;flex-wrap:wrap;
  background:linear-gradient(120deg,#7A1212,#9E1B1B,#7A1212);
  color:#F7F0E0;border-radius:12px;padding:30px 26px;margin:0 auto 8px;
  box-shadow:var(--shadow-lg);position:relative;overflow:hidden;
}
.quote-banner::before{
  content:'';position:absolute;inset:0;
  background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.04) 0 2px,transparent 2px 11px);
  pointer-events:none;
}
.qb-rule{width:54px;height:2px;background:var(--gold-lt);flex-shrink:0}
.qb-inner{
  font-family:var(--kai);font-size:clamp(20px,2.6vw,28px);letter-spacing:3px;line-height:1.9;
  text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;
}
.qb-inner span{text-shadow:0 1px 8px rgba(0,0,0,.3)}
.qb-author{font-size:14px;letter-spacing:1.5px;color:var(--gold-lt);font-family:var(--sans)}

/* ---------- 段落分隔（五角星+金线） ---------- */
.cz-divider{display:flex;align-items:center;gap:16px;max-width:560px;margin:0 auto 6px}
.cz-divider .cz-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold-dk),transparent)}
.cz-star{width:22px;height:22px;flex-shrink:0}
.cz-star polygon{fill:var(--red)}

/* ---------- 通用标题 ---------- */
.sec-head{margin-bottom:36px;text-align:center}
.sec-kicker{
  font-size:12px;letter-spacing:4px;color:var(--red);font-weight:600;
  display:inline-flex;align-items:center;gap:11px;margin-bottom:14px;
}
.sec-kicker::before,.sec-kicker::after{content:'';width:24px;height:2px;background:var(--gold)}
.sec-head h2{font-family:var(--serif);font-size:32px;letter-spacing:3px;line-height:1.4;margin-bottom:12px;color:var(--ink)}
.sec-head p{color:var(--ink-2);max-width:840px;font-size:15px;line-height:1.95;margin:0 auto}

/* ---------- 四大板块卡（带插画） ---------- */
.mod-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:8px}
.mod{
  position:relative;overflow:hidden;background:var(--paper-2);
  border:1px solid var(--line);border-radius:14px;
  transition:.26s;cursor:pointer;box-shadow:var(--shadow);
}
.mod::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--red),var(--gold));opacity:0;transition:.26s;z-index:3;
}
.mod:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--line-2)}
.mod:hover::before{opacity:1}
.mod-art{position:relative;height:152px;overflow:hidden;border-radius:13px 13px 0 0;border-bottom:2px solid var(--gold)}
.mod-art svg{width:100%;height:100%;display:block}
.mod-art::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(110,16,16,.25))}
.mod-body{padding:22px 24px 24px}
.mod h3{font-family:var(--serif);font-size:21px;letter-spacing:1.4px;margin-bottom:10px;color:var(--ink)}
.mod p{font-size:13.8px;color:var(--ink-2);line-height:1.9;min-height:76px}
.mod-meta{
  margin-top:16px;padding-top:15px;border-top:1px dashed var(--line-2);
  display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--ink-3);
}
.mod-meta b{color:var(--red);font-family:var(--serif);font-size:22px;letter-spacing:.5px}
.mod-meta em{font-style:normal;color:var(--red);font-weight:600;letter-spacing:.6px}

/* ---------- 图表 ---------- */
.chart-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px}
.chart-card{
  background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:var(--shadow);
}
.chart-card h4{font-family:var(--serif);font-size:17px;letter-spacing:1px;margin-bottom:4px}
.chart-card .chart-note{font-size:12px;color:var(--ink-3);margin-bottom:16px}
.chart-card canvas{width:100%;display:block}
.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;font-size:12.5px;color:var(--ink-2)}
.legend i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:6px;vertical-align:-1px}

/* ---------- 筛选栏 ---------- */
.filters{
  background:var(--paper-2);border:1px solid var(--line);border-radius:14px;
  padding:20px 22px;margin-bottom:24px;box-shadow:var(--shadow);
}
.search-box{position:relative;margin-bottom:16px}
.search-box input{
  width:100%;padding:13px 16px 13px 46px;border:1.5px solid var(--line-2);border-radius:10px;
  background:var(--paper);font-size:14.5px;color:var(--ink);outline:none;transition:.2s;font-family:inherit;
}
.search-box input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(158,27,27,.1)}
.search-box svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:17px;height:17px;stroke:var(--ink-3);fill:none;stroke-width:2}
.filter-group{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:11px}
.filter-group:last-child{margin-bottom:0}
.filter-label{font-size:12.5px;color:var(--ink-3);letter-spacing:1px;width:56px;flex-shrink:0}
.chip{
  padding:5px 13px;border:1px solid var(--line-2);border-radius:99px;background:var(--paper);
  font-size:13px;color:var(--ink-2);cursor:pointer;transition:.16s;white-space:nowrap;
}
.chip:hover{border-color:var(--red);color:var(--red)}
.chip.on{background:var(--red);border-color:var(--red);color:#F7F0E0;font-weight:600}

.result-bar{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;
  margin-bottom:18px;font-size:13.5px;color:var(--ink-2);
}
.result-bar b{color:var(--red);font-family:var(--serif);font-size:18px}
.sort-sel{
  padding:7px 12px;border:1px solid var(--line-2);border-radius:7px;background:var(--paper);
  font-size:13px;font-family:inherit;color:var(--ink-2);outline:none;cursor:pointer;
}

/* ---------- 史料卡片 ---------- */
.rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}
.rec{
  background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:22px 22px 20px;
  cursor:pointer;transition:.22s;position:relative;overflow:hidden;border-left:3px solid var(--red);
}
.rec::after{
  content:'';position:absolute;right:-26px;top:-26px;width:84px;height:84px;border-radius:50%;
  background:radial-gradient(circle,rgba(158,27,27,.07),transparent 70%);
}
.rec:hover{border-color:var(--red-lt);transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.rec-top{display:flex;align-items:center;gap:9px;margin-bottom:11px;flex-wrap:wrap}
.rec-cat{
  padding:3px 9px;border-radius:4px;font-size:11.5px;letter-spacing:.8px;font-weight:600;
  background:rgba(158,27,27,.1);color:var(--red);border:1px solid rgba(158,27,27,.2);
}
.rec.has-prof{border-left:3px solid var(--gold)}
.rec-prof-tag{
  padding:2px 8px;border-radius:3px;font-size:10.5px;letter-spacing:.8px;font-weight:600;
  background:linear-gradient(135deg,var(--gold-lt),var(--gold));color:#4A3506;border:1px solid rgba(154,122,18,.35);
}
.rec-prof-tag.deed{background:linear-gradient(135deg,#F3E3C2,var(--gold-dk));color:#5C4A08}
.rec-date{font-size:12px;color:var(--ink-3);font-family:var(--serif);letter-spacing:.5px}
.rec-place{font-size:12px;color:var(--ink-3)}
.rec h4{font-family:var(--serif);font-size:18px;line-height:1.55;letter-spacing:.6px;margin-bottom:10px;color:var(--ink)}
.rec p{
  font-size:13.6px;color:var(--ink-2);line-height:1.9;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.rec-src{
  margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11.5px;color:var(--ink-3);
}
.rec-lv{padding:2px 8px;border-radius:3px;font-size:11px;letter-spacing:.5px}
.lv-1{background:rgba(158,27,27,.1);color:var(--red);border:1px solid rgba(158,27,27,.2)}
.lv-2{background:rgba(201,162,39,.14);color:#7A5F0C;border:1px solid rgba(201,162,39,.32)}
.lv-3{background:rgba(74,64,56,.08);color:var(--ink-2);border:1px solid var(--line-2)}

.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.tag{padding:2px 8px;border-radius:3px;background:var(--paper-3);font-size:11.5px;color:var(--ink-3)}

.empty{text-align:center;padding:80px 20px;color:var(--ink-3)}
.empty svg{width:56px;height:56px;stroke:var(--line-2);fill:none;stroke-width:1.4;margin-bottom:16px}

.pager{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:34px;flex-wrap:wrap}
.pager button{
  min-width:38px;height:38px;padding:0 12px;border:1px solid var(--line-2);border-radius:7px;
  background:var(--paper-2);font-size:13.5px;color:var(--ink-2);cursor:pointer;transition:.16s;
}
.pager button:hover:not(:disabled){border-color:var(--red);color:var(--red)}
.pager button.on{background:var(--red);border-color:var(--red);color:#F7F0E0;font-weight:600}
.pager button:disabled{opacity:.4;cursor:not-allowed}
.pager .ellipsis{color:var(--ink-3);padding:0 4px}

/* ---------- 详情抽屉 ---------- */
.overlay{position:fixed;inset:0;background:rgba(36,28,24,.38);backdrop-filter:blur(2px);z-index:200;opacity:0;pointer-events:none;transition:.26s}
.overlay.on{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(960px,96vw);background:var(--paper-2);
  z-index:201;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;box-shadow:-18px 0 60px rgba(36,28,24,.22);
}
.drawer.on{transform:none}
.drawer-in{padding:30px 42px 60px}
.drawer-close{
  position:sticky;top:0;float:right;width:34px;height:34px;border-radius:8px;border:1px solid var(--line-2);
  background:var(--paper);display:grid;place-items:center;cursor:pointer;z-index:2;transition:.16s;
}
.drawer-close:hover{background:var(--red);border-color:var(--red);color:#F7F0E0}
.drawer-cat{
  display:inline-block;padding:4px 11px;border-radius:4px;font-size:12px;letter-spacing:.8px;font-weight:600;
  background:rgba(158,27,27,.1);color:var(--red);border:1px solid rgba(158,27,27,.2);margin-bottom:14px;
}
.drawer h2{font-family:var(--serif);font-size:26px;line-height:1.5;letter-spacing:1px;margin-bottom:14px;clear:both;color:var(--ink)}
.drawer-meta{
  display:flex;flex-wrap:wrap;gap:16px;padding:12px 0;margin-bottom:20px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px;color:var(--ink-2);
}
.drawer-meta b{color:var(--ink);font-weight:600}
.drawer-body{font-size:15px;line-height:2.05;color:var(--ink-2);margin-bottom:24px;text-align:justify}
.drawer-body p{margin-bottom:16px}
.quote-block{
  border-left:3px solid var(--gold);background:var(--paper-3);padding:16px 20px;border-radius:0 8px 8px 0;
  font-family:var(--kai);font-size:16px;line-height:1.95;color:var(--ink);margin:20px 0;
}
.src-box{background:var(--paper-3);border:1px solid var(--line);border-radius:9px;padding:16px 18px;font-size:13px;color:var(--ink-2);line-height:1.9}
.src-box h5{font-size:12px;letter-spacing:2px;color:var(--red);margin-bottom:9px;font-weight:600}
.src-box div{display:flex;gap:10px;margin-bottom:5px}
.src-box div span:first-child{color:var(--ink-3);width:56px;flex-shrink:0}

/* ---------- 时间轴 ---------- */
.route-ribbon{
  position:relative;height:auto;margin-bottom:46px;border-radius:14px;overflow:hidden;
  background:linear-gradient(180deg,#F3EAD6,#EFE6D2);border:1px solid var(--line);
  box-shadow:var(--shadow);padding:18px 22px 30px;
}
.route-ribbon .route-map{width:100%;height:auto;display:block;border-radius:8px}

.timeline{position:relative;padding-left:34px}
.timeline::before{content:'';position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,var(--red),var(--gold),var(--red))}
.tl-phase{margin-bottom:12px}
.tl-phase-h{display:flex;align-items:center;gap:12px;margin:30px 0 18px;font-family:var(--serif);font-size:20px;letter-spacing:2px;color:var(--red)}
.tl-phase-h::after{content:'';flex:1;height:1px;background:var(--line-2)}
.tl-phase-h span{font-size:12px;color:var(--ink-3);letter-spacing:1px;font-family:var(--sans)}
.tl-item{position:relative;margin-bottom:14px}
.tl-item::before{
  content:'';position:absolute;left:-29px;top:20px;width:12px;height:12px;border-radius:50%;
  background:var(--paper-2);border:2.5px solid var(--red);z-index:1;
}
.tl-item.key::before{background:var(--gold);border-color:var(--red);box-shadow:0 0 0 4px rgba(201,162,39,.25)}
.tl-card{background:var(--paper-2);border:1px solid var(--line);border-radius:11px;padding:18px 22px;cursor:pointer;transition:.2s;border-left:3px solid var(--red)}
.tl-card:hover{border-color:var(--red-lt);box-shadow:var(--shadow);transform:translateX(3px)}
.tl-date{font-family:var(--serif);font-size:14.5px;color:var(--red);letter-spacing:1px;font-weight:600;margin-bottom:5px}
.tl-card h4{font-family:var(--serif);font-size:17.5px;letter-spacing:.6px;margin-bottom:8px;line-height:1.5;color:var(--ink)}
.tl-card p{font-size:13.5px;color:var(--ink-2);line-height:1.85}
.tl-place{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-3);margin-top:10px;padding:3px 10px;border-radius:99px;background:var(--paper-3);border:1px dashed var(--line-2)}
.tl-place::before{content:'📍';font-size:11px}

/* ---------- 人物（纪念馆照片墙） ---------- */
.fig-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px;margin-top:6px}
.fig-card{
  background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:18px 14px 16px;
  text-align:center;cursor:pointer;transition:.24s;position:relative;overflow:hidden;
}
.fig-card.has-prof{border-top:3px solid var(--gold)}
.fig-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--gold)}
.fig-badge{
  position:absolute;top:10px;left:10px;z-index:4;
  background:linear-gradient(135deg,var(--gold-lt),var(--gold));
  color:#4A3506;font-size:10.5px;font-weight:600;letter-spacing:1px;
  padding:2px 8px;border-radius:3px;box-shadow:0 2px 6px rgba(154,122,18,.35);
}
.fig-frame{
  position:relative;margin:0 auto 14px;width:128px;height:158px;
  padding:7px;border-radius:8px;
  background:linear-gradient(135deg,#E9CF7A,#C9A227 45%,#9A7A12);
  box-shadow:0 4px 14px rgba(154,122,18,.35);
}
.fig-frame::after{content:'';position:absolute;inset:3px;border:1px solid rgba(255,255,255,.4);border-radius:6px;pointer-events:none}
.fig-frame-in{width:100%;height:100%;border-radius:5px;overflow:hidden;background:#F3ECDA;display:grid;place-items:center}
.fig-frame-in .cz-portrait{display:block;width:100%;height:100%}
.fig-plate{
  position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);
  background:var(--red);color:#F7F0E0;font-family:var(--serif);font-size:12.5px;letter-spacing:1px;
  padding:3px 12px;border-radius:4px;white-space:nowrap;box-shadow:0 2px 6px rgba(110,16,16,.3);
}
.fig-card h4{font-family:var(--serif);font-size:18px;letter-spacing:1.4px;margin:6px 0 6px;color:var(--ink)}
.fig-life{font-size:11.5px;color:var(--ink-3);letter-spacing:.6px;margin-bottom:8px}
.fig-role{font-size:12.5px;color:var(--ink-2);line-height:1.7;min-height:42px}
.fig-tags{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.fig-tags span{padding:2px 8px;border-radius:3px;background:var(--paper-3);font-size:11px;color:var(--ink-3)}

.drawer-portrait{display:flex;gap:24px;margin-bottom:24px;align-items:flex-start}
.drawer-portrait .cz-portrait{flex-shrink:0}
.dp-info{padding-top:8px}
.dp-info h2{clear:none;margin-bottom:8px}
.dp-life{font-size:13.5px;color:var(--ink-3);letter-spacing:1px;margin-bottom:10px}
.dp-role{font-size:14px;color:var(--ink-2);line-height:1.8;margin-bottom:14px}
.dp-btns{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- 人物深档案（完整故事 + 亲历者原话） ---------- */
.prof-intro{font-family:var(--serif);font-size:16px;color:var(--ink);border-left:3px solid var(--red);padding:2px 0 2px 16px;margin-bottom:6px}
.prof-sec{margin-top:26px;border-top:1px solid var(--line);padding-top:20px;scroll-margin-top:20px}
.prof-sec-h{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:19px;letter-spacing:1.6px;color:var(--red);margin-bottom:8px}
.prof-sec-h i{width:4px;height:20px;background:var(--gold);display:block;border-radius:2px}
.prof-notice{
  font-size:12.3px;line-height:1.85;color:var(--ink-3);
  background:var(--paper-3);border:1px dashed var(--line-2);border-radius:8px;
  padding:10px 14px;margin-bottom:16px;
}
.prof-story{margin-bottom:22px;padding-left:2px}
.prof-story h5{
  font-family:var(--serif);font-size:16px;letter-spacing:.6px;color:var(--ink);
  margin-bottom:8px;position:relative;padding-left:14px;
}
.prof-story h5::before{content:'';position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--gold);border:1.5px solid var(--red)}
.prof-story p{font-size:14.3px;line-height:2.05;color:var(--ink-2);text-align:justify;margin-bottom:10px}
.prof-src{font-size:11.5px;color:var(--ink-3);letter-spacing:.3px;padding-left:14px;border-left:2px solid var(--line-2);margin-top:6px}
.prof-quote{
  position:relative;padding:15px 18px;border-radius:9px;margin-bottom:12px;
  border:1px solid var(--line);background:var(--paper);border-left:3px solid var(--gold);
}
.prof-quote.q{border-left-color:var(--red);background:var(--paper-3)}
.prof-quote.f{border-left-color:var(--ink-3)}
.prof-quote p{font-family:var(--kai);font-size:16px;line-height:2.05;color:var(--ink);margin:8px 0 4px}
.prof-qmeta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:11.5px;color:var(--ink-3);margin-top:8px}
.prof-qmeta span{letter-spacing:.3px}
.prof-note{
  display:flex;gap:13px;background:var(--paper-3);border:1px solid var(--line);
  border-left:3px solid var(--ink-3);border-radius:0 9px 9px 0;
  padding:14px 17px;margin:6px 0 4px;font-size:13px;line-height:1.85;color:var(--ink-2);
}
.prof-note svg{width:19px;height:19px;flex-shrink:0;stroke:var(--ink-3);fill:none;stroke-width:1.8;margin-top:2px}
.prof-note b{color:var(--ink)}

/* ---------- 对话 ---------- */
.dlg-layout{display:grid;grid-template-columns:300px 1fr;gap:26px;align-items:start}
.dlg-list{
  background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:16px;
  max-height:calc(100vh - 190px);overflow-y:auto;position:sticky;top:80px;
}
.dlg-list h5{font-size:12px;letter-spacing:2.4px;color:var(--red);margin-bottom:12px;font-weight:600}
.dlg-item{display:flex;align-items:center;gap:12px;padding:9px 11px;border-radius:9px;cursor:pointer;transition:.16s}
.dlg-item:hover{background:var(--paper-3)}
.dlg-item.on{background:rgba(158,27,27,.08);box-shadow:inset 3px 0 0 var(--red)}
.dlg-item .cz-portrait{width:40px;height:auto;flex-shrink:0}
.dlg-item b{font-family:var(--serif);font-size:14.5px;letter-spacing:.8px;display:block;color:var(--ink)}
.dlg-item span{font-size:11.5px;color:var(--ink-3)}

.dlg-main{background:var(--paper-2);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.dlg-head{
  display:flex;gap:22px;padding:30px;align-items:center;
  background:linear-gradient(135deg,rgba(158,27,27,.1),rgba(201,162,39,.12));
  border-bottom:1px solid var(--line);
}
.dlg-head .cz-portrait{flex-shrink:0;border-radius:8px;overflow:hidden;background:#F3ECDA;padding:4px;box-shadow:0 3px 10px rgba(154,122,18,.25)}
.dlg-head-info h3{font-family:var(--serif);font-size:27px;letter-spacing:2px;margin-bottom:6px;color:var(--ink)}
.dlg-head-info .life{font-size:13px;color:var(--ink-3);letter-spacing:1px;margin-bottom:6px}
.dlg-head-info .role{font-size:14px;color:var(--ink-2);margin-bottom:12px}
.dlg-head-info .kw{display:inline-block;padding:4px 13px;border-radius:99px;background:var(--red);color:#F7F0E0;font-size:12.5px;letter-spacing:1.4px}
.dlg-body{padding:28px 30px 34px}

.words-box{margin-bottom:30px}
.box-h{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-family:var(--serif);font-size:17px;letter-spacing:1.4px;color:var(--red)}
.box-h i{width:3px;height:17px;background:var(--gold);display:block;border-radius:2px}
.word{padding:16px 20px;border-radius:9px;margin-bottom:11px;border:1px solid var(--line);background:var(--paper);position:relative}
.word.q{border-left:3px solid var(--red);background:var(--paper-3)}
.word.f{border-left:3px solid var(--ink-3)}
.word-kind{display:inline-block;font-size:10.5px;letter-spacing:1.2px;padding:2px 8px;border-radius:3px;margin-bottom:8px}
.word.q .word-kind{background:rgba(158,27,27,.12);color:var(--red)}
.word.f .word-kind{background:rgba(74,64,56,.1);color:var(--ink-2)}
.word p{font-family:var(--kai);font-size:15.5px;line-height:1.95;color:var(--ink)}
.word-src{font-size:11.5px;color:var(--ink-3);margin-top:9px;letter-spacing:.4px}

.qa-item{margin-bottom:18px}
.qa-q{display:flex;gap:11px;align-items:flex-start;margin-bottom:10px}
.qa-q i{flex-shrink:0;width:24px;height:24px;border-radius:6px;background:var(--ink-3);color:var(--paper-2);display:grid;place-items:center;font-size:12px;font-style:normal;font-weight:700;margin-top:2px}
.qa-q p{background:var(--paper-3);padding:10px 15px;border-radius:9px 9px 9px 3px;font-size:14.5px;line-height:1.8;flex:1}
.qa-a{display:flex;gap:11px;align-items:flex-start}
.qa-a i{flex-shrink:0;width:24px;height:24px;border-radius:6px;background:var(--red);color:#F7F0E0;display:grid;place-items:center;font-size:12px;font-style:normal;font-weight:700;margin-top:2px}
.qa-a > div{flex:1}
.qa-a p{background:var(--paper);border:1px solid var(--line);padding:14px 17px;border-radius:9px 9px 3px 9px;font-size:14.5px;line-height:1.95;color:var(--ink-2)}
.qa-disclaimer{font-size:11.5px;color:var(--ink-3);margin-top:8px;padding-left:35px;letter-spacing:.3px}
.qa-disclaimer b{color:var(--red)}

.notice{display:flex;gap:13px;background:var(--paper-3);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:0 9px 9px 0;padding:15px 19px;margin-bottom:24px;font-size:13.2px;line-height:1.85;color:var(--ink-2)}
.notice svg{width:19px;height:19px;flex-shrink:0;stroke:var(--gold);fill:none;stroke-width:1.8;margin-top:2px}
.notice b{color:var(--ink)}

/* ---------- 方法论 ---------- */
.step-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.step{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:24px 22px;position:relative;border-top:3px solid var(--red)}
.step-n{font-family:var(--serif);font-size:40px;color:rgba(158,27,27,.14);line-height:1;position:absolute;right:18px;top:12px;font-weight:700}
.step h4{font-family:var(--serif);font-size:16.5px;letter-spacing:1px;margin-bottom:9px;color:var(--ink)}
.step p{font-size:13.2px;color:var(--ink-2);line-height:1.85}

.principle-list{display:grid;gap:12px}
.principle{display:flex;gap:15px;padding:18px 20px;background:var(--paper-2);border:1px solid var(--line);border-radius:10px}
.principle .pn{width:28px;height:28px;border-radius:7px;background:var(--red);color:#F7F0E0;display:grid;place-items:center;font-family:var(--serif);font-size:14px;flex-shrink:0;font-weight:700}
.principle h4{font-size:15px;margin-bottom:5px;letter-spacing:.6px;color:var(--ink)}
.principle p{font-size:13.2px;color:var(--ink-2);line-height:1.8}

.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
table{width:100%;border-collapse:collapse;background:var(--paper-2);font-size:13.5px;min-width:620px}
th{background:var(--paper-3);padding:12px 16px;text-align:left;font-weight:600;letter-spacing:.8px;font-size:13px;color:var(--ink-2);border-bottom:1px solid var(--line-2)}
td{padding:12px 16px;border-bottom:1px solid var(--line);color:var(--ink-2);line-height:1.75;vertical-align:top}
tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--paper)}

/* ---------- 印章 ---------- */
.cz-seal{width:58px;height:58px;display:inline-block;vertical-align:middle}

/* ---------- 页脚 ---------- */
.footer{background:linear-gradient(180deg,#241C18,#1A1410);color:#C9C2B6;padding:54px 0 30px;margin-top:46px;border-top:3px solid var(--gold)}
.footer-in{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:32px;margin-bottom:34px}
.footer h5{font-family:var(--serif);font-size:15px;color:var(--gold-lt);letter-spacing:1.4px;margin-bottom:13px}
.footer p,.footer li{font-size:13px;line-height:1.9;color:#A39C90}
.footer ul{list-style:none}
.footer li{padding:3px 0}
.footer-bot{padding-top:22px;border-top:1px solid rgba(201,194,182,.16);font-size:12.2px;color:#8A8378;line-height:1.85;display:flex;gap:10px;align-items:flex-start}
.footer-bot .cz-seal{flex-shrink:0;margin-top:2px}

/* ---------- 载入动画 ---------- */
.fade-up{opacity:0;transform:translateY(16px);animation:fadeUp .55s cubic-bezier(.22,1,.36,1) forwards}
@keyframes fadeUp{to{opacity:1;transform:none}}

/* ---------- 响应式 ---------- */
@media (max-width:960px){
  .dlg-layout{grid-template-columns:1fr}
  .dlg-list{max-height:none;position:static;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:4px}
  .drawer-portrait{flex-direction:column;align-items:center;text-align:center}
}
@media (max-width:720px){
  .wrap,.hero-in,.topbar-in,.footer-in{padding-left:16px;padding-right:16px}
  .topbar-in{height:auto;padding-top:10px;padding-bottom:10px;flex-wrap:wrap;gap:12px}
  .nav{margin-left:0;width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  .nav::-webkit-scrollbar{height:0}
  .hero-in{padding-top:54px;padding-bottom:54px}
  .hero h1{letter-spacing:2px}
  .section{padding:46px 0}
  .sec-head h2{font-size:25px}
  .rec-grid,.fig-grid{grid-template-columns:1fr}
  .drawer-in{padding:22px 20px 50px}
  .dlg-head{flex-direction:column;text-align:center;padding:22px 18px}
  .dlg-body{padding:20px 18px 30px}
  .mod p{min-height:0}
  .quote-banner{flex-direction:column;gap:14px}
  .qb-rule{width:60px}
}

/* ===== 真实影像接入（去 AI 模板感） ===== */
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 30%;
  filter:saturate(.92) contrast(1.02);z-index:0}
.hero-overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(78,12,12,.55) 0%,rgba(78,12,12,.65) 55%,rgba(60,8,8,.74) 100%)}
.hero-scene{display:none}  /* 已用真实照片替代 SVG hero */

/* 底部进度行：加半透明深色底衬，保证可读性 */
.hero-progress{display:inline-block;padding:8px 14px;border-radius:6px;background:rgba(20,8,8,.42);backdrop-filter:blur(2px)}

.mod-art{background-size:cover;background-position:center}
.mod-art svg{display:none}  /* 板块插画改为真实照片 */

.timeline-route-map{margin:8px 0 24px;border-radius:10px;overflow:hidden;border:1px solid var(--line);
  background:var(--paper-2);box-shadow:0 6px 20px rgba(60,8,8,.12)}
.timeline-route-map img{display:block;width:100%;height:auto;max-height:540px;object-fit:contain}

.timeline-hero{position:relative;height:240px;border-radius:10px;overflow:hidden;margin:8px 0 28px;
  background-size:cover;background-position:center;
  box-shadow:0 6px 22px rgba(60,8,8,.18);border:1px solid var(--line)}
.timeline-hero::before{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(247,240,224,.05) 30%,rgba(94,14,14,.62))}
.timeline-hero-cap{position:absolute;left:0;right:0;bottom:0;padding:18px 22px;color:#F7F0E0;font-size:14px;
  font-family:'STKaiti','KaiTi','楷体',serif;letter-spacing:.5px;line-height:1.8}
.timeline-hero-cap i{display:block;width:36px;height:2px;background:var(--gold);margin-bottom:10px}

.fig-photo{width:100%;height:100%;object-fit:cover;border-radius:5px;display:block;background:#E9E1CC}
.fig-photo-lg{filter:contrast(1.02) saturate(.95)}

/* 列表/对话/抽屉中的真实照片：明确尺寸，避免溢出或显示不全 */
.dlg-item .fig-photo{width:44px;height:44px;flex-shrink:0;border-radius:50%;object-fit:cover;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.dlg-head{display:flex;align-items:center;gap:20px}
.dlg-head .fig-photo{width:108px;height:134px;flex-shrink:0;border-radius:8px;object-fit:cover;background:#F3ECDA;padding:4px;box-shadow:0 3px 12px rgba(154,122,18,.28)}
.drawer-portrait .fig-photo{width:132px;height:164px;flex-shrink:0;border-radius:8px;object-fit:cover;background:#F3ECDA;padding:5px;box-shadow:0 3px 12px rgba(154,122,18,.28)}
.fig-frame-in .fig-photo{width:100%;height:100%;object-fit:cover}

.about-banner{position:relative;height:200px;border-radius:10px;overflow:hidden;margin:0 0 26px;
  background-size:cover;background-position:center;
  box-shadow:0 6px 22px rgba(60,8,8,.16);border:1px solid var(--line)}
.about-banner::before{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(94,14,14,.62),rgba(94,14,14,.18))}
.about-banner-cap{position:absolute;left:24px;bottom:18px;color:#F7F0E0;font-size:13px;
  letter-spacing:1px;font-family:'STKaiti','KaiTi','楷体',serif}
.about-banner-cap i{display:inline-block;width:24px;height:2px;background:var(--gold);vertical-align:middle;margin-right:10px}
