@font-face{font-family:fontSans;src:url(/_next/static/media/1219e4f97cc155a8-s.p.woff2) format("woff2");font-display:swap}@font-face{font-family:fontSans Fallback;src:local("Arial");ascent-override:81.05%;descent-override:20.59%;line-gap-override:0.00%;size-adjust:114.53%}.__className_a9da2b{font-family:fontSans,fontSans Fallback}@font-face{font-family:fontMono;src:url(/_next/static/media/12ef399c069ff54b.p.woff) format("woff");font-display:swap}.__className_ceeda6{font-family:fontMono}.__variable_ceeda6{--font-mono:"fontMono"}html{--color-fg:#121314;--color-bg:#fff;--color-bg-transparent:rgba(255,255,255,0.9);--color-bg-secondary:#f2f2f2;--color-bg-tertiary:#f6f8fa;--theme:hsl(200,100%,60%);--theme-bg-secondary:rgba(51,187,255,0.5);--theme-bg-tertiary:#e0f5ff}html .scheme--dark{display:none}@media(prefers-color-scheme:dark){html{color-scheme:dark;--color-fg:#c9d1d9;--color-bg:#121314;--color-bg-transparent:rgba(18,19,20,0.9);--color-bg-secondary:#232425;--color-bg-tertiary:#333537;--theme:hsl(200,100%,40%);--theme-bg-secondary:rgba(0,136,204,0.5);--theme-bg-tertiary:#0f2530}html .shiki,html .shiki span{color:var(--shiki-dark)!important}}.button{position:relative;height:2rem;font-size:smaller;font-weight:400;padding:0 1rem;background-color:var(--color-bg);border:1px solid var(--theme-bg-secondary);color:var(--color-fg);border-radius:0;text-decoration:none;text-align:center;vertical-align:top;min-width:5rem;outline:rgba(0,0,0,0);user-select:none;-webkit-font-smoothing:antialiased;text-overflow:ellipsis;appearance:button;cursor:pointer}.button:not(:disabled):active:after,.button:not(:disabled):hover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.button:not(:disabled):hover{background-color:var(--color-bg-secondary)}.button:not(:disabled):hover:after{background:var(--color-bg-secondary);opacity:.1}.button:not(:disabled):active{background-color:var(--color-bg-tertiary)}.button:not(:disabled):active:after{background:var(--color-bg-tertiary);opacity:.05}.button--primary{background-color:var(--theme);border-color:var(--theme);color:var(--color-fg)}.button--primary:not(:disabled):active,.button--primary:not(:disabled):hover{background-color:var(--theme-bg-secondary);border-color:var(--theme-bg-secondary);color:var(--color-fg)}.button:disabled{opacity:.9;cursor:not-allowed}.button--borderless{border-color:rgba(0,0,0,0)}.button span[role=button]{margin:0 .25rem;line-height:1;display:block;font-weight:600;white-space:nowrap}.flex{display:flex;height:100%;flex-wrap:nowrap;justify-content:center;align-items:center}.flex--full{position:absolute!important;top:0;right:0;bottom:0;left:0}.flex--verticle{flex-direction:column}.flex--grow{flex:1 1}.flex--shrink{flex:0 1}.flex--wrap{flex-wrap:wrap}.flex .flex-container{margin:0;padding:0;border:0;font-size:100%;font:inherit}html{scroll-behavior:smooth;overscroll-behavior-y:none;background-color:var(--color-bg);font-family:DejaVu Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}body,html{color:var(--color-fg)}body{font-size:calc(10px + .33vw);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden;display:flex;flex-direction:column;min-height:100vh}body>article{flex:1 1;width:100%;text-shadow:0 0 1ch var(--color-bg)}h1{font-size:4.5em;font-weight:500;margin-bottom:0}h1 svg{fill:var(--theme)}h2{font-size:2em;font-weight:500;margin-bottom:0}p{line-height:1.4}p,p a{font-weight:400}a{text-decoration:none}button{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Noto Sans,Droid Sans,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}span q+span:before{content:" - "}span q+span+cite:before{content:" "}ul{list-style-type:none;padding-inline-start:0}sub{font-weight:300}img{min-width:unset!important;min-height:unset!important;max-width:100%;max-height:100%;height:auto}img[src$=".svg"]{aspect-ratio:unset!important}img[role=favicon]{vertical-align:initial;margin:0 .2ch 0 0;width:1.35ex;width:1cap;height:1.35ex;height:1cap}[role=button]{cursor:pointer;word-break:keep-all;white-space:nowrap}[role=button] svg{fill:currentColor;height:1em}svg[role=note]{height:1em;vertical-align:sub;margin:0 .25ch}svg[role=note]:first-child{margin-left:0}article{overflow-x:visible}article a:not([role=button]){color:var(--color-fg);box-shadow:inset 0 -.4em 0 var(--theme-bg-secondary);transition:box-shadow .2s ease-in-out}article a:not([role=button]):hover{box-shadow:inset 0 -1.1em 0 var(--theme-bg-secondary)}article a:not([role=button]){overflow-wrap:break-word}figure{margin-block-start:0;margin-inline-start:0;margin-inline-end:0}time{display:inline-block}small,time{font-size:smaller;opacity:.5}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.flex-center{display:flex;justify-content:center;align-items:center}header+article[lang=zh]>div>section:first-of-type~p,header+article[lang=zh]>div>section:first-of-type~section section>p,header+article[lang=zh]>div>section:first-of-type~section>p,header+article[lang=zh]>section:first-of-type~p,header+article[lang=zh]>section:first-of-type~section section>p,header+article[lang=zh]>section:first-of-type~section>p{line-height:1.5}header+article[lang=zh]>div>section:first-of-type~section blockquote p,header+article[lang=zh]>section:first-of-type~section blockquote p{line-height:1.4}body>header{display:flex;justify-content:flex-start;position:fixed;height:60px;border-bottom:1px solid var(--color-bg-secondary);top:0;left:0;right:0;z-index:8888;opacity:0}body>header>div{justify-content:flex-start!important}body>header nav{font-size:2rem;font-weight:700;margin:auto 1ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;will-change:opacity;transition:opacity .1s ease}body>header img[role=button]{width:2.5rem;height:2.5rem;border-radius:100%}body>footer{width:100%;border-top:1px solid var(--color-bg-secondary);height:200px;z-index:calc(8888 - 1);font-size:1.2em}body>footer,body>footer a{color:var(--color-fg);opacity:.8}body>footer a{line-height:1;display:flex}body>footer a:hover{opacity:1}body>footer nav{margin-right:50px}body>footer nav ul{display:flex;flex-direction:column;align-items:flex-start}body>footer nav li{display:flex;justify-content:flex-start;align-items:center;margin:8px 0}body>footer nav li span{opacity:.8;line-height:1}body>footer nav li a:not([role=button]){position:relative}body>footer nav li a:not([role=button]):after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background-color:var(--color-fg);transform-origin:bottom left;transform:scaleX(0);transition:transform .5s ease}body>footer nav li a:not([role=button]):hover:after{transform:scaleX(1)}body>footer nav li a[role=button]{margin-left:1ch}body>footer img[role=button]{width:3.5rem;height:3.5rem;border-radius:100%;margin:10px 0}body>footer aside{display:flex;flex-direction:column;align-items:flex-end;font-size:12px}body>footer aside span{margin:0 .25ch}body>footer a[href*=vercel] svg{margin-right:1px}body>footer,body>header{padding:10px 10vw;background-color:var(--color-bg-transparent);box-sizing:border-box}body>footer>div,body>header>div{padding:0 32px}body>footer,body>header{padding:10px 0}body>article,body>footer>div,body>header>div{max-width:700px;margin:auto}article{box-sizing:border-box}header+article{padding:calc(60px + 2em) 0 8em}header+article div[role=contentinfo]>section:first-of-type{flex:1 1}header+article section[role=banner] figure img{width:100%}article>section[role=figure]{margin:1em -1em;padding:1em;border-radius:1em;transition:all .2s ease;cursor:pointer;position:relative}article>section[role=figure] figure,article>section[role=figure] figure :last-child{margin-bottom:0}article>section[role=figure] figure img{object-fit:cover}article>section[role=figure] figure figcaption>*{position:relative;pointer-events:none;z-index:1}article>section[role=figure] figure figcaption>* a{pointer-events:all}article>section[role=figure] figure figcaption>a[role=button]{position:absolute;pointer-events:all;top:0;right:0;left:0;bottom:0}article>section[role=figure] h2{margin-top:.2em}div[role=contentinfo]{display:flex;align-items:center}div[role=contentinfo] [role=button]{margin:0 0 0 1ch}div[role=contentinfo]>section{display:flex;align-items:center}div[role=contentinfo]>section h2,div[role=contentinfo]>section[role=note]{display:none}div[role=contentinfo]>section [role=button]{display:inline-flex;align-items:center;padding:0 .5ch 0 .25ch;background-color:var(--theme-bg-tertiary);border-radius:.25em;color:inherit}div[role=contentinfo]>section [role=button]:hover{background-color:var(--theme-bg-secondary)}header+article,header+article>div{font-size:calc(14px + .33vw);line-height:1.5;position:relative}header+article>:first-child,header+article>div>:first-child{margin-top:0}header+article>div>h1+p,header+article>div>section,header+article>h1+p,header+article>section{margin-bottom:2.5em}header+article h1,header+article>div h1{font-size:2em;margin-bottom:.67em}header+article h2,header+article>div h2{font-size:1.5em;margin-bottom:.83em}header+article h1,header+article h2,header+article h3,header+article h4,header+article h5,header+article h6,header+article>div h1,header+article>div h2,header+article>div h3,header+article>div h4,header+article>div h5,header+article>div h6{font-weight:600;margin-top:0;word-wrap:break-word;hyphens:auto}header+article h1 a[role=button],header+article h2 a[role=button],header+article h3 a[role=button],header+article h4 a[role=button],header+article h5 a[role=button],header+article h6 a[role=button],header+article>div h1 a[role=button],header+article>div h2 a[role=button],header+article>div h3 a[role=button],header+article>div h4 a[role=button],header+article>div h5 a[role=button],header+article>div h6 a[role=button]{float:left;margin-left:-1.25rem;padding-right:.25rem;opacity:0;transition:opacity .2s ease;will-change:opacity}header+article h1 a[role=button] svg,header+article h2 a[role=button] svg,header+article h3 a[role=button] svg,header+article h4 a[role=button] svg,header+article h5 a[role=button] svg,header+article h6 a[role=button] svg,header+article>div h1 a[role=button] svg,header+article>div h2 a[role=button] svg,header+article>div h3 a[role=button] svg,header+article>div h4 a[role=button] svg,header+article>div h5 a[role=button] svg,header+article>div h6 a[role=button] svg{vertical-align:middle}header+article h1:hover a[role=button],header+article h2:hover a[role=button],header+article h3:hover a[role=button],header+article h4:hover a[role=button],header+article h5:hover a[role=button],header+article h6:hover a[role=button],header+article>div h1:hover a[role=button],header+article>div h2:hover a[role=button],header+article>div h3:hover a[role=button],header+article>div h4:hover a[role=button],header+article>div h5:hover a[role=button],header+article>div h6:hover a[role=button]{opacity:1}header+article [id],header+article a[name],header+article>div [id],header+article>div a[name]{scroll-margin-top:90px}header+article blockquote,header+article figure,header+article ol,header+article p,header+article pre,header+article table,header+article ul,header+article>div blockquote,header+article>div figure,header+article>div ol,header+article>div p,header+article>div pre,header+article>div table,header+article>div ul{margin:0 0 1em}header+article p:empty,header+article>div p:empty{padding-bottom:1em}header+article p,header+article>div p{font-size:1em}header+article p a svg,header+article>div p a svg{height:1.2em;vertical-align:sub}header+article p del,header+article>div p del{opacity:.5}header+article pre,header+article>div pre{padding:1em;overflow:auto;border-radius:.5em}header+article p code,header+article>div p code{border-radius:.25em;padding:.075em .4em}header+article p code,header+article pre,header+article>div p code,header+article>div pre{background-color:var(--color-bg-tertiary);font-size:smaller}header+article code,header+article pre,header+article>div code,header+article>div pre{font-family:var(--font-mono),monospace}header+article ol,header+article ul,header+article>div ol,header+article>div ul{margin-top:0;padding-left:1.5em}header+article ul,header+article>div ul{list-style-type:disc}header+article ul ul,header+article>div ul ul{list-style-type:circle;margin-bottom:0}header+article ul ul ul,header+article>div ul ul ul{list-style-type:square}header+article ul[role=listbox],header+article>div ul[role=listbox]{list-style-type:none;padding-left:0}header+article input[type=checkbox],header+article>div input[type=checkbox]{margin:0 .5ch 0 0;pointer-events:none}header+article li p,header+article>div li p{margin-block-end:0}header+article figure[role=img],header+article>div figure[role=img]{text-align:center}header+article figure[role=img] figcaption,header+article>div figure[role=img] figcaption{font-size:smaller;opacity:.5}header+article figure[role=img] figcaption>span:not(:last-of-type):after,header+article>div figure[role=img] figcaption>span:not(:last-of-type):after{content:"."}header+article figure[role=img] figcaption>span+span:before,header+article>div figure[role=img] figcaption>span+span:before{content:" "}header+article figure[role=pre] figcaption,header+article>div figure[role=pre] figcaption{display:none}header+article blockquote,header+article>div blockquote{padding:1em 1em 1em calc(1em + 1ch);background-color:var(--color-bg-tertiary);font-size:smaller;border-radius:.5em}header+article blockquote p,header+article>div blockquote p{margin-bottom:.5em}header+article blockquote p:first-of-type,header+article>div blockquote p:first-of-type{position:relative}header+article blockquote p:first-of-type:before,header+article>div blockquote p:first-of-type:before{content:"“";position:absolute;top:0;right:100%}header+article blockquote p:last-of-type,header+article>div blockquote p:last-of-type{margin-bottom:0}header+article blockquote p:last-of-type:after,header+article>div blockquote p:last-of-type:after{content:"”"}header+article blockquote p:first-of-type:before,header+article blockquote p:last-of-type:after,header+article>div blockquote p:first-of-type:before,header+article>div blockquote p:last-of-type:after{font-size:1.2em;font-weight:700;line-height:1}header+article blockquote footer,header+article>div blockquote footer{text-align:right;margin-top:.4em}header+article blockquote footer:before,header+article>div blockquote footer:before{content:" - "}header+article blockquote footer cite:before,header+article>div blockquote footer cite:before{content:", "}header+article blockquote blockquote~p:first-of-type:before,header+article blockquote blockquote~p:last-of-type:after,header+article blockquote h1~p:first-of-type:before,header+article blockquote h1~p:last-of-type:after,header+article>div blockquote blockquote~p:first-of-type:before,header+article>div blockquote blockquote~p:last-of-type:after,header+article>div blockquote h1~p:first-of-type:before,header+article>div blockquote h1~p:last-of-type:after{content:""}header+article blockquote h2,header+article>div blockquote h2{margin-top:1em;margin-bottom:.5em}header+article table,header+article>div table{white-space:nowrap;border:none;border-collapse:collapse;border-spacing:0;table-layout:fixed;max-width:100%;width:100%;display:table}header+article table thead tr,header+article>div table thead tr{position:sticky;top:60px;z-index:1;background-color:var(--theme-bg-tertiary)}header+article table tbody tr:nth-child(2n),header+article>div table tbody tr:nth-child(2n){background-color:var(--color-bg-tertiary)}header+article table td,header+article>div table td{padding:.2em .4em;overflow:auto}header+article table th,header+article>div table th{padding:.25em .4em}header+article hr,header+article>div hr{margin:2.5em 0;border:none;border-top:1px solid var(--color-fg);border-bottom:1px solid var(--color-fg);color:var(--color-fg);overflow:visible;text-align:center;height:1px}header+article hr:after,header+article>div hr:after{background:var(--color-bg);content:"§";padding:0 .5ch;transform:translateY(-50%);display:inline-block;position:relative;top:50%}header+article abbr,header+article>div abbr{letter-spacing:.01em;text-decoration:none}header+article iframe,header+article>div iframe{display:block;margin:0 auto 1em}header+article #toc,header+article #tocanchor,header+article #tocanchor+section,header+article #tocmark,header+article>div #toc,header+article>div #tocanchor,header+article>div #tocanchor+section,header+article>div #tocmark{display:none}header+article .footnotes,header+article>div .footnotes{margin-top:2.5em;font-size:smaller;opacity:.5}header+article .footnotes .data-footnote-backref,header+article>div .footnotes .data-footnote-backref{color:var(--theme);box-shadow:none}header+article sub,header+article sup,header+article>div sub,header+article>div sup{font-size:small;line-height:0}header+article a[data-footnote-ref],header+article>div a[data-footnote-ref]{color:var(--theme)}header+article a[data-footnote-ref],header+article a[data-footnote-ref]:hover,header+article>div a[data-footnote-ref],header+article>div a[data-footnote-ref]:hover{box-shadow:none}header+article a[data-footnote-ref]:hover,header+article>div a[data-footnote-ref]:hover{text-decoration:underline}header+article a[data-footnote-ref]:before,header+article>div a[data-footnote-ref]:before{content:"["}header+article a[data-footnote-ref]:after,header+article>div a[data-footnote-ref]:after{content:"]"}header+article .post-collection,header+article>div .post-collection{padding:1em;background:var(--color-bg-tertiary);border-radius:.5em;margin-bottom:2.5em}header+article .post-collection ul,header+article>div .post-collection ul{list-style:none;padding-left:0;margin-bottom:0}header+article .post-collection ul li:not(.current),header+article>div .post-collection ul li:not(.current){opacity:.5;transition:opacity .2s ease}header+article .post-collection ul li:not(.current):hover,header+article>div .post-collection ul li:not(.current):hover{opacity:1}.medium-zoom--opened header{opacity:0!important}.medium-zoom--opened .medium-zoom-image--opened,.medium-zoom--opened .medium-zoom-overlay{z-index:9999;max-width:unset;max-height:unset}.shiki{background-color:var(--color-bg-tertiary)!important}@media(min-width:768px){article>section[role=figure] img{display:none}article>section[role=figure]:hover{background-color:var(--color-bg-tertiary)}}@media(max-width:767px){h1{font-size:3.5em}a,p{font-weight:300}body>article{overflow-x:hidden}body>header{display:none}body>footer>div,body>header>div{padding:0 16px}article{padding:1em 1em 4em}article>section[role=figure]{margin:0;padding:.5em 0}article>section[role=figure] figure{position:relative;border-radius:1em;background-color:var(--color-bg-tertiary);overflow:hidden}article>section[role=figure] figure img{height:55vw;width:100%;border-radius:1em;filter:blur(1em) brightness(95%) opacity(.8)}article>section[role=figure] figure figcaption{padding:1em}article>section[role=figure] figure figcaption a{box-shadow:none}header+article{padding:2em 1em 4em}header+article table thead tr{top:0}header+article h1,header+article h2,header+article h3,header+article h4,header+article h5,header+article h6{word-break:break-all}}@media(max-width:1419px){header+article div[role=contentinfo]{flex-direction:column;align-items:flex-start}header+article div[role=contentinfo]>section{flex-wrap:wrap;margin-bottom:0!important}header+article div[role=contentinfo]>section:first-of-type{padding-bottom:1ch}header+article div[role=contentinfo]>section:first-of-type time:first-of-type:before{content:"Published at "}header+article div[role=contentinfo]>section [role=button]{margin:0 1ch 1ch 0}}@media(min-width:1420px){body:before{content:"";z-index:-1;position:fixed;top:0;bottom:0;left:0;right:0;background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,var(--color-bg) 100%),fixed 0 0/20px 20px radial-gradient(var(--theme-bg-secondary) 1px,transparent 0),fixed 10px 10px/20px 20px radial-gradient(var(--theme-bg-tertiary) 1px,transparent 0)}article>section[role=figure]:hover{background-color:var(--color-bg-tertiary)}header+article #tocanchor+section,header+article>div #tocanchor+section{display:block;position:sticky;height:0;float:left;width:calc((100vw - 100%)/2);max-width:24em;top:90px;margin-left:100%;margin-bottom:0}header+article #tocanchor+section,header+article #tocanchor+section+section,header+article>div #tocanchor+section,header+article>div #tocanchor+section+section{transition:opacity .35s ease-in}header+article #tocanchor+section ul,header+article>div #tocanchor+section ul{white-space:nowrap;margin:0}header+article #tocanchor+section ul,header+article #tocanchor+section ul ul,header+article>div #tocanchor+section ul,header+article>div #tocanchor+section ul ul{padding:0 1.5rem;list-style-type:none}header+article #tocanchor+section ul a,header+article>div #tocanchor+section ul a{display:block;box-shadow:none;min-width:0;text-overflow:ellipsis;overflow:hidden;transition:all .2s ease;user-select:none;opacity:.5}header+article #tocanchor+section ul a:hover,header+article>div #tocanchor+section ul a:hover{color:var(--theme);opacity:1}header+article #tocanchor+section ul li.visible a,header+article>div #tocanchor+section ul li.visible a{opacity:.9}header+article #toc,header+article>div #toc{padding-left:.67em}header+article #tocmark,header+article>div #tocmark{display:block;position:absolute;overflow:visible;pointer-events:none}header+article #tocmark path,header+article>div #tocmark path{transition:all .2s ease;fill:rgba(0,0,0,0);stroke:var(--theme);stroke-width:3px;stroke-dasharray:0 0 0 1000;stroke-linecap:round;stroke-linejoin:round}header+article section[role=banner] figure,header+article>div section[role=banner] figure{margin-left:calc(-12em - 1ch)}header+article section[role=banner] figure figcaption,header+article>div section[role=banner] figure figcaption{display:none}header+article section[role=banner]~div[role=contentinfo],header+article>div section[role=banner]~div[role=contentinfo]{position:absolute;right:100%;top:calc(60px + 2em);display:flex;flex-wrap:wrap;width:12em;justify-content:flex-start;bottom:unset;margin:1ch}header+article section[role=banner]~div[role=contentinfo]>section,header+article>div section[role=banner]~div[role=contentinfo]>section{border-top:3px solid var(--color-fg);flex-basis:100%;padding:1ch 0 2ch;display:flex;flex-direction:column;align-items:flex-start;transition:opacity .35s ease-in;margin-bottom:2em}header+article section[role=banner]~div[role=contentinfo]>section h2,header+article>div section[role=banner]~div[role=contentinfo]>section h2{display:block;font-size:1em;margin:.5ch 0}header+article section[role=banner]~div[role=contentinfo]>section [role=button],header+article>div section[role=banner]~div[role=contentinfo]>section [role=button]{margin:.5ch 0 0}header+article section[role=banner]~div[role=contentinfo]>section:not(:first-child),header+article>div section[role=banner]~div[role=contentinfo]>section:not(:first-child){opacity:0}}