@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@font-face{font-family:Noto Serif SC;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-serif-sc.woff2)format("woff2");unicode-range:U+3001-3002,U+4E00,U+4E09-4E0B,U+4E0D-4E0E,U+4E13-4E14,U+4E16,U+4E1A,U+4E24,U+4E2A,U+4E2D,U+4E34,U+4E3A-4E3B,U+4E45,U+4E49,U+4E4B,U+4E5F,U+4E89,U+4E8B,U+4E8E,U+4E92,U+4EA1,U+4EA4,U+4EA7,U+4EAB-4EAC,U+4EBA,U+4EC5,U+4ECD-4ECE,U+4ED6,U+4EE3-4EE5,U+4EF6,U+4EFB,U+4EFD,U+4F0D,U+4F18,U+4F1A,U+4F20,U+4F24,U+4F4D,U+4F53,U+4F5C,U+4F60,U+4F7F,U+4F8B,U+4F9B,U+4F9D,U+4FA7,U+4FDD,U+4FE1,U+4FEE,U+5019,U+503A,U+503C,U+504F,U+505C,U+50A8,U+50CF,U+5141,U+5143,U+5145,U+5148,U+514D,U+5165,U+5168,U+516C,U+5171,U+5173,U+5176-5177,U+517B-517C,U+5185,U+518D,U+5199,U+51B3,U+51B5,U+51B7,U+51C6,U+51CF,U+51ED,U+51FA-51FB,U+5206-5207,U+5217,U+5219,U+521D,U+5220,U+522B,U+5230,U+5236-5237,U+524D,U+526A,U+526F,U+529B,U+529F-52A1,U+52A8-52A9,U+52B1,U+5305,U+5316-5317,U+533A,U+5347,U+534F,U+5355,U+5360,U+5374,U+5386,U+538B,U+539F,U+53BB,U+53C2,U+53CA-53CB,U+53CD,U+53D1,U+53D6,U+53D8,U+53E3,U+53EF-53F0,U+53F2,U+53F7,U+5404,U+5408,U+540C-540E,U+5411,U+542F,U+544A,U+5458,U+5468,U+547D,U+548C,U+54C1,U+54CD,U+5546,U+5584,U+5668,U+56DE,U+56E0,U+56ED,U+56F4,U+56FA,U+56FD-56FE,U+5708,U+5723,U+5728,U+5730,U+573A,U+5740,U+5757,U+578B,U+57DF,U+57FA,U+5851,U+5883,U+589E,U+58F0,U+5904,U+5907,U+590D,U+5916,U+591A,U+5927,U+5929,U+5931,U+5934,U+5956-5957,U+597D,U+59CB,U+5B57-5B58,U+5B8C,U+5B9A,U+5B9E,U+5BA2,U+5BB3,U+5BB6,U+5BB9,U+5BF9,U+5BFC,U+5C01,U+5C04,U+5C0F,U+5C11,U+5C14,U+5C1A,U+5C40,U+5C42,U+5C55,U+5C5E,U+5DE5,U+5DF2,U+5E03,U+5E26,U+5E2E,U+5E38,U+5E74,U+5E76,U+5E8F,U+5E93-5E94,U+5E97,U+5EA6-5EA7,U+5EFA,U+5F00,U+5F02,U+5F0F,U+5F15,U+5F39-5F3A,U+5F52-5F53,U+5F55,U+5F80,U+5F84-5F85,U+5F97,U+5FAE,U+5FD7,U+5FEB,U+6001,U+6027,U+602A,U+6062,U+606F,U+60C5,U+620F-6210,U+6216,U+6218,U+6237,U+6240,U+6253,U+6263,U+6267,U+6269,U+6279,U+627E,U+6280,U+628A,U+6297,U+62A4,U+62C6,U+62C9,U+62D2,U+62DB,U+62DF,U+62E2,U+62E5,U+62FE,U+6301,U+6307,U+6309,U+6311,U+6362,U+636E,U+6392,U+63A2,U+63A5,U+63A7-63A8,U+63D0,U+64CD,U+652F,U+6536,U+6539,U+653B,U+653E,U+6548,U+6570,U+6574,U+6587,U+6597,U+6599,U+65AD,U+65B0,U+65B9,U+65BD,U+65C5,U+65E0,U+65E5,U+65E7,U+65E9,U+65F6,U+660E,U+6620,U+663E,U+666F-6670,U+6682,U+66F4,U+66FF-6700,U+6708-6709,U+670D,U+671B,U+671F,U+672A,U+672C,U+672F,U+673A,U+6743,U+6750,U+675F,U+6761,U+6765,U+677F,U+6784,U+6790,U+67B6,U+67D0,U+67E5,U+6807-6808,U+680F,U+6821,U+6837-6838,U+6846,U+6848,U+6863,U+697C,U+69FD,U+6A21,U+6B21-6B22,U+6B62-6B63,U+6B65-6B66,U+6B7B,U+6BB5,U+6BCF,U+6BD4,U+6C14,U+6C34,U+6C38,U+6C42,U+6CA1,U+6CBB,U+6CD5,U+6CE8,U+6D3B,U+6D41,U+6D4B,U+6D88,U+6DF7,U+6E05,U+6E20,U+6E38,U+6E90,U+6EE1,U+6EE4,U+6F14,U+6F2B,U+70B9,U+70ED,U+70F9,U+7126,U+7167,U+7247-7248,U+724C,U+7269,U+72B6,U+72EC,U+73A9,U+73AF-73B0,U+7406,U+751F,U+7528,U+7531,U+754C,U+7559,U+7565,U+7597,U+767B,U+7684,U+76D6,U+76EE,U+76F4,U+76F8,U+76FE,U+7740,U+77E5,U+7834,U+7840,U+786E,U+78E8,U+793A,U+79C1,U+79CD,U+79D8,U+79EF-79F0,U+79FB,U+7A0B,U+7A7A,U+7A81,U+7A97,U+7ACB,U+7AEF,U+7B2C,U+7B49,U+7B56,U+7B5B,U+7B7E,U+7B80,U+7B97,U+7BA1,U+7BC7,U+7C7B,U+7C92,U+7CBE,U+7CFB,U+7D20,U+7D22,U+7EA7,U+7EBF,U+7EC4,U+7EC6-7EC7,U+7ECF,U+7ED3,U+7ED9,U+7EDC-7EDD,U+7EDF,U+7EE7,U+7EED,U+7EF4,U+7F13,U+7F16,U+7F29,U+7F51,U+7F6E,U+7FFB-7FFC,U+8005,U+8010,U+8017,U+804A,U+804C,U+8054,U+805A,U+80CC,U+80FD,U+811A,U+81EA,U+81F4,U+822A,U+8272,U+8282,U+8303,U+83B7,U+865A,U+8840,U+884C,U+8854,U+8865,U+8868,U+88AB,U+88C1,U+88C5,U+8986,U+89C1-89C2,U+89C4,U+89D2,U+89E3,U+89E6,U+8A00,U+8B66,U+8BA1,U+8BA4,U+8BA9,U+8BAE,U+8BB0,U+8BB8,U+8BBE-8BBF,U+8BC1,U+8BC6,U+8BCA,U+8BCD,U+8BD1,U+8BD5,U+8BDD,U+8BE2,U+8BED,U+8BEF,U+8BF4,U+8BF7,U+8BFB,U+8C03,U+8D23,U+8D25-8D26,U+8D44,U+8D4B,U+8D56,U+8D77,U+8D85,U+8DC3,U+8DDF,U+8DE8,U+8DEF,U+8DF3,U+8EAB,U+8F6C,U+8F7D,U+8F83,U+8F91,U+8F93,U+8FB9,U+8FC1,U+8FC7,U+8FCE,U+8FD0-8FD1,U+8FD4,U+8FD8-8FD9,U+8FDB,U+8FDE,U+8FED,U+8FFD,U+9000-9002,U+9009,U+901A,U+9020,U+903B,U+9053,U+9057,U+907F,U+90AE,U+90E8,U+90FD,U+914D,U+91CA,U+91CC-91CD,U+91CF,U+94FE,U+9501,U+953B,U+95ED-95EE,U+95F4,U+9605,U+961F,U+9635-9636,U+963B,U+9644-9645,U+9650,U+9664,U+9690,U+96C6,U+96F6,U+9759,U+975E,U+9762,U+9875-9876,U+9879-987A,U+987E,U+9884,U+9886,U+9898,U+989D,U+98CE,U+98D8,U+996A,U+9988,U+9996,U+9A8C,U+9AA4,U+9ED8,U+9F50,U+FF0C,U+FF1B}@layer reset{*,:before,:after{box-sizing:border-box}body,h1,h2,h3,p,dl,dd{margin:0}a{color:inherit}button,input{font:inherit}}@layer base{:root{color-scheme:light;--paper:#fff;--ink:#30343d;--muted:#6f737c;--line:#e6e7eb;--accent:#505661;--header-height:53px;--display:"Times New Roman", "Noto Serif SC", "Songti SC", SimSun, serif;--serif:"Times New Roman", "Noto Serif SC", "Songti SC", SimSun, serif;--sans:"Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--mono:"Cascadia Code", Consolas, monospace;font-family:var(--serif);color:var(--ink);background:var(--paper)}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 20px);scrollbar-gutter:stable}body{min-width:280px;font-size:1rem;line-height:1.9}a{text-underline-offset:.35em;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--ink);outline-offset:5px;border-radius:2px}main:focus{outline:none}h1,h2,h3{text-wrap:balance;font-weight:400}time{font-variant-numeric:tabular-nums}::selection{color:var(--ink);background:#edeef1}}@layer layout{.page-scene{flex-direction:column;min-height:100svh;display:flex}.page-scene>main{flex:1}.shell{width:min(880px,100% - 80px);margin-inline:auto}.top-bar{z-index:30;backdrop-filter:blur(16px)saturate(1.15);background:#ffffffb8;border-bottom:1px solid #30343d17;flex:none;position:sticky;top:0;box-shadow:0 1px 12px #11182708}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:52px;display:flex}.primary-nav{align-items:center;gap:32px;display:flex}.site-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding-block:12px;display:flex}@media (width<=760px){:root{--header-height:61px}.shell{width:calc(100% - 40px)}.header-inner{gap:16px;min-height:60px}.primary-nav{gap:16px}.site-footer{flex-wrap:wrap;gap:4px 24px;padding-block:18px}}@media (width<=360px){.shell{width:calc(100% - 28px)}.primary-nav{gap:8px}}}@layer components{.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--ink);color:#fff;z-index:40;padding:10px 16px;position:fixed;top:16px;left:16px;transform:translateY(-200%)}.skip-link:focus{color:#fff;transform:none}.header-brand{min-height:44px;font:400 1.375rem/1 var(--display);letter-spacing:.12em;align-items:center;display:inline-flex}.primary-nav a{min-width:44px;min-height:44px;font:400 .9375rem/1.6 var(--serif);letter-spacing:.1em;color:var(--muted);justify-content:center;align-items:center;padding:10px 4px;transition:color .24s;display:inline-flex;position:relative}.primary-nav a:hover,.primary-nav a[aria-current=page]{color:var(--ink)}.primary-nav a:after{content:"";opacity:0;background:currentColor;width:1.3em;height:1px;transition:opacity .28s,transform .38s cubic-bezier(.25,.46,.45,.94);position:absolute;bottom:5px;left:50%;transform:translate(-50%)scaleX(.4)}.primary-nav a:hover:after,.primary-nav a[aria-current=page]:after{opacity:1;transform:translate(-50%)scaleX(1)}.eyebrow{color:var(--muted);font:400 .6875rem/1.8 var(--sans);letter-spacing:.16em}.section-title{color:#111827;font:400 clamp(1.75rem, 3.6vw, 2rem)/1.2 var(--serif);letter-spacing:.1em;padding-left:.1em}.section-title:after{content:"";background:var(--ink);border-radius:2px;width:76px;height:3px;margin:10px auto 0;display:block}.update-meta{color:var(--muted);letter-spacing:.025em;flex-wrap:wrap;align-items:center;gap:12px;font-size:.8125rem;display:flex}.category{color:var(--accent)}.text-link{border-bottom:1px solid var(--ink);letter-spacing:.05em;align-items:center;min-height:44px;padding-block:6px;font-size:.875rem;display:inline-flex}.site-footer{color:var(--muted);font-size:.8125rem}.site-footer a{align-items:center;min-height:44px;display:inline-flex}.footer-wordmark{color:var(--ink);font-family:var(--display);letter-spacing:.1em;font-size:1.125rem}.empty-state{color:var(--muted);text-align:center;padding-block:48px}@media (width<=760px){.site-footer>span{flex-basis:100%;order:3}}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.primary-nav a,.primary-nav a:after{transition:none}}.page-scene[data-scene-entering]{opacity:0}html[data-scroll-restoring]{scroll-behavior:auto}html[data-page-entry=initial] .page-scene[data-scene-kind=content]{animation:.48s cubic-bezier(.25,.46,.45,.94) both scene-appear}.top-bar{animation:.42s cubic-bezier(.25,.46,.45,.94) both scene-appear}::view-transition{pointer-events:none}@keyframes scene-appear{0%{opacity:0}to{opacity:1}}@keyframes reveal-fade{0%{opacity:0}to{opacity:1}}@keyframes reveal-rise{0%{transform:translateY(var(--reveal-distance))}to{transform:translateY(0)}}@keyframes reveal-line{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.reveal-copy,.article-content>:not(ul):not(ol),.article-content>:is(ul,ol)>li{animation:reveal-fade var(--copy-duration,.7s) cubic-bezier(.42, 0, .58, 1) var(--copy-delay,.22s) both, reveal-copy-position var(--copy-duration,.7s) cubic-bezier(.25, .46, .45, .94) var(--copy-delay,.22s) both}.site-footer .reveal-copy{--copy-y:12px;--copy-delay:80ms}.site-footer .reveal-copy:nth-child(2){--copy-delay:.2s}.site-footer .reveal-copy:nth-child(3){--copy-delay:.32s}.site-footer[data-reveal=pending]{opacity:0}.site-footer:is([data-reveal=pending],[data-reveal=settled]) *{animation:none}.reveal-copy[data-reveal=pending]{opacity:0}.reveal-copy:is([data-reveal=pending],[data-reveal=settled]){animation:none}.reveal-copy:focus-within{opacity:1;animation:none;transform:none}.reveal-copy[data-copy-entry=scroll],.article-content [data-copy-entry=scroll]{animation-delay:var(--scroll-copy-delay,0s);animation-duration:.52s;animation-timing-function:cubic-bezier(.25,.46,.45,.94)}.reveal-copy[data-copy-entry=scroll]:not(li),.article-content>[data-copy-entry=scroll]{--copy-y:12px}.site-footer:focus-within{opacity:1}.site-footer:focus-within *,.not-found .reveal-copy:focus-visible{opacity:1;animation:none;transform:none}.not-found h1{--copy-delay:.12s;--copy-y:32px}.not-found .eyebrow{--copy-delay:80ms;--copy-y:12px}.not-found p:not(.eyebrow){--copy-delay:.34s;--copy-duration:.9s;--copy-y:32px}.not-found .text-link{--copy-delay:.56s;--copy-y:12px}@keyframes reveal-copy-position{0%{transform:translate(var(--copy-x,0px), var(--copy-y,20px))}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.page-scene,.top-bar,.reveal-copy,.article-content>*,.article-content li{animation:none!important}.site-footer[data-reveal=pending],.reveal-copy[data-reveal=pending],.page-scene[data-scene-entering]{opacity:1}}.site-cursor{z-index:10000;pointer-events:none;opacity:0;transition:opacity .18s;position:fixed;inset:0 auto auto 0}.site-cursor[data-visible]{opacity:1}.cursor-dot,.cursor-ring{pointer-events:none;will-change:transform;position:fixed;top:0;left:0}.cursor-dot:before{content:"";background:#444;border-radius:50%;width:6px;height:6px;position:absolute;top:-3px;left:-3px}.cursor-ring:before{content:"";border:1.5px solid #56585c;border-radius:50%;width:36px;height:36px;transition:scale .3s,border-color .3s;position:absolute;top:-18px;left:-18px}.site-cursor[data-interactive] .cursor-ring:before{border-color:#777a80;scale:1.55}.site-cursor[data-pressed] .cursor-ring:before{scale:.84}html[data-cursor-active],html[data-cursor-active] a,html[data-cursor-active] button{cursor:none}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.site-cursor{display:none}}
