:root {
  --reader-bg: #efeae0;
  --reader-ink: #211d1a;
  --reader-muted: #716960;
  --reader-line: #cfc5b7;
  --reader-primary: #432f2b;
  --reader-accent: #b4533e;
  --reader-soft: #e7e0d5;
  --reader-code: #282321;
}
* { box-sizing: border-box; }
html { scrollbar-color: #a99b8b var(--reader-bg); scrollbar-width: thin; }
body.reader-page { margin: 0; background: var(--reader-bg); color: var(--reader-ink); font: 16px/1.78 Inter, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; scroll-behavior: smooth; }
body.reader-page::-webkit-scrollbar, .reader-sidebar::-webkit-scrollbar, .reader-toc::-webkit-scrollbar { width: 8px; height: 8px; }
body.reader-page::-webkit-scrollbar-track, .reader-sidebar::-webkit-scrollbar-track, .reader-toc::-webkit-scrollbar-track { background: transparent; }
body.reader-page::-webkit-scrollbar-thumb, .reader-sidebar::-webkit-scrollbar-thumb, .reader-toc::-webkit-scrollbar-thumb { background: #b4a797; border: 2px solid var(--reader-bg); border-radius: 999px; }
body.reader-page::-webkit-scrollbar-thumb:hover, .reader-sidebar::-webkit-scrollbar-thumb:hover, .reader-toc::-webkit-scrollbar-thumb:hover { background: var(--reader-accent); }
.reader-page a { color: inherit; text-decoration: none; }
.reader-nav { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: 1320px; margin: 0 auto; padding: 17px 28px; border-bottom: 1px solid color-mix(in srgb, var(--reader-line) 75%, transparent); background: var(--reader-bg); }
.reader-brand { font: 500 21px/1 Georgia, "Songti SC", serif; letter-spacing: -.04em; }
.reader-nav-title { color: var(--reader-muted); font-size: 12px; letter-spacing: .06em; }
.reader-nav-actions { display: flex; align-items: center; gap: 8px; color: var(--reader-muted); font-size: 12px; }
.reader-nav-actions a, .reader-nav-button { padding: 6px 9px; }
.reader-nav-actions a:hover, .reader-nav-actions a:focus-visible, .reader-nav-button:hover, .reader-nav-button:focus-visible { background: var(--reader-soft); color: var(--reader-primary); outline: none; }
.reader-nav-button, .reader-sidebar-close, .reader-top-button { border: 0; color: inherit; font: inherit; cursor: pointer; background: transparent; }
.reader-progress { position: fixed; top: 0; left: 0; z-index: 30; width: 0; height: 3px; background: var(--reader-accent); transition: width .12s linear; }
.reader-wrap { display: grid; grid-template-columns: 248px minmax(0, 760px) 172px; gap: 46px; max-width: 1320px; margin: 0 auto; padding: 58px 28px 100px; transition: grid-template-columns .28s ease, gap .28s ease; }
.reader-sidebar { position: sticky; top: 84px; align-self: start; max-height: calc(100vh - 116px); overflow: hidden auto; padding-right: 14px; scrollbar-color: #b4a797 transparent; scrollbar-width: thin; }
.reader-sidebar-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.reader-sidebar-kicker { margin: 0 0 10px; color: var(--reader-accent); font-size: 11px; letter-spacing: .13em; text-transform: uppercase; }
.reader-sidebar h2 { margin: 0 0 20px; font: 400 28px/1.12 Georgia, "Songti SC", serif; letter-spacing: -.045em; }
.reader-sidebar-close { width: 28px; height: 28px; padding: 0; color: var(--reader-muted); font-size: 24px; line-height: 24px; }
.reader-sidebar-close:hover, .reader-sidebar-close:focus-visible { color: var(--reader-accent); outline: none; }
.reader-toc { display: grid; gap: 4px; border-left: 1px solid var(--reader-line); padding: 0 0 0 15px; }
.reader-toc a { display: block; padding: 5px 0; color: var(--reader-muted); font-size: 14px; line-height: 1.45; }
.reader-toc a[data-level="3"] { padding-left: 11px; color: color-mix(in srgb, var(--reader-muted) 86%, transparent); font-size: 13px; }
.reader-toc a:hover, .reader-toc a:focus-visible, .reader-toc a.is-active { color: var(--reader-accent); outline: none; }
.reader-toc-empty { color: var(--reader-muted); font-size: 13px; }
.reader-article { min-width: 0; }
.reader-content { padding-top: 6px; }
.reader-content h1 { display: none; }
.reader-content h2 { margin: 44px 0 22px; padding-top: 22px; border-top: 1px solid var(--reader-line); font: 400 clamp(30px, 4vw, 42px)/1.12 Georgia, "Songti SC", serif; letter-spacing: -.06em; scroll-margin-top: 98px; }
.reader-content h2:first-child { margin-top: 0; }
.reader-content h3 { margin: 43px 0 13px; font: 400 clamp(23px, 3vw, 30px)/1.2 Georgia, "Songti SC", serif; letter-spacing: -.045em; scroll-margin-top: 98px; }
.reader-content h4 { margin: 32px 0 9px; font: 600 17px/1.35 Inter, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; scroll-margin-top: 98px; }
.reader-content p { max-width: 680px; margin: 0 0 17px; }
.reader-content blockquote { margin: 25px 0; padding: 8px 0 8px 20px; border-left: 2px solid var(--reader-accent); color: var(--reader-muted); }
.reader-content ul, .reader-content ol { max-width: 680px; margin: 9px 0 21px; padding-left: 25px; }
.reader-content li { padding-left: 4px; margin: 4px 0; }
.reader-content hr { margin: 40px 0; border: 0; border-top: 1px solid var(--reader-line); }
.reader-content strong { font-weight: 650; }
.reader-content em { font-family: Georgia, "Songti SC", serif; }
.reader-content code { padding: 2px 5px; background: var(--reader-soft); color: var(--reader-primary); font: 12px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
.reader-code-wrap { margin: 25px 0 30px; }
.reader-code-label { display: block; margin-bottom: 5px; color: var(--reader-muted); font: 10px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .1em; text-transform: uppercase; }
.reader-content pre { margin: 0; padding: 19px 20px; overflow: auto; background: var(--reader-code); color: #fff9f0; font: 13px/1.7 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre; }
.reader-content pre code { padding: 0; background: transparent; color: inherit; font: inherit; }
.reader-table-wrap { margin: 22px 0 29px; overflow-x: auto; }
.reader-content table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: 13px; line-height: 1.55; }
.reader-content th, .reader-content td { padding: 10px 12px; border: 1px solid var(--reader-line); text-align: left; vertical-align: top; }
.reader-content th { background: var(--reader-soft); font-weight: 600; }
.reader-content a { color: var(--reader-accent); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--reader-accent) 35%, transparent); text-underline-offset: 3px; }
.reader-content a:hover, .reader-content a:focus-visible { color: var(--reader-primary); outline: none; }
.reader-side-rail { align-self: start; position: sticky; top: 94px; padding-top: 18px; color: var(--reader-muted); font-size: 12px; line-height: 1.65; }
.reader-side-rule { width: 100%; height: 1px; margin-bottom: 22px; background: var(--reader-line); }
.reader-side-label { margin: 0 0 12px; font-size: 10px; letter-spacing: .14em; }
.reader-side-percent { margin: 0 0 15px; color: var(--reader-primary); font: 400 34px/1 Georgia, "Songti SC", serif; letter-spacing: -.06em; }
.reader-side-copy { margin: 0 0 23px; }
.reader-top-button { padding: 0; color: var(--reader-accent); font-size: 12px; }
.reader-top-button:hover, .reader-top-button:focus-visible { color: var(--reader-primary); outline: none; }
.reader-loading { color: var(--reader-muted); }
.reader-error { padding: 18px; border: 1px solid var(--reader-accent); color: var(--reader-accent); }
.reader-footer { max-width: 760px; margin: 0 auto; padding: 30px 0; color: var(--reader-muted); font-size: 12px; }
.reader-footer a { color: var(--reader-accent); }
.reader-page.is-toc-collapsed .reader-wrap { grid-template-columns: minmax(0, 760px) 172px; justify-content: center; }
.reader-page.is-toc-collapsed .reader-sidebar { display: none; }
@media (max-width: 1050px) {
  .reader-wrap { grid-template-columns: 220px minmax(0, 760px); gap: 34px; }
  .reader-side-rail { display: none; }
  .reader-page.is-toc-collapsed .reader-wrap { grid-template-columns: minmax(0, 760px); }
}
@media (max-width: 760px) {
  .reader-nav { padding: 15px 18px; }
  .reader-nav-title { display: none; }
  .reader-nav-actions { gap: 2px; }
  .reader-nav-actions a, .reader-nav-button { padding: 6px; }
  .reader-wrap, .reader-page.is-toc-collapsed .reader-wrap { display: block; padding: 35px 18px 70px; }
  .reader-sidebar { position: static; max-height: 0; margin-bottom: 0; padding: 0; border-bottom: 0; opacity: 0; overflow: hidden; transition: max-height .25s ease, opacity .2s ease, margin .25s ease; }
  .reader-page:not(.is-toc-collapsed) .reader-sidebar { max-height: 285px; margin-bottom: 30px; padding-bottom: 22px; border-bottom: 1px solid var(--reader-line); opacity: 1; }
  .reader-sidebar h2 { font-size: 25px; }
  .reader-toc { max-height: 200px; overflow: auto; }
  .reader-content h2 { margin-top: 50px; font-size: 30px; }
  .reader-content h2:first-child { margin-top: 0; }
  .reader-content h3 { margin-top: 34px; font-size: 24px; }
  .reader-content p { font-size: 15px; line-height: 1.85; }
  .reader-content pre { padding: 15px; font-size: 12px; }
  .reader-footer { padding: 24px 0; }
}
@media (prefers-reduced-motion: reduce) { .reader-page *, .reader-page { scroll-behavior: auto !important; transition: none !important; } }
