/* Tension ink-curtain — ported from Open Design assets_blog.css. Design authority. Do not re-enqueue Hellas page CSS. Tokens live in tokens.css; port strips source :root blocks. */

/* ───────────────────────────────────────────────────────────────
   墨帷 Ink Curtain — crayonxiaoxin
   见 brand-spec.lc-md。令牌只在本块定义，其余位置一律 var()。
   ─────────────────────────────────────────────────────────────── */

/* ─── base ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background-color: var(--lc-background);
  color: var(--lc-on-surface);
  font-family: var(--lc-font-body);
  font-size: var(--lc-fs-body);
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
p { margin: 0; text-wrap: pretty; }
h1, h2, h3, h4 { margin: 0; text-wrap: balance; font-weight: 600; }
ul, ol { margin: 0; padding: 0; list-style: none; }
hr { border: 0; border-top: 1px solid var(--lc-card-border); margin: 0; }

:focus-visible {
  outline: 2px solid var(--lc-primary);
  outline-offset: 3px;
  border-radius: var(--lc-radius-sm);
}

::selection { background: var(--lc-accent-soft); }

.lc-skip-link {
  position: fixed; top: 10px; left: 10px; z-index: 200;
  transform: translateY(-200%);
  background: var(--lc-on-surface); color: var(--lc-background);
  padding: 10px 16px; border-radius: var(--lc-radius-sm);
  font-size: 13px;
}
.lc-skip-link:focus { transform: none; }

/* width:100%：main 为 column flex 时，单靠 margin-inline:auto 会 shrink-to-fit，友链等窄内容页会被收成 ~860px */
.lc-wrap {
  width: 100%;
  max-width: var(--lc-container-max);
  margin-inline: auto;
  padding-inline: var(--lc-gutter);
}
.lc-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* 贯通骑缝线：仅 .lc-wrap--spine 启用（首页/归档/项目/友链/关于）
   留言、文章详情等密集内容页不画整页竖线，改由各 .lc-ruled 自描一段
   底边距必须放在 wrap 内（padding），不能放 main：否则竖线在 wrap 底断开、footer 上方留空带 */
main > .lc-wrap--spine {
  position: relative;
  flex: 1 1 auto;
  width: 100%;
  padding-bottom: clamp(48px, 8vw, 88px);
}
main > .lc-wrap--spine::before {
  content: '';
  position: absolute;
  left: calc(var(--lc-gutter) + var(--lc-rail));
  top: 0; bottom: 0;
  width: 1px;
  background: var(--lc-card-border);
  pointer-events: none;
  z-index: 0;
}
main > .lc-wrap--spine > * { position: relative; z-index: 1; }
main > .lc-wrap--spine .lc-ruled::before,
main > .lc-wrap--spine .lc-row::before,
main > .lc-wrap--spine .lc-year::before,
main > .lc-wrap--spine .lc-prow::before { content: none; display: none; }

/* sections 曾给 main 加 padding-bottom，会切断骑缝；骑缝页一律清掉 */
.lc-front-page,
.lc-articles-archive,
.lc-projects-archive,
.lc-guestbook-page,
.lc-contact-page,
.lc-about-page,
.lc-404-page,
.lc-friend-links-page,
.lc-content-page,
.lc-default-content > main#primary {
  padding-bottom: 0;
}
.lc-content-page > .lc-wrap {
  padding-bottom: clamp(48px, 8vw, 88px);
}

/* ─── 字 ───────────────────────────────────────────────────── */
.lc-display { font-family: var(--lc-font-display); font-size: var(--lc-fs-display); line-height: 1.02; letter-spacing: -0.02em; font-weight: 600; }
.lc-h1 { font-family: var(--lc-font-display); font-size: var(--lc-fs-h1); line-height: 1.16; letter-spacing: -0.015em; }
.lc-h2 { font-family: var(--lc-font-display); font-size: var(--lc-fs-h2); line-height: 1.24; letter-spacing: -0.01em; }
.lc-h3 { font-family: var(--lc-font-display); font-size: var(--lc-fs-h3); line-height: 1.4; font-weight: 600; letter-spacing: -0.005em; }
.lc-lead { font-size: var(--lc-fs-lead); line-height: 1.72; color: var(--lc-on-surface-variant); max-width: 54ch; }
.lc-gk {
  font-family: var(--lc-font-mono); font-size: var(--lc-fs-meta);
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--lc-on-surface-variant);
  font-weight: 400;
}
.lc-mono { font-family: var(--lc-font-mono); font-variant-numeric: tabular-nums; }
.lc-dek { color: var(--lc-on-surface-variant); font-size: 14px; line-height: 1.68; }
/* 站名/标题朱砂句号 —— 勿与 sections.css 状态点 .lc-dot 共用类名 */
.lc-accent-dot {
  display: inline;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  background: none;
  border-radius: 0;
  color: var(--lc-primary);
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  vertical-align: baseline;
}

/* ─── 骑缝栏：全站唯一的招牌手法 ───────────────────────────── */
.lc-ruled { position: relative; display: grid; grid-template-columns: var(--lc-rail) minmax(0, 1fr); align-items: start; }
.lc-ruled::before {
  content: ''; position: absolute; left: var(--lc-rail); top: 0; bottom: 0;
  width: 1px; background: var(--lc-card-border);
}
.lc-ruled__mg {
  padding: 0 24px 0 0; text-align: right;
  font-family: var(--lc-font-mono); font-size: var(--lc-fs-meta);
  letter-spacing: 0.08em; color: var(--lc-on-surface-variant);
  font-variant-numeric: tabular-nums;
  line-height: 1.45;
}
.lc-ruled__mg img { display: block; letter-spacing: 0; }
.lc-ruled__bd { padding-left: 30px; min-width: 0; }
.lc-ruled--pad { padding-block: 26px; }

/* 栏外短词与右侧区块标题同一水平线（匹配 .lc-h2 行盒） */
.lc-ruled--head { align-items: center; }
.lc-ruled--head .lc-sec-head {
  align-items: center;
  min-height: calc(var(--lc-fs-h2) * 1.24);
  width: 100%;
}
.lc-ruled--head .lc-sec-head .lc-h2,
.lc-ruled:has(> .lc-ruled__bd > .lc-sec-head:first-child) .lc-sec-head .lc-h2 { line-height: 1.24; }
.lc-ruled--head > .lc-ruled__mg,
.lc-ruled:has(> .lc-ruled__bd > .lc-sec-head:first-child) > .lc-ruled__mg {
  display: flex; align-items: center; justify-content: flex-end;
  min-height: calc(var(--lc-fs-h2) * 1.24);
  line-height: 1;
}

/* ─── 顶栏 ─────────────────────────────────────────────────── */
.lc-nav {
  position: sticky; top: 0; z-index: 60;
  background: color-mix(in oklch, var(--lc-background) 86%, transparent);
  backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid var(--lc-card-border);
}
.lc-nav__bar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 62px; padding-block: 10px;
}
.lc-nav__brand { display: flex; align-items: center; gap: 11px; min-width: 0; flex: none; }
.lc-nav__avatar { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--lc-card-border); background: var(--lc-surface-card); flex: none; }
.lc-nav__name { font-family: var(--lc-font-display); font-size: 19px; font-weight: 600; letter-spacing: -0.01em; white-space: nowrap; }
.lc-nav__host { font-family: var(--lc-font-mono); font-size: 11px; letter-spacing: 0.1em; color: var(--lc-on-surface-variant); padding-top: 3px; flex: none; }
.lc-nav__brand-name { font-family: var(--lc-font-display); font-size: 19px; font-weight: 600; letter-spacing: -0.01em; white-space: nowrap; }
.lc-nav__brand-dot { color: var(--lc-primary); font-style: normal; }
.lc-nav__menu { display: flex; align-items: center; gap: 2px; flex: 1; justify-content: center; min-width: 0; }
.lc-nav__link,
.lc-nav__list > li.menu-item > a,
.lc-nav__list > li.menu-item > .lc-nav__trigger {
  position: relative; display: block; padding: 8px 10px; font-size: 14px; color: var(--lc-on-surface-variant);
  border-radius: var(--lc-radius-sm); border-bottom: 2px solid transparent;
  transition: color .16s ease, background .16s ease; white-space: nowrap;
}
.lc-nav__link:hover,
.lc-nav__list > li.menu-item > a:hover,
.lc-nav__list > li.menu-item > .lc-nav__trigger:hover {
  color: var(--lc-on-surface); background: var(--lc-fg-wash);
}
/* 当前项：墨色底边（勿用朱砂 / text-primary）——覆盖 components .lc-nav__link--current */
.lc-nav__link[aria-current='page'],
.lc-nav__link--current,
.lc-nav__list > li.menu-item > a.lc-nav__link--current,
.lc-nav__list > li.menu-item > .lc-nav__trigger.lc-nav__link--current,
.lc-nav__list > li.menu-item > a.lc-nav__link--current.text-primary {
  color: var(--lc-on-surface); font-weight: 600;
  border-bottom-color: var(--lc-on-surface);
  background: transparent;
}
.lc-nav__link[aria-current='page']::after,
.lc-nav__link--current::after,
.lc-nav__list > li.menu-item > a.lc-nav__link--current::after,
.lc-nav__list > li.menu-item > .lc-nav__trigger.lc-nav__link--current::after {
  content: none; display: none;
}
.lc-nav__tools { display: flex; align-items: center; gap: 6px; flex: none; }

.lc-icon-btn {
  display: grid; place-items: center; width: 36px; height: 36px;
  border: 1px solid transparent; border-radius: var(--lc-radius-sm);
  background: transparent; color: var(--lc-on-surface-variant);
  transition: color .16s ease, background .16s ease;
}
.lc-icon-btn:hover { color: var(--lc-on-surface); background: var(--lc-fg-wash); }
.lc-icon-btn:focus-visible { outline: 2px solid var(--lc-on-surface); outline-offset: 2px; }
.lc-icon-btn svg { width: 18px; height: 18px; }

/* 搜索与主题切换同为纯图标按钮，不再做成带边框的搜索框 */
.lc-nav__search { flex: none; }
.lc-nav__burger { display: none; }

/* 桌面宽屏：露出主机名；中宽仍保留横向导航 */
@media (max-width: 1240px) {
  .lc-nav__host { display: none; }
}
/* 平板起改抽屉：六项导航不再挤在顶栏 */
@media (max-width: 1024px) {
  .lc-nav__menu { display: none; }
  .lc-nav__burger { display: grid; }
  .lc-icon-btn { width: 40px; height: 40px; }
  .lc-nav__bar { min-height: 58px; }
}

/* 太阳 / 月亮 */
.lc-theme-toggle__icons { position: relative; width: 18px; height: 18px; }
.lc-theme-toggle__icons svg { position: absolute; inset: 0; transition: transform .4s cubic-bezier(.4,0,.2,1), opacity .25s ease; }
.lc-theme-toggle__sun { opacity: 1; transform: rotate(0deg); }
.lc-theme-toggle__moon { opacity: 0; transform: rotate(-90deg); }
html[data-lc-color-scheme="dark"] .lc-theme-toggle__sun { opacity: 0; transform: rotate(90deg); }
html[data-lc-color-scheme="dark"] .lc-theme-toggle__moon { opacity: 1; transform: rotate(0deg); }

/* 阅读进度 */
.lc-progress { position: absolute; left: 0; bottom: -1px; height: 2px; width: 0; background: var(--lc-on-surface); transition: width .1s linear; }

/* ─── 按钮 ───────────────────────────────────────────────────
   覆盖 components.css 默认「整颗朱砂实心」；仅 --primary / --ink 填色。 */
