/* =========================================================
   Homepage V2 - 首页样式(隔离作用域)
   依据: docs/_meta/HOMEPAGE_DESIGN_AND_IMPLEMENTATION.md §4–§8
   作用域: body.is-home / .home-v2 / .cover(首页内) / .app-nav
   禁止: 无作用域的 .card/.panel/section 等通用类覆盖文章页
   注: 覆盖 modern-theme.css 残留 !important 时本文件亦用 !important(Phase A 允许, Phase B 清理)
   ========================================================= */

/* =========================================================
   0. 首页布局外壳
   ========================================================= */
/* 让滚动视口下方的 canvas 也保持纸白(否则 .content 背景只覆盖自身 100vh 盒, 长内容下方露白) */
html:has(body.is-home) { background-color: var(--studio-paper-100); }
/* 首页版心令牌: 独立语义变量, 不再重定义 --studio-content-max。
   原先写法是 `body.is-home { --studio-content-max: 1680px }` —— 在 body 作用域
   劫持全局令牌(studio-tokens.css 声明为 1920px), 导致「凡在 body.is-home 树内
   引用该令牌者行为悄悄改变」的隐式耦合, 且与全站其它页面语义不一致。
   现在的取值约定:
     --studio-content-max  全站默认版心(1920px), 工具页/关于页等继续使用
     --home-content-max    首页版心(1680px), 仅供首页区块与首页内嵌站点地图使用 */
:root { --home-content-max: 1680px; }

body.is-home {
  background: var(--studio-paper-100) !important;
  min-height: 100vh;
  min-height: 100dvh;
}
body.is-home main,
body.is-home .content,
body.is-home .markdown-section {
  background-color: var(--studio-paper-100) !important;
}

/* 首页隐藏侧边栏, 内容全宽(规范 §11.7) */
body.is-home .sidebar {
  display: none !important;
}
body.is-home .sidebar-toggle {
  display: none !important;
}
body.is-home.home-search-active .sidebar {
  position: fixed !important;
  top: 60px !important;
  bottom: 0 !important;
  left: 0 !important;
  z-index: 90 !important;
  display: block !important;
  width: min(360px, 92vw) !important;
  padding-top: var(--studio-space-4) !important;
  border-right: 1px solid var(--studio-line-paper) !important;
  background: var(--studio-paper-50) !important;
  box-shadow: 12px 0 32px rgba(13,16,14,0.18) !important;
  transform: none !important;
}
body.is-home.home-search-active .sidebar .search {
  margin: 0 var(--studio-space-4) var(--studio-space-3) !important;
}
body.is-home.home-search-active .sidebar .sidebar-nav {
  display: none !important;
}
body.is-home.home-search-active .sidebar .results-panel {
  display: block !important;
}
body.is-home.home-search-active .search .matching-post {
  margin: 0 !important;
  padding: var(--studio-space-3) var(--studio-space-4) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--studio-line-paper) !important;
  border-left: 2px solid var(--studio-green-dark) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.is-home.home-search-active .search .search-keyword {
  color: var(--studio-green-ink) !important;
}
body.is-home .content {
  left: 0 !important;
  /* 覆盖 modern-theme.css 宽屏外壳遗留的 right: var(--shell-gutter),
     否则纸白区在 1727px 容器内居中, 整带左偏约 72px(V1.4) */
  right: 0 !important;
  max-width: none !important;
  padding-top: 0 !important;
}
body.is-home .markdown-section {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 60px);
  min-height: calc(100dvh - 60px);
}
body.is-home .markdown-section > *:first-child {
  margin-top: 0;
}

/* 首页不渲染 Gitalk/编辑此页(JS 插件已加例外, 此处为兜底) */
body.is-home .gitalk-container,
body.is-home .edit-page-link {
  display: none !important;
}
body.is-home .github-corner,
body.is-home #terminal-trigger,
body.is-home #reading-progress {
  display: none !important;
}

/* =========================================================
   1. 顶部导航(规范 §6.1)
   ========================================================= */
.app-nav::before {
  content: none !important;  /* 品牌改为真实 DOM */
}

.app-nav {
  height: 60px !important;
  padding: 0 var(--studio-gutter) !important;
  gap: var(--studio-space-5) !important;
  font-family: var(--studio-font-body);
  border-bottom: 1px solid var(--studio-line-paper) !important;
  background: var(--studio-paper-50) !important;
  box-shadow: none !important;
  box-sizing: border-box;
}

/* 首页导航栏：用更高特异性选择器覆盖 modern-theme.css 中基于 shell-gutter 的媒体查询；
   左右内边距跟踪内容盒外缘(<=content-max 视口为 gutter, 更宽时同步居中), 与封面/纸白区同一条纵轴 */
body.is-home .app-nav {
  padding-left: max(var(--studio-gutter), calc((100vw - var(--home-content-max)) / 2 + var(--studio-gutter))) !important;
  padding-right: max(var(--studio-gutter), calc((100vw - var(--home-content-max)) / 2 + var(--studio-gutter))) !important;
  background: var(--studio-ink-900) !important;
  border-bottom-color: var(--studio-line-dark) !important;
}
/* 品牌文字左缘贴齐内容纵轴(清除 vue.css .app-nav>a 的 1rem margin 与 12px padding) */
body.is-home .nav-brand {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* 品牌链接(真实 DOM) */
.nav-brand {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  margin-right: auto !important;
  color: var(--studio-text) !important;
  font-family: "JetBrains Mono", "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0;
  text-decoration: none !important;
  white-space: nowrap;
}
body.is-home .nav-brand { color: var(--studio-on-dark) !important; }
.nav-brand-mark { font-weight: 800; }
.nav-brand-sep { color: var(--studio-text-muted); }
body.is-home .nav-brand-sep { color: var(--studio-on-dark-muted); }
.nav-brand-sub { color: var(--studio-text-muted); font-weight: 600; }
body.is-home .nav-brand-sub { color: var(--studio-on-dark-muted); }

.nav-links {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.nav-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.app-nav .top-nav-link {
  min-height: 34px !important;
  padding: 6px 12px !important;
  border-radius: var(--studio-radius-md) !important;
  color: var(--studio-text-muted) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  transition: color var(--studio-dur-fast) var(--studio-ease), background var(--studio-dur-fast) var(--studio-ease) !important;
}
.app-nav .top-nav-link:hover {
  color: var(--studio-text) !important;
  background: rgba(32,33,29,0.05) !important;
}
body.is-home .app-nav .top-nav-link { color: var(--studio-on-dark-muted) !important; }
body.is-home .app-nav .top-nav-link:hover {
  color: var(--studio-on-dark) !important;
  background: rgba(242,239,231,0.08) !important;
}
body.is-home .app-nav .top-nav-link[href="#/README"] {
  position: relative;
  color: var(--studio-gold) !important;
}
body.is-home .app-nav .top-nav-link[href="#/README"]::after {
  content: "";
  position: absolute;
  right: 12px;
  bottom: -13px;
  left: 12px;
  height: 2px;
  background: var(--studio-gold);
}

/* GitHub 图标按钮 */
.nav-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: var(--studio-radius-md);
  color: var(--studio-text-muted) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  text-decoration: none !important;
  transition: color var(--studio-dur-fast), background var(--studio-dur-fast), border-color var(--studio-dur-fast) !important;
}
.nav-icon-btn:hover {
  color: var(--studio-text) !important;
  background: rgba(32,33,29,0.05) !important;
  border-color: var(--studio-line-paper) !important;
}
body.is-home .nav-icon-btn { color: var(--studio-on-dark-muted) !important; }
body.is-home .nav-icon-btn:hover {
  color: var(--studio-on-dark) !important;
  background: rgba(242,239,231,0.08) !important;
  border-color: var(--studio-line-dark) !important;
}
.nav-icon-btn svg, .nav-icon-btn i { width: 20px; height: 20px; }

/* 终端按钮 >_ Ctrl K */
.nav-terminal-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 14px;
  border-radius: var(--studio-radius-md);
  color: var(--studio-text-muted) !important;
  background: transparent !important;
  border: 1px solid var(--studio-line-paper) !important;
  font-family: var(--studio-font-mono);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: color var(--studio-dur-fast), background var(--studio-dur-fast), border-color var(--studio-dur-fast) !important;
}
.nav-terminal-btn:hover {
  color: var(--studio-text) !important;
  background: rgba(32,33,29,0.04) !important;
  border-color: var(--studio-text-muted) !important;
}
body.is-home .nav-terminal-btn {
  color: var(--studio-on-dark-muted) !important;
  border-color: var(--studio-line-dark) !important;
}
body.is-home .nav-terminal-btn:hover {
  color: var(--studio-on-dark) !important;
  background: rgba(242,239,231,0.06) !important;
}
.nav-terminal-btn svg, .nav-terminal-btn i { width: 16px; height: 16px; }
.nav-kbd { letter-spacing: 0.04em; }

