/* 全站外壳（板块 1，2026-10-16 从骨架 site.css 收口）
   只引用 tokens.css 语义变量。每个部件一节：窄屏基线在前、≥861px 桌面层在后（手机代码保留不维护）。
   规则真相源：references/design-system-v0.md；本板块风格标准：.trellis/tasks/10-16-shell/style-standard.md */

/* ==================== 基础 ==================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--field-soot); color: var(--on-soot-fg);
  font: var(--fs-body)/var(--lh-body) var(--sans); }
h1, h2, h3, p, ol, ul, dl, dd, figure, blockquote { margin: 0; padding: 0; }
ol, ul { list-style: none; }
a { color: inherit; text-decoration-color: var(--line); text-underline-offset: .25em; }
a:hover { text-decoration-color: currentColor; }
img, svg { display: block; max-width: 100%; }
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
:focus-visible { outline: 2px solid var(--burn); outline-offset: 3px; }
.skip { position: absolute; left: -9999px; top: 0; z-index: 99; padding: 10px 14px; background: var(--bone); color: var(--soot); font: 700 12px/1 var(--mono); }
.skip:focus { left: 8px; top: 8px; }
.wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding-left: var(--pad-x); padding-right: var(--pad-x); }
.wrap-read { max-width: 820px; }
.sec { padding-top: var(--sec-y); padding-bottom: var(--sec-y); border-top: 1px solid var(--line); }
/* 分隔线与内容同宽：.wrap 上的边框改画在内边距以内 */
.sec.wrap { border-top: 0; background: linear-gradient(var(--line), var(--line)) var(--pad-x) 0 / calc(100% - 2 * var(--pad-x)) 1px no-repeat; }
.sec-intro { max-width: 46em; margin-bottom: 28px; color: var(--on-soot-muted); }
.sec-more { margin-top: 26px; }
.eyebrow { font: 700 var(--fs-label)/1.4 var(--mono); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--on-soot-muted); }
.lead { max-width: 38em; margin-top: 22px; font-size: 16px; line-height: 1.75; color: var(--on-soot-muted); }
.ctas { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; margin-top: 26px; }
.btn-line { display: inline-block; padding: 10px 0 6px; border-bottom: 1px solid currentColor; font: 700 11px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; }
.btn-line[disabled] { opacity: .4; cursor: not-allowed; }
.link-mono { font: 600 11px/1.6 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.tag { display: inline-block; padding: 3px 7px; border: 1px solid var(--line); font: 600 var(--fs-micro)/1.3 var(--mono); letter-spacing: var(--ls-label-tight); text-transform: uppercase; color: var(--on-soot-muted); text-decoration: none; }
.tag-status[data-status="ACTIVE"], .tag-status[data-status="OPERATING"] { color: var(--on-soot-fg); }
.tag-status[data-status="REFRESH REQUIRED"] { color: var(--on-soot-accent); border-color: currentColor; }
.row-years { font: 600 var(--fs-micro)/1.3 var(--mono); letter-spacing: var(--ls-label-tight); color: var(--on-soot-muted); }
.policy { max-width: 46em; color: var(--on-soot-muted); font-size: 13px; }
.grain { position: absolute; inset: 0; z-index: 2; pointer-events: none; background-image: var(--grain); opacity: var(--grain-opacity); }
.brush { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.brush svg { width: 100%; height: 100%; }
[hidden] { display: none !important; }
.nowrap { white-space: nowrap; }

/* ==================== 按钮与链接 · D01-V11 斜切翻牌 ==================== */
body {
/* 两场自适应钩子：暗场默认；亮场容器（首页 Hero、主命题、状态表亮场）反转 */
& { --btn-ink: var(--on-soot-fg); --btn-ground: var(--soot); --btn-accent: var(--on-soot-accent); --btn-muted: var(--on-soot-muted); }
.h17-hero, .thesis, [data-field="burn"] { --btn-ink: var(--on-burn-fg); --btn-ground: var(--burn); --btn-accent: var(--soot); --btn-muted: var(--on-burn-fg-soft); }
/* D01-V11 斜切翻牌（V7 为主体 × V6 外形与物理）：每个字一格翻牌，但每格都切成 9° 斜格、互相咬合，
   合起来就是 V6 那块斜切实块；整颗按钮被指针磁吸，格子按指针位置像 Dock 一样被顶起，
   hover 时从指针进入的一侧起逐格翻牌。暗场：橙红格墨字（5.0:1）→ 翻出骨白格墨字（16:1）；
   亮场：墨色格骨白字（16:1）→ 翻出骨白格墨字。 */
& { --d11-cell: var(--burn); --d11-fg: var(--soot); --d11-flip-bg: var(--bone); --d11-flip-fg: var(--soot); --d11-split: color-mix(in srgb, var(--soot) 38%, transparent); }
.h17-hero, .thesis, [data-field="burn"] { --d11-cell: var(--soot); --d11-fg: var(--bone); --d11-flip-bg: var(--bone); --d11-flip-fg: var(--soot); --d11-split: color-mix(in srgb, var(--bone) 18%, transparent); }
.btn-line { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px 0 0; border: 0; background: none; color: var(--d11-fg);
  font: 700 15px/1 var(--sans); text-decoration: none; cursor: pointer; }
.d11-in { display: inline-flex; align-items: center; }
/* 7px = 44px × tan 9°；格子左移 5px 互相咬合，留 2px 斜缝 */
.d11-c { position: relative; display: block; width: calc(1.8em + 7px); height: 44px; margin-right: -5px; overflow: hidden;
  background: var(--d11-cell); clip-path: polygon(7px 0, 100% 0, calc(100% - 7px) 100%, 0 100%); transition: scale .18s cubic-bezier(.34,1.56,.64,1); }
.d11-c::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: var(--d11-split); z-index: 2; }
.d11-c.is-arr, .d11-c.is-lat { font: 700 13px/1 var(--mono); }
.d11-sp { width: 9px; }
.d11-f, .d11-b { display: grid; place-items: center; height: 44px; padding-left: 1px;
  transition: transform .52s cubic-bezier(.34,1.42,.5,1) calc(var(--d) * 36ms); }
.d11-b { background: var(--d11-flip-bg); color: var(--d11-flip-fg); }
.btn-line:is(:hover, .is-hover, :focus-visible, .is-focus, .is-active) :is(.d11-f, .d11-b) { transform: translateY(-100%); }
.btn-line:is(:active, .is-active) .d11-c { scale: 1 .9; }
.btn-line.is-active { transform: scale(.94); }
.btn-line:focus-visible, .btn-line.is-focus { outline: 2px solid var(--btn-accent); outline-offset: 4px; }
.btn-line[disabled] { cursor: not-allowed; opacity: .55; }
.btn-line[disabled] .d11-c { background: repeating-linear-gradient(99deg, var(--btn-muted) 0 1px, transparent 1px 6px); color: var(--btn-muted); }
.btn-line[disabled] :is(.d11-f, .d11-b) { transform: none !important; }

.link-mono { position: relative; display: inline-flex; align-items: center; gap: 9px; min-height: 40px; color: var(--btn-ink);
  font: 700 11px/1.6 var(--mono); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; }
.link-mono::before { content: ""; flex: none; width: 10px; height: 12px; background: var(--btn-accent); clip-path: polygon(2px 0, 100% 0, calc(100% - 2px) 100%, 0 100%);
  transition: transform .5s cubic-bezier(.34,1.56,.64,1); }
.link-mono::after { content: ""; position: absolute; left: 19px; right: 0; bottom: 8px; height: 3px; background: var(--btn-accent);
  clip-path: polygon(1px 0, 100% 0, calc(100% - 1px) 100%, 0 100%); transform: scaleX(0); transform-origin: left; transition: transform .55s cubic-bezier(.34,1.4,.64,1); }
.link-mono:is(:hover, .is-hover, :focus-visible)::before { transform: rotate(90deg) scale(1.15); }
.link-mono:is(:hover, .is-hover, :focus-visible)::after { transform: scaleX(1); }
.link-mono:is(:active, .is-active)::after { transform: scaleX(1) scaleY(1.7); }
.link-mono:focus-visible, .link-mono.is-focus { outline: 2px solid var(--btn-accent); outline-offset: 3px; }
.dx-g { display: inline-block; text-align: center; }
.prev-next a:hover { color: var(--on-soot-accent); }

/* 正文链接：沿用 V6 的底边涨满，涨满时字滚一格（V7） */
.prose a, .prose-block a { color: inherit; text-decoration: none; padding: 0 .12em; margin: 0 -.12em;
  background: linear-gradient(var(--btn-accent), var(--btn-accent)) no-repeat 0 100% / 100% 2px;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
  transition: background-size .42s cubic-bezier(.34,1.3,.64,1), color .16s .06s; }
.prose a:visited, .prose-block a:visited, .prose-block a.is-visited { color: var(--btn-muted); }
.prose a:hover, .prose-block a:hover, .prose-block a.is-hover { background-size: 100% 100%; color: var(--d11-hi, var(--soot)); }
.h17-hero, .thesis, [data-field="burn"] { --d11-hi: var(--bone); }
.prose a:focus-visible, .prose-block a:focus-visible, .prose-block a.is-focus { outline: 2px solid var(--btn-accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .link-mono::before, .link-mono::after, .prose a, .prose-block a { transition: none !important; }
  .d11-f, .d11-b, .d12-f, .d12-b, .d12-r > span { transition: none !important; } }

.btn-line, .link-mono { white-space: nowrap; }
@media (max-width: 860px) { .btn-line, .link-mono { min-height: 44px; } }
/* 落地补充：连续拉丁字母 / 数字合成一格，宽度随词 */
.d11-c.is-word { width: auto; padding: 0 12px 0 10px; font: 700 12px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.d11-c.is-word :is(.d11-f, .d11-b) { padding: 0 2px; }
/* 真实文案有「Projects / 项目」这类带空格的标签：词间空格收成无缝（保持一整块），只留箭头前那道缝 */
.d11-sp { width: 0; }
.d11-sp:has(+ .is-arr) { width: 9px; }
/* 拉丁词格去掉翻牌中缝：小号 mono 字会被读成删除线 */
.d11-c.is-word::after { display: none; }
/* 无 JS 兜底：没有拆成翻牌格时，按钮仍是带下划线的可点文字 */
.btn-line:not(:has(.d11-in)) { text-decoration: underline 2px; text-underline-offset: .3em; }
}

/* ==================== 主导航 · B01-V6 胶囊 · 深化 ==================== */
/* B01-V6 = V2 深化：同一颗居中悬浮胶囊。改动：
   1) EM 徽标外圈是阅读进度环；2) 收缩态显示「当前页 + 当前章节」；3) 展开/收缩用宽度过渡而不是跳变；
   4) 移动端底部胶囊同样带进度环与章节名，上弹面板多一组「本页章节」直达。 */
/* 展开/收缩时 .nv-list / .nv-now / .nv-act 在 0 ↔ max-content 之间按真实宽度同步过渡，总宽度单调变化；
   用 max-width 过渡会因上限远大于内容而不同步，出现「先变长再变短」。不支持 interpolate-size 的浏览器直接切换。 */
.nv { --nv-bg: color-mix(in srgb, var(--soot) 90%, transparent); --progress: 0; --nv-ease: .35s cubic-bezier(.2,.7,.2,1); interpolate-size: allow-keywords; position: fixed; top: 16px; left: 50%; z-index: 40; display: flex; align-items: center; gap: 4px; padding: 5px; transform: translateX(-50%); background: var(--nv-bg); border: 1px solid var(--line); border-radius: 999px; backdrop-filter: blur(8px); }
/* 首页胶囊直接浮在 Hero 上，不留顶部空白；其余页面给胶囊让出 78px */
body:not(.page-home):has(> .site-nav) { padding-top: 78px; }  /* 只作用于装了落地胶囊的页面，不影响 Lab 里自带导航的历史变体 */
.nv-brand { position: relative; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; text-decoration: none;
  background: conic-gradient(var(--on-soot-accent) calc(var(--progress) * 360deg), var(--line) 0); }
.nv-brand span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--soot); }  /* 墨色间隙：把橙红进度环和橙红徽标分开 */
.nv-brand svg { width: 28px; height: 28px; }  /* 轨道环徽标（= favicon，J03-V10） */
/* ⌘K：命令面板入口并进胶囊右端（用户 2026-10-16，取代左下角浮层） */
.nv-k { display: grid; place-items: center; height: 40px; padding: 0 6px 0 2px; border-radius: 999px; color: var(--on-soot-muted); }
.nv-k kbd { padding: 6px 9px; border: 1px solid var(--line); border-radius: 999px; font: 600 10px/1 var(--mono); letter-spacing: .08em; transition: color .15s, border-color .15s; }
.nv-k:hover kbd, .nv-k:focus-visible kbd { color: var(--on-soot-fg); border-color: var(--on-soot-muted); }
.nv-k:focus-visible { outline: 2px solid var(--on-soot-accent); outline-offset: 2px; }
.nv.is-compact:not(:hover):not(:focus-within) .nv-k { display: none; }
.nv-list { display: flex; gap: 2px; margin: 0; padding: 0; list-style: none; overflow: hidden; width: max-content; transition: width var(--nv-ease), opacity .25s; }
.nv-a { display: block; padding: 11px 14px; border-radius: 999px; font: 600 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; white-space: nowrap; color: var(--on-soot-muted); transition: background .15s, color .15s; }
.nv-a:hover, .nv-a.is-hover { color: var(--on-soot-fg); background: var(--soot-raise); }
.nv-a:focus-visible, .nv-a.is-focus { outline: 2px solid var(--on-soot-accent); outline-offset: 2px; color: var(--on-soot-fg); }
.nv-a[aria-current="page"], .nv-a.is-current { background: var(--bone); color: var(--soot); font-weight: 700; }
.nv-now { display: flex; align-items: baseline; gap: 8px; width: 0; max-width: 320px; padding: 0; overflow: hidden; opacity: 0; white-space: nowrap; font: 700 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; transition: width var(--nv-ease), padding var(--nv-ease), opacity .2s; }
.nv-now i { font-style: normal; font-size: 8px; color: var(--on-soot-accent); }
.nv-chap { overflow: hidden; text-overflow: ellipsis; min-width: 0; font-weight: 600; color: var(--on-soot-muted); text-transform: none; letter-spacing: .04em; }
.nv-act { width: max-content; overflow: hidden; padding: 11px 14px 11px 10px; font: 700 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; white-space: nowrap; color: var(--on-soot-accent); transition: width var(--nv-ease), padding var(--nv-ease), opacity .2s; }
.nv-toggle { display: none; padding: 11px 14px; border: 0; border-radius: 999px; background: var(--soot-raise); font: 700 11px/1 var(--mono); letter-spacing: .12em; white-space: nowrap; color: var(--on-soot-fg); cursor: pointer; }
.nv.is-compact:not(:hover):not(:focus-within) .nv-list { width: 0; opacity: 0; }
.nv.is-compact:not(:hover):not(:focus-within) .nv-act { width: 0; padding-inline: 0; opacity: 0; }
.nv.is-compact:not(:hover):not(:focus-within) .nv-now { width: max-content; opacity: 1; padding: 0 12px 0 6px; }
.nv-sheet { position: fixed; left: 12px; right: 12px; bottom: 86px; z-index: 39; max-height: calc(100svh - 120px); overflow-y: auto; padding: 14px 18px 18px; background: var(--field-soot); border: 1px solid var(--line); border-radius: 24px; }
.nv-sheet-k { margin: 6px 0 4px; font: 700 9px/1.4 var(--mono); letter-spacing: .2em; color: var(--on-soot-muted); }
.nv-sheet ul, .nv-sheet ol { margin: 0 0 10px; padding: 0; list-style: none; }
.nv-sheet-nav a { display: flex; align-items: baseline; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--line); font: 700 20px/1.2 var(--serif); text-decoration: none; }
.nv-sheet-nav a span, .nv-sheet-toc a span { width: 26px; font: 700 10px/1 var(--mono); color: var(--on-soot-muted); }
.nv-sheet-nav a em { margin-left: auto; font: 600 10px/1 var(--mono); font-style: normal; letter-spacing: .12em; text-transform: uppercase; color: var(--on-soot-muted); }
.nv-sheet-nav a[aria-current="page"] span, .nv-sheet-nav a[aria-current="page"] em { color: var(--on-soot-accent); }
.nv-sheet-nav a[aria-current="page"]::after { content: "当前"; padding: 3px 7px; border-radius: 99px; background: var(--bone); color: var(--soot); font: 700 9px/1 var(--mono); }
.nv-sheet-toc a { display: flex; gap: 12px; padding: 9px 0; font-size: 14px; text-decoration: none; color: var(--on-soot-muted); }
.nv-sheet-act { display: block; margin-top: 8px; font: 700 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; color: var(--on-soot-accent); }
@media (max-width: 860px) {
  body:has(> .site-nav) { padding-top: 0; padding-bottom: 92px; }
  .nv { top: auto; bottom: 16px; }
  .nv-list, .nv-act { display: none !important; }
  .nv-now { width: max-content !important; max-width: 220px !important; opacity: 1 !important; padding: 0 8px 0 4px !important; }
  .nv-toggle { display: block; }
}
@media (prefers-reduced-motion: reduce) { .nv-list, .nv-now, .nv-act { transition: none; } }
/* 落地补充：状态点 / 章节名在首页橙红 Hero 上也保持墨色胶囊，不做反色（与 V6 一致） */
.nv-sheet-toc:empty, [data-toc-k][hidden] { display: none; }

