/* =========================================================
   韩漫漫画 · 多页面组件  (pages.css)
   依赖 style.css 中的设计变量
   ========================================================= */

/* ---------- 内页页头 ---------- */
.page-hero{
  position:relative; z-index:2; padding:150px 0 60px; overflow:hidden;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(760px 320px at 12% -10%, rgba(47,230,214,.13), transparent 66%),
    radial-gradient(660px 300px at 88% 6%,  rgba(255,92,138,.10), transparent 64%);
}
.page-hero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(rgba(160,190,255,.09) 1px, transparent 1px);
  background-size:14px 14px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 88%);
          mask-image:linear-gradient(180deg,#000,transparent 88%);
}
.page-hero__in{ position:relative; max-width:920px; }
.page-hero h1{ font-size:clamp(27px,3.9vw,48px); font-weight:900; letter-spacing:.01em; }
.page-hero h1 em{ font-style:normal; color:var(--cyan); }
.page-hero .lead{ margin-top:18px; font-size:16.5px; max-width:66ch; }

.crumbs{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:20px;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; color:var(--muted-2);
}
.crumbs a{ color:var(--muted); transition:color .25s; }
.crumbs a:hover{ color:var(--cyan); }
.crumbs i{ font-style:normal; opacity:.4; }
.crumbs b{ color:var(--cyan); font-weight:600; }

/* 内页快捷导航 */
.quicknav{ display:flex; flex-wrap:wrap; gap:9px; margin-top:30px; }
.quicknav a{
  display:inline-flex; align-items:center; gap:7px; padding:9px 16px; border-radius:100px;
  font-size:13.5px; color:var(--muted); border:1px solid var(--line); background:rgba(18,26,52,.6);
  transition:all .3s var(--ease);
}
.quicknav a:hover{ color:var(--cyan); border-color:var(--line-2); transform:translateY(-2px); }
.quicknav a::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--cyan); opacity:.6; }