/* 主 CTA 进入知识库
   注意: 必须先 .app-nav 限定作用域。modern-theme.css 的 `.app-nav a { color:
   var(--slate) !important }` 特异性 (0,1,1) 高于裸 `.nav-cta` (0,1,0), 双方均
   带 !important 时按特异性取胜, 会导致按钮文字变灰(对比度仅 3.32:1)。
   提升为 `.app-nav .nav-cta` (0,2,0) 后稳定胜出。 */
.app-nav .nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 18px;
  border-radius: var(--studio-radius-md);
  color: var(--studio-ink-950) !important;
  background: var(--studio-green) !important;
  border: 1px solid var(--studio-green) !important;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background var(--studio-dur-fast), transform var(--studio-dur-fast) !important;
}
/* hover 反色: 绿底深字 → 深墨底绿字。
   原方案(--studio-green-dark 底 + --studio-on-dark 字)仅 3.20:1, 不达 AA;
   反色后为 9.13:1, 且仅复用现有令牌, 同时给出更明确的悬停反馈。 */
.app-nav .nav-cta:hover {
  background: var(--studio-ink-900) !important;
  color: var(--studio-green) !important;
  border-color: var(--studio-green) !important;
  transform: translateX(2px);
}
.app-nav .nav-cta:focus-visible {
  outline: 2px solid var(--studio-focus);
  outline-offset: 2px;
}

/* =========================================================
   2. 深色封面(规范 §5.3 / §6.2–6.8)
   ========================================================= */
body.is-home .cover {
  min-height: auto !important;            /* 不写死 100vh(规范 §5.3) */
  background: var(--studio-ink-950) !important;
  color: var(--studio-on-dark) !important;
  overflow: visible !important;            /* 装订带需上覆 */
}
/* 去除旧 Notion 装饰光球/渐变 */
body.is-home .cover::before,
body.is-home .cover::after {
  content: none !important;
  display: none !important;
}

body.is-home .cover-main {
  position: relative;
  z-index: 1;
  max-width: var(--home-content-max) !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 72px var(--studio-gutter) 54px !important;
  text-align: left !important;
}
body.is-home .cover-main > .home-v2 {
  display: grid;
  grid-template-columns: 5fr 8fr;
  gap: var(--studio-space-6);
  align-items: stretch;  /* 栏间分隔线贯通全高(参考图纵轴) */
}

/* 左栏 */
.home-hero {
  display: flex;
  flex-direction: column;
  justify-content: space-between;  /* 纵向撑满, 与右栏底边对齐 */
  gap: 16px;
}
.home-eyebrow {
  margin: 0 !important;
  font-family: var(--studio-font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--studio-green);
}
.home-eyebrow .home-eyebrow-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--studio-green);
  vertical-align: middle;
}
.home-eyebrow-lead {
  padding-bottom: 3px;
  border-bottom: 1px solid var(--studio-green);
}
.home-eyebrow-tail { opacity: 0.6; }

body.is-home .cover h1,
body.is-home .cover .cover-title,
.home-hero h1 {
  max-width: none !important;
  margin: 0 !important;
  color: var(--studio-on-dark) !important;
  font-family: var(--studio-font-display) !important;
  font-size: clamp(60px, 4.5vw, 72px) !important;  /* 随栏宽平滑缩放, 避免 SimSun 等宽字体下折行 */
  font-weight: 600 !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-shadow: none !important;
}
/* 两行标题各自 nowrap, 保证不在短语中间折行(移动端恢复 normal) */
.home-h1-line { display: block; white-space: nowrap; }
.home-hero-desc {
  max-width: 580px;
  margin: 0 !important;
  color: var(--studio-on-dark) !important;
  font-family: var(--studio-font-display);
  font-size: 20px;
  line-height: 1.6;
}

/* 作者身份 + 头像 */
.home-author {
  display: inline-flex;
  align-items: center;
  gap: var(--studio-space-3);
}
.home-avatar {
  position: relative;
  display: inline-block;
  width: 64px;
  height: 64px;
  flex: 0 0 auto;
  border-radius: 50%;            /* 参考图为圆形印章头像(规范 §6.3 允许圆形/方形二选一) */
  overflow: hidden;
  background: var(--studio-ink-800) url('https://github.com/wychmod.png?size=160') center/cover no-repeat;
  border: 1px solid var(--studio-line-dark);
  box-shadow: 0 0 0 4px rgba(242,239,231,0.05);
}
.home-avatar img {
  position: relative;
  z-index: 1;
  display: block;
  width: 64px;
  height: 64px;
  object-fit: cover;
}
/* 当 <img> 加载失败时，隐藏它并露出背景中的 GitHub 头像 */
.home-avatar img:not([src]),
.home-avatar img[src=""],
.home-avatar.is-failed img { visibility: hidden; }
.home-author-text { display: flex; flex-direction: column; gap: 3px; }
.home-author-line { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; }
.home-author-name {
  font-family: var(--studio-font-body);
  font-size: 16px;
  font-weight: 600;
  color: var(--studio-on-dark);
}
.home-author-role {
  font-family: var(--studio-font-body);
  font-size: 16px;
  color: var(--studio-on-dark-muted);
}
.home-author-bio {
  font-family: var(--studio-font-body);
  font-size: 14px;
  color: var(--studio-on-dark-muted);
  line-height: 1.5;
}
.home-author-status {
  font-family: var(--studio-font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--studio-green);
}

/* 首页搜索(规范 §6.4) */
body.is-home .cover-search,
body.is-home form#cover-search {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 540px;
  margin: 0 !important;
  border: 1px solid var(--studio-line-dark) !important;
  border-radius: var(--studio-radius-md) !important;
  background: rgba(242,239,231,0.04) !important;
  transition: border-color var(--studio-dur-fast), background var(--studio-dur-fast) !important;
}
body.is-home .cover-search:focus-within,
body.is-home form#cover-search:focus-within {
  border-color: var(--studio-focus) !important;
  background: rgba(242,239,231,0.07) !important;
}
body.is-home .cover-search-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-left: 16px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--studio-on-dark-muted);
  cursor: pointer;
}
body.is-home .cover-search-icon:hover { color: var(--studio-on-dark); }
body.is-home .cover-search-icon:focus-visible { outline: 2px solid var(--studio-focus); outline-offset: 3px; }
body.is-home .cover-search-icon svg,
body.is-home .cover-search-icon i { width: 20px; height: 20px; }
body.is-home .cover-search-icon::after { content: none !important; }
body.is-home .cover-search input,
body.is-home #cover-search-input {
  flex: 1;
  width: 100%;
  height: 52px;
  padding: 0 16px !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--studio-on-dark) !important;
  font-family: var(--studio-font-body);
  font-size: 16px;
  outline: none !important;
  box-shadow: none !important;
}
body.is-home .cover-search input::placeholder,
body.is-home #cover-search-input::placeholder {
  color: var(--studio-on-dark-muted) !important;
}

/* CTA(规范 §6.5): 与搜索框同宽, 右缘对齐成一条纵轴 */
.home-cta-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--studio-space-3);
  width: 100%;
  max-width: 540px;
}
.home-cta-row .home-cta { justify-content: center; }
.home-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 54px;
  padding: 0 24px;
  border-radius: var(--studio-radius-md);
  font-family: var(--studio-font-body);
  font-size: 16px;
  font-weight: 600;
  text-decoration: none !important;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background var(--studio-dur-fast), transform var(--studio-dur-fast), color var(--studio-dur-fast) !important;
}
.home-cta--primary {
  color: var(--studio-ink-950) !important;
  background: var(--studio-green) !important;
  border-color: var(--studio-green) !important;
}
.home-cta--primary:hover {
  background: var(--studio-green-dark) !important;
  color: var(--studio-on-dark) !important;
  transform: translateX(2px);
}
.home-cta--ghost {
  color: var(--studio-on-dark) !important;
  background: transparent !important;
  border-color: var(--studio-line-dark) !important;
}
.home-cta--ghost:hover {
  background: rgba(242,239,231,0.06) !important;
  transform: translateX(2px);
}
.home-cta:focus-visible {
  outline: 2px solid var(--studio-focus);
  outline-offset: 2px;
}
.home-cta .home-cta-arrow { transition: transform var(--studio-dur-fast); }
.home-cta:hover .home-cta-arrow { transform: translateX(3px); }