/* ==================== 内页头部与字号阶梯 · A01-V3 斜轴切口 ==================== */
.page-header { padding: calc(var(--sec-y) * 1.2) 0 var(--sec-y); }
.page-header h1 { max-width: 16em; margin-top: 20px; font: 700 clamp(32px, 5vw, 64px)/1.1 var(--serif); letter-spacing: var(--ls-display); }
/* A01-V3 斜轴切口（Claude）：头部底边被一块 -9° 的橙红楔形切开，与 Hero 斜轴、按钮 9° 斜格同角。
   楔形上边线：左端距头部底 64px，向右每 1px 上升 tan9° ≈ .1584px → 右端高 64px + 15.84vw。
   楔形里只放墨色大号码（≥24px）与 10px 墨色标签；长文字全在墨色场。字号阶梯 = DS-08 的极端落差：巨型粗衬线 + 细小 mono。 */

body.landed-a01 {
  --a3-h1: clamp(60px, 7.4vw, 112px);
  --a3-lead: 18px;
  --a3-h2: 32px;
  --a3-h3: 20px;
  --a3-body: 15.5px;
  --a3-small: 13px;
  --a3-label: 10px;
  --a3-foot: 64px;                 /* 楔形左端高度 */
  --a3-rise: 15.84vw;              /* 全宽上升量 = tan9° × 100vw */
  --a3-slant: polygon(0 calc(100% - var(--a3-foot)), 100% calc(100% - var(--a3-foot) - var(--a3-rise)), 100% 100%, 0 100%);
}