/* ---------- 题材卡片 ---------- */
.cat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.cat-card{
  position:relative; display:block; padding:26px 24px 22px; border-radius:var(--radius);
  border:1px solid var(--line); overflow:hidden;
  background:linear-gradient(165deg,rgba(24,33,70,.62),rgba(11,16,32,.74));
  transition:transform .45s var(--ease), border-color .4s, box-shadow .45s var(--ease);
}
.cat-card:hover{ transform:translateY(-6px); border-color:var(--line-2); box-shadow:0 28px 56px -32px rgba(0,0,0,.92); }
.cat-card__glow{
  position:absolute; top:-46px; right:-34px; width:150px; height:150px; border-radius:50%;
  filter:blur(46px); opacity:.32; background:var(--c1,#2fe6d6); transition:opacity .45s;
}
.cat-card:hover .cat-card__glow{ opacity:.58; }
.cat-card h3{ position:relative; font-size:19px; }
.cat-card em{
  position:absolute; top:26px; right:24px; font-family:var(--mono); font-style:normal;
  font-size:12px; color:var(--muted-2);
}
.cat-card p{ position:relative; margin:10px 0 0; font-size:13px; color:var(--muted); line-height:1.7; }
.cat-card__bar{ position:relative; margin-top:18px; height:3px; border-radius:3px;
  background:linear-gradient(90deg,var(--c1,#2fe6d6),var(--c2,#7c6cff)); opacity:.9; }
.cat-card__go{ position:relative; margin-top:15px; display:inline-flex; align-items:center; gap:6px;
  font-size:12.5px; font-weight:600; color:var(--cyan); }
.cat-card__go svg{ width:13px; height:13px; transition:transform .35s var(--ease); }
.cat-card:hover .cat-card__go svg{ transform:translateX(4px); }

/* ---------- 分栏 / 要点列表 ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.split--wide{ grid-template-columns:1.1fr .9fr; }
.checklist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.checklist li{ display:flex; gap:12px; align-items:flex-start; color:var(--muted); font-size:14.5px; line-height:1.7; }
.checklist svg{ width:17px; height:17px; flex:none; margin-top:5px; color:var(--cyan); }
.checklist b{ color:var(--text); font-weight:700; }

/* ---------- 提示条 ---------- */
.notice{
  display:flex; gap:14px; align-items:flex-start; padding:20px 22px; border-radius:14px;
  border:1px solid rgba(255,200,87,.28); background:rgba(255,200,87,.06);
  color:#f2e6c8; font-size:14px; line-height:1.7;
}
.notice svg{ width:19px; height:19px; flex:none; margin-top:3px; color:var(--gold); }
.notice--info{ border-color:rgba(47,230,214,.28); background:rgba(47,230,214,.06); color:#d5f4f0; }
.notice--info svg{ color:var(--cyan); }
.notice b{ color:#fff; }

/* ---------- 步骤 ---------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.step{
  position:relative; padding:28px 24px 24px; border-radius:var(--radius);
  border:1px solid var(--line); background:linear-gradient(165deg,rgba(24,33,70,.55),rgba(11,16,32,.7));
  transition:transform .45s var(--ease), border-color .4s;
}
.step:hover{ transform:translateY(-5px); border-color:var(--line-2); }
.step__no{
  width:38px; height:38px; border-radius:11px; display:grid; place-items:center;
  font-family:var(--mono); font-size:14px; font-weight:700; color:var(--cyan);
  background:rgba(47,230,214,.10); border:1px solid rgba(47,230,214,.28); margin-bottom:16px;
}
.step h3{ font-size:16.5px; font-family:var(--sans); font-weight:700; margin-bottom:9px; }
.step p{ margin:0; font-size:13.5px; color:var(--muted); line-height:1.7; }

/* ---------- 对比表 ---------- */
.table-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:rgba(10,14,30,.55); }
table.cmp{ width:100%; border-collapse:collapse; min-width:660px; font-size:14px; }
table.cmp caption{ text-align:left; padding:18px 22px 0; color:var(--muted-2); font-size:12.5px; font-family:var(--mono); letter-spacing:.08em; }
table.cmp th, table.cmp td{ padding:15px 20px; text-align:left; border-bottom:1px solid var(--line); }
table.cmp thead th{ font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-2); font-family:var(--mono); font-weight:600; background:rgba(127,166,255,.04); }
table.cmp tbody tr:last-child td{ border-bottom:none; }
table.cmp tbody tr:hover td{ background:rgba(127,166,255,.04); }
table.cmp td:first-child{ color:var(--text); font-weight:600; }
table.cmp .yes{ color:var(--cyan); font-weight:600; }
table.cmp .no{ color:var(--muted-2); }

/* ---------- 长文排版 ---------- */
.prose h2{ font-size:clamp(21px,2.4vw,28px); margin:0 0 16px; }
.prose h3{ font-size:17.5px; font-family:var(--sans); font-weight:700; margin:30px 0 10px; }
.prose p{ margin:0 0 18px; color:var(--muted); font-size:15px; line-height:1.85; }
.prose p:last-child{ margin-bottom:0; }
.prose b{ color:var(--text); font-weight:700; }
.prose a{ color:var(--cyan); border-bottom:1px solid rgba(47,230,214,.35); }
.prose a:hover{ border-bottom-color:var(--cyan); }

/* ---------- FAQ 分组 ---------- */
.qa-group{ margin-bottom:46px; }
.qa-group > h2{ font-size:clamp(19px,2.2vw,23px); margin-bottom:18px; display:flex; align-items:center; gap:12px; }
.qa-group > h2::before{ content:""; width:6px; height:20px; border-radius:3px; background:linear-gradient(180deg,var(--cyan),var(--pink)); }
.qa{ border-bottom:1px solid var(--line); }
.qa h3{ margin:0; }
.qa__q{
  width:100%; background:none; border:none; color:var(--text); cursor:pointer; text-align:left;
  padding:22px 50px 22px 0; font-size:16px; font-weight:600; position:relative; font-family:var(--sans);
  line-height:1.6; transition:color .3s;
}
.qa__q:hover{ color:var(--cyan); }
.qa__q::after{
  content:""; position:absolute; right:8px; top:50%; width:12px; height:12px;
  border-right:2px solid var(--muted); border-bottom:2px solid var(--muted);
  transform:translateY(-70%) rotate(45deg); transition:transform .4s var(--ease), border-color .3s;
}
.qa.open .qa__q{ color:var(--cyan); }
.qa.open .qa__q::after{ transform:translateY(-30%) rotate(-135deg); border-color:var(--cyan); }
.qa__a{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.qa__a > div{ padding:0 0 26px; color:var(--muted); font-size:15px; line-height:1.85; max-width:84ch; }
.qa__a p{ margin:0 0 12px; }
.qa__a p:last-child{ margin-bottom:0; }
.qa__a b{ color:var(--text); }

/* ---------- 内链卡片 ---------- */
.related{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.related a{
  display:flex; flex-direction:column; gap:8px; padding:24px 22px; border-radius:var(--radius);
  border:1px solid var(--line); background:linear-gradient(165deg,rgba(24,33,70,.5),rgba(11,16,32,.68));
  transition:transform .4s var(--ease), border-color .4s;
}
.related a:hover{ transform:translateY(-5px); border-color:var(--line-2); }
.related b{ font-size:16.5px; font-family:var(--serif); font-weight:700; }
.related span{ font-size:13px; color:var(--muted); line-height:1.65; }
.related em{ font-style:normal; font-size:12px; color:var(--cyan); font-family:var(--mono); letter-spacing:.06em; }

/* ---------- 作品卡（静态图片版） ---------- */
.comic__cover{ position:relative; aspect-ratio:3/4; overflow:hidden; background:#0b1020; }
.rank__cv img{ width:100%; height:100%; object-fit:cover; display:block; }
.comics{ scroll-margin-top:120px; }
.filter-meta{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 22px;
  font-size:13.5px; color:var(--muted-2); font-family:var(--mono); letter-spacing:.06em; }
.filter-meta b{ color:var(--cyan); font-weight:700; }
.comic-empty{ text-align:center; padding:60px 0; color:var(--muted-2); font-size:15px; }
.comic-empty[hidden]{ display:none; }
.comic__cover img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.comic:hover .comic__cover img{ transform:scale(1.06); }
.comic__cover::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,transparent 38%,rgba(6,8,15,.55) 66%,rgba(6,8,15,.95));
}
.cover__title{
  position:absolute; left:12px; right:12px; bottom:36px; z-index:3;
  font-family:var(--serif); font-weight:900; font-size:16.5px; line-height:1.28; letter-spacing:.01em;
  color:#fff; text-shadow:0 3px 14px rgba(0,0,0,.9), 0 1px 3px rgba(0,0,0,.95);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.comic[hidden]{ display:none; }
.comics.is-filtering .comic{ animation:pop .45s var(--ease) both; }

/* ---------- 通用小工具 ---------- */
.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;
}
.inline-links{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.inline-links a{
  font-size:13.5px; color:var(--muted); padding:8px 15px; border-radius:100px;
  border:1px solid var(--line); background:rgba(18,26,52,.5); transition:all .3s var(--ease);
}
.inline-links a:hover{ color:var(--cyan); border-color:var(--line-2); }
.color-note{ color:var(--muted-2); font-size:13px; }
code{
  font-family:var(--mono); font-size:.88em; padding:2px 7px; border-radius:6px;
  background:rgba(127,166,255,.10); border:1px solid var(--line); color:#cfd9ff;
  word-break:break-all;
}

/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  .cat-grid{ grid-template-columns:repeat(2,1fr); }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .split, .split--wide{ grid-template-columns:1fr; gap:36px; }
  .related{ grid-template-columns:1fr 1fr; }
}
@media (max-width:820px){
  .page-hero{ padding:126px 0 46px; }
}
@media (max-width:620px){
  .cat-grid{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; }
  .related{ grid-template-columns:1fr; }
  .quicknav a{ font-size:12.5px; padding:8px 13px; }
  table.cmp{ min-width:560px; }
}