/* 研究方法五步(规范 §6.6): 参考图为数字在上/文字在下的堆叠式, 细线贯穿左栏 */
.home-method {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--studio-space-2) var(--studio-space-3);
  padding-top: var(--studio-space-3);
  border-top: 1px solid var(--studio-line-dark);
}
.home-method-step {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  padding: 2px 0;
}
.home-method-num {
  font-family: var(--studio-font-mono);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--studio-on-dark);
}
.home-method-text {
  font-family: var(--studio-font-body);
  font-size: 13px;
  color: var(--studio-on-dark-muted);
}
.home-method-sep {
  align-self: center;
  color: var(--studio-on-dark-muted);
  opacity: 0.55;
  font-size: 14px;
}

/* =========================================================
   3. 9 域知识图谱(规范 §6.7)
   ========================================================= */
.home-aside {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;  /* 眉线/图谱/终端全宽, 左右缘对齐成纵轴 */
  gap: var(--studio-space-4);
  padding-left: var(--studio-space-6);
  border-left: 1px solid var(--studio-line-dark);  /* 栏间分隔线贯通全高(stretch) */
}
.home-graph-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--studio-space-4);
  width: 100%;
  min-height: 28px;
  padding-bottom: var(--studio-space-2);
  border-bottom: 1px solid var(--studio-line-dark);
  color: var(--studio-on-dark-muted);
  font-family: var(--studio-font-mono);
  font-size: 12px;
}
.home-graph-meta span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.home-graph-meta svg,
.home-graph-meta i { width: 13px; height: 13px; }
.home-graph {
  position: relative;
  width: 100%;
  height: 520px;
  margin: 0;
}
.home-graph-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.home-graph-svg line {
  stroke: var(--studio-line-dark);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;  /* viewBox 非等比拉伸时保持 1px 清晰 */
  opacity: 0.45;
  transition: opacity var(--studio-dur-fast);
}
.home-graph-svg .kg-line { opacity: 0.4; }
/* 连线端点: 与对应领域同色 */
.kg-dot-0 { fill: var(--kg-0); }
.kg-dot-1 { fill: var(--kg-1); }
.kg-dot-2 { fill: var(--kg-2); }
.kg-dot-3 { fill: var(--kg-3); }
.kg-dot-4 { fill: var(--kg-4); }
.kg-dot-5 { fill: var(--kg-5); }
.kg-dot-6 { fill: var(--kg-6); }
.kg-dot-7 { fill: var(--kg-7); }
.kg-dot-8 { fill: var(--kg-8); }

.home-graph-center {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 150px;
  height: 150px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 12px;
  box-sizing: border-box;
  border-radius: 50%;
  border: 1px solid var(--studio-line-dark);
  background: rgba(242,239,231,0.03);
  text-align: center;
}
.home-graph-center-en {
  font-family: var(--studio-font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--studio-on-dark-muted);
}
.home-graph-center-cn {
  font-family: var(--studio-font-display);
  font-size: 17px;
  font-weight: 600;
  white-space: nowrap;
  color: var(--studio-on-dark);
}

/* 9 个领域节点：左列 3 / 右列 4 / 上下居中各 1, 列内共享左右缘纵轴;
   每节点一个领域色 --kg-color: 图标 + 主题列表点 + hover 描边(参考图彩色模块) */
.home-graph-node {
  position: absolute;
  width: 200px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px;
  border-radius: var(--studio-radius-sm);
  border: 1px solid transparent;
  background: transparent;
  color: var(--studio-on-dark);
  text-decoration: none !important;
  text-align: left;
  transition: opacity var(--studio-dur-fast), border-color var(--studio-dur-fast), background var(--studio-dur-fast);
}
.home-graph-node[data-kg-i="0"] { --kg-color: var(--kg-0); }
.home-graph-node[data-kg-i="1"] { --kg-color: var(--kg-1); }
.home-graph-node[data-kg-i="2"] { --kg-color: var(--kg-2); }
.home-graph-node[data-kg-i="3"] { --kg-color: var(--kg-3); }
.home-graph-node[data-kg-i="4"] { --kg-color: var(--kg-4); }
.home-graph-node[data-kg-i="5"] { --kg-color: var(--kg-5); }
.home-graph-node[data-kg-i="6"] { --kg-color: var(--kg-6); }
.home-graph-node[data-kg-i="7"] { --kg-color: var(--kg-7); }
.home-graph-node[data-kg-i="8"] { --kg-color: var(--kg-8); }
/* 径向定位只在桌面图谱模式生效(>=1024), 避免 transform/top/left 泄漏到移动端索引 */
@media screen and (min-width: 1025px) {
  .home-graph-node[data-kg-i="0"] { top: 0; left: 50%; transform: translateX(-50%); }
  .home-graph-node[data-kg-i="1"] { top: 4%; right: 0; }
  .home-graph-node[data-kg-i="2"] { top: 33%; right: 0; }
  /* 54% 而非 62%: 右列同轴堆叠时, 通往 AI 节点的射线会擦过本节点盒角 */
  .home-graph-node[data-kg-i="3"] { top: 54%; right: 0; }
  .home-graph-node[data-kg-i="4"] { right: 0; bottom: 0; }
  .home-graph-node[data-kg-i="5"] { left: 50%; bottom: 0; transform: translateX(-50%); }
  .home-graph-node[data-kg-i="6"] { left: 0; bottom: 6%; }
  .home-graph-node[data-kg-i="7"] { top: 40%; left: 0; }
  .home-graph-node[data-kg-i="8"] { top: 12%; left: 0; }
}
.home-graph-node:hover,
.home-graph-node:focus-visible {
  border-color: var(--kg-color);
  background: rgba(242,239,231,0.045);
  z-index: 2;
  outline: none;
}
.home-graph-node svg, .home-graph-node i {
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  margin-top: 1px;
  color: var(--kg-color);
}
.home-graph-node-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}
.home-graph-node-copy strong {
  font-family: var(--studio-font-body);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--studio-on-dark);
}
.home-graph-node-copy small {
  overflow: hidden;
  color: var(--studio-on-dark-muted);
  font-family: var(--studio-font-mono);
  font-size: 12px;
  letter-spacing: 0.05em;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-graph-node-topics {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 3px;
}
.home-graph-node-topics span {
  display: block;
  overflow: hidden;
  font-family: var(--studio-font-body);
  font-size: 13px;
  line-height: 1.4;
  color: var(--studio-on-dark-muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-graph-node-topics span::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-right: 7px;
  border-radius: 50%;
  background: var(--kg-color);
  vertical-align: 2px;
}

/* hover 时其余节点降亮度(规范 §6.7) */
.home-graph:hover .home-graph-node { opacity: 0.65; }
.home-graph:hover .home-graph-node:hover,
.home-graph:hover .home-graph-node:focus-visible { opacity: 1; }
.home-graph:hover .home-graph-svg .kg-line { opacity: 0.15; }
.home-graph:hover .home-graph-svg .kg-dot { opacity: 0.35; }

/* 对应连线高亮: 与该领域同色(:has 支持) */
.home-graph:has(.home-graph-node[data-kg-i="0"]:hover) .kg-line-0,
.home-graph:has(.home-graph-node[data-kg-i="0"]:hover) .kg-dot-0 { opacity: 1 !important; stroke: var(--kg-0); }
.home-graph:has(.home-graph-node[data-kg-i="1"]:hover) .kg-line-1,
.home-graph:has(.home-graph-node[data-kg-i="1"]:hover) .kg-dot-1 { opacity: 1 !important; stroke: var(--kg-1); }
.home-graph:has(.home-graph-node[data-kg-i="2"]:hover) .kg-line-2,
.home-graph:has(.home-graph-node[data-kg-i="2"]:hover) .kg-dot-2 { opacity: 1 !important; stroke: var(--kg-2); }
.home-graph:has(.home-graph-node[data-kg-i="3"]:hover) .kg-line-3,
.home-graph:has(.home-graph-node[data-kg-i="3"]:hover) .kg-dot-3 { opacity: 1 !important; stroke: var(--kg-3); }
.home-graph:has(.home-graph-node[data-kg-i="4"]:hover) .kg-line-4,
.home-graph:has(.home-graph-node[data-kg-i="4"]:hover) .kg-dot-4 { opacity: 1 !important; stroke: var(--kg-4); }
.home-graph:has(.home-graph-node[data-kg-i="5"]:hover) .kg-line-5,
.home-graph:has(.home-graph-node[data-kg-i="5"]:hover) .kg-dot-5 { opacity: 1 !important; stroke: var(--kg-5); }
.home-graph:has(.home-graph-node[data-kg-i="6"]:hover) .kg-line-6,
.home-graph:has(.home-graph-node[data-kg-i="6"]:hover) .kg-dot-6 { opacity: 1 !important; stroke: var(--kg-6); }
.home-graph:has(.home-graph-node[data-kg-i="7"]:hover) .kg-line-7,
.home-graph:has(.home-graph-node[data-kg-i="7"]:hover) .kg-dot-7 { opacity: 1 !important; stroke: var(--kg-7); }
.home-graph:has(.home-graph-node[data-kg-i="8"]:hover) .kg-line-8,
.home-graph:has(.home-graph-node[data-kg-i="8"]:hover) .kg-dot-8 { opacity: 1 !important; stroke: var(--kg-8); }

/* 终端状态预览(规范 §6.8): 全宽与图谱左右缘对齐, 绿调石墨底, 右侧 chevron */
.home-terminal {
  position: relative;
  width: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--studio-space-4);
  text-align: left;
  padding: 16px 20px;
  border-radius: var(--studio-radius-md);
  border: 1px solid rgba(36,209,143,0.22);
  background: var(--studio-terminal-bg);
  color: var(--studio-on-dark);
  font-family: var(--studio-font-mono);
  font-size: 14px;
  line-height: 1.7;
  cursor: pointer;
  transition: border-color var(--studio-dur-fast), background var(--studio-dur-fast) !important;
}
.home-terminal:hover { border-color: var(--studio-green); background: var(--studio-ink-900); }
.home-terminal:focus-visible { outline: 2px solid var(--studio-focus); outline-offset: 2px; }
.home-terminal-body { flex: 1; min-width: 0; display: block; }
.home-terminal-line { display: block; white-space: pre-wrap; }
.home-terminal-prompt { color: var(--studio-gold); }
.home-terminal-ok { color: var(--studio-green); }
.home-terminal-muted { color: var(--studio-on-dark-muted); }
.home-terminal-chevron {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  color: var(--studio-on-dark-muted);
}
.home-terminal:hover .home-terminal-chevron { color: var(--studio-green); }
.home-terminal-cursor {
  display: inline-block;
  width: 8px;
  height: 15px;
  margin-left: 2px;
  vertical-align: text-bottom;
  background: var(--studio-on-dark);
  animation: home-blink 1.1s steps(2, start) infinite;
}
@keyframes home-blink { 50% { opacity: 0; } }
.home-terminal-hint {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  color: var(--studio-on-dark-muted);
}

/* =========================================================
   4. 纸白内页 - README(规范 §5.1 / §6.9–6.13)
   ========================================================= */
body.is-home .content > article.markdown-section,
body.is-home .content > .markdown-section {
  color: var(--studio-text) !important;
  background-color: var(--studio-paper-100) !important;
  position: relative;
}
body.is-home .markdown-section::before {
  /* 极轻纸张纹理(规范 §4.8) */
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 30% 20%, var(--studio-paper-noise), transparent 60%);
  z-index: 0;
}
body.is-home .markdown-section > * { position: relative; z-index: 1; }

