/* ============================================================
   长河 · 1931—1976 大事编年
   ============================================================ */

:root{
  --paper:#f4efe5;
  --paper-2:#f9f5ec;
  --card:#fffdf8;
  --ink:#211c19;
  --ink-2:#4b433c;
  --ink-3:#847a70;
  --red:#9c1d15;
  --red-2:#b8352a;
  --gold:#ad8b55;
  --line:rgba(33,28,25,.14);
  --line-soft:rgba(33,28,25,.075);
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --shadow-1:0 2px 12px -8px rgba(33,28,25,.4);
  --shadow-2:0 20px 46px -32px rgba(33,28,25,.6);
  --shadow-3:0 40px 90px -50px rgba(33,28,25,.75);
  --ease:cubic-bezier(.22,.61,.36,1);
  --top-h:64px;
  --tool-h:104px;
  --wrap-max:1680px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.is-locked{overflow:hidden}

body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.8;
  letter-spacing:.01em;overflow-x:hidden;
}
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 8% 0%, rgba(156,29,21,.06), transparent 44%),
    radial-gradient(ellipse at 92% 55%, rgba(173,139,85,.10), transparent 48%);
}
body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.4;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
}
main,footer,header,.toolbar,.hero{position:relative;z-index:1}

img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
p{margin:0 0 1em}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:600;line-height:1.32}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:rgba(156,29,21,.16)}

.wrap{width:min(var(--wrap-max),calc(100% - 56px));margin:0 auto}

/* ---------- 进度 ---------- */
.progress{
  position:fixed;top:0;left:0;height:2px;width:0;z-index:200;
  background:linear-gradient(90deg,var(--red),var(--gold));
}

/* ---------- 顶栏 ---------- */
.topbar{
  position:fixed;top:0;left:0;right:0;height:var(--top-h);z-index:90;
  background:rgba(244,239,229,.86);
  backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid transparent;transition:border-color .3s,background .3s;
}
.topbar.is-stuck{border-bottom-color:var(--line);background:rgba(249,245,236,.95)}
.topbar-inner{
  width:min(var(--wrap-max),calc(100% - 56px));margin:0 auto;height:100%;
  display:flex;align-items:center;gap:24px;
}
.brand{display:flex;align-items:center;gap:11px;flex:none}
.brand-seal{
  display:grid;place-items:center;width:36px;height:36px;
  background:var(--red);color:#fff8ef;border-radius:2px;
  font-family:var(--serif);font-size:12px;line-height:1.05;letter-spacing:.02em;
  padding:4px;text-align:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);
}
.brand-text{display:flex;flex-direction:column;line-height:1.2;font-family:var(--serif);font-size:16px;letter-spacing:.08em}
.brand-text em{font-family:var(--sans);font-style:normal;font-size:9.5px;letter-spacing:.22em;color:var(--ink-3);margin-top:3px}

.search{
  flex:1;max-width:420px;display:flex;align-items:center;gap:9px;
  height:38px;padding:0 12px;border:1px solid var(--line);border-radius:2px;
  background:rgba(255,253,248,.7);transition:border-color .25s,box-shadow .25s;
}
.search:focus-within{border-color:rgba(156,29,21,.5);box-shadow:0 0 0 3px rgba(156,29,21,.07)}
.search svg{width:15px;height:15px;flex:none;stroke:var(--ink-3);fill:none;stroke-width:1.6}
.search input{
  flex:1;min-width:0;border:0;background:none;outline:none;
  font:inherit;font-size:13.5px;color:var(--ink);
}
.search input::placeholder{color:var(--ink-3);opacity:.8}
.search input::-webkit-search-cancel-button{display:none}
.search-clear{font-size:16px;line-height:1;color:var(--ink-3);padding:2px 4px}
.search-clear:hover{color:var(--red)}

.topbar-meta{flex:none;font-size:11.5px;letter-spacing:.12em;color:var(--ink-3);font-variant-numeric:tabular-nums}

