/* ==========================================================================
   推文平台 · 长文阅读样式（依赖 tokens.css / components.css）
   --------------------------------------------------------------------------
   针对中文长文阅读优化：行宽 720px（单行约 35–40 字，中文最佳阅读区间）、
   字号 17px、行高 1.85（比常规正文 1.75 更松，长文不累眼）。
   ========================================================================== */

/* ===== 站点头部 ===== */
.site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-nav);
  background: color-mix(in srgb, var(--color-bg) 88%, transparent);
  backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--color-border);
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  min-height: 60px;
}
.site-brand {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--color-text);
}
.site-brand:hover { color: var(--color-text); text-decoration: none; }
.site-brand__sub {
  font-size: var(--fs-xs);
  font-weight: var(--fw-normal);
  color: var(--color-text-muted);
  padding-left: var(--sp-2);
  margin-left: var(--sp-2);
  border-left: 1px solid var(--color-border);
}

/* ===== 首页 Hero（列表页） ===== */
.masthead {
  padding-block: clamp(40px, 6vw, 72px);
  border-bottom: 1px solid var(--color-border);
  background: radial-gradient(900px 300px at 20% -20%, var(--color-brand-soft), transparent 70%);
}
.masthead h1 { font-size: var(--fs-3xl); margin-bottom: var(--sp-3); }
.masthead p {
  color: var(--color-text-muted);
  font-size: var(--fs-md);
  max-width: 640px;
}
.masthead__stats {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-6);
  margin-top: var(--sp-6);
}
.masthead__stat b {
  display: block;
  font-size: var(--fs-xl);
  color: var(--color-brand);
  line-height: 1.2;
}
.masthead__stat span { font-size: var(--fs-sm); color: var(--color-text-muted); }

/* ===== 筛选栏 ===== */
.filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin-bottom: var(--sp-6);
}
.filter-chip {
  padding: 6px 14px;
  font-size: var(--fs-sm);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--r-full);
  background: var(--color-surface);
  color: var(--color-text-muted);
  cursor: pointer;
  transition: all var(--t-fast) var(--ease);
  font-family: inherit;
}
.filter-chip:hover { border-color: var(--color-brand); color: var(--color-brand); }
.filter-chip.is-active {
  background: var(--color-brand);
  border-color: var(--color-brand);
  color: var(--color-on-brand);
}

/* ===== 文章卡片（列表页） ===== */
.post-list { display: grid; gap: var(--sp-5); }

.post-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-lg);
  padding: var(--sp-5);
  cursor: pointer;
  transition: box-shadow var(--t-base) var(--ease),
              border-color var(--t-base) var(--ease),
              transform var(--t-base) var(--ease);
}
.post-card:hover {
  box-shadow: var(--sh-md);
  border-color: var(--color-border-strong);
  transform: translateY(-2px);
}
/* 整卡可点击：让 h2 里的 <a> 覆盖卡片（键盘可达，鼠标点击区更大） */
.post-card__title {
  font-size: var(--fs-lg);
  margin-bottom: var(--sp-2);
  line-height: var(--lh-snug);
}
.post-card__title a { color: var(--color-text); }
.post-card:hover .post-card__title a { color: var(--color-brand); text-decoration: none; }
.post-card__title a::after {
  content: "";
  position: absolute;
  inset: 0;
}
.post-card { position: relative; }

.post-card__summary {
  color: var(--color-text-muted);
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
  margin-bottom: var(--sp-4);
}

.post-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3);
  font-size: var(--fs-xs);
  /* 用 muted 而非 faint：日期/时长承载信息，faint 对比度仅 2.8:1 不达 AA */
  color: var(--color-text-muted);
}
.post-meta__sep { opacity: .5; }

/* 深度徽标：三档配色 */
.depth {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: var(--r-full);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  white-space: nowrap;
}
.depth--brief    { background: var(--color-info-soft);    color: var(--color-info); }
.depth--standard { background: var(--color-success-soft); color: var(--color-success); }
.depth--deep     { background: var(--color-warning-soft); color: var(--color-warning); }

/* ===== 文章详情页 ===== */
.article { padding-block: var(--sp-7) var(--sp-9); }