/* 章节装订带(规范 §6.9) */
.home-binding {
  position: relative;
  z-index: 2;
  /* flex 列容器内 auto 横边距会禁用 stretch, 必须显式 width:100%(V1.5) */
  width: 100%;
  margin: 0 auto !important;
  max-width: var(--home-content-max);
  min-height: 64px;
  /* V1.8: 上下留白 12->24px, 标题与上下边框拉开距离 */
  padding: var(--studio-space-5) var(--studio-gutter);
  /* V1.8: CTA/半圆滚动落点避开 60px 固定导航 */
  scroll-margin-top: calc(60px + var(--studio-space-3));
  display: flex;
  align-items: center;
  gap: var(--studio-space-4);
  border-top: 1px solid var(--studio-line-paper);
  border-bottom: 1px solid var(--studio-line-paper);
  background: var(--studio-paper-100);
}
/* V1.8: 恢复带面 z-index:2 的原始意图 — body.is-home .markdown-section > * 的 z-index:1
   特异性更高, 会覆盖 .home-binding 的 z2 */
body.is-home .markdown-section > .home-binding { z-index: 2; }
/* V1.8: 纸白栏整体抬高一层 — vue.css 的 main{position:relative;z-index:0} 形成 0 层级叠上下文,
   而封面 .cover-main 是遗留 z1!important(正值层), DOM 中封面虽先于 main, 仍整层盖在纸白栏之上,
   在带面上探区(28px)拦截半圆提示点击; 封面底部为透明 padding, 抬高后视觉不变 */
body.is-home main { z-index: 1; }
/* 首条装订带向上覆盖深色封面 28px(规范 §6.9: 24-32px; 仅平板及以上, 移动端不重叠) */
@media screen and (min-width: 769px) {
  body.is-home .markdown-section > .home-binding:first-child {
    margin-top: -28px !important;
    /* 带面全出血, 内容仍按 content-max 居中: >1920px 视口下白底带面横贯全宽,
       不再在接缝两侧露出深色封面"暗翅"(白条撞进黑封面的冲突感) */
    max-width: none;
    padding-left: max(var(--studio-gutter), calc((100vw - var(--home-content-max)) / 2 + var(--studio-gutter)));
    padding-right: max(var(--studio-gutter), calc((100vw - var(--home-content-max)) / 2 + var(--studio-gutter)));
  }
}
/* 深色小标签(规范 §6.9 / 参考图): 深石墨方块从带面顶缘垂下, 卷名两行居中, 底部圆角(V1.8),
   黑块加宽(V1.9), 底部中央下垂尖角形状(V1.10, 取代 V1.9 的箭头图标) */
.home-binding-tag {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 3px;
  align-self: flex-start;
  /* 穿过上 padding(24px)+边框(1px)后再上探 10px, 形成从顶部垂下的悬挂标签 */
  margin: calc(-1 * var(--studio-space-5) - 11px) 0 0;
  padding: 22px 28px 20px;  /* V1.11: 黑块加高加宽; V1.12/V1.13: 再加高(仅 padding, 字号不变) */
  color: var(--studio-paper-50);
  background: var(--studio-ink-950);
  border-radius: 0 0 var(--studio-radius-md) var(--studio-radius-md);
  flex: 0 0 auto;
}
/* 底部中央下垂尖角(V1.10): "向下的"是形状而非箭头图标, 纯装饰无布局位移 */
.home-binding-tag::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-top: 8px solid var(--studio-ink-950);
}
.home-binding-tag strong {
  font-family: var(--studio-font-body);
  font-size: 16px;  /* V1.11: 15->16 */
  font-weight: 700;
  line-height: 1.1;
  color: var(--studio-paper-50);
}
/* 对抗遗留 .markdown-section strong 的 charcoal !important, 深底标签保持纸白字 */
body.is-home .markdown-section .home-binding-tag strong {
  color: var(--studio-paper-50) !important;
}
.home-binding-tag span {
  font-family: var(--studio-font-mono);
  font-size: 11px;  /* V1.11: 10->11 */
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--studio-on-dark-muted);
}
/* 参考图: 标题居左, 紧跟卷标; 英文段带旧金下划线 */
.home-binding-title {
  font-family: var(--studio-font-display);
  font-size: 26px;
  font-weight: 700;  /* V1.13: 600->700 加粗 */
  color: var(--studio-text);
  white-space: nowrap;
  text-align: left;
}
.home-binding-title-en {
  padding-bottom: 2px;
  border-bottom: 2px solid var(--studio-gold);
}
.home-binding-rule {
  flex: 1;
  height: 1px;
  min-width: 24px;
  background: var(--studio-line-paper);
  margin: 0 var(--studio-space-4);
}
.home-binding-chapter {
  display: inline-flex;
  align-items: baseline;
  gap: var(--studio-space-2);
  font-family: var(--studio-font-mono);
  font-size: 11px;
  font-weight: 700;  /* V1.13: 600->700 加粗 */
  color: var(--studio-text-muted);
  letter-spacing: 0.12em;
  flex: 0 0 auto;
}
/* 参考图: 章节号 01 为衬线大数字 */
.home-binding-chapter-num {
  font-family: var(--studio-font-display);
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  color: var(--studio-text);
}

/* 接缝下滑提示(V1.8): 黑色半圆垂在首条装订带顶缘中央, 点击平滑滚动到 #field-notes.
   属交互控件, 非 §7.3 禁止的圆弧分割; 平边贴接缝, 圆顶垂入带面.
   V1.10: 弧度改扁(半椭圆弧, 72x22), 不压标题(22px <= 上 padding 24px) */
.home-scroll-cue {
  position: absolute;
  top: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 72px;
  height: 22px;
  padding: 0;
  border: 0;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  background: var(--studio-ink-950);
  cursor: pointer;
  z-index: 3;
  /* V1.9: 应作者要求, 点击/hover 不做下移动画 */
}
.home-scroll-cue:focus-visible {
  outline: 2px solid var(--studio-focus);
  outline-offset: 2px;
}