/* ---------- 头部 ---------- */
body.landed-a01 .a3-head { position: relative; overflow: hidden; padding: calc(var(--sec-y) * 1.75) 0 calc(var(--a3-foot) + 9.5vw); }
body.landed-a01 .a3-wedge { position: absolute; inset: 0; background: var(--field-burn); clip-path: var(--a3-slant); }
body.landed-a01 .a3-wedge .grain { z-index: 0; }
/* 楔形上沿的墨色切线，和 Hero 那根斜穿细线同构 */
body.landed-a01 .a3-hair { position: absolute; left: -2%; right: -2%; bottom: calc(var(--a3-foot) + 22px); height: 1px; background: var(--line);
  transform-origin: left center; transform: rotate(-9deg); transform-origin: 0 50%; }
body.landed-a01 .a3-cut { position: absolute; left: 34%; bottom: calc(var(--a3-foot) + 5.6vw - 26px); z-index: 1;
  transform: rotate(-9deg); transform-origin: 0 100%; font: 700 var(--a3-label)/1 var(--mono); letter-spacing: var(--ls-label-wide); color: var(--on-burn-fg); white-space: nowrap; }
body.landed-a01 .a3-no { position: absolute; right: calc(var(--pad-x) + 2vw); bottom: 34px; z-index: 1; transform: rotate(-9deg); transform-origin: 100% 100%;
  font: 700 clamp(120px, 13vw, 190px)/.8 var(--serif); letter-spacing: -.05em; color: var(--on-burn-fg); }

