/* ============================================================
 * editorial.css — zhangwenbao-v2 · Editorial Redesign
 * ============================================================
 * 立意:  Newsprint × Crawler (报纸 × 爬虫)
 * 加载: 在 output.css 之后引入,通过特异性 & 后定义覆盖 Tailwind
 * 原则:
 *   - 不破坏既有功能 (TOC / share / comments / theme toggle / 简繁 / 字号)
 *   - 大气 = 留白 + 衬线 + hairline 网格 + 单一信号色
 *   - 性能: 仅 transform/opacity 做动效;颜色用 CSS 变量;暗模式独立人格
 *   - 全部 SEO 中性:无 JS 渲染内容,无 CLS,reduced-motion 友好
 * ============================================================ */

/* ─── 1. 字体加载 ─────────────────────────────────────────── */
/* 已经在 head.php 用 fonts.font.im 链接加载,这里仅声明回退 + 等宽 */
@import url('https://fonts.font.im/css2?family=JetBrains+Mono:wght@400;500;700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,700;8..60,900&display=swap');

/* ─── 2. 设计令牌 (Design Tokens) ─────────────────────────── */
:root {
  /* 颜色 — Light (Newsprint × Vermilion) */
  --ed-bg:           #F4EFE6;    /* bone — 主背景 */
  --ed-bg-sub:       #ECE6D9;    /* 次级背景 */
  --ed-bg-card:      #FBFAF6;    /* 卡片底 */
  --ed-ink:          #0B0B0E;    /* 正文墨色 */
  --ed-ink-soft:     #2A2B33;    /* 次级文本 */
  --ed-mute:         #8B8B92;    /* metadata 灰 */
  --ed-rule:         rgba(11, 11, 14, 0.18);   /* 主 hairline */
  --ed-rule-strong:  #0B0B0E;     /* 重 hairline */
  --ed-signal:       #C8362F;     /* 朱红 — 唯一信号色 (老纸印刷红) */
  --ed-signal-soft:  #F9E3DE;
  --ed-signal-ink:   #8A1F1A;     /* 文字上的暗朱 */
  --ed-serp-blue:    #1A0DAB;     /* Google SERP 蓝 */

  /* 排版 */
  --ed-font-display: 'Source Serif 4', 'Noto Serif SC', 'Songti SC', 'STSong', Georgia, serif;
  --ed-font-body:    'Inter', 'Noto Sans SC', 'PingFang SC', system-ui, sans-serif;
  --ed-font-mono:    'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;

  /* 节奏 */
  --ed-baseline: 8px;
  --ed-page-max: 1440px;
  --ed-content-max: 720px;      /* 文章正文窄列 */
  --ed-content-wide: 1100px;    /* 列表 / hero 宽列 */

  /* 动画 */
  --ed-ease-out:  cubic-bezier(.22, 1, .36, 1);
  --ed-dur-fast:  220ms;
  --ed-dur-base:  320ms;

  /* 主题色映射 (复用既有 --accent-*,但视觉上以 ed-signal 为主信号) */
}

[data-theme=dark] {
  /* Dark (Terminal × Phosphor) — 与 Light 是不同人格,而非反色 */
  --ed-bg:           #0A0A0B;
  --ed-bg-sub:       #14141A;
  --ed-bg-card:      #14141A;
  --ed-ink:          #F4EFE6;
  --ed-ink-soft:     #C8C8CE;
  --ed-mute:         #6B6B6F;
  --ed-rule:         rgba(244, 239, 230, 0.14);
  --ed-rule-strong:  #F4EFE6;
  --ed-signal:       #FF6B3D;        /* 暗模式下朱红保留,稍亮以确保对比 */
  --ed-signal-soft:  rgba(255, 107, 61, 0.10);
  --ed-signal-ink:   #FFB89B;
  --ed-serp-blue:    #8AB4F8;
}

/* ─── 3. 全局基底 ────────────────────────────────────────── */
html { background: var(--ed-bg); }
html, body {
  font-family: var(--ed-font-body);
  font-variant-numeric: tabular-nums;
}

body {
  background: var(--ed-bg) !important;
  color: var(--ed-ink) !important;
  font-feature-settings: 'ss01', 'cv11';
}

/* 提升正文字号 (大气 = 大字 + 大空间) */
.prose-article { font-size: 17px; line-height: 1.85; }
@media (min-width: 1024px) {
  .prose-article { font-size: 18px; line-height: 1.9; }
}

/* page-shell:真正贴近 1440px 宽屏感 (padding 收紧) */
.page-shell, .container.max-w-wide {
  max-width: var(--ed-page-max) !important;
  padding-left: 20px !important; padding-right: 20px !important;
}
@media (min-width: 768px) {
  .page-shell, .container.max-w-wide { padding-left: 28px !important; padding-right: 28px !important; }
}
@media (min-width: 1280px) {
  .page-shell, .container.max-w-wide { padding-left: 32px !important; padding-right: 32px !important; }
}

/* 强制方角 — 编辑型态度声明 */
.rounded, .rounded-sm, .rounded-md, .rounded-lg, .rounded-xl, .rounded-2xl,
.rounded-full {
  border-radius: 0 !important;
}
.site-logo, img.site-logo,
.pill,
[id="wechat-share-modal"] img,
[role="dialog"] img { border-radius: 0 !important; }
/* Editorial: site-logo 完全无边框 + 无光晕 (用户明确要求) */
.site-logo, img.site-logo,
.site-logo-spin, img.site-logo-spin {
  border-radius: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  filter: none !important;
  background: transparent !important;
  animation: none !important;
}
.site-logo::before, .site-logo::after,
.site-logo-spin::before, .site-logo-spin::after {
  display: none !important;
  animation: none !important;
  content: none !important;
}
@keyframes site-logo-pulse { 0%,100% { transform: none; } }

/* 链接 — 强调 SERP-蓝下划线感 */
a { color: inherit; }
.prose-article a:not(.pill):not(.no-underline) {
  color: var(--ed-signal-ink);
  text-decoration: underline;
  text-decoration-color: var(--ed-signal);
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  transition: text-decoration-color var(--ed-dur-fast) var(--ed-ease-out),
              color var(--ed-dur-fast) var(--ed-ease-out);
}
.prose-article a:hover {
  color: var(--ed-signal);
  text-decoration-color: var(--ed-signal-ink);
}
[data-theme=dark] .prose-article a:not(.pill):not(.no-underline) {
  color: var(--ed-signal-ink);
  text-decoration-color: var(--ed-signal);
}

/* ─── 4. 顶部 Header 重塑 ─────────────────────────────────── */
header[role="banner"] {
  background: var(--ed-bg) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 1px solid var(--ed-rule-strong) !important;
}
header[role="banner"] > .container {
  max-width: var(--ed-page-max) !important;
  height: 72px !important;
  padding-left: 32px; padding-right: 32px;
}
@media (min-width: 1280px) {
  header[role="banner"] > .container { padding-left: 64px; padding-right: 64px; }
}

/* 站名 — 衬线展示字 */
header .site-title {
  font-family: var(--ed-font-display) !important;
  font-weight: 900 !important;
  font-size: 22px !important;
  letter-spacing: -0.01em !important;
  color: var(--ed-ink) !important;
}
header .site-title span { color: var(--ed-signal) !important; }

/* 导航 — UPPERCASE mono */
header nav[role="navigation"] a {
  font-family: var(--ed-font-mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--ed-ink-soft) !important;
  padding: 6px 10px !important;
  background: transparent !important;
}
header nav[role="navigation"] a:hover {
  color: var(--ed-signal) !important;
  background: transparent !important;
}
header nav[role="navigation"] .relative.group > a span[itemprop="name"] {
  font-family: var(--ed-font-mono) !important;
}
/* 当前页激活 — 左竖朱红 */
header nav[role="navigation"] a.bg-zinc-100,
header nav[role="navigation"] a.dark\:bg-zinc-800,
header nav[role="navigation"] a[class*="bg-zinc-100"] {
  background: transparent !important;
  color: var(--ed-signal) !important;
  border-bottom: 2px solid var(--ed-signal);
  border-radius: 0 !important;
  padding-bottom: 4px !important;
}
/* 下拉面板 - 纸面调 */
header nav[role="navigation"] .absolute > div {
  background: var(--ed-bg-card) !important;
  border: 1px solid var(--ed-rule-strong) !important;
  border-radius: 0 !important;
  box-shadow: 4px 4px 0 var(--ed-rule-strong) !important;  /* 印章感 */
  font-family: var(--ed-font-mono);
}
header nav[role="navigation"] .absolute a {
  font-family: var(--ed-font-mono) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 13px !important;
  color: var(--ed-ink) !important;
}
header nav[role="navigation"] .absolute a:hover {
  background: var(--ed-signal-soft) !important;
  color: var(--ed-signal-ink) !important;
}

