/* ============================================================
   文学馆 · 古典小说馆 — 线装古籍视觉系统
   素宣纸底 · 黛青函套 · 朱砂印章 · 题签竖排书封
   ============================================================ */

:root {
  --paper: #f6f4ee;          /* 素宣纸 */
  --paper2: #efede5;
  --paper3: #e2ded2;
  --ink: #201e18;            /* 浓墨 */
  --ink2: #46433b;           /* 常墨 */
  --ink3: #6f6b60;           /* 淡墨 */
  --indigo: #3b5768;         /* 黛青·函套主色 */
  --indigo2: #2b4353;
  --indigo-deep: #161f26;    /* 深黛墨（hero 底） */
  --indigo-soft: rgba(59, 87, 104, .10);
  --cinnabar: #a63c2c;       /* 朱砂·印章 */
  --cinnabar2: #bb4a37;
  --cinnabar-soft: rgba(166, 60, 44, .09);
  --gold: #b08c4e;           /* 描金·点缀 */
  --line: #d9d2c0;           /* 界栏 */

  /* 体类函套色（书封底） */
  --mood-biji: #4a5d50;      /* 笔记·竹青 */
  --mood-chuanqi: #7a4f3a;   /* 传奇·赭褐 */
  --mood-huaben: #42586e;    /* 话本·黛蓝 */
  --mood-zhanghui: #34332e;  /* 章回·玄墨 */
  --mood-heji: #6a5640;      /* 合集·棕褐 */

  --kai: "Kaiti SC", STKaiti, KaiTi, BiauKai, "楷体", serif;
  --brush: "Kaiti SC", STKaiti, KaiTi, BiauKai, "楷体", serif;
  --song: "Songti SC", STZhongsong, SimSun, "宋体", serif;
  --body: "Songti SC", SimSun, "Noto Serif CJK SC", serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  color: var(--ink);
  background-color: var(--paper);
  background-image:
    radial-gradient(ellipse at 20% 0%, rgba(176, 140, 78, .06), transparent 55%),
    radial-gradient(ellipse at 85% 100%, rgba(59, 87, 104, .05), transparent 50%);
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}