body.landed-a01 .a3-body { position: relative; z-index: 2; }
body.landed-a01 .a3-kicker { display: inline-flex; align-items: center; gap: 10px; font-size: var(--a3-label); letter-spacing: var(--ls-label-wide); color: var(--on-soot-accent); }
body.landed-a01 .a3-kicker::before { content: ""; width: 22px; height: 8px; background: var(--burn); clip-path: polygon(4px 0, 100% 0, calc(100% - 4px) 100%, 0 100%); }
body.landed-a01 .a3-title { margin-top: 26px; max-width: 11em; font: 700 var(--a3-h1)/.98 var(--serif); letter-spacing: -.035em; color: var(--bone); }
/* 导语沿斜轴错位：比标题右移一截，像被斜线推开 */
body.landed-a01 .a3-deck { max-width: 30em; margin: 34px 0 0 clamp(60px, 8vw, 128px); font-size: var(--a3-lead); line-height: 1.75; color: var(--dust); text-wrap: balance; }
body.landed-a01 .a3-meta, body.landed-a01 .a3-body .updated-stamp { margin: 22px 0 0 clamp(60px, 8vw, 128px); }
body.landed-a01 .a3-body .updated-stamp { font-size: var(--fs-micro); letter-spacing: var(--ls-label); text-transform: uppercase; }

/* 头部下方第一块紧贴楔形，不再画分隔线 */
body.landed-a01 .a3-head + .sec.wrap, body.landed-a01 .a3-head + .article-layout { background: none; }
body.landed-a01 .a3-head + .sec { padding-top: calc(var(--sec-y) * .9); }

/* ---------- 字号阶梯：区块 ---------- */
body.landed-a01 .label { gap: 6px 14px; font-size: var(--a3-label); }
body.landed-a01 .label b { display: inline-block; padding: 3px 9px 2px; background: var(--burn); color: var(--on-burn-fg);
  clip-path: polygon(4px 0, 100% 0, calc(100% - 4px) 100%, 0 100%); }
body.landed-a01 .row-main h3 { font: 700 var(--a3-h2)/1.1 var(--serif); letter-spacing: -.025em; }
body.landed-a01 .row-main p { font-size: var(--a3-body); }
body.landed-a01 .cards h3, body.landed-a01 .status-grid h3 { font: 700 var(--a3-h3)/1.25 var(--serif); letter-spacing: -.01em; }
body.landed-a01 .cards p, body.landed-a01 .status-grid p { font-size: var(--a3-small); }
body.landed-a01 .q-list li { font: 700 19px/1.5 var(--serif); padding: 16px 0; }
body.landed-a01 .q-list li::before { color: var(--on-soot-accent); }
body.landed-a01 .def-list b { font-size: 19px; }
body.landed-a01 .prose-block p { font-size: var(--a3-body); line-height: 1.9; }
body.landed-a01 .callout { font: 700 22px/1.6 var(--serif); }
body.landed-a01 .mono-big { font-size: 120px; letter-spacing: -.06em; }

/* ---------- 字号阶梯：文章正文 ---------- */
body.landed-a01 .article-layout { padding-top: calc(var(--sec-y) * .9); }
body.landed-a01 .prose { font-size: var(--a3-body); line-height: 1.9; }
body.landed-a01 .prose h2 { position: relative; margin: 60px 0 18px; font: 700 var(--a3-h2)/1.2 var(--serif); letter-spacing: -.025em; }
body.landed-a01 .prose h2:first-child { margin-top: 0; }
body.landed-a01 .prose .h-num { display: inline-block; margin-right: 12px; padding: 5px 10px 4px; vertical-align: .32em; background: var(--burn); color: var(--on-burn-fg);
  font: 700 12px/1 var(--mono); clip-path: polygon(4px 0, 100% 0, calc(100% - 4px) 100%, 0 100%); }