/* 最近更新(规范 §6.10) */
.home-section {
  width: 100%;  /* V1.5: 对抗 flex 列内 auto 边距收缩 */
  max-width: var(--home-content-max);
  margin: 0 auto;
  padding: var(--studio-space-6) var(--studio-gutter);
}
.home-section-head {
  display: flex;
  align-items: baseline;
  gap: var(--studio-space-3);
  max-width: none !important;
  margin: 0 0 4px !important;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--studio-line-paper);
  text-align: left !important;
}
.home-section-eyebrow {
  font-family: var(--studio-font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--studio-text-muted);
}
/* 参考图: 头部右侧"查看全部 →" */
/* 选择器必须带 `body.is-home` 前缀 —— 本元素就是 <a> 本身, 与 modern-theme.css 的
   `.markdown-section a{color:var(--notion-link-blue)!important}` 正面冲突。
   双方都带 !important 时只由特异性裁决: 裸类 (0,1,0) 输给 (0,1,1),
   于是颜色泄漏为链接蓝并只剩 4.20:1。加前缀后 (0,2,1) 稳定取胜;
   hover 用 (0,3,1) 同理压过 `.markdown-section a:hover`(0,2,1)。
   取色 --studio-text-muted 在纸白底为 5.24:1, 悬停 --studio-green-ink 为 5.18:1。 */
body.is-home .home-section-more {
  margin-left: auto;
  font-family: var(--studio-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--studio-text-muted) !important;
  text-decoration: none !important;
  border-bottom: 0 !important;
  white-space: nowrap;
  transition: color var(--studio-dur-fast);
}
body.is-home .home-section-more:hover { color: var(--studio-green-ink) !important; }
.home-section-more .home-section-more-arrow {
  display: inline-block;
  transition: transform var(--studio-dur-fast);
}
.home-section-more:hover .home-section-more-arrow { transform: translateX(3px); }
body.is-home .markdown-section .home-section-title {
  font-family: var(--studio-font-display);
  font-size: 20px !important;
  font-weight: 600 !important;
  color: var(--studio-text) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
}
/* 序号自增: 由 CSS counter 按 DOM 顺序生成, 增删条目无需手写编号 (防止手写序号重复) */
.home-recent-list { display: flex; flex-direction: column; counter-reset: home-recent; }
.home-recent-row {
  counter-increment: home-recent;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto 24px;
  align-items: center;
  gap: var(--studio-space-4);
  min-height: 88px;
  padding: 22px 0;
  border-bottom: 1px solid var(--studio-line-paper);
  text-decoration: none !important;
  color: var(--studio-text) !important;
  transition: background var(--studio-dur-fast);
}
.home-recent-row:hover { background: rgba(32,33,29,0.025); }
.home-recent-row:last-child { border-bottom: 0; }
/* 参考图: 序号为衬线大数字 */
.home-recent-num {
  font-family: var(--studio-font-display);
  font-size: 22px;
  font-weight: 600;
  line-height: 1;
  color: var(--studio-text);
}
.home-recent-num::before { content: counter(home-recent, decimal-leading-zero); }
.home-recent-main { min-width: 0; }
body.is-home .markdown-section .home-recent-title {
  font-family: var(--studio-font-display);
  font-size: 17px !important;
  font-weight: 600 !important;
  color: var(--studio-text) !important;
  margin: 0 0 2px !important;
  padding: 0 !important;
  border: 0 !important;
  letter-spacing: 0 !important;
  line-height: 1.3 !important;
}
.home-recent-row:hover .home-recent-title { color: var(--studio-green-ink); }
body.is-home .markdown-section .home-recent-excerpt {
  margin: 0 !important;
  font-family: var(--studio-font-body);
  font-size: 14px !important;
  color: var(--studio-text-muted) !important;
  line-height: 1.45 !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 参考图: 元数据横排 — 分类(领域色点) + 日期 */
.home-recent-meta {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--studio-space-5);
  font-family: var(--studio-font-mono);
  font-size: 12px;
  color: var(--studio-text-muted);
  white-space: nowrap;
}
.home-recent-cat {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--studio-font-body);
  font-size: 13px;
  font-weight: 500;
  color: var(--studio-text);
}
.home-recent-cat::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--cat-color, var(--studio-green));
  flex: 0 0 auto;
}
.home-recent-arrow {
  color: var(--studio-text-muted);
  font-size: 16px;
  text-align: right;
  transition: transform var(--studio-dur-fast), color var(--studio-dur-fast);
}
.home-recent-row:hover .home-recent-arrow {
  transform: translateX(3px);
  color: var(--studio-green-ink);
}

/* 书桌边 - 页边批注(规范 §6.11) */
.home-desk {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--studio-space-5);
}
.home-marginalia {
  padding: 0;
  border: 0;
  background: transparent;
}
.home-marginalia-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--studio-space-5); }
.home-marginalia-item {
  min-height: 180px;
  padding: var(--studio-space-5);
  border: 1px solid var(--studio-line-paper);
  border-top: 2px solid var(--studio-gold);
  background: rgba(233,229,220,0.45);
}
body.is-home .markdown-section .home-marginalia-quote {
  font-family: var(--studio-font-display);
  font-size: 15px !important;
  color: var(--studio-text) !important;
  line-height: 1.55 !important;
  margin: 0 0 8px !important;
}
body.is-home .markdown-section .home-marginalia-source {
  margin: 0 !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}
body.is-home .markdown-section .home-marginalia-source a {
  font-family: var(--studio-font-mono);
  font-size: 12px;
  /* !important 必要性: 本条与 `.markdown-section a{color:var(--notion-link-blue)!important}`
     竞争, 缺 !important 时无论特异性多高都会输, 颜色泄漏为链接蓝(4.20:1)。
     补上后 (0,3,2) 稳定取胜, 取到 --studio-green-ink 的 5.18:1。 */
  color: var(--studio-green-ink) !important;
  text-decoration: none;
}
.home-marginalia-source a:hover { text-decoration: underline; }

/* 作者手记(规范 §6.12) */
.home-note {
  position: relative;
  display: grid;
  grid-template-columns: 172px 40px minmax(0, 1fr) auto 100px;
  align-items: center;
  gap: var(--studio-space-5);
  width: 100%;  /* V1.5: 对抗 flex 列内 auto 边距收缩 */
  /* 与兄弟 section 的内容缘对齐: 视口未达上限时按 100vw 收缩(V1.4) */
  max-width: min(calc(100vw - (2 * var(--studio-gutter))), calc(var(--home-content-max) - (2 * var(--studio-gutter))));
  min-height: 160px;
  margin: 0 auto var(--studio-space-8);
  padding: var(--studio-space-7) 0;
  text-align: left;
  border-top: 1px solid var(--studio-line-paper);
  border-bottom: 1px solid var(--studio-line-paper);
  background: transparent;
  color: var(--studio-text);
}
.home-note-label {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
  padding: 0 var(--studio-space-4);
  color: var(--studio-on-dark);
  background: var(--studio-ink-950);
}
.home-note-label strong { font-family: var(--studio-font-display); font-size: 16px; }
/* 深底标签文字加白: 对抗遗留 .markdown-section strong 的 charcoal !important */
body.is-home .markdown-section .home-note-label strong { color: var(--studio-on-dark) !important; }
.home-note-label span { font-family: var(--studio-font-mono); font-size: 12px; color: var(--studio-on-dark); }
/* 参考图: 文本前的衬线大引号 */
.home-note-quote {
  font-family: var(--studio-font-display);
  font-size: 52px;
  font-weight: 700;
  line-height: 1;
  /* 52px 阈值 3:1, 原 --studio-gold 仅 1.79:1 */
  color: var(--studio-gold-ink);
  align-self: start;
  margin-top: 18px;
}
body.is-home .markdown-section .home-note-text {
  font-family: var(--studio-font-display);
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--studio-text) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}
body.is-home .markdown-section .home-note-sig {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 0 !important;
  font-family: var(--studio-font-mono);
  font-size: 12px !important;
  color: var(--studio-text-muted) !important;
}
.home-note-sig strong { color: var(--studio-text); }
.home-note-sig span { white-space: nowrap; }
/* 参考图: 右侧 W 圆形印章(纯装饰) */
.home-note-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 1px solid var(--studio-line-paper);
  font-family: var(--studio-font-display);
  font-size: 32px;
  font-weight: 700;
  color: var(--studio-text);
  background: rgba(32, 33, 29, 0.04);
}

