/* 亓门传 · 小说阅读区样式 —— 移动端优先 / 水墨阅读 */
:root{
  --paper:#f3ece0;
  --paper-2:#ece3d4;
  --ink:#211d18;
  --ink-soft:#4a443b;
  --gold:#b88a3e;
  --vermilion:#9e3b2e;
  --line:rgba(33,29,24,.12);
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC",serif;
  --sans:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--serif);
  background:var(--paper);
  color:var(--ink);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
/* 纸纹底 */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;
  background:
    radial-gradient(circle at 18% 12%, rgba(184,138,62,.07), transparent 38%),
    radial-gradient(circle at 82% 88%, rgba(158,59,46,.06), transparent 40%),
    var(--paper);
}
a{color:inherit;text-decoration:none}

/* 顶栏 */
.topbar{
  position:sticky;top:0;z-index:30;
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 18px;
  background:rgba(243,236,224,.86);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.brand{
  font-family:var(--serif);font-weight:700;font-size:1.12rem;letter-spacing:.18em;
  color:var(--ink);
}
.brand::before{content:"亓 ";color:var(--vermilion);font-weight:700}
.toc-btn{
  font-family:var(--sans);font-size:.92rem;color:var(--ink-soft);
  border:1px solid var(--line);background:transparent;border-radius:999px;
  padding:6px 16px;cursor:pointer;
}
.toc-btn:active{background:rgba(33,29,24,.05)}

/* 目录抽屉 */
.toc{position:fixed;top:0;right:0;height:100%;width:82%;max-width:360px;z-index:50;
  transform:translateX(105%);transition:transform .28s ease;pointer-events:none}
.toc.show{transform:translateX(0);pointer-events:auto}
.toc-inner{height:100%;background:#2a2520;color:#e9e0d0;display:flex;flex-direction:column;
  box-shadow:-12px 0 40px rgba(0,0,0,.35)}
.toc-head{display:flex;align-items:center;justify-content:space-between;
  padding:18px 20px;font-family:var(--serif);font-size:1.05rem;letter-spacing:.1em;
  border-bottom:1px solid rgba(233,224,208,.14)}
.toc-close{font-size:1.5rem;color:#e9e0d0;line-height:1;background:none;border:none;cursor:pointer}
.toc-scroll{overflow-y:auto;padding:8px 0 30px;flex:1}
.toc-sec{padding:16px 22px 6px;font-family:var(--sans);font-size:.78rem;
  letter-spacing:.22em;color:var(--gold);text-transform:none}
.toc ul{list-style:none}
.toc li a{display:block;padding:9px 22px;font-size:.98rem;color:#d8cfbe;
  border-left:3px solid transparent}
.toc li a:hover{background:rgba(233,224,208,.06);color:#fff}
.toc li.on a{border-left-color:var(--vermilion);color:#fff;background:rgba(158,59,46,.16)}
.toc-mask{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40;opacity:0;
  pointer-events:none;transition:opacity .25s}
.toc-mask.show{opacity:1;pointer-events:auto}

/* 阅读正文 */
.reader{max-width:720px;margin:0 auto;padding:26px 22px 90px}
.kicker{font-family:var(--sans);font-size:.8rem;letter-spacing:.18em;
  color:var(--gold);margin-bottom:14px;text-align:center}
.prose{font-size:1.12rem;line-height:1.95;color:var(--ink)}
.prose h1{font-size:1.55rem;font-weight:700;line-height:1.5;text-align:center;
  margin:6px 0 26px;letter-spacing:.04em}
.prose h1::after{content:"";display:block;width:48px;height:3px;margin:16px auto 0;
  background:linear-gradient(90deg,transparent,var(--vermilion),transparent)}
.prose h2{font-size:1.25rem;font-weight:600;margin:30px 0 12px;color:var(--ink)}
.prose h3{font-size:1.1rem;font-weight:600;margin:22px 0 10px}
.prose p{margin:0 0 1.35em;text-align:justify;text-indent:2em;
  text-justify:inter-character}
.prose blockquote{margin:1.4em 0;padding:10px 18px;border-left:3px solid var(--gold);
  background:rgba(184,138,62,.07);color:var(--ink-soft);border-radius:0 6px 6px 0;
  text-indent:0}
.prose blockquote p{text-indent:0;margin:0 0 .6em}
.prose em{font-style:normal;color:var(--vermilion);font-weight:600}
.prose strong{color:var(--ink);font-weight:700}
.prose hr{border:none;border-top:1px solid var(--line);margin:30px 0}
.prose a{color:var(--vermilion);border-bottom:1px solid rgba(158,59,46,.4)}

/* 翻页 */
.pager{display:flex;gap:8px;margin-top:42px}
.pg{flex:1;text-align:center;padding:13px 6px;font-family:var(--sans);font-size:.92rem;
  border:1px solid var(--line);border-radius:10px;color:var(--ink-soft);
  background:rgba(255,255,255,.35);transition:.15s}
.pg:hover{background:#fff;color:var(--ink);border-color:var(--gold)}
.pg.mid{flex:0 0 64px;color:var(--gold)}
.pg.disabled{opacity:.35;pointer-events:none}

/* 回到顶部 */
.totop{position:fixed;right:18px;bottom:22px;z-index:20;width:46px;height:46px;
  border-radius:50%;border:1px solid var(--line);background:rgba(243,236,224,.92);
  color:var(--ink);font-size:1.2rem;cursor:pointer;opacity:0;pointer-events:none;
  transition:opacity .25s,transform .25s;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.totop.show{opacity:1;pointer-events:auto}
.totop:active{transform:scale(.94)}

/* 目录首页（cover） */
.cover{max-width:680px;margin:0 auto;padding:54px 24px 80px;text-align:center}
.seal{width:78px;height:78px;margin:0 auto 22px;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:2.5rem;font-weight:700;color:#fff;background:var(--vermilion);
  border-radius:14px;box-shadow:0 8px 24px rgba(158,59,46,.35)}
.cover-title{font-size:2.7rem;font-weight:700;letter-spacing:.3em;margin-bottom:10px;
  text-indent:.3em}
.cover-sub{font-family:var(--sans);font-size:.95rem;letter-spacing:.16em;color:var(--gold);margin-bottom:26px}
.cover-intro{font-size:1.02rem;line-height:1.9;color:var(--ink-soft);text-align:justify;
  max-width:30em;margin:0 auto 30px;text-indent:2em}
.start{display:inline-block;padding:14px 42px;font-family:var(--sans);font-size:1.02rem;
  letter-spacing:.1em;color:#fff;background:var(--vermilion);border-radius:999px;
  box-shadow:0 8px 22px rgba(158,59,46,.3);transition:.15s}
.start:active{transform:translateY(1px)}
.cover-front{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:30px 0}
.front-card{padding:11px 20px;font-family:var(--sans);font-size:.95rem;border:1px solid var(--line);
  border-radius:999px;background:rgba(255,255,255,.5);color:var(--ink-soft)}
.front-card:hover{color:var(--ink);border-color:var(--gold)}
.front-card.ghost{background:transparent}
.cv-h2{font-family:var(--serif);font-weight:600;font-size:1.2rem;text-align:left;
  margin:38px 0 14px;padding-left:12px;border-left:4px solid var(--vermilion);letter-spacing:.06em}
.vol{text-align:left}
.vol h3{font-family:var(--sans);font-weight:500;font-size:.86rem;letter-spacing:.2em;
  color:var(--gold);margin:18px 0 8px}
.ch-list{list-style:none;display:grid;gap:8px}
.ch-list li a{display:flex;align-items:center;gap:10px;padding:13px 16px;
  background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:12px;
  font-size:1.02rem;transition:.15s}
.ch-list li a:hover{background:#fff;border-color:var(--gold);transform:translateX(3px)}
.ch-list .dot{color:var(--vermilion);font-size:.7rem}
.cv-foot{margin-top:40px;font-family:var(--sans);font-size:.8rem;line-height:1.8;
  color:var(--ink-soft);opacity:.8;text-align:center}

@media(min-width:760px){
  .reader{padding:40px 30px 110px}
  .prose{font-size:1.18rem}
  .cover{padding:70px 30px 90px}
  .cover-title{font-size:3.2rem}
  .toc{width:380px}
}

/* 减少动效偏好 */
@media(prefers-reduced-motion:reduce){
  .toc,.totop,.start,.ch-list li a,.pg{transition:none}
}