.lc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  height: auto; min-height: 44px;
  padding: 11px 20px; border: 1px solid transparent; border-radius: var(--lc-radius-sm);
  font-size: 15px; font-weight: 500; letter-spacing: -0.005em;
  color: var(--lc-on-surface); background: transparent;
  box-shadow: none; text-decoration: none;
  transition: background .16s ease, border-color .16s ease, color .16s ease, transform .06s ease;
}
.lc-btn:hover,
.lc-btn:focus-visible {
  color: var(--lc-on-surface); background: var(--lc-fg-wash);
  border-color: transparent; box-shadow: none; transform: none;
}
.lc-btn:active { transform: translateY(1px); }
.lc-btn svg { width: 16px; height: 16px; }
.lc-btn--primary { background: var(--lc-primary); color: var(--lc-on-primary); border-color: var(--lc-primary); }
.lc-btn--primary:hover,
.lc-btn--primary:focus-visible { background: var(--lc-accent-press); border-color: var(--lc-accent-press); color: var(--lc-on-primary); }
.lc-btn--ink { background: var(--lc-on-surface); color: var(--lc-background); border-color: var(--lc-on-surface); }
.lc-btn--ink:hover,
.lc-btn--ink:focus-visible { background: color-mix(in oklch, var(--lc-on-surface) 82%, var(--lc-background)); border-color: color-mix(in oklch, var(--lc-on-surface) 82%, var(--lc-background)); color: var(--lc-background); }
.lc-btn--line { border-color: var(--lc-card-border); color: var(--lc-on-surface); background: transparent; }
.lc-btn--line:hover,
.lc-btn--line:focus-visible { border-color: var(--lc-on-surface); background: var(--lc-fg-wash); color: var(--lc-on-surface); }
.lc-btn--text,
.lc-btn--text:hover,
.lc-btn--text:focus-visible {
  height: auto; min-height: 0; padding: 8px 0;
  color: var(--lc-on-surface); background: transparent; border-color: transparent;
  box-shadow: none; font-size: 14px; font-weight: 500;
}
.lc-btn--text:hover,
.lc-btn--text:focus-visible {
  text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px;
  background: transparent;
}
.lc-btn[disabled] { opacity: .45; pointer-events: none; }

.lc-arrow { transition: transform .18s ease; }
a:hover > .lc-arrow, button:hover > .lc-arrow { transform: translateX(3px); }

/* ─── 标签 / 徽记 ──────────────────────────────────────────── */
.lc-tag {
  display: inline-flex; align-items: center; height: 26px; padding: 0 10px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  font-family: var(--lc-font-mono); font-size: 11.5px; letter-spacing: 0.04em; color: var(--lc-on-surface-variant);
  transition: color .16s ease, border-color .16s ease, background .16s ease;
}
a.lc-tag:hover, button.lc-tag:hover { color: var(--lc-on-surface); border-color: var(--lc-on-surface); background: var(--lc-fg-wash); }
.lc-tag--on { background: var(--lc-on-surface); border-color: var(--lc-on-surface); color: var(--lc-background); }
a.lc-tag--on:hover, button.lc-tag--on:hover { background: var(--lc-on-surface); border-color: var(--lc-on-surface); color: var(--lc-background); }
.lc-tag--count { color: var(--lc-on-surface-variant); margin-left: 7px; }
.lc-tag--on .lc-tag--count { color: color-mix(in oklch, var(--lc-background) 70%, var(--lc-on-surface)); }

.lc-dotmark { width: 6px; height: 6px; border-radius: 50%; flex: none; display: inline-block; }
.lc-dotmark--live { background: oklch(0.58 0.12 155); }
html[data-lc-color-scheme="dark"] .lc-dotmark--live { background: oklch(0.72 0.13 155); }
.lc-dotmark--wip { background: oklch(0.64 0.11 78); }
html[data-lc-color-scheme="dark"] .lc-dotmark--wip { background: oklch(0.76 0.11 80); }
.lc-dotmark--rest, .lc-dotmark--paused { background: var(--lc-on-surface-variant); }

/* ─── 区块标题 ─────────────────────────────────────────────── */
.lc-sec { padding-block: clamp(44px, 5vw, 68px); }
.lc-sec + .lc-sec { border-top: 1px solid var(--lc-card-border); }
.lc-sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.lc-sec-head__t { display: flex; flex-direction: column; gap: 12px; }
/* 骑缝正文里：区块头上下与相邻内容留足空气（含首个，勿清零顶距） */
.lc-ruled__bd > .lc-sec-head {
  margin-block: clamp(18px, 2.4vw, 28px) clamp(22px, 3vw, 32px);
}

/* ─── 首页：骑缝线 masthead + 精选长文（非 v3 居中身份带） ── */
/* Hero 高度 = 内容 + 适度留白；禁止 100vh / 100dvh，避免空悬骑缝与小屏首屏浪费 */
.lc-mast {
  min-height: 0;
  /* 下沿留足与精选长文的呼吸，避免 Hero 与 leadpost 贴死 */
  padding-block: clamp(52px, 6.5vw, 84px) clamp(56px, 6.5vw, 88px);
}
.lc-mast__av {
  width: 72px; height: 72px; margin-left: auto;
  border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card); object-fit: cover;
}
.lc-mast__name {
  font-family: var(--lc-font-display); font-size: var(--lc-fs-display);
  line-height: 1; letter-spacing: -0.035em; font-weight: 600;
}
.lc-mast__lead {
  margin-top: 18px; font-size: 17px; line-height: 1.78; color: var(--lc-on-surface-variant); max-width: 48ch;
}
.lc-mast__social {
  display: flex; align-items: center; gap: 18px; margin-top: 26px;
  padding-top: 20px; border-top: 1px solid var(--lc-card-border); flex-wrap: wrap;
}
.lc-mast__social a {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 13.5px; color: var(--lc-on-surface-variant); transition: color .16s ease;
}
.lc-mast__social a:hover { color: var(--lc-on-surface); }
.lc-mast__social svg { width: 14px; height: 14px; }

.lc-leadpost {
  /* 与 Hero 脱开：上沿再加一段留白，骑缝线仍连续穿过 */
  padding-block: clamp(20px, 2.8vw, 36px) 36px;
}
.lc-leadpost__cover {
  display: block; width: 100%; max-height: min(360px, 42vw);
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  overflow: hidden; background: var(--lc-surface-card); margin-bottom: 22px;
}
.lc-leadpost__cover img {
  width: 100%; height: 100%; max-height: min(360px, 42vw);
  object-fit: cover; aspect-ratio: 16 / 9;
}
.lc-leadpost__title {
  font-family: var(--lc-font-display); font-size: clamp(26px, 3vw, 34px);
  line-height: 1.28; letter-spacing: -0.02em; font-weight: 600;
}
.lc-leadpost__title a { transition: color .16s ease; }
.lc-leadpost__title a:hover { color: color-mix(in oklch, var(--lc-on-surface) 72%, var(--lc-on-surface-variant)); }
.lc-leadpost__dek { margin-top: 14px; font-size: 16px; line-height: 1.72; color: var(--lc-on-surface-variant); max-width: 54ch; }
.lc-leadpost__meta {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 18px; font-family: var(--lc-font-mono); font-size: 12px;
  letter-spacing: 0.04em; color: var(--lc-on-surface-variant);
}

.lc-home-sec { padding-block: 0; }
.lc-home-sec__head { padding-block: 48px 14px; }
.lc-home-sec__list { padding-bottom: 0; }
/* 近作列表必须挂在版心骑缝线上，禁止再嵌进 .ruled__bd 形成双轨 */
.lc-home-sec__list .lc-rows { border-top: 1px solid var(--lc-card-border); border-bottom: 1px solid var(--lc-card-border); }
.lc-home-sec__list .lc-pstrip,
.lc-home-sec__list .lc-neighbor-list { border-top: 1px solid var(--lc-card-border); }
/* 底部 CTA：走骑缝栏，正文侧排版，竖线不穿过文字 */
.lc-archive-row {
  margin-top: 8px;
  padding: 28px 0 48px;
  border-top: 1px solid var(--lc-card-border);
}
.lc-archive-row__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  flex-wrap: wrap;
}
.lc-archive-row__t { font-family: var(--lc-font-display); font-size: 18px; font-weight: 600; letter-spacing: -0.01em; }
.lc-archive-row__s { margin-top: 6px; color: var(--lc-on-surface-variant); font-size: 13.5px; }

.lc-neighbor-list { display: grid; gap: 0; border-top: 1px solid var(--lc-card-border); }
.lc-neighbor {
  position: relative;
  display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 14px; align-items: center;
  padding: 16px var(--lc-list-pad-x); border-bottom: 1px solid var(--lc-card-border); color: inherit;
}
.lc-neighbor-list > .lc-neighbor:last-child {
  border-bottom: 0;
}
.lc-neighbor::after {
  content: ''; position: absolute; inset: var(--lc-list-hover-inset) 0;
  background: var(--lc-fg-wash); border-radius: var(--lc-radius-sm);
  opacity: 0; pointer-events: none; z-index: 0;
  transition: opacity .16s ease;
}
.lc-neighbor:hover { color: var(--lc-on-surface); }
.lc-neighbor:hover::after { opacity: 1; }
.lc-neighbor > * { position: relative; z-index: 1; }
.lc-neighbor__mark {
  width: 44px; height: 44px; border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card); display: grid; place-items: center; overflow: hidden; flex: none;
}
.lc-neighbor__mark img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.lc-neighbor__mark span {
  font-family: var(--lc-font-display); font-size: 18px; font-weight: 600; line-height: 1;
  color: color-mix(in oklch, var(--lc-on-surface) 72%, transparent);
}
.lc-neighbor__body { min-width: 0; }
.lc-neighbor__name { font-family: var(--lc-font-display); font-size: 16px; font-weight: 600; }
.lc-neighbor__desc { margin-top: 3px; font-size: 13px; color: var(--lc-on-surface-variant); line-height: 1.5; }
.lc-neighbor__go { font-family: var(--lc-font-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--lc-on-surface-variant); }

/* ─── 文章行（与 .lc-ruled 同轨：日期挂在版心骑缝线左侧） ─────── */
.lc-rows { border-top: 1px solid var(--lc-card-border); border-bottom: 1px solid var(--lc-card-border); }
.lc-row {
  position: relative; display: grid; grid-template-columns: var(--lc-rail) minmax(0, 1fr);
  align-items: start;
}
.lc-row::before { content: ''; position: absolute; left: var(--lc-rail); top: 0; bottom: 0; width: 1px; background: var(--lc-card-border); }
/* hover 底色内缩，不贴发丝线、不贴内容 */
.lc-row::after {
  content: ''; position: absolute;
  inset: var(--lc-list-hover-inset) 0;
  background: var(--lc-fg-wash); border-radius: var(--lc-radius-sm);
  opacity: 0; pointer-events: none; z-index: 0;
  transition: opacity .16s ease;
}
.lc-row + .lc-row { border-top: 1px solid var(--lc-card-border); }
.lc-row:hover::after { opacity: 1; }
.lc-row > * { position: relative; z-index: 1; }
.lc-row__mg {
  /* 与右侧标题首行光学对齐：上内边距补偿字号差 */
  padding: calc(24px + (18.5px * 1.42 - 12px * 1.45) / 2) 24px 24px 0;
  text-align: right;
  font-family: var(--lc-font-mono); color: var(--lc-on-surface-variant);
}
.lc-row__date { display: block; font-size: 12px; letter-spacing: 0.04em; font-variant-numeric: tabular-nums; line-height: 1.45; }
.lc-row__cat { display: block; margin-top: 7px; font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; }
.lc-row__bd { padding: 24px var(--lc-list-pad-x) 24px 30px; display: flex; align-items: center; gap: 22px; }
.lc-row__main { min-width: 0; flex: 1; }
.lc-row__title { font-family: var(--lc-font-display); font-size: 18.5px; line-height: 1.42; font-weight: 600; letter-spacing: -0.008em; transition: color .16s ease; }
.lc-row:hover .lc-row__title { color: var(--lc-on-surface); }
.lc-row__dek { margin-top: 7px; color: var(--lc-on-surface-variant); font-size: 13.5px; line-height: 1.66; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lc-row__pull { flex: none; display: flex; align-items: center; gap: 14px; font-family: var(--lc-font-mono); font-size: 11.5px; letter-spacing: 0.06em; color: var(--lc-on-surface-variant); padding-top: 4px; }
.lc-row__go { opacity: 0; transform: translateX(-4px); transition: opacity .18s ease, transform .18s ease; color: var(--lc-on-surface); }
.lc-row:hover .lc-row__go, .lc-row:focus-within .lc-row__go { opacity: 1; transform: none; }
.lc-row__link::after { content: ''; position: absolute; inset: 0; }
.lc-row__thumb {
  flex: none; width: 112px; aspect-ratio: 16 / 10;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  overflow: hidden; background: var(--lc-surface-card);
}
.lc-row__thumb img { width: 100%; height: 100%; object-fit: cover; }
.lc-row__meta { display: flex; align-items: center; gap: 10px; margin-top: 8px; flex-wrap: wrap; }
.lc-row__meta .lc-mono { font-size: 11.5px; letter-spacing: 0.04em; color: var(--lc-on-surface-variant); }

/* 年份碑头（编年锚点须避开 sticky 顶栏） */
.lc-year,
.lc-year-head,
[id^="year-"] {
  scroll-margin-top: calc(var(--lc-header-stack, 3.875rem) + 24px);
}
.lc-year {
  position: relative; display: grid; grid-template-columns: var(--lc-rail) minmax(0, 1fr);
  padding-block: 40px 14px;
}
.lc-year::before { content: ''; position: absolute; left: var(--lc-rail); top: 0; bottom: 0; width: 1px; background: var(--lc-card-border); }
.lc-year__num {
  font-family: var(--lc-font-display); font-size: 44px; line-height: 1; letter-spacing: -0.03em;
  color: var(--lc-primary); text-align: right; padding-right: 20px;
  font-variant-numeric: tabular-nums;
}
.lc-year__meta { padding-left: 30px; display: flex; align-items: flex-end; gap: 14px; }

/* ─── 作品卡 / 首页项目条 ──────────────────────────────────── */
.lc-projects { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--lc-card-border); }
.lc-proj {
  position: relative; display: flex; flex-direction: column; gap: 14px;
  padding: 28px 28px 26px; border-bottom: 1px solid var(--lc-card-border);
  background: var(--lc-background);
}
.lc-proj:nth-child(odd) { border-right: 1px solid var(--lc-card-border); }
.lc-proj::before {
  content: ''; position: absolute; inset: 8px;
  background: var(--lc-fg-wash); border-radius: var(--lc-radius-sm);
  opacity: 0; pointer-events: none; z-index: 0;
  transition: opacity .16s ease;
}
.lc-proj:hover::before { opacity: 1; }
.lc-proj > * { position: relative; z-index: 1; }
.lc-proj__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lc-proj__status { display: inline-flex; align-items: center; gap: 7px; font-family: var(--lc-font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--lc-on-surface-variant); }
.lc-proj__idx { font-family: var(--lc-font-mono); font-size: 11px; color: color-mix(in oklch, var(--lc-on-surface) 34%, transparent); font-variant-numeric: tabular-nums; }
.lc-proj__name { font-family: var(--lc-font-display); font-size: 22px; line-height: 1.3; font-weight: 600; letter-spacing: -0.012em; }
.lc-proj__desc { color: var(--lc-on-surface-variant); font-size: 14px; line-height: 1.68; }
.lc-proj__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 6px; }
.lc-proj__stack { display: flex; flex-wrap: wrap; gap: 6px; }
.lc-proj__cta { display: inline-flex; align-items: center; gap: 6px; font-family: var(--lc-font-mono); font-size: 11.5px; letter-spacing: 0.06em; color: var(--lc-on-surface-variant); transition: color .16s ease; }
.lc-proj:hover .lc-proj__cta { color: var(--lc-on-surface); }
.lc-proj__link::after { content: ''; position: absolute; inset: 0; }