/* 知识索引(规范 §6.13) */
.home-index {
  width: 100%;  /* V1.5: 对抗 flex 列内 auto 边距收缩 */
  max-width: var(--home-content-max);
  margin: 0 auto;
  padding: var(--studio-space-6) var(--studio-gutter);
}
.home-index-head {
  display: flex;
  align-items: baseline;
  gap: var(--studio-space-3);
  margin-bottom: var(--studio-space-5);
  border-bottom: 1px solid var(--studio-line-paper);
  padding-bottom: var(--studio-space-3);
}
.home-index-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--studio-space-5) var(--studio-space-6);
}
.home-index-col h3 {
  font-family: var(--studio-font-body) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--studio-text) !important;
  margin: 0 0 var(--studio-space-2) !important;
  padding-bottom: 6px !important;
  border-bottom: 1px solid var(--studio-line-paper) !important;
  letter-spacing: 0 !important;
  line-height: 1.3 !important;
}
.home-index-col h3:not(:first-child) { margin-top: var(--studio-space-5) !important; }
body.is-home .markdown-section .home-index-col ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.is-home .markdown-section .home-index-col li {
  margin: 0 !important;
  padding: 6px 0 !important;
  border-bottom: 1px dashed var(--studio-line-paper) !important;
}
body.is-home .markdown-section .home-index-col li:last-child { border-bottom-color: transparent !important; }
body.is-home .markdown-section .home-index-col a {
  display: inline !important;
  padding: 0 !important;
  font-family: var(--studio-font-body) !important;
  font-size: 14px !important;
  color: var(--studio-text) !important;
  text-decoration: none !important;
  border-bottom: 0 !important;
  transition: color var(--studio-dur-fast) !important;
}
body.is-home .markdown-section .home-index-col a:hover { color: var(--studio-green-ink) !important; }
.home-index-desc {
  display: block;
  margin-top: 2px;
  font-family: var(--studio-font-body);
  font-size: 12px;
  line-height: 1.45;
  color: var(--studio-text-muted);
}

@media screen and (max-width: 1024px) {
  .home-index-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 768px) {
  .home-index-grid { grid-template-columns: 1fr; }
  .home-index { padding-left: 16px !important; padding-right: 16px !important; }
}

/* 隐藏旧 home-dashboard / notion 样式(已被新结构取代) */
body.is-home .home-dashboard,
body.is-home .home-band,
body.is-home .notion-card,
body.is-home .assistant-banner,
body.is-home .workspace-mockup,
body.is-home .cover-stats,
body.is-home .notion-chips {
  display: none !important;
}

/* =========================================================
   5. 响应式(规范 §8)
   ========================================================= */

/* 小桌面/平板横屏 1024–1279 */
@media screen and (max-width: 1279px) {
  /* 底 padding 64px: 为装订带 28px 上叠让出空间并保留深色过渡带(V1.7) */
  body.is-home .cover-main { padding: 72px var(--studio-gutter) 64px !important; }
  body.is-home .cover-main > .home-v2 { grid-template-columns: 5fr 7fr; gap: var(--studio-space-5); }
  body.is-home .cover h1, .home-hero h1 { font-size: 60px !important; }
  .home-hero-desc { font-size: 18px; }
  .home-graph { height: 440px; }
  /* 窄桌面: 图谱宽度有限, 隐藏英文副标题保留主题点, 节点收窄避免三列文字相撞;
     中心圆同步收窄并隐藏英文行, 保证左右节点与圆之间留有可见连线 */
  .home-graph-node { width: 160px; }
  .home-graph-node-copy small { display: none; }
  .home-graph-node[data-kg-i="1"] { top: 2%; }
  /* 32% 而非 27%: 避免通往后端开发的射线擦过本节点盒角 */
  .home-graph-node[data-kg-i="2"] { top: 32%; }
  .home-graph-node[data-kg-i="3"] { top: 52%; }
  .home-graph-node[data-kg-i="6"] { bottom: 8%; }
  .home-graph-node[data-kg-i="7"] { top: 36%; }
  .home-graph-node[data-kg-i="8"] { top: 6%; }
  .home-graph-center { width: 120px; height: 120px; padding: 8px; }
  .home-graph-center-en { display: none; }
  .home-graph-center-cn { font-size: 16px; white-space: nowrap; }
}

/* 平板竖屏 768–1023: Hero 上下 + 9 域径向图谱改为文本索引(规范 §8.3/§8.4) */
@media screen and (max-width: 1024px) {
  body.is-home .cover-main { padding: 72px var(--studio-gutter) 64px !important; }
  body.is-home .cover-main > .home-v2 { grid-template-columns: 1fr; }
  body.is-home .cover h1, .home-hero h1 { font-size: 44px !important; }
  .home-hero { justify-content: flex-start; }
  .home-aside { padding-left: 0; border-left: 0; border-top: 1px solid var(--studio-line-dark); padding-top: var(--studio-space-4); }
  .home-index-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nav-links { display: none; }  /* 低优先级入口隐藏 */

  /* 隐藏径向 SVG 与中心圆, 9 域转两列索引(保留彩色图标), 避免 768px 宽下节点挤边/重叠 */
  .home-graph-svg, .home-graph-center { display: none; }
  .home-graph-meta span:last-child { display: none; }
  .home-graph { height: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--studio-space-3); padding-top: 0; }
  .home-graph-node {
    position: static;
    width: auto;
    margin: 0;
    transform: none;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: var(--studio-space-2);
    padding: 10px 12px;
  }
  .home-graph-node svg, .home-graph-node i { width: 16px; height: 16px; margin-top: 0; }
  .home-graph-node-copy strong { font-size: 13px; text-align: left; }
  .home-graph-node-copy small,
  .home-graph-node-topics { display: none; }
}

/* =========================================================
   8. 页脚：项目维护 + 联系方式(深色收尾区 / 数字书房后封面)
   ========================================================= */
body.is-home .home-footer {
  position: relative;
  display: flex;
  flex-direction: column;
  margin-top: auto;
  background: var(--studio-ink-950);
  color: var(--studio-on-dark);
  overflow: hidden;
}

/* 顶部边界带：与纸白区衔接，像刊物的后封面封口 */
body.is-home .home-footer-boundary {
  display: flex;
  align-items: center;
  gap: var(--studio-space-4);
  max-width: var(--home-content-max);
  margin: 0 auto;
  padding: 28px var(--studio-gutter) 0;
}
body.is-home .home-footer-boundary-rule {
  flex: 1;
  height: 1px;
  background: var(--studio-line-dark);
}
body.is-home .home-footer-boundary-label {
  flex: 0 0 auto;
  font-family: var(--studio-font-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--studio-gold);
}

/* 主体三栏：品牌 / 维护 / 联系。
   两侧栏等宽(1.1fr): 中栏中心 = 左栏宽 + 栏距 + 中栏半宽, 栏距相同时
   只有左右栏等宽才能让中栏中心落在内容宽度中轴上, 与顶部「END / 本卷终」
   边界标签(整宽居中)同轴; 中栏 1fr 略窄, 突出两侧内容栏。 */
body.is-home .home-footer-main {
  position: relative;
  z-index: 1;
  flex: 1 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1.1fr);
  column-gap: 72px;
  row-gap: var(--studio-space-6);
  align-items: start;
  max-width: var(--home-content-max);
  margin: 0 auto;
  padding: 72px var(--studio-gutter) 80px;
}

/* 品牌栏靠右留白, 与维护栏拉开距离(对齐知识索引左栏 padding-right 的呼吸节奏) */
body.is-home .home-footer-brand {
  padding-right: 32px;
}

/* 品牌栏 */
body.is-home .home-footer-brand {
  display: flex;
  flex-direction: column;
  gap: var(--studio-space-4);
}
body.is-home .home-footer-brand-row {
  display: flex;
  align-items: center;
  gap: var(--studio-space-3);
}
body.is-home .home-footer-avatar {
  position: relative;
  display: inline-block;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  border-radius: 50%;
  overflow: hidden;
  background: var(--studio-ink-800);
  border: 1px solid var(--studio-line-dark);
  box-shadow: 0 0 0 3px rgba(242,239,231,0.05);
}
body.is-home .home-footer-avatar img {
  position: relative;
  z-index: 1;
  display: block;
  width: 48px;
  height: 48px;
  object-fit: cover;
}
body.is-home .home-footer-avatar-fallback {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  font-family: var(--studio-font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--studio-on-dark);
  background: var(--studio-ink-800);
}
body.is-home .home-footer-avatar img:not([src]),
body.is-home .home-footer-avatar img[src=""],
body.is-home .home-footer-avatar.is-failed img { visibility: hidden; }
body.is-home .home-footer-brand-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
body.is-home .home-footer-brand-copy strong {
  font-family: var(--studio-font-body);
  font-size: 20px;
  font-weight: 700;
  color: var(--studio-on-dark) !important;
}
body.is-home .home-footer-brand-copy span {
  font-family: var(--studio-font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--studio-on-dark) !important;
}
body.is-home .home-footer-brand-desc {
  max-width: 460px;
  margin: 0 !important;
  font-family: var(--studio-font-display);
  font-size: 16px;
  line-height: 1.8;
  color: var(--studio-on-dark) !important;
}

