/*
  第九次出生 — 黎明檔案（Dawn Archive）
  2026 redesign layer
*/
:root {
  --ink: #080a0f;
  --ink-raised: #10141d;
  --ink-soft: #171c28;
  --paper: #f5f4ef;
  --paper-muted: rgba(245,244,239,.62);
  --paper-faint: rgba(245,244,239,.36);
  --line: rgba(223,235,255,.15);
  --line-strong: rgba(223,235,255,.27);
  --dawn: #ffb36b;
  --dawn-soft: rgba(255,179,107,.16);
  --signal: #98d7ff;
  --signal-soft: rgba(152,215,255,.16);
  --serif: "Iowan Old Style", "Songti TC", "Noto Serif TC", "PMingLiU", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang TC", "Microsoft JhengHei", sans-serif;
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 12px;
}

body {
  --bg: var(--ink);
  --bg2: var(--ink-raised);
  --bg3: var(--ink-soft);
  --white: var(--paper);
  --text: var(--paper);
  --text-dim: var(--paper-muted);
  --text-xs: var(--paper-faint);
  --border: var(--line);
  --border2: var(--line-strong);
  --surface: rgba(255,255,255,.045);
  --surface2: rgba(255,255,255,.08);
  --accent: var(--paper);
  --accent-gold: var(--dawn);
  --font: var(--sans);
  background: var(--ink) !important;
  color: var(--paper);
  letter-spacing: .01em;
}
body::after {
  content:""; position:fixed; inset:0; pointer-events:none; z-index:-1; opacity:.58;
  background:
    linear-gradient(rgba(153,208,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(153,208,255,.035) 1px, transparent 1px),
    radial-gradient(circle at 74% 0%, rgba(84,142,217,.16), transparent 31rem),
    radial-gradient(circle at 8% 92%, rgba(255,160,88,.08), transparent 34rem);
  background-size: 48px 48px, 48px 48px, auto, auto;
}
body.light {
  --bg: #f4f3ef;
  --bg2: #eceae5;
  --bg3: #e4e1da;
  --white: #111722;
  --text: #111722;
  --text-dim: rgba(17,23,34,.64);
  --text-xs: rgba(17,23,34,.43);
  --border: rgba(17,23,34,.12);
  --border2: rgba(17,23,34,.22);
  --surface: rgba(17,23,34,.035);
  --surface2: rgba(17,23,34,.07);
  --accent: #111722;
  --ink: #f4f3ef;
  --ink-raised: #eceae5;
}
body.light::after { opacity:.36; background-image:linear-gradient(rgba(17,23,34,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(17,23,34,.045) 1px,transparent 1px),radial-gradient(circle at 74% 0%,rgba(84,142,217,.13),transparent 31rem),radial-gradient(circle at 8% 92%,rgba(255,160,88,.1),transparent 34rem); }

::selection { background: var(--dawn); color:#15100c; }
body.menu-open { overflow:hidden; }

/* Navigation */
#nav {
  height:72px; background:rgba(8,10,15,.78) !important; border-bottom:1px solid var(--line) !important;
  backdrop-filter:blur(22px) saturate(130%); -webkit-backdrop-filter:blur(22px) saturate(130%);
}
body.light #nav { background:rgba(244,243,239,.82) !important; }
.nav-wrap { max-width:1280px; padding:0 32px; }
.nav-logo { gap:10px; }
.nav-logo::after { content:"BD / NINTH BIRTH"; font-size:10px; letter-spacing:.16em; color:var(--text-xs); white-space:nowrap; }
.nav-logo-img { width:34px; height:34px; border-radius:10px; }
.nav-menu { gap:4px; }
.nav-menu li a { height:72px; padding:0 15px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.nav-menu li a.active { color:var(--dawn); }
.nav-theme-toggle { width:38px !important; height:38px !important; border:1px solid var(--line) !important; border-radius:50%; background:var(--surface) !important; color:var(--white) !important; }
.nav-hamburger span { background:var(--white); }

/* Buttons & reusable rhythm */
.btn, .toolbar-btn {
  border:1px solid var(--line-strong) !important; border-radius:999px !important;
  background:transparent !important; color:var(--white) !important; box-shadow:none !important;
  font-weight:600 !important; letter-spacing:.035em; transition:transform .22s ease, background .22s ease, border-color .22s ease !important;
}
.btn:hover,.toolbar-btn:hover { transform:translateY(-2px); opacity:1 !important; background:var(--surface2) !important; border-color:var(--dawn) !important; }
.btn-primary,.toolbar-btn.primary { background:var(--paper) !important; color:var(--ink) !important; border-color:var(--paper) !important; }
body.light .btn-primary,body.light .toolbar-btn.primary { background:#111722 !important; color:#f4f3ef !important; border-color:#111722 !important; }
.btn-outline { color:var(--signal) !important; border-color:rgba(152,215,255,.42) !important; }

/* Page headings and footer */
.page-header,.page-hero { background:transparent !important; border-bottom:1px solid var(--line) !important; }
.page-header-inner,.page-hero-inner { max-width:1280px !important; }
.section-title,.page-title { font-family:var(--serif); letter-spacing:-.05em !important; }
footer { background:rgba(8,10,15,.72) !important; border-top:1px solid var(--line) !important; }
body.light footer { background:rgba(236,234,229,.76) !important; }
.footer-wrap { max-width:1280px !important; }
.footer-col-title { color:var(--dawn) !important; letter-spacing:.12em !important; }
.footer-col a { color:var(--text-dim) !important; }

/* Bookshelf: editorial volume cards */
.shelf-section { max-width:1280px !important; padding:164px 32px 120px !important; }
.shelf-part-label {
  margin:94px 0 16px !important; padding:0 0 12px !important;
  border-bottom:1px solid var(--line) !important; font-size:12px !important;
  letter-spacing:.18em !important; color:var(--dawn) !important; text-transform:uppercase;
}
.shelf-part-label:first-of-type { margin-top:50px !important; }
.book-row {
  display:grid !important; grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr) !important;
  min-height:440px; border:1px solid var(--line-strong) !important; border-radius:var(--radius-lg) !important;
  overflow:hidden; background:rgba(13,17,25,.72) !important; box-shadow:0 22px 80px rgba(0,0,0,.2);
}
.book-row-cover {
  min-height:440px; border-right:1px solid var(--line) !important;
  background:linear-gradient(145deg,#19202d,#080a0f 66%) !important; display:flex !important;
  flex-direction:column; justify-content:flex-end !important; align-items:flex-start !important; padding:38px !important;
}
.book-row-cover::before { content:"VOLUME"; position:absolute; top:28px; left:32px; font-size:10px; letter-spacing:.22em; color:var(--paper-faint); }
.book-row-cover-title { font-family:var(--serif) !important; font-size:clamp(44px,5vw,72px) !important; text-align:left !important; line-height:.9 !important; }
.book-row-cover-sub { margin-top:18px !important; font-size:11px !important; letter-spacing:.16em !important; color:var(--paper-muted) !important; }
.part2-card .book-row-cover { background:linear-gradient(145deg,#251c10,#090a0f 68%) !important; }
.part2-card .book-row-cover-title,.part2-card .book-row-cover-sub { color:var(--dawn) !important; }
.part3-card .book-row-cover { background:linear-gradient(145deg,#0a1f2f,#080a0f 68%) !important; }
.part3-card .book-row-cover-title { color:var(--signal) !important; text-shadow:none !important; }
.part3-card .book-row-cover-sub { color:var(--signal) !important; }
.book-row-info { padding:42px 46px !important; background:transparent !important; }
.book-row-badges { margin-bottom:24px !important; }
.badge { border-color:var(--line) !important; background:var(--surface) !important; color:var(--text-dim) !important; }
.part3-badge { color:var(--signal) !important; border-color:rgba(152,215,255,.38) !important; background:var(--signal-soft) !important; }
.book-row-title { font-family:var(--serif) !important; font-size:clamp(27px,3vw,42px) !important; line-height:1.04 !important; }
.book-row-desc { font-size:15px !important; line-height:1.9 !important; max-width:48rem; }
.book-row-meta { color:var(--signal) !important; }
.ch-list-header { color:var(--paper-faint) !important; letter-spacing:.16em !important; }
.ch-list-item { border-bottom-color:var(--line) !important; }
.ch-list-item:hover { background:var(--surface) !important; }
.ch-list-num { color:var(--paper-faint) !important; }
.ch-list-status { color:var(--signal) !important; }

/* Reading pages: quiet manuscript */
.reading-toolbar {
  top:72px !important; border-bottom:1px solid var(--line) !important; background:rgba(8,10,15,.84) !important;
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); padding:12px max(20px,calc((100vw - 1200px)/2)) !important;
}
body.light .reading-toolbar { background:rgba(244,243,239,.86) !important; }
.reading-toolbar-center { gap:8px !important; }
.toolbar-chapter-label { color:var(--text-xs) !important; letter-spacing:.08em; }
.progress-bar { height:2px !important; background:transparent !important; }
.progress-fill { background:linear-gradient(90deg,var(--dawn),var(--signal)) !important; }
.reading-body { max-width:860px !important; padding:174px 28px 128px !important; }
.reading-body > div:first-child { padding-top:0 !important; }
.part-badge { border-color:rgba(152,215,255,.35) !important; color:var(--signal) !important; background:rgba(152,215,255,.08) !important; letter-spacing:.14em !important; }
.reading-chapter-title { font-family:var(--serif) !important; font-size:clamp(46px,7vw,86px) !important; letter-spacing:-.065em !important; line-height:.95 !important; margin:30px 0 16px !important; }
.reading-meta { color:var(--paper-faint) !important; }
.part3-source-status { border-color:var(--line-strong) !important; background:rgba(152,215,255,.055) !important; }
.podcast-embed { border-color:var(--line) !important; background:rgba(255,255,255,.025) !important; }
.reading-content { max-width:640px !important; margin:82px auto !important; }
.reading-content p { font-family:var(--serif) !important; color:var(--paper) !important; font-size:clamp(18px,2vw,21px) !important; line-height:2.16 !important; letter-spacing:.025em !important; margin:0 0 1.62em !important; }
body.light .reading-content p { color:#20232b !important; }
.reading-content p:first-child::first-letter { color:var(--dawn); font-size:3.3em; float:left; line-height:.72; padding-right:.11em; font-family:var(--serif); }
.reading-nav { border-top:1px solid var(--line) !important; padding-top:32px !important; }
.toc-overlay { background:rgba(8,10,15,.98) !important; }
.toc-panel { background:transparent !important; border-bottom:1px solid var(--line) !important; }
.toc-part-heading { color:var(--dawn) !important; }
.toc-item { border-bottom-color:var(--line) !important; }
.toc-active { background:var(--surface) !important; }
.music-dock { border-color:var(--line-strong) !important; background:rgba(12,16,24,.92) !important; box-shadow:0 12px 44px rgba(0,0,0,.35) !important; }
.music-dock.is-playing { border-color:var(--dawn) !important; }

/* Support, author, simple information pages */
.support-card,.support-tier,.about-card,.legal-card,.podcast-card { border-color:var(--line) !important; background:rgba(14,18,27,.7) !important; border-radius:var(--radius-lg) !important; }
body.light .support-card,body.light .support-tier,body.light .about-card,body.light .legal-card,body.light .podcast-card { background:rgba(255,255,255,.56) !important; }
.reveal { transition:opacity .65s ease,transform .65s ease; }

@media (max-width:768px) {
  #nav { height:64px; }
  .nav-wrap { padding:0 18px; }
  .nav-logo::after { display:none; }
  .nav-menu.open { background:rgba(8,10,15,.98) !important; padding-top:104px !important; }
  body.light .nav-menu.open { background:rgba(244,243,239,.98) !important; }
  .nav-menu.open li a { color:var(--white) !important; font-family:var(--serif); font-size:34px !important; }
  .shelf-section { padding:118px 18px 72px !important; }
  .shelf-part-label { margin-top:66px !important; }
  .book-row { grid-template-columns:1fr !important; min-height:0 !important; }
  .book-row-cover { min-height:250px !important; border-right:none !important; border-bottom:1px solid var(--line) !important; padding:28px !important; }
  .book-row-info { padding:30px 26px !important; }
  .book-row-cover-title { font-size:54px !important; }
  .reading-toolbar { top:64px !important; flex-wrap:wrap !important; gap:8px !important; padding:10px 18px !important; }
  .reading-toolbar-left { width:100% !important; }
  .toolbar-chapter-label { display:none !important; }
  .reading-body { padding:176px 22px 88px !important; }
  .reading-chapter-title { font-size:48px !important; }
  .reading-content { margin:58px auto !important; }
  .reading-content p { font-size:18px !important; line-height:2.05 !important; }
}

/* ── 可讀性修正：日間模式與手機閱讀工具列 ── */
body.light {
  --paper: #111722;
  --paper-muted: rgba(17,23,34,.70);
  --paper-faint: rgba(17,23,34,.48);
  --dawn: #a65a0b;
  --signal: #006fae;
  --signal-soft: rgba(0,111,174,.12);
  --dawn-soft: rgba(166,90,11,.12);
  --ink-raised: #fffdf8;
  --ink-soft: #e7e5df;
}

/* 首頁：日間模式固定使用深色主視覺，其餘區段使用深色文字 */
body.light .archive-hero {
  background:
    radial-gradient(circle at 82% 24%, rgba(66,150,214,.23), transparent 28rem),
    radial-gradient(circle at 5% 80%, rgba(231,147,68,.13), transparent 30rem),
    #0a1019;
}
body.light .archive-hero::before { background:linear-gradient(90deg,rgba(10,16,25,.26),rgba(10,16,25,.92) 73%),linear-gradient(0deg,rgba(10,16,25,.88),transparent 58%); }
body.light .archive-hero .archive-title { color:#f7f5ef; }
body.light .archive-hero .archive-deck { color:rgba(247,245,239,.76); }
body.light .archive-hero .archive-eyebrow { color:#98d7ff; }
body.light .archive-hero .home-orbit { border-color:rgba(152,215,255,.24); }
body.light .archive-hero .home-orbit.two { border-color:rgba(255,179,107,.2); }
body.light .archive-index { background:rgba(10,16,25,.82); border-color:rgba(229,238,250,.24); color:#f7f5ef; }
body.light .archive-index-title { color:#f7f5ef; }
body.light .archive-index-copy { color:rgba(247,245,239,.68); }
body.light .archive-index-meta { color:rgba(247,245,239,.52); border-color:rgba(247,245,239,.16); }
body.light .archive-index-meta a { color:#98d7ff; }
body.light .archive-hero .btn-outline { color:#9cddff !important; border-color:rgba(156,221,255,.58) !important; }
body.light .archive-hero .btn-primary { background:#f7f5ef !important; border-color:#f7f5ef !important; color:#0a1019 !important; }
body.light .volume-card.active { background:linear-gradient(145deg,#10283a,#0b1520) !important; }
body.light .volume-card.active .volume-no,
body.light .volume-card.active .volume-name,
body.light .volume-card.active .volume-state { color:#f7f5ef !important; }
body.light .volume-card.active .volume-state { color:rgba(247,245,239,.68) !important; }

/* 書櫃：日間模式仍保留深色書封，正文面板改為白底深色字 */
body.light .book-row { background:rgba(255,253,248,.9) !important; box-shadow:0 16px 44px rgba(21,28,39,.11); }
body.light .book-row-cover { color:#f7f5ef !important; }
body.light .book-row-cover::before,
body.light .book-row-cover-title,
body.light .book-row-cover-sub { color:#f7f5ef !important; }
body.light .part2-card .book-row-cover-title,
body.light .part2-card .book-row-cover-sub { color:#ffd39a !important; }
body.light .part3-card .book-row-cover-title,
body.light .part3-card .book-row-cover-sub { color:#a9ddff !important; }
body.light .book-row-info { color:#111722; }
body.light .book-row-title { color:#111722 !important; }
body.light .book-row-desc { color:rgba(17,23,34,.72) !important; }
body.light .book-row-meta { color:#006fae !important; }
body.light .ch-list-header,
body.light .ch-list-num { color:rgba(17,23,34,.48) !important; }
body.light .ch-list-item { color:#111722 !important; }
body.light .ch-list-status { color:#006fae !important; }

/* 閱讀頁：不使用裝飾性首字，所有段落維持相同字級。 */
.reading-content p:first-child::first-letter {
  color:inherit !important;
  float:none !important;
  font-family:inherit !important;
  font-size:inherit !important;
  line-height:inherit !important;
  padding-right:0 !important;
}

@media (max-width:768px) {
  /* 將五個控制鈕壓縮為一列，避免目錄獨占第一列造成空白。 */
  .reading-toolbar {
    top:64px !important;
    height:56px !important;
    min-height:56px !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:5px !important;
    padding:7px 12px !important;
  }
  .reading-toolbar-left { width:auto !important; flex:0 0 auto !important; gap:3px !important; }
  .reading-toolbar-center { flex:1 1 auto !important; justify-content:center !important; gap:3px !important; min-width:0; }
  .reading-toolbar-right { flex:0 0 auto !important; gap:4px !important; }
  .reading-toolbar .toolbar-btn {
    min-height:38px !important;
    padding:5px 8px !important;
    border-radius:999px !important;
    font-size:11px !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    flex:0 0 auto !important;
  }
  .reading-toolbar-left .toolbar-btn { padding-left:9px !important; padding-right:9px !important; }
  .reading-toolbar-right .toolbar-btn { min-width:42px !important; padding-left:7px !important; padding-right:7px !important; }
  .reading-body { padding-top:136px !important; }
  .reading-content { margin-top:48px !important; }
}

@media (max-width:360px) {
  .reading-toolbar { padding-left:8px !important; padding-right:8px !important; gap:3px !important; }
  .reading-toolbar .toolbar-btn { padding-left:6px !important; padding-right:6px !important; }
  .reading-toolbar-right .toolbar-btn { min-width:38px !important; }
}

/* 全站英文統一採一般字重；中文仍依原有標題與正文層級顯示。 */
.en-regular {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 400 !important;
  font-style: normal !important;
  font-synthesis: none;
}

/* ── 全站中英字型統一 ──
   以 Apple 系統字族為核心：英文採 SF Pro，中文採 PingFang TC，
   兩者字面比例與筆畫密度相近，避免中英混排出現風格落差。 */
:root {
  --site-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", Arial, sans-serif;
  --sans: var(--site-font);
  --serif: var(--site-font);
}
html, body,
button, input, select, textarea,
body *, body *::before, body *::after {
  font-family: var(--site-font) !important;
  font-synthesis: none;
}

/* 英文與中英文混排採一致字距；既有英文一般字重規則持續生效。 */
.en-regular {
  font-family: var(--site-font) !important;
  letter-spacing: inherit !important;
}
.reading-content p,
.reading-content p:first-child::first-letter,
.reading-chapter-title,
.section-title,
.page-title,
.book-row-cover-title,
.book-row-title,
.archive-title {
  font-family: var(--site-font) !important;
}

/* ── 四部固定識別色 ──
   第一部：灰白；第二部：黃色；第三部：藍色；第四部：紫色。 */
:root {
  --part1: #e5e9ef;
  --part1-soft: rgba(229,233,239,.15);
  --part2: #f6c967;
  --part2-soft: rgba(246,201,103,.15);
  --part3: #86cbff;
  --part3-soft: rgba(134,203,255,.15);
  --part4: #d8adff;
  --part4-bright: #ebd7ff;
  --part4-soft: rgba(216,173,255,.16);
}

/* 書櫃的部別標題與卷宗卡片。 */
.shelf-part-label.part1-label { color:var(--part1) !important; }
.shelf-part-label.part2-label { color:var(--part2) !important; }
.shelf-part-label.part3-label { color:var(--part3) !important; }
.shelf-part-label.part4-label { color:var(--part4) !important; text-shadow:0 0 18px rgba(216,173,255,.22); }

.book-row.part1-card .book-row-cover { background:linear-gradient(145deg,#242a33,#080a0f 68%) !important; }
.book-row.part1-card .book-row-cover-title,
.book-row.part1-card .book-row-cover-sub,
.book-row.part1-card .book-row-meta,
.book-row.part1-card .ch-list-status { color:var(--part1) !important; }
.book-row.part1-card .badge:nth-child(3) { color:var(--part1) !important; border-color:rgba(229,233,239,.36) !important; background:var(--part1-soft) !important; }

.book-row.part2-card .book-row-cover { background:radial-gradient(circle at 72% 15%,rgba(246,201,103,.20),transparent 34%),linear-gradient(145deg,#2b2110,#090a0f 68%) !important; }
.book-row.part2-card .book-row-cover-title,
.book-row.part2-card .book-row-cover-sub,
.book-row.part2-card .book-row-meta,
.book-row.part2-card .ch-list-status { color:var(--part2) !important; }
.book-row.part2-card .badge:nth-child(3) { color:var(--part2) !important; border-color:rgba(246,201,103,.40) !important; background:var(--part2-soft) !important; }

.book-row.part3-card .book-row-cover { background:radial-gradient(circle at 72% 15%,rgba(134,203,255,.18),transparent 34%),linear-gradient(145deg,#092233,#080a0f 68%) !important; }
.book-row.part3-card .book-row-cover-title,
.book-row.part3-card .book-row-cover-sub,
.book-row.part3-card .book-row-meta,
.book-row.part3-card .ch-list-status { color:var(--part3) !important; }
.book-row.part3-card .badge:nth-child(3) { color:var(--part3) !important; border-color:rgba(134,203,255,.40) !important; background:var(--part3-soft) !important; }

.book-row.part4-card { border-color:rgba(216,173,255,.38) !important; box-shadow:0 22px 80px rgba(107,58,164,.18),0 0 40px rgba(216,173,255,.06) !important; }
.book-row.part4-card .book-row-cover { background:radial-gradient(circle at 72% 14%,rgba(216,173,255,.30),transparent 33%),radial-gradient(circle at 15% 85%,rgba(133,91,237,.18),transparent 45%),linear-gradient(145deg,#211536,#090a12 70%) !important; }
.book-row.part4-card .book-row-cover-title { color:var(--part4-bright) !important; text-shadow:0 0 24px rgba(216,173,255,.38),0 0 56px rgba(149,91,241,.17) !important; }
.book-row.part4-card .book-row-cover-sub,
.book-row.part4-card .book-row-meta,
.book-row.part4-card .ch-list-status { color:var(--part4) !important; }
.book-row.part4-card .badge:nth-child(3) { color:var(--part4-bright) !important; border-color:rgba(216,173,255,.48) !important; background:var(--part4-soft) !important; box-shadow:0 0 16px rgba(216,173,255,.10); }
.book-row.part4-card .ch-list-item:hover { background:rgba(216,173,255,.07) !important; }

/* 首頁：四部索引與第四部當前章的紫光訊號。 */
.volume-card:nth-child(1) .volume-name { color:var(--part1); }
.volume-card:nth-child(2) .volume-name { color:var(--part2); }
.volume-card:nth-child(3) .volume-name { color:var(--part3); }
.volume-card:nth-child(4).active { background:radial-gradient(circle at 80% 15%,rgba(216,173,255,.25),transparent 34%),linear-gradient(145deg,#2b1943,#0e1019) !important; }
.volume-card:nth-child(4) .volume-name,
.volume-card:nth-child(4) .volume-no { color:var(--part4-bright) !important; }
.volume-card:nth-child(4).active::after { background:var(--part4) !important; box-shadow:0 0 18px var(--part4),0 0 36px rgba(216,173,255,.34) !important; }
.archive-index-label { color:var(--part4) !important; }
.archive-index-title { color:var(--part4-bright) !important; text-shadow:0 0 22px rgba(216,173,255,.22); }
.archive-index-meta a { color:var(--part4) !important; }

/* 各部閱讀頁：徽章、狀態列、目錄與章名採用一致的部別色。 */
body.part1-reading .part-badge, body.part1-reading .toc-part1-label { color:var(--part1) !important; border-color:rgba(229,233,239,.40) !important; background:var(--part1-soft) !important; }
body.part2-reading .part-badge, body.part2-reading .toc-part2-label { color:var(--part2) !important; border-color:rgba(246,201,103,.42) !important; background:var(--part2-soft) !important; }
body.part3-reading .part-badge, body.part3-reading .toc-part3-label { color:var(--part3) !important; border-color:rgba(134,203,255,.42) !important; background:var(--part3-soft) !important; }
body.part4-reading .part-badge, body.part4-reading .toc-part4-label { color:var(--part4-bright) !important; border-color:rgba(216,173,255,.50) !important; background:var(--part4-soft) !important; box-shadow:0 0 18px rgba(216,173,255,.13); }
body.part1-reading .reading-chapter-title { color:var(--part1) !important; }
body.part2-reading .reading-chapter-title { color:var(--part2) !important; }
body.part3-reading .reading-chapter-title { color:var(--part3) !important; }
body.part4-reading .reading-chapter-title { color:var(--part4-bright) !important; text-shadow:0 0 28px rgba(216,173,255,.20); }
body.part4-reading .reading-toolbar { border-bottom-color:rgba(216,173,255,.30) !important; }
body.part4-reading .part3-source-status { border-color:rgba(216,173,255,.42) !important; background:rgba(216,173,255,.075) !important; }
body.part4-reading .part3-source-orb { background:var(--part4) !important; box-shadow:0 0 14px var(--part4) !important; }
body.part4-reading .part3-source-name { color:var(--part4-bright) !important; }
body.part4-reading .toc-item.toc-active { border-color:rgba(216,173,255,.42) !important; background:rgba(216,173,255,.09) !important; }
body.part4-reading .toc-item.toc-active .toc-item-num,
body.part4-reading .toc-item.toc-active .toc-item-title,
body.part4-reading .toc-item.toc-active .toc-item-arrow { color:var(--part4) !important; }

body.light .book-row.part1-card .book-row-cover-title, body.light .book-row.part1-card .book-row-cover-sub { color:#f8f9fb !important; }
body.light .book-row.part2-card .book-row-cover-title, body.light .book-row.part2-card .book-row-cover-sub { color:#ffe2a6 !important; }
body.light .book-row.part3-card .book-row-cover-title, body.light .book-row.part3-card .book-row-cover-sub { color:#b9e3ff !important; }
body.light .book-row.part4-card .book-row-cover-title, body.light .book-row.part4-card .book-row-cover-sub { color:#efddff !important; }
body.light .volume-card:nth-child(4).active { background:radial-gradient(circle at 80% 15%,rgba(216,173,255,.35),transparent 34%),linear-gradient(145deg,#38235a,#191326) !important; }
body.light .part4-reading .reading-chapter-title { color:#743ab1 !important; text-shadow:none; }

/* 首頁目前聚焦第四部，主視覺沿用紫光訊號。 */
.archive-hero {
  background:radial-gradient(circle at 82% 22%,rgba(216,173,255,.22),transparent 31rem),radial-gradient(circle at 8% 88%,rgba(125,74,203,.14),transparent 35rem),var(--ink) !important;
}
.archive-eyebrow { color:var(--part4) !important; }
.archive-eyebrow::before { background:var(--part4) !important; }
.archive-title span { color:var(--part4) !important; text-shadow:0 0 30px rgba(216,173,255,.24); }
.home-signal { background:var(--part4) !important; box-shadow:0 0 28px 8px rgba(216,173,255,.30) !important; }
body.light .archive-hero { background:radial-gradient(circle at 82% 22%,rgba(216,173,255,.25),transparent 31rem),radial-gradient(circle at 8% 88%,rgba(125,74,203,.16),transparent 35rem),#0a1019 !important; }
body.light .archive-hero .archive-eyebrow { color:#d9b4ff !important; }
body.light .archive-hero .archive-title span { color:#e7ccff !important; }

/* ── 統一頁尾與紫色識別字 ──
   正文與灰白輔助文字不變；僅原有的彩色介面識別統一為第四部紫色。 */
:root {
  --accent-gold: var(--part4);
  --signal: var(--part4);
  --signal-soft: var(--part4-soft);
}
.site-footer {
  border-top:1px solid rgba(216,173,255,.22) !important;
  background:linear-gradient(180deg,rgba(20,13,31,.98),rgba(7,8,13,.99)) !important;
}
.site-footer .footer-col-title,
.site-footer .footer-col-title::after,
.site-footer .footer-legal a:hover,
.site-footer .footer-col a:hover { color:var(--part4) !important; }
.site-footer .footer-col-title { border-bottom-color:rgba(216,173,255,.24) !important; }
.site-footer .footer-col a:hover { text-shadow:0 0 14px rgba(216,173,255,.24); }
.site-footer .footer-bottom { border-top-color:rgba(216,173,255,.18) !important; }

/* 通用的彩色互動文字與標籤改採紫色；正文、白字與灰字維持原狀。 */
.signal-strip b,
.signal-strip a,
.archive-index-meta a,
.metric-num,
.ch-list-status,
.part-badge,
.toc-part-label,
.part3-source-name,
.part3-source-detail,
.status-label,
.badge[style*="color"],
.btn-primary:not(.nav-menu .btn-primary) {
  color:var(--part4) !important;
}
.signal-strip,
.part3-source-status { border-color:rgba(216,173,255,.40) !important; }
.signal-strip a:hover,
.archive-index-meta a:hover { color:var(--part4-bright) !important; }

/* 四部書櫃與其對應閱讀頁保留各自專屬色，不被通用紫色規則覆蓋。 */
.book-row.part1-card .book-row-cover-title, .book-row.part1-card .book-row-cover-sub, .book-row.part1-card .book-row-meta, .book-row.part1-card .ch-list-status { color:var(--part1) !important; }
.book-row.part2-card .book-row-cover-title, .book-row.part2-card .book-row-cover-sub, .book-row.part2-card .book-row-meta, .book-row.part2-card .ch-list-status { color:var(--part2) !important; }
.book-row.part3-card .book-row-cover-title, .book-row.part3-card .book-row-cover-sub, .book-row.part3-card .book-row-meta, .book-row.part3-card .ch-list-status { color:var(--part3) !important; }
.book-row.part4-card .book-row-cover-title, .book-row.part4-card .book-row-cover-sub, .book-row.part4-card .book-row-meta, .book-row.part4-card .ch-list-status { color:var(--part4) !important; }
body.light .site-footer { background:linear-gradient(180deg,#211535,#100d18) !important; }
body.light .site-footer .footer-col a,
body.light .site-footer .footer-copy,
body.light .site-footer .footer-legal a { color:rgba(247,245,251,.72) !important; }
body.light .site-footer .footer-col-title { color:#eedaff !important; }

/* ── 白天模式：長篇閱讀優化 ──
   採用暖白紙張、深灰紫正文與低刺激紫色識別，降低長時間閱讀疲勞。 */
body.light {
  --bg: #fbfaf8;
  --bg2: #f3f0f5;
  --bg3: #eae5ee;
  --white: #28222f;
  --text: #28222f;
  --text-dim: #665e6c;
  --text-xs: #867d8a;
  --border: rgba(68,49,78,.14);
  --border2: rgba(68,49,78,.25);
  --surface: rgba(104,65,166,.045);
  --surface2: rgba(104,65,166,.09);
  --accent: #38294b;
  --ink: #fbfaf8;
  --ink-raised: #f3f0f5;
  --ink-soft: #eae5ee;
  --paper: #28222f;
  --paper-muted: #665e6c;
  --paper-faint: #867d8a;
  --dawn: #6941a7;
  --dawn-soft: rgba(105,65,167,.12);
  --signal: #6941a7;
  --signal-soft: rgba(105,65,167,.12);
  background:#fbfaf8 !important;
  color:#28222f !important;
}
body.light::after {
  opacity:.55;
  background-image:
    linear-gradient(rgba(94,68,111,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(94,68,111,.045) 1px,transparent 1px),
    radial-gradient(circle at 74% 0%,rgba(183,140,235,.16),transparent 31rem),
    radial-gradient(circle at 8% 92%,rgba(216,173,255,.14),transparent 34rem) !important;
}
body.light #nav { background:rgba(251,250,248,.90) !important; border-bottom-color:rgba(83,61,96,.16) !important; }
body.light .nav-menu.open { background:rgba(251,250,248,.98) !important; }
body.light .nav-menu.open li a { color:#30263a !important; }
body.light .nav-theme-toggle { color:#6941a7 !important; border-color:rgba(105,65,167,.32) !important; background:rgba(105,65,167,.06) !important; }

/* 首頁白天模式改為淺薰衣草主視覺，避免白底白字與過深大面積背景。 */
body.light .archive-hero {
  background:radial-gradient(circle at 82% 20%,rgba(205,165,245,.44),transparent 27rem),radial-gradient(circle at 9% 88%,rgba(162,112,218,.16),transparent 32rem),#f7f2fb !important;
}
body.light .archive-hero::before { background:linear-gradient(90deg,rgba(247,242,251,.30),rgba(247,242,251,.82) 74%),linear-gradient(0deg,rgba(247,242,251,.75),transparent 60%) !important; }
body.light .archive-hero .archive-title { color:#30263a !important; }
body.light .archive-hero .archive-title span { color:#6941a7 !important; text-shadow:0 0 22px rgba(151,99,214,.20) !important; }
body.light .archive-hero .archive-deck { color:#665e6c !important; }
body.light .archive-hero .archive-eyebrow { color:#6941a7 !important; }
body.light .archive-hero .home-orbit { border-color:rgba(105,65,167,.22) !important; }
body.light .archive-index { background:rgba(255,255,255,.74) !important; border-color:rgba(105,65,167,.22) !important; box-shadow:0 18px 44px rgba(75,45,101,.10) !important; color:#28222f !important; }
body.light .archive-index-title { color:#30263a !important; }
body.light .archive-index-copy { color:#665e6c !important; }
body.light .archive-index-meta { color:#867d8a !important; border-color:rgba(83,61,96,.16) !important; }
body.light .archive-index-meta a { color:#6941a7 !important; }
body.light .archive-hero .btn-primary { background:#6941a7 !important; border-color:#6941a7 !important; color:#fff !important; }
body.light .archive-hero .btn-outline { color:#6941a7 !important; border-color:rgba(105,65,167,.46) !important; background:rgba(255,255,255,.42) !important; }

/* 卡片與清單：白紙面板、深灰紫文字與清楚邊界。 */
body.light .book-row { background:rgba(255,255,255,.86) !important; border-color:rgba(83,61,96,.18) !important; box-shadow:0 14px 36px rgba(52,35,65,.09) !important; }
body.light .book-row-info, body.light .chapter-row, body.light .support-card, body.light .support-tier, body.light .about-card, body.light .legal-card, body.light .podcast-card { color:#28222f !important; }
body.light .book-row-title, body.light .section-title, body.light .page-title { color:#30263a !important; }
body.light .book-row-desc, body.light .chapter-row, body.light .about-card p, body.light .legal-card p { color:#665e6c !important; }
body.light .chapter-row { border-bottom-color:rgba(83,61,96,.14) !important; }
body.light .chapter-row:hover { background:rgba(105,65,167,.055) !important; }
body.light .metric-num, body.light .signal-strip b, body.light .signal-strip a { color:#6941a7 !important; }
body.light .signal-strip { background:rgba(105,65,167,.065) !important; border-color:rgba(105,65,167,.22) !important; }

/* 閱讀頁：奶白紙張與深灰紫正文，降低眩光並提高段落辨識度。 */
body.light .reading-toolbar { background:rgba(251,250,248,.94) !important; border-bottom-color:rgba(83,61,96,.18) !important; }
body.light .reading-toolbar .toolbar-btn { color:#392d45 !important; border-color:rgba(83,61,96,.30) !important; background:rgba(255,255,255,.64) !important; }
body.light .reading-toolbar .toolbar-btn.primary { background:#6941a7 !important; border-color:#6941a7 !important; color:#fff !important; }
body.light .toolbar-chapter-label, body.light .reading-meta { color:#867d8a !important; }
body.light .reading-body { background:rgba(255,255,255,.44) !important; }
body.light .reading-chapter-title { color:#38294b !important; text-shadow:none !important; }
body.light .part-badge { color:#6941a7 !important; border-color:rgba(105,65,167,.32) !important; background:rgba(105,65,167,.07) !important; }
body.light .part3-source-status { background:rgba(105,65,167,.055) !important; border-color:rgba(105,65,167,.24) !important; }
body.light .podcast-embed { background:rgba(255,255,255,.74) !important; border-color:rgba(83,61,96,.15) !important; }
body.light .reading-content { background:rgba(255,255,255,.62); border:1px solid rgba(83,61,96,.10); border-radius:22px; padding:30px 38px; }
body.light .reading-content p { color:#302b35 !important; }
body.light .reading-nav { border-top-color:rgba(83,61,96,.17) !important; }
body.light .toc-overlay { background:rgba(249,247,250,.98) !important; }
body.light .toc-panel { border-bottom-color:rgba(83,61,96,.14) !important; }
body.light .toc-item { color:#30263a !important; border-bottom-color:rgba(83,61,96,.13) !important; }
body.light .toc-item-num, body.light .toc-item-arrow { color:#867d8a !important; }
body.light .toc-item.toc-active { background:rgba(105,65,167,.08) !important; border-color:rgba(105,65,167,.22) !important; }

body.light .site-footer { background:linear-gradient(180deg,#2b1b3d,#160d21) !important; }

@media (max-width:768px) {
  body.light .reading-content { border-radius:16px; padding:23px 20px; background:rgba(255,255,255,.70); }
  body.light .reading-content p { color:#312b36 !important; }
  body.light .archive-hero { min-height:auto !important; }
}

/* ── 手機閱讀：單欄書頁與左右滑動翻頁 ──
   採用 pointer event 判斷水平滑動，保留垂直手勢讓讀者可捲動其他頁面區塊。 */
@media (max-width:699px), (max-height:699px) and (pointer:coarse) {
  .reading-content.mobile-pages {
    margin:38px auto !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    touch-action:pan-y;
  }
  .mobile-reading-page {
    position:relative;
    height:clamp(340px,calc(100svh - 230px),560px);
    overflow:hidden;
    padding:28px 24px 24px;
    border:1px solid rgba(238,229,245,.16);
    border-radius:20px;
    background:
      radial-gradient(circle at 0 50%,rgba(255,255,255,.055),transparent 42%),
      linear-gradient(105deg,rgba(255,255,255,.045),transparent 24%),
      linear-gradient(145deg,#1b1720,#111016 72%,#1a1520);
    box-shadow:0 20px 48px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 46px rgba(0,0,0,.16);
    will-change:transform,opacity;
  }
  .mobile-reading-page[hidden] { display:none !important; }
  .mobile-reading-page > *:first-child { margin-top:0 !important; }
  .mobile-reading-page > *:last-child { margin-bottom:0 !important; }
  .mobile-reading-page > p {
    font-size:18px !important;
    line-height:2.05 !important;
    margin-bottom:1.45em !important;
  }
  .mobile-reading-page.is-turning-next-out { animation:mobile-page-next-out .34s cubic-bezier(.42,0,.22,1) both; }
  .mobile-reading-page.is-turning-next-in { animation:mobile-page-next-in .34s cubic-bezier(.42,0,.22,1) both; }
  .mobile-reading-page.is-turning-prev-out { animation:mobile-page-prev-out .34s cubic-bezier(.42,0,.22,1) both; }
  .mobile-reading-page.is-turning-prev-in { animation:mobile-page-prev-in .34s cubic-bezier(.42,0,.22,1) both; }
  .mobile-page-controls {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    margin:0 auto 14px;
  }
  .mobile-page-btn {
    display:inline-grid;
    place-items:center;
    width:42px;
    height:40px;
    padding:0;
    border:1px solid rgba(229,220,239,.28);
    border-radius:50%;
    background:rgba(17,14,22,.82);
    color:var(--white);
    font-size:20px;
    cursor:pointer;
    transition:transform .18s ease,background .18s ease,border-color .18s ease,opacity .18s ease;
  }
  .mobile-page-btn:active:not(:disabled) { transform:scale(.94); }
  .mobile-page-btn:focus-visible { outline:2px solid var(--part4); outline-offset:3px; }
  .mobile-page-btn:disabled { opacity:.30; cursor:not-allowed; }
  .mobile-page-label { color:var(--text-dim); font-size:11px; letter-spacing:.04em; text-align:center; font-variant-numeric:tabular-nums; }
  body.light .mobile-reading-page {
    border-color:rgba(83,61,96,.14);
    background:linear-gradient(105deg,rgba(255,255,255,.72),transparent 28%),linear-gradient(145deg,#fffdfa,#f6f0f7 70%,#eee6f0);
    box-shadow:0 18px 40px rgba(52,35,65,.10),inset 0 1px 0 rgba(255,255,255,.94),inset 0 0 42px rgba(110,80,129,.05);
  }
  body.light .mobile-page-btn { background:rgba(255,255,255,.84); border-color:rgba(83,61,96,.24); color:#392d45; }
  body.light .mobile-page-label { color:#665e6c; }
}

/* ── 平板與桌面閱讀：連續順序的攤開對頁 ──
   手機與橫向手機維持原本單欄；閱讀腳本會依序填入左頁、右頁與下一組對頁。 */
@media (min-width:700px) and (min-height:700px) {
  .reading-body { max-width:1220px !important; padding-left:32px !important; padding-right:32px !important; }
  .reading-content {
    max-width:1100px !important;
    margin:64px auto !important;
  }
  .reading-content.facing-pages {
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    padding:0 !important;
    perspective:1800px;
    isolation:isolate;
  }
  .reading-spread {
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px;
    padding:clamp(9px,1.4vw,16px);
    margin:0 auto clamp(38px,6vw,74px);
    border:1px solid rgba(229,220,239,.18);
    border-radius:30px;
    background:
      linear-gradient(90deg,rgba(4,4,8,.72),rgba(44,35,51,.72) 50%,rgba(4,4,8,.72)),
      linear-gradient(145deg,#201827,#0d0c12 60%,#231a2b);
    box-shadow:0 30px 80px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.10);
    transform-style:preserve-3d;
    backface-visibility:hidden;
  }
  .reading-spread[hidden] { display:none !important; }
  .reading-spread.is-turning-next-out { animation:book-turn-next-out .36s cubic-bezier(.42,0,.22,1) both; transform-origin:left center; }
  .reading-spread.is-turning-next-in { animation:book-turn-next-in .32s cubic-bezier(.42,0,.22,1) both; transform-origin:right center; }
  .reading-spread.is-turning-prev-out { animation:book-turn-prev-out .36s cubic-bezier(.42,0,.22,1) both; transform-origin:right center; }
  .reading-spread.is-turning-prev-in { animation:book-turn-prev-in .32s cubic-bezier(.42,0,.22,1) both; transform-origin:left center; }
  .reading-spread.is-turning-next-out .reading-leaf:last-child { animation:book-leaf-next-out .36s cubic-bezier(.42,0,.22,1) both; transform-origin:left center; }
  .reading-spread.is-turning-next-in .reading-leaf:first-child { animation:book-leaf-next-in .32s cubic-bezier(.42,0,.22,1) both; transform-origin:right center; }
  .reading-spread.is-turning-prev-out .reading-leaf:first-child { animation:book-leaf-prev-out .36s cubic-bezier(.42,0,.22,1) both; transform-origin:right center; }
  .reading-spread.is-turning-prev-in .reading-leaf:last-child { animation:book-leaf-prev-in .32s cubic-bezier(.42,0,.22,1) both; transform-origin:left center; }
  .reading-spread::before {
    content:"";
    position:absolute;
    z-index:2;
    top:clamp(24px,4vw,48px);
    bottom:clamp(24px,4vw,48px);
    left:50%;
    width:14px;
    transform:translateX(-50%);
    border-radius:999px;
    background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(255,255,255,.09) 48%,rgba(0,0,0,.84));
    box-shadow:0 0 14px rgba(0,0,0,.55),inset 1px 0 rgba(255,255,255,.12);
    pointer-events:none;
  }
  .reading-spread::after {
    content:"";
    position:absolute;
    z-index:4;
    inset:clamp(9px,1.4vw,16px);
    border-radius:22px;
    opacity:0;
    pointer-events:none;
    background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.18) 47%,rgba(0,0,0,.28) 52%,transparent 78%);
    mix-blend-mode:screen;
  }
  .reading-spread.is-turning-next-out::after { animation:book-sheen-next .36s ease-in both; }
  .reading-spread.is-turning-prev-out::after { animation:book-sheen-prev .36s ease-in both; }
  .reading-leaf {
    position:relative;
    transform-style:preserve-3d;
    backface-visibility:hidden;
    height:clamp(520px,calc(100vh - 204px),740px);
    overflow:hidden;
    padding:clamp(26px,3.4vw,52px);
    border:1px solid rgba(238,229,245,.14);
    background:
      radial-gradient(circle at 0 50%,rgba(255,255,255,.055),transparent 42%),
      linear-gradient(105deg,rgba(255,255,255,.045),transparent 24%),
      linear-gradient(145deg,#1b1720,#111016 72%,#1a1520);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 54px rgba(0,0,0,.18);
  }
  .reading-leaf:first-child { border-radius:22px 5px 5px 22px; }
  .reading-leaf:last-child { border-radius:5px 22px 22px 5px; }
  .reading-leaf > *:first-child { margin-top:0 !important; }
  .reading-leaf > *:last-child { margin-bottom:0 !important; }
  .reading-leaf > p {
    font-size:clamp(24px,2.8vw,44px) !important;
    line-height:1.82 !important;
    margin-bottom:1.04em !important;
    orphans:2;
    widows:2;
  }
  body.light .reading-spread {
    border-color:rgba(91,67,110,.22);
    background:linear-gradient(90deg,#d8cddc,#f0eaf2 50%,#d8cddc);
    box-shadow:0 24px 58px rgba(63,43,78,.16),inset 0 1px 0 rgba(255,255,255,.88);
  }
  body.light .reading-spread::before { background:linear-gradient(90deg,rgba(83,61,96,.34),rgba(255,255,255,.88) 48%,rgba(83,61,96,.38)); box-shadow:0 0 12px rgba(83,61,96,.20); }
  body.light .reading-leaf {
    background:linear-gradient(105deg,rgba(255,255,255,.72),transparent 28%),linear-gradient(145deg,#fffdfa,#f6f0f7 70%,#eee6f0);
    border-color:rgba(83,61,96,.14);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.94),inset 0 0 48px rgba(110,80,129,.055);
  }
  .book-page-controls {
    max-width:1100px;
    margin:0 auto 18px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
  }
  .book-page-btn {
    min-width:124px;
    min-height:44px;
    padding:10px 16px;
    border:1px solid rgba(229,220,239,.28);
    border-radius:999px;
    background:rgba(17,14,22,.78);
    color:var(--white);
    font-size:13px;
    letter-spacing:.07em;
    cursor:pointer;
    transition:transform .2s ease,background .2s ease,border-color .2s ease,opacity .2s ease;
  }
  .book-page-btn:hover:not(:disabled) { transform:translateY(-2px); background:rgba(216,173,255,.14); border-color:var(--part4); }
  .book-page-btn:focus-visible { outline:2px solid var(--part4); outline-offset:3px; }
  .book-page-btn:disabled { cursor:not-allowed; opacity:.32; }
  .book-page-label { min-width:96px; color:var(--text-dim); font-size:12px; text-align:center; font-variant-numeric:tabular-nums; letter-spacing:.08em; }
  body.light .book-page-btn { background:rgba(255,255,255,.82); border-color:rgba(83,61,96,.24); color:#392d45; }
  body.light .book-page-btn:hover:not(:disabled) { background:rgba(105,65,167,.12); border-color:#6941a7; }
  body.light .book-page-label { color:#665e6c; }
}

@keyframes book-turn-next-out {
  0% { opacity:1; transform:rotateY(0deg) scale(1); filter:brightness(1); }
  100% { opacity:1; transform:rotateY(-2deg) scale(.998); filter:brightness(.94); }
}
@keyframes book-turn-next-in {
  0% { opacity:1; transform:rotateY(2deg) scale(.998); filter:brightness(.94); }
  100% { opacity:1; transform:rotateY(0deg) scale(1); filter:brightness(1); }
}
@keyframes book-turn-prev-out {
  0% { opacity:1; transform:rotateY(0deg) scale(1); filter:brightness(1); }
  100% { opacity:1; transform:rotateY(2deg) scale(.998); filter:brightness(.94); }
}
@keyframes book-turn-prev-in {
  0% { opacity:1; transform:rotateY(-2deg) scale(.998); filter:brightness(.94); }
  100% { opacity:1; transform:rotateY(0deg) scale(1); filter:brightness(1); }
}
@keyframes book-leaf-next-out {
  0% { box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 54px rgba(0,0,0,.18); }
  48% { transform:rotateY(-42deg); filter:brightness(.73); }
  100% { transform:rotateY(-82deg); filter:brightness(.38); box-shadow:inset 32px 0 48px rgba(0,0,0,.58),inset 0 0 54px rgba(0,0,0,.34); }
}
@keyframes book-leaf-next-in {
  0% { transform:rotateY(82deg); filter:brightness(.38); box-shadow:inset -32px 0 48px rgba(0,0,0,.58),inset 0 0 54px rgba(0,0,0,.34); }
  52% { transform:rotateY(42deg); filter:brightness(.73); }
  100% { transform:rotateY(0deg); filter:brightness(1); box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 54px rgba(0,0,0,.18); }
}
@keyframes book-leaf-prev-out {
  0% { box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 54px rgba(0,0,0,.18); }
  48% { transform:rotateY(42deg); filter:brightness(.73); }
  100% { transform:rotateY(82deg); filter:brightness(.38); box-shadow:inset -32px 0 48px rgba(0,0,0,.58),inset 0 0 54px rgba(0,0,0,.34); }
}
@keyframes book-leaf-prev-in {
  0% { transform:rotateY(-82deg); filter:brightness(.38); box-shadow:inset 32px 0 48px rgba(0,0,0,.58),inset 0 0 54px rgba(0,0,0,.34); }
  52% { transform:rotateY(-42deg); filter:brightness(.73); }
  100% { transform:rotateY(0deg); filter:brightness(1); box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 54px rgba(0,0,0,.18); }
}
@keyframes book-sheen-next {
  0% { opacity:0; transform:translateX(-20%); }
  42% { opacity:.72; }
  100% { opacity:0; transform:translateX(38%); }
}
@keyframes book-sheen-prev {
  0% { opacity:0; transform:translateX(20%) scaleX(-1); }
  42% { opacity:.72; }
  100% { opacity:0; transform:translateX(-38%) scaleX(-1); }
}
@keyframes mobile-page-next-out {
  0% { opacity:1; transform:translateX(0) scale(1); }
  100% { opacity:0; transform:translateX(-14%) scale(.985); }
}
@keyframes mobile-page-next-in {
  0% { opacity:0; transform:translateX(14%) scale(.985); }
  100% { opacity:1; transform:translateX(0) scale(1); }
}
@keyframes mobile-page-prev-out {
  0% { opacity:1; transform:translateX(0) scale(1); }
  100% { opacity:0; transform:translateX(14%) scale(.985); }
}
@keyframes mobile-page-prev-in {
  0% { opacity:0; transform:translateX(-14%) scale(.985); }
  100% { opacity:1; transform:translateX(0) scale(1); }
}
@media (prefers-reduced-motion:reduce) {
  .reading-spread.is-turning-next-out,
  .reading-spread.is-turning-next-in,
  .reading-spread.is-turning-prev-out,
  .reading-spread.is-turning-prev-in,
  .reading-spread.is-turning-next-out .reading-leaf:last-child,
  .reading-spread.is-turning-next-in .reading-leaf:first-child,
  .reading-spread.is-turning-prev-out .reading-leaf:first-child,
  .reading-spread.is-turning-prev-in .reading-leaf:last-child,
  .reading-spread.is-turning-next-out::after,
  .reading-spread.is-turning-prev-out::after,
  .mobile-reading-page.is-turning-next-out,
  .mobile-reading-page.is-turning-next-in,
  .mobile-reading-page.is-turning-prev-out,
  .mobile-reading-page.is-turning-prev-in { animation:none !important; }
}

/* ── 首頁與書櫃：四部填滿色卡 ──
   將原本偏白的卡片內容面板改為完整部別色塊，文字採高對比深色或白色。 */
body.light .volume-rail { background:rgba(83,61,96,.20) !important; border-color:rgba(83,61,96,.25) !important; box-shadow:0 16px 34px rgba(62,42,80,.10) !important; }
body.light .volume-rail .volume-card { background:#e7eaf0 !important; color:#242a32 !important; }
body.light .volume-rail .volume-card:nth-child(1) { background:linear-gradient(145deg,#f5f6f8,#d9dee7) !important; color:#252c35 !important; }
body.light .volume-rail .volume-card:nth-child(2) { background:linear-gradient(145deg,#ffe8a7,#e9b943) !important; color:#342405 !important; }
body.light .volume-rail .volume-card:nth-child(3) { background:linear-gradient(145deg,#b9e4ff,#69afe9) !important; color:#092b44 !important; }
body.light .volume-rail .volume-card:nth-child(4),
body.light .volume-rail .volume-card:nth-child(4).active { background:radial-gradient(circle at 80% 14%,rgba(237,213,255,.64),transparent 26%),linear-gradient(145deg,#7445a7,#35185d) !important; color:#fff !important; }
body.light .volume-rail .volume-card:nth-child(1) .volume-no,
body.light .volume-rail .volume-card:nth-child(1) .volume-name,
body.light .volume-rail .volume-card:nth-child(1) .volume-state { color:#29313b !important; }
body.light .volume-rail .volume-card:nth-child(2) .volume-no,
body.light .volume-rail .volume-card:nth-child(2) .volume-name,
body.light .volume-rail .volume-card:nth-child(2) .volume-state { color:#352604 !important; }
body.light .volume-rail .volume-card:nth-child(3) .volume-no,
body.light .volume-rail .volume-card:nth-child(3) .volume-name,
body.light .volume-rail .volume-card:nth-child(3) .volume-state { color:#0a2b45 !important; }
body.light .volume-rail .volume-card:nth-child(4) .volume-no,
body.light .volume-rail .volume-card:nth-child(4) .volume-name,
body.light .volume-rail .volume-card:nth-child(4) .volume-state { color:#fff !important; }
body.light .volume-rail .volume-card::after { background:currentColor !important; opacity:.58; }
body.light .volume-rail .volume-card:nth-child(4)::after { background:#efceff !important; opacity:1; box-shadow:0 0 14px #efceff; }
body.light .volume-rail .volume-card:hover { filter:saturate(1.06) brightness(1.025); transform:translateY(-3px); }

/* 書櫃卡片：封面與資訊、章節清單共用同一部別色域。 */
body.light .book-row.part1-card { background:linear-gradient(145deg,#f6f7f9,#dce1e8) !important; border-color:#c7ced8 !important; color:#27303a !important; }
body.light .book-row.part2-card { background:linear-gradient(145deg,#ffeab0,#eabe50) !important; border-color:#d6a93c !important; color:#392803 !important; }
body.light .book-row.part3-card { background:linear-gradient(145deg,#bde6ff,#70b8ec) !important; border-color:#5ca8df !important; color:#092d48 !important; }
body.light .book-row.part4-card { background:radial-gradient(circle at 78% 12%,rgba(241,218,255,.62),transparent 27%),linear-gradient(145deg,#8252b4,#3c1b66) !important; border-color:#8b55bd !important; color:#fff !important; box-shadow:0 18px 46px rgba(97,52,145,.25) !important; }
body.light .book-row.part1-card .book-row-cover { background:linear-gradient(145deg,#5d6875,#252d37) !important; }
body.light .book-row.part2-card .book-row-cover { background:linear-gradient(145deg,#8d6209,#3e2800) !important; }
body.light .book-row.part3-card .book-row-cover { background:linear-gradient(145deg,#196b9e,#0a2d48) !important; }
body.light .book-row.part4-card .book-row-cover { background:radial-gradient(circle at 72% 14%,rgba(232,196,255,.38),transparent 28%),linear-gradient(145deg,#6f3ea1,#281044) !important; }
body.light .book-row.part1-card .book-row-info,
body.light .book-row.part2-card .book-row-info,
body.light .book-row.part3-card .book-row-info,
body.light .book-row.part4-card .book-row-info { background:transparent !important; color:inherit !important; }
body.light .book-row.part1-card .book-row-title, body.light .book-row.part1-card .book-row-desc, body.light .book-row.part1-card .ch-list-item, body.light .book-row.part1-card .ch-list-header, body.light .book-row.part1-card .ch-list-num { color:#27303a !important; }
body.light .book-row.part2-card .book-row-title, body.light .book-row.part2-card .book-row-desc, body.light .book-row.part2-card .ch-list-item, body.light .book-row.part2-card .ch-list-header, body.light .book-row.part2-card .ch-list-num { color:#392803 !important; }
body.light .book-row.part3-card .book-row-title, body.light .book-row.part3-card .book-row-desc, body.light .book-row.part3-card .ch-list-item, body.light .book-row.part3-card .ch-list-header, body.light .book-row.part3-card .ch-list-num { color:#092d48 !important; }
body.light .book-row.part4-card .book-row-title, body.light .book-row.part4-card .book-row-desc, body.light .book-row.part4-card .ch-list-item, body.light .book-row.part4-card .ch-list-header, body.light .book-row.part4-card .ch-list-num { color:#fff !important; }
body.light .book-row.part1-card .ch-list-item { border-bottom-color:rgba(39,48,58,.16) !important; }
body.light .book-row.part2-card .ch-list-item { border-bottom-color:rgba(57,40,3,.18) !important; }
body.light .book-row.part3-card .ch-list-item { border-bottom-color:rgba(9,45,72,.18) !important; }
body.light .book-row.part4-card .ch-list-item { border-bottom-color:rgba(255,255,255,.20) !important; }
body.light .book-row.part1-card .ch-list-item:hover { background:rgba(255,255,255,.44) !important; }
body.light .book-row.part2-card .ch-list-item:hover { background:rgba(255,248,213,.36) !important; }
body.light .book-row.part3-card .ch-list-item:hover { background:rgba(224,246,255,.32) !important; }
body.light .book-row.part4-card .ch-list-item:hover { background:rgba(255,255,255,.13) !important; }
body.light .book-row.part1-card .ch-list-status { color:#48515d !important; }
body.light .book-row.part2-card .ch-list-status { color:#684500 !important; }
body.light .book-row.part3-card .ch-list-status { color:#124a72 !important; }
body.light .book-row.part4-card .ch-list-status { color:#f3ddff !important; }
@media (max-width:768px) {
  body.light .book-row.part1-card, body.light .book-row.part2-card, body.light .book-row.part3-card, body.light .book-row.part4-card { background-image:none !important; }
  body.light .book-row.part1-card { background:#e2e6ed !important; }
  body.light .book-row.part2-card { background:#f5ca67 !important; }
  body.light .book-row.part3-card { background:#87c9f5 !important; }
  body.light .book-row.part4-card { background:#694099 !important; }
}

/* ── 統一卡片曲率與贊助方案對比 ── */
:root { --card-radius: 28px; --card-radius-mobile: 22px; }
.volume-rail, .metrics, .support-grid, .free-ways, .book-row, .support-card, .support-tier, .about-card, .legal-card, .podcast-card, .notice-box, .archive-index { border-radius:var(--card-radius) !important; }
.support-grid, .free-ways { overflow:hidden !important; }
.support-tier, .free-way { border-radius:0 !important; }
body.light .support-grid { background:rgba(92,68,112,.24) !important; border-color:rgba(92,68,112,.26) !important; box-shadow:0 18px 40px rgba(52,35,65,.10) !important; }
body.light .support-tier { background:#f1edf3 !important; color:#2d2634 !important; }
body.light .support-tier:nth-child(3) { background:#dfd5ec !important; color:#352640 !important; }
body.light .support-tier.featured { background:radial-gradient(circle at 78% 13%,rgba(242,218,255,.48),transparent 28%),linear-gradient(145deg,#7b49a9,#432068) !important; color:#fff !important; }
body.light .support-tier .tier-name,
body.light .support-tier .tier-price { color:inherit !important; }
body.light .support-tier .tier-price span,
body.light .support-tier .tier-desc { color:rgba(45,38,52,.72) !important; }
body.light .support-tier.featured .tier-name,
body.light .support-tier.featured .tier-price { color:#fff !important; text-shadow:0 1px 1px rgba(39,13,58,.24); }
body.light .support-tier.featured .tier-price span,
body.light .support-tier.featured .tier-desc { color:rgba(255,255,255,.86) !important; }
body.light .support-tier.featured .btn-primary { background:#fff !important; border-color:#fff !important; color:#4a2672 !important; }
body.light .support-tier.featured::before { background:#f2cc75 !important; color:#3b2705 !important; box-shadow:0 2px 8px rgba(46,24,67,.24) !important; }
body.light .support-tier:not(.featured) .btn { color:#4b2871 !important; border-color:rgba(75,40,113,.42) !important; background:rgba(255,255,255,.42) !important; }
body.light .free-ways { background:rgba(92,68,112,.20) !important; border-color:rgba(92,68,112,.24) !important; }
body.light .free-way { background:#f5f1f7 !important; color:#30283a !important; }
body.light .free-way-title { color:#39264d !important; }
body.light .free-way-desc { color:#665e6c !important; }
@media (max-width:768px) {
  .volume-rail, .metrics, .support-grid, .free-ways, .book-row, .support-card, .support-tier, .about-card, .legal-card, .podcast-card, .notice-box, .archive-index { border-radius:var(--card-radius-mobile) !important; }
}

/* ── 首頁：Logo 金黃色文字識別 ──
   首頁完成連載後改用 Logo 金黃作為文字強調色；
   僅限 archive-home，書櫃與各部閱讀頁仍保留固定四色。 */
body.archive-home {
  --home-logo-gold: #f6c967;
  --home-logo-gold-bright: #ffe2a6;
}
body.archive-home .archive-eyebrow,
body.archive-home .archive-title span,
body.archive-home .archive-index-label,
body.archive-home .archive-index-title,
body.archive-home .archive-index-meta a,
body.archive-home .section-kicker,
body.archive-home .section-heading em,
body.archive-home .signal-strip b,
body.archive-home .signal-strip a,
body.archive-home .metric-num,
body.archive-home .chapter-row:hover .chapter-name {
  color:var(--home-logo-gold) !important;
  text-shadow:none !important;
}
body.archive-home .archive-eyebrow::before { background:var(--home-logo-gold) !important; }
body.archive-home .archive-index-meta a:hover,
body.archive-home .signal-strip a:hover { color:var(--home-logo-gold-bright) !important; }
body.archive-home .archive-hero .btn-primary {
  background:var(--home-logo-gold) !important;
  border-color:var(--home-logo-gold) !important;
  color:#17120a !important;
}
body.archive-home .archive-hero .btn-outline {
  color:var(--home-logo-gold) !important;
  border-color:rgba(246,201,103,.52) !important;
  background:transparent !important;
}
body.archive-home .nav-theme-toggle {
  color:var(--home-logo-gold) !important;
  border-color:rgba(246,201,103,.40) !important;
  background:rgba(246,201,103,.06) !important;
}
body.light.archive-home .archive-title span,
body.light.archive-home .archive-eyebrow,
body.light.archive-home .archive-index-meta a,
body.light.archive-home .section-kicker,
body.light.archive-home .section-heading em,
body.light.archive-home .signal-strip b,
body.light.archive-home .signal-strip a,
body.light.archive-home .metric-num,
body.light.archive-home .chapter-row:hover .chapter-name {
  color:#a65a0b !important;
  text-shadow:none !important;
}
body.light.archive-home .archive-hero .btn-primary {
  background:#a65a0b !important;
  border-color:#a65a0b !important;
  color:#fffaf0 !important;
}
body.light.archive-home .archive-hero .btn-outline {
  color:#a65a0b !important;
  border-color:rgba(166,90,11,.48) !important;
  background:rgba(255,250,240,.48) !important;
}
body.light.archive-home .nav-theme-toggle {
  color:#a65a0b !important;
  border-color:rgba(166,90,11,.36) !important;
  background:rgba(166,90,11,.06) !important;
}

body.archive-home .volume-card:nth-child(4) .volume-name,
body.archive-home .volume-card:nth-child(4) .volume-no,
body.archive-home .site-footer .footer-col-title,
body.archive-home .site-footer .footer-col-title::after,
body.archive-home .site-footer .footer-legal a:hover,
body.archive-home .site-footer .footer-col a:hover {
  color:var(--home-logo-gold) !important;
  border-color:rgba(246,201,103,.32) !important;
  text-shadow:none !important;
}
body.light.archive-home .volume-card:nth-child(4) .volume-name,
body.light.archive-home .volume-card:nth-child(4) .volume-no,
body.light.archive-home .site-footer .footer-col-title,
body.light.archive-home .site-footer .footer-col-title::after,
body.light.archive-home .site-footer .footer-legal a:hover,
body.light.archive-home .site-footer .footer-col a:hover {
  color:#a65a0b !important;
  border-color:rgba(166,90,11,.28) !important;
  text-shadow:none !important;
}

/* ── 命盤星圖：深空氛圍層 ──
   在既有四部識別色與統一字體之上，疊加星空／銀河紋理、按鈕發光、
   卡片與連結的互動回饋。不改變任何顏色語彙或字體，只加氛圍與動態。 */
body::before {
  content:""; position:fixed; inset:0; pointer-events:none; z-index:-2;
  background:
    radial-gradient(1.4px 1.4px at 10% 18%, rgba(245,244,239,.5), transparent),
    radial-gradient(1.2px 1.2px at 76% 12%, rgba(245,244,239,.4), transparent),
    radial-gradient(1px 1px at 32% 64%, rgba(245,244,239,.42), transparent),
    radial-gradient(1.3px 1.3px at 60% 80%, rgba(245,244,239,.35), transparent),
    radial-gradient(1px 1px at 89% 44%, rgba(245,244,239,.4), transparent),
    radial-gradient(1px 1px at 6% 86%, rgba(245,244,239,.3), transparent),
    radial-gradient(1px 1px at 44% 6%, rgba(245,244,239,.35), transparent),
    radial-gradient(1px 1px at 53% 38%, rgba(245,244,239,.3), transparent),
    linear-gradient(124deg, transparent 24%, rgba(152,215,255,.05) 38%, rgba(153,140,235,.045) 48%, rgba(255,179,107,.04) 58%, transparent 72%);
  animation: constellationDrift 90s linear both;
  animation-timeline: scroll(root);
}
@keyframes constellationDrift {
  0% { transform:scale(1); filter:brightness(1); }
  100% { transform:scale(1.22); filter:brightness(1.08); }
}

/* 按鈕：下方柔光脈動，維持各頁既有的填色與部曲識別色不變 */
.btn-primary, .toolbar-btn.primary {
  position:relative;
  animation: btnGlowPulse 3.4s ease-in-out infinite;
}
@keyframes btnGlowPulse {
  0%,100% { box-shadow:0 12px 26px -12px rgba(255,255,255,.28), 0 3px 8px -3px rgba(255,255,255,.16) !important; }
  50% { box-shadow:0 18px 38px -12px rgba(255,255,255,.42), 0 5px 12px -3px rgba(255,255,255,.24) !important; }
}

/* 導覽列：連結底線滑出 */
.nav-menu li a { position:relative; }
.nav-menu li a::after {
  content:""; position:absolute; left:15px; right:calc(100% - 15px); bottom:22px;
  height:1px; background:currentColor; opacity:.7; transition:right .28s ease;
}
.nav-menu li a:hover::after { right:15px; }

/* 卷冊卡片：輕微上浮 */
.volume-card { transition:transform .3s ease, background .3s ease; }
.volume-card:hover { transform:translateY(-4px); }

/* 章節列表：hover 滑出箭頭 */
.chapter-row { position:relative; transition:padding-left .25s ease; }
.chapter-row:hover { padding-left:8px; }
.chapter-row .chapter-name { display:inline-block; transition:transform .2s ease, color .2s ease; }
.chapter-row:hover .chapter-name { transform:translateX(4px); }
.chapter-row::after {
  content:"→"; position:absolute; right:0; top:50%; transform:translate(8px,-50%);
  opacity:0; color:var(--dawn); transition:opacity .25s ease, transform .25s ease;
}
.chapter-row:hover::after { opacity:1; transform:translate(0,-50%); }
.ch-list-item { position:relative; transition:padding-left .25s ease; }
.ch-list-item:hover { padding-left:8px; }

/* 作者頭像：hover 發光 */
.author-band img, .profile-avatar img {
  transition:box-shadow .3s ease, transform .3s ease;
}
.author-band:hover img, .profile-card:hover .profile-avatar img {
  transform:scale(1.05); box-shadow:0 0 0 5px rgba(152,215,255,.22);
}

/* 頁尾連結：hover 微幅位移 */
.footer-col a { display:block; transition:color .2s ease, transform .2s ease; }
.footer-col a:hover { transform:translateX(4px); }

@media (prefers-reduced-motion: reduce) {
  body::before { animation:none; }
  .btn-primary, .toolbar-btn.primary { animation:none; }
}

/* ── 閱讀頁回歸連續垂直捲動 ──
   所有裝置共用同一篇連續原稿，不建立攤開書頁、分頁控制或左右翻頁手勢。 */
.reading-content {
  max-width:640px !important;
  margin:82px auto !important;
}

@media (min-width:700px) and (min-height:700px) {
  .reading-body {
    max-width:860px !important;
    padding-left:28px !important;
    padding-right:28px !important;
  }
  .reading-content {
    max-width:640px !important;
    margin:82px auto !important;
  }
  .reading-content p {
    font-size:clamp(22px,2.1vw,30px) !important;
    line-height:2.02 !important;
    margin-bottom:1.34em !important;
  }
}

@media (max-width:699px), (max-height:699px) and (pointer:coarse) {
  .reading-content {
    max-width:640px !important;
    margin:58px auto !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    touch-action:pan-y !important;
  }
  .reading-content p {
    font-size:18px !important;
    line-height:2.05 !important;
    margin-bottom:1.62em !important;
  }
}

/* ── AdSense：閱讀頁左側欄（核准與設定版位後才顯示） ──
   保留閱讀正文的連續垂直流；小螢幕不建立廣告欄，避免干擾閱讀。 */
.adsense-reading-rail { display:none; }
@media (min-width:1280px) and (min-height:700px) {
  .adsense-reading-rail[data-ad-slot] {
    position:fixed;
    z-index:11;
    top:174px;
    left:calc(50% - 604px);
    display:block;
    width:160px;
    min-height:600px;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:14px;
    background:rgba(10,13,20,.34);
  }
  body.light .adsense-reading-rail[data-ad-slot] { background:rgba(255,255,255,.54); }
  .adsense-reading-rail[data-ad-slot]::before {
    content:"廣告";
    display:block;
    padding:10px 0 8px;
    color:var(--paper-faint);
    font-size:9px;
    font-weight:600;
    letter-spacing:.16em;
    text-align:center;
  }
  .adsense-reading-rail[data-ad-slot] .adsbygoogle {
    display:block;
    width:160px;
    min-height:600px;
  }
}