/* 右侧搜索按钮 + 主题切换 — keycap 风格 */
header > .container > .flex.items-center.gap-1 button {
  font-family: var(--ed-font-mono) !important;
  border: 1px solid var(--ed-rule) !important;
  border-bottom-width: 2px !important;
  border-radius: 0 !important;
  background: var(--ed-bg-card) !important;
  color: var(--ed-ink-soft) !important;
  transition: all var(--ed-dur-fast) var(--ed-ease-out);
}
header > .container > .flex.items-center.gap-1 button:hover {
  border-color: var(--ed-signal) !important;
  color: var(--ed-signal) !important;
  background: var(--ed-bg) !important;
  transform: translateY(-1px);
}

/* 路径面包屑 — 加在 logo 后,JS 不需要,纯 CSS 显示 */
.site-path {
  font-family: var(--ed-font-mono);
  font-size: 13px;
  color: var(--ed-mute);
  margin-left: 12px;
  white-space: nowrap;
  align-self: center;
  display: none;
}
@media (min-width: 1024px) { .site-path { display: inline-flex; align-items: center; gap: 4px; } }
.site-path::before { content: '~'; color: var(--ed-signal); margin-right: 4px; }

/* ─── 5. Hero (首页+列表) ─────────────────────────────────── */
/* 首页 hero slideshow:把现有大图 hero 改为编辑创刊号封面感觉
   保留 PHP DOM 不改 — 仅视觉重制 */