body.landed-a01 .pull-quote { margin: 44px 0; padding: 0; border: 0; font: 700 30px/1.35 var(--serif); letter-spacing: -.02em; color: var(--bone); }
body.landed-a01 .pull-quote::before { content: ""; display: block; width: 120px; height: 1px; margin-bottom: 22px; background: var(--burn); transform: rotate(-9deg); transform-origin: 0 50%; }
body.landed-a01 .prose .closing { font: 700 20px/1.7 var(--serif); }
/* ---- 落地补充 ---- */
/* 号码按字符数收缩：01 / 404 / NOW 维持 Lab 尺寸，CONTACT / SEARCH 缩到楔形右段放得下 */
body.landed-a01 .a3-no { font-size: min(clamp(120px, 13vw, 190px), calc(40vw / var(--n, 2))); }
/* Lab 绕右下角转 -9°：字越长左端越往下沉、被头部底边裁掉（Lab 样张的 04 左下角已被切）。落地改为绕左下角转，整词向右上抬，与楔形上沿平行 */
body.landed-a01 .a3-no { transform-origin: 0 100%; bottom: 22px; }
/* 文章标题可能长到 13 字：放宽行宽并均衡断行，避免「系统经 / 济学」式孤行 */
body.landed-a01 .a3-title { max-width: 13em; text-wrap: balance; }
/* 404：骨架的 error-page 是居中网格，落地后按头部排，按钮沿导语的缩进 */
body.landed-a01 .error-page.a3-head { display: block; min-height: 0; }
body.landed-a01 .error-page .ctas { margin-top: 28px; }
body.landed-a01 .error-page.a3-head { padding-bottom: calc(var(--a3-foot) + 14vw); }

/* ==================== 区块标签 · A09-V8 小型大写章节头（基线 + 落地；须排在 A01 之后，覆盖其编号样式） ==================== */
.label { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; margin-bottom: 28px; font: 700 var(--fs-label)/1.4 var(--mono); letter-spacing: var(--ls-label); text-transform: uppercase; }
.label b { color: var(--on-soot-accent); }
.label span { color: var(--on-soot-muted); }
.label.on-burn span { color: var(--on-burn-fg); }
/* A09-V8 小型大写（Claude）：照 Gwern.net 的章节头。
   区块标签 = 右对齐的衬线章节头，压在一条通栏细线上：编号（旧式数字）· 中文名 · 英文名（小型大写）。
   行号 / 卡号 / 章节号统一换成 Georgia 的旧式数字，安静的书面学术气。 */
:is(body.page-home, body.landed-a01) { --v8-num: var(--on-soot-muted); }

/* ---- 区块标签：右对齐章节头 + 通栏细线 ---- */
:is(body.page-home, body.landed-a01) .label[data-dim="section-label"] {
  display: flex; flex-wrap: nowrap; justify-content: flex-end; align-items: baseline; gap: 0 18px;
  margin-bottom: 30px; padding-bottom: 10px; border-bottom: 1px solid var(--line);
  font: 400 24px/1.25 var(--serif); letter-spacing: 0; text-transform: none;
}
:is(body.page-home, body.landed-a01) .label[data-dim="section-label"] b {
  display: inline; padding: 0; background: none; clip-path: none;
  font: 400 24px/1.25 var(--serif); font-variant-numeric: oldstyle-nums; color: var(--on-soot-accent);
}
:is(body.page-home, body.landed-a01) .label[data-dim="section-label"] span:last-of-type { order: -1; }
:is(body.page-home, body.landed-a01) .label[data-dim="section-label"] b { order: -2; }
:is(body.page-home, body.landed-a01) .label[data-dim="section-label"] span:last-of-type { font-weight: 700; color: var(--on-soot-fg); }
:is(body.page-home, body.landed-a01) .label[data-dim="section-label"] span:first-of-type {
  font-variant-caps: all-small-caps; font-size: 26px; letter-spacing: .06em; color: var(--on-soot-fg);
}
:is(body.page-home, body.landed-a01) .toc .label { font: 400 18px/1.3 var(--serif); letter-spacing: .04em; font-variant-caps: all-small-caps; }
:is(body.page-home, body.landed-a01) .toc .label span { color: var(--on-soot-fg); }

/* ---- 行号：衬线旧式数字 ---- */
:is(body.page-home, body.landed-a01) .row-num {
  font: 400 18px/1.4 var(--serif); font-variant-numeric: oldstyle-nums; letter-spacing: 0; color: var(--v8-num);
}
/* ---- 卡号 ---- */
:is(body.page-home, body.landed-a01) .card-num {
  font: 400 17px/1.3 var(--serif); font-variant-numeric: oldstyle-nums; letter-spacing: 0; color: var(--v8-num);
}

/* ---- 文章：章节号旧式数字，标题下一道通栏细线，与区块标签同一语言 ---- */
:is(body.page-home, body.landed-a01) .prose h2 { padding-bottom: 10px; border-bottom: 1px solid var(--line); }
:is(body.page-home, body.landed-a01) .prose .h-num {
  display: inline; margin-right: .35em; padding: 0; vertical-align: baseline; background: none; clip-path: none;
  font: 400 1em/1 var(--serif); font-variant-numeric: oldstyle-nums; color: var(--on-soot-accent);
}