.lc-pstrip { border-top: 1px solid var(--lc-card-border); }
.lc-pstrip__item {
  position: relative; display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 14px; align-items: center;
  padding: 16px var(--lc-list-pad-x); border-bottom: 1px solid var(--lc-card-border);
}
.lc-pstrip__item::after {
  content: ''; position: absolute; inset: var(--lc-list-hover-inset) 0;
  background: var(--lc-fg-wash); border-radius: var(--lc-radius-sm);
  opacity: 0; pointer-events: none; z-index: 0;
  transition: opacity .16s ease;
}
.lc-pstrip__item:hover::after { opacity: 1; }
.lc-pstrip__item > * { position: relative; z-index: 1; }
.lc-pstrip__logo {
  width: 48px; height: 48px; border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card); object-fit: contain; padding: 5px;
}
.lc-pstrip__name { font-family: var(--lc-font-display); font-size: 16.5px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; }
.lc-pstrip__desc {
  margin-top: 4px; color: var(--lc-on-surface-variant); font-size: 12.5px; line-height: 1.55;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.lc-pstrip__ext {
  position: relative; z-index: 2;
  font-family: var(--lc-font-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--lc-on-surface-variant);
  white-space: nowrap; transition: color .16s ease;
}
.lc-pstrip__item:hover .lc-pstrip__ext { color: var(--lc-on-surface); }
.lc-pstrip__hit::after { content: ''; position: absolute; inset: 0; }

.lc-prow__logo {
  width: 56px; height: 56px; border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card); object-fit: contain; padding: 6px; flex: none;
}
.lc-prow__identity { display: flex; gap: 16px; align-items: flex-start; min-width: 0; }
.lc-prow__copy { min-width: 0; flex: 1; }
.lc-prow__topline {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 14px;
}
.lc-prow__status { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.lc-prow__status-inner { display: inline-flex; align-items: center; gap: 7px; }
.lc-prow__status--inline { display: none; }
.lc-prow__links {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px;
  position: relative; z-index: 2;
}

/* 项目列表行 */
.lc-plist { border-top: 1px solid var(--lc-card-border); }
.lc-prow {
  position: relative; display: grid; grid-template-columns: var(--lc-rail) minmax(0, 1fr);
  border-bottom: 1px solid var(--lc-card-border);
}
.lc-prow::before { content: ''; position: absolute; left: var(--lc-rail); top: 0; bottom: 0; width: 1px; background: var(--lc-card-border); }
.lc-prow::after {
  content: ''; position: absolute; inset: var(--lc-list-hover-inset) 0;
  background: var(--lc-fg-wash); border-radius: var(--lc-radius-sm);
  opacity: 0; pointer-events: none; z-index: 0;
  transition: opacity .16s ease;
}
.lc-prow:hover::after { opacity: 1; }
.lc-prow > * { position: relative; z-index: 1; }
.lc-prow__mg { padding: 30px 24px 30px 0; text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.lc-prow__idx { font-family: var(--lc-font-display); font-size: 26px; line-height: 1; color: color-mix(in oklch, var(--lc-on-surface) 30%, transparent); font-variant-numeric: tabular-nums; }
.lc-prow__bd { padding: 30px var(--lc-list-pad-x) 30px 30px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 200px); gap: 28px; align-items: start; }
.lc-prow__title { font-family: var(--lc-font-display); font-size: 24px; line-height: 1.26; font-weight: 600; letter-spacing: -0.015em; }
.lc-prow__title a { color: inherit; }
.lc-prow__title a:hover { color: var(--lc-on-surface); }
.lc-prow__desc { margin-top: 10px; color: var(--lc-on-surface-variant); font-size: 14.5px; line-height: 1.7; max-width: 58ch; }
.lc-prow__side { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; min-width: 0; }
.lc-prow__hit::after { content: ''; position: absolute; inset: 0; }
.lc-prow__side .lc-btn, .lc-prow__side .lc-gk { position: relative; z-index: 2; }

/* 项目详情：返回链独立骑缝行（避免窄屏叠在 Logo 与标题之间）
   Logo / 状态 / 形态挂在页头骑缝线左侧 */
.lc-pd-nav { padding-top: 40px; }
.lc-pd-nav .lc-ruled__bd { padding-top: 0; }
.lc-pd-back { margin: 0; }
.lc-pd-head.lc-pagehead { padding-block: 10px 34px; }
.lc-pd-head .lc-ruled__mg {
  display: flex; flex-direction: column; align-items: flex-end; gap: 12px;
  padding-top: 6px;
}
.lc-pd-mast__logo {
  width: 72px; height: 72px; border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card); object-fit: contain; padding: 8px;
  display: block;
}
.lc-pd-rail-meta {
  display: flex; flex-direction: column; align-items: flex-end; gap: 8px;
  text-align: right;
}
.lc-pd-rail-status { display: inline-flex; align-items: center; gap: 7px; }
.lc-pd-rail-kind {
  font-family: var(--lc-font-mono); font-size: 11px; letter-spacing: 0.08em;
  color: var(--lc-on-surface-variant);
}
.lc-pd-mast__title { font-family: var(--lc-font-display); font-size: clamp(28px, 4vw, 40px); line-height: 1.15; font-weight: 600; letter-spacing: -0.02em; }
.lc-pd-mast__intro { margin-top: 14px; font-size: 17px; line-height: 1.7; max-width: 52ch; }
.lc-pd-mast__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.lc-pd-body { padding-block: 8px 48px; }
.lc-pd-body__prose { max-width: 62ch; font-size: 16px; line-height: 1.85; }
.lc-pd-body__prose p + p { margin-top: 1.1em; }
.lc-pd-body__prose ul { margin: 1em 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.lc-pd-body__prose li {
  position: relative; padding-left: 18px; color: var(--lc-on-surface-variant);
}
.lc-pd-body__prose li::before {
  content: ''; position: absolute; left: 0; top: 0.72em; width: 6px; height: 1px; background: var(--lc-on-surface);
}
.lc-pd-note {
  margin-top: 36px; padding: 18px 20px; border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card); max-width: 62ch;
}
.lc-pd-note__t { font-family: var(--lc-font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lc-on-surface-variant); }
.lc-pd-note__b { margin-top: 8px; font-size: 14px; line-height: 1.7; color: var(--lc-on-surface-variant); }
.lc-pd-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.lc-pd-chips .lc-tag {
  display: inline-flex; align-items: center; gap: 6px;
  height: 26px; padding: 0 10px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  font-family: var(--lc-font-mono); font-size: 11.5px; letter-spacing: 0.04em;
  color: var(--lc-on-surface-variant); background: transparent;
}
.lc-pd-chips .lc-chip__icon {
  display: inline-flex; width: 14px; height: 14px; flex: none;
}
.lc-pd-chips .lc-chip__icon svg { width: 14px; height: 14px; display: block; }
/* 项目截图瀑布流（原 project.css，并入墨帷） */
.lc-project-gallery-grid {
  column-count: 2;
  column-gap: 16px;
  margin-top: 18px;
}
@media (min-width: 1024px) {
  .lc-project-gallery-grid { column-count: 3; }
}
@media (max-width: 640px) {
  .lc-project-gallery-grid { column-count: 1; }
}
.lc-project-gallery-grid__item {
  position: relative; display: block; overflow: hidden;
  break-inside: avoid; margin-bottom: 16px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card);
}
.lc-project-gallery-grid__item img { width: 100%; height: auto; display: block; }
.lc-project-gallery-grid__item[hidden] { display: none; }
.lc-project-gallery-grid__more {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in oklch, var(--lc-background) 72%, transparent);
  font-family: var(--lc-font-mono); font-size: 12px; letter-spacing: 0.06em;
  color: var(--lc-on-surface);
}
/* 项目正文内终端代码块：沿用原 .lc-terminal（非浅色 codeblock） */
.lc-pd-body__prose .lc-terminal,
.lc-prose .lc-terminal,
.lc-article__content .lc-terminal {
  margin: 1.5em 0;
  border: 1px solid var(--lc-terminal-border);
  border-radius: var(--lc-radius-sm);
  background: var(--lc-terminal-bg);
  overflow: hidden;
}
.lc-pd-body__prose .lc-terminal pre,
.lc-prose .lc-terminal pre,
.lc-article__content .lc-terminal pre {
  margin: 0; padding: 16px 18px;
  background: var(--lc-terminal-bg); color: var(--lc-terminal-text);
  border: 0; overflow-x: auto;
}
.lc-pd-body__prose .lc-terminal pre code,
.lc-prose .lc-terminal pre code,
.lc-article__content .lc-terminal pre code {
  background: none; border: 0; padding: 0; color: inherit;
  font-family: var(--lc-font-mono); font-size: 13px; line-height: 1.75;
}

/* ─── 侧栏小块 ─────────────────────────────────────────────── */
.lc-aside-block { padding-block: 26px; border-top: 1px solid var(--lc-card-border); }
.lc-aside-block__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.lc-chips { display: flex; flex-wrap: wrap; gap: 8px; }

.lc-faces { display: flex; flex-wrap: wrap; gap: 8px; }
.lc-face {
  display: grid; place-items: center; width: 44px; height: 44px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm); background: var(--lc-surface-card);
  font-family: var(--lc-font-display); font-size: 17px; color: var(--lc-on-surface-variant);
  transition: color .16s ease, border-color .16s ease, background .16s ease;
}
.lc-face:hover { color: var(--lc-on-surface); border-color: var(--lc-on-surface); background: var(--lc-fg-wash); }

