:root{--c-paper:#fdf6ec;--c-paper-2:#f8eddf;--c-paper-3:#f0e1ce;--c-card:#fffcf7;--c-ink:#2e241c;--c-ink-2:#5a4b3f;--c-ink-3:#6d5e4e;--c-ink-4:#74695d;--c-brick:#aa4c2c;--c-brick-d:#8f3d22;--c-coral:#e2785a;--c-honey:#e8a94d;--c-olive:#6e6b42;--c-line:#ebd8c3;--c-line-soft:#f4e8da;--c-on-dark:#fdf6ec;--c-on-dark-2:#c4b6a4;--bg:var(--c-paper);--bg-sub:var(--c-paper-2);--bg-deep:var(--c-ink);--surface:var(--c-card);--text:var(--c-ink);--text-2:var(--c-ink-2);--text-3:var(--c-ink-3);--text-inverse:var(--c-on-dark);--accent:var(--c-brick);--accent-hover:var(--c-brick-d);--accent-soft:var(--c-coral);--mark:var(--c-honey);--quiet:var(--c-olive);--border:var(--c-line);--border-strong:var(--c-ink);--danger:#b4472e;--font-display:"LXGW WenKai Screen", "Kaiti SC", "STKaiti", "KaiTi", "楷体", serif;--font-serif:var(--font-display);--font-sans:"PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Hiragino Sans GB", system-ui, sans-serif;--font-mono:"SFMono-Regular", "JetBrains Mono", Consolas, "Courier New", monospace;--fw-regular:400;--fw-medium:500;--fw-bold:600;--fs-2xs:10px;--fs-xs:12px;--fs-sm:13.5px;--fs-base:15.5px;--fs-md:17px;--fs-lg:clamp(19px, 1.4vw + 14px, 22px);--fs-xl:clamp(24px, 2vw + 16px, 30px);--fs-2xl:clamp(28px, 3.2vw + 12px, 38px);--fs-3xl:clamp(34px, 5vw + 10px, 56px);--fs-4xl:clamp(42px, 7vw + 10px, 76px);--fs-hero:clamp(60px, 10.5vw, 128px);--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.65;--lh-relaxed:1.8;--lh-loose:1.95;--ls-tight:-.01em;--ls-normal:0;--ls-wide:.04em;--ls-wider:.14em;--ls-widest:.24em;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:88px;--sp-10:128px;--sp-section:clamp(56px, 7vw, 88px);--w-wide:1180px;--w-main:1080px;--w-doc:980px;--w-text:720px;--w-prose:62ch;--gutter:34px;--gutter-sm:18px;--nav-h:68px;--r-none:0;--r-sm:6px;--r-md:10px;--r-lg:18px;--r-xl:28px;--r-full:999px;--bw:1px;--bw-strong:1.5px;--border-1:var(--bw) solid var(--border);--border-ink:var(--bw) solid var(--border-strong);--shadow-card:0 16px 36px -20px #58341e33;--shadow-lift:0 24px 48px -26px #58341e42;--shadow-stamp:12px 12px 0 -1px #b8522f1f;--ease:cubic-bezier(.2, .7, .3, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-soft:cubic-bezier(.34, 1.2, .64, 1);--dur-fast:.2s;--dur:.32s;--dur-slow:.7s;--dur-instant:.001ms;--z-base:0;--z-raised:1;--z-sticky:10;--z-nav:90;--z-overlay:100;--z-modal:110;--z-toast:120;--focus-ring:2px solid var(--c-brick);--focus-offset:3px}html[data-large=true]{--fs-2xs:12.5px;--fs-xs:15px;--fs-sm:17px;--fs-base:19.5px;--fs-md:21px;--fs-lg:clamp(24px, 1.75vw + 17.5px, 28px);--fs-xl:clamp(30px, 2.5vw + 20px, 37.5px);--fs-2xl:clamp(35px, 4vw + 15px, 47.5px);--fs-3xl:clamp(42.5px, 6.25vw + 12.5px, 70px);--fs-4xl:clamp(52.5px, 8.75vw + 12.5px, 95px);--fs-hero:clamp(75px, 13.1vw, 160px);--lh-loose:2.05}html[data-theme=dark]{color-scheme:dark;--c-paper:#1a1511;--c-paper-2:#221c16;--c-paper-3:#2b231b;--c-card:#241e18;--c-ink:#f5ece0;--c-ink-2:#cdbfae;--c-ink-3:#9d8d78;--c-ink-4:#96836e;--c-brick:#e07a54;--c-brick-d:#f09070;--c-honey:#e8b463;--c-olive:#9c9a6a;--text-inverse:#17120e;--bg:var(--c-paper);--bg-sub:var(--c-paper-2);--surface:var(--c-card);--text:var(--c-ink);--text-2:var(--c-ink-2);--text-3:var(--c-ink-3);--accent:var(--c-brick);--accent-hover:var(--c-brick-d);--mark:var(--c-honey);--border:#3a3026;--border-strong:#57493a;--danger:#f09070;--shadow-card:0 16px 36px -20px #000000b3;--shadow-lift:0 24px 48px -26px #000000bf}@media (prefers-reduced-motion:reduce){:root{--dur-fast:var(--dur-instant);--dur:var(--dur-instant);--dur-slow:var(--dur-instant)}}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-relaxed);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow-x:hidden}img,video,canvas,svg{max-width:100%;display:block}picture{display:contents}img{height:auto}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--fw-regular);line-height:var(--lh-snug);letter-spacing:var(--ls-wide);color:var(--text);text-wrap:balance}h1{font-size:var(--fs-3xl)}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-xl)}h4{font-size:var(--fs-lg)}h5,h6{font-size:var(--fs-md)}p{color:var(--text-2);line-height:var(--lh-loose);text-wrap:pretty}p+p{margin-top:.9em}strong,b{color:var(--text);font-weight:600}em{font-style:italic}small{font-size:var(--fs-xs)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}code{background:var(--bg-sub);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--accent-hover);padding:.1em .4em}hr{border:none;border-top:1px solid var(--border);margin:var(--sp-7) 0}a{color:inherit;text-decoration:none}.prose a{color:var(--accent-hover);text-underline-offset:.22em;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);transition:text-decoration-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}.prose a:hover{color:var(--accent);text-decoration-color:var(--accent)}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);border-radius:var(--r-sm)}:focus:not(:focus-visible){outline:none}::selection{background:var(--mark);color:var(--c-ink)}@media (pointer:fine){::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-sub)}::-webkit-scrollbar-thumb{background:var(--c-ink-4);border:3px solid var(--bg-sub);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--c-ink-3)}}.container{width:100%;max-width:var(--w-wide);padding-inline:var(--gutter);margin-inline:auto}.container--main{max-width:var(--w-main)}.container--doc{max-width:var(--w-doc)}.container--text{max-width:var(--w-text)}@media (width<=640px){.container{padding-inline:var(--gutter-sm)}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-100px;left:var(--sp-4);z-index:var(--z-toast);background:var(--c-ink);color:var(--text-inverse);padding:var(--sp-3) var(--sp-5);font-size:var(--fs-sm);letter-spacing:var(--ls-wide);transition:top var(--dur-fast) var(--ease);position:absolute}.skip-link:focus{top:var(--sp-4)}.mono-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--ls-widest);color:var(--text-3);text-transform:uppercase}.placeholder{background:var(--bg-sub);border:1px solid var(--border)}.prose{counter-reset:prose-h2;font-size:var(--fs-base);line-height:var(--lh-loose);color:var(--text-2)}.prose>*+*{margin-top:var(--sp-5)}.prose>p:first-of-type{color:var(--text)}.prose h2{counter-increment:prose-h2;font-size:var(--fs-xl);margin-top:var(--sp-8);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border)}.prose h2:before{content:counter(prose-h2, decimal-leading-zero);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;color:var(--accent);vertical-align:.34em;margin-right:.65em}.prose h3{font-size:var(--fs-lg);margin-top:var(--sp-7)}.prose h3:before{content:"";border-radius:var(--r-full);background:var(--mark);vertical-align:-.04em;width:3px;height:.82em;margin-right:.5em;display:inline-block}.prose ul,.prose ol{padding-left:1.4em}.prose ul{list-style:none}.prose ul>li{position:relative}.prose ul>li:before{content:"";background:var(--accent);width:5px;height:5px;position:absolute;top:.72em;left:-1em}.prose ol{list-style:decimal}.prose ol>li::marker{font-family:var(--font-mono);color:var(--accent);font-size:.9em}.prose li+li{margin-top:var(--sp-3)}.prose blockquote{border-left:2px solid var(--mark);padding-left:var(--sp-5);font-family:var(--font-display);font-size:var(--fs-md);line-height:var(--lh-loose);color:var(--text)}.prose blockquote p{color:inherit}.prose blockquote cite{margin-top:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--ls-wide);color:var(--text-3);font-style:normal;display:block}.prose img{border:1px solid var(--border);border-radius:var(--r-md)}.prose figure{margin:0}.prose figure img{background:var(--bg-sub);width:100%}.prose figure figcaption{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--ls-wide);color:var(--text-3);margin-top:var(--sp-3);padding-left:var(--sp-3);border-left:1px solid var(--mark);line-height:1.8}.prose table{width:100%;margin-block:var(--sp-6);table-layout:fixed;border-collapse:collapse;font-size:var(--fs-sm);text-align:left;line-height:1.75}.prose th:first-child{width:22%}.prose th,.prose td{padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);vertical-align:top}.prose th{background:var(--bg-sub);color:var(--text);font-weight:var(--fw-medium);letter-spacing:var(--ls-wide);white-space:nowrap}.prose td{color:var(--text-2)}.prose tbody tr:nth-child(2n){background:color-mix(in srgb, var(--bg-sub) 55%, transparent)}.prose mark{background:color-mix(in srgb, var(--mark) 42%, transparent);color:var(--text);border-radius:3px;padding:.05em .2em}.prose hr{margin-block:var(--sp-8);border-top:1px solid var(--border)}@media (width<=640px){.prose table{font-size:var(--fs-xs)}.prose th,.prose td{padding:var(--sp-2) var(--sp-3)}.prose th{white-space:normal}}@media print{@page{size:A4 portrait;margin:14mm 14mm 12mm}html{scroll-behavior:auto}body{color:#000;background:#fff;min-height:auto;font-size:11pt}.no-print,.screen-only,.skip-link,.nav,.drawer,.foot,.crumb,.toc,.side,.tags,.ac,.pg,.rel,.progress,.timer{display:none!important}.container{max-width:none;padding-inline:0}main.has-nav{min-height:0!important;padding-top:0!important}a{color:inherit;text-decoration:none}.serial,.serial *{color:#111!important;background:0 0!important}.serial{border:1px solid #999!important}h1,h2,h3{break-after:avoid}}