.hero-slideshow {
  background: var(--ed-bg) !important;
  border-bottom: 1px solid var(--ed-rule-strong);
}
.hero-slideshow .hero-slide[data-slide-index="0"] {
  /* 第 1 张文字版:覆盖背景图,改为纸面 */
  background: var(--ed-bg) !important;
}
.hero-slideshow .hero-slide[data-slide-index="0"] > .absolute.inset-0.-z-10 {
  display: none !important;     /* 杀掉背景图 + 蒙层 */
}
.hero-slideshow .hero-slide[data-slide-index="0"] .text-accent-300 {
  color: var(--ed-signal) !important;
  font-family: var(--ed-font-mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
}
.hero-slideshow .hero-slide[data-slide-index="0"] h1 {
  font-family: var(--ed-font-display) !important;
  color: var(--ed-ink) !important;
  font-weight: 900 !important;
  font-size: clamp(40px, 7vw, 88px) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.02 !important;
}
.hero-slideshow .hero-slide[data-slide-index="0"] h1 span { color: var(--ed-signal) !important; }
.hero-slideshow .hero-slide[data-slide-index="0"] p {
  color: var(--ed-ink-soft) !important;
  font-family: var(--ed-font-body) !important;
  font-size: 18px !important;
  max-width: 60ch !important;
}
.hero-slideshow .hero-slide[data-slide-index="0"] p strong {
  color: var(--ed-signal-ink) !important;
  font-weight: 700 !important;
}

/* 创刊号印章 — 用 ::before 注入到第一个 slide 顶部 */
.hero-slideshow .hero-slide[data-slide-index="0"] .page-shell::before {
  content: 'ISSUE · ' attr(data-issue) '   ' attr(data-date);
  display: block;
  font-family: var(--ed-font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ed-mute);
  border-bottom: 1px solid var(--ed-rule);
  padding-bottom: 16px;
  margin-bottom: 40px;
}

/* 2-4 张活动图 — 保留功能但收敛视觉:无圆角 */
.hero-slideshow .hero-slide--image {
  background: var(--ed-bg) !important;
}
.hero-slideshow .hero-slide--image .bg-zinc-950\/55 {
  background: var(--ed-bg) !important;
  border: 1px solid var(--ed-rule-strong) !important;
  border-radius: 0 !important;
  backdrop-filter: none !important;
}
.hero-slideshow .hero-slide--image h2 {
  color: var(--ed-ink) !important;
  font-family: var(--ed-font-display) !important;
  text-shadow: none !important;
}
.hero-slideshow .hero-slide--image .text-zinc-100 {
  color: var(--ed-ink-soft) !important;
}

/* hero 箭头 — 印章风,无 transform 抖动 (兼容 Tailwind hover:scale-110) */
.hero-arrow {
  border-radius: 0 !important;
  background: var(--ed-ink) !important;
  border: 2px solid var(--ed-ink) !important;
  box-shadow: 4px 4px 0 var(--ed-signal) !important;
  color: var(--ed-bg) !important;
  transform: none !important;
  transition: background var(--ed-dur-fast) var(--ed-ease-out),
              border-color var(--ed-dur-fast) var(--ed-ease-out),
              box-shadow var(--ed-dur-fast) var(--ed-ease-out) !important;
}
.hero-arrow:hover {
  background: var(--ed-signal) !important;
  border-color: var(--ed-signal) !important;
  box-shadow: 6px 6px 0 var(--ed-ink) !important;
  transform: none !important;          /* 杀掉 Tailwind hover:scale-110 抖动 */
}
.hero-dot {
  width: 24px !important;
  height: 3px !important;
  border-radius: 0 !important;
  background: var(--ed-rule) !important;
}
.hero-dot.is-active,
.hero-dot[aria-current="true"] {
  background: var(--ed-signal) !important;
}

/* 分类/标签/搜索 hero 区 — 编辑型大标题 */
section.border-b > .page-shell > h1.font-display {
  font-family: var(--ed-font-display) !important;
  color: var(--ed-ink) !important;
  font-weight: 900 !important;
  font-size: clamp(40px, 6vw, 72px) !important;
  letter-spacing: -0.02em !important;
}

/* ─── 6. Schema 括号注脚 (用 .schema-bracket 类) ──────────── */
.schema-bracket {
  display: inline-block;
  font-family: var(--ed-font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ed-signal);
  border: 1px solid var(--ed-signal);
  padding: 3px 6px;
  margin: 0 0 16px;
  line-height: 1;
  vertical-align: middle;
}
.schema-bracket::before { content: '[ '; opacity: 0.55; }
.schema-bracket::after  { content: ' ]'; opacity: 0.55; }
.schema-bracket + .schema-bracket { margin-left: 6px; }

/* ─── 7. HTTP 响应头印章 (文章顶部) ────────────────────────── */
.resp-headers {
  font-family: var(--ed-font-mono);
  font-size: 12px;
  line-height: 1.75;
  color: var(--ed-mute);
  background: var(--ed-bg-sub);
  border: 1px solid var(--ed-rule);
  border-left: 3px solid var(--ed-signal);
  padding: 14px 18px;
  margin: 0 0 32px;
  overflow-x: auto;
  white-space: pre;
  border-radius: 0;
}
.resp-headers strong { color: var(--ed-ink); font-weight: 500; }
.resp-headers a { color: var(--ed-ink); text-decoration: none; border-bottom: 1px dashed var(--ed-mute); }
.resp-headers a:hover { color: var(--ed-signal); border-bottom-color: var(--ed-signal); }
.resp-headers .h-status { color: var(--ed-signal); font-weight: 700; }
[data-theme=dark] .resp-headers { background: var(--ed-bg-sub); }

/* ─── 8. 文章页排版 (post.php) ─────────────────────────────── */
/* 大标题 — 衬线展示字 */
.post-h1, h1.post-h1 {
  font-family: var(--ed-font-display) !important;
  font-weight: 900 !important;
  font-size: clamp(36px, 5vw, 64px) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.05 !important;
  color: var(--ed-ink) !important;
  margin-top: 8px;
}

/* 面包屑 - mono */
article > .page-grid nav[aria-label="面包屑"] ol {
  font-family: var(--ed-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
article > .page-grid nav[aria-label="面包屑"] a {
  color: var(--ed-mute) !important;
}
article > .page-grid nav[aria-label="面包屑"] a:hover { color: var(--ed-signal) !important; }
article > .page-grid nav[aria-label="面包屑"] li[aria-current="page"] span {
  color: var(--ed-ink) !important;
}

/* meta 行 - mono */
article .text-sm.text-zinc-600 time,
article .text-sm.text-zinc-600 span {
  font-family: var(--ed-font-mono);
  letter-spacing: 0.02em;
}

/* 正文衬线 H2 + 朱红左竖条 */
.prose-article h2 {
  font-family: var(--ed-font-display) !important;
  font-weight: 900 !important;
  font-size: 1.8em !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
  margin-top: 2.4em !important;
  margin-bottom: 1em !important;
  padding-left: 0.6em !important;
  padding-bottom: 0.2em !important;
  border-left: 6px solid var(--ed-signal) !important;
  border-bottom: 1px solid var(--ed-rule) !important;
  color: var(--ed-ink) !important;
}
[data-theme=dark] .prose-article h2 {
  color: var(--ed-ink) !important;
  border-left-color: var(--ed-signal) !important;
  border-bottom-color: var(--ed-rule) !important;
}

/* H3 - sans 粗体 */
.prose-article h3 {
  font-family: var(--ed-font-body) !important;
  font-weight: 700 !important;
  font-size: 1.35em !important;
  margin-top: 2em !important;
  margin-bottom: 0.7em !important;
  color: var(--ed-ink) !important;
}

/* H2 之后的 H3 紧贴更近 */
.prose-article h2 + h3 { margin-top: 1em !important; }

/* 强调/链接色匹配 */
.prose-article strong, .prose-article b {
  color: var(--ed-signal-ink) !important;
  font-weight: 700 !important;
}
[data-theme=dark] .prose-article strong,
[data-theme=dark] .prose-article b { color: var(--ed-signal-ink) !important; }

/* 首字下沉 — 大气印刷感 */
.prose-article > p:first-of-type::first-letter {
  float: left;
  font-family: var(--ed-font-display);
  font-weight: 900;
  font-size: 5em;
  line-height: 0.85;
  margin: 0.05em 0.12em 0 0;
  padding: 0.05em 0.08em 0;
  color: var(--ed-ink);
  background: var(--ed-signal-soft);
}
[data-theme=dark] .prose-article > p:first-of-type::first-letter {
  background: transparent;
  color: var(--ed-signal);
  border: 2px solid var(--ed-signal);
}
@media (max-width: 640px) {
  .prose-article > p:first-of-type::first-letter { font-size: 3.4em; }
}

/* 引用 blockquote — 金融报感 */
.prose-article blockquote {
  margin: 2em 0 !important;
  padding: 1.2em 1.5em !important;
  background: var(--ed-bg-sub) !important;
  border-left: 5px solid var(--ed-signal) !important;
  border-radius: 0 !important;
  color: var(--ed-ink) !important;
  font-family: var(--ed-font-display) !important;
  font-size: 1.1em !important;
  font-style: italic !important;
  font-weight: 400 !important;
  box-shadow: none !important;
  position: relative;
}
.prose-article blockquote::before {
  content: '"';
  font-family: var(--ed-font-display);
  font-size: 4em;
  line-height: 0.6;
  color: var(--ed-signal);
  opacity: 0.3;
  position: absolute;
  left: 12px; top: 4px;
  pointer-events: none;
}
[data-theme=dark] .prose-article blockquote {
  background: var(--ed-bg-sub) !important;
  color: var(--ed-ink) !important;
  border-left-color: var(--ed-signal) !important;
}

/* 表格 — 编辑型 ledger 风 (与 HTTP 印章 + sidebar metadata 同一灰系) */
.prose-article table {
  border-collapse: collapse !important;
  width: 100% !important;
  margin: 2em 0 !important;
  font-variant-numeric: tabular-nums !important;
  font-size: 0.95em !important;
  border-top: 2px solid var(--ed-rule-strong) !important;
  border-bottom: 2px solid var(--ed-rule-strong) !important;
}
/* 表头:bone-sub 背景 + mute 文字,与 sidebar 标题 / metadata 同语义 */
.prose-article table thead th {
  font-family: var(--ed-font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  background: var(--ed-bg-sub) !important;
  background-color: var(--ed-bg-sub) !important;
  color: var(--ed-mute) !important;                /* 与所有 metadata 标签同灰 */
  border-bottom: 1px solid var(--ed-rule-strong) !important;
  border-top: none !important;
  padding: 12px 12px !important;
  text-align: left !important;
  font-weight: 500 !important;
}
.prose-article table tbody td,
.prose-article table tbody th {
  border: none !important;
  border-bottom: 1px solid var(--ed-rule) !important;
  padding: 12px 12px !important;
  vertical-align: top !important;
  color: var(--ed-ink) !important;
  background: transparent !important;
}
.prose-article table tbody tr:last-child td,
.prose-article table tbody tr:last-child th {
  border-bottom: none !important;
}
/* 斑马纹:奇数行透明,偶数行极淡 bone-sub (印刷账册节奏) */
.prose-article table tbody tr:nth-child(even) td,
.prose-article table tbody tr:nth-child(even) th {
  background: rgba(0, 0, 0, 0.018) !important;
}
/* hover:用 bg-sub 同色(与表头呼应),不再用朱红 */
.prose-article table tbody tr:hover td,
.prose-article table tbody tr:hover th {
  background: var(--ed-bg-sub) !important;
  color: var(--ed-ink) !important;
}
.prose-article table tbody td:not(:first-child) {
  font-family: var(--ed-font-mono);
  font-size: 13px;
}
/* Dark mode: 同样原则 */
[data-theme=dark] .prose-article table {
  border-top-color: var(--ed-rule-strong) !important;
  border-bottom-color: var(--ed-rule-strong) !important;
}
[data-theme=dark] .prose-article table thead th {
  color: var(--ed-mute) !important;
  background: var(--ed-bg-sub) !important;
  border-bottom-color: var(--ed-rule-strong) !important;
}
[data-theme=dark] .prose-article table tbody td,
[data-theme=dark] .prose-article table tbody th {
  color: var(--ed-ink) !important;
  border-bottom-color: var(--ed-rule) !important;
}
[data-theme=dark] .prose-article table tbody tr:nth-child(even) td,
[data-theme=dark] .prose-article table tbody tr:nth-child(even) th {
  background: rgba(255, 255, 255, 0.025) !important;
}
[data-theme=dark] .prose-article table tbody tr:hover td,
[data-theme=dark] .prose-article table tbody tr:hover th {
  background: var(--ed-bg-sub) !important;
}

/* 代码 — 等宽 + bg-sub */
.prose-article code:not(pre code) {
  font-family: var(--ed-font-mono) !important;
  background: var(--ed-bg-sub) !important;
  color: var(--ed-signal-ink) !important;
  padding: 2px 6px !important;
  border-radius: 0 !important;
  font-size: 0.88em !important;
  border: 1px solid var(--ed-rule);
}
[data-theme=dark] .prose-article code:not(pre code) {
  background: var(--ed-bg-sub) !important;
  color: var(--ed-signal-ink) !important;
}
.prose-article pre {
  border: 1px solid var(--ed-rule) !important;
  border-left: 3px solid var(--ed-signal) !important;
  border-radius: 0 !important;
  padding: 16px 20px !important;
  font-size: 13px !important;
  background: #1a1a1f !important;
  color: #e4e4e7 !important;
  overflow-x: auto;
}

/* hr 分隔 — 双线印刷感 */
.prose-article hr {
  border: none !important;
  border-top: 1px solid var(--ed-ink) !important;
  border-bottom: 1px solid var(--ed-ink) !important;
  height: 5px !important;
  margin: 3.5em 0 !important;
}

/* ul/ol bullets - 简洁 */
.prose-article ul li::marker { color: var(--ed-signal); }
.prose-article ol { list-style: decimal-leading-zero; }
.prose-article ol li::marker { color: var(--ed-signal); font-family: var(--ed-font-mono); font-size: 0.85em; font-weight: 500; }

/* ─── 9. 列表 (index.php) ─────────────────────────────────── */
/* 文章卡 - 编辑型 */
section[aria-label="文章列表"] > ul > li > article {
  padding: 28px 0 !important;
  border-top: 1px solid var(--ed-rule) !important;
}
section[aria-label="文章列表"] > ul > li:first-child > article {
  border-top: 2px solid var(--ed-ink-soft) !important;
  padding-top: 36px !important;
}
section[aria-label="文章列表"] > ul > li:last-child > article {
  border-bottom: 1px solid var(--ed-rule) !important;
}
section[aria-label="文章列表"] > ul { gap: 0 !important; }
section[aria-label="文章列表"] > ul > li { margin: 0 !important; }

/* 分类小标 - mono,去彩色 (改成 mute 灰,只有 [Article] schema bracket 保留信号红) */
section[aria-label="文章列表"] article p.text-xs.uppercase {
  font-family: var(--ed-font-mono) !important;
  letter-spacing: 0.1em !important;
  color: var(--ed-mute) !important;
  font-size: 11px !important;
  margin-bottom: 12px !important;
}
section[aria-label="文章列表"] article p.text-xs.uppercase a {
  color: var(--ed-ink-soft) !important;
  border-bottom: 1px dotted var(--ed-rule);
  padding-bottom: 1px;
}
section[aria-label="文章列表"] article p.text-xs.uppercase a:hover {
  color: var(--ed-signal) !important;
  border-bottom-color: var(--ed-signal);
}

/* 标题 - 衬线 */
section[aria-label="文章列表"] article h2 {
  font-family: var(--ed-font-display) !important;
  font-weight: 900 !important;
  font-size: clamp(26px, 3vw, 36px) !important;
  letter-spacing: -0.015em !important;
  line-height: 1.15 !important;
  margin-bottom: 16px !important;
  color: var(--ed-ink) !important;
}
section[aria-label="文章列表"] article h2 a {
  color: var(--ed-ink) !important;
  text-decoration: none !important;
  transition: color var(--ed-dur-fast) var(--ed-ease-out);
}
section[aria-label="文章列表"] article h2 a:hover {
  color: var(--ed-signal) !important;
}
/* 标题 hover: 仅变色,不加任何下划线/波浪 (用户明确要求) */
@media (hover: hover) {
  section[aria-label="文章列表"] article:hover h2 a {
    color: var(--ed-signal) !important;
    text-decoration: none !important;
  }
}
/* 杀掉 .title-wave-hover (原 main.js 注入的字符级 wave 入场动效) */
.title-wave-hover { text-decoration: none !important; }
.title-wave-hover *, .title-wave-hover .char { text-decoration: none !important; animation: none !important; }
.title-wave-hover::after, .title-wave-hover::before { display: none !important; content: none !important; }
/* 所有标题元素全局禁用下划线/波浪 */
h1, h2, h3, h4, h5, h6,
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
.post-h1, .post-h1 a {
  text-decoration: none !important;
}

/* 摘要 */
section[aria-label="文章列表"] article p[itemprop="description"] {
  color: var(--ed-ink-soft) !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  margin-bottom: 18px !important;
}

/* 缩略图无圆角 + 朱红边框 hover */
section[aria-label="文章列表"] article a[class*="aspect-"] {
  border: 1px solid var(--ed-rule);
  transition: border-color var(--ed-dur-fast);
}
section[aria-label="文章列表"] article a[class*="aspect-"] img {
  transition: transform 0.6s var(--ed-ease-out);
}
@media (hover: hover) {
  section[aria-label="文章列表"] article:hover a[class*="aspect-"] {
    border-color: var(--ed-signal);
  }
}

/* metadata 底行 - mono */
section[aria-label="文章列表"] article .flex.flex-wrap.items-center {
  font-family: var(--ed-font-mono) !important;
  font-size: 12px !important;
  color: var(--ed-mute) !important;
  letter-spacing: 0.02em;
}
section[aria-label="文章列表"] article .flex.flex-wrap.items-center time {
  color: var(--ed-ink-soft) !important;
}

/* 列表 hero 区底部加双线 */
section[aria-labelledby="hero-title"],
section.hero-slideshow + .page-shell,
.page-shell:first-of-type > .page-grid:first-of-type {
  position: relative;
}

/* ─── 10. Pill 标签 - mono ─────────────────────────────────── */
.pill {
  font-family: var(--ed-font-mono) !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  background: transparent !important;
  border: 1px solid var(--ed-rule) !important;
  border-radius: 0 !important;
  padding: 4px 10px !important;
  color: var(--ed-ink-soft) !important;
  transition: all var(--ed-dur-fast) var(--ed-ease-out);
}
.pill::before { content: '#'; color: var(--ed-mute); margin-right: 2px; }
.pill:hover {
  border-color: var(--ed-signal) !important;
  color: var(--ed-signal) !important;
  background: var(--ed-signal-soft) !important;
  transform: translateY(-1px);
}
[data-theme=dark] .pill {
  border-color: var(--ed-rule) !important;
  color: var(--ed-ink-soft) !important;
}
[data-theme=dark] .pill:hover {
  background: var(--ed-signal-soft) !important;
  color: var(--ed-signal) !important;
  border-color: var(--ed-signal) !important;
}

/* ─── 11. 侧边栏 + 各种 secondary 容器 ───────────────────── */
.page-grid > aside,
.page-grid > .page-side {
  font-size: 14px;
}
.page-grid aside .border, .page-grid aside [class*="border-zinc"] {
  border-color: var(--ed-rule) !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.page-grid aside h3, .page-grid aside h4 {
  font-family: var(--ed-font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ed-mute) !important;
  font-weight: 500 !important;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ed-rule);
  margin-bottom: 14px;
}

/* ─── 12. 阅读控制 / 字号 / 简繁按钮 - keycap ─────────────── */
button[data-fontsize], button[data-zhconv] {
  font-family: var(--ed-font-mono) !important;
  border: 1px solid var(--ed-rule) !important;
  border-bottom-width: 2px !important;
  border-radius: 0 !important;
  background: var(--ed-bg-card) !important;
  color: var(--ed-ink-soft) !important;
}
button[data-fontsize]:hover, button[data-zhconv]:hover {
  border-color: var(--ed-signal) !important;
  color: var(--ed-signal) !important;
  background: var(--ed-bg) !important;
}

/* 阅读进度条 */
#reading-progress {
  background: var(--ed-signal) !important;
  height: 3px !important;
}

/* ─── 13. 分享按钮 - 方角 + 朱红 hover ─────────────────────── */
section[aria-label="分享文章"] a, section[aria-label="分享文章"] button {
  border-radius: 0 !important;
  border: 1px solid var(--ed-rule) !important;
  background: var(--ed-bg-card) !important;
  color: var(--ed-ink-soft) !important;
  transition: all var(--ed-dur-fast) var(--ed-ease-out) !important;
}
section[aria-label="分享文章"] a:hover, section[aria-label="分享文章"] button:hover {
  border-color: var(--ed-signal) !important;
  color: var(--ed-signal) !important;
  background: var(--ed-signal-soft) !important;
  transform: translateY(-2px) !important;
}
section[aria-label="分享文章"] > div.text-xs.uppercase {
  font-family: var(--ed-font-mono) !important;
  color: var(--ed-mute) !important;
}

/* ─── 14. 上一篇/下一篇 - 编辑型卡 ─────────────────────────── */
section[aria-label="文章导航"] a,
section[aria-label="文章导航"] > .grid > div {
  border: 1px solid var(--ed-rule) !important;
  border-radius: 0 !important;
  background: var(--ed-bg-card) !important;
  transition: all var(--ed-dur-fast) var(--ed-ease-out);
}
section[aria-label="文章导航"] a:hover {
  border-color: var(--ed-signal) !important;
  background: var(--ed-bg) !important;
  transform: translateY(-2px) !important;
  box-shadow: 4px 4px 0 var(--ed-signal) !important;
}
section[aria-label="文章导航"] p.text-xs.uppercase,
section[aria-label="文章导航"] > .text-xs.uppercase {
  font-family: var(--ed-font-mono) !important;
  color: var(--ed-mute) !important;
}
section[aria-label="文章导航"] a span,
section[aria-label="文章导航"] > .grid > a span {
  font-family: var(--ed-font-display) !important;
  font-size: 17px !important;
  color: var(--ed-ink) !important;
}

/* ─── 15. 版权 + 分享 + 标签 区块 - 边框换 hairline ────────── */
section[aria-label="文章标签"],
section[aria-label="版权声明"],
section[aria-label="分享文章"],
section[aria-label="文章导航"] {
  border-top-color: var(--ed-rule-strong) !important;
}
section > .text-xs.uppercase.tracking-widest {
  font-family: var(--ed-font-mono) !important;
  color: var(--ed-mute) !important;
  font-weight: 500 !important;
}

/* ─── 16. 相关文章 - 杂志网格 ────────────────────────────── */
section[aria-label="相关文章"] {
  background: var(--ed-bg) !important;
  border-top: 2px solid var(--ed-ink-soft) !important;
  border-bottom: 1px solid var(--ed-rule);
}
section[aria-label="相关文章"] > .page-shell > .flex.items-end > div {
  font-family: var(--ed-font-display) !important;
  font-size: 28px !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em !important;
  color: var(--ed-ink) !important;
}
section[aria-label="相关文章"] > .page-shell > .flex.items-end > a {
  font-family: var(--ed-font-mono) !important;
  font-size: 12px !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ed-mute) !important;
}
section[aria-label="相关文章"] > .page-shell > .flex.items-end > a:hover {
  color: var(--ed-signal) !important;
}
section[aria-label="相关文章"] ul a {
  border: 1px solid var(--ed-rule) !important;
  background: var(--ed-bg-card) !important;
  border-radius: 0 !important;
  transition: all var(--ed-dur-base) var(--ed-ease-out);
}
section[aria-label="相关文章"] ul a:hover {
  border-color: var(--ed-signal) !important;
  transform: translateY(-3px);
  box-shadow: 4px 4px 0 var(--ed-signal) !important;
}
section[aria-label="相关文章"] ul a .aspect-video {
  border-radius: 0 !important;
}
section[aria-label="相关文章"] ul a div p.text-xs.uppercase {
  font-family: var(--ed-font-mono) !important;
  color: var(--ed-signal) !important;
  letter-spacing: 0.08em !important;
}
section[aria-label="相关文章"] ul a div .text-base.font-semibold {
  font-family: var(--ed-font-display) !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  color: var(--ed-ink) !important;
}

/* ─── 17. AI 引用友好版 (post.php 末尾,见 PHP 改动) ────────── */
.ai-cite-version {
  margin: 5rem 0 2rem;
  border: 2px solid var(--ed-signal);
  border-radius: 0;
  padding: 0;
  background: var(--ed-bg-card);
  position: relative;
}
.ai-cite-version::before {
  content: '★';
  position: absolute;
  top: -14px; left: 24px;
  background: var(--ed-bg);
  color: var(--ed-signal);
  padding: 0 8px;
  font-size: 18px;
  line-height: 1;
}
.ai-cite-version summary {
  list-style: none;
  cursor: pointer;
  padding: 24px 28px;
  font-family: var(--ed-font-display);
  font-size: 22px;
  font-weight: 900;
  color: var(--ed-ink);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.ai-cite-version summary::-webkit-details-marker { display: none; }
.ai-cite-version summary::after {
  content: '展开 ▾';
  font-family: var(--ed-font-mono);
  font-size: 12px;
  font-weight: 500;
  color: var(--ed-signal);
  letter-spacing: 0.08em;
}
.ai-cite-version[open] summary::after { content: '收起 ▴'; }
.ai-cite-version[open] summary { border-bottom: 1px solid var(--ed-rule); }
.ai-cite-version .ai-cite-body { padding: 24px 28px 28px; }
.ai-cite-version .ai-cite-meta {
  font-family: var(--ed-font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ed-mute);
  margin-bottom: 8px;
}
.ai-cite-version .ai-cite-tldr {
  font-family: var(--ed-font-display);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--ed-ink);
  margin-bottom: 24px;
  padding-left: 16px;
  border-left: 3px solid var(--ed-signal);
}

/* ─── 18. Footer Spec Sheet ────────────────────────────────── */
footer[role="contentinfo"] {
  background: var(--ed-bg) !important;
  border-top: 2px solid var(--ed-ink-soft) !important;
  color: var(--ed-ink-soft) !important;
  margin-top: 6rem !important;
  padding-top: 4rem !important;
}
footer[role="contentinfo"] .container {
  max-width: var(--ed-page-max) !important;
}
footer[role="contentinfo"] > .container:first-child > div > div.text-zinc-900,
footer[role="contentinfo"] .font-semibold {
  font-family: var(--ed-font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ed-mute) !important;
  font-weight: 500 !important;
  border-bottom: 1px solid var(--ed-rule);
  padding-bottom: 8px;
  margin-bottom: 16px !important;
}
footer[role="contentinfo"] ul li a {
  font-family: var(--ed-font-mono) !important;
  font-size: 13px !important;
  color: var(--ed-ink-soft) !important;
  transition: color var(--ed-dur-fast) var(--ed-ease-out);
}
footer[role="contentinfo"] ul li a:hover {
  color: var(--ed-signal) !important;
}
footer[role="contentinfo"] ul li a::before {
  content: '› ';
  color: var(--ed-signal);
  font-weight: 700;
}
/* 工具列单独样式 - 强调跨度 */
footer[role="contentinfo"] .container.mt-12 {
  border-top-color: var(--ed-rule) !important;
  padding-top: 32px !important;
}
footer[role="contentinfo"] .container.mt-12 .text-xs {
  font-family: var(--ed-font-mono) !important;
  color: var(--ed-mute) !important;
  font-size: 11px !important;
  letter-spacing: 0.05em;
}
footer[role="contentinfo"] .footer-info a {
  color: var(--ed-ink-soft) !important;
}

/* Footer "colophon" 行 - 编辑型签名 */
.footer-colophon {
  font-family: var(--ed-font-mono);
  font-size: 11px;
  color: var(--ed-mute);
  letter-spacing: 0.05em;
  line-height: 1.9;
  padding-top: 24px;
  margin-top: 24px;
  border-top: 1px solid var(--ed-rule);
}
.footer-colophon strong { color: var(--ed-ink); font-weight: 500; }
.footer-colophon dt {
  display: inline-block;
  min-width: 130px;
  color: var(--ed-mute);
}
.footer-colophon dd { display: inline; margin: 0; color: var(--ed-ink-soft); }
.footer-colophon dd::after { content: '\A'; white-space: pre; }

/* ─── 19. 搜索 dialog - 编辑型 ────────────────────────────── */
dialog#site-search form {
  background: var(--ed-bg-card) !important;
  border: 2px solid var(--ed-ink) !important;
  border-radius: 0 !important;
  box-shadow: 8px 8px 0 var(--ed-signal) !important;
}
dialog#site-search input[type="search"] {
  font-family: var(--ed-font-display) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--ed-ink) !important;
}
dialog#site-search input[type="search"]::placeholder { color: var(--ed-mute); font-weight: 400; }