/* ─── 统计 ─────────────────────────────────────────────────── */
.lc-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--lc-card-border); border: 1px solid var(--lc-card-border); }
.lc-stat { background: var(--lc-background); padding: 22px 20px; }
.lc-stat__n { font-family: var(--lc-font-display); font-size: 34px; line-height: 1.1; font-weight: 600; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.lc-stat__l { display: block; margin-top: 8px; font-family: var(--lc-font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--lc-on-surface-variant); }

/* ─── 关于页：自述 / 面板 / 分类条 / 联系卡 ─────────────────── */
.lc-intro { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.lc-about-av {
  width: 88px; height: 88px; margin-left: auto;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card); object-fit: cover;
}
.lc-panel { border: 1px solid var(--lc-card-border); padding: 24px 26px; border-radius: var(--lc-radius-sm); background: var(--lc-background); }
.lc-panel__head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  margin-bottom: 20px; flex-wrap: wrap;
}
.lc-panel__head .lc-h3 { margin: 0; }
.lc-about-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
/* Chart.js maintainAspectRatio:false 必须配固定高度容器，否则会无限增高 */
.lc-chart-wrap {
  position: relative;
  width: 100%;
  height: 220px;
  max-height: 220px;
  overflow: hidden;
}
.lc-chart-wrap canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}
.lc-catbar {
  display: grid; grid-template-columns: 7.5rem minmax(0, 1fr) 3rem; gap: 14px;
  align-items: center; padding-block: 7px;
}
.lc-catbar__t { font-size: 14px; }
.lc-catbar__track { height: 8px; background: var(--lc-fg-wash-firm); border-radius: 1px; overflow: hidden; }
.lc-catbar__fill { display: block; height: 100%; background: var(--lc-on-surface); }
.lc-catbar__n {
  font-family: var(--lc-font-mono); font-size: 12px; color: var(--lc-on-surface-variant);
  text-align: right; font-variant-numeric: tabular-nums;
}
.lc-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.lc-ccard {
  display: flex; flex-direction: column; gap: 10px;
  border: 1px solid var(--lc-card-border); padding: 20px 22px; border-radius: var(--lc-radius-sm);
  transition: background .16s ease, border-color .16s ease;
}
.lc-ccard:hover { background: var(--lc-fg-wash); border-color: var(--lc-on-surface); }
.lc-ccard:focus-visible { outline: 2px solid var(--lc-on-surface); outline-offset: 2px; }
.lc-ccard svg { width: 18px; height: 18px; color: var(--lc-on-surface-variant); transition: color .16s ease; }
.lc-ccard:hover svg { color: var(--lc-on-surface); }
.lc-ccard__v { font-family: var(--lc-font-mono); font-size: 13px; color: var(--lc-on-surface-variant); word-break: break-all; }
.lc-pullquote {
  font-family: var(--lc-font-display); font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.42; max-width: 26ch; margin: 0;
}

/* ─── 正文 ─────────────────────────────────────────────────── */
.lc-prose { font-size: 16.5px; line-height: 1.85; max-width: 46rem; }
.lc-prose > * + * { margin-top: 1.5em; }
.lc-prose h2 {
  font-family: var(--lc-font-display); font-size: 25px; line-height: 1.35; font-weight: 600;
  letter-spacing: -0.012em; margin-top: 2.4em; display: flex; gap: 14px; align-items: baseline;
  scroll-margin-top: calc(var(--lc-header-stack, 3.875rem) + 24px);
}
.lc-prose h2 .lc-idx { font-family: var(--lc-font-display); font-size: 17px; color: var(--lc-primary); flex: none; }
.lc-prose h3 {
  font-family: var(--lc-font-display); font-size: 19px; margin-top: 2em;
  scroll-margin-top: calc(var(--lc-header-stack, 3.875rem) + 24px);
}
.lc-prose p { color: color-mix(in oklch, var(--lc-on-surface) 88%, var(--lc-on-surface-variant)); }
.lc-prose a:not(.lc-btn) { color: var(--lc-on-surface); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; text-decoration-color: var(--lc-card-border); transition: text-decoration-color .16s ease; }
.lc-prose a:not(.lc-btn):hover { text-decoration-color: var(--lc-on-surface); }
.lc-prose strong { font-weight: 600; color: var(--lc-on-surface); }
.lc-prose ul { padding-left: 0; }
.lc-prose ul li { position: relative; padding-left: 26px; color: color-mix(in oklch, var(--lc-on-surface) 88%, var(--lc-on-surface-variant)); }
.lc-prose ul li + li { margin-top: .7em; }
.lc-prose ul li::before { content: ''; position: absolute; left: 4px; top: .82em; width: 9px; height: 1px; background: var(--lc-on-surface-variant); }
.lc-prose ol,
.lc-article__content ol {
  list-style: decimal;
  padding-left: 1.6em;
  color: color-mix(in oklch, var(--lc-on-surface) 88%, var(--lc-on-surface-variant));
  counter-reset: none;
}
.lc-prose ol > li,
.lc-article__content ol > li {
  padding-left: 0;
  counter-increment: none;
}
.lc-prose ol > li::before,
.lc-article__content ol > li::before {
  content: none;
  display: none;
}
.lc-prose ol li + li,
.lc-article__content ol li + li { margin-top: .7em; }
.lc-prose code {
  font-family: var(--lc-font-mono); font-size: 0.86em; padding: 2px 6px;
  background: var(--lc-fg-wash); border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  word-break: break-word;
}
.lc-prose blockquote {
  margin: 2em 0; padding: 4px 0 4px 26px; border-left: 2px solid var(--lc-on-surface);
  font-family: var(--lc-font-display); font-size: 19px; line-height: 1.62;
}

.lc-codeblock { position: relative; border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm); background: var(--lc-surface-card); }
.lc-codeblock__bar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 8px 10px 8px 14px; border-bottom: 1px solid var(--lc-card-border);
  font-family: var(--lc-font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--lc-on-surface-variant);
}
.lc-codeblock pre { margin: 0; padding: 16px 18px; overflow-x: auto; }
.lc-codeblock code {
  font-family: var(--lc-font-mono); font-size: 13px; line-height: 1.75;
  background: none; border: 0; padding: 0; white-space: pre; color: var(--lc-on-surface);
}
.lc-copy {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px;
  border: 1px solid transparent; border-radius: var(--lc-radius-sm);
  font-family: var(--lc-font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lc-on-surface-variant);
  transition: color .16s ease, border-color .16s ease, background .16s ease;
}
.lc-copy:hover { color: var(--lc-on-surface); border-color: var(--lc-card-border); background: var(--lc-fg-wash); }
.lc-copy[data-done='1'] { color: var(--lc-on-surface); border-color: var(--lc-card-border); }

/* 目录（sticky 挂在 .lc-article__toc-sidebar 上，见文章详情段） */
.lc-toc__list { margin-top: 14px; border-left: 1px solid var(--lc-card-border); }
.lc-toc__link {
  display: block; padding: 7px 0 7px 16px; margin-left: -1px;
  border-left: 1px solid transparent; font-size: 13.5px; line-height: 1.5; color: var(--lc-on-surface-variant);
  transition: color .16s ease, border-color .16s ease;
}
.lc-toc__link:hover { color: var(--lc-on-surface); border-left-color: var(--lc-card-border); }
.lc-toc__link.lc-is-on { color: var(--lc-on-surface); border-left-color: var(--lc-on-surface); font-weight: 600; }

/* 文章页脚 */
.lc-artfoot { margin-top: 56px; padding-top: 26px; border-top: 1px solid var(--lc-on-surface); }
.lc-adjacent { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--lc-card-border); border: 1px solid var(--lc-card-border); margin-top: 34px; }
.lc-adjacent__item {
  position: relative; background: var(--lc-background); padding: 22px 24px;
  display: flex; flex-direction: column; gap: 9px;
}
.lc-adjacent__item::before {
  content: ''; position: absolute; inset: 6px;
  background: var(--lc-fg-wash); border-radius: var(--lc-radius-sm);
  opacity: 0; pointer-events: none; z-index: 0;
  transition: opacity .16s ease;
}
.lc-adjacent__item:hover::before { opacity: 1; }
.lc-adjacent__item > * { position: relative; z-index: 1; }
.lc-adjacent__item--next { text-align: right; align-items: flex-end; }
.lc-adjacent__t { font-family: var(--lc-font-display); font-size: 16px; line-height: 1.5; font-weight: 600; }

/* 评论 */
.lc-comment { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 16px; padding-block: 22px; border-top: 1px solid var(--lc-card-border); }
.lc-comment__av { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--lc-card-border); background: var(--lc-surface-card); display: grid; place-items: center; font-family: var(--lc-font-display); font-size: 16px; color: var(--lc-on-surface-variant); overflow: hidden; }
.lc-comment__av img { width: 100%; height: 100%; }
.lc-comment__head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.lc-comment__name { font-weight: 600; font-size: 14.5px; }
.lc-comment__body { margin-top: 7px; font-size: 14.5px; line-height: 1.72; color: color-mix(in oklch, var(--lc-on-surface) 88%, var(--lc-on-surface-variant)); }
.lc-comment__acts { margin-top: 10px; display: flex; gap: 16px; }

/* ─── 表单 ─────────────────────────────────────────────────── */
.lc-field { display: flex; flex-direction: column; gap: 7px; }
.lc-field > label { font-family: var(--lc-font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--lc-on-surface-variant); }
.lc-input, .lc-textarea {
  width: 100%; padding: 11px 13px; min-height: 44px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card); font-size: 15px; line-height: 1.6;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.lc-input::placeholder, .lc-textarea::placeholder { color: color-mix(in oklch, var(--lc-on-surface-variant) 78%, transparent); }
.lc-input:hover, .lc-textarea:hover { border-color: color-mix(in oklch, var(--lc-on-surface) 40%, var(--lc-card-border)); }
.lc-input:focus, .lc-textarea:focus {
  outline: none; border-color: var(--lc-on-surface);
  box-shadow: 0 0 0 3px var(--lc-fg-wash);
}
.lc-textarea { min-height: 112px; resize: vertical; }

/* ─── GitHub 贡献图（.lc-about-github* 与 about-github-chart.js / hidden tip）─── */
.lc-about-github__notice {
  margin: 0 0 12px;
  font-family: var(--lc-font-mono);
  font-size: var(--lc-text-caption);
  color: var(--lc-on-surface-variant);
}
.lc-about-github__card {
  overflow: hidden;
  border: 1px solid var(--lc-card-border);
  background: var(--lc-surface-card);
  border-radius: var(--lc-radius-sm);
}
.lc-about-github__body {
  position: relative;
  padding: 12px 12px 8px;
}
.lc-about-github__scroll {
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 2px;
}
.lc-about-github__scroll-hint.is-hidden { display: none; }
.lc-about-github__chart {
  display: block;
  width: 100%;
  height: auto;
}
.lc-about-github__day-label,
.lc-about-github__month-label {
  fill: var(--lc-on-surface-variant);
  font-family: var(--lc-font-mono);
  font-size: 9px;
  letter-spacing: 0.04em;
}
.lc-about-github__cell { fill: var(--lc-github-cell-l0); }
.lc-about-github__cell--l1 { fill: var(--lc-github-cell-l1); }
.lc-about-github__cell--l2 { fill: var(--lc-github-cell-l2); }
.lc-about-github__cell--l3 { fill: var(--lc-github-cell-l3); }
.lc-about-github__cell--l4 { fill: var(--lc-github-cell-l4); }
.lc-about-github__cell.is-active,
.lc-about-github__cell:hover {
  stroke: var(--lc-primary);
  stroke-width: 1;
}
.lc-about-github__tip {
  position: absolute;
  z-index: 3;
  left: 0; top: 0;
  margin: 0;
  padding: 5px 10px;
  border: 1px solid var(--lc-card-border);
  background: var(--lc-surface-card);
  font-family: var(--lc-font-mono);
  font-size: var(--lc-text-caption);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  line-height: 1.35;
  color: var(--lc-on-surface);
  white-space: nowrap;
  pointer-events: none;
  border-radius: var(--lc-radius-sm);
  box-shadow: 0 8px 20px color-mix(in oklch, var(--lc-on-surface) 10%, transparent);
  transform: translateX(-50%);
}
.lc-about-github__tip[hidden] { display: none; }
.lc-about-github__skeleton-bar {
  display: block;
  height: 8px;
  margin-bottom: 8px;
  background: var(--lc-surface-container-low);
  border-radius: var(--lc-radius-sm);
}
.lc-about-github__skeleton-bar:last-child {
  width: 62%;
  margin-bottom: 0;
}
.lc-about-github__fallback {
  padding: 16px;
  border: 1px solid var(--lc-card-border);
  border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card);
}
.lc-about-github__fallback-title {
  margin: 0;
  font-family: var(--lc-font-display);
  font-size: var(--lc-text-headline-sm);
  font-weight: 600;
  color: var(--lc-on-surface);
}
.lc-about-github__fallback-desc {
  margin: 6px 0 0;
  font-size: var(--lc-text-body-sm);
  color: var(--lc-on-surface-variant);
}
.lc-about-github__fallback-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  font-family: var(--lc-font-mono);
  font-size: var(--lc-text-caption);
  color: var(--lc-on-surface);
}