/* 身份标签 */
body.is-home .home-footer-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 460px;
}
body.is-home .home-footer-tag {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 16px;
  border-radius: var(--studio-radius-sm);
  border: 1px solid var(--studio-line-dark);
  background: rgba(242, 239, 231, 0.05);
  font-family: var(--studio-font-mono);
  font-size: 13px;
  font-weight: 600;
  color: var(--studio-on-dark);
  letter-spacing: 0.02em;
}

/* 座右铭 */
body.is-home .home-footer-motto {
  position: relative;
  max-width: 460px;
  margin: 0;
  padding: 0 0 0 16px;
  border: none !important;
  border-left: 2px solid var(--studio-gold) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.is-home .home-footer-motto p {
  margin: 0 !important;
  font-family: var(--studio-font-display);
  font-size: 15px;
  line-height: 1.7;
  color: var(--studio-on-dark) !important;
  font-style: italic;
}

/* 首页不显示 Docsify 分页条，避免页脚后出现纸白条 */
body.is-home .pagination,
body.is-home .docsify-pagination-container {
  display: none !important;
}
body.is-home .home-footer-stats {
  display: flex;
  align-items: flex-start;
  gap: var(--studio-space-5);
  margin-top: var(--studio-space-1);
}
body.is-home .home-footer-stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
body.is-home .home-footer-stat-num {
  font-family: var(--studio-font-display);
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  color: var(--studio-on-dark);
}
body.is-home .home-footer-stat-label {
  font-family: var(--studio-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--studio-on-dark-muted);
}

/* 栏公共标题 */
body.is-home .home-footer-eyebrow {
  display: block;
  margin-bottom: var(--studio-space-3);
  font-family: var(--studio-font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--studio-green);
}

/* 中栏「项目维护」标题(英文 eyebrow + 中文 title)整体居中,
   与下方两列链接同轴; 联系栏保持左对齐(仅项目维护居中)。
   注意不能用 :first-of-type —— 它按元素类型匹配兄弟节点,
   .home-footer-main 的第一个 div 是品牌栏, 规则会落空。 */
body.is-home .home-footer-col--maintenance .home-footer-eyebrow,
body.is-home .home-footer-col--maintenance .home-footer-title {
  text-align: center;
}
body.is-home .home-footer-title {
  margin: 0 0 var(--studio-space-4) !important;
  font-family: var(--studio-font-display) !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  color: var(--studio-on-dark) !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
}

/* 维护链接：两列网格, 摊平 10 条链接避免一列过长。
   两列按内容自适应宽度并整体居中(相对上方标题同轴), 列间保留 24px 间隔;
   但每一列内部链接内容整体靠左对齐, 让每列整齐清爽。 */
body.is-home .home-footer-links {
  display: grid;
  grid-template-columns: max-content max-content;
  justify-content: center;
  column-gap: 24px;
}
body.is-home .home-footer-link,
body.is-home .markdown-section .home-footer-link {
  display: inline-flex;
  align-items: center;
  gap: var(--studio-space-3);
  padding: 12px 4px;
  border-bottom: 1px solid var(--studio-line-dark);
  color: var(--studio-on-dark) !important;
  font-family: var(--studio-font-body);
  font-size: 16px;
  font-weight: 500;
  text-decoration: none !important;
  transition: color var(--studio-dur-fast), border-color var(--studio-dur-fast), background var(--studio-dur-fast) !important;
}
body.is-home .home-footer-link:nth-child(-n + 2) { border-top: 1px solid var(--studio-line-dark); }
body.is-home .home-footer-link-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  color: var(--studio-on-dark-muted);
  transition: color var(--studio-dur-fast);
}
body.is-home .home-footer-link-icon svg,
body.is-home .home-footer-link-icon i { width: 18px; height: 18px; }
body.is-home .home-footer-link-text { min-width: 0; white-space: nowrap; }
body.is-home .home-footer-link-arrow {
  font-family: var(--studio-font-mono);
  font-size: 14px;
  color: var(--studio-on-dark-muted);
  transition: transform var(--studio-dur-fast), color var(--studio-dur-fast);
}
body.is-home .home-footer-link:hover,
body.is-home .markdown-section .home-footer-link:hover {
  color: var(--studio-gold) !important;
  border-color: var(--studio-gold) !important;
}
body.is-home .home-footer-link:hover .home-footer-link-icon,
body.is-home .home-footer-link:hover .home-footer-link-arrow { color: var(--studio-gold); }
body.is-home .home-footer-link:hover .home-footer-link-arrow { transform: translateX(4px); }

/* 联系按钮 */
body.is-home .home-footer-actions {
  display: flex;
  flex-direction: column;
  gap: var(--studio-space-3);
  margin-bottom: var(--studio-space-4);
}
body.is-home .home-footer-btn,
body.is-home .markdown-section .home-footer-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--studio-space-3);
  height: 58px;
  padding: 0 24px;
  border-radius: var(--studio-radius-md);
  font-family: var(--studio-font-body);
  font-size: 16px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background var(--studio-dur-fast), transform var(--studio-dur-fast), border-color var(--studio-dur-fast), color var(--studio-dur-fast) !important;
}
body.is-home .home-footer-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
}
body.is-home .home-footer-btn-icon svg,
body.is-home .home-footer-btn-icon i { width: 18px; height: 18px; }
body.is-home .home-footer-btn-text { flex: 1; min-width: 0; }
body.is-home .home-footer-btn-arrow {
  font-family: var(--studio-font-mono);
  font-size: 14px;
  transition: transform var(--studio-dur-fast);
}
body.is-home .home-footer-btn--primary,
body.is-home .markdown-section .home-footer-btn--primary {
  color: var(--studio-ink-950) !important;
  background: var(--studio-green) !important;
  border: 1px solid var(--studio-green) !important;
}
body.is-home .home-footer-btn--primary:hover,
body.is-home .markdown-section .home-footer-btn--primary:hover {
  background: var(--studio-green-dark) !important;
  color: var(--studio-on-dark) !important;
  transform: translateX(2px);
}
body.is-home .home-footer-btn--primary:hover .home-footer-btn-arrow { transform: translateX(3px); }
body.is-home .home-footer-btn--ghost,
body.is-home .markdown-section .home-footer-btn--ghost {
  color: var(--studio-on-dark) !important;
  background: transparent !important;
  border: 1px solid var(--studio-line-dark) !important;
}
body.is-home .home-footer-btn--ghost:hover,
body.is-home .markdown-section .home-footer-btn--ghost:hover {
  border-color: var(--studio-gold) !important;
  color: var(--studio-gold) !important;
  transform: translateX(2px);
}
body.is-home .home-footer-btn--ghost:hover .home-footer-btn-arrow { transform: translateX(3px); }

/* 页脚终端入口 */
body.is-home .home-footer-terminal {
  display: inline-flex;
  align-items: center;
  gap: var(--studio-space-3);
  width: 100%;
  height: 44px;
  padding: 0 16px;
  border-radius: var(--studio-radius-md);
  border: 1px solid var(--studio-line-dark) !important;
  background: transparent !important;
  color: var(--studio-on-dark-muted) !important;
  font-family: var(--studio-font-mono);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: color var(--studio-dur-fast), border-color var(--studio-dur-fast), background var(--studio-dur-fast) !important;
}
body.is-home .home-footer-terminal svg,
body.is-home .home-footer-terminal i { width: 16px; height: 16px; }
body.is-home .home-footer-terminal-kbd {
  margin-left: auto;
  padding: 2px 6px;
  border-radius: var(--studio-radius-sm);
  border: 1px solid var(--studio-line-dark);
  background: var(--studio-ink-900);
  font-family: var(--studio-font-mono);
  font-size: 11px;
  color: var(--studio-on-dark-muted);
}
body.is-home .home-footer-terminal:hover {
  color: var(--studio-green) !important;
  border-color: var(--studio-green) !important;
  background: rgba(36,209,143,0.06) !important;
}
body.is-home .home-footer-terminal:hover .home-footer-terminal-kbd {
  border-color: var(--studio-green);
  color: var(--studio-green);
}

/* 联系明细：Email / 微信 / QQ 行 */
body.is-home .home-footer-contact {
  display: flex;
  flex-direction: column;
  margin: 0 0 var(--studio-space-4);
}
body.is-home .home-footer-contact-item {
  display: flex;
  align-items: center;
  gap: var(--studio-space-3);
  padding: 11px 14px;
  border-bottom: 1px solid var(--studio-line-dark);
  font-family: var(--studio-font-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--studio-on-dark);
}
body.is-home .home-footer-contact-item:first-child { border-top: 1px solid var(--studio-line-dark); }
/* color 需 !important: modern-theme.css 的 `.markdown-section a{color:var(--notion-link-blue)
   !important}` 会命中页脚内链接(内容渲染于 .markdown-section), 且带 !important 取胜,
   导致深底上的链接变成低对比度蓝(3.63:1)。此处按项目既有覆盖策略显式加 !important。 */
