:root{--font-prose:system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", sans-serif;--font-ui:var(--font-prose);--font-display:var(--font-prose);--font-display-editorial:Georgia, "Songti SC", STSong, "Noto Serif CJK SC", "Noto Serif SC", SimSun, serif;--font-code:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-body:1.0625rem;--text-h1:1.875rem;--text-h2:1.5rem;--text-h3:1.125rem;--text-code:.875rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--gutter:1rem;--container-max:74rem;--measure-prose:38rem;--measure-list:50rem;--measure-archive:64rem;--touch-min:2.75rem;--line-hairline:1px;--line-emphasis:2px;--radius-control:4px;--radius-container:6px;--color-canvas:#f7f5f0;--color-surface:#fffefa;--color-text:#1d1d1b;--color-muted:#62605a;--color-border:#807c73;--color-link:#1d5c55;--color-link-hover:#12463f;--color-success:#24633f;--color-warning:#8a4b08;--color-error:#a2322a;--color-focus:#0b6f66;--color-selection-bg:#d6e7e2;--color-selection-text:#15211e;--key-button-border:1px solid var(--color-link);--key-button-shadow:0 2px 0 var(--color-text);--key-button-press-offset:1px}@media (width>=26.875rem){:root{--gutter:1.25rem;--text-h1:2rem}}@media (width>=48rem){:root{--gutter:2rem;--text-h1:2.5rem}}@media (width>=80rem){:root{--gutter:3rem;--text-h1:2.75rem;--text-h2:1.75rem}}@media (prefers-color-scheme:dark){:root{--color-canvas:#151716;--color-surface:#1d201e;--color-text:#f2f0ea;--color-muted:#b8b5ad;--color-border:#777c75;--color-link:#78c0b4;--color-link-hover:#a1d8ce;--color-success:#82c99a;--color-warning:#e6b56a;--color-error:#f08c84;--color-focus:#8ed8cc;--color-selection-bg:#245149;--color-selection-text:#f4f7f4;--key-button-shadow:0 2px 0 var(--color-canvas)}}.article-body{max-inline-size:var(--measure-prose);font-family:var(--font-prose);font-size:var(--text-body);line-height:1.82}.article-body>:first-child{margin-block-start:0}.article-body>:last-child{margin-block-end:0}.article-body :where(h1,h2),.page-title,.section-title{font-family:var(--font-display-editorial);font-weight:600}.page-title{max-inline-size:var(--measure-prose);margin-block:0 var(--space-4);font-size:var(--text-h1);letter-spacing:-.01em;line-height:1.22}.section-title{max-inline-size:var(--measure-prose);margin-block:var(--space-12) var(--space-4);font-size:var(--text-h2);line-height:1.32}.article-body h1{max-inline-size:var(--measure-prose);margin-block:0 var(--space-4);font-size:var(--text-h1);letter-spacing:-.01em;line-height:1.22}.article-body h2{margin-block:var(--space-12) var(--space-4);font-size:var(--text-h2);line-height:1.32}.article-body h3{margin-block:var(--space-8) var(--space-3);font-family:var(--font-ui);font-size:var(--text-h3);line-height:1.45}.article-body :where(p,ul,ol,blockquote,figure,pre,.table-scroll){margin-block:0 var(--space-6)}.article-body :where(ul,ol){padding-inline-start:1.5em}.article-body li+li{margin-block-start:var(--space-2)}.article-body blockquote{border-inline-start:var(--line-emphasis) solid var(--color-border);color:var(--color-muted);margin-inline:0;padding-inline-start:var(--space-4)}.article-body figure{margin-inline:0}.article-body figcaption,.article-body caption{color:var(--color-muted);font-family:var(--font-ui);font-size:var(--text-sm);line-height:1.55}.article-body figcaption{margin-block-start:var(--space-2)}.article-body :not(pre)>code,.article-body kbd,.article-body samp{border:var(--line-hairline) solid var(--color-border);border-radius:var(--radius-control);font-family:var(--font-code);padding-inline:.2em;font-size:.9em}.article-body pre{min-block-size:var(--touch-min);padding:var(--space-4);border:var(--line-hairline) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);font-family:var(--font-code);font-size:var(--text-code);line-height:1.55;overflow-x:auto}.article-body pre code{font-family:inherit}.article-body .table-scroll{max-inline-size:100%;overflow-x:auto}.article-body .table-scroll table{border-collapse:collapse;inline-size:max-content;min-inline-size:36rem;font-family:var(--font-ui);font-size:1rem;line-height:1.55;display:table}.article-body caption{text-align:start;padding-block-end:var(--space-2)}.article-body :where(th,td){padding:var(--space-2) var(--space-3);border-block-end:var(--line-hairline) solid var(--color-border);text-align:start;vertical-align:top}.article-body th{font-weight:600}.editorial-list{max-inline-size:var(--measure-list)}.archive-list{max-inline-size:var(--measure-archive)}*,:before,:after{box-sizing:border-box}html{background:var(--color-canvas);color:var(--color-text);font-family:var(--font-prose);text-size-adjust:100%}body{background:var(--color-canvas);min-block-size:100vh;color:var(--color-text);font-size:var(--text-body);margin:0;line-height:1.82}::selection{background:var(--color-selection-bg);color:var(--color-selection-text)}a{color:var(--color-link);overflow-wrap:anywhere;text-underline-offset:.16em;text-decoration-thickness:1px}a:hover{color:var(--color-link-hover)}:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}button,input,select,textarea{font:inherit}button,summary{cursor:pointer}img,picture,svg,video{block-size:auto;max-inline-size:100%}.skip-link{z-index:20;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:var(--line-hairline) solid var(--color-border);color:var(--color-text);position:absolute;inset-block-start:var(--space-2);inset-inline-start:var(--gutter);transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.site-container{inline-size:min(calc(100% - (2 * var(--gutter))), var(--container-max));margin-inline:auto}.site-header{border-block-end:var(--line-hairline) solid var(--color-border)}.site-header__inner{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;min-block-size:4rem;display:flex}.site-header__brand{align-items:baseline;gap:var(--space-2);color:var(--color-text);font-family:var(--font-ui);font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.site-header__subtitle{color:var(--color-muted);font-size:var(--text-sm);font-weight:400}.site-nav{font-family:var(--font-ui);font-size:1rem}.site-nav ul{gap:var(--space-2) var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.site-nav a{color:var(--color-text);text-decoration-color:#0000}.site-nav a[aria-current=page]{font-weight:700;text-decoration-color:currentColor;text-decoration-thickness:2px}.site-nav--desktop{display:none}.mobile-navigation{font-family:var(--font-ui);margin-inline-start:auto}.mobile-navigation summary{min-block-size:var(--touch-min);padding-inline:var(--space-3);border:var(--line-hairline) solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);place-items:center;font-weight:600;list-style:none;display:grid}.mobile-navigation summary::-webkit-details-marker{display:none}.mobile-navigation__label--open,.mobile-navigation[open] .mobile-navigation__label--closed{display:none}.mobile-navigation[open] .mobile-navigation__label--open{display:inline}.mobile-navigation__panel{inline-size:100%;padding-block:var(--space-4);flex-basis:100%;display:none}.mobile-navigation[open]+.mobile-navigation__panel{display:block}.mobile-navigation__panel ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.mobile-navigation__panel a{min-block-size:var(--touch-min);color:var(--color-text);align-items:center;display:flex}.site-main{padding-block:var(--space-8) var(--space-16)}.site-footer{border-block-start:var(--line-hairline) solid var(--color-border);color:var(--color-muted);font-family:var(--font-ui);font-size:var(--text-sm)}.site-footer__inner{gap:var(--space-4);padding-block:var(--space-8);display:grid}.site-footer p{margin:0}.site-footer nav ul{gap:var(--space-2) var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.site-footer a{color:var(--color-text)}.editorial-index{font-family:var(--font-ui);margin:0;padding:0;list-style:none}.editorial-index>li{gap:var(--space-3);grid-template-columns:2.25rem minmax(0,1fr);align-items:start;display:grid}.editorial-index__number{color:var(--color-muted);font-variant-numeric:tabular-nums}.key-button{min-block-size:var(--touch-min);padding:var(--space-2) var(--space-4);border:var(--key-button-border);border-radius:var(--radius-control);background:var(--color-surface);box-shadow:inset 0 1px 0 var(--color-canvas), var(--key-button-shadow);color:var(--color-text);font-family:var(--font-ui);font-weight:600;transition:background-color .12s,border-color .12s,transform .12s}@media (hover:hover) and (pointer:fine){.key-button:hover:not(:disabled):not([aria-busy=true]){border-color:var(--color-link-hover);background:var(--color-canvas)}}.key-button:active:not(:disabled):not([aria-busy=true]),.key-button[aria-pressed=true]:not(:disabled):not([aria-busy=true]){transform:translateY(var(--key-button-press-offset));box-shadow:inset 0 1px 0 var(--color-canvas), inset 0 -1px 0 currentcolor, 0 1px 0 var(--color-text)}.key-button:disabled,.key-button[aria-busy=true]{cursor:not-allowed;box-shadow:inset 0 1px 0 var(--color-canvas);color:var(--color-muted)}.key-button--strong{--key-button-shadow:0 3px 0 var(--color-text);--key-button-press-offset:2px}@media (width>=48rem){.site-nav--desktop{display:block}.mobile-navigation,.mobile-navigation__panel{display:none}.editorial-index>li{grid-template-columns:2.75rem minmax(0,1fr)}.site-main{padding-block-start:var(--space-12)}.site-footer__inner{grid-template-columns:minmax(0,1fr) auto;align-items:end}}@media (prefers-color-scheme:dark){.key-button--strong{--key-button-shadow:0 3px 0 var(--color-canvas)}.key-button:active:not(:disabled):not([aria-busy=true]),.key-button[aria-pressed=true]:not(:disabled):not([aria-busy=true]){box-shadow:inset 0 1px 0 var(--color-surface), inset 0 -1px 0 currentcolor, 0 1px 0 var(--color-canvas)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.key-button:active:not(:disabled):not([aria-busy=true]),.key-button[aria-pressed=true]:not(:disabled):not([aria-busy=true]){transform:none}}@media (forced-colors:active){.key-button{border:2px solid buttontext;box-shadow:inset 0 -1px buttontext}.key-button:active:not(:disabled):not([aria-busy=true]),.key-button[aria-pressed=true]:not(:disabled):not([aria-busy=true]){box-shadow:inset 0 -1px buttontext,0 1px buttontext}}