/* 宣纸纹理 */
.paper-grain {
  position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .5;
  background-image:
    repeating-linear-gradient(0deg, rgba(0,0,0,.012) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(90deg, rgba(0,0,0,.008) 0 1px, transparent 1px 4px);
}
main.wrap, header.topbar { position: relative; z-index: 1; }

a { color: var(--indigo); text-decoration: none; }
a:hover { color: var(--cinnabar); }

::selection { background: var(--indigo-soft); }

.wrap { max-width: 1120px; margin: 0 auto; padding: 0 28px; }

/* ============ 顶栏 · 黛青函套 ============ */
.topbar {
  position: sticky; top: 0; z-index: 50;
  background: linear-gradient(180deg, rgba(29,43,53,.96), rgba(26,40,50,.96));
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(201,163,92,.38);
}
.topbar .wrap {
  display: flex; align-items: center; justify-content: space-between;
  height: 58px; gap: 24px;
}
.brand { display: flex; align-items: baseline; gap: 10px; white-space: nowrap; }
.brand .t1 { font-family: var(--song); font-size: 19px; font-weight: 700; letter-spacing: 3px; color: #f1eee5; }
.brand .t2 { font-size: 11px; letter-spacing: 2px; color: rgba(201,163,92,.9); font-family: var(--kai); }
.nav { display: flex; gap: 26px; font-size: 14.5px; font-family: var(--kai); }
.nav a { color: rgba(239,236,226,.72); position: relative; padding: 4px 0; }
.nav a::after {
  content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: 100%;
  background: var(--gold); transform: scaleX(0); transition: transform .25s; transform-origin: left;
}
.nav a:hover { color: #f1eee5; }
.nav a.on { color: #f1eee5; }
.nav a.on::after, .nav a:hover::after { transform: scaleX(1); }

/* ============ 首页 · 全屏卷首 ============ */
.hero {
  min-height: 100vh;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  position: relative; overflow: hidden;
  color: #efece2;
  background:
    radial-gradient(ellipse at 50% 42%, rgba(176, 140, 78, .10), transparent 46%),
    radial-gradient(ellipse at 12% 88%, rgba(166, 60, 44, .08), transparent 42%),
    linear-gradient(165deg, #1c2831 0%, var(--indigo-deep) 48%, #10161c 100%);
  text-align: center;
}
.hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55;
  background-image:
    repeating-linear-gradient(0deg, rgba(255,255,255,.014) 0 1px, transparent 1px 4px),
    radial-gradient(circle at 25% 20%, rgba(255,255,255,.03), transparent 30%);
}
.hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5), transparent 62%);
}
.hero > * { position: relative; z-index: 2; }

.hh-brand { position: absolute; top: 26px; left: 34px; display: flex; flex-direction: column; gap: 2px; text-align: left; }
.hh-brand .t1 { font-family: var(--song); font-size: 20px; font-weight: 700; letter-spacing: 5px; color: #efece2; }
.hh-brand .t2 { font-size: 10.5px; letter-spacing: 3px; color: rgba(176, 140, 78, .9); font-family: var(--kai); }

.vquote {
  position: absolute; right: 46px; top: 50%; transform: translateY(-50%);
  writing-mode: vertical-rl; font-family: var(--brush); font-size: 20px;
  letter-spacing: 10px; color: rgba(239, 236, 226, .88);
  text-shadow: 0 0 24px rgba(0,0,0,.55);
}
.vquote small { display: block; margin-top: 18px; font-size: 12px; letter-spacing: 5px; color: rgba(176,140,78,.75); }

.hero h1 {
  font-family: var(--song); font-size: 96px; font-weight: 700;
  letter-spacing: 22px; text-indent: 22px; line-height: 1.15;
  color: #f1eee5;
}
.hero h1 em { font-style: normal; color: #c96a52; text-shadow: 0 2px 26px rgba(201, 106, 82, .5); }
.hero .subtitle {
  margin-top: 22px; font-family: var(--kai); font-size: 17px;
  letter-spacing: 3px; color: rgba(239, 236, 226, .8);
}
.hero .subtitle b { color: #d8a25c; font-weight: 600; }
.hero .oneline {
  margin-top: 10px; font-size: 13.5px; letter-spacing: 2px;
  color: rgba(239, 236, 226, .55); font-family: var(--kai);
}

/* 首页四门 */
.hh-nav {
  margin-top: 56px; display: flex; gap: 18px; flex-wrap: wrap;
  justify-content: center;
}
.hh-nav a {
  width: 176px; padding: 18px 16px 14px;
  border: 1px solid rgba(239, 236, 226, .22);
  background: rgba(255, 255, 255, .04);
  backdrop-filter: blur(3px);
  display: flex; flex-direction: column; gap: 4px; text-align: left;
  transition: all .3s;
}
.hh-nav a:hover {
  border-color: rgba(176, 140, 78, .75);
  background: rgba(255, 255, 255, .08);
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, .4);
}
.hh-nav a b { font-family: var(--song); font-size: 22px; letter-spacing: 5px; color: #f1eee5; font-weight: 700; }
.hh-nav a:hover b { color: #e8b469; }
.hh-nav a span { font-size: 12px; letter-spacing: 1.5px; color: rgba(239, 236, 226, .6); font-family: var(--kai); }
.hh-nav a i { font-style: normal; font-size: 14px; color: rgba(176, 140, 78, .8); margin-top: 4px; }

/* ============ 子页页头 ============ */
.pagehead {
  padding: 58px 0 34px; border-bottom: 1px solid var(--line);
  margin-bottom: 10px; position: relative;
}
.pagehead::after {
  content: ""; position: absolute; left: 0; bottom: -1px;
  width: 118px; height: 3px; background: linear-gradient(90deg, var(--gold), transparent);
}
.ph-kicker {
  display: inline-block; font-size: 11.5px; letter-spacing: 6px;
  color: var(--cinnabar); font-family: var(--kai); margin-bottom: 14px;
  padding-left: 14px; border-left: 3px solid var(--cinnabar);
}
.pagehead h1 {
  font-family: var(--song); font-size: 42px; font-weight: 700;
  letter-spacing: 8px; color: var(--ink); line-height: 1.3;
}
.pagehead p {
  margin-top: 16px; max-width: 760px; font-size: 14.5px;
  color: var(--ink2); font-family: var(--kai); line-height: 2;
}
.ph-stats { margin-top: 22px; display: flex; gap: 14px; flex-wrap: wrap; }
.ph-stats span {
  font-size: 12.5px; color: var(--ink3); font-family: var(--kai);
  border: 1px solid var(--line); background: rgba(255,255,255,.5);
  padding: 6px 14px; letter-spacing: 1px;
}
.ph-stats b { color: var(--indigo); font-size: 15px; margin-right: 4px; font-family: var(--song); }

/* ============ 通用区块 ============ */
.block { padding: 44px 0 10px; }
.sec-head { margin-bottom: 26px; position: relative; }
.sec-head .kicker {
  display: block; font-size: 11px; letter-spacing: 5px;
  color: var(--indigo); font-family: var(--kai); margin-bottom: 8px;
}
.sec-head h2 {
  font-family: var(--song); font-size: 28px; font-weight: 700;
  letter-spacing: 4px; color: var(--ink); line-height: 1.4;
}
.sec-head h2::after {
  content: ""; display: inline-block; width: 34px; height: 2px;
  background: var(--cinnabar); margin-left: 14px; vertical-align: middle;
}
.sec-head p { margin-top: 10px; max-width: 720px; font-size: 14px; color: var(--ink2); font-family: var(--kai); }

/* 反常识卡片 */
.reverse { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.r-card {
  border: 1px solid var(--line); border-top: 3px solid var(--indigo);
  background: rgba(255, 255, 255, .55); padding: 22px 22px 18px;
  transition: all .25s;
}
.r-card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(20, 30, 36, .1); }
.r-card .no {
  display: inline-block; font-family: var(--kai); font-size: 15px;
  color: var(--cinnabar); letter-spacing: 2px; margin-bottom: 8px;
}
.r-card h3 { font-family: var(--song); font-size: 19px; letter-spacing: 2px; color: var(--ink); margin-bottom: 8px; }
.r-card p { font-size: 13.5px; color: var(--ink2); font-family: var(--kai); line-height: 1.9; }
.r-card b { color: var(--cinnabar); font-weight: 600; }

/* 时间轴 */
.timeline { position: relative; margin: 8px 0 8px; padding-left: 26px; }
.timeline::before {
  content: ""; position: absolute; left: 6px; top: 6px; bottom: 6px; width: 2px;
  background: linear-gradient(180deg, var(--indigo), var(--line) 70%);
}
.tnode { position: relative; padding: 0 0 26px; }
.tnode::before {
  content: ""; position: absolute; left: -26px; top: 8px;
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--cinnabar);
  box-shadow: 0 0 0 4px rgba(166, 60, 44, .16), 0 0 0 6px var(--paper);
}
.tnode .when {
  font-family: var(--kai); font-size: 13px; letter-spacing: 3px;
  color: var(--cinnabar); margin-bottom: 2px;
}
.tnode h3 { font-family: var(--song); font-size: 18px; letter-spacing: 1px; color: var(--ink); margin-bottom: 4px; }
.tnode p { font-size: 13.5px; color: var(--ink2); max-width: 700px; font-family: var(--kai); line-height: 1.9; }
.tnode p b { color: var(--indigo); font-weight: 600; }

/* 体类四脉 */
.veins { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.vein {
  border: 1px solid var(--line); border-bottom: 3px solid var(--mood-zhanghui);
  background: rgba(255, 255, 255, .5); padding: 22px 18px 16px;
  display: flex; flex-direction: column; gap: 8px; transition: all .25s;
}
.vein:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(20, 30, 36, .12); }
.vein .v-name { font-family: var(--brush); font-size: 26px; letter-spacing: 4px; color: var(--ink); }
.vein .v-en { font-size: 10px; letter-spacing: 3px; color: var(--indigo); font-family: var(--kai); }
.vein p { font-size: 13px; color: var(--ink2); font-family: var(--kai); line-height: 1.9; }
.vein .v-num {
  margin-top: 6px; font-size: 12px; color: var(--ink3); font-family: var(--kai);
  border-top: 1px dashed var(--line); padding-top: 8px;
}
.vein .v-num b { color: var(--cinnabar); font-family: var(--song); font-size: 14px; }
.vein.biji { border-bottom-color: var(--mood-biji); }
.vein.chuanqi { border-bottom-color: var(--mood-chuanqi); }
.vein.huaben { border-bottom-color: var(--mood-huaben); }
.vein.zhanghui { border-bottom-color: var(--mood-zhanghui); }

/* 母题九宫格 */
.motifs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.motif {
  border: 1px solid var(--line); border-left: 4px solid var(--indigo);
  background: rgba(255, 255, 255, .5); padding: 16px 18px 14px;
  transition: all .25s;
}
.motif:hover { transform: translateY(-3px); border-left-color: var(--cinnabar); box-shadow: 0 10px 22px rgba(20, 30, 36, .1); }
.motif h4 { font-family: var(--song); font-size: 16px; letter-spacing: 2px; color: var(--ink); margin-bottom: 4px; }
.motif h4 span { color: var(--cinnabar); font-size: 12px; margin-right: 6px; font-family: var(--kai); }
.motif p { font-size: 12.5px; color: var(--ink2); font-family: var(--kai); line-height: 1.85; }

/* 馆藏对照 */
.shelf-map { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.smap {
  border: 1px solid var(--line); background: rgba(255, 255, 255, .55);
  padding: 18px 16px 14px; text-align: center;
}
.smap .s-seal {
  width: 46px; height: 46px; margin: 0 auto 10px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--brush); font-size: 24px; color: #f6f4ee;
  background: var(--mood-zhanghui);
  border: 2px solid #f6f4ee; outline: 1px solid rgba(0,0,0,.35); outline-offset: -5px;
  transform: rotate(-4deg);
}
.smap .s-name { font-family: var(--song); font-size: 16px; letter-spacing: 2px; color: var(--ink); }
.smap .s-en { font-size: 10px; letter-spacing: 2px; color: var(--indigo); font-family: var(--kai); margin-bottom: 6px; }
.smap .s-num { font-size: 12.5px; color: var(--ink3); font-family: var(--kai); }
.smap .s-num b { color: var(--cinnabar); font-size: 15px; font-family: var(--song); }

/* 寻书帖 */
.wanted { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.w-card {
  border: 1px dashed var(--line); border-left: 4px solid var(--gold);
  background: rgba(255, 255, 255, .4); padding: 16px 18px;
}
.w-card .w-t {
  font-family: var(--song); font-size: 16px; letter-spacing: 1px; color: var(--ink);
}
.w-card .w-t .lv { font-size: 11px; color: var(--cinnabar); border: 1px solid var(--cinnabar); padding: 1px 7px; margin-left: 8px; font-family: var(--kai); letter-spacing: 1px; }
.w-card .w-t .lv.opt { color: var(--indigo); border-color: var(--indigo); }
.w-card p { font-size: 12.5px; color: var(--ink2); font-family: var(--kai); margin-top: 4px; line-height: 1.85; }

/* ============ 作品一览 ============ */
.filterbar { position: sticky; top: 58px; z-index: 40; background: linear-gradient(180deg, rgba(29,43,53,.96), rgba(26,40,50,.96)); backdrop-filter: blur(6px); padding: 14px 0 10px; border-bottom: 1px solid rgba(201,163,92,.38); margin-bottom: 26px; }
.tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.tab {
  font-family: var(--kai); font-size: 13.5px; letter-spacing: 1px;
  color: rgba(239,236,226,.78); background: none;
  border: 1px solid rgba(201,163,92,.4); padding: 6px 16px; cursor: pointer;
  transition: all .2s; border-radius: 2px;
}
.tab:hover { color: #e2ac62; border-color: #c9a35c; }
.tab.on { color: #1d2b35; background: var(--gold); border-color: var(--gold); font-weight: 600; }
.tab-row2 { margin-top: 8px; }
.tab-row2 .tab { font-size: 12.5px; padding: 4px 12px; }
.tab-row2 .tab.on { background: #161f26; border-color: var(--gold); color: #f1eee5; }

.search {
  margin-top: 12px; display: flex; align-items: center; gap: 8px;
  border-bottom: 1px solid rgba(201,163,92,.45); width: 260px; max-width: 100%; padding-bottom: 4px;
}
.search svg { color: rgba(239,236,226,.55); flex: none; }
.search input { background: none; border: none; outline: none; color: #f1eee5; font-size: 13.5px; width: 100%; font-family: var(--kai); }
.search input::placeholder { color: rgba(239,236,226,.5); }
.count-line { margin-top: 10px; font-size: 12.5px; color: rgba(239,236,226,.55); font-family: var(--kai); letter-spacing: 1px; }

/* 书封墙 */
.bookwall {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 26px 18px; padding-bottom: 60px;
}
.bk { cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 9px; }
.bk .cover {
  width: 150px; height: 216px; position: relative;
  background: var(--mood-zhanghui); border-radius: 3px 10px 10px 3px;
  box-shadow:
    2px 0 0 rgba(0, 0, 0, .28),        /* 书脊阴影 */
    -1px 0 0 rgba(255, 255, 255, .14), /* 封面高光 */
    0 12px 22px rgba(20, 30, 36, .24);
  transition: transform .28s, box-shadow .28s;
  overflow: hidden;
}
.bk:hover .cover { transform: translateY(-5px) rotate(-1deg); box-shadow: 2px 0 0 rgba(0,0,0,.28), 0 20px 34px rgba(20, 30, 36, .32); }
.bk .cover::before { /* 纸纹 */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image:
    repeating-linear-gradient(0deg, rgba(0,0,0,.03) 0 1px, transparent 1px 3px);
  opacity: .5; mix-blend-mode: multiply;
}
.bk .cover::after { /* 封面内侧暗角（书口） */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 88% 50%, rgba(0,0,0,.28), transparent 46%);
}

/* 书脊 */
.cv-spine {
  position: absolute; left: 0; top: 0; bottom: 0; width: 13px;
  background: linear-gradient(90deg, rgba(0,0,0,.42), rgba(0,0,0,.10) 70%, transparent);
  z-index: 3;
}
.cv-spine::before { /* 线眼 */
  content: ""; position: absolute; left: 4px; top: 14px; bottom: 14px; width: 1px;
  background: rgba(246, 244, 238, .3);
}
.cv-spine i { position: absolute; left: 2px; width: 5px; height: 5px; border-radius: 50%; background: rgba(246,244,238,.75); }
.cv-spine i:nth-child(1) { top: 24px; }
.cv-spine i:nth-child(2) { top: calc(50% - 2px); }
.cv-spine i:nth-child(3) { bottom: 24px; }

/* 包角 */
.cv-corner { position: absolute; width: 16px; height: 16px; background: rgba(0, 0, 0, .35); z-index: 4; }
.cv-corner.tl { top: 0; left: 13px; border-bottom-right-radius: 8px; }
.cv-corner.tr { top: 0; right: 0; border-bottom-left-radius: 8px; }
.cv-corner.bl { bottom: 0; left: 13px; border-top-right-radius: 8px; }
.cv-corner.br { bottom: 0; right: 0; border-top-left-radius: 8px; }

/* 体类标 */
.cv-band {
  position: absolute; top: 10px; right: 10px; z-index: 5;
  font-family: var(--kai); font-size: 10px; letter-spacing: 2px;
  color: rgba(246, 244, 238, .92); border: 1px solid rgba(246, 244, 238, .5);
  padding: 1px 7px; background: rgba(0, 0, 0, .22);
}

/* 题签 */
.cv-ticket {
  position: absolute; left: 22px; top: 22px; bottom: 22px; right: 14px;
  z-index: 2;
  background:
    linear-gradient(90deg, rgba(0,0,0,.05), transparent 10%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(0,0,0,.05));
  border: 1px solid rgba(246, 244, 238, .35);
  display: flex; align-items: center; justify-content: center;
}
.cv-title {
  writing-mode: vertical-rl; font-family: var(--brush);
  color: #f1eee5; letter-spacing: 5px; line-height: 1.35;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .4);
}
.cv-title.t-lg { font-size: 30px; }
.cv-title.t-md { font-size: 25px; }
.cv-title.t-sm { font-size: 20px; }

/* 印章 */
.cv-seal {
  position: absolute; right: 16px; bottom: 14px; z-index: 5;
  width: 30px; height: 30px;
  display: flex; align-items: center; justify-content: center;
  background: var(--cinnabar); color: #f6ece4;
  font-family: var(--brush); font-size: 17px;
  border: 1px solid #f6ece4; outline: 1px solid rgba(0,0,0,.25); outline-offset: -4px;
  transform: rotate(-5deg); opacity: .94;
}
/* 作者与朝代 */
.cv-foot {
  position: absolute; left: 22px; bottom: 12px; right: 52px; z-index: 5;
  font-family: var(--kai); font-size: 10.5px; letter-spacing: 1px;
  color: rgba(246, 244, 238, .82); white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis;
}
.cv-dyn {
  position: absolute; left: 22px; top: 10px; z-index: 5;
  font-family: var(--kai); font-size: 10px; letter-spacing: 2px;
  color: rgba(246, 244, 238, .7);
}

/* 体类色 */
.bk[data-genre="笔记"] .cover { background: var(--mood-biji); }
.bk[data-genre="传奇"] .cover { background: var(--mood-chuanqi); }
.bk[data-genre="话本"] .cover { background: var(--mood-huaben); }
.bk[data-genre="章回"] .cover { background: var(--mood-zhanghui); }
.bk[data-genre="合集"] .cover { background: var(--mood-heji); }

/* 卡下说明 */
.bk-cap { text-align: center; max-width: 150px; }
.bk-cap .bt { font-family: var(--song); font-size: 13.5px; letter-spacing: 1px; color: var(--ink); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bk-cap .ba { font-family: var(--kai); font-size: 11.5px; color: var(--ink3); display: block; margin-top: 1px; }
.bk-cap .bs { font-family: var(--kai); font-size: 10.5px; color: var(--cinnabar); display: block; margin-top: 2px; letter-spacing: 1px; }

/* ============ 四大名著厅 ============ */
.master-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.master {
  border: 1px solid var(--line); background: rgba(255, 255, 255, .55);
  padding: 26px 24px 20px; position: relative;
  border-top: 4px solid var(--indigo);
  transition: all .28s;
}
.master:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(20, 30, 36, .12); }
.master .m-no { position: absolute; top: 14px; right: 18px; font-family: var(--brush); font-size: 40px; color: rgba(59, 87, 104, .14); }
.master .m-kicker { font-size: 11px; letter-spacing: 4px; color: var(--cinnabar); font-family: var(--kai); }
.master h3 { font-family: var(--song); font-size: 26px; letter-spacing: 5px; color: var(--ink); margin: 6px 0 2px; }
.master .m-meta { font-family: var(--kai); font-size: 13px; color: var(--ink3); letter-spacing: 1px; margin-bottom: 10px; }
.master .m-quote { font-family: var(--brush); font-size: 15px; color: var(--indigo); letter-spacing: 2px; margin: 10px 0; line-height: 1.8; }
.master p { font-size: 13px; color: var(--ink2); font-family: var(--kai); line-height: 1.9; }
.master .m-stats { display: flex; gap: 18px; margin-top: 14px; border-top: 1px dashed var(--line); padding-top: 12px; }
.master .m-stats span { font-size: 12px; color: var(--ink3); font-family: var(--kai); }
.master .m-stats b { color: var(--cinnabar); font-family: var(--song); font-size: 15px; margin-right: 3px; }
.master .m-files { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.master .m-file {
  font-family: var(--kai); font-size: 11.5px; color: var(--indigo);
  border: 1px solid var(--indigo); padding: 3px 10px; cursor: pointer;
  transition: all .2s; background: rgba(255,255,255,.4);
}
.master .m-file:hover { background: var(--indigo); color: #f6f4ee; }

.pingdian {
  margin-top: 40px; border: 1px solid var(--line); border-left: 5px solid var(--gold);
  background: rgba(255, 255, 255, .45); padding: 24px 26px;
}
.pingdian h4 { font-family: var(--song); font-size: 18px; letter-spacing: 3px; color: var(--ink); margin-bottom: 12px; }
.pingdian .pd-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 22px; }
.pingdian .pd { font-size: 13px; color: var(--ink2); font-family: var(--kai); line-height: 1.85; }
.pingdian .pd b { color: var(--cinnabar); font-weight: 600; }

/* ============ 页脚 · 黛青函套 ============ */
.site-foot {
  margin-top: 30px; border-top: 1px solid rgba(201,163,92,.38);
  background: linear-gradient(180deg, #1a2832, #141d24);
  padding: 26px 0 40px; text-align: center;
  font-family: var(--kai); font-size: 12px; color: rgba(239,236,226,.66); letter-spacing: 2px;
}
.site-foot .ff-seal {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; margin-bottom: 8px;
  background: var(--cinnabar); color: #f6ece4; font-size: 15px;
  border: 1px solid #f6ece4; outline: 1px solid rgba(0,0,0,.25); outline-offset: -4px;
  transform: rotate(-5deg);
}

/* toast */
#toast {
  position: fixed; left: 50%; bottom: 40px; transform: translateX(-50%) translateY(20px);
  background: var(--indigo-deep); color: #efece2;
  font-family: var(--kai); font-size: 13.5px; letter-spacing: 1px;
  padding: 10px 22px; border-radius: 3px; opacity: 0;
  transition: all .3s; pointer-events: none; z-index: 99;
  border-left: 3px solid var(--gold);
}
#toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* 响应式 */
@media (max-width: 900px) {
  .reverse, .motifs { grid-template-columns: repeat(2, 1fr); }
  .veins { grid-template-columns: repeat(2, 1fr); }
  .shelf-map { grid-template-columns: repeat(3, 1fr); }
  .wanted { grid-template-columns: 1fr; }
  .master-grid { grid-template-columns: 1fr; }
  .hero h1 { font-size: 64px; letter-spacing: 14px; }
  .vquote { display: none; }
  .hh-nav a { width: 150px; }
  .topbar .wrap { flex-wrap: wrap; height: auto; padding: 10px 20px; gap: 8px; }
  .nav { gap: 14px; font-size: 13px; }
  .filterbar { top: 0; }
}
@media (max-width: 560px) {
  .reverse, .motifs, .veins, .shelf-map { grid-template-columns: 1fr; }
  .bookwall { grid-template-columns: repeat(2, 1fr); gap: 22px 14px; }
  .bk .cover { width: 100%; max-width: 150px; height: auto; aspect-ratio: 2/3; margin: 0 auto; }
  .bk-cap { max-width: 100%; }
  .hero h1 { font-size: 46px; letter-spacing: 10px; }
  .hh-nav { gap: 12px; }
  .hh-nav a { width: 45%; }
  .pagehead h1 { font-size: 30px; letter-spacing: 4px; }
}