body.is-home a.home-footer-contact-item { text-decoration: none !important; color: var(--studio-on-dark) !important; transition: color var(--studio-dur-fast), border-color var(--studio-dur-fast); }
body.is-home a.home-footer-contact-item:hover { color: var(--studio-gold) !important; border-color: var(--studio-gold) !important; }
/* 联系项内文本同样需压过泄漏规则, 统一为深底可读的次要色 */
body.is-home .home-footer-contact-text,
body.is-home .home-footer-contact-item span { color: var(--studio-on-dark-muted) !important; }
body.is-home .home-footer-contact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  color: var(--studio-on-dark-muted);
}
body.is-home .home-footer-contact-icon svg,
body.is-home .home-footer-contact-icon i { width: 20px; height: 20px; }
body.is-home .home-footer-contact-text { flex: 1; min-width: 0; font-family: var(--studio-font-mono); font-size: 13px; letter-spacing: 0.02em; }

/* 底部栏 */
body.is-home .home-footer-bottom {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--studio-space-4);
  max-width: var(--home-content-max);
  margin: 0 auto;
  padding: var(--studio-space-4) var(--studio-gutter);
  border-top: 1px solid var(--studio-line-dark);
}
body.is-home .home-footer-copy {
  margin: 0 !important;
  font-family: var(--studio-font-mono);
  font-size: 12px;
  /* --studio-on-dark-muted(#a9aea7) 在深墨底为 8.47:1 */
  color: var(--studio-on-dark-muted) !important;
}
body.is-home .home-footer-star {
  margin: 0 !important;
  font-family: var(--studio-font-body);
  font-size: 14px;
  /* !important 必要性: `.markdown-section p`(0,1,1) 带 !important 的 --slate(#5f5d57)
     会压过本规则(0,2,1 但无 !important), 实测只剩 2.91:1。补上 !important 后
     由特异性取胜, 取到 --studio-on-dark 在深墨底的 8.47:1。 */
  color: var(--studio-on-dark) !important;
}

/* 背景 W 印章水印 */
body.is-home .home-footer-mark {
  position: absolute;
  right: max(var(--studio-gutter), calc((100vw - var(--home-content-max)) / 2 + var(--studio-gutter)));
  bottom: 80px;
  z-index: 0;
  font-family: var(--studio-font-display);
  font-size: 240px;
  font-weight: 700;
  line-height: 1;
  color: var(--studio-on-dark);
  opacity: 0.025;
  pointer-events: none;
  user-select: none;
}

/* 小桌面/平板竖屏 768-1100: 三栏过挤, 品牌栏独占整行, 维护/联系两栏并排
   (对齐知识索引 ≤1200 收为双栏的思路) */
@media screen and (max-width: 1100px) and (min-width: 769px) {
  body.is-home .home-footer-main {
    grid-template-columns: 1fr 1fr;
    column-gap: 56px;
    row-gap: var(--studio-space-6);
  }
  body.is-home .home-footer-brand {
    grid-column: 1 / -1;
    padding-right: 0;
  }
}

/* 手机 <=767 */
@media screen and (max-width: 768px) {
  .app-nav { height: 58px !important; padding: 0 14px !important; }
  .nav-brand-sub, .nav-links { display: none !important; }
  .nav-kbd { display: none; }
  .app-nav .nav-cta { display: none !important; }  /* 移动端依赖侧边栏/悬浮按钮 */
  .nav-terminal-btn { height: 40px; width: 40px; padding: 0; justify-content: center; }
  body.is-home.home-search-active .sidebar { top: 58px !important; }
  body.is-home #terminal-trigger {
    display: flex !important;
    width: 42px !important;
    height: 42px !important;
    border: 1px solid var(--studio-green) !important;
    border-radius: var(--studio-radius-md) !important;
    color: var(--studio-green) !important;
    background: var(--studio-ink-900) !important;
    box-shadow: none !important;
  }

  body.is-home .cover-main { padding: 68px 16px 56px !important; }
  body.is-home .cover h1,
  body.is-home .cover .cover-title,
  .home-hero h1 {
    width: 100%;
    font-size: 36px !important;
    line-height: 1.18 !important;
    text-align: center !important;
  }
  .home-h1-line { white-space: normal; }  /* 移动端允许自然换行(规范 §8.4) */
  .home-hero-desc { font-size: 16px; }
  body.is-home .cover-search, body.is-home form#cover-search { width: 100%; max-width: none; }
  .home-cta-row { max-width: none; }
  .home-method { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; }

  .home-terminal { max-width: none; font-size: 12px; }
  .home-binding { flex-wrap: wrap; gap: var(--studio-space-2) var(--studio-space-3); margin-top: 0 !important; }
  /* 移动端标题独占一行(order:-1), 卷标不可悬挂, 恢复行内样式, 仅保留底部圆角 */
  .home-binding-tag { align-self: center; margin: -8px 0; padding: 14px 20px 14px; }
  .home-scroll-cue { display: none; }  /* 移动端自然滚动, 隐藏下滑提示 */
  .home-binding-title {
    width: 100%;
    order: -1;
    font-size: 20px;
    white-space: normal;
  }
  .home-binding-chapter-num { font-size: 26px; }
  .home-binding-rule { display: none; }
  .home-section { padding: var(--studio-space-6) 16px var(--studio-space-5); }

  .home-recent-row { grid-template-columns: 28px minmax(0, 1fr); min-height: 0; }
  .home-recent-num { font-size: 18px; }
  .home-recent-excerpt { display: none; }
  .home-recent-arrow { display: none; }
  .home-recent-meta { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; gap: 8px; }

  .home-index-grid { grid-template-columns: 1fr; }
  .home-marginalia-list { grid-template-columns: 1fr; }
  .home-note {
    grid-template-columns: 1fr;
    gap: var(--studio-space-3);
    /* 桌面端 max-width 是 min(100vw - 80px, 1600px) —— 390px 视口下只有 310px,
       移动端改用 margin 控边, 解除该上限让手记撑到 358px, 避免长句过窄 */
    max-width: none;
    min-height: auto;
    margin: 0 16px var(--studio-space-6);
    padding: var(--studio-space-5) var(--studio-space-4);
    background: transparent;
    color: var(--studio-text);
  }
  .home-note-label { grid-column: 1 / -1; min-height: 64px; padding: var(--studio-space-3); }
  .home-note-quote { display: none; }
  /* 单列布局下正文跨满整行, 并统一字体尺寸(合并在一条规则内, 原先拆成两条同选择器声明) */
  .home-note-text { grid-column: 1 / -1; font-size: 16px; }
  .home-note-sig { grid-column: 1; }
  .home-note-mark { display: none; }

  body.is-home .home-footer-boundary { padding: 24px 16px 0; }
  body.is-home .home-footer-main {
    grid-template-columns: 1fr;
    gap: var(--studio-space-6);
    padding: 40px 16px 48px;
  }
  body.is-home .home-footer-title { font-size: 26px !important; }
  body.is-home .home-footer-brand-desc { max-width: none; }
  body.is-home .home-footer-tags { max-width: none; }
  body.is-home .home-footer-motto { max-width: none; }
  body.is-home .home-footer-stats { gap: var(--studio-space-5); }
  body.is-home .home-footer-stat-num { font-size: 24px; }
  body.is-home .home-footer-links { grid-template-columns: 1fr; }
  body.is-home .home-footer-link { font-size: 15px; padding: 14px 0; justify-content: flex-start; }
  body.is-home .home-footer-btn { width: 100%; }
  body.is-home .home-footer-terminal { width: 100%; }
  body.is-home .home-footer-contact { margin: 0 0 var(--studio-space-4); }
  body.is-home .home-footer-contact-item { padding: 12px 4px; }
  body.is-home .home-footer-bottom {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: var(--studio-space-3);
    padding: var(--studio-space-4) 16px;
  }
  body.is-home .home-footer-star { font-size: 15px; }
  body.is-home .home-footer-mark { font-size: 140px; right: 16px; bottom: 120px; opacity: 0.02; }
}

/* 窄屏 <=420: CTA 改单列(规范 §8.4) */
@media screen and (max-width: 420px) {
  .home-cta-row { grid-template-columns: 1fr; }
}

/* 极窄屏 <=360 */
@media screen and (max-width: 360px) {
  .home-graph { grid-template-columns: 1fr; }
  body.is-home .cover h1, .home-hero h1 { font-size: 32px !important; }
  .home-recent-title { font-size: 16px; }
}