/* Legacy heat helpers (footer / other surfaces) */
.lc-heat {
  display: grid; grid-auto-flow: column; grid-template-rows: repeat(7, 11px);
  gap: 3px; justify-content: start;
}
.lc-heat i {
  width: 11px; height: 11px; border-radius: 1px; display: block;
  background: var(--lc-fg-wash-firm);
  transition: outline-color .12s ease;
}
.lc-heat i[data-l='1'] { background: color-mix(in oklch, var(--lc-on-surface) 22%, var(--lc-background)); }
.lc-heat i[data-l='2'] { background: color-mix(in oklch, var(--lc-on-surface) 42%, var(--lc-background)); }
.lc-heat i[data-l='3'] { background: color-mix(in oklch, var(--lc-on-surface) 66%, var(--lc-background)); }
.lc-heat i[data-l='4'] { background: var(--lc-on-surface); }
.lc-heat i:hover, .lc-heat i:focus-visible {
  outline: 1px solid var(--lc-on-surface);
  outline-offset: 1px;
}
.lc-heat-legend { display: flex; align-items: center; gap: 6px; }
.lc-heat-legend i { width: 11px; height: 11px; border-radius: 1px; display: block; }

.lc-bars { display: flex; align-items: flex-end; gap: 6px; height: 148px; padding-top: 10px; }
.lc-bars__col { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 8px; height: 100%; min-width: 0; }
.lc-bars__bar { width: 100%; background: var(--lc-on-surface); border-radius: 1px 1px 0 0; min-height: 2px; transition: background .16s ease; }
.lc-bars__col:hover .lc-bars__bar { background: var(--lc-primary); }
.lc-bars__x { font-family: var(--lc-font-mono); font-size: 10px; color: var(--lc-on-surface-variant); }
.lc-bars__x--v { color: var(--lc-on-surface); font-size: 9px; letter-spacing: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }

/* ─── 页脚（对齐 rmb.lc-ee v3 信息密度：身份 / 友链 / 状态） ─── */
.lc-foot { border-top: 1px solid var(--lc-card-border); margin-top: 0; }
.lc-foot__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 0.95fr) minmax(0, 1.45fr);
  gap: 40px 48px;
  padding-block: 52px 36px;
  align-items: start;
}
.lc-foot__h {
  font-family: var(--lc-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lc-on-surface-variant);
  margin: 0 0 16px;
}
a.lc-foot__identity {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
  width: fit-content;
  max-width: 100%;
  color: var(--lc-on-surface);
  text-decoration: none;
  border-radius: var(--lc-radius-sm);
  transition: background .16s ease;
}
a.lc-foot__identity:hover { background: var(--lc-fg-wash); color: var(--lc-on-surface); }
a.lc-foot__identity:hover .lc-foot__name { color: var(--lc-on-surface); }
a.lc-foot__identity:focus-visible {
  outline: 2px solid var(--lc-on-surface);
  outline-offset: 3px;
}
.lc-foot__avatar {
  width: 64px;
  height: 64px;
  border-radius: var(--lc-radius-sm);
  object-fit: cover;
  flex-shrink: 0;
  background: var(--lc-surface-card);
}
.lc-foot__name { font-family: var(--lc-font-display); font-size: 20px; font-weight: 600; margin: 0; line-height: 1.2; color: var(--lc-on-surface); }
.lc-foot__desc {
  margin: 0 0 16px;
  max-width: 40ch;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--lc-on-surface-variant);
}
.lc-foot__connect { display: flex; flex-wrap: wrap; gap: 8px; }
.lc-foot__connect a {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--lc-card-border);
  border-radius: var(--lc-radius-sm);
  color: var(--lc-on-surface);
  background: transparent;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.lc-foot__connect a svg { width: 17px; height: 17px; display: block; }
.lc-foot__connect a:hover {
  background: color-mix(in oklch, var(--lc-on-surface) 8%, var(--lc-background));
  border-color: color-mix(in oklch, var(--lc-on-surface) 22%, var(--lc-card-border));
  color: var(--lc-on-surface);
}
.lc-foot__connect a:focus-visible {
  outline: 2px solid var(--lc-primary);
  outline-offset: 2px;
}
.lc-foot__link-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 11px;
}
.lc-foot__link-list a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--lc-on-surface-variant);
  transition: color .16s ease;
  max-width: 100%;
}
.lc-foot__link-list a:hover { color: var(--lc-on-surface); }
.lc-foot__link-list a:focus-visible {
  outline: 2px solid var(--lc-primary);
  outline-offset: 2px;
}
.lc-foot__link-icon {
  width: 16px;
  height: 16px;
  object-fit: contain;
  border-radius: 2px;
  flex-shrink: 0;
  background: var(--lc-surface-card);
}
.lc-foot__mark {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid var(--lc-card-border);
  border-radius: 2px;
  font-family: var(--lc-font-mono);
  font-size: 9px;
  letter-spacing: 0;
  color: var(--lc-on-surface);
  background: var(--lc-surface-card);
}
.lc-foot__more .lc-foot__mark { border-style: dashed; color: var(--lc-on-surface-variant); }
.lc-foot__badges { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
/* 页脚状态：对齐设计 blog.css .shield / .foot__badge-img */
.lc-shield {
  display: inline-flex;
  align-items: stretch;
  height: 22px;
  border: 1px solid var(--lc-card-border);
  border-radius: var(--lc-radius-sm);
  overflow: hidden;
  font-family: var(--lc-font-mono);
  font-size: 10px;
  letter-spacing: 0.04em;
  text-decoration: none;
  color: inherit;
  line-height: 1;
  vertical-align: middle;
}
.lc-shield__label {
  display: inline-flex;
  align-items: center;
  padding: 0 8px;
  background: color-mix(in oklch, var(--lc-on-surface) 6%, var(--lc-background));
  color: var(--lc-on-surface-variant);
  white-space: nowrap;
}
.lc-shield__value {
  display: inline-flex;
  align-items: center;
  padding: 0 8px;
  background: var(--lc-on-surface);
  color: var(--lc-background);
  white-space: nowrap;
}
a.lc-shield:hover .lc-shield__label {
  background: color-mix(in oklch, var(--lc-on-surface) 10%, var(--lc-background));
  color: var(--lc-on-surface);
}
a.lc-shield:hover .lc-shield__value {
  background: color-mix(in oklch, var(--lc-on-surface) 88%, var(--lc-background));
  color: var(--lc-background);
}
a.lc-shield:focus-visible {
  outline: 2px solid var(--lc-primary);
  outline-offset: 2px;
}
/* 纯图 badge：无边框；行高与 .lc-shield 同为 22px */
.lc-foot__badge-img {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  text-decoration: none;
  opacity: 0.88;
  transition: opacity .16s ease;
}
.lc-foot__badge-img:hover { opacity: 1; }
.lc-foot__badge-img:focus-visible {
  outline: 2px solid var(--lc-primary);
  outline-offset: 2px;
}
.lc-foot__badge-img img {
  display: block;
  height: 22px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
}
/* 页脚状态徽章：只用 .lc-shield / .lc-foot__badge-img，勿再套一层 .lc-badge 胶囊 */
.lc-foot__badges .lc-badge {
  display: contents;
}
.lc-foot__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-block: 18px;
  border-top: 1px solid var(--lc-card-border);
  font-family: var(--lc-font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--lc-on-surface-variant);
  flex-wrap: wrap;
}
.lc-foot__bar a { color: var(--lc-on-surface-variant); transition: color .16s ease; }
.lc-foot__bar a:hover { color: var(--lc-on-surface); }
.lc-foot__bar a:focus-visible {
  outline: 2px solid var(--lc-primary);
  outline-offset: 2px;
}
.lc-foot__legal { display: inline-flex; align-items: center; gap: 10px; }
.lc-foot__legal > span[aria-hidden='true'] { opacity: 0.45; }
.lc-foot__bar .lc-footer__heart {
  display: inline-flex;
  vertical-align: -0.12em;
  color: var(--lc-primary);
  animation: lc-foot-heart 1.2s ease-in-out infinite;
}
.lc-foot__bar .lc-footer__heart svg { display: block; width: 14px; height: 14px; }
@keyframes lc-foot-heart {
  0%, 100% { transform: scale(1); }
  14% { transform: scale(1.12); }
  28% { transform: scale(1); }
}
.lc-foot__connect .lc-social-link__icon { display: contents; }
.lc-foot__connect .lc-social-link__icon svg { width: 17px; height: 17px; display: block; }
html[data-lc-color-scheme='dark'] .lc-foot__badge-img--ink img { filter: invert(1) brightness(1.12); }

/* ─── 搜索浮层 ─────────────────────────────────────────────── */
.lc-search { position: fixed; inset: 0; z-index: 90; display: none; }
.lc-search.is-open,
.lc-search[data-open='1'] { display: block; }
.lc-search__veil { position: absolute; inset: 0; background: var(--lc-overlay); backdrop-filter: blur(6px); }
.lc-search__panel {
  position: relative; max-width: 640px; margin: 10vh auto 0;
  background: var(--lc-surface-card); border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  box-shadow: 0 24px 60px color-mix(in oklch, var(--lc-on-surface) 16%, transparent);
  overflow: hidden; animation: pop .18s ease both;
}
@keyframes pop { from { opacity: 0; transform: translateY(-8px); } }
.lc-search__field { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--lc-card-border); }
.lc-search__field svg { width: 18px; height: 18px; color: var(--lc-on-surface-variant); flex: none; }
.lc-search__input { flex: 1; border: 0; background: none; font-size: 17px; color: var(--lc-on-surface); outline: none; }
.lc-search__input::placeholder { color: var(--lc-on-surface-variant); }
.lc-search__caption {
  padding: 8px 16px 10px;
  margin: 0 0 2px;
  font-family: var(--lc-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lc-on-surface-variant);
  border-bottom: 1px solid var(--lc-card-border);
}
.lc-search__results {
  max-height: 52vh; overflow-y: auto;
  padding: 6px 8px 10px;
  display: flex; flex-direction: column; gap: 2px;
}
.lc-search__empty {
  margin: 0;
  padding: 36px 24px;
  text-align: center;
  font-size: 14px;
  line-height: 1.7;
  color: var(--lc-on-surface-variant);
}
.lc-search__empty b { color: var(--lc-on-surface); font-weight: 600; }
.lc-search__item {
  position: relative;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  width: auto;
  padding: 14px 16px;
  border: 0;
  border-radius: var(--lc-radius-sm);
  color: var(--lc-on-surface);
  text-decoration: none;
}
.lc-search__item--cover { grid-template-columns: 72px minmax(0, 1fr) auto; }
.lc-search__item::after {
  content: ''; position: absolute; inset: 0;
  background: var(--lc-fg-wash-firm); border-radius: var(--lc-radius-sm);
  opacity: 0; pointer-events: none; z-index: 0;
  transition: opacity .14s ease;
}
.lc-search__item:hover::after,
.lc-search__item.lc-is-on::after { opacity: 1; }
.lc-search__item:hover,
.lc-search__item.lc-is-on { color: var(--lc-on-surface); }
.lc-search__item > * { position: relative; z-index: 1; }
.lc-search__item:focus-visible {
  outline: 2px solid var(--lc-on-surface);
  outline-offset: 0;
}
.lc-search__date {
  font-family: var(--lc-font-mono);
  font-size: 11.5px;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--lc-on-surface-variant);
  text-align: right;
  line-height: 1.35;
}
.lc-search__body { min-width: 0; }
.lc-search__t {
  display: block;
  font-family: var(--lc-font-display);
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--lc-on-surface);
}
.lc-search__item:hover .lc-search__t,
.lc-search__item.lc-is-on .lc-search__t { color: var(--lc-on-surface); }
.lc-search__m {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 5px;
  font-family: var(--lc-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lc-on-surface-variant);
}
.lc-search__m > span + span::before {
  content: '·';
  margin-right: 8px;
  opacity: 0.55;
}
.lc-search__thumb {
  width: 56px;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--lc-card-border);
  border-radius: var(--lc-radius-sm);
  overflow: hidden;
  background: var(--lc-background);
  flex: none;
}
.lc-search__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lc-search__hint {
  padding: 12px 20px;
  border-top: 1px solid var(--lc-card-border);
  font-size: 13.5px;
  color: var(--lc-on-surface-variant);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  background: color-mix(in oklch, var(--lc-background) 55%, var(--lc-surface-card));
}
.lc-search__hint .lc-mono { font-size: 11px; letter-spacing: 0.06em; }
.lc-search__hint b { color: var(--lc-on-surface); font-weight: 600; }
mark { background: var(--lc-accent-soft); color: inherit; padding: 0 1px; border-radius: 2px; }