/* ==================== 头部入场 · I08-V4 干笔盖章 ==================== */
html { --k: 1; }
@media (prefers-reduced-motion: reduce) { html.i08-js * { animation: none !important; } }
@property --i08p { syntax: '<percentage>'; inherits: false; initial-value: 120%; }
/* 三层遮罩：A 已刷过的实心区 ∪（B 干笔噪声 ∩ C 刷子前沿），飞白只出现在前沿过渡带里 */
html.i08-js body.landed-a01 :is(.a3-wedge, .a3-title) {
  mask-image: linear-gradient(96deg, #000 calc(var(--i08p) - 16%), transparent calc(var(--i08p) - 15%)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 100' preserveAspectRatio='none'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.003 .12' numOctaves='3' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7 4.2'/%3E%3C/filter%3E%3Crect width='400' height='100' filter='url(%23n)'/%3E%3C/svg%3E"), linear-gradient(96deg, #000 calc(var(--i08p) - 16%), rgba(0,0,0,.8) calc(var(--i08p) - 6%), transparent var(--i08p));
  mask-size: 100% 100%, 100% 100%, 100% 100%; mask-repeat: no-repeat; mask-composite: add, intersect;
  animation: i08v4-brush calc(700ms * var(--k)) cubic-bezier(.5,.1,.3,1) both; }
html.i08-js body.landed-a01 .a3-title { animation-delay: calc(100ms * var(--k)); }
html.i08-js body.landed-a01 .a3-no { animation: i08v4-stamp calc(280ms * var(--k)) calc(720ms * var(--k)) cubic-bezier(.3,1.6,.5,1) both; }
html.i08-js body.landed-a01 .a3-cut { animation: i08v4-fade calc(250ms * var(--k)) calc(900ms * var(--k)) linear both; }
html.i08-js body.landed-a01 .a3-head { animation: i08v4-shake calc(220ms * var(--k)) calc(760ms * var(--k)) linear both; }
html.i08-js body.landed-a01 :is(.a3-deck, .a3-meta, .updated-stamp, .a3-kicker) { animation: i08v4-fade calc(400ms * var(--k)) calc(820ms * var(--k)) ease-out both; }
html.i08-js body.landed-a01 .a3-kicker { animation-delay: 0s; }
@keyframes i08v4-brush { from { --i08p: -20%; } to { --i08p: 120%; } }
@keyframes i08v4-stamp { from { scale: 1.35; rotate: 4deg; opacity: 0; } 40% { opacity: 1; } }
@keyframes i08v4-shake { 0%, 100% { translate: 0 0; } 30% { translate: 0 3px; } 60% { translate: 0 -1px; } }
@keyframes i08v4-fade { from { opacity: 0; } }

/* ==================== 区块入场 · I09-V1 蓝图描线 ==================== */
@media (prefers-reduced-motion: reduce) { html.i09-js * { animation: none !important; } }
html.i09-js body.landed-a01 .i09-wait:not(.i09-in) :is([data-i09], .callout) { visibility: hidden; }
html.i09-js body.landed-a01 .sec.wrap.i09-wait:not(.i09-in) { background-size: 0 1px; }
html.i09-js body.landed-a01 .sec.wrap.i09-in { animation: i09v1-rule calc(700ms * var(--k)) cubic-bezier(.6,0,.2,1) both; }
html.i09-js body.landed-a01 .i09-in .label b { animation: i09v1-tile calc(350ms * var(--k)) calc(250ms * var(--k)) cubic-bezier(.3,.7,.2,1) both; }
html.i09-js body.landed-a01 .i09-in .label span { animation: i09v1-in calc(380ms * var(--k)) calc(450ms * var(--k)) cubic-bezier(.2,.7,.2,1) both; }
html.i09-js body.landed-a01 .i09-in .label span + span { animation-delay: calc(540ms * var(--k)); }
html.i09-js body.landed-a01 li[data-i09] { position: relative; }
html.i09-js body.landed-a01 .i09-in:not(.i09-done) li[data-i09]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--on-soot-accent);
  transform-origin: 0 50%; pointer-events: none; animation: i09v1-draw calc(900ms * var(--k)) calc((380ms + var(--i) * 90ms) * var(--k)) cubic-bezier(.6,0,.2,1) both; }
html.i09-js body.landed-a01 .i09-in [data-i09="item"] { animation: i09v1-up calc(450ms * var(--k)) calc((560ms + var(--i) * 90ms) * var(--k)) cubic-bezier(.2,.7,.2,1) both; }
html.i09-js body.landed-a01 .i09-in .callout { animation: i09v1-bar calc(600ms * var(--k)) calc(380ms * var(--k)) linear both; }
@keyframes i09v1-rule { from { background-size: 0 1px; } }
@keyframes i09v1-tile { from { clip-path: polygon(4px 0, 4px 0, 0 100%, 0 100%); } to { clip-path: polygon(4px 0, 100% 0, calc(100% - 4px) 100%, 0 100%); } }
@keyframes i09v1-in { from { opacity: 0; translate: -8px 0; } }
@keyframes i09v1-draw { 0% { scale: 0 1; opacity: 1; } 55% { scale: 1 1; opacity: 1; } 100% { scale: 1 1; opacity: 0; } }
@keyframes i09v1-up { from { opacity: 0; translate: 0 6px; } }
@keyframes i09v1-bar { from { border-left-color: transparent; } }
/* 落地补充：播完的区块关掉动画（终态 = 静态样式），筛选重排时不再重播 */
html.i09-js body.landed-a01 .i09-done :is([data-i09], .label b, .label span, .callout), html.i09-js body.landed-a01 .sec.i09-done { animation: none !important; }

/* ==================== 页面转场 · I13-V2 斜轴快门 ==================== */
/* I13-V2「斜轴快门」：过渡层只在跳转时由 i13.js 临时插入，静止态与骨架一致 */
body .i13v2-fx { position: fixed; inset: 0; z-index: 1200; pointer-events: none; background: var(--field-burn); clip-path: polygon(130% 0, 130% 0, 130% 100%, 130% 100%); }
body .i13v2-mirror { transform: scaleX(-1); }
body .i13v2-fx .grain { z-index: 0; }
/* 骨白斜杠：与色场斜边平行（9°），Supari 加载画面中心那个小标记的翻译 */
body .i13v2-slash { position: absolute; left: 50%; top: 50%; width: 14px; height: 168px; margin: -84px 0 0 -7px; background: var(--bone);
  transform: rotate(9deg) scaleY(0); transform-origin: 50% 100%; }
@media (prefers-reduced-motion: reduce) { body .i13v2-fx { display: none; } }