/* ─── 20. Mobile drawer - 编辑型 ──────────────────────────── */
aside#mobile-drawer {
  background: var(--ed-bg) !important;
  border-left: 2px solid var(--ed-ink) !important;
  border-radius: 0 !important;
}
aside#mobile-drawer nav a {
  font-family: var(--ed-font-mono) !important;
  border-bottom: 1px solid var(--ed-rule);
  border-radius: 0 !important;
}
aside#mobile-drawer nav a:hover {
  background: var(--ed-signal-soft) !important;
  color: var(--ed-signal-ink) !important;
}

/* ─── 21. 分类/标签/搜索/归档 hero ─────────────────────────── */
section.border-b > .page-shell h1 {
  color: var(--ed-ink) !important;
}
section.border-b > .page-shell p.text-xs.uppercase {
  font-family: var(--ed-font-mono) !important;
  color: var(--ed-signal) !important;
  letter-spacing: 0.12em !important;
}
section.border-b > .page-shell p.text-lg {
  color: var(--ed-ink-soft) !important;
  font-size: 18px !important;
  max-width: 70ch !important;
}

/* ─── 22. 评论区 - 编辑型 ──────────────────────────────────── */
section[id="comments"] textarea,
section[id="comments"] input[type="text"],
section[id="comments"] input[type="email"],
section[id="comments"] input[type="url"] {
  border: 1px solid var(--ed-rule) !important;
  border-radius: 0 !important;
  background: var(--ed-bg-card) !important;
  font-family: var(--ed-font-body) !important;
}
section[id="comments"] textarea:focus,
section[id="comments"] input:focus {
  border-color: var(--ed-signal) !important;
  outline: none !important;
}
section[id="comments"] button[type="submit"],
section[id="comments"] .submit input[type="submit"],
section[id="comments"] .submit button {
  background: var(--ed-ink) !important;
  color: var(--ed-bg) !important;
  border: 2px solid var(--ed-ink) !important;
  border-radius: 0 !important;
  font-family: var(--ed-font-mono) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  font-size: 12px !important;
  padding: 12px 24px !important;
  font-weight: 500 !important;
  transition: all var(--ed-dur-fast) var(--ed-ease-out) !important;
}
section[id="comments"] button[type="submit"]:hover,
section[id="comments"] .submit input[type="submit"]:hover {
  background: var(--ed-signal) !important;
  border-color: var(--ed-signal) !important;
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ed-ink) !important;
}

