.monogram[data-v-bca9745e]{width:28px;height:28px;display:block;color:var(--ink);transition:transform .24s cubic-bezier(.2,.9,.2,1),color .2s ease}a:hover>.monogram[data-v-bca9745e],.monogram[data-v-bca9745e]:hover{transform:rotate(-3deg);color:var(--accent)}.site-footer[data-v-594eb556]{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:calc(var(--unit) * 4);padding:calc(var(--unit) * 6) calc(var(--unit) * 4);margin-top:calc(var(--unit) * 12);border-top:1px solid var(--rule);color:var(--muted)}.left[data-v-594eb556]{display:flex;align-items:center;gap:calc(var(--unit) * 2)}.left .seal[data-v-594eb556]{display:inline-flex;text-decoration:none;color:inherit}.left p[data-v-594eb556]{margin:0;color:var(--muted)}.middle[data-v-594eb556]{display:flex;gap:calc(var(--unit) * 3);justify-content:center}.middle a[data-v-594eb556]{color:var(--ink-soft);text-decoration-color:transparent}.middle a[data-v-594eb556]:hover{text-decoration-color:currentColor;color:var(--ink)}.right[data-v-594eb556]{text-align:right;margin:0;color:var(--muted);font-size:.74rem;letter-spacing:.04em}.right em[data-v-594eb556]{font-family:var(--display);font-style:italic;font-variation-settings:"opsz" 24;color:var(--ink-soft)}@media (max-width: 720px){.site-footer[data-v-594eb556]{grid-template-columns:1fr;text-align:center;gap:calc(var(--unit) * 2);padding:calc(var(--unit) * 4) calc(var(--unit) * 2.5) calc(var(--unit) * 4 + env(safe-area-inset-bottom,0px));margin-top:calc(var(--unit) * 8)}.left[data-v-594eb556]{justify-content:center}.middle[data-v-594eb556]{justify-content:center;flex-wrap:wrap}.right[data-v-594eb556]{text-align:center}}.site-nav[data-v-fb62a86e]{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--unit) * 2);padding:calc(var(--unit) * 2 + env(safe-area-inset-top,0px)) calc(var(--unit) * 4 + env(safe-area-inset-right,0px)) calc(var(--unit) * 2) calc(var(--unit) * 4 + env(safe-area-inset-left,0px));position:sticky;top:0;z-index:50;background:transparent;border-bottom:1px solid transparent;transition:background-color .22s ease,border-color .22s ease,backdrop-filter .22s ease}.site-nav.scrolled[data-v-fb62a86e]{background:color-mix(in srgb,var(--paper) 88%,transparent);border-bottom-color:var(--rule);-webkit-backdrop-filter:saturate(1.1) blur(8px);backdrop-filter:saturate(1.1) blur(8px)}.seal[data-v-fb62a86e]{display:inline-flex;align-items:center;text-decoration:none;color:var(--ink)}.links[data-v-fb62a86e]{display:flex;gap:calc(var(--unit) * 3);font-size:.78rem;letter-spacing:.08em;flex:1;justify-content:center}.links a[data-v-fb62a86e]{color:var(--muted);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}.links a[data-v-fb62a86e]:hover{color:var(--ink)}.links a.router-link-active[data-v-fb62a86e]{color:var(--ink);border-bottom-color:currentColor}.controls[data-v-fb62a86e]{display:flex;gap:calc(var(--unit) * 1);align-items:center}.ctrl[data-v-fb62a86e]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:var(--muted);border:1px solid var(--rule);padding:4px 10px;font:inherit;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease;display:inline-flex;align-items:center;gap:8px;border-radius:1px}.ctrl[data-v-fb62a86e]:hover{color:var(--ink);border-color:var(--ink-soft)}.glyph[data-v-fb62a86e]{font-size:.78rem;font-weight:500;width:1ch;text-align:center}@media (max-width: 640px){.site-nav[data-v-fb62a86e]{padding:calc(var(--unit) * 1.5 + env(safe-area-inset-top,0px)) calc(var(--unit) * 2 + env(safe-area-inset-right,0px)) calc(var(--unit) * 1.5) calc(var(--unit) * 2 + env(safe-area-inset-left,0px));gap:calc(var(--unit) * 1);flex-wrap:wrap}.links[data-v-fb62a86e]{gap:calc(var(--unit) * 1.5);font-size:.7rem;flex:1 1 100%;order:3;justify-content:flex-start;flex-wrap:wrap;padding-top:calc(var(--unit) * 1);border-top:1px solid var(--rule);margin-top:calc(var(--unit) * .5);max-height:4.5rem;overflow:hidden;opacity:1;transform:translateY(0);transition:max-height .28s ease,opacity .22s ease,transform .28s ease,padding-top .22s ease,margin-top .22s ease,border-top-color .22s ease}.ctrl[data-v-fb62a86e]{padding:3px 8px;font-size:.66rem}.ctrl-label[data-v-fb62a86e]{display:none}.seal[data-v-fb62a86e],.controls[data-v-fb62a86e]{max-height:3rem;opacity:1;transform:translateY(0);overflow:hidden;transition:max-height .24s ease,opacity .18s ease,transform .24s ease}.site-nav.compact .seal[data-v-fb62a86e],.site-nav.compact .controls[data-v-fb62a86e]{max-height:0;opacity:0;transform:translateY(-6px);pointer-events:none}.site-nav.compact .links[data-v-fb62a86e]{margin-top:0;padding-top:0;border-top-color:transparent}}@media (prefers-reduced-motion: reduce){.site-nav[data-v-fb62a86e],.site-nav .links[data-v-fb62a86e],.site-nav .seal[data-v-fb62a86e],.site-nav .controls[data-v-fb62a86e]{transition:none}}:root{--unit: 8px;--baseline: 8px;--paper: oklch(97.4% .012 85);--paper-elev: oklch(99% .008 85);--ink: oklch(20% .012 80);--ink-soft: oklch(36% .012 80);--muted: oklch(52% .01 80);--rule: oklch(88% .012 85);--rule-strong: oklch(78% .012 85);--code-bg: oklch(94% .012 85);--accent: oklch(56% .18 28);--accent-soft: oklch(56% .18 28 / .16);--ink-quote: oklch(38% .012 80);--seal: oklch(48% .1 28);--seal-soft: oklch(48% .1 28 / .18);--display: "Fraunces", "Source Han Serif SC", "Noto Serif SC", "Songti SC", Georgia, serif;--body-serif: "Source Serif 4", "Source Han Serif SC", "Noto Serif SC", "Songti SC", Georgia, serif;--body: "Inter", "Source Han Sans SC", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "JetBrains Mono", "Source Han Sans SC", "Noto Sans SC", ui-monospace, Menlo, Consolas, monospace;color-scheme:light}html[data-theme=dark]{--paper: oklch(16% .008 80);--paper-elev: oklch(20% .008 80);--ink: oklch(93% .014 85);--ink-soft: oklch(80% .012 85);--muted: oklch(60% .01 85);--rule: oklch(28% .012 85);--rule-strong: oklch(40% .012 85);--code-bg: oklch(24% .012 85);--accent: oklch(70% .16 28);--accent-soft: oklch(70% .16 28 / .18);--ink-quote: oklch(76% .012 85);--seal: oklch(62% .11 28);--seal-soft: oklch(62% .11 28 / .2);color-scheme:dark}@media (prefers-color-scheme: dark){html[data-theme=auto]{--paper: oklch(16% .008 80);--paper-elev: oklch(20% .008 80);--ink: oklch(93% .014 85);--ink-soft: oklch(80% .012 85);--muted: oklch(60% .01 85);--rule: oklch(28% .012 85);--rule-strong: oklch(40% .012 85);--code-bg: oklch(24% .012 85);--accent: oklch(70% .16 28);--accent-soft: oklch(70% .16 28 / .18);--ink-quote: oklch(76% .012 85);--seal: oklch(62% .11 28);--seal-soft: oklch(62% .11 28 / .2);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:calc(var(--baseline) * 3);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga","calt";overflow-x:clip;text-spacing-trim:trim-start;transition:background-color .32s ease,color .32s ease}:lang(zh),[lang^=zh]{font-feature-settings:"kern","liga","palt","halt","chws"}:lang(zh) .mission,[lang^=zh] .mission{font-style:normal;font-size:1rem;line-height:1.7}:lang(zh) .mission:before,[lang^=zh] .mission:before{content:"「";color:var(--seal)}:lang(zh) .mission:after,[lang^=zh] .mission:after{content:"」";color:var(--seal)}:lang(zh) input,:lang(zh) textarea,:lang(zh) select,:lang(zh) button,[lang^=zh] input,[lang^=zh] textarea,[lang^=zh] select,[lang^=zh] button,input,textarea,select,button{font-feature-settings:"kern","liga";text-spacing-trim:normal;text-spacing:normal}.num,.tabular,time,.mono.num{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum","lnum","kern"}::selection{background:var(--accent-soft);color:var(--ink)}h1,h2,h3,h4{font-family:var(--display);font-weight:500;margin:0 0 calc(var(--unit) * 2);line-height:1.12;font-feature-settings:"kern","ss01"}h1{font-size:clamp(2.4rem,4.4vw,3.4rem);font-variation-settings:"opsz" 144,"wght" 500,"SOFT" 0;letter-spacing:-.005em}h2{font-size:clamp(1.5rem,2.4vw,1.875rem);font-variation-settings:"opsz" 72,"wght" 550;margin-top:calc(var(--unit) * 6)}h3{font-size:1.125rem;font-variation-settings:"opsz" 36,"wght" 600;margin-top:calc(var(--unit) * 4);margin-bottom:calc(var(--unit) * 1)}a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,currentColor 28%,transparent);transition:text-decoration-color .2s ease,color .2s ease}a:hover{text-decoration-color:currentColor}.prose,.prose-serif{font-family:var(--body-serif);font-size:1.125rem;line-height:1.72;text-wrap:pretty;-webkit-hyphens:auto;hyphens:auto;max-width:38rem;hanging-punctuation:allow-end last;text-spacing:ideograph-alpha ideograph-numeric}.prose p,.prose-serif p{margin:0 0 calc(var(--unit) * 4)}.prose a,.prose-serif a,.prose :deep(a),.prose-serif :deep(a){color:var(--accent);text-decoration-color:color-mix(in srgb,var(--accent) 50%,transparent)}.prose a:hover,.prose-serif a:hover{text-decoration-color:var(--accent)}.prose-article>p:first-of-type:first-letter,.prose-article>.pretext-paragraph:first-of-type:first-letter{font-family:var(--display);font-weight:600;float:left;font-size:4.6em;line-height:.92;margin:.05em .12em 0 -.04em;color:var(--seal);font-variation-settings:"opsz" 144}.prose-article>p:first-of-type,.prose-article>.pretext-paragraph:first-of-type{text-indent:0}:lang(zh) .prose-article>p:not(:first-of-type),:lang(zh) .prose-article>.pretext-paragraph:not(:first-of-type){text-indent:2em}.prose blockquote,.prose-serif blockquote,.prose-article blockquote{margin:calc(var(--unit) * 4) 0;padding:0 0 0 calc(var(--unit) * 3);border-left:2px solid var(--rule-strong);color:var(--ink-quote);font-style:italic}.prose blockquote p,.prose-serif blockquote p,.prose-article blockquote p{margin:0 0 calc(var(--unit) * 2)}.prose blockquote p:last-child,.prose-serif blockquote p:last-child,.prose-article blockquote p:last-child{margin-bottom:0}.binding{position:relative}.binding:before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--unit) * 2);width:1px;background:var(--rule);pointer-events:none}@media (max-width: 720px){.binding:before{display:none}}.container{max-width:960px;margin:0 auto;padding:calc(var(--unit) * 8) calc(var(--unit) * 3)}.mono{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;color:var(--ink-soft)}.muted{color:var(--muted)}.kicker{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;font-size:.72rem;color:var(--muted)}.bullets{padding-left:calc(var(--unit) * 3);margin:calc(var(--unit) * 1) 0 0}.bullets li{margin:calc(var(--unit) * 1) 0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skeleton{display:block;background:var(--rule);border-radius:1px;position:relative;overflow:hidden}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--paper) 60%,transparent),transparent);transform:translate(-100%);animation:skeleton-shimmer 1.6s ease-in-out infinite}.skeleton-line{height:1em;margin-bottom:calc(var(--unit) * 1)}.skeleton-line.lg{height:2.4em}.skeleton-line.xl{height:4em}.skeleton-block{width:100%;aspect-ratio:4 / 3}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion: reduce){.skeleton:after{animation:none}}@view-transition{navigation: auto;}::view-transition-old(root),::view-transition-new(root){animation-duration:.28s;animation-timing-function:cubic-bezier(.2,.9,.2,1)}@media (prefers-reduced-motion: reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}@media print{:root{--paper: #ffffff;--ink: #111111;--muted: #555555;--accent: #111111;--rule: #cccccc;--seal: #111111;--seal-soft: transparent;--ink-quote: #333333;--rule-strong: #999999}.binding:before{display:none!important}.site-nav,.site-footer,.ctrl,.cta,.btn,.case-nav,.back,.toc,.pdf-err,.ctrl-label{display:none!important}body{font-size:11pt;line-height:1.55}a{color:#111;text-decoration:underline}h1,h2,h3{break-after:avoid}p,li{orphans:3;widows:3}.prose,.prose-serif{max-width:none}}@media (max-width: 640px){html,body{font-size:15px;line-height:calc(var(--baseline) * 3)}h2{margin-top:calc(var(--unit) * 4)}.container{padding:calc(var(--unit) * 5) calc(var(--unit) * 2.5) calc(var(--unit) * 5 + env(safe-area-inset-bottom))}.prose,.prose-serif{font-size:1.0625rem;line-height:1.85}}