/* ==================== 页脚 · B06-V7 引语索引 ==================== */
.site-footer { padding: var(--sec-y) 0; border-top: 1px solid var(--line); color: var(--on-soot-muted); }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 30px; }
.footer-line { font: 400 16px/1.6 var(--serif); color: var(--on-soot-fg); }
.footer-list li { padding: 4px 0; }
.footer-list a, .footer-utility a { text-decoration: none; }
.footer-list a:hover, .footer-utility a:hover { color: var(--on-soot-fg); }
.footer-utility { display: flex; flex-direction: column; gap: 8px; font: 600 10px/1.6 var(--mono); letter-spacing: .12em; }
.footer-legal { grid-column: 1 / -1; padding-top: 22px; border-top: 1px solid var(--line); font: 600 var(--fs-micro)/1.5 var(--mono); letter-spacing: var(--ls-label-tight); }
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr 1fr; } .footer-line { grid-column: 1 / -1; } }
@media (min-width: 861px) {
/* B06-V7「引语索引」：译 Notion 页脚——左侧一段斜体衬线引语，右侧三栏小字索引，legal 沉在右栏下方；左重右轻 */
body .site-footer { padding: 88px 0 72px; border-top: 1px solid var(--line); background: var(--field-soot); }
body .footer-grid {
  grid-template-columns: minmax(0, 5fr) minmax(0, 2fr) minmax(0, 2.6fr) minmax(0, 2fr);
  grid-template-areas:
    "line nav off util"
    "line legal legal legal";
  column-gap: 40px; row-gap: 0;
}

/* 引语 */
body .footer-line {
  grid-area: line; align-self: start; max-width: 13em; padding-right: 24px;
  font: italic 400 25px/1.42 var(--serif); letter-spacing: -.005em; color: var(--on-soot-fg); text-indent: -.42em;
}
body .footer-line::before { content: "\201C"; color: var(--on-soot-muted); }

/* 索引栏 */
body .footer-grid > div:not(.footer-utility):nth-of-type(1) { grid-area: nav; }
body .footer-grid > div:not(.footer-utility):nth-of-type(2) { grid-area: off; }
body .footer-grid .label { margin: 0 0 14px; font: 500 12px/1.4 var(--sans); letter-spacing: 0; text-transform: none; }
body .footer-grid .label span { color: var(--on-soot-muted); }
body .footer-list li { padding: 0; margin-bottom: 8px; }
body .footer-list a { font: 400 14px/1.4 var(--sans); color: var(--on-soot-fg); }
body .footer-list a:hover { color: var(--on-soot-accent); }

/* 工具栏：无栏名，顶端与链接首行对齐 */
body .footer-utility {
  grid-area: util; padding-top: 31px; gap: 8px;
  font: 400 14px/1.4 var(--sans); letter-spacing: 0;
}
body .footer-utility a { color: var(--on-soot-fg); }
body .footer-utility a:hover { color: var(--on-soot-accent); }
body .footer-utility > span { margin-top: 8px; font-size: 12px; color: var(--on-soot-muted); }

/* legal：右栏下方一行小字 */
body .footer-legal {
  grid-area: legal; margin-top: 44px; padding-top: 0; border-top: 0;
  font: 400 12px/1.5 var(--sans); letter-spacing: 0; color: var(--on-soot-muted); white-space: nowrap;
}

body .footer-legal { white-space: normal; }  /* 署名 + 版权 + 照片授权一行放不下，允许折行 */
body .footer-credit { color: var(--on-soot-fg); }
body .site-footer a:focus-visible { outline: 2px solid var(--on-soot-fg); outline-offset: 3px; border-radius: 2px; }
}

/* ==================== 返回顶部 · B05-V2 书签丝带 ==================== */
.back-to-top { position: fixed; right: 18px; bottom: 18px; z-index: 30; }
@media (max-width: 860px) { .back-to-top { bottom: 96px; } }  /* 让出 B01 底部胶囊 */
.back-to-top a { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); background: var(--field-soot); text-decoration: none; font: 700 14px/1 var(--mono); }
@media (min-width: 861px) {
/* B05-V2 书签丝带（Claude）：橙红布质书签从视口上沿垂下，读得越深垂得越长；燕尾端露出 ↑，点它丝带收回、页面回顶。
   物件路线，接 I11-V11 书封。 */
body .back-to-top,
body .back-to-top[hidden] {
  display: block; position: fixed; top: 0; right: 20px;  /* 贴视口最右（用户 2026-10-16：原 92px 在 1280 宽时压住内容） */ bottom: auto; left: auto; z-index: 30;
  width: 44px; height: 0; transform-origin: 50% 0;
  transform: rotate(var(--b05-sway, 0deg));
  filter: drop-shadow(3px 6px 0 color-mix(in srgb, var(--soot) 55%, transparent));
}
body .back-to-top.b05-on { height: calc(64px + var(--b05-p, 0) * 34vh); }
body .back-to-top:not(.b05-on) { visibility: hidden; }

/* 丝带本体：经纬织纹 + 中线压痕，燕尾剪口 */
body .back-to-top a {
  position: absolute; inset: 0; width: auto; height: auto; display: flex; align-items: flex-end; justify-content: center;
  padding-bottom: 26px; border: 0; text-decoration: none;
  color: var(--soot); font: 700 18px/1 var(--mono);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--soot) 22%, transparent) 0 1px, transparent 1px calc(100% - 1px), color-mix(in srgb, var(--soot) 28%, transparent) calc(100% - 1px)),
    repeating-linear-gradient(90deg, color-mix(in srgb, var(--soot) 7%, transparent) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(0deg, color-mix(in srgb, var(--bone) 6%, transparent) 0 1px, transparent 1px 4px),
    linear-gradient(90deg, var(--burn-2), var(--burn) 38%, var(--burn) 62%, var(--burn-2));
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% calc(100% - 16px), 0 100%);
  transition: transform 220ms cubic-bezier(.2, .8, .2, 1);
}
/* 上沿：书脊处的一道墨色压痕，像从书页里夹出来 */
body .back-to-top a::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 10px;
  background: linear-gradient(color-mix(in srgb, var(--soot) 45%, transparent), transparent);
}
/* 拉一下：悬停 / 焦点时丝带被往下拽 10px */
body .back-to-top a:is(:hover, :focus-visible) { transform: translateY(10px); }
body .back-to-top a:active { transform: translateY(16px); }
body .back-to-top a:focus-visible { outline: none; }
body .back-to-top:has(a:focus-visible)::after {
  content: ""; position: absolute; left: -6px; right: -6px; top: 0; bottom: -18px;
  border: 1.5px solid var(--on-soot-fg); border-top: 0; pointer-events: none;
}
/* 高度跟手：滚动时直接跟随，回顶时（.b05-return）丝带平滑收回 */
body .back-to-top.b05-return { transition: height 520ms cubic-bezier(.4, 0, .2, 1); }

@media (prefers-reduced-motion: reduce) {
  body .back-to-top { transform: none; }
  body .back-to-top a,
  body .back-to-top.b05-return { transition: none; }
}
}

/* ==================== 命令面板 · B09-V4 Raycast 双栏 ==================== */
.cmdk kbd { padding: 3px 5px; border: 1px solid var(--line); font: 600 10px/1 var(--mono); color: var(--on-soot-muted); }
.cmdk[hidden] { display: none; }
.cmdk { position: fixed; inset: 0; z-index: 90; }
.cmdk-scrim { position: absolute; inset: 0; background: color-mix(in srgb, var(--soot) 72%, transparent); }
.cmdk-panel { position: relative; width: min(560px, calc(100vw - 32px)); margin: 16vh auto 0; border: 1px solid var(--line); background: var(--soot-raise); color: var(--on-soot-fg); }
.cmdk-field { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.cmdk-input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; color: var(--on-soot-fg); font: 400 16px/1.4 var(--sans); }
.cmdk-input::placeholder { color: var(--on-soot-muted); }
.cmdk-list { max-height: 50vh; overflow-y: auto; margin: 0; padding: 6px 0 10px; list-style: none; }
.cmdk-list ul { margin: 0; padding: 0; list-style: none; }
.cmdk-k { margin: 10px 16px 4px; font: 600 10px/1.4 var(--mono); letter-spacing: .12em; color: var(--on-soot-muted); }
.cmdk-item { display: flex; width: 100%; justify-content: space-between; gap: 16px; padding: 8px 16px; border: 0; background: none; color: var(--on-soot-fg);
  font: 400 14px/1.5 var(--sans); text-align: left; text-decoration: none; cursor: pointer; }