/* ─── 23. 按钮 (.btn-primary) - 编辑型印章 ────────────────── */
.btn-primary, .btn {
  font-family: var(--ed-font-mono) !important;
  border-radius: 0 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  transition: all var(--ed-dur-fast) var(--ed-ease-out) !important;
}
.btn-primary {
  background: var(--ed-ink) !important;
  color: var(--ed-bg) !important;
  border: 2px solid var(--ed-ink) !important;
}
.btn-primary:hover {
  background: var(--ed-signal) !important;
  border-color: var(--ed-signal) !important;
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ed-ink) !important;
}

/* ─── 24. 归档 (archives.php) - 倒排索引视觉 ───────────────── */
.inv-index { font-family: var(--ed-font-mono); }
.inv-index .iv-section {
  margin-bottom: 48px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--ed-rule);
}
.inv-index .iv-term {
  font-family: var(--ed-font-display);
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 900;
  color: var(--ed-ink);
  letter-spacing: -0.02em;
  margin-bottom: 4px;
  display: flex;
  align-items: baseline;
  gap: 14px;
}
.inv-index .iv-count {
  font-family: var(--ed-font-mono);
  font-size: 14px;
  font-weight: 400;
  color: var(--ed-signal);
  background: var(--ed-signal-soft);
  padding: 2px 10px;
  letter-spacing: 0.05em;
}
.inv-index .iv-list { list-style: none; padding: 0; margin: 20px 0 0; }
.inv-index .iv-list li {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 16px;
  padding: 6px 0;
  font-size: 14px;
  align-items: baseline;
  border-bottom: 1px dotted var(--ed-rule);
}
.inv-index .iv-list a {
  color: var(--ed-ink) !important;
  text-decoration: none;
  font-family: var(--ed-font-mono);
  word-break: break-all;
}
.inv-index .iv-list a:hover { color: var(--ed-signal) !important; }
.inv-index .iv-list .iv-date,
.inv-index .iv-list .iv-rt { color: var(--ed-mute); font-size: 12px; white-space: nowrap; }