/* ---------- 首屏 ---------- */
.hero{padding:calc(var(--top-h) + 68px) 0 54px;position:relative;overflow:hidden}
.hero-glow{
  position:absolute;top:-180px;right:-140px;width:620px;height:620px;border-radius:50%;
  background:radial-gradient(circle,rgba(156,29,21,.10),rgba(156,29,21,.03) 46%,transparent 68%);
  pointer-events:none;
}
.hero-inner{position:relative}
.eyebrow{
  font-size:11px;letter-spacing:.3em;color:var(--red);margin:0 0 22px;
  display:flex;align-items:center;gap:13px;
}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--red);opacity:.6}
.hero-title{display:flex;flex-direction:column;gap:0;margin-bottom:24px}
.hero-title span{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(40px,6vw,76px);line-height:1.18;letter-spacing:.06em;
}
.hero-title .accent{
  color:transparent;background:linear-gradient(100deg,var(--red) 4%,#78140e 84%);
  -webkit-background-clip:text;background-clip:text;
}
.hero-sub{max-width:660px;color:var(--ink-2);font-size:16px;line-height:2;margin-bottom:34px}
.hero-stats{
  display:flex;gap:36px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:22px;max-width:820px;
}
.hero-stats div{display:flex;flex-direction:column;gap:2px}
.hero-stats strong{
  font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.02em;
  font-variant-numeric:tabular-nums;
}
.hero-stats span{font-size:10.5px;letter-spacing:.16em;color:var(--ink-3)}
.hero-hint{margin:26px 0 0;font-size:12px;letter-spacing:.1em;color:var(--ink-3)}

/* ---------- 工具条 ---------- */
.toolbar{
  position:sticky;top:var(--top-h);z-index:80;
  background:rgba(244,239,229,.94);
  backdrop-filter:blur(14px) saturate(1.05);
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line);
}
.chips{
  display:flex;flex-wrap:wrap;gap:7px;padding:13px 0 12px;
}
.chip{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;
  height:32px;padding:0 13px;border:1px solid var(--line);
  border-radius:2px;font-size:12.5px;color:var(--ink-2);
  background:rgba(255,253,248,.55);white-space:nowrap;
  transition:all .25s var(--ease);
}
.chip em{
  font-style:normal;font-size:9.5px;letter-spacing:.05em;color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}