.cmdk-m { font: 600 10px/2.1 var(--mono); letter-spacing: .08em; color: var(--on-soot-muted); }
.cmdk-item.is-active { background: color-mix(in srgb, var(--bone) 8%, transparent); }
.cmdk-item.is-active .cmdk-t { color: var(--on-soot-accent); }
.cmdk-group[hidden], .cmdk-list li[hidden] { display: none; }
.cmdk-empty { padding: 16px; color: var(--on-soot-muted); font-size: 14px; }
@media (min-width: 861px) {
/* B09-V4 Raycast 双栏预览：深色圆角窗口，左列表右预览；预览区把当前选中项放大成衬线标题，背后一团橙红光 */
body body .cmdk-scrim { background: color-mix(in srgb, var(--soot) 60%, transparent); }
body .cmdk-panel { display: grid; grid-template-columns: 340px 1fr; grid-template-rows: auto minmax(0, 1fr); width: 860px; height: 460px; margin-top: 14vh; border-radius: 14px;
  background: var(--soot-raise); box-shadow: 0 40px 100px color-mix(in srgb, var(--soot) 90%, transparent); overflow: hidden; }
body .cmdk-field { grid-column: 1 / -1; padding: 16px 20px; }
body .cmdk-input { font-size: 17px; }
body .cmdk-list { grid-column: 1; grid-row: 2; max-height: none; padding: 8px 8px 12px; border-right: 1px solid var(--line); }
body .cmdk-empty { grid-column: 1; grid-row: 2; }
body .cmdk-k { margin: 12px 10px 4px; font: 600 11px/1.4 var(--sans); letter-spacing: .02em; }
body .cmdk-item { padding: 8px 10px; border-radius: 8px; font-size: 14px; }
body .cmdk-list .cmdk-m { display: none; }
body .cmdk-item.is-active { background: color-mix(in srgb, var(--bone) 10%, transparent); }
body .cmdk-item.is-active .cmdk-t { color: var(--on-soot-fg); }
body .b09-preview { grid-column: 2; grid-row: 2; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 14px; padding: 32px; text-align: center;
  background: radial-gradient(ellipse 70% 60% at 50% 55%, color-mix(in srgb, var(--burn) 34%, transparent), transparent 70%); }
body .b09-preview .cmdk-t { font: 700 34px/1.25 var(--serif); color: var(--on-soot-fg); }
body .b09-preview .cmdk-m { display: block; font: 600 11px/1.4 var(--mono); letter-spacing: .14em; color: var(--on-soot-fg); opacity: .7; }
}


/* ==================== 页脚「内容更新」活体胶囊 · D08-V2 ==================== */
/* dim:updated-stamp-live start — D08 落地 = Lab D08-V2「活体胶囊」（用户 2026-10-04 选定）；由 tools/land_d08_v2.py 从 lab/dims/D08/v2/d08.{css,js} 生成，勿手改 */
/* D08-V2 活体胶囊：k95 的亮点 + 描边胶囊；状态页「运行中」指示灯范式 */
body { --d8-lamp: var(--on-soot-accent); }

:is(body.page-home, body.landed-a01) .a3-body .updated-stamp {
  display: inline-flex; align-items: center; gap: 0; margin-top: 30px; padding: 0;
  font: 600 var(--fs-micro)/1 var(--mono); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--on-soot-muted);
}
/* 信号灯：独立在胶囊左侧，带两道扩散环 */
:is(body.page-home, body.landed-a01) .a3-body .updated-stamp .pulse {
  position: relative; flex: none; width: 12px; height: 12px; margin-right: 18px; border-radius: 50%;
  background: var(--d8-lamp); box-shadow: 0 0 0 3px var(--soot), 0 0 0 4px var(--d8-lamp);
}
:is(body.page-home, body.landed-a01) .updated-stamp .pulse::before,
:is(body.page-home, body.landed-a01) .updated-stamp .pulse::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1px solid var(--d8-lamp);
  animation: d08v2-ring 2.4s cubic-bezier(.2, .6, .3, 1) infinite;
}
:is(body.page-home, body.landed-a01) .updated-stamp .pulse::after { animation-delay: 1.2s; }
@keyframes d08v2-ring { from { scale: 1; opacity: .9; } to { scale: 3.6; opacity: 0; } }
/* 胶囊：栏名 + 日期 */
:is(body.page-home, body.landed-a01) .updated-stamp .d08-k {
  display: inline-flex; align-items: center; height: 36px; padding: 0 14px 0 20px;
  border: 1px solid var(--on-soot-muted); border-right: 0; border-radius: 999px 0 0 999px;
}
:is(body.page-home, body.landed-a01) .updated-stamp .d08-d {
  display: inline-flex; align-items: center; height: 36px; padding: 0 20px 0 14px;
  border: 1px solid var(--on-soot-muted); border-left: 1px solid var(--line); border-radius: 0 999px 999px 0;
  font: 600 12px/1 var(--mono); letter-spacing: .1em; color: var(--on-soot-fg); font-variant-numeric: tabular-nums;
}

/* 首页页尾：小号灯 + 胶囊 */
body .footer-utility > .d08-foot {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 10px;
  border: 1px solid var(--line); border-radius: 999px;
}
body .footer-utility > .d08-foot::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--d8-lamp);
}
body .d08-foot .d08-d { color: var(--on-soot-fg); }

@media (prefers-reduced-motion: reduce) {
  :is(body.page-home, body.landed-a01) .updated-stamp .pulse::before, :is(body.page-home, body.landed-a01) .updated-stamp .pulse::after { animation: none; opacity: 0; }
}
/* dim:updated-stamp-live end */