/* ─── 25. Knowledge Graph (关于页) ─────────────────────────── */
.knowledge-graph { display: block; width: 100%; max-width: 900px; margin: 32px auto; height: auto; }
.knowledge-graph .node circle { fill: var(--ed-bg-card); stroke: var(--ed-ink); stroke-width: 1.5; transition: opacity .2s; }
.knowledge-graph .node--center circle { fill: var(--ed-signal); stroke: var(--ed-ink); stroke-width: 2.5; }
.knowledge-graph .node text {
  font-family: var(--ed-font-display); font-size: 15px; font-weight: 700;
  fill: var(--ed-ink); text-anchor: middle;
}
.knowledge-graph .node--center text { fill: var(--ed-bg); }
.knowledge-graph .node-type {
  font-family: var(--ed-font-mono); font-size: 10px;
  fill: var(--ed-mute); letter-spacing: 0.05em; text-anchor: middle;
}
.knowledge-graph .edges line { stroke: var(--ed-rule-strong); stroke-width: 1; opacity: 0.6; }
.knowledge-graph .node { cursor: pointer; transition: opacity .2s; }
.knowledge-graph:hover .node:not(:hover) { opacity: .35; }

/* ─── 26. 通用 - 选中文本 ─────────────────────────────────── */
::selection { background: var(--ed-signal); color: var(--ed-bg); }
[data-theme=dark] ::selection { background: var(--ed-signal); color: var(--ed-bg); }

/* ─── 27. 焦点环 ───────────────────────────────────────────── */
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--ed-signal) !important;
  outline-offset: 2px !important;
  border-radius: 0 !important;
}

/* ─── 28. 暗模式微调 ──────────────────────────────────────── */
[data-theme=dark] body {
  background: var(--ed-bg) !important;
  color: var(--ed-ink) !important;
}
[data-theme=dark] header[role="banner"] {
  background: var(--ed-bg) !important;
  border-bottom-color: var(--ed-rule-strong) !important;
}
[data-theme=dark] header .site-title { color: var(--ed-ink) !important; }
[data-theme=dark] .prose-article h2 { color: var(--ed-ink) !important; }
[data-theme=dark] section[aria-label="文章列表"] article h2 a { color: var(--ed-ink) !important; }
[data-theme=dark] section[aria-label="文章列表"] article h2 a:hover { color: var(--ed-signal) !important; }
[data-theme=dark] section[aria-label="相关文章"] {
  background: var(--ed-bg) !important;
  border-top-color: var(--ed-ink-soft) !important;
}
[data-theme=dark] section[aria-label="相关文章"] ul a {
  background: var(--ed-bg-card) !important;
}
[data-theme=dark] footer[role="contentinfo"] {
  background: var(--ed-bg) !important;
}

/* ─── 29. Reduced Motion ──────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .hero-arrow:hover { transform: none !important; }
  .pill:hover, .btn-primary:hover, button:hover { transform: none !important; }
}

/* ─── 30. 打印样式 - 真正可读的纸质版 ─────────────────────── */
@media print {
  header[role="banner"], footer[role="contentinfo"],
  .hero-slideshow, .hero-arrow, .hero-dot,
  section[aria-label="分享文章"], section[aria-label="文章导航"],
  section[aria-label="相关文章"], aside, .page-side,
  #reading-progress, dialog, #wechat-share-modal {
    display: none !important;
  }
  body { background: white !important; color: black !important; font-size: 11pt; }
  .prose-article { max-width: none; font-size: 11pt; line-height: 1.55; }
  .prose-article h1, .prose-article h2, .prose-article h3 { color: black !important; page-break-after: avoid; }
  .prose-article a { color: black !important; text-decoration: underline; }
  .prose-article a[href]::after { content: ' (' attr(href) ')'; font-size: 9pt; color: #555; }
  .resp-headers { display: none !important; }
}

/* ─── 31. 大屏 (≥1536px) - 极限呼吸 ────────────────────────── */
@media (min-width: 1536px) {
  .page-shell { padding-left: 96px; padding-right: 96px; }
  .prose-article { font-size: 19px; line-height: 1.95; }
  .post-h1, h1.post-h1 { font-size: 72px !important; }
}

/* ============================================================
 * EDITORIAL v3.1 — User-requested polish (2026-05-18)
 *   Fix:  hero first-slide invisible white text on bone bg
 *         HSL color tag cloud → mono editorial
 *         sidebar full editorial redesign
 *   New:  knowledge graph styles, kbd palette skin, view-transitions
 * ============================================================ */

/* ─── 32. Hero 第一张 (默认文字版) — 按钮/CTA 在 bone bg 上可见 ───── */
/* 原 PHP 用 Tailwind text-white / text-zinc-200 / bg-white-* 是为深色 hero 设计,
   编辑型 bone bg 下会"白底白字"。这里强制 ink 色系。 */
.hero-slideshow .hero-slide[data-slide-index="0"] .btn,
.hero-slideshow .hero-slide[data-slide-index="0"] a.btn,
.hero-slideshow .hero-slide[data-slide-index="0"] a[class*="text-white"],
.hero-slideshow .hero-slide[data-slide-index="0"] a[class*="text-zinc-200"] {
  color: var(--ed-bg) !important;
  background: var(--ed-ink) !important;
  border: 2px solid var(--ed-ink) !important;
  border-radius: 0 !important;
  font-family: var(--ed-font-mono) !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  text-decoration: none !important;
  transition: all var(--ed-dur-fast) var(--ed-ease-out) !important;
}
.hero-slideshow .hero-slide[data-slide-index="0"] .btn:hover,
.hero-slideshow .hero-slide[data-slide-index="0"] a.btn:hover,
.hero-slideshow .hero-slide[data-slide-index="0"] a[class*="text-white"]:hover,
.hero-slideshow .hero-slide[data-slide-index="0"] a[class*="text-zinc-200"]:hover {
  background: var(--ed-signal) !important;
  border-color: var(--ed-signal) !important;
  color: var(--ed-bg) !important;
  box-shadow: 4px 4px 0 var(--ed-ink) !important;
}
/* 第二个/第三个按钮 (.btn 非 primary) — 改成"次级 outline" 风,与主按钮分层 */
.hero-slideshow .hero-slide[data-slide-index="0"] a.btn:not(.btn-primary) {
  background: transparent !important;
  color: var(--ed-ink) !important;
  border: 2px solid var(--ed-ink) !important;
}
.hero-slideshow .hero-slide[data-slide-index="0"] a.btn:not(.btn-primary):hover {
  background: var(--ed-ink) !important;
  color: var(--ed-bg) !important;
  border-color: var(--ed-ink) !important;
}