.chip:hover{border-color:rgba(156,29,21,.42);color:var(--red)}
.chip.is-active{background:var(--red);border-color:var(--red);color:#fff8ef}
.chip.is-active em{color:rgba(255,248,239,.62)}

.yearrail{
  display:flex;flex-wrap:wrap;gap:1px;padding:7px 0 9px;
  border-top:1px solid var(--line-soft);
}
.yearrail::-webkit-scrollbar{display:none}
.yr{
  flex:0 0 auto;padding:3px 6px;font-size:10.5px;letter-spacing:.02em;
  color:var(--ink-3);border-radius:2px;font-variant-numeric:tabular-nums;
  transition:all .2s;border:1px solid transparent;
}
.yr:hover{color:var(--red);background:rgba(156,29,21,.06)}
.yr.is-on{color:#fff8ef;background:var(--red)}
.yr.is-off{opacity:.3}

/* ---------- 时间流 ---------- */
.feed{padding:8px 0 90px;min-height:60vh}

.year{
  display:grid;grid-template-columns:132px 1fr;
  position:relative;padding-top:44px;
}
.year:first-child{padding-top:24px}
.year-stick{
  position:sticky;top:calc(var(--top-h) + var(--tool-h) + 6px);
  align-self:start;text-align:right;padding-right:30px;
}
.year-num{
  font-family:var(--serif);font-size:34px;font-weight:600;line-height:1;
  letter-spacing:.02em;color:var(--ink);font-variant-numeric:tabular-nums;
}
.year-num.is-war{color:var(--red)}
.year-meta{font-size:10.5px;letter-spacing:.16em;color:var(--ink-3);margin-top:8px}

.events{position:relative;padding-left:34px}
.events::before{
  content:"";position:absolute;left:0;top:0;bottom:12px;width:1px;
  background:linear-gradient(180deg,transparent,var(--line) 3%,var(--line) 94%,transparent);
}

.ev{position:relative;padding:0 0 8px;animation:evIn .5s var(--ease) both}
@keyframes evIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}

.ev-btn{
  display:grid;grid-template-columns:54px 1fr 18px;gap:16px;align-items:start;
  width:100%;text-align:left;padding:16px 18px 16px 0;position:relative;
  border-bottom:1px solid var(--line-soft);
  transition:background .25s;
}
.ev-btn::before{
  content:"";position:absolute;left:-38px;top:24px;
  width:8px;height:8px;border-radius:50%;
  background:var(--paper);border:1.5px solid var(--red);
  transition:all .25s var(--ease);
}
.ev-btn:hover{background:rgba(255,253,248,.6)}
.ev-btn:hover::before{background:var(--red);box-shadow:0 0 0 4px rgba(156,29,21,.1)}

.ev-date{
  font-family:var(--serif);font-size:13.5px;letter-spacing:.02em;color:var(--red);
  padding-top:5px;font-variant-numeric:tabular-nums;white-space:nowrap;
}
.ev-main{min-width:0;max-width:1080px}
.ev-title{
  font-family:var(--serif);font-size:17.5px;font-weight:600;line-height:1.5;
  margin-bottom:3px;letter-spacing:.01em;transition:color .2s;
}
.ev-btn:hover .ev-title{color:var(--red)}
.ev-sum{
  font-size:13px;color:var(--ink-2);line-height:1.8;margin:0;
  max-width:46em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.ev-tag{
  display:inline-block;margin-top:7px;font-size:9.5px;letter-spacing:.14em;
  color:var(--ink-3);border:1px solid var(--line);padding:2px 7px;border-radius:2px;
}
.ev-tag.is-major{color:var(--red);border-color:rgba(156,29,21,.3);background:rgba(156,29,21,.045)}
.ev-arrow{
  align-self:center;color:var(--ink-3);font-size:14px;opacity:0;
  transform:translateX(-4px);transition:all .25s var(--ease);
}
.ev-btn:hover .ev-arrow{opacity:1;transform:none;color:var(--red)}

.ev.is-major .ev-title{font-size:19px}
.ev.is-major .ev-btn::before{width:10px;height:10px;left:-39px;background:var(--red);border-color:var(--red)}

.year.is-hidden,.ev.is-hidden{display:none}

/* 终点 */
.terminus{
  width:min(var(--wrap-max),calc(100% - 56px));
  margin:0 auto;padding:20px 0 90px;text-align:center;
}
.terminus-rule{
  width:1px;height:72px;margin:0 auto 26px;
  background:linear-gradient(180deg,var(--line),var(--red));
}
.terminus-date{
  font-family:var(--serif);font-size:clamp(18px,2.4vw,24px);
  letter-spacing:.16em;color:var(--red);margin:0 0 8px;
}
.terminus-text{
  font-family:var(--serif);font-size:15px;letter-spacing:.2em;
  color:var(--ink-2);margin:0 0 18px;
}
.terminus-hint{font-size:10.5px;letter-spacing:.18em;color:var(--ink-3);margin:0}

/* 空状态 */
.empty{padding:90px 0 120px;text-align:center}
.empty p{font-family:var(--serif);font-size:20px;color:var(--ink-2);margin:0 0 6px}
.empty span{font-size:13px;color:var(--ink-3)}

/* ---------- 详情 ---------- */
.modal{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:24px}
.modal[hidden]{display:none}
.modal-veil{
  position:absolute;inset:0;background:rgba(28,23,20,.46);
  backdrop-filter:blur(6px);animation:veilIn .3s ease both;
}
@keyframes veilIn{from{opacity:0}to{opacity:1}}
.modal-card{
  position:relative;width:min(760px,100%);max-height:min(86vh,880px);
  background:var(--card);border:1px solid var(--line);border-top:3px solid var(--red);
  box-shadow:var(--shadow-3);display:flex;flex-direction:column;
  animation:cardIn .42s var(--ease) both;
}
@keyframes cardIn{from{opacity:0;transform:translateY(20px) scale(.99)}to{opacity:1;transform:none}}
.modal-close{
  position:absolute;top:12px;right:14px;width:34px;height:34px;
  display:grid;place-items:center;font-size:22px;line-height:1;color:var(--ink-3);
  border-radius:50%;transition:all .2s;z-index:2;
}
.modal-close:hover{background:rgba(33,28,25,.06);color:var(--red)}

.modal-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:28px 34px 0}
.modal-date{
  font-family:var(--serif);font-size:26px;letter-spacing:.02em;color:var(--red);
  font-variant-numeric:tabular-nums;line-height:1.1;
}
.modal-date b{font-size:15px;font-weight:500;color:var(--ink-3);margin-left:4px;letter-spacing:.1em}
.modal-cat{
  font-size:10.5px;letter-spacing:.16em;color:var(--ink-3);
  border:1px solid var(--line);padding:3px 9px;border-radius:2px;
}
.modal-title{padding:12px 34px 0;font-size:clamp(21px,2.6vw,28px);line-height:1.42}
.modal-figures{display:flex;flex-wrap:wrap;gap:8px;padding:14px 34px 0}
.modal-figures:empty{display:none}
.fig{
  display:flex;align-items:baseline;gap:6px;
  background:rgba(156,29,21,.045);border:1px solid rgba(156,29,21,.14);
  padding:5px 10px;border-radius:2px;
}
.fig b{font-family:var(--serif);font-size:14px;color:var(--red);font-weight:600}
.fig span{font-size:10px;letter-spacing:.08em;color:var(--ink-3)}

.modal-body{
  padding:20px 34px 0;overflow-y:auto;flex:1;
  font-size:15px;color:var(--ink-2);line-height:2;
}
.modal-body p{margin:0 0 1em}
.modal-body p:last-child{margin-bottom:0}
.modal-body strong{color:var(--ink);font-weight:600}

.modal-facts{padding:18px 34px 0}
.modal-facts:empty{display:none}
.modal-facts h4{
  font-size:10.5px;letter-spacing:.2em;color:var(--ink-3);font-weight:500;
  margin-bottom:9px;font-family:var(--sans);
}
.modal-facts ul{border-top:1px solid var(--line-soft)}
.modal-facts li{
  font-size:13px;color:var(--ink-2);line-height:1.85;
  padding:8px 0 8px 16px;border-bottom:1px solid var(--line-soft);position:relative;
}
.modal-facts li::before{
  content:"";position:absolute;left:2px;top:16px;
  width:4px;height:4px;border-radius:50%;background:var(--gold);
}

.modal-foot{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:18px 34px 22px;margin-top:18px;border-top:1px solid var(--line-soft);
}
.navbtn{
  display:inline-flex;align-items:center;gap:7px;
  font-size:12.5px;letter-spacing:.06em;color:var(--ink-2);
  padding:7px 12px;border:1px solid var(--line);border-radius:2px;
  transition:all .22s var(--ease);max-width:44%;
}
.navbtn span{color:var(--ink-3)}
.navbtn:hover:not(:disabled){border-color:var(--red);color:var(--red);background:rgba(156,29,21,.04)}
.navbtn:disabled{opacity:.35;cursor:not-allowed}
.modal-pos{font-size:10.5px;letter-spacing:.12em;color:var(--ink-3);font-variant-numeric:tabular-nums}

/* ---------- 页脚 ---------- */
.footer{border-top:1px solid var(--line);background:var(--paper-2);padding:52px 0 0;margin-top:40px}
.footer-grid{display:grid;grid-template-columns:.4fr 1.6fr;gap:48px;padding-bottom:40px}
.footer-brand{display:flex;align-items:flex-start;gap:11px}
.footer-brand p{font-family:var(--serif);font-size:16px;letter-spacing:.08em;margin:0}
.footer-brand em{font-style:normal;font-size:10.5px;letter-spacing:.2em;color:var(--ink-3)}
.footer-note p{font-size:12px;color:var(--ink-3);line-height:1.95;margin:0 0 10px}
.footer-note b{color:var(--ink-2);font-weight:500;letter-spacing:.06em}
.footer-bottom{
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  border-top:1px solid var(--line-soft);padding:16px 0;
  font-size:10.5px;letter-spacing:.12em;color:var(--ink-3);
}

.to-top{
  position:fixed;right:24px;bottom:24px;z-index:70;
  width:42px;height:42px;border-radius:50%;
  background:var(--card);border:1px solid var(--line);
  color:var(--ink-2);font-size:14px;box-shadow:var(--shadow-1);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:all .3s var(--ease);
}
.to-top.is-on{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--red);color:#fff8ef;border-color:var(--red)}

/* ---------- 响应式 ---------- */
@media (max-width:980px){
  :root{--tool-h:98px}
  .year{grid-template-columns:104px 1fr}
  .year-num{font-size:28px}
  .modal-card{max-height:88vh}
}

@media (max-width:760px){
  :root{--top-h:56px;--tool-h:92px}
  .wrap,.topbar-inner{width:calc(100% - 36px)}
  .topbar-meta{display:none}
  .search{max-width:none}
  .brand-text{font-size:14px}
  .brand-seal{width:32px;height:32px;font-size:11px}

  .hero{padding:calc(var(--top-h) + 42px) 0 36px}
  .hero-title span{font-size:clamp(34px,10vw,48px);letter-spacing:.04em}
  .hero-sub{font-size:14.5px;line-height:1.95}
  .hero-stats{gap:22px;padding-top:18px}
  .hero-stats strong{font-size:16px}
  .hero-stats div:nth-child(4),.hero-stats div:nth-child(5){display:none}

  .chips{gap:6px;padding:10px 0 9px}
  .chip{height:30px;padding:0 10px;font-size:11.5px}

  /* 年份条在窄屏横滑，避免堆成多行 */
  .yearrail{
    flex-wrap:nowrap;overflow-x:auto;
    scrollbar-width:none;-ms-overflow-style:none;
  }
  .yearrail::-webkit-scrollbar{display:none}
  .chip{height:29px;font-size:11.5px;padding:0 11px}
  .chip em{display:none}

  .year{grid-template-columns:1fr;padding-top:26px}
  .year-stick{
    position:static;text-align:left;padding:0 0 10px;
    display:flex;align-items:baseline;gap:10px;
    border-bottom:1px solid var(--line);
  }
  .year-num{font-size:24px}
  .year-meta{margin:0;font-size:10px}
  .events{padding-left:22px;padding-top:8px}
  .ev-btn{grid-template-columns:44px 1fr;gap:12px;padding:13px 0}
  .ev-btn::before{left:-26px;top:20px;width:7px;height:7px}
  .ev-arrow{display:none}
  .ev-title{font-size:15.5px}
  .ev.is-major .ev-title{font-size:16.5px}
  .ev-sum{font-size:12.5px;-webkit-line-clamp:3}
  .ev-date{font-size:12px}

  .modal{padding:0;align-items:flex-end}
  .modal-card{
    width:100%;max-height:92vh;border-left:0;border-right:0;border-bottom:0;
    animation:sheetIn .38s var(--ease) both;
  }
  @keyframes sheetIn{from{transform:translateY(60px);opacity:.6}to{transform:none;opacity:1}}
  .modal-head{padding:22px 20px 0}
  .modal-title{padding:10px 20px 0;font-size:20px}
  .modal-figures{padding:12px 20px 0}
  .modal-body{padding:16px 20px 0;font-size:14px;line-height:1.95}
  .modal-facts{padding:14px 20px 0}
  .modal-foot{padding:14px 20px 20px;margin-top:14px}
  .modal-close{top:8px;right:8px}
  .blk{margin:14px 20px 0;padding:13px 14px}
  .poem-line{font-size:14.5px;line-height:2}
  .ev-badge{font-size:9px;padding:2px 6px}
  .ev.is-mao .ev-btn{padding-left:12px;margin-left:-12px}
  .hero-mao{gap:20px}

  .footer-grid{grid-template-columns:1fr;gap:26px}
  .to-top{right:14px;bottom:14px;width:38px;height:38px}
}



/* ============================================================
   毛泽东线索：朱色批注
   ============================================================ */

.hero-mao{
  display:flex;gap:30px;flex-wrap:wrap;
  margin-top:18px;padding-top:16px;border-top:1px solid var(--line-soft);max-width:820px;
}
.hero-mao div{display:flex;flex-direction:column;gap:2px}
.hero-mao strong{
  font-family:var(--serif);font-size:19px;font-weight:600;color:var(--red);
  font-variant-numeric:tabular-nums;
}
.hero-mao span{font-size:10px;letter-spacing:.16em;color:var(--ink-3)}

.chip-mao{border-color:rgba(156,29,21,.34);color:var(--red);background:rgba(156,29,21,.035)}
.chip-mao em{color:rgba(156,29,21,.55)}
.chip-mao.is-active{background:var(--red);color:#fff8ef;border-color:var(--red)}
.chip-mao.is-active em{color:rgba(255,248,239,.62)}

.year-mao{
  display:inline-block;margin-left:6px;padding:0 4px;
  font-style:normal;font-size:9px;line-height:1.6;
  color:var(--red);border:1px solid rgba(156,29,21,.3);border-radius:2px;
  font-variant-numeric:tabular-nums;vertical-align:middle;
}

/* —— 时间流条目 —— */
.ev.is-mao .ev-btn{
  border-left:2px solid var(--red);
  padding-left:16px;margin-left:-18px;
  background:linear-gradient(90deg,rgba(156,29,21,.045),rgba(156,29,21,.012) 42%,transparent 78%);
}
.ev.is-mao .ev-btn::before{
  left:-40px;width:9px;height:9px;border-radius:1px;
  background:var(--red);border-color:var(--red);
}
.ev.is-mao .ev-btn:hover{background:linear-gradient(90deg,rgba(156,29,21,.08),rgba(156,29,21,.02) 42%,transparent 78%)}
.ev.is-mao .ev-title{color:var(--ink)}

.ev.mt-poem .ev-btn{border-left-style:dashed}
.ev.mt-volume .ev-btn{border-left-width:3px}

.ev-badge{
  display:inline-flex;align-items:baseline;gap:5px;
  margin-top:7px;margin-left:6px;padding:2px 7px;border-radius:2px;
  font-size:9.5px;letter-spacing:.14em;
  color:var(--red);background:rgba(156,29,21,.07);
  border:1px solid rgba(156,29,21,.18);
  vertical-align:middle;
}
.ev-badge i{
  font-style:normal;font-size:8.5px;letter-spacing:.02em;
  color:rgba(156,29,21,.66);padding-left:5px;border-left:1px solid rgba(156,29,21,.2);
}
.ev-badge.b-work{background:rgba(156,29,21,.1);border-color:rgba(156,29,21,.3)}
.ev-badge.b-poem{
  background:transparent;border-style:dashed;color:rgba(156,29,21,.86);
}
.ev-badge.b-volume{
  background:var(--red);color:#fff8ef;border-color:var(--red);
}
.ev-badge.b-volume i{color:rgba(255,248,239,.72);border-left-color:rgba(255,248,239,.3)}

.ev.is-compact .ev-btn{padding:11px 18px 11px 16px}
.ev.is-compact .ev-btn::before{top:19px}
.ev.is-compact .ev-title{font-size:16px;margin-bottom:0}
.ev.is-compact .ev-date{font-size:12.5px}

/* —— 详情：附加区块 —— */
.modal-extra:empty{display:none}
.blk{
  margin:18px 34px 0;padding:16px 18px;
  border:1px solid var(--line-soft);border-left:2px solid var(--red);
  background:rgba(156,29,21,.025);
}
.blk h4{
  font-family:var(--sans);font-size:10px;letter-spacing:.2em;
  color:var(--red);font-weight:500;margin-bottom:8px;
}
.blk p{font-size:14px;color:var(--ink-2);line-height:1.95;margin:0}

.blk-poem{
  background:linear-gradient(180deg,rgba(173,139,85,.06),rgba(156,29,21,.02));
  border-left-color:var(--gold);text-align:center;padding:22px 20px;
}
.blk-poem h4{color:var(--gold);text-align:left}
.poem-text{margin:0}
.poem-line{
  font-family:var(--serif);font-size:15.5px;line-height:2.15;
  letter-spacing:.06em;color:var(--ink);
}
.poem-gap{height:12px}
.poem-sub{
  font-family:var(--serif);font-size:11px;letter-spacing:.3em;
  color:var(--ink-3);margin:4px 0 6px;
}

.blk-why{background:rgba(156,29,21,.04);border-left-width:3px}
.blk-why p{font-size:14.5px;color:var(--ink);line-height:2}

.blk-bk{background:rgba(255,253,248,.6);border-left-color:var(--gold)}
.blk-bk dl{display:grid;grid-template-columns:52px 1fr;gap:6px 10px;margin:0}
.blk-bk dt{font-size:10.5px;letter-spacing:.12em;color:var(--ink-3);padding-top:3px}
.blk-bk dd{margin:0;font-size:13px;color:var(--ink-2);line-height:1.8}

.blk-mao{background:rgba(156,29,21,.03)}

.modal-cat.is-mao{border-color:rgba(156,29,21,.32);color:var(--red);background:rgba(156,29,21,.05)}
.modal-card.is-mao{border-top-color:var(--red)}
.modal-card.mt-poem{border-top-color:var(--gold)}
.modal-card.mt-poem .modal-date{color:var(--gold)}
.modal-card.mt-poem .blk h4{color:var(--gold)}

/* 中等屏：年份条更紧凑 */

@media (max-width:1100px) and (min-width:901px){
  .yr{padding:2px 4px;font-size:10px;letter-spacing:0}
  .yearrail{gap:1px;padding:6px 0 8px}
  .chip{height:30px;padding:0 11px;font-size:12px}
}

/* 窄屏：年份条单行横滑，避免堆成三行占掉半屏（标签仍完整换行） */
@media (max-width:900px){
  .yearrail{
    flex-wrap:nowrap;overflow-x:auto;gap:1px;
    scrollbar-width:none;-ms-overflow-style:none;
  }
  .yearrail::-webkit-scrollbar{display:none}
  .yr{padding:2px 5px;font-size:10px;letter-spacing:0}
  .chip{height:30px;padding:0 11px;font-size:12px}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
