/* ============================================================
   奇闻怪谈 qwgt.cn —— AnQiCMS 模板样式
   风格：深夜档案馆（黑底 / 旧纸色衬线 / 档案编号 / 红印章）
   放置目录：/public/static/qwgt/css/style.css
   ============================================================ */
:root{
  --bg:#0b0a10;
  --bg-soft:#14121b;
  --bg-soft-2:#191622;
  --line:#2b2536;
  --ink:#f0e9d6;
  --ink-dim:#bcb29b;
  /* 更弱的辅助文字色：原 #6f675a 在深底上仅 3.5~3.7:1，不足 WCAG AA 4.5:1；#8a8172 约 5.3:1 */
  --ink-faint:#8a8172;
  --gold:#b8963e;
  --gold-bright:#d9b45c;
  --seal:#a03428;
  --serif:"Noto Serif SC","Songti SC","SimSun",serif;
  --kai:"Kaiti SC","STKaiti","KaiTi",var(--serif);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--serif);line-height:1.75;overflow-x:hidden;
}
/* 全局噪点 */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}
::selection{background:var(--gold);color:#0b0a10;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;position:relative;z-index:1;}

/* ============ 顶部公告条 ============ */
.ticker{
  border-bottom:1px solid var(--line);background:rgba(20,18,27,.6);
  font-size:12.5px;color:var(--ink-dim);overflow:hidden;white-space:nowrap;position:relative;z-index:2;
}
.ticker .track{display:inline-block;padding:7px 0;animation:slide 36s linear infinite;}
.ticker em{font-style:normal;color:var(--gold);}
@keyframes slide{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ============ 导航 ============ */
header.nav{
  position:sticky;top:0;z-index:10;
  background:rgba(11,10,16,.86);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-inner{display:flex;align-items:center;gap:20px;height:64px;}
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.logo .seal-mark{
  width:40px;height:40px;border:2px solid var(--seal);color:var(--seal);
  display:grid;place-items:center;font-size:20px;font-weight:700;
  transform:rotate(-6deg);border-radius:4px;
  box-shadow:inset 0 0 0 1px rgba(160,52,40,.25);
}
.logo .name{font-size:19px;letter-spacing:6px;color:var(--ink);font-weight:700;display:block;line-height:1.3;}
.logo .en{font-size:10px;color:var(--ink-dim);letter-spacing:3px;display:block;margin-top:1px;}
nav.cats{display:flex;gap:15px;font-size:14px;color:var(--ink-dim);margin-left:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;padding-bottom:18px;margin-bottom:-18px;padding-right:20px;}
nav.cats::-webkit-scrollbar{display:none;}
nav.cats a{
  padding:4px 2px 10px;letter-spacing:1px;white-space:nowrap;flex-shrink:0;position:relative;
  margin-inline:auto;
  color:#d64a3e;text-shadow:0 0 6px rgba(196,30,24,.35);
  transition:color .2s,text-shadow .2s;
}
nav.cats a:hover,nav.cats a.on{color:#ff6a5a;text-shadow:0 0 10px rgba(230,60,45,.65);}
/* 血滴从字上凝出坠落 */
nav.cats a::before{
  content:"";position:absolute;bottom:6px;left:50%;margin-left:-2px;
  width:4px;height:0;border-radius:2px 2px 3px 3px;
  background:linear-gradient(180deg,#e03a2e 0%,#a8241c 60%,#5c0a08 100%);
  opacity:0;
  animation:fallDrop 9s ease-in infinite;
}
/* 落地洇开的一滩血：SVG 湍流滤镜做不规则血渍边缘 */
nav.cats a::after{
  content:"";position:absolute;bottom:-6px;left:50%;
  width:66px;height:11px;margin-left:-33px;
  border-radius:48% 52% 44% 56% / 62% 56% 44% 38%;
  transform:scale(.06,.2);transform-origin:center bottom;
  opacity:0;
  background:
    radial-gradient(ellipse 42% 60% at 46% 22%, rgba(255,96,74,.5) 0%, rgba(255,96,74,0) 100%),
    radial-gradient(ellipse 60% 80% at 55% 45%, #a01610 0%, #7d0f0c 52%, rgba(85,9,7,.85) 74%, rgba(85,9,7,0) 100%);
  filter:blur(.2px);
  animation:puddle 9s cubic-bezier(.2,.7,.3,1) infinite;
}
nav.cats a::after{filter:url(#blood-rough-a);}
nav.cats a:nth-child(2)::after,nav.cats a:nth-child(5)::after{filter:url(#blood-rough-b);}
nav.cats a:nth-child(3)::after,nav.cats a:nth-child(6)::after{filter:url(#blood-rough-c);}
nav.cats a:nth-child(2)::before,nav.cats a:nth-child(2)::after{animation-delay:1.5s;}
nav.cats a:nth-child(3)::before,nav.cats a:nth-child(3)::after{animation-delay:3s;}
nav.cats a:nth-child(4)::before,nav.cats a:nth-child(4)::after{animation-delay:4.5s;}
nav.cats a:nth-child(5)::before,nav.cats a:nth-child(5)::after{animation-delay:6s;}
nav.cats a:nth-child(6)::before,nav.cats a:nth-child(6)::after{animation-delay:7.5s;}
nav.cats a:nth-child(7)::before,nav.cats a:nth-child(7)::after{animation-delay:2.2s;}
nav.cats a:nth-child(8)::before,nav.cats a:nth-child(8)::after{animation-delay:5.3s;}
nav.cats a:hover::before,nav.cats a:hover::after{animation-duration:4.5s;}

/* ============ 加栏目时：第一优先 logo 左让、电台右让（逐级压缩两侧） ============ */
header.nav.yield1 .wrap{padding-left:10px;padding-right:10px;}
header.nav.yield1 .logo .en{display:none;}
header.nav.yield2 .wrap{padding-left:4px;padding-right:4px;}
header.nav.yield2 .logo .name{font-size:16px;letter-spacing:2px;}
header.nav.yield2 .nav-inner{gap:10px;}
header.nav.yield3 .logo .seal-mark{width:32px;height:32px;font-size:16px;}
header.nav.yield3 .bgm-mini{width:26px;height:26px;font-size:11px;}
header.nav.yield3 .nav-inner{gap:6px;}
header.nav.yield3 .logo{gap:8px;}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:14px;flex-shrink:0;}
.btn-random{
  border:1px solid var(--gold);color:var(--gold-bright);background:transparent;
  font-family:var(--serif);font-size:13px;letter-spacing:2px;padding:6px 16px;
  border-radius:2px;cursor:pointer;transition:.2s;
}
.btn-random:hover{background:var(--gold);color:#0b0a10;}

/* ============ HERO：本期头条 ============ */
.hero{padding:72px 0 64px;border-bottom:1px solid var(--line);position:relative;}
.hero::after{
  content:"";position:absolute;right:8%;top:36px;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle at 38% 38%,#2a2333 0%,#161322 55%,transparent 72%);
  filter:blur(2px);pointer-events:none;
}
.hero-grid{display:grid;grid-template-columns:1fr 190px;gap:48px;align-items:start;}
.file-tag{
  display:inline-flex;align-items:center;gap:10px;font-size:12.5px;letter-spacing:2px;
  color:var(--gold);border:1px solid rgba(184,150,62,.4);padding:4px 12px;margin-bottom:22px;
}
.file-tag .dot{width:6px;height:6px;background:var(--seal);border-radius:50%;animation:blink 1.6s infinite;}
@keyframes blink{50%{opacity:.2;}}
/* 恐怖标题动画：滴血 + 血字闪烁 */
@keyframes drip{
  0%{height:0;opacity:0;}
  18%{opacity:1;}
  62%{height:14px;opacity:1;}
  100%{height:20px;opacity:0;}
}
@keyframes bloodFlicker{
  0%,100%{opacity:1;}
  2%{opacity:.5;}
  4%{opacity:1;}
  38%{opacity:1;}
  40%{opacity:.35;}
  42%{opacity:1;}
  70%{opacity:.8;}
  72%{opacity:1;}
}
@keyframes navFlicker{
  0%,100%{opacity:1;}
  87%{opacity:1;}
  89%{opacity:.55;}
  91%{opacity:1;}
}
@keyframes fallDrop{
  0%,1%{height:2px;opacity:0;}
  2%{opacity:1;}
  3.5%{height:9px;}
  4.4%{transform:translateY(0);}
  5.6%{transform:translateY(15px);opacity:.9;}
  6.4%{opacity:0;transform:translateY(16px);}
  100%{opacity:0;}
}
@keyframes puddle{
  0%,5.4%{transform:scale(.06,.2);opacity:0;}
  6.2%{transform:scale(.55,.7);opacity:.98;}
  7.4%{transform:scale(.82,.92);opacity:.95;}
  9%{transform:scale(1,1);opacity:.95;}
  26%{transform:scale(1.07,1.03);opacity:.88;}
  48%{transform:scale(1.12,1.05);opacity:.72;}
  66%{transform:scale(1.16,1.06);opacity:.45;}
  82%{opacity:.2;}
  100%{transform:scale(1.18,1.06);opacity:0;}
}
@media (prefers-reduced-motion:reduce){
  nav.cats a{transition:none;}
}
@media (prefers-reduced-motion:reduce){
  .sec-head h2,.page-head h1{animation:none;}
  .sec-head h2::after,.sec-head h2::before,.page-head h1::after,.page-head h1::before{animation:none;height:9px;opacity:.75;}
  nav.cats a::before,nav.cats a::after{display:none;}
}
h1.headline{font-size:clamp(30px,4.6vw,52px);font-weight:700;line-height:1.32;letter-spacing:2px;margin-bottom:18px;}
h1.headline a:hover{color:var(--gold-bright);transition:.2s;}
.hero .excerpt{color:var(--ink-dim);font-size:15.5px;max-width:640px;margin-bottom:26px;font-family:var(--kai);}
.meta{display:flex;flex-wrap:wrap;gap:20px;font-size:12.5px;color:var(--ink-dim);letter-spacing:1px;margin-bottom:32px;}
.meta b{color:var(--ink);font-weight:600;}
.cred{display:inline-flex;gap:5px;align-items:center;}
.cred i{width:9px;height:9px;border-radius:50%;border:1px solid var(--gold);display:inline-block;}
.cred i.f{background:var(--gold);}
.btn-read{
  display:inline-block;background:var(--gold);color:#0b0a10;
  padding:11px 34px;letter-spacing:4px;font-size:14px;font-weight:600;
  transition:.2s;border:1px solid var(--gold);
}
.btn-read:hover{background:transparent;color:var(--gold-bright);}
.side-vertical{
  writing-mode:vertical-rl;font-family:var(--kai);color:var(--ink-dim);
  font-size:15px;letter-spacing:10px;border-left:1px solid var(--line);
  padding-left:22px;height:380px;
}
.side-vertical em{font-style:normal;color:var(--gold);}
.clock-box{margin-top:26px;font-size:12px;color:var(--ink-dim);letter-spacing:1px;}
.clock-box b{display:block;font-size:22px;color:var(--ink);font-weight:600;letter-spacing:4px;margin-bottom:4px;font-variant-numeric:tabular-nums;}

/* ============ 章节标题 ============ */
.sec-head{display:flex;align-items:baseline;gap:16px;margin:56px 0 28px;}
.sec-head h2{
  font-size:22px;letter-spacing:5px;font-weight:700;
  position:relative;color:#e03a2e;
  text-shadow:0 0 12px rgba(196,30,24,.5),0 0 2px rgba(120,10,8,.8);
  animation:bloodFlicker 5.2s infinite;
}
.sec-head h2::after{
  content:"";position:absolute;top:100%;left:58%;
  width:3px;height:0;border-radius:0 0 3px 3px;
  background:linear-gradient(180deg,#c22a20,#6e0c09);
  box-shadow:0 0 6px rgba(160,30,24,.6);
  animation:drip 3.4s ease-in infinite;
}
.sec-head h2::before{
  content:"";position:absolute;top:100%;left:26%;
  width:2px;height:0;border-radius:0 0 2px 2px;
  background:linear-gradient(180deg,#a8241c,#5c0a08);
  animation:drip 4.6s ease-in 1.6s infinite;
}
.sec-head .en{font-size:11px;color:var(--ink-dim);letter-spacing:3px;}
.sec-head .rule{flex:1;height:1px;background:var(--line);}
.sec-head .more{font-size:13px;color:var(--ink-dim);}
.sec-head .more:hover{color:var(--gold-bright);}

/* ============ 分类筛选条 ============ */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px;}
.filters a{
  font-size:13px;letter-spacing:2px;color:var(--ink-dim);
  border:1px solid var(--line);padding:6px 16px;transition:.2s;
}
.filters a.on,.filters a:hover{color:var(--gold-bright);border-color:var(--gold);}

/* ============ 档案卡片 ============ */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;}
.card{
  background:var(--bg-soft);border:1px solid var(--line);
  padding:24px 24px 20px;position:relative;transition:.25s;
  display:flex;flex-direction:column;min-height:230px;
}
.card:hover{background:var(--bg-soft-2);border-color:rgba(184,150,62,.5);transform:translateY(-4px);}
.card .no{font-size:11px;letter-spacing:2px;color:var(--gold);margin-bottom:12px;}
.card h3{font-size:18.5px;letter-spacing:1px;line-height:1.5;margin-bottom:10px;font-weight:700;}
.card h3 a:hover{color:var(--gold-bright);}
.card p{font-size:13.5px;color:var(--ink-dim);font-family:var(--kai);flex:1;}
.card .foot{
  margin-top:16px;padding-top:12px;border-top:1px dashed var(--line);
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  font-size:11.5px;color:var(--ink-dim);
}
.card .foot .cat2{color:var(--gold);font-weight:400;letter-spacing:1px;margin-right:8px;}
.card .stamp{
  position:absolute;right:18px;top:26px;
  border:1.5px solid var(--seal);color:var(--seal);
  font-size:10.5px;letter-spacing:2px;padding:2px 7px;
  transform:rotate(9deg);opacity:.75;
}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:none;}
/* 无 JS 或观察失败时的兜底：1.2s 后强制可见 */
@keyframes revealFallback{to{opacity:1;transform:none;}}
.reveal{animation:revealFallback 0s linear 1.2s forwards;}

/* ============ 列表页头 / 面包屑 ============ */
.crumbs{padding:26px 0 6px;font-size:12.5px;color:var(--ink-dim);letter-spacing:1px;}
.crumbs a:hover{color:var(--gold-bright);}
.crumbs a.cur{color:#e03a2e;text-shadow:0 0 6px rgba(196,30,24,.35);cursor:default;}
.crumbs span.sep{margin:0 8px;color:var(--line);}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.list-desc{color:var(--ink-dim);font-family:var(--kai);font-size:14px;margin:14px 0 0;max-width:720px;}
.page-head{padding:26px 0 8px;}
.page-head h1{
  font-size:30px;letter-spacing:4px;font-weight:700;
  position:relative;color:#e03a2e;
  text-shadow:0 0 12px rgba(196,30,24,.5),0 0 2px rgba(120,10,8,.8);
  animation:bloodFlicker 5.2s infinite;
}
.page-head h1::after{
  content:"";position:absolute;top:100%;left:58%;
  width:3px;height:0;border-radius:0 0 3px 3px;
  background:linear-gradient(180deg,#c22a20,#6e0c09);
  box-shadow:0 0 6px rgba(160,30,24,.6);
  animation:drip 3.4s ease-in infinite;
}
.page-head h1::before{
  content:"";position:absolute;top:100%;left:26%;
  width:2px;height:0;border-radius:0 0 2px 2px;
  background:linear-gradient(180deg,#a8241c,#5c0a08);
  animation:drip 4.6s ease-in 1.6s infinite;
}
.page-head .desc{color:var(--ink-dim);font-family:var(--kai);font-size:14px;margin-top:8px;max-width:720px;}

/* ============ 分页 ============ */
.pagination{display:flex;justify-content:center;gap:8px;margin:44px 0 8px;flex-wrap:wrap;}
.pagination a,.pagination span{
  min-width:36px;text-align:center;padding:7px 13px;font-size:13px;
  border:1px solid var(--line);color:var(--ink-dim);transition:.2s;letter-spacing:1px;
}
.pagination a:hover{border-color:var(--gold);color:var(--gold-bright);}
.pagination .active{background:var(--gold);border-color:var(--gold);color:#0b0a10;}

/* ============ 空列表提示 ============ */
.empty-tip{
  border:1px dashed var(--line);padding:48px 24px;text-align:center;
  color:var(--ink-dim);font-family:var(--kai);letter-spacing:2px;margin-top:24px;
}

/* ============ 引语带 / 分类档案馆 ============ */
.quote-band{margin:72px 0 0;padding:44px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;}
.quote-band p{font-family:var(--kai);font-size:19px;letter-spacing:4px;color:var(--ink);}
.quote-band span{display:block;margin-top:12px;font-size:12px;color:var(--ink-dim);letter-spacing:3px;}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px;margin-bottom:48px;}
.stat{border:1px solid var(--line);background:var(--bg-soft);padding:26px 24px;transition:.2s;}
.stat:hover{border-color:rgba(184,150,62,.5);transform:translateY(-3px);}
.stat b{font-size:26px;color:var(--gold-bright);font-weight:600;display:block;margin-bottom:2px;}
.stat b a:hover{color:var(--gold-bright);}
.stat span{font-size:12.5px;color:var(--ink-dim);letter-spacing:3px;}
.stat p{font-size:12.5px;color:var(--ink-dim);font-family:var(--kai);margin-top:10px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.stat .stat-sub{margin-top:10px;border-top:1px dashed var(--line);padding-top:10px;}
.stat .stat-sub a{display:inline-block;font-size:12px;color:var(--ink-dim);border:1px solid var(--line);
  border-radius:10px;padding:1px 10px;margin:0 6px 6px 0;transition:.2s;}
.stat .stat-sub a:hover{color:#ff6a5a;border-color:rgba(196,30,24,.5);}

/* ============ 标签云 ============ */
.tagcloud{display:flex;flex-wrap:wrap;gap:12px;}
.tagcloud a{font-size:13px;color:var(--ink-dim);border:1px solid var(--line);padding:4px 14px;border-radius:14px;transition:.2s;}
.tagcloud a:hover{color:var(--gold-bright);border-color:var(--gold);}

/* ============ CTA：听众来信 ============ */
.subscribe{
  margin-top:64px;border:1px solid var(--line);background:var(--bg-soft);
  padding:46px 40px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;
}
.subscribe h3{font-size:20px;letter-spacing:4px;margin-bottom:8px;}
.subscribe p{font-size:13.5px;color:var(--ink-dim);font-family:var(--kai);}

/* ============ 详情页（两栏） ============ */
.layout-two{display:grid;grid-template-columns:1fr 300px;gap:40px;padding:12px 0 60px;}
.doc h1{font-size:clamp(24px,3vw,36px);line-height:1.45;letter-spacing:1.5px;margin:14px 0 18px;}
.doc .meta{margin-bottom:30px;}
.doc .doc-content{
  font-size:16px;line-height:2.1;color:var(--ink);
  border-top:1px solid var(--line);padding-top:30px;
  word-break:break-word;
}
.doc .doc-content p{margin-bottom:1.2em;}
.doc .doc-content img{border:1px solid var(--line);padding:6px;background:#0f0d15;}
.doc .doc-content h2,.doc .doc-content h3{letter-spacing:2px;margin:1.6em 0 .8em;color:var(--gold-bright);}
.doc .doc-content blockquote{
  border-left:3px solid var(--gold);padding:10px 18px;margin:1.4em 0;
  color:var(--ink-dim);background:rgba(184,150,62,.05);font-family:var(--kai);
}
.doc-foot{border-top:1px dashed var(--line);margin-top:44px;padding-top:22px;}
.doc-foot .doc-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px;}
.doc-foot .doc-tags a{font-size:12px;color:var(--ink-dim);border:1px solid var(--line);padding:3px 12px;border-radius:12px;}
.doc-foot .doc-tags a:hover{color:var(--gold-bright);border-color:var(--gold);}
.prev-next{display:grid;grid-template-columns:1fr;gap:16px;}
.prev-next.single{grid-template-columns:1fr;}
.prev-next a{
  border:1px solid var(--line);background:var(--bg-soft);padding:14px 18px;
  font-size:13.5px;color:var(--ink-dim);transition:.2s;
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.prev-next a:hover{border-color:var(--gold);color:var(--gold-bright);}
.prev-next .label{display:block;font-size:11px;color:var(--gold);letter-spacing:3px;margin-bottom:6px;}

/* ============ 夜读者留声（评论区） ============ */
.comments{margin-top:52px;}
.comments h2{font-size:18px;letter-spacing:4px;margin-bottom:24px;}
.comment-list{display:flex;flex-direction:column;gap:0;}
/* 默认只露出最新 5 条，其余折叠 */
.comment-list.collapsed .comment-item:nth-child(n+6){display:none;}
.comment-list.collapsed .comment-item:nth-child(5){border-bottom:1px dashed var(--line);}
.comment-toggle{
  display:none;width:100%;background:transparent;border:none;
  color:var(--gold);font-family:var(--serif);font-size:13px;letter-spacing:2px;
  padding:14px 0;cursor:pointer;text-align:center;transition:.2s;
  border-bottom:1px dashed var(--line);
}
.comment-toggle:hover{color:var(--gold-bright);}
.comment-toggle.show{display:block;}
.comment-item{
  border-bottom:1px dashed var(--line);padding:16px 2px;
  position:relative;
}
.comment-item::before{
  content:"›";position:absolute;left:-2px;top:16px;color:var(--gold);
  font-size:14px;opacity:.6;
}
.comment-item .c-head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px;}
.comment-item .c-name{font-size:13.5px;color:var(--gold-bright);letter-spacing:1px;}
.comment-item .c-time{font-size:11px;color:var(--ink-dim);letter-spacing:1px;}
.comment-item .c-body{font-size:14px;line-height:1.9;color:var(--ink);font-family:var(--kai);}
.comment-empty{
  font-family:var(--kai);font-size:13.5px;color:var(--ink-dim);
  border:1px dashed var(--line);padding:26px 20px;text-align:center;
  letter-spacing:1px;margin-bottom:28px;
}
.comment-form{margin-top:26px;}
.comment-form .form-row{margin-bottom:16px;}
.comment-form .form-row input,
.comment-form .form-row textarea{
  width:100%;background:#0f0d15;border:1px solid var(--line);color:var(--ink);
  font-family:var(--serif);font-size:14px;padding:11px 14px;outline:none;transition:.2s;
}
.comment-form .form-row input:focus,
.comment-form .form-row textarea:focus{border-color:var(--gold);}
.comment-form .form-row textarea{min-height:110px;resize:vertical;line-height:1.9;}
.comment-form .btn-submit{padding:11px 36px;}
/* 烛光模式下评论区跟随变暗 */
body.candle-on .comments{opacity:.28;filter:saturate(.4);}
.related h2{font-size:18px;letter-spacing:4px;margin:44px 0 20px;}
.related .grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
.related .card{min-height:180px;padding:20px;}

/* ============ 侧栏 ============ */
.sidebar{display:flex;flex-direction:column;gap:28px;}
.side-card{border:1px solid var(--line);background:var(--bg-soft);padding:24px;}
.side-card h4{font-size:15px;letter-spacing:4px;margin-bottom:16px;color:var(--ink);display:flex;align-items:baseline;gap:10px;}
.side-card h4 .en{font-size:10px;color:var(--ink-dim);letter-spacing:2px;font-weight:400;}
.hot-list{list-style:none;}
.hot-list li{border-bottom:1px dashed var(--line);padding:10px 0;}
.hot-list li:last-child{border-bottom:none;}
.hot-list a{font-size:13.5px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.hot-list a:hover{color:var(--gold-bright);}
.hot-list .num{color:var(--gold);font-size:11px;margin-right:8px;font-variant-numeric:tabular-nums;}
.side-card .clock-box{margin-top:0;}

/* ============ 表单（投稿 / 搜索） ============ */
.gbook-form{max-width:640px;margin-top:10px;}
.form-row{margin-bottom:20px;}
.form-row label{display:block;font-size:13px;letter-spacing:2px;color:var(--gold);margin-bottom:8px;}
.form-row input,.form-row textarea{
  width:100%;background:#0f0d15;border:1px solid var(--line);color:var(--ink);
  font-family:var(--serif);font-size:14px;padding:11px 14px;outline:none;transition:.2s;
}
.form-row input:focus,.form-row textarea:focus{border-color:var(--gold);}
.form-row textarea{min-height:180px;resize:vertical;line-height:1.9;}
.form-row .req{color:var(--seal);margin-left:4px;}
.form-tip{font-size:12px;color:var(--ink-dim);font-family:var(--kai);margin-top:6px;}
.btn-submit{
  background:var(--gold);border:1px solid var(--gold);color:#0b0a10;
  font-family:var(--serif);font-size:14px;letter-spacing:4px;font-weight:600;
  padding:12px 44px;cursor:pointer;transition:.2s;
}
.btn-submit:hover{background:transparent;color:var(--gold-bright);}

/* ============ 搜索页结果行 ============ */
.result-row{border-bottom:1px dashed var(--line);padding:18px 0;}
.result-row h3{font-size:16.5px;font-weight:600;letter-spacing:1px;}
.result-row h3 a:hover{color:var(--gold-bright);}
.result-row p{font-size:13px;color:var(--ink-dim);font-family:var(--kai);margin-top:6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.result-row .r-meta{font-size:11.5px;color:var(--ink-dim);margin-top:8px;letter-spacing:1px;}

/* ============ 页脚 ============ */
footer{margin-top:80px;border-top:1px solid var(--line);padding:40px 0 48px;font-size:12.5px;color:var(--ink-dim);position:relative;z-index:1;}
.foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;}
.foot-grid .slogan{font-family:var(--kai);letter-spacing:4px;color:var(--ink);font-size:15px;margin-bottom:8px;}
.foot-grid a:hover{color:var(--gold-bright);}
.foot-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;}
.foot-links a{border-bottom:1px dotted var(--line);}
footer .icp{margin-top:26px;padding-top:20px;border-top:1px dashed var(--line);text-align:center;letter-spacing:1px;}
footer .icp a:hover{color:var(--gold-bright);}

/* ============ 随机怪谈模态 ============ */
.modal-mask{
  position:fixed;inset:0;background:rgba(5,4,8,.78);backdrop-filter:blur(4px);
  z-index:50;display:none;align-items:center;justify-content:center;padding:24px;
}
.modal-mask.open{display:flex;}
.modal{
  background:var(--bg-soft);border:1px solid var(--gold);max-width:480px;width:100%;
  padding:40px 36px;position:relative;animation:rise .35s ease;
}
@keyframes rise{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
.modal .m-no{font-size:11px;letter-spacing:3px;color:var(--gold);margin-bottom:16px;}
.modal .m-text{font-family:var(--kai);font-size:17px;line-height:2;letter-spacing:1px;}
.modal .m-close{
  margin-top:26px;width:100%;background:transparent;border:1px solid var(--line);
  color:var(--ink-dim);font-family:var(--serif);letter-spacing:4px;
  padding:9px 0;cursor:pointer;font-size:13px;
}
.modal .m-close:hover{border-color:var(--gold);color:var(--gold-bright);}
.modal .m-stamp{
  position:absolute;top:-16px;right:-14px;width:64px;height:64px;
  border:2px solid var(--seal);border-radius:50%;color:var(--seal);
  display:grid;place-items:center;font-size:12px;letter-spacing:1px;
  transform:rotate(14deg);background:rgba(11,10,16,.9);text-align:center;line-height:1.3;
}

/* ============ 错误页 ============ */
.error-page{min-height:70vh;display:grid;place-items:center;text-align:center;position:relative;z-index:1;}
.error-page .code{font-size:80px;color:var(--gold);letter-spacing:10px;font-weight:700;}
.error-page .tips{font-family:var(--kai);color:var(--ink-dim);margin:14px 0 30px;letter-spacing:2px;}

/* ============ 响应式 ============ */
@media (max-width:960px){
  .layout-two{grid-template-columns:1fr;}
  .sidebar{order:2;}
}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;}
  .side-vertical{display:none;}
  nav.cats{display:none;}
  .subscribe{grid-template-columns:1fr;padding:36px 26px;}
  .prev-next{grid-template-columns:1fr;}
}

/* ============ 午夜电台（子夜调频） ============ */
.radio-head{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.radio-head .onair{
  display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:2px;
  color:var(--seal);border:1px solid rgba(160,52,40,.5);padding:3px 10px;border-radius:12px;
}
.radio-head .onair i{width:7px;height:7px;border-radius:50%;background:var(--seal);animation:blink 1.2s infinite;}
.radio-title{font-size:15px;letter-spacing:6px;color:var(--ink);font-weight:600;}
.radio-mute{
  margin-left:auto;background:transparent;border:1px solid var(--line);color:var(--ink-dim);
  border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:14px;line-height:1;transition:.2s;padding:0;
}
.radio-mute:hover{border-color:var(--gold);color:var(--gold-bright);}
.radio-freq{
  text-align:center;font-size:52px;font-weight:600;color:var(--gold-bright);
  letter-spacing:6px;font-variant-numeric:tabular-nums;line-height:1.25;
  text-shadow:0 0 26px rgba(184,150,62,.28);margin:4px 0 10px;
}
.radio-scale{
  position:relative;height:24px;margin:0 4px 10px;border-radius:12px;
  background:
    repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 5%),
    linear-gradient(180deg,#17141f,#100e18);
  border:1px solid var(--line);
}
.radio-needle{
  position:absolute;top:2px;bottom:2px;left:0;width:2px;border-radius:2px;
  background:var(--gold-bright);box-shadow:0 0 8px rgba(217,180,92,.8);
  transition:left .14s linear;
}
.radio-status{text-align:center;font-size:12px;color:var(--ink-dim);letter-spacing:3px;margin-bottom:16px;}
.radio-text{
  min-height:132px;font-family:var(--kai);font-size:16px;line-height:2.05;
  letter-spacing:1px;color:var(--ink);border-top:1px dashed var(--line);padding-top:14px;
}
.radio-text .cursor{
  display:inline-block;width:2px;height:1em;background:var(--gold);
  vertical-align:-0.15em;margin-left:2px;animation:blink .8s infinite;
}
.radio-sign{
  margin-top:14px;text-align:center;font-size:13px;letter-spacing:3px;color:var(--gold-bright);
  border:1px dashed rgba(184,150,62,.5);padding:8px 10px;
  opacity:0;transform:translateY(6px);transition:opacity .6s ease,transform .6s ease;
}
.radio-sign.show{opacity:1;transform:none;}
.radio-actions{display:flex;gap:12px;margin-top:18px;}
.radio-actions .half{flex:1;}
.radio-count{margin-top:12px;text-align:center;font-size:11px;color:var(--ink-dim);letter-spacing:2px;min-height:16px;}
@media (max-width:860px){
  .radio-freq{font-size:40px;}
  .radio-text{font-size:15px;min-height:120px;}
}

/* ============ 午夜电台 · 入口按钮（ON AIR 胶囊） ============ */
.btn-radio{
  display:inline-flex;align-items:center;gap:9px;
  background:linear-gradient(180deg,rgba(70,214,129,.16),rgba(70,214,129,.04));
  border:1px solid rgba(70,214,129,.55);
  color:#57e08f;
  padding:6px 15px 6px 10px;border-radius:20px;cursor:pointer;
  font-family:var(--serif);font-size:13px;letter-spacing:2px;
  transition:background .25s,color .25s,border-color .25s;
  animation:radioGlow 3.4s ease-in-out infinite;
}
@keyframes radioGlow{
  0%,100%{box-shadow:0 0 0 rgba(87,224,143,0);}
  50%{box-shadow:0 0 16px rgba(87,224,143,.42);}
}
.btn-radio:hover{background:#46dc82;color:#08130c;border-color:#46dc82;animation:none;}
.btn-radio:hover .waves{stroke:#08130c;}
.btn-radio:hover .waves .core{fill:#08130c;}
.btn-radio:hover .radio-live{color:#0c2417;border-color:rgba(8,19,12,.5);background:rgba(8,19,12,.1);}
.btn-radio .radio-live{
  display:inline-flex;align-items:center;gap:5px;
  font-size:10px;letter-spacing:1px;color:#57e08f;
  border:1px solid rgba(70,214,129,.55);border-radius:10px;padding:1px 7px;
  background:rgba(70,214,129,.1);transition:.25s;
}
.btn-radio .radio-live i{width:5px;height:5px;border-radius:50%;background:#46dc82;animation:blink 1.4s infinite;}
.btn-radio .waves{width:17px;height:17px;stroke:#57e08f;fill:none;stroke-width:1.8;stroke-linecap:round;transition:stroke .25s;flex-shrink:0;}
.btn-radio .waves .core{fill:#57e08f;stroke:none;transition:fill .25s;}
.btn-radio .waves path.w{opacity:.2;animation:waveIn 1.9s infinite;}
.btn-radio .waves path.w2{animation-delay:.3s;}
.btn-radio .waves path.w3{animation-delay:.6s;}
@keyframes waveIn{0%{opacity:.15;}35%{opacity:1;}70%,100%{opacity:.15;}}
/* ============ 烛光模式 ============ */
.candle-btn{
  margin-left:12px;background:transparent;border:1px solid var(--line);
  color:var(--ink-dim);font-family:var(--serif);font-size:11px;
  padding:2px 10px;border-radius:12px;cursor:pointer;transition:.3s;letter-spacing:1px;
}
.candle-btn:hover{border-color:var(--gold);color:var(--gold-bright);}
.candle-btn.lit{border-color:var(--gold);color:var(--gold-bright);background:rgba(184,150,62,.12);box-shadow:0 0 10px rgba(217,180,92,.3);}
body.candle-on{background:#040308;}
body.candle-on::before{opacity:.02;}
body.candle-on .wrap{position:relative;}
body.candle-on .doc{
  position:relative;border-radius:2px;
  animation:candleFlame 4.5s ease-in-out infinite;
}
body.candle-on .doc::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 620px 780px at 38% 34%, rgba(255,190,90,.13) 0%, rgba(255,170,60,.07) 38%, rgba(0,0,0,.88) 75%, rgba(0,0,0,.97) 100%);
}
body.candle-on .doc .doc-content,
body.candle-on .doc h1,
body.candle-on .doc .meta{position:relative;z-index:1;text-shadow:0 0 14px rgba(255,190,90,.18);}
body.candle-on .doc-content{color:#e8d9b0;}
body.candle-on header.nav,
body.candle-on footer,
body.candle-on .sidebar,
body.candle-on .related,
body.candle-on .crumbs{opacity:.28;filter:saturate(.4);transition:opacity 1.2s;}
@keyframes candleFlame{
  0%,100%{filter:brightness(1);}
  23%{filter:brightness(1.06);}
  47%{filter:brightness(.96);}
  71%{filter:brightness(1.04);}
}
@media (prefers-reduced-motion:reduce){
  body.candle-on .doc{animation:none;}
}

/* ============ 档案封存印章 + 编者按 ============ */
.doc-foot{position:relative;}
.archive-seal{
  position:absolute;right:8px;top:-6px;width:74px;height:74px;
  border:3px solid var(--seal);border-radius:50%;color:var(--seal);
  display:grid;place-items:center;transform:rotate(12deg);
  font-size:15px;line-height:1.25;font-weight:700;letter-spacing:2px;text-align:center;
  opacity:.82;
  box-shadow:inset 0 0 0 2px rgba(160,52,40,.35), 0 0 14px rgba(160,52,40,.2);
  mask-image:radial-gradient(circle at 32% 38%, rgba(0,0,0,.55) 0 6%, #000 12%),
             radial-gradient(circle at 68% 62%, rgba(0,0,0,.5) 0 5%, #000 11%),
             linear-gradient(#000,#000);
  -webkit-mask-composite:source-over;
}
.editor-note{
  font-family:var(--kai);font-size:12.5px;color:var(--ink-dim);letter-spacing:1px;
  border-left:2px solid rgba(160,52,40,.5);padding-left:12px;margin:6px 90px 18px 0;line-height:1.9;
}

/* ============ 列表页条目：字号加大可读性 ============ */
.result-row{padding:22px 0;}
.result-row h3{font-size:19.5px;line-height:1.7;font-weight:700;}
.result-row h3 a{color:var(--ink);}
.result-row h3 a:hover{color:#ff6a5a;}
.result-row p{font-size:14.5px;line-height:1.95;-webkit-line-clamp:2;}
.result-row .r-meta{font-size:12.5px;}

/* ============ 列表页条目：字号加大可读性（移动端） ============ */
@media (max-width:640px){
  .result-row h3{font-size:18px;}
  .result-row p{font-size:14px;}
  .editor-note{margin-right:0;}
  .archive-seal{position:static;margin:0 0 12px;transform:rotate(8deg);}
}

/* ============ 通用修饰类（替代内联样式） ============ */
.list-layout{padding-top:24px;}
.list-grid{grid-template-columns:1fr;}
.no-line{font-size:11px;letter-spacing:2px;color:var(--gold);margin-bottom:6px;}
.flag-tag{color:var(--seal);}
.related .card h3{font-size:16px;}
.btn-block{text-align:center;display:block;}
/* SVG 滤镜容器（隐藏定位） */
.svg-defs{position:absolute;width:0;height:0;}
/* 详情页相关卡片标题尺寸 */
.related-card-title{font-size:16px;}

/* ============ 打赏条 + 弹窗 ============ */
.donate-bar{
  margin:18px 0 26px;border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(184,150,62,.07), rgba(184,150,62,.02));
  padding:16px 22px;display:flex;align-items:center;gap:16px;
}
.donate-bar .cup{font-size:22px;line-height:1;}
.donate-bar .txt{flex:1;font-family:var(--kai);font-size:13.5px;color:var(--ink-dim);letter-spacing:1px;line-height:1.8;}
.donate-bar .txt b{color:var(--ink);font-weight:400;}
.donate-btn{
  background:transparent;border:1px solid var(--gold);color:var(--gold-bright);
  font-family:var(--serif);font-size:13px;letter-spacing:3px;
  padding:8px 22px;cursor:pointer;transition:.25s;white-space:nowrap;
}
.donate-btn:hover{background:var(--gold);color:#0b0a10;box-shadow:0 0 14px rgba(184,150,62,.4);}
.donate-link{color:var(--gold);border-bottom:1px dotted rgba(184,150,62,.5);transition:.2s;}
.donate-link:hover{color:var(--gold-bright);border-color:var(--gold-bright);}
.foot-links a.donate-link, footer .donate-link{border-bottom:1px dotted var(--line);}
footer .donate-link:hover{border-bottom-color:var(--gold-bright);}
.mask{
  position:fixed;inset:0;background:rgba(5,4,8,.82);backdrop-filter:blur(5px);
  display:none;align-items:center;justify-content:center;z-index:100;padding:20px;
}
.mask.open{display:flex;}
.donate-modal{
  background:var(--bg-soft);border:1px solid var(--gold);
  max-width:420px;width:100%;padding:34px 30px 28px;position:relative;
  animation:rise .35s ease;text-align:center;
  max-height:88vh;overflow-y:auto;
}
.dm-close{position:absolute;top:10px;right:14px;background:none;border:none;color:var(--ink-dim);font-size:18px;cursor:pointer;}
.dm-close:hover{color:var(--gold-bright);}
.dm-title{font-size:17px;letter-spacing:5px;margin-bottom:6px;}
.dm-sub{font-family:var(--kai);font-size:12.5px;color:var(--ink-dim);margin-bottom:22px;letter-spacing:1px;}
.dm-tabs{display:flex;justify-content:center;margin:0 auto 20px;border:1px solid var(--line);width:max-content;}
.dm-tab{
  background:transparent;border:none;color:var(--ink-dim);
  font-family:var(--serif);font-size:13px;letter-spacing:2px;
  padding:8px 24px;cursor:pointer;transition:.2s;
}
.dm-tab.on{background:var(--gold);color:#0b0a10;font-weight:600;}
.dm-qr{
  width:230px;margin:0 auto 16px;background:#fff;
  line-height:0;overflow:hidden;
  box-shadow:0 0 30px rgba(184,150,62,.25);
}
.dm-qr img{width:100%;height:auto;display:block;}
.dm-hint{font-family:var(--kai);font-size:12px;color:var(--ink-dim);letter-spacing:2px;}
.dm-hint b{color:var(--gold-bright);font-weight:400;}
.dm-thanks{margin-top:16px;font-family:var(--kai);font-size:11.5px;color:var(--ink-faint);letter-spacing:1px;line-height:1.9;}
@media (max-width:640px){
  .donate-bar{flex-wrap:wrap;}
  .donate-bar .txt{flex-basis:100%;}
}

@media (prefers-reduced-motion:reduce){
  .btn-radio{animation:none;}
  .btn-radio .waves path.w{animation:none;opacity:.85;}
}

/* ============ 小说书架 · 列表页 ============ */
.shelf-head{display:flex;align-items:baseline;gap:14px;margin:26px 0 22px;flex-wrap:wrap;}
.shelf-head h1,.shelf-head h2{font-size:24px;letter-spacing:5px;color:#e03a2e;text-shadow:0 0 12px rgba(196,30,24,.5);}
.shelf-head .en{font-size:11px;color:var(--ink-dim);letter-spacing:3px;}
.shelf-head .shelf-desc{font-size:12.5px;color:var(--ink-dim);font-family:var(--kai);}
.shelf-head .count{margin-left:auto;font-size:12px;color:var(--ink-dim);}
.novel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:26px;margin-bottom:20px;}
.novel-card{
  background:var(--bg-soft);border:1px solid var(--line);
  display:flex;flex-direction:column;transition:.25s;position:relative;
}
.novel-card:hover{border-color:rgba(184,150,62,.5);transform:translateY(-4px);}
.novel-cover{
  height:150px;position:relative;overflow:hidden;display:grid;place-items:center;
  background:linear-gradient(150deg,#241d2f 0%,#151020 60%,#0d0a14 100%);
}
.novel-cover::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 30%, transparent 30%, rgba(0,0,0,.5) 100%);
  pointer-events:none;
}
.novel-cover .cover-img{width:100%;height:100%;object-fit:cover;}
.novel-cover .title-vert{
  writing-mode:vertical-rl;font-size:21px;font-weight:700;letter-spacing:7px;
  color:var(--gold-bright);text-shadow:0 0 14px rgba(217,180,92,.35);
  font-family:var(--kai);z-index:1;
}
.novel-cover .badge{
  position:absolute;top:10px;left:10px;font-size:10px;letter-spacing:2px;z-index:2;
  color:var(--seal);border:1px solid rgba(160,52,40,.6);padding:1px 7px;
  transform:rotate(-4deg);background:rgba(11,10,16,.5);
}
.novel-info{padding:16px 16px 14px;display:flex;flex-direction:column;flex:1;}
.novel-info h3{font-size:15.5px;letter-spacing:1px;margin-bottom:6px;font-weight:700;}
.novel-info h3 a:hover{color:var(--gold-bright);}
.novel-info p{font-size:12.5px;color:var(--ink-dim);font-family:var(--kai);line-height:1.8;flex:1;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.novel-meta{display:flex;justify-content:space-between;font-size:10.5px;color:var(--ink-dim);
  border-top:1px dashed var(--line);margin-top:12px;padding-top:10px;letter-spacing:1px;}
.novel-meta .words{color:var(--gold);}

/* ============ 小说阅读页 ============ */
.reader-wrap{max-width:760px;margin:0 auto;padding:6px 8px 20px;border-radius:4px;transition:background .5s;}
.reader-wrap.theme-sepia{background:#171310;}
.reader-wrap.theme-paper{background:#e8e2d2;}
.reader-head{text-align:center;margin-bottom:30px;}
.reader-head .crumb{font-size:12px;color:var(--ink-dim);letter-spacing:2px;margin-bottom:14px;}
.reader-head .crumb a:hover{color:var(--gold-bright);}
.reader-head .crumb .sep{margin:0 8px;color:var(--line);}
.reader-head h1,.reader-head h2{font-size:26px;letter-spacing:3px;line-height:1.6;font-weight:700;}
.reader-head .meta{font-size:12px;color:var(--ink-dim);margin-top:12px;letter-spacing:2px;}
.reader-toolbar{display:flex;justify-content:center;gap:10px;margin-bottom:30px;flex-wrap:wrap;}
.rt-btn{
  background:transparent;border:1px solid var(--line);color:var(--ink-dim);
  font-family:var(--serif);font-size:12px;padding:5px 14px;cursor:pointer;
  border-radius:14px;transition:.2s;letter-spacing:1px;
}
.rt-btn:hover{border-color:var(--gold);color:var(--gold-bright);}
.rt-btn.on{border-color:var(--gold);color:var(--gold-bright);background:rgba(184,150,62,.12);}
.novel-content{font-size:17px;line-height:2.25;letter-spacing:.5px;color:var(--ink);padding:0 8px;}
.novel-content p{margin-bottom:1.35em;text-indent:2em;}
.novel-content p:first-of-type::first-letter{color:var(--gold-bright);}
.reader-wrap.theme-sepia .novel-content{color:#d8c9a3;}
.reader-wrap.theme-paper .novel-content{color:#3a3226;}
.reader-wrap.theme-paper .reader-head h1,
.reader-wrap.theme-paper .reader-head h2,
.reader-wrap.theme-paper .reader-head .meta,
.reader-wrap.theme-paper .reader-head .crumb{color:#4a4136;}
.reader-wrap.theme-paper .reader-head .crumb a{color:#6b5e4e;}
.reader-wrap.theme-paper .novel-content p:first-of-type::first-letter{color:#8a5a10;}
.chapter-nav{display:flex;justify-content:space-between;gap:14px;margin:44px 0 8px;}
.chapter-nav a{
  flex:1;border:1px solid var(--line);background:var(--bg-soft);
  padding:13px 16px;font-size:13px;color:var(--ink-dim);transition:.2s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.chapter-nav a:hover{border-color:var(--gold);color:var(--gold-bright);}
.chapter-nav a .dir{display:block;font-size:10px;color:var(--gold);letter-spacing:3px;margin-bottom:5px;}
.chapter-nav a.next{text-align:right;}
.reader-wrap.theme-paper .chapter-nav a{background:#efe9da;border-color:#d5cbb4;color:#5c5142;}
.reader-wrap.theme-paper .chapter-nav a .dir{color:#8a5a10;}
@media (max-width:640px){
  .novel-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;}
  .novel-cover{height:120px;}
  .reader-wrap.theme-paper .comment-item .c-body,
  .reader-wrap.theme-paper .comment-item .c-name{color:#4a4136;}
}

/* ============ 子栏目符纸 ============ */
.fu-area{margin:18px 0 8px;}
.fu-list{display:flex;flex-wrap:wrap;justify-content:space-evenly;gap:16px 8px;align-items:flex-start;}
.fu-card{
  position:relative;display:flex;flex-direction:column;align-items:center;
  width:88px;height:150px;padding:20px 0 8px;
  background:linear-gradient(172deg,#e9d693 0%,#dcc273 55%,#c3a457 100%);
  clip-path:polygon(0 0,100% 0,100% 100%,92% 93%,84% 100%,76% 93%,68% 100%,60% 93%,52% 100%,44% 93%,36% 100%,28% 93%,20% 100%,12% 93%,4% 100%,0 96%);
  filter:drop-shadow(0 5px 9px rgba(0,0,0,.45));
  transition:transform .25s,filter .25s;
}
.fu-card:nth-child(odd){transform:rotate(-2.4deg);}
.fu-card:nth-child(even){transform:rotate(1.8deg);}
.fu-card:nth-child(3n){transform:rotate(3deg);}
.fu-card:nth-child(4n){transform:rotate(-1.2deg);}
.fu-card::before{ /* 穿绳孔 + 朱砂点 */
  content:"";position:absolute;top:9px;left:50%;margin-left:-3px;
  width:6px;height:6px;border-radius:50%;
  background:#0b0a10;box-shadow:0 0 0 2px rgba(164,52,40,.85);
}
.fu-card:hover{
  transform:rotate(0) scale(1.05);
  filter:drop-shadow(0 7px 14px rgba(0,0,0,.55)) drop-shadow(0 0 10px rgba(224,58,46,.35));
}
.fu-card:hover .fu-name{color:#8f1410;text-shadow:0 0 6px rgba(224,58,46,.35);}
.fu-name{
  flex:1;display:flex;align-items:center;
  writing-mode:vertical-rl;letter-spacing:5px;
  font-size:15.5px;font-weight:600;color:#b3261c;
  text-shadow:0 1px 0 rgba(255,255,255,.25);
  transition:.25s;
}
.fu-count{
  font-size:10px;color:#6b5416;letter-spacing:1px;
  border-top:1px dashed rgba(107,84,22,.45);padding-top:4px;width:64%;text-align:center;
}
@media (max-width:640px){
  .fu-list{gap:14px;}
  .fu-card{width:76px;height:132px;}
}
@media (prefers-reduced-motion:reduce){
  .fu-card,.fu-card:hover{transition:none;}
}
@media (max-width:860px){
  .btn-radio .btn-radio-text{display:none;}
  .btn-radio{padding:7px 11px;border-radius:50%;}
}

/* ============ 导航内背景音乐开关（电台右侧小圆钮） ============ */
.bgm-mini{
  width:32px;height:32px;border-radius:50%;
  background:rgba(70,214,129,.08);border:1px solid rgba(70,214,129,.45);
  color:#57e08f;font-size:13px;line-height:1;cursor:pointer;
  transition:.25s;flex-shrink:0;padding:0;
}
.bgm-mini:hover{box-shadow:0 0 10px rgba(87,224,143,.4);border-color:#57e08f;}
.bgm-mini.on{animation:bgmPulse 2.6s ease-in-out infinite;}
@keyframes bgmPulse{
  0%,100%{box-shadow:0 0 0 rgba(87,224,143,0);}
  50%{box-shadow:0 0 18px rgba(87,224,143,.5);}
}

/* ============ 返回顶部悬浮按钮（右下角，常驻显示） ============ */
.backtop-btn{
  position:fixed;right:18px;bottom:18px;z-index:40;
  width:46px;height:46px;border-radius:50%;
  background:rgba(11,10,16,.82);backdrop-filter:blur(6px);
  border:1px solid rgba(184,150,62,.5);color:var(--gold-bright);
  font-size:18px;line-height:1;cursor:pointer;padding:0;
  transition:box-shadow .25s,border-color .25s;
}
.backtop-btn:hover{border-color:var(--gold-bright);box-shadow:0 0 14px rgba(217,180,92,.4);}

/* ============ 入站警告遮罩（点击入内 = 解锁音乐） ============ */
.gate-mask{
  position:fixed;inset:0;z-index:100;background:#050408;
  display:flex;align-items:center;justify-content:center;
  transition:opacity .7s ease,visibility .7s;
}
.gate-mask.leave{opacity:0;visibility:hidden;}
.gate-inner{text-align:center;padding:0 24px;}
.gate-seal{
  width:84px;height:84px;margin:0 auto 26px;border:3px solid var(--seal);border-radius:8px;
  display:grid;place-items:center;font-size:44px;font-weight:700;color:var(--seal);
  transform:rotate(-8deg);
  text-shadow:0 0 18px rgba(196,30,24,.6);
  box-shadow:0 0 34px rgba(160,40,30,.35), inset 0 0 20px rgba(160,40,30,.2);
  animation:bloodFlicker 3.8s infinite;
}
.gate-warn{
  font-size:30px;letter-spacing:14px;color:#e03a2e;
  text-shadow:0 0 14px rgba(196,30,24,.55);
  animation:bloodFlicker 4.6s infinite;margin-bottom:14px;
}
.gate-line{font-family:var(--kai);font-size:15px;color:var(--ink-dim);letter-spacing:2px;margin-bottom:6px;}
.gate-line.dim{color:var(--ink-faint);font-size:12.5px;margin-bottom:30px;}
.gate-btn{
  font-family:var(--serif);font-size:16px;letter-spacing:6px;
  color:#ff6a5a;background:rgba(160,40,30,.08);
  border:1px solid rgba(196,30,24,.6);padding:14px 46px;cursor:pointer;
  animation:gateBreath 2.4s ease-in-out infinite;transition:.25s;
}
.gate-btn:hover{background:#a03428;color:#0b0a10;box-shadow:0 0 30px rgba(196,30,24,.6);}
@keyframes gateBreath{
  0%,100%{box-shadow:0 0 0 rgba(196,30,24,0);}
  50%{box-shadow:0 0 26px rgba(196,30,24,.55);}
}
@media (max-width:640px){
  .gate-warn{font-size:24px;letter-spacing:8px;}
  .gate-btn{padding:12px 30px;letter-spacing:4px;}
}

/* ============ 移动端适配（2026-09 优化） ============
   目标：① 彻底消除页头横向溢出（此前 390px 下溢出 76px，页面能左右滑）
        ② 关键触控区 ≥40px  ③ 小屏字号/间距更耐看
   注意：不要在这里加 html{overflow-x:hidden}——html 一旦变成滚动容器，
        整页会无法滚动（已实测踩坑）。布局本身收窄即可，body 的
        overflow-x:hidden 已足够兜底。 */
/* 随手抽一卷（HERO 侧栏时钟下方）：紧凑虚线链接，尽量不抬高首屏 */
.hero .btn-random{
  display:block;text-align:center;margin-top:10px;padding:5px 8px;
  font-size:12.5px;letter-spacing:2px;border:1px dashed rgba(184,150,62,.45);
  color:var(--gold);transition:.2s;
}
.hero .btn-random:hover{border-color:var(--gold);color:var(--gold-bright);background:rgba(184,150,62,.06);}

/* 手机端：链接再压一档，并让时钟块少占一点高度 */

/* ============ 手机端首页首屏收紧（2026-09 优化） ============
   实测：390px 下 HERO 高 741px、首张卡片要到 1.37 屏；sec-head 因换行高达 77px。
   目标：HERO ≤ 560px，首张卡片进入 1.1 屏内，标题行单行显示。 */
@media (max-width:640px){
  .hero{padding:34px 0 30px;}
  .hero::after{width:120px;height:120px;top:20px;right:4%;}
  .file-tag{margin-bottom:14px;font-size:12px;}
  h1.headline{font-size:clamp(25px,7.2vw,33px);margin-bottom:14px;line-height:1.3;}
  .hero .excerpt{font-size:14.5px;margin-bottom:18px;}
  .meta{gap:10px 16px;margin-bottom:22px;font-size:12px;}
  .btn-read{padding:12px 26px;}
  .clock-box{margin-top:12px;}
  .hero .btn-random{margin-top:8px;padding:9px 6px;font-size:12px;}

  .sec-head{gap:10px;margin:38px 0 20px;flex-wrap:nowrap;}
  .sec-head .en{display:none;}          /* 英文小标在手机上会逼出第二行 */
  .sec-head h2{font-size:19px;letter-spacing:3px;white-space:nowrap;}
  .sec-head .rule{min-width:16px;}
  .sec-head .more{font-size:12.5px;white-space:nowrap;}
  .filters{gap:8px;margin-bottom:20px;}
  .filters a{min-height:40px;display:inline-flex;align-items:center;}   /* 触控区达标 */

  /* 弹窗类移动端可用性：关闭/静音按钮触控区 ≥40px；弹窗不得超出视口且可滚动 */
  .dm-close{top:2px;right:4px;width:40px;height:40px;display:grid;place-items:center;font-size:20px;}
  .radio-mute{width:40px;height:40px;font-size:16px;}
  .modal{max-height:92vh;overflow-y:auto;}
  .donate-modal{max-height:92vh;}
  .modal-mask,.mask{padding:14px;}
}

@media (min-width:861px){
  .prev-next.duo{grid-template-columns:1fr 1fr;}
  .prev-next.duo a:last-child,.prev-next.duo .pn-empty:last-child{text-align:right;}
}
.prev-next .pn-empty{
  border:1px dashed var(--line);background:transparent;padding:14px 18px;
  font-size:13.5px;color:var(--ink-faint);display:block;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;
}
@media (max-width:860px){
  .wrap{padding:0 16px;}
  .nav-inner{gap:12px;}
  .logo{min-width:0;}
  .logo .name{font-size:17px;letter-spacing:3px;white-space:nowrap;}
  .logo .en{display:none;}                   /* 英文副题占 205px，小屏隐藏 */
  .nav-right{gap:10px;}
  .btn-radio{padding:9px;}                   /* 只留电波图标，圆钮 35px */
  .btn-radio .radio-live{display:none;}      /* “ON AIR” 文字小屏隐藏 */
  .bgm-mini{width:40px;height:40px;font-size:16px;}   /* 触控区达标 */
  .candle-btn{min-height:32px;padding:5px 10px;}
  .more{display:inline-block;padding:8px 2px;}
  .donate-link{display:inline-block;padding:6px 0;}
  .crumbs a,.crumbs .cur{display:inline-block;padding:4px 1px;}
  .tagcloud a{padding:9px 13px;}
  .foot-links a,footer .foot-grid p > a{display:inline-block;padding:5px 0;}
  .comment-toggle{min-height:40px;}
  .hot-list li a{padding:5px 0;display:block;}
  .prev-next a{padding:14px 16px;}
  .backtop-btn{width:48px;height:48px;}
}
@media (max-width:400px){
  .logo .name{font-size:16px;letter-spacing:2px;}
  .nav-inner{gap:8px;}
}