/* ─── 33. v2-tag HSL 彩色标签云 → 编辑型 mono 单色 ──────────── */
/* 原 sidebar.php 用 hsl(var(--h),...) 每个标签独立色相,违背编辑型单一信号色原则 */
.v2-tag,
aside .v2-tag,
[class*="tag-cloud"] a.v2-tag {
  color: var(--ed-ink-soft) !important;
  font-family: var(--ed-font-mono) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  border: 1px solid var(--ed-rule) !important;
  border-radius: 0 !important;
  padding: 4px 10px !important;
  margin: 0 !important;
  background: transparent !important;
  text-decoration: none !important;
  transition: all var(--ed-dur-fast) var(--ed-ease-out) !important;
  text-transform: none !important;
}
.v2-tag::before { content: '#'; color: var(--ed-mute); margin-right: 2px; }
.v2-tag:hover {
  color: var(--ed-signal) !important;
  border-color: var(--ed-signal) !important;
  background: var(--ed-signal-soft) !important;
}
[data-theme=dark] .v2-tag {
  color: var(--ed-ink-soft) !important;
  border-color: var(--ed-rule) !important;
}
[data-theme=dark] .v2-tag:hover {
  color: var(--ed-signal) !important;
  border-color: var(--ed-signal) !important;
  background: var(--ed-signal-soft) !important;
}

/* ─── 34. SIDEBAR 全套重设计 (编辑型) ─────────────────────── */
aside[role="complementary"] {
  font-size: 14px;
  color: var(--ed-ink-soft);
}
/* 所有 section 卡片:无圆角无阴影,仅顶部 1px hairline + 朱红 cap */
aside[role="complementary"] section {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin-bottom: 36px !important;
  position: relative;
}
aside[role="complementary"] section::before {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: var(--ed-signal);
  margin-bottom: 14px;
}
/* 各 section 标题改 mono UPPERCASE */
aside[role="complementary"] section > .text-base.font-bold,
aside[role="complementary"] .flex.items-center.justify-between > .text-base.font-bold {
  font-family: var(--ed-font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ed-mute) !important;
  font-weight: 500 !important;
  margin-bottom: 16px !important;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ed-rule);
  display: flex; align-items: center; gap: 8px;
}
/* 隐藏标题旁的彩色小 SVG icon (与 mono 风格冲突) */
aside[role="complementary"] section > .text-base.font-bold > span:first-child,
aside[role="complementary"] .flex.items-center.justify-between > .text-base.font-bold > span:first-child {
  display: none !important;
}
/* ">>更多" 链接 - mono */
aside[role="complementary"] section a[title*="更多"],
aside[role="complementary"] section a[title*="动态"] {
  font-family: var(--ed-font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  color: var(--ed-mute) !important;
}
aside[role="complementary"] section a[title*="更多"]:hover {
  color: var(--ed-signal) !important;
}

/* —— 博主信息卡 v3.2:用真实 DOM 元素 .ed-card-tag,不再依赖 ::before —— */
aside[role="complementary"] .author-card-bg,
aside[role="complementary"] .ed-author-card {
  background: var(--ed-bg-card) !important;
  background-color: var(--ed-bg-card) !important;
  background-image: none !important;
  background-repeat: no-repeat !important;
  border: 1px solid var(--ed-rule-strong) !important;
  border-left: 1px solid var(--ed-rule-strong) !important;
  border-right: 1px solid var(--ed-rule-strong) !important;
  border-top: 1px solid var(--ed-rule-strong) !important;
  border-bottom: 1px solid var(--ed-rule-strong) !important;
  border-radius: 0 !important;
  padding: 32px 24px 24px !important;
  text-align: left !important;
  position: relative !important;
  margin-bottom: 36px !important;
  overflow: visible !important;
  display: block !important;
}
/* 清除原 section::before 的 32px 红条 (避免与 ed-card-tag 撞) */
aside[role="complementary"] .author-card-bg::before,
aside[role="complementary"] .ed-author-card::before { display: none !important; content: none !important; }
aside[role="complementary"] .author-card-bg::after,
aside[role="complementary"] .ed-author-card::after  { display: none !important; content: none !important; }

/* [ PERSON ] 印章:真实 DOM,绝对定位左上 (现在可控) */
.ed-card-tag {
  position: absolute;
  top: 0; left: 0;
  display: inline-block;
  padding: 5px 10px 4px;
  background: var(--ed-signal);
  color: var(--ed-bg);
  font-family: var(--ed-font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  line-height: 1;
  border: 0;
  z-index: 2;
  pointer-events: none;
}

/* 头像:88x88 方形,无边框无光晕 */
aside[role="complementary"] .author-card-bg img.site-logo,
aside[role="complementary"] .ed-author-card img.site-logo {
  width: 88px !important;
  height: 88px !important;
  margin: 12px 0 18px !important;
  display: block !important;
  border-radius: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  animation: none !important;
  object-fit: cover !important;
  background: var(--ed-bg-sub) !important;
}
aside[role="complementary"] .author-card-bg .font-extrabold,
aside[role="complementary"] .ed-author-card .font-extrabold {
  font-family: var(--ed-font-display) !important;
  font-weight: 900 !important;
  font-size: 24px !important;
  line-height: 1.15 !important;
  letter-spacing: -0.02em !important;
  color: var(--ed-ink) !important;
  margin: 0 0 16px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--ed-rule) !important;
}
aside[role="complementary"] .author-card-bg dl,
aside[role="complementary"] .ed-author-card dl {
  margin: 0 !important;
  padding: 0 !important;
}
aside[role="complementary"] .author-card-bg dl {
  font-family: var(--ed-font-mono) !important;
  font-size: 12px !important;
  line-height: 1.85 !important;
}
aside[role="complementary"] .author-card-bg dl > div {
  gap: 8px !important;
}
aside[role="complementary"] .author-card-bg dt {
  color: var(--ed-mute) !important;
  font-weight: 400 !important;
  min-width: 38px !important;
  font-family: var(--ed-font-mono) !important;
}
aside[role="complementary"] .author-card-bg dd {
  color: var(--ed-ink) !important;
  font-weight: 500 !important;
  font-family: var(--ed-font-mono) !important;
}
aside[role="complementary"] .author-card-bg a[title*="了解更多"],
aside[role="complementary"] .ed-author-card a[title*="了解更多"] {
  display: inline-block !important;
  margin: 18px 0 0 !important;
  padding: 8px 14px !important;
  font-family: var(--ed-font-mono) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--ed-bg) !important;
  background: var(--ed-ink) !important;
  border: 1px solid var(--ed-ink) !important;
  text-decoration: none !important;
  transition: all var(--ed-dur-fast) var(--ed-ease-out);
}
aside[role="complementary"] .author-card-bg a[title*="了解更多"]:hover {
  background: var(--ed-signal) !important;
  border-color: var(--ed-signal) !important;
  color: var(--ed-bg) !important;
  text-decoration: none !important;
}