.article__head { margin-bottom: var(--sp-7); }
.article__title {
  font-size: var(--fs-3xl);
  line-height: 1.3;
  margin-bottom: var(--sp-4);
}
.article__summary {
  font-size: var(--fs-md);
  color: var(--color-text-muted);
  line-height: var(--lh-normal);
  padding-left: var(--sp-4);
  border-left: 3px solid var(--color-border);
}

/* 返回链接 */
.back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  margin-bottom: var(--sp-5);
}
.back-link:hover { color: var(--color-brand); text-decoration: none; }

/* ===== 正文排版（核心） ===== */
.article-body {
  max-width: 720px;
  font-size: 17px;          /* 长文正文基准，比常规 16px 略大 */
  line-height: 1.85;
  color: var(--color-text);
}
.article-body > * + * { margin-top: 1.3em; }

.article-body h2 {
  font-size: 21px;
  font-weight: var(--fw-bold);
  line-height: 1.4;
  margin-top: 2.2em;
  margin-bottom: .9em;
  padding-left: 12px;
  border-left: 3px solid var(--color-brand);
}
/* 正文首个 h2 是文章大标题，去掉左侧装饰条 */
.article-body h2:first-child {
  border-left: 0;
  padding-left: 0;
  font-size: var(--fs-2xl);
  margin-top: 0;
}

.article-body h3 {
  font-size: 18px;
  margin-top: 1.8em;
  margin-bottom: .7em;
}

.article-body p { margin: 0 0 1.3em; }
.article-body p:last-child { margin-bottom: 0; }

.article-body strong { font-weight: var(--fw-semibold); color: var(--color-text); }

.article-body ul,
.article-body ol {
  padding-left: 1.4em;
  margin: 0 0 1.3em;
}
.article-body li { margin-bottom: .6em; }
.article-body li::marker { color: var(--color-brand); }

/* CTA 引用块：公众号转化钩子，视觉上要跳出来 */
.article-body blockquote {
  margin: 2em 0;
  padding: var(--sp-4) var(--sp-5);
  background: var(--color-brand-soft);
  border-left: 4px solid var(--color-brand);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-text);
}
.article-body blockquote p { margin-bottom: .8em; }
.article-body blockquote p:last-child { margin-bottom: 0; }

.article-body hr {
  margin: 2.5em 0;
  border: 0;
  border-top: 1px solid var(--color-border);
}

/* ===== 目录（长文自动生成） ===== */
.toc {
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--r-lg);
  padding: var(--sp-4) var(--sp-5);
  margin-bottom: var(--sp-7);
  max-width: 720px;
}
.toc__title {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--color-text-muted);
  margin-bottom: var(--sp-3);
}
.toc ol {
  margin: 0;
  padding-left: 1.2em;
  font-size: var(--fs-sm);
  columns: 2;              /* 两列排布，节省纵向空间 */
  column-gap: var(--sp-6);
}
.toc li { margin-bottom: .5em; break-inside: avoid; }
.toc a { color: var(--color-text-muted); }
.toc a:hover { color: var(--color-brand); }
@media (max-width: 640px) {
  .toc ol { columns: 1; }
}

/* ===== 文末导航 ===== */
.article__nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-4);
  justify-content: space-between;
  margin-top: var(--sp-9);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--color-border);
  max-width: 720px;
}
.article__nav a {
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  max-width: 45%;
}
.article__nav a:hover { color: var(--color-brand); }

/* ===== 空状态 ===== */
.empty {
  text-align: center;
  padding: var(--sp-9) var(--sp-5);
  color: var(--color-text-muted);
}

/* ===== 页脚 ===== */
.site-footer {
  border-top: 1px solid var(--color-border);
  padding-block: var(--sp-6);
  font-size: var(--fs-xs);
  color: var(--color-text-muted);
}
.site-footer a { color: var(--color-text-muted); }

@media (max-width: 640px) {
  .article-body { font-size: 16px; line-height: 1.8; }
  .article-body h2 { font-size: 19px; }
  .masthead__stats { gap: var(--sp-5); }
}