@media (max-width: 560px) {
  .lc-search__panel { margin: 8vh 12px 0; max-width: none; }
  .lc-search__item,
  .lc-search__item--cover { grid-template-columns: 56px minmax(0, 1fr); gap: 10px; padding: 12px 14px; }
  .lc-search__thumb { display: none; }
  .lc-search__date { font-size: 10.5px; }
  .lc-search__field { padding: 14px; }
  .lc-search__caption { padding-inline: 14px; }
  .lc-search__hint { padding-inline: 14px; }
}

/* ─── 移动菜单 ─────────────────────────────────────────────── */
.lc-msheet { position: fixed; inset: 0; z-index: 80; display: none; }
.lc-msheet[data-open='1'] { display: block; }
.lc-msheet__veil { position: absolute; inset: 0; background: var(--lc-overlay); }
.lc-msheet__panel {
  position: absolute; inset: 0 0 auto; background: var(--lc-background);
  border-bottom: 1px solid var(--lc-card-border); padding: 18px var(--lc-gutter) 26px;
  animation: slide .2s ease both;
}
@keyframes slide { from { transform: translateY(-14px); opacity: 0; } }
.lc-msheet__head { display: flex; align-items: center; justify-content: space-between; min-height: 48px; }
.lc-msheet__list { margin-top: 10px; border-top: 1px solid var(--lc-card-border); }
.lc-msheet__list a {
  display: flex; align-items: center; min-height: 52px;
  border-bottom: 1px solid var(--lc-card-border); font-family: var(--lc-font-display); font-size: 20px; font-weight: 600;
}
.lc-msheet__list a[aria-current='page'] { color: var(--lc-on-surface); }
.lc-msheet__list a:not([aria-current='page']) { color: var(--lc-on-surface-variant); }
.lc-msheet__list a:hover { color: var(--lc-on-surface); }

/* ─── 日出日落帷幕（View Transitions） ─────────────────────── */
::view-transition-old(root), ::view-transition-new(root) { animation: none; mix-blend-mode: normal; }
html[data-curtain='to-dark']::view-transition-old(root) {
  z-index: 2147483646; animation-name: curtain-down;
  animation-duration: 520ms; animation-timing-function: ease-in; animation-fill-mode: both;
}
html[data-curtain='to-light']::view-transition-new(root) {
  z-index: 2147483646; animation-name: curtain-up;
  animation-duration: 520ms; animation-timing-function: ease-in; animation-fill-mode: both;
}
@keyframes curtain-down { from { clip-path: inset(0); } to { clip-path: inset(100% 0 0 0); } }
@keyframes curtain-up { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0); } }

/* ─── 自适应 ───────────────────────────────────────────────── */
@media (max-width: 1100px) {
  /* 平板：侧栏改横排，避免 190px 窄列挤压 */
  .lc-prow__bd {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .lc-prow__side {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    width: 100%;
  }
  .lc-prow__title { font-size: 22px; }
}

@media (max-width: 1080px) {
  :root { --rail: 84px; }
  .lc-foot__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .lc-foot__brand { grid-column: 1 / -1; }
  .lc-pd-mast__logo { width: 64px; height: 64px; padding: 7px; }
}

@media (max-width: 920px) {
  :root { --gutter: 20px; --rail: 0px; }
  .lc-projects { grid-template-columns: 1fr; }
  .lc-proj:nth-child(odd) { border-right: 0; }
  .lc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lc-adjacent { grid-template-columns: 1fr; }
  .lc-adjacent__item--next { text-align: left; align-items: flex-start; }
  .lc-row__thumb { width: 96px; }
  .lc-mast {
    padding-block: 28px 36px;
  }
  .lc-mast__av, .lc-about-av { width: 64px; height: 64px; margin-left: 0; }
  .lc-mast__lead { margin-top: 12px; font-size: 15.5px; line-height: 1.7; }
  .lc-mast__social { margin-top: 16px; padding-top: 14px; gap: 14px; }
  .lc-leadpost { padding-block: 16px 28px; }
  .lc-leadpost__cover, .lc-leadpost__cover img { max-height: 200px; }
  .lc-catbar { grid-template-columns: 6rem minmax(0, 1fr) 2.5rem; }

  /* 窄屏收起骑缝线，页边注改到正文上方 */
  main > .lc-wrap--spine::before { display: none; }
  .lc-ruled, .lc-row, .lc-year { grid-template-columns: 1fr; }
  .lc-ruled::before, .lc-row::before, .lc-year::before { display: none; }
  .lc-ruled__mg, .lc-row__mg { text-align: left; padding: 0 0 8px; }
  .lc-pagehead > .lc-ruled__mg {
    justify-content: flex-start;
    min-height: 0;
    padding-bottom: 8px;
  }
  .lc-ruled__bd { padding-left: 0; }
  .lc-ruled--head > .lc-ruled__mg,
  .lc-ruled:has(> .lc-ruled__bd > .lc-sec-head:first-child) > .lc-ruled__mg,
  .lc-ruled--head .lc-sec-head { min-height: 0; }
  .lc-row__mg { padding: 20px var(--lc-list-pad-x) 0; display: flex; align-items: center; gap: 14px; }
  .lc-row__cat { margin-top: 0; }
  .lc-row__bd { padding: 8px var(--lc-list-pad-x) 20px; flex-direction: row; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
  .lc-year { padding-block: 32px 10px; }
  .lc-year__num { text-align: left; padding-right: 0; font-size: 36px; }
  .lc-year__meta { padding-left: 0; margin-top: 6px; }
  .lc-article__toc-sidebar { position: static; }
  .lc-pstrip__item { grid-template-columns: 44px minmax(0, 1fr); }
  .lc-pstrip__ext { grid-column: 2; }
  /* 手机：收起骑缝序号，状态并进标题行 */
  .lc-prow { grid-template-columns: 1fr; }
  .lc-prow::before { display: none; }
  .lc-prow__mg { display: none; }
  .lc-prow__status--inline { display: inline-flex; }
  .lc-prow__bd { grid-template-columns: 1fr; gap: 12px; padding: 18px var(--lc-list-pad-x); }
  .lc-prow__identity { gap: 12px; }
  .lc-prow__logo { width: 48px; height: 48px; padding: 5px; }
  .lc-prow__title { font-size: 19px; }
  .lc-prow__desc { margin-top: 6px; font-size: 14px; line-height: 1.65; }
  .lc-prow__side {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
  }
  .lc-filterbar { margin-top: 18px; gap: 6px; }
  .lc-pd-nav { padding-top: 28px; }
  .lc-pd-nav .lc-ruled__mg { display: none; }
  .lc-pd-head.lc-pagehead { padding-block: 8px 28px; }
  .lc-pd-head .lc-ruled__mg {
    flex-direction: row; align-items: center; justify-content: flex-start;
    gap: 14px; padding-top: 0; padding-bottom: 12px;
  }
  .lc-pd-rail-meta { flex-direction: row; align-items: center; gap: 12px; text-align: left; }
  .lc-pd-mast__logo { width: 56px; height: 56px; padding: 6px; }
}

@media (max-width: 560px) {
  .lc-mast {
    padding-block: 20px 28px;
  }
  .lc-mast__name { font-size: clamp(28px, 8vw, 36px); }
  .lc-mast__lead { margin-top: 10px; font-size: 15px; }
  .lc-mast__social { margin-top: 14px; padding-top: 12px; gap: 12px; }
  .lc-mast__social a { font-size: 13px; }
  .lc-leadpost { padding-block: 12px 24px; }
  .lc-leadpost__cover, .lc-leadpost__cover img { max-height: 168px; }
  .lc-stats { grid-template-columns: 1fr; }
  .lc-foot__grid { grid-template-columns: 1fr; gap: 28px; }
  .lc-nav__name { font-size: 17px; }
  .lc-nav__bar { min-height: 54px; gap: 10px; padding-block: 8px; }
  .lc-neighbor { grid-template-columns: 40px minmax(0, 1fr); }
  .lc-neighbor__mark { width: 40px; height: 40px; }
  .lc-neighbor__go { display: none; }
  .lc-row__thumb { width: 84px; }
  .lc-row__pull { display: none; }
  .lc-prow__bd { padding: 16px var(--lc-list-pad-x); }
  .lc-prow__side { width: 100%; }
  .lc-prow__links { width: 100%; }
  .lc-pd-mast__title { font-size: clamp(24px, 7vw, 32px); }
  .lc-pd-mast__intro { font-size: 15.5px; margin-top: 12px; }
  .lc-pd-mast__actions { margin-top: 18px; }
}

/* ─── 页头（归档 / 留言 / 友链共用） ───────────────────────── */
.lc-pagehead { padding-block: 48px 34px; }
/* 页头栏外短词与右侧 .h1 光学对齐（匹配归档「2022—26」） */
.lc-pagehead > .lc-ruled__mg {
  display: flex; align-items: center; justify-content: flex-end;
  min-height: calc(var(--lc-fs-h1) * 1.16);
  line-height: 1;
}
.lc-pagehead > .lc-ruled__bd > .lc-h1:first-child { line-height: 1.16; }
.lc-pagehead .lc-lead { margin-top: 16px; }
.lc-pagehead__meta { margin: 12px 0 0; }
.lc-pagehead__actions {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 22px;
}
.lc-pagehead__actions .lc-gk { margin: 0; }
/* 旧 aside 布局退役：计数走 .lc-pagehead__meta，CTA 走 .lc-pagehead__actions */
.lc-pagehead .lc-page-header__aside { display: contents; }
.lc-filterbar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 26px; }
/* 编年年份芯片：与设计 .tag 一致（发丝边，不用粉彩 is-active） */
.lc-filterbar .lc-filter-chip,
.lc-page-header__filters .lc-filter-chip {
  display: inline-flex; align-items: center; height: 26px; min-height: 0;
  padding: 0 10px; border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: transparent; color: var(--lc-on-surface-variant);
  font-family: var(--lc-font-mono); font-size: 11.5px; font-weight: 400; letter-spacing: 0.04em;
  text-transform: none;
}
.lc-filterbar .lc-filter-chip:hover,
.lc-page-header__filters .lc-filter-chip:hover {
  color: var(--lc-on-surface); border-color: var(--lc-on-surface); background: var(--lc-fg-wash);
}
.lc-filterbar .lc-filter-chip.is-active,
.lc-page-header__filters .lc-filter-chip.is-active,
.lc-filterbar .lc-filter-chip[aria-current="page"],
.lc-page-header__filters .lc-filter-chip[aria-current="page"] {
  background: var(--lc-on-surface); border-color: var(--lc-on-surface); color: var(--lc-background);
}
/* 站名句号残留 .lc-dot 时仍显示朱砂句点，不被状态绿圆盖住 */
.lc-mast__name .lc-dot,
.lc-about-intro .lc-dot,
h1 .lc-dot,
h2 .lc-dot {
  display: inline; width: auto; height: auto; margin: 0; padding: 0;
  background: none; border-radius: 0; color: var(--lc-primary);
  font-size: inherit; font-weight: inherit; line-height: inherit; vertical-align: baseline;
}
/* 分页：走骑缝栏，避免贯通竖线穿过页码与按钮 */
.lc-pager {
  padding-block: 34px;
  border-top: 1px solid var(--lc-card-border);
}
.lc-pager__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  flex-wrap: wrap;
}
.lc-pager__nums { display: flex; gap: 6px; }