/* —— 保哥动态 (Gallery list) —— */
aside[role="complementary"] section[aria-label="保哥动态"] ul li a {
  padding: 12px 0 !important;
  border-top: 1px solid var(--ed-rule);
  display: flex !important;
  gap: 12px !important;
}
aside[role="complementary"] section[aria-label="保哥动态"] ul li:first-child a { border-top: none; padding-top: 0; }
aside[role="complementary"] section[aria-label="保哥动态"] ul li a > div:first-child {
  width: 76px !important;
  flex-shrink: 0 !important;
  border-radius: 0 !important;
  border: 1px solid var(--ed-rule);
  background: var(--ed-bg-sub) !important;
}
aside[role="complementary"] section[aria-label="保哥动态"] ul li a > div:first-child img {
  border-radius: 0 !important;
  transition: opacity var(--ed-dur-base);
}
aside[role="complementary"] section[aria-label="保哥动态"] ul li a:hover > div:first-child img {
  opacity: 0.85;
  transform: none !important;
}
aside[role="complementary"] section[aria-label="保哥动态"] ul li a > div:last-child .text-sm {
  font-family: var(--ed-font-body) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: var(--ed-ink) !important;
  font-weight: 500 !important;
}
aside[role="complementary"] section[aria-label="保哥动态"] ul li a:hover > div:last-child .text-sm {
  color: var(--ed-signal) !important;
}
aside[role="complementary"] section[aria-label="保哥动态"] ul li a time {
  font-family: var(--ed-font-mono) !important;
  font-size: 11px !important;
  color: var(--ed-mute) !important;
  letter-spacing: 0.04em;
}

/* —— TOC 目录 —— */
aside[role="complementary"] nav#toc-nav {
  background: var(--ed-bg-card) !important;
  border: 1px solid var(--ed-rule-strong) !important;
  border-radius: 0 !important;
  padding: 20px !important;
  position: sticky;
  top: 96px;
}
aside[role="complementary"] nav#toc-nav > .text-base.font-bold {
  font-family: var(--ed-font-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ed-mute) !important;
  border-bottom: 1px solid var(--ed-rule);
  padding-bottom: 8px;
  margin-bottom: 12px !important;
}
aside[role="complementary"] nav#toc-nav ol li,
aside[role="complementary"] nav#toc-nav ol li a {
  font-family: var(--ed-font-body) !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: var(--ed-ink-soft) !important;
  text-decoration: none !important;
  padding-left: 10px;
  border-left: 2px solid transparent;
  transition: all var(--ed-dur-fast);
}
aside[role="complementary"] nav#toc-nav ol li a:hover,
aside[role="complementary"] nav#toc-nav ol li a.is-active {
  color: var(--ed-signal) !important;
  border-left-color: var(--ed-signal);
}
aside[role="complementary"] nav#toc-nav ol li.toc-h3 a { padding-left: 20px; font-size: 12px; }

/* —— 最新文章 + 最新评论 —— */
aside[role="complementary"] section[aria-label="最新文章"] ul li,
aside[role="complementary"] section[aria-label="最新评论"] ul li {
  padding: 12px 0 !important;
  border-top: 1px solid var(--ed-rule);
}
aside[role="complementary"] section[aria-label="最新文章"] ul li:first-child,
aside[role="complementary"] section[aria-label="最新评论"] ul li:first-child {
  border-top: none; padding-top: 0;
}
aside[role="complementary"] section[aria-label="最新文章"] ul a .text-sm,
aside[role="complementary"] section[aria-label="最新文章"] ul a .text-sm.font-medium {
  font-family: var(--ed-font-body) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  color: var(--ed-ink) !important;
  margin-bottom: 6px !important;
}
aside[role="complementary"] section[aria-label="最新文章"] ul a:hover .text-sm {
  color: var(--ed-signal) !important;
}
aside[role="complementary"] section[aria-label="最新文章"] time,
aside[role="complementary"] section[aria-label="最新评论"] time {
  font-family: var(--ed-font-mono) !important;
  font-size: 11px !important;
  color: var(--ed-mute) !important;
  letter-spacing: 0.04em;
}
aside[role="complementary"] section[aria-label="最新评论"] a p .font-medium {
  color: var(--ed-signal) !important;
  font-family: var(--ed-font-mono) !important;
  font-size: 12px;
}
aside[role="complementary"] section[aria-label="最新评论"] a p {
  color: var(--ed-ink-soft) !important;
  font-size: 13px;
  line-height: 1.55;
}

/* —— 标签 section (内含 v2-tag) —— */
aside[role="complementary"] section[aria-label="标签"] .flex.flex-wrap {
  gap: 6px !important;
}

/* —— Sticky 行为微调 —— */
aside[role="complementary"].lg\:sticky {
  align-self: start !important;
}

/* ─── 35. Knowledge Graph (about page) ────────────────────── */
.knowledge-graph-wrap {
  margin: 48px 0;
  padding: 32px;
  border: 1px solid var(--ed-rule-strong);
  background: var(--ed-bg-card);
  position: relative;
}
.knowledge-graph-wrap::before {
  content: '[ ENTITY GRAPH · Person → Affiliations ]';
  position: absolute;
  top: -10px; left: 16px;
  padding: 2px 8px;
  background: var(--ed-bg);
  font-family: var(--ed-font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--ed-signal);
  border: 1px solid var(--ed-signal);
}

/* ─── 36. ⌘K 命令面板 ──────────────────────────────────────── */
dialog#cmdk-palette {
  background: transparent;
  border: none;
  padding: 0;
  max-width: 640px;
  width: 92vw;
  margin: 96px auto auto;
}
dialog#cmdk-palette::backdrop {
  background: rgba(11, 11, 14, 0.55);
  backdrop-filter: blur(6px);
}
.cmdk-shell {
  background: var(--ed-bg);
  border: 2px solid var(--ed-ink);
  box-shadow: 12px 12px 0 var(--ed-signal);
  position: relative;
}
.cmdk-input-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--ed-rule);
}
.cmdk-input-row::before {
  content: '⌘ K';
  font-family: var(--ed-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--ed-signal);
  background: var(--ed-signal-soft);
  padding: 4px 8px;
  border: 1px solid var(--ed-signal);
}
.cmdk-input {
  flex: 1;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  font-family: var(--ed-font-display) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--ed-ink) !important;
  padding: 0 !important;
}
.cmdk-input::placeholder { color: var(--ed-mute); font-weight: 400; }
.cmdk-hint {
  font-family: var(--ed-font-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ed-mute);
}
.cmdk-results {
  list-style: none;
  padding: 8px 0;
  margin: 0;
  max-height: 60vh;
  overflow-y: auto;
}
.cmdk-results li {
  padding: 0;
}
.cmdk-results li a,
.cmdk-results li button {
  display: flex; align-items: center; gap: 12px;
  width: 100%;
  padding: 10px 22px;
  background: transparent;
  border: none;
  text-decoration: none;
  color: var(--ed-ink);
  font-family: var(--ed-font-mono);
  font-size: 14px;
  cursor: pointer;
  text-align: left;
}
.cmdk-results li.is-active a,
.cmdk-results li.is-active button,
.cmdk-results li a:hover,
.cmdk-results li button:hover {
  background: var(--ed-signal-soft);
  color: var(--ed-signal-ink);
}
.cmdk-results .cmdk-cat {
  font-family: var(--ed-font-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ed-mute);
  padding: 14px 22px 6px;
  border-top: 1px solid var(--ed-rule);
  margin-top: 4px;
}
.cmdk-results .cmdk-cat:first-child { border-top: none; margin-top: 0; }
.cmdk-results .cmdk-meta {
  margin-left: auto;
  font-size: 11px;
  color: var(--ed-mute);
}
.cmdk-footer {
  display: flex; gap: 16px;
  padding: 10px 22px;
  border-top: 1px solid var(--ed-rule);
  font-family: var(--ed-font-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--ed-mute);
  background: var(--ed-bg-sub);
}
.cmdk-footer kbd {
  display: inline-block;
  padding: 2px 6px;
  border: 1px solid var(--ed-rule);
  border-bottom-width: 2px;
  background: var(--ed-bg);
  font-family: var(--ed-font-mono);
  font-size: 10px;
  color: var(--ed-ink);
  margin-right: 4px;
}
[data-theme=dark] dialog#cmdk-palette::backdrop {
  background: rgba(0, 0, 0, 0.75);
}

/* ─── 37. View Transitions ───────────────────────────────── */
@supports (view-transition-name: none) {
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation-duration: 240ms;
    animation-timing-function: var(--ed-ease-out);
  }
}

/* ─── 38. 暗模式收尾 (新增组件) ────────────────────────────── */
[data-theme=dark] aside[role="complementary"] .author-card-bg {
  background: var(--ed-bg-sub) !important;
}
[data-theme=dark] aside[role="complementary"] nav#toc-nav {
  background: var(--ed-bg-sub) !important;
}
[data-theme=dark] .cmdk-shell {
  background: var(--ed-bg-sub);
  border-color: var(--ed-ink);
  box-shadow: 12px 12px 0 var(--ed-signal);
}

/* end editorial.css */
