/* Shared reading layer for all 126 articles. Original content stays intact. */
html:has(body.article-reading){font-size:100%;scroll-padding-top:7rem;scroll-behavior:smooth}
body.article-reading{--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;--display:var(--sans);--utility:var(--sans);--ink:#24382f;--ink-soft:#596b60;--forest:#1d493e;--paper:#f7f5ef;--white:#fffefb;--line:#d9ded3;background:var(--paper);font-family:var(--sans);font-size:1rem;line-height:1.8;color:var(--ink);overflow-wrap:break-word}
.article-reading *{box-sizing:border-box}
.article-reading .shell{width:min(1160px,calc(100% - 64px));margin-inline:auto}
.article-reading .post>.shell{max-width:860px}
.article-reading .site-header{position:sticky;top:0;background:#f7f5eff5;backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:100}
.article-reading .header-inner{min-height:80px;padding-block:12px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.article-reading .brand-lockup strong{font-family:var(--sans);font-size:1.4rem;letter-spacing:.08em;color:var(--forest)}
.article-reading .brand-lockup small{display:block!important;font-size:.75rem;letter-spacing:.03em}
.article-reading .main-nav{display:flex;gap:24px;font-size:.875rem;flex-wrap:wrap}
.article-reading .main-nav a{min-height:44px;display:inline-flex;align-items:center}
.article-reading .breadcrumb{max-width:760px;margin:auto;padding:28px 0 0;font-size:.875rem;gap:10px}
.article-reading .breadcrumb span{color:var(--ink-soft)}
.article-reading .post-header{max-width:760px;padding:28px 0 30px;text-align:left}
.article-reading .post-header .kicker{font-size:.875rem;letter-spacing:.04em;margin:0 0 15px}
.article-reading .post-header h1{font-family:var(--sans);font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:700;line-height:1.45;letter-spacing:0;word-break:normal;overflow-wrap:anywhere;text-wrap:pretty;margin:0 0 22px}
.article-reading .post-meta{justify-content:flex-start;font-size:.875rem;line-height:1.8;gap:6px 20px;color:var(--ink-soft)}
.article-reading .post-meta span+span::before{content:none}
.article-reading .post-toc{max-width:760px;margin:0 auto 36px;padding:22px 26px;border:1px solid var(--line);border-left:3px solid var(--forest);border-radius:4px;background:#edf0e8;font-family:var(--sans);font-size:1rem;text-align:left}
.article-reading .post-toc ol{margin:8px 0 0;padding-left:1.5em;columns:2;column-gap:32px}
.article-reading .post-toc li{break-inside:avoid;margin:0;padding:4px 0;line-height:1.8}
.article-reading .post-toc a{color:var(--forest);display:inline-block;text-decoration:underline;text-decoration-color:#bdcbbb;text-underline-offset:4px}
.article-reading .post-content{max-width:760px;padding:0;margin:auto;font-family:var(--sans);font-size:1.125rem;line-height:1.95;letter-spacing:0;text-align:left;text-justify:auto;word-break:normal;overflow-wrap:anywhere;color:var(--ink)}
.article-reading .post-content p{font-family:inherit;font-size:inherit;line-height:inherit;text-indent:0;margin:0 0 1.25em;text-align:left}
.article-reading .post-content h2{font-family:var(--sans);font-size:1.5rem;font-weight:650;line-height:1.55;margin:2.2em 0 .85em;padding:0 0 .45em;border-bottom:1px solid var(--line);letter-spacing:0;text-wrap:pretty;scroll-margin-top:7rem}
.article-reading .post-content h3{font-family:var(--sans);font-size:1.25rem;font-weight:650;line-height:1.65;margin:1.8em 0 .65em;letter-spacing:0;scroll-margin-top:7rem}
.article-reading .post-content h4{font-size:1.125rem;line-height:1.7;margin:1.5em 0 .6em}
.article-reading .post-content strong{font-weight:650;color:#183e31}
.article-reading .post-content ul,.article-reading .post-content ol{padding-left:1.5em;margin:1.1em 0 1.5em;text-indent:0}
.article-reading .post-content li{font-size:inherit;line-height:1.9;margin-bottom:.65em;padding-left:.15em}
.article-reading .post-content li::marker{color:var(--forest);font-weight:600}
.article-reading .post-content li p{margin-bottom:.6em}
.article-reading .post-content blockquote{margin:1.5em 0;padding:18px 24px;border-left:3px solid var(--forest);background:#edf0e8;border-radius:0 4px 4px 0;font-size:1em;line-height:1.9;color:#435b4c;text-indent:0}
.article-reading .post-content blockquote p+p{margin-top:1em}
.article-reading .post-content blockquote p:last-child{margin-bottom:0}
.article-reading .post-content table{display:block;max-width:100%;width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border-collapse:collapse;font-size:1rem;line-height:1.75;margin:1.5em 0;tab-size:4}
.article-reading .post-content th,.article-reading .post-content td{min-width:7em;padding:12px 16px;border:1px solid var(--line);vertical-align:top;text-align:left;word-break:normal}
.article-reading .post-content th{background:#e6ede2;color:var(--forest);font-weight:650}
.article-reading .post-content td{background:#fffefb;font-variant-numeric:tabular-nums}
.article-reading .post-content tr:nth-child(even) td{background:#f0f3eb}
.article-reading .post-content pre{max-width:100%;overflow-x:auto;white-space:pre;font-size:.9375rem;line-height:1.8;padding:20px;border-radius:4px}
.article-reading .post-content code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9em}
.article-reading .post-content img,.article-reading .post-content video,.article-reading .post-content iframe{max-width:100%;height:auto}
.article-reading .post-content figure{margin:1.5em 0}
.article-reading .post-content figcaption{font-size:.875rem;line-height:1.8;color:var(--ink-soft);text-align:left}
.article-reading .post-content a{color:#944332;text-decoration:underline;text-underline-offset:4px}
.article-reading .post-footer{max-width:760px;margin:40px auto 0;padding:0;border-top:1px solid var(--line)}
.article-reading .post-pager{max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:25px 0}
.article-reading .post-pager a{display:block;background:#edf0e8;padding:18px;border:1px solid var(--line);border-radius:4px;font-size:1rem;line-height:1.8;overflow-wrap:anywhere}
.article-reading .related-reading{margin:25px 0;max-width:none;font-size:1rem}
.article-reading .related-reading li{padding:12px 0;line-height:1.8}
.article-reading .related-reading strong{font-size:1.125rem}
.article-reading .post-disclaimer{padding:20px;border-radius:4px;margin:26px 0}
.article-reading .post-disclaimer p,.article-reading .post-disclaimer strong{font-size:.875rem;line-height:1.85}
.article-reading .back-link{font-size:1rem;min-height:44px;padding:8px 0}
.article-reading .kb-fab{top:auto;bottom:24px;left:16px;transform:none;width:auto;padding:10px 17px;font-size:.875rem;writing-mode:horizontal-tb;border-radius:5px;min-height:44px}
.article-reading .kb-fab:hover{transform:none}.article-reading .kb-fab.is-hidden{transform:translateX(-100px)}
.article-reading .kb-close{width:44px;height:44px}.article-reading .kb-nav-btn,.article-reading .kb-articles-list a{font-family:var(--sans);font-size:1rem;line-height:1.7;min-height:44px}
.article-reading .kb-nav-btn span,.article-reading .kb-articles-list a span{word-break:normal;white-space:normal;overflow-wrap:anywhere}
.article-reading a:focus-visible,.article-reading button:focus-visible{outline:3px solid #a44131;outline-offset:4px}
.article-reading .site-footer{margin-top:15px}.article-reading .footer-bottom{padding-bottom:85px;font-size:.875rem}
@media(max-width:760px){.article-reading .shell{width:calc(100% - 40px)}.article-reading .header-inner{gap:10px;flex-wrap:wrap}.article-reading .brand-lockup strong{font-size:1.125rem}.article-reading .main-nav{gap:16px;display:flex!important;font-size:.875rem}.article-reading .breadcrumb{padding-top:22px}.article-reading .post-header{padding:22px 0}.article-reading .post-header h1{font-size:1.75rem;line-height:1.5}.article-reading .post-meta{gap:6px 14px}.article-reading .post-toc{padding:18px 20px;margin-bottom:28px}.article-reading .post-toc ol{columns:1}.article-reading .post-content{font-size:1.0625rem;line-height:1.95;padding:0}.article-reading .post-content h2{font-size:1.375rem;margin-top:1.8em}.article-reading .post-content h3{font-size:1.1875rem}.article-reading .post-content blockquote{padding:16px 18px}.article-reading .post-content th,.article-reading .post-content td{padding:10px 12px}.article-reading .post-pager{grid-template-columns:1fr;gap:10px}.article-reading .post{padding-bottom:30px}}
@media(prefers-reduced-motion:reduce){html:has(body.article-reading){scroll-behavior:auto}.article-reading *{transition:none!important;animation:none!important}}
@media print{.article-reading{background:white;color:black}.article-reading .site-header,.article-reading .site-footer,.article-reading .kb-fab,.article-reading .kb-nav-panel,.article-reading .kb-articles-panel{display:none!important}.article-reading .shell{width:100%;max-width:none}.article-reading .post-content{font-size:12pt;line-height:1.7;max-width:none}.article-reading .post-header{max-width:none}.article-reading .post-content h2,.article-reading .post-content h3{break-after:avoid}.article-reading .post-content table{display:table;font-size:10pt}.article-reading .post-content tr{break-inside:avoid}.article-reading .post-pager{display:none}}

/* ============================================================
   视频嵌入块（2026-09-10 迁移新增）：覆盖 .post-content iframe 高度规则
   ============================================================ */
.video-embed { margin: 1.6em 0; text-indent: 0; }
.video-embed__frame { aspect-ratio: 16 / 9; width: 100%; }
.video-embed__frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.video-embed[data-ratio="9:16"] .video-embed__frame { aspect-ratio: 9 / 16; max-width: 28rem; }
.video-embed figcaption {
  font-size: .875rem; line-height: 1.8; color: var(--ink-soft);
  text-align: left; margin-top: .6em; display: flex; gap: 12px; flex-wrap: wrap; align-items: baseline;
}
.video-embed figcaption a { color: #944332; text-decoration: underline; text-underline-offset: 3px; }
.video-embed figcaption .video-embed__hint { color: var(--ink-soft); }

/* ============================================================
   正文图片（figure + 图注），配合 Markdown 新文章
   ============================================================ */
.article-reading .post-content figure.image-figure { margin: 1.6em 0; text-indent: 0; }
.article-reading .post-content figure.image-figure img { width: 100%; height: auto; border-radius: 4px; }
.article-reading .post-content figure.image-figure figcaption {
  font-size: .875rem; line-height: 1.8; color: var(--ink-soft); text-align: left; margin-top: .55em;
}