/* ─── 留言板（与友链/关于同骑缝轨；筛选用 filter-chip） ─────── */
.lc-gb-body { padding-bottom: 8px; }
.lc-gb {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  gap: 40px;
  align-items: start;
  padding-bottom: 48px;
}
.lc-gb__feed { min-width: 0; }
.lc-gb__compose {
  position: sticky;
  top: calc(var(--lc-header-stack, 3.875rem) + 16px);
  border: 1px solid var(--lc-card-border);
  border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card);
  padding: 20px 20px 18px;
}
.lc-gb__compose-h {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  margin-bottom: 16px;
}
.lc-gb__compose .lc-h3 { margin: 0; }
.lc-guestbook-page .lc-page-header__filters,
.lc-guestbook-page .lc-filterbar {
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px;
}
.lc-threads { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lc-card-border); }
.lc-thread { list-style: none; }
.lc-thread[hidden] { display: none; }
.lc-comment__meta { font-family: var(--lc-font-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--lc-on-surface-variant); }
.lc-comment__badge {
  display: inline-flex; align-items: center; height: 20px; padding: 0 7px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  font-family: var(--lc-font-mono); font-size: 10px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--lc-on-surface-variant);
}
.lc-comment__src,
.lc-comment-feed__source {
  display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
  margin-top: 4px; font-family: var(--lc-font-mono); font-size: 11px; letter-spacing: 0.04em;
  color: var(--lc-on-surface-variant);
  /* 来源不是 chip：去掉 .lc-tag 边框残留 */
  border: 0; background: transparent; padding: 0; border-radius: 0;
}
.lc-comment__src a,
.lc-comment-feed__source-link {
  color: var(--lc-on-surface-variant);
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 3px;
  border-bottom: 0;
}
.lc-comment__src a:hover,
.lc-comment-feed__source-link:hover { color: var(--lc-on-surface); }
.lc-comment-feed__type {
  display: inline; flex-shrink: 0;
  padding: 0; border: 0; border-radius: 0; background: transparent;
  font-family: var(--lc-font-mono); font-size: 11px; font-weight: 400;
  letter-spacing: 0.04em; text-transform: none; color: var(--lc-on-surface-variant);
  white-space: nowrap;
}
.lc-comment-feed__type:not(:last-child)::after {
  content: "·";
  margin-left: 0.4em;
  color: var(--lc-on-surface-variant);
  opacity: 0.7;
}
.lc-comment__acts .lc-btn--text { font-family: var(--lc-font-mono); font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lc-on-surface-variant); }
.lc-comment__acts .lc-btn--text:hover { color: var(--lc-on-surface); }
/* 子回复：只缩进 + 横发丝线，不用左侧竖线（覆盖 components 旧 .lc-comment-thread__children） */
.lc-thread__replies,
.lc-comment-thread > .lc-thread__replies,
.lc-comment-thread > .lc-comment-thread__children {
  list-style: none;
  margin: 0;
  padding: 0 0 4px 52px;
  border-left: none;
}
.lc-thread__replies > li,
.lc-comment-thread__children > li { list-style: none; }
.lc-thread__replies .lc-comment,
.lc-comment-thread__children .lc-comment-tech,
.lc-comment-thread__children .lc-comment {
  border-top: 1px solid var(--lc-card-border);
  border-left: none;
  padding-block: 18px;
}
.lc-reply-box {
  margin: 0 0 18px 52px; padding: 16px 18px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm); background: var(--lc-surface-card);
}
.lc-reply-box[hidden] { display: none; }
.lc-reply-box__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.lc-notice {
  display: none; margin-bottom: 18px; padding: 12px 14px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-fg-wash); font-size: 14px; color: var(--lc-on-surface);
}
.lc-notice:not([hidden]),
.lc-notice[data-show='1'] { display: block; }
.lc-notice--ok { border-color: color-mix(in oklch, var(--lc-on-surface) 35%, var(--lc-card-border)); }

/* ─── 友链（双列铭牌格，仍吃墨帷发丝线） ─────────────────── */
.lc-flink-self {
  margin-bottom: 8px;
  padding: 30px 24px 24px;
  border: 1px solid var(--lc-card-border);
  border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card);
}
.lc-flink-self .lc-sec-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px 24px;
  flex-wrap: wrap;
  margin-block: 0 26px;
  padding-bottom: 4px;
}
.lc-flink-self .lc-sec-head__t {
  min-width: 0;
  flex: 1 1 14rem;
  gap: 12px;
}
.lc-flink-self .lc-sec-head .lc-btn { flex: none; align-self: center; }
.lc-flink-self__dl {
  margin: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid var(--lc-card-border);
}
.lc-flink-self__row {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: 12px 16px;
  align-items: start;
  padding: 12px 0;
  border-bottom: 1px solid var(--lc-card-border);
}
.lc-flink-self__row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.lc-flink-self__row dt {
  margin: 0;
  font-family: var(--lc-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--lc-on-surface-variant);
  padding-top: 0.35em;
}
.lc-flink-self__row dd { margin: 0; min-width: 0; }
.lc-flink-self__value {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  font: inherit;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--lc-on-surface);
  cursor: pointer;
  word-break: break-word;
}
.lc-flink-self__value:hover {
  color: var(--lc-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.lc-flink-self__value:focus-visible {
  outline: 2px solid var(--lc-on-surface);
  outline-offset: 2px;
}
.lc-flink-self__icon-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.lc-flink-self__icon {
  width: 28px;
  height: 28px;
  flex: none;
  object-fit: contain;
  border: 1px solid var(--lc-card-border);
  border-radius: var(--lc-radius-sm);
  background: var(--lc-background);
  padding: 3px;
}
@media (max-width: 767px) {
  .lc-flink-self__row {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .lc-flink-self__row dt { padding-top: 0; }
}

.lc-flink-note {
  margin-bottom: 28px; padding: 18px 20px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm); background: var(--lc-surface-card);
}
.lc-flink-note__list { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.lc-flink-note__list:first-child { margin-top: 0; }
.lc-flink-grid:not(:has(> .lc-flink-card:not([hidden]))) { display: none; }
.lc-flink-note__list li {
  display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 10px;
  font-size: 14.5px; line-height: 1.65; color: color-mix(in oklch, var(--lc-on-surface) 88%, var(--lc-on-surface-variant));
}
.lc-flink-note__list li::before {
  content: ''; width: 5px; height: 5px; margin-top: 0.55em;
  border-radius: 50%; background: var(--lc-on-surface); opacity: .45;
}
.lc-flink-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px; background: var(--lc-card-border); border: 1px solid var(--lc-card-border);
}
.lc-flink-card {
  position: relative; background: var(--lc-background); padding: 26px 24px 22px;
  display: flex; flex-direction: column; gap: 16px; min-height: 168px;
}
.lc-flink-card::before {
  content: ''; position: absolute; inset: 8px;
  background: var(--lc-fg-wash); border-radius: var(--lc-radius-sm);
  opacity: 0; pointer-events: none; z-index: 0;
  transition: opacity .16s ease;
}
.lc-flink-card:hover::before { opacity: 1; }
.lc-flink-card > * { position: relative; z-index: 1; }
.lc-flink-card__top { display: flex; gap: 14px; align-items: flex-start; }
.lc-flink-card__mark {
  width: 48px; height: 48px; border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card); display: grid; place-items: center; overflow: hidden; flex: none;
}
.lc-flink-card__mark img { width: 100%; height: 100%; object-fit: contain; padding: 7px; }
.lc-flink-card__mark span {
  font-family: var(--lc-font-display); font-size: 20px; font-weight: 600; line-height: 1;
  color: color-mix(in oklch, var(--lc-on-surface) 70%, transparent);
}
.lc-flink-card__idx {
  font-family: var(--lc-font-mono); font-size: 12px; letter-spacing: 0.08em;
  color: var(--lc-on-surface-variant); font-variant-numeric: tabular-nums;
}
.lc-flink-card__name {
  display: inline; font-family: var(--lc-font-display); font-size: 21px; font-weight: 600;
  letter-spacing: -0.015em; line-height: 1.3;
}
.lc-flink-card__name .lc-flink-card__idx {
  margin-right: 10px; vertical-align: 0.12em;
}
.lc-flink-card__desc { margin-top: 8px; font-size: 14px; line-height: 1.65; color: var(--lc-on-surface-variant); }
.lc-flink-card__foot {
  margin-top: auto; display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; padding-top: 4px;
}
.lc-flink-card__host {
  font-family: var(--lc-font-mono); font-size: 11.5px; letter-spacing: 0.04em; color: var(--lc-on-surface-variant);
}
.lc-flink-card__go { color: var(--lc-on-surface-variant); transition: color .16s ease, transform .18s ease; }
.lc-flink-card:hover .lc-flink-card__go { color: var(--lc-on-surface); transform: translateX(3px); }
.lc-flink-card__hit::after { content: ''; position: absolute; inset: 0; }

/* ─── 对话框（native <dialog>：margin:auto 才能居中） ─────── */
dialog.lc-dialog,
.lc-dialog {
  border: 0;
  padding: 0;
  margin: auto;
  background: transparent;
  color: inherit;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 32px);
}
.lc-dialog::backdrop { background: var(--lc-overlay); backdrop-filter: blur(6px); }
.lc-dialog__panel {
  display: block;
  width: min(480px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  overflow: auto;
  background: var(--lc-surface-card);
  border: 1px solid var(--lc-card-border);
  border-radius: var(--lc-radius-sm);
  box-shadow: 0 24px 60px color-mix(in oklch, var(--lc-on-surface) 16%, transparent);
  animation: lc-dialog-pop .18s ease both;
}
@keyframes lc-dialog-pop {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}
.lc-dialog__head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  padding: 20px 22px 0;
}
.lc-dialog__heading { min-width: 0; }
.lc-dialog__lead { margin: 10px 22px 0; font-size: 14.5px; line-height: 1.65; color: var(--lc-on-surface-variant); }
.lc-dialog__body { display: grid; gap: 16px; padding: 20px 22px; }
.lc-dialog__foot {
  display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap;
  padding: 0 22px 20px; border-top: 0;
}
.lc-friend-links-dialog .lc-field,
.lc-friend-links-form .lc-comment-form-tech__field { margin: 0; }
.lc-friend-links-dialog .lc-comment-form-tech__label,
.lc-friend-links-dialog label {
  font-family: var(--lc-font-mono); font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--lc-on-surface-variant);
}
.lc-friend-links-dialog .lc-comment-form-tech__input,
.lc-friend-links-dialog input[type="text"],
.lc-friend-links-dialog input[type="url"],
.lc-friend-links-dialog input[type="email"],
.lc-friend-links-dialog textarea {
  width: 100%; padding: 11px 13px; min-height: 44px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card); font-size: 15px; line-height: 1.6;
}
.lc-dialog__feedback {
  display: none; padding: 10px 12px; border: 1px solid var(--lc-card-border);
  border-radius: var(--lc-radius-sm); font-size: 13.5px; color: var(--lc-on-surface); background: var(--lc-fg-wash);
}
.lc-dialog__feedback:not([hidden]),
.lc-dialog__feedback[data-show='1'] { display: block; }
.lc-dialog__feedback[data-tone='err'] {
  border-color: color-mix(in oklch, var(--lc-primary) 45%, var(--lc-card-border));
  background: var(--lc-accent-soft); color: var(--lc-on-surface);
}
.lc-hp,
.lc-friend-links-form__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
.lc-friend-links-dialog .lc-comment-form-tech__optional {
  margin-left: 6px;
  letter-spacing: 0.04em;
  text-transform: none;
  font-weight: 400;
  color: var(--lc-on-surface-variant);
  opacity: 0.85;
}
.lc-friend-links-dialog .lc-comment-form-tech__hint {
  display: block;
  margin-top: 6px;
  font-family: var(--lc-font-ui, var(--lc-font-body));
  font-size: 12.5px;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.5;
  color: var(--lc-on-surface-variant);
}
.lc-friend-links-form {
  position: relative; /* honeypot absolute 定位参照 */
}

/* ─── 文章详情（对齐设计 article.html 内联规则 + 覆盖 sections） ─ */
.lc-crumb {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--lc-font-mono); font-size: 11.5px; letter-spacing: 0.08em;
  color: var(--lc-on-surface-variant);
}
.lc-crumb a:hover {
  color: var(--lc-on-surface); text-decoration: underline; text-underline-offset: 4px;
}
.lc-arthead {
  padding-block: 44px 36px;
  border-bottom: 1px solid var(--lc-card-border);
}
/* 标题与正文列同宽（46rem），长中文标题少折行；摘要仍用更窄 dek */
.lc-arthead__title {
  margin-top: 20px;
  max-width: min(46rem, 100%);
}
.lc-arthead__lead { margin-top: 18px; max-width: 54ch; }
.lc-artmeta {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  margin-top: 22px;
  font-family: var(--lc-font-mono); font-size: 12px; letter-spacing: 0.04em;
  color: var(--lc-on-surface-variant);
}
.lc-artmeta__author { display: inline-flex; align-items: center; gap: 8px; }
.lc-artmeta__avatar {
  width: 22px; height: 22px; border-radius: 50%;
  border: 1px solid var(--lc-card-border); object-fit: cover;
}
.lc-artgrid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 40px;
  /* 题头底边与正文之间留足空气，勿贴死 border */
  padding-block: 36px 56px;
  align-items: start;
}
/* 压过 sections 遗留的 header+div padding-top（若仍存在） */
.lc-article > header + .lc-artgrid {
  padding-top: 36px;
}
/*
 * 无 TOC 时绝不能假装留出侧栏：
 * .lc-prose 默认 max-width:46rem 会在宽版心右侧空出一块，看起来像 TOC 占位。
 * 只有 .lc-artgrid--toc（single.php 在 $has_toc 时才加）才启用双列。
 */
.lc-artgrid:not(.lc-artgrid--toc) .lc-article__content,
.lc-artgrid:not(.lc-artgrid--toc) .lc-prose {
  max-width: none;
  width: 100%;
}
@media (min-width: 1081px) {
  .lc-artgrid--toc {
    grid-template-columns: minmax(0, 46rem) minmax(0, 1fr);
    gap: 64px;
  }
  .lc-artgrid--toc .lc-article__content,
  .lc-artgrid--toc .lc-prose {
    max-width: none; /* 列宽已是 46rem，勿再叠一层 max-width */
  }
  /* sticky 必须挂在 grid 子项上 */
  .lc-article__toc-sidebar {
    display: block;
    position: sticky;
    top: calc(var(--lc-header-stack, 3.875rem) + 24px);
    align-self: start;
  }
}
@media (max-width: 1080px) {
  .lc-artgrid--toc { grid-template-columns: 1fr; gap: 40px; }
  .lc-article__toc-sidebar { position: static; }
}
@media (max-width: 1023px) {
  .lc-article__toc-sidebar { display: none; }
}
.lc-article > header.lc-arthead {
  padding-block: 44px 36px;
}
.lc-article > header.lc-arthead h1 {
  font-size: var(--lc-fs-h1);
  line-height: 1.16;
  margin-top: 20px;
  max-width: min(46rem, 100%);
}

/* ─── 普通 Page（隐私政策等）：页头必须在 .lc-wrap 内 ───────── */
.lc-page-content > .lc-wrap--spine {
  padding-bottom: clamp(48px, 8vw, 88px);
}
.lc-page-article__body {
  padding-bottom: 48px;
}
.lc-page-article__content.lc-prose {
  max-width: 46rem;
}
.lc-page-article__content.lc-prose > *:first-child {
  margin-top: 0;
}
/* 取消首字下沉 / sections 给 h2 加的顶线 */
.lc-article__content > p:first-of-type::first-letter,
.lc-prose > p:first-of-type::first-letter {
  float: none; font-size: inherit; line-height: inherit;
  font-weight: inherit; font-family: inherit; padding: 0; margin: 0;
  color: inherit;
}
.lc-article__content h2,
.lc-prose h2 {
  border-top: 0;
  padding-top: 0;
}
.lc-finis {
  margin: 56px 0 0; border: 0; border-top: 1px solid var(--lc-card-border);
  height: 0; padding: 0; text-align: left; background: none;
}
/* TOC：发丝侧栏，不要卡片底；sticky 已挂在 aside */
.lc-article__toc-sidebar .lc-toc,
.lc-content-page .lc-toc {
  position: static;
  border: 0; border-radius: 0; background: transparent; padding: 0;
  box-shadow: none;
}
.lc-article__toc-sidebar .lc-toc__header {
  margin: 0; padding: 0; border: 0;
}
.lc-article__toc-sidebar .lc-toc__icon { display: none; }
.lc-article__toc-sidebar .lc-toc__title {
  display: block;
  font-family: var(--lc-font-mono); font-size: 11px; font-weight: 400;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--lc-on-surface-variant);
}
.lc-article__toc-sidebar .lc-toc__list {
  margin-top: 14px; border-left: 1px solid var(--lc-card-border);
  list-style: none; padding: 0;
}
.lc-article__toc-sidebar .lc-toc__item { margin: 0; }
.lc-article__toc-sidebar .lc-toc__link {
  display: block; padding: 7px 0 7px 16px; margin-left: -1px;
  border-left: 1px solid transparent; border-top: 0;
  font-size: 13.5px; line-height: 1.5; color: var(--lc-on-surface-variant);
  background: transparent; gap: 0;
}
.lc-article__toc-sidebar .lc-toc__link:hover {
  color: var(--lc-on-surface); border-left-color: var(--lc-card-border);
  background: transparent;
}
.lc-article__toc-sidebar .lc-toc__link--active,
.lc-article__toc-sidebar .lc-toc__link.lc-is-on {
  color: var(--lc-on-surface); border-left-color: var(--lc-on-surface); font-weight: 600;
  background: transparent;
}
.lc-article__toc-sidebar .lc-toc__item--level-3 .lc-toc__link {
  padding-left: 28px; font-size: 13px;
}
.lc-article__toc-sidebar .lc-gk-num {
  margin-right: 0.35em; color: inherit; letter-spacing: 0.04em;
}
.lc-article__tags {
  display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 8px;
}
/* 正文列表：以墨帷为准，关掉 sections 伪元素编号 */
.lc-article__content ol > li::before,
.lc-prose ol > li::before { content: none; display: none; }
.lc-article__content pre:not(.lc-terminal pre),
.lc-prose pre:not(.lc-terminal pre) {
  /* 未被终端包裹时的兜底：仍走深色终端感，避免浅灰块 */
  margin: 1.5em 0; padding: 16px 18px; overflow-x: auto;
  background: var(--lc-terminal-bg); color: var(--lc-terminal-text);
  border: 1px solid var(--lc-terminal-border); border-radius: var(--lc-radius-sm);
}

/* ─── 骑缝页拉满：竖线接到 footer（底边距见 main > .lc-wrap--spine） ─ */
.lc-default-content {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
}
.lc-default-content > main,
.lc-default-content > #primary {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding-bottom: 0;
}
.lc-default-content > main > .lc-wrap--spine,
.lc-default-content > #primary > .lc-wrap--spine {
  flex: 1 1 auto;
  width: 100%;
}

/* ─── 联系卡（对齐设计 .ccard） ───────────────────────────── */
.lc-contact-cards {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px;
  background: transparent; border: 0;
}
.lc-contact-card {
  background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible;
}
.lc-contact-card:hover { border-color: transparent; }
.lc-contact-card__link {
  display: flex; flex-direction: column; gap: 10px; height: 100%;
  padding: 20px 22px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  text-decoration: none; color: inherit;
  transition: background .16s ease, border-color .16s ease;
}
.lc-contact-card__link:hover {
  background: var(--lc-fg-wash); border-color: var(--lc-on-surface);
}
.lc-contact-card__icon {
  width: auto; height: auto; border: 0; background: transparent;
  color: var(--lc-on-surface-variant); border-radius: 0; justify-content: flex-start;
}
.lc-contact-card__icon svg { width: 18px; height: 18px; }
.lc-contact-card:hover .lc-contact-card__icon {
  border-color: transparent; color: var(--lc-on-surface); background: transparent;
}
.lc-contact-card__arrow { margin-top: auto; color: var(--lc-on-surface-variant); font-size: 18px; }
.lc-contact-card__value {
  font-family: var(--lc-font-mono); font-size: 13px;
  color: var(--lc-on-surface-variant); word-break: break-all;
}

/* ─── 搜索结果页 ───────────────────────────────────────────── */
.lc-search-page .lc-search-results { margin-bottom: 0; }
.lc-search-page .lc-row-stack { border-top: 1px solid var(--lc-card-border); }
.lc-search-page__pager {
  padding-block: 28px 8px;
  border-top: 0;
}
.lc-search-page__pager .lc-pagination {
  margin: 0;
  padding-top: 0;
  border-top: 0;
}
/* 搜索混排：文章行后接项目行时补上分隔线（.lc-prow 自带 border-bottom） */
.lc-search-results > .lc-row + .lc-prow {
  border-top: 1px solid var(--lc-card-border);
}
.lc-search-results > .lc-prow + .lc-row {
  border-top: 1px solid var(--lc-card-border);
}

/* ─── 文章「发表留言」表单（对齐设计：昵称/邮箱两列，其余通栏） ─ */
.lc-comments-tech__respond {
  margin-top: 26px;
  max-width: 46rem;
}
.lc-comments-tech__respond .comment-respond,
.lc-comments-tech__respond #respond {
  margin: 0; padding: 0; border: 0; background: transparent;
}
.lc-comments-tech__form-title,
.lc-comments-tech__respond .comment-reply-title {
  margin: 0 0 18px;
  font-family: var(--lc-font-display);
  font-size: var(--lc-fs-h3, 1.25rem);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.35;
  color: var(--lc-on-surface);
  background: none; border: 0; padding: 0;
  text-transform: none;
}
.lc-comments-tech__respond .comment-reply-title small {
  display: inline-flex; margin-left: 0.5rem;
  font-family: var(--lc-font-ui); font-size: 0.8125rem; font-weight: 500;
}
.lc-comments-tech__respond .lc-comment-form-tech,
.lc-comments-tech__respond .comment-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  align-items: start;
}
@media (min-width: 560px) {
  .lc-comments-tech__respond .lc-comment-form-tech,
  .lc-comments-tech__respond .comment-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  /* 仅昵称 / 邮箱并排；网站、正文、cookie、提交通栏 */
  .lc-comments-tech__respond .lc-comment-form-tech > :not(.lc-field:has(#author)):not(.lc-field:has(#email)),
  .lc-comments-tech__respond .comment-form > :not(.lc-field:has(#author)):not(.lc-field:has(#email)) {
    grid-column: 1 / -1;
  }
}
.lc-comments-tech__respond .lc-comment-form-tech__submit-wrap {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
}
.lc-comments-tech__respond .comment-form-cookies-consent {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 0; font-size: 13px; line-height: 1.55; color: var(--lc-on-surface-variant);
}
.lc-comments-tech__respond .comment-form-cookies-consent input {
  margin-top: 0.3em; flex: none;
}
.lc-search-form-page {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; max-width: 36rem;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card);
}
.lc-search-form-page svg { width: 18px; height: 18px; flex: none; color: var(--lc-on-surface-variant); }
.lc-search-form-page .lc-input {
  flex: 1; min-width: 0; min-height: 40px; padding: 8px 0;
  border: 0; background: transparent; box-shadow: none;
}
.lc-search-form-page .lc-input:focus { box-shadow: none; }
.lc-search-form-page .lc-btn { flex: none; min-height: 40px; padding-block: 8px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .lc-foot__bar .lc-footer__heart { animation: none; }
  .lc-dialog__panel { animation: none; }
}

/* ─── 404 ──────────────────────────────────────────────────── */
.lc-nf {
  min-height: min(62vh, 640px);
  padding-block: clamp(48px, 10vh, 96px) clamp(64px, 12vh, 120px);
  align-items: start;
}
.lc-nf__code {
  margin: 0;
  font-family: var(--lc-font-display);
  font-size: clamp(72px, 14vw, 128px);
  line-height: 0.9;
  letter-spacing: -0.04em;
  font-weight: 700;
  color: var(--lc-on-surface);
  font-variant-numeric: tabular-nums;
}
.lc-nf__code i {
  font-style: normal;
  color: color-mix(in oklch, var(--lc-on-surface) 28%, var(--lc-background));
}
.lc-nf__title { margin-top: 18px; }
.lc-nf__lead { margin-top: 14px; }
.lc-nf__search {
  display: flex; align-items: center; gap: 10px;
  margin-top: 28px; max-width: 420px;
  padding: 6px 6px 6px 14px;
  border: 1px solid var(--lc-card-border); border-radius: var(--lc-radius-sm);
  background: var(--lc-surface-card);
  transition: border-color .16s ease, background .16s ease;
}
.lc-nf__search:focus-within {
  border-color: color-mix(in oklch, var(--lc-on-surface) 45%, var(--lc-card-border));
  background: var(--lc-background);
}
.lc-nf__search svg {
  width: 18px; height: 18px; flex: none; color: var(--lc-on-surface-variant);
}
.lc-nf__search .lc-input {
  flex: 1; min-width: 0; border: 0; background: transparent;
  padding: 8px 0; min-height: 40px; border-radius: 0;
}
.lc-nf__search .lc-input:hover,
.lc-nf__search .lc-input:focus {
  border-color: transparent; outline: none; box-shadow: none;
}
.lc-nf__search .lc-btn { flex: none; min-height: 40px; padding-block: 8px; }
.lc-nf__actions {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  margin-top: 22px;
}
.lc-nf .lc-ruled__mg {
  padding-top: 0.55em;
  line-height: 1;
}

@media (max-width: 920px) {
  .lc-gb { grid-template-columns: 1fr; gap: 36px; }
  .lc-gb__compose { position: static; }
  .lc-thread__replies { padding-left: 16px; }
  .lc-reply-box { margin-left: 16px; }
  .lc-flink-grid { grid-template-columns: 1fr; }
  .lc-nf { min-height: 0; padding-block: 40px 72px; }
  .lc-nf__search { max-width: none; }
}
