*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-primary);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-code);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{outline:0;padding:0;margin:0;border:0;box-sizing:inherit;backface-visibility:hidden}html{box-sizing:border-box;scroll-behavior:smooth;scroll-padding-top:5.25rem;overflow-anchor:none}body,html{background:var(--body-bg);color:var(--body-color)}body{overflow-y:scroll;font-family:var(--font-primary);font-size:16px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;backface-visibility:hidden}a{color:inherit;text-decoration:none}ol,ul{list-style:none}img,svg{max-width:100%}button,input{font:inherit;color:inherit;background:none}h1{font-size:1.1875rem;font-weight:500;letter-spacing:-.01875rem;color:var(--heading-color)}h2{font-weight:600}h2,h3{font-size:.9375rem;letter-spacing:-.00813rem;color:var(--heading-color)}h3{font-weight:500}h4{font-size:.8125rem;letter-spacing:-.00563rem}h4,h5{font-weight:500;color:var(--heading-color)}h5{font-size:.75rem;letter-spacing:.00063rem;text-transform:uppercase;opacity:.4}h6{font-size:.8125rem;font-weight:500;line-height:1.1375rem;letter-spacing:-.04px;color:var(--heading-color)}h1,h2,h3,h4,h5,h6{display:flex;position:relative;-webkit-text-stroke:.001px transparent}::selection{color:var(--selection-color);background:var(--selection-bg)}::-moz-selection{color:var(--selection-color);background:var(--selection-bg)}:focus-visible{outline:2px solid var(--focus-color)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:transparent;border-radius:100px}:hover::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15)}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.25)}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.table{display:table}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.italic{font-style:italic}.underline{text-decoration-line:underline}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--body-bg:#fdfdfc;--body-color:#111;--heading-color:#111;--hyperlink-color:#3e9fff;--error:#ff0052;--focus-color:rgba(0,122,255,0.5);--selection-color:#111;--selection-bg:#ededed;--primary:#3e9fff;--secondary:#f09637;--spacing-xxs:0.5rem;--spacing-xs:1rem;--spacing-sm:1.5rem;--spacing-md:2rem;--spacing-lg:2.5rem;--spacing-xl:3rem;--spacing-xxl:3.5rem;--duration-snappy:220ms;--ease-snappy:cubic-bezier(0.175,0.885,0.32,1.1);--duration-swift:800ms;--ease-swift:cubic-bezier(0.175,0.885,0.32,1.275);--duration-smooth:300ms;--ease-smooth:cubic-bezier(0.19,1,0.22,1);--overlay-filter:blur(1rem);--overlay-background:hsla(0,0%,100%,0.8);--overlay-shadow:0 0 0 1px rgba(0,0,0,0.04),0 1.625rem 3.375rem rgba(0,0,0,0.04),0 1rem 2rem rgba(0,0,0,0.03),0 0.625rem 1rem rgba(0,0,0,0.024),0 0.3125rem 0.5rem rgba(0,0,0,0.02),0 0.125rem 0.25rem rgba(0,0,0,0.016),0 0 0.125rem rgba(0,0,0,0.01);--max-z-index:2147483647}@supports (color:color(display-p3 1 1 1)){:root{--primary:color(display-p3 0.243137 0.623529 1/1);--secondary:color(display-p3 0.941176 0.588235 0.215686/1)}}.container{padding:5rem 1rem 2.5rem;max-width:36.375rem;margin:0 auto}.container:before{content:"";pointer-events:none;z-index:9;position:fixed;top:0;left:0;right:0;height:8rem;background:linear-gradient(180deg,#fff,hsla(0,0%,100%,.738) 19%,hsla(0,0%,100%,.541) 34%,hsla(0,0%,100%,.382) 47%,hsla(0,0%,100%,.278) 56.5%,hsla(0,0%,100%,.194) 65%,hsla(0,0%,100%,.126) 73%,hsla(0,0%,100%,.075) 80.2%,hsla(0,0%,100%,.042) 86.1%,hsla(0,0%,100%,.021) 91%,hsla(0,0%,100%,.008) 95.2%,hsla(0,0%,100%,.002) 98.2%,hsla(0,0%,100%,0))}@media (max-width:768px){.container{padding:2rem 1.5rem 2.5rem}.container:before{height:2.5rem}}.basic-link{position:relative;display:inline;color:inherit;font-weight:inherit;line-height:inherit;transition:all .2s ease}.basic-link:before{content:"";pointer-events:none;position:absolute;bottom:0;left:0;right:0;height:1px;border-radius:2px;background:#d9d9d9;transition:inherit}.basic-link:hover:before{background:#666}.styled-link{position:relative;color:#2480ed}.styled-link,.styled-link span{display:inline-block;transition:all .2s ease}.styled-link span{margin-left:2px;color:rgba(0,0,0,.4)}.styled-link:hover{color:#74b1fd}.basic-link:focus-visible,.styled-link:focus-visible{border-radius:2px;padding:0 2px;margin:0 -2px;transition:none;outline:2px solid var(--focus-color)}@keyframes staggerIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.homepage>.article>*{animation:staggerIn .5s ease both}.homepage>.article>:first-child{animation-delay:0s}.homepage>.article>:nth-child(2){animation-delay:.05s}.homepage>.article>:nth-child(3){animation-delay:.1s}.homepage>.article>:nth-child(4){animation-delay:.15s}.homepage>.article>:nth-child(5){animation-delay:.2s}.homepage>.article>:nth-child(6){animation-delay:.25s}.homepage>.article>:nth-child(7){animation-delay:.3s}.homepage>.article>:nth-child(8){animation-delay:.35s}.homepage>.article>:nth-child(n+9){animation-delay:.4s}.homepage>section{animation:staggerIn .5s ease both;animation-delay:.45s}.homepage>section+section{animation-delay:.5s}.homepage>footer{animation:staggerIn .5s ease both;animation-delay:.55s}.postList{padding:3rem 0 0}.postList h3.title{font-size:.875rem;font-weight:460;color:rgba(0,0,0,.4);padding-bottom:.5rem}.postList h3.title,.postList>ul>li{border-bottom:1px solid #f2f2f2}.postList>ul>li:last-child{border-bottom:none}.postList li li>a{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.735rem 0 .735rem 6.75rem}.postList li li>a:after{content:"";position:absolute;bottom:0;left:6.75rem;right:0;border-bottom:1px solid #f2f2f2}.postList li li:last-child>a:after{display:none}.postList li li>a h2{color:#111;transition:opacity .14s ease}.postList li li>a h2,.postList time{font-size:.875rem;font-weight:460;letter-spacing:-.00563rem}.postList time{display:block;color:rgba(0,0,0,.4);white-space:nowrap}.postList time span{transition:opacity .14s ease}.postList time span:nth-child(2){position:absolute;width:0;height:0;padding:0;overflow:hidden}.postList time span:last-child{visibility:hidden;position:absolute;left:0}.postList li li:first-child>a>time>span:last-child{visibility:visible}@media screen and (min-width:520px){.postList>ul:hover>li>ul>li>a:not(:hover) h2,.postList>ul:hover>li>ul>li>a:not(:hover) time span{opacity:.3}.postList>ul:hover>li>ul>li>a:not(:hover) time span:last-child{opacity:1}}@media (max-width:520px){.postList li li>a{padding-left:3rem}.postList li li>a:after{left:3rem}}.postList li li>a .meta{font-size:.875rem;font-weight:460;letter-spacing:-.00563rem;color:rgba(0,0,0,.4);white-space:nowrap;transition:opacity .14s ease}@media screen and (min-width:520px){.postList>ul:hover>li>ul>li>a:not(:hover) .meta{opacity:.3}}.postList[data-variant=apps] li li>a{padding-left:0}.postList[data-variant=apps] li li>a:after{left:0}footer.site-footer{padding:2.5rem 0 5rem}footer.site-footer .footer-inner{max-width:36.375rem;margin:0 auto}footer.site-footer .footer-inner:before{content:"";display:block;height:1px;width:3.125rem;background:#ededed;margin:0 0 2.375rem}footer.site-footer .row{display:flex;align-items:center;justify-content:space-between;gap:1rem}footer.site-footer p{color:rgba(0,0,0,.4);font-size:.8125rem;font-weight:460;letter-spacing:-.0025rem;font-variant-numeric:tabular-nums}footer.site-footer .auth-row{display:flex;align-items:center;justify-content:flex-start;padding-top:1.25rem}.auth-link{display:inline-flex;align-items:center;gap:.25rem;color:rgba(0,0,0,.4);font-size:.8125rem;font-weight:460;letter-spacing:-.0025rem;transition:color .1s ease}.auth-link:hover{color:rgba(0,0,0,.8)}.auth-link span.arrow{display:inline-block;transition:transform .2s ease}.auth-link:hover span.arrow{transform:translateX(.25rem)}.hydrate-fade{opacity:0;transition:opacity .3s ease}.hydrate-fade[data-ready=true]{opacity:1}.footer-ear-left-awake,.footer-ear-left-sleeping,.footer-ear-right-awake,.footer-ear-right-sleeping{transform-origin:bottom center;transform-box:fill-box}@keyframes awakeLeftEarTwitch{0%,9%{transform:rotate(0deg)}12%{transform:rotate(-8deg)}16%,34%{transform:rotate(0deg)}38%{transform:rotate(-12deg)}42%{transform:rotate(-6deg)}48%,58%{transform:rotate(0deg)}62%{transform:rotate(-30deg)}70%{transform:rotate(-28deg)}78%,to{transform:rotate(0deg)}}@keyframes awakeRightEarTwitch{0%,9%{transform:rotate(0deg)}12%{transform:rotate(6deg)}16%,34%{transform:rotate(0deg)}38%{transform:rotate(10deg)}42%{transform:rotate(4deg)}48%,58%{transform:rotate(0deg)}62%{transform:rotate(-30deg)}70%{transform:rotate(-28deg)}78%,to{transform:rotate(0deg)}}.footer-ear-left-awake{animation:awakeLeftEarTwitch 12s ease-in-out infinite}.footer-ear-right-awake{animation:awakeRightEarTwitch 12s ease-in-out infinite}@keyframes sleepingLeftEar{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes sleepingRightEar{0%,to{transform:rotate(3deg)}50%{transform:rotate(-3deg)}}.footer-ear-left-sleeping{animation:sleepingLeftEar 4s ease-in-out infinite}.footer-ear-right-sleeping{animation:sleepingRightEar 4s ease-in-out infinite}@keyframes zFloat1{0%{transform:translate(0) scale(.7);opacity:0}10%{opacity:1}80%{opacity:1}to{transform:translate(4px,-14px) scale(1);opacity:0}}@keyframes zFloat2{0%{transform:translate(0) scale(.7);opacity:0}10%{opacity:1}80%{opacity:1}to{transform:translate(6px,-16px) scale(.9);opacity:0}}@keyframes zFloat3{0%{transform:translate(0) scale(.7);opacity:0}10%{opacity:1}80%{opacity:1}to{transform:translate(8px,-18px) scale(.8);opacity:0}}.footer-z-1{animation:zFloat1 3s ease-out infinite}.footer-z-2{animation:zFloat2 3s ease-out infinite;animation-delay:1s}.footer-z-3{animation:zFloat3 3s ease-out infinite;animation-delay:2s}.article{max-width:70ch}.article>header{display:flex;flex-direction:column;gap:.25rem;padding:0 0 .5rem}.article>header h1{font-weight:500;color:#111}.article>header h1,.article>header time{font-size:.875rem;line-height:1.25rem;letter-spacing:-.00563rem}.article>header time{font-weight:460;color:rgba(0,0,0,.4)}.article>footer{display:flex;flex-direction:column;gap:1rem;padding:3rem 0 0}.article>footer h1,.article>footer p{font-size:.75rem;font-weight:460;color:rgba(0,0,0,.4);letter-spacing:.00063rem;line-height:1.2}.article>footer .styled-link{color:rgba(0,0,0,.65)}.article>footer .styled-link:hover{color:#111}aside.rail{position:fixed;top:5rem;left:5rem}@media (max-width:1080px){aside.rail{position:static;max-width:36.375rem;margin:0 auto;padding:5rem 1rem 0}aside.rail+.container{padding-top:1.5rem}}@media (max-width:768px){aside.rail{padding:2rem 1.5rem 0}aside.rail+.container{padding-top:1rem}}.backButton{display:flex;align-items:center;gap:.25rem;padding:.25rem 0;width:-moz-fit-content;width:fit-content;color:rgba(0,0,0,.4);font-size:.875rem;font-weight:460;line-height:1.25rem;letter-spacing:-.00563rem;transition:color .1s ease}.backButton:hover{color:rgba(0,0,0,.8)}.toc{padding:1.875rem 0 0;opacity:0;transition:opacity .4s ease}.toc[data-ready=true]{opacity:1}@media (max-width:1080px){.toc{display:none}}.toc nav{max-width:10rem}.toc nav ul{display:flex;flex-direction:column;gap:.5rem;position:relative}.toc nav h2{cursor:pointer;color:hsla(0,0%,7%,.4);font-size:.8125rem;font-weight:460;line-height:1.2;letter-spacing:-.0025rem;padding:0 0 1rem;opacity:0;transition:.4s ease;transition-property:color,opacity}.toc nav[data-scrolled=true] h2{opacity:1}.toc nav h2:hover{color:hsla(0,0%,7%,.8)}.toc nav h2[data-active=true]{color:#111}.toc nav ul li a{display:block;position:relative;color:hsla(0,0%,7%,.4);font-size:.8125rem;font-weight:460;line-height:1.2;letter-spacing:-.0025rem;transition:color .1s ease}.toc nav ul li a:hover,.toc nav ul li[data-active=true] a{color:hsla(0,0%,7%,.8)}.toc[data-variant=secondary] nav ul{padding-left:.8rem}.toc[data-variant=secondary] nav ul:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:#d9d9d9}.toc[data-variant=secondary] nav ul li a:before{content:"";position:absolute;left:-.8rem;top:0;bottom:0;width:1px;background:#000;opacity:0;transition:opacity .1s ease}.toc[data-variant=secondary] nav ul li[data-active=true] a:before{opacity:1}.article>p,.article>p+h1{padding-top:1rem}.article>p+h2{padding-top:2.25rem}.article>p+h3,.article>p+h4,.article>p+h5,.article>p+h6{padding-top:1rem}.article h1+ol,.article h1+ul,.article h2+ol,.article h2+ul,.article h3+ol,.article h3+ul{padding-top:1.5rem}.article h1{font-size:.9375rem;font-weight:600;letter-spacing:-.00813rem;color:#111}.article h2{font-size:.875rem;font-weight:560;line-height:1.25rem;letter-spacing:-.00563rem;color:#111}.article h1,.article h2,.article h3,.article h4,.article h5,.article h6{text-wrap:balance}.article dl,.article li,.article p{font-size:.875rem;font-weight:460;line-height:1.25rem;letter-spacing:-.00563rem;color:#111}.article p strong{font-weight:600;color:#111}.article p small{font-size:.8125rem;line-height:1rem;letter-spacing:.05px}.article em,.article em strong,.article strong em{color:#000;font-family:var(--font-secondary);font-size:.9375rem;font-style:italic;font-weight:430;letter-spacing:.01rem;font-variation-settings:"opsz" 10}.article p:has(em strong),.article p:has(strong em){color:#999}.article p em{line-height:1}.article .soft{color:rgba(0,0,0,.5)}.article .softer{color:rgba(0,0,0,.3)}.article>ol,.article>ul{list-style:none;display:block;position:relative;padding:.5rem 0 1rem 1.25rem}.article>ol{padding-left:1rem;counter-reset:list}.article>ol li,.article>ul li{position:relative;padding:0 0 .5rem .75rem;font-size:.875rem;font-weight:460;line-height:1.25rem}.article>ol li{padding-left:1rem;counter-increment:list}.article>ol li:last-child,.article>ul li:last-child{padding-bottom:0}.article>ul li:before{content:"";position:absolute;right:100%;top:.675em;width:.25rem;height:.25rem;border-radius:50%;background:#b3b3b3}.article>ul li ul li:before{background:#fff;box-shadow:inset 0 0 0 1px #b3b3b3}.article>ol li:before{content:counter(list) ".";position:absolute;right:100%;top:0;color:rgba(0,0,0,.4)}.article>ol li ol,.article>ul li ul{padding:.5rem 0 0 .5rem}.article code{position:relative;display:inline-block;font-family:var(--font-code);font-size:.9em;line-height:1;color:rgba(0,0,0,.75);padding:.1rem .2rem}.article code:before{content:"";pointer-events:none;position:absolute;inset:-.1em 0;transform:translateY(-1px);border-radius:.25rem;background:rgba(0,0,0,.04)}.article figure[data-rehype-pretty-code-figure]{display:flex;flex-direction:column;gap:.5rem;margin:.625rem auto}.article figure pre{display:block;overflow-x:hidden;white-space:pre-wrap;word-break:break-word;border-radius:.5rem;background:#f8f8f8;color:#333}.article figure pre code{display:block;font-size:.8125rem;font-weight:400;line-height:1.55;padding:.875rem 1rem;counter-reset:line;color:inherit}.article figure pre code:before{display:none}.article figure pre [data-line]{display:block;padding-left:1.75rem}.article figure pre code>[data-line]:before{counter-increment:line;content:counter(line);display:inline-block;width:1.25rem;margin-right:.5rem;margin-left:-1.75rem;text-align:left;color:hsla(0,0%,7%,.4);font-size:.8125rem;line-height:normal}.article figure [data-rehype-pretty-code-title],.article figure figcaption[data-rehype-pretty-code-caption]{font-size:.75rem;color:#7c7b74}.article [data-highlighted-line]{background:hsla(0,0%,100%,.1)}.article [data-highlighted-line-id=i]{background:rgba(248,124,255,.1)}.article [data-highlighted-line-id=s]{background:rgba(255,255,0,.1)}.article [data-highlighted-line-id=v]{background:rgba(183,0,255,.1)}.article [data-highlighted-chars]{background:rgba(7,255,226,.3)}.codeBlock{position:relative;margin-top:2rem}.copyButton{position:absolute;top:.5rem;right:.5rem;padding:.375rem;background:transparent;border:none;cursor:pointer;color:rgba(0,0,0,.4);transition:color .15s ease}.copyButton:hover{color:rgba(0,0,0,.6)}.copyButton svg{width:20px;height:20px;max-width:none}.copyButton[data-copied=true]{color:#34c759}.article blockquote{font-size:.8125rem;font-style:italic;font-weight:460;line-height:140%;letter-spacing:-.0025rem;padding:2rem 0;color:hsla(0,0%,7%,.6)}.article blockquote p{display:block;position:relative;padding:0 0 0 1rem;font-size:inherit;font-style:inherit;line-height:inherit;color:inherit}.article blockquote p:before{content:"";position:absolute;left:0;top:0;bottom:0;width:.125rem;border-radius:.3125rem;background:#e6e6e6}.article blockquote p+p{padding-top:.75rem}.article blockquote cite{display:block;padding:1rem 0 0 1rem}.article blockquote cite:before{content:"- "}.article mark{display:inline-block;position:relative;color:inherit;line-height:1;background:none}.article mark:not([data-marker]):before{content:"";pointer-events:none;z-index:-1;position:absolute;inset:55% 0 0;background:#fef9c0}.article>mark{margin:1rem auto}.article mark[data-marker]{--color:rgb(0,170,255);display:inline;margin:-.1977em -.2827em -.1023em -.2173em;padding:.1977em .2827em .1023em .2173em;border-radius:.5em .3em;background:transparent;-webkit-box-decoration-break:clone;box-decoration-break:clone;background-image:linear-gradient(var(--marker-angle,84.6176deg),color-mix(in srgb,var(--color),transparent 50%),color-mix(in srgb,var(--color),transparent 90%) 4%,color-mix(in srgb,var(--color),transparent 70%) 96%,color-mix(in srgb,var(--color),transparent 30%))}.table-wrapper{display:block;position:relative;width:100%;max-width:100%;overflow-x:auto;padding:.5rem 0 1rem}.article table{display:table;margin:0 auto;border-collapse:collapse;width:100%;font-size:.8125rem}.article tfoot th,.article thead th{text-align:left;color:#111;padding:.375rem .75rem;font-weight:500;line-height:1.15rem;letter-spacing:-.00563rem;border-bottom:1px solid rgba(0,0,0,.1)}.article tbody{color:rgba(0,0,0,.45)}.article tbody strong{color:#000}.article tbody td{padding:.375rem .75rem;white-space:break-spaces;font-weight:460;line-height:1.15rem;border-bottom:1px solid rgba(0,0,0,.06)}.article tbody td:first-child{padding-left:0;color:#111}.article td:last-child,.article th:last-child{padding-right:0}.article tbody td code{font-size:.8125rem;color:rgba(0,0,0,.65)}.article dl{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem .375rem;width:-moz-fit-content;width:fit-content;padding:2.25rem 0 0;font-size:.875rem;line-height:1.375rem;font-weight:460}.article dl dt{color:rgba(0,0,0,.4)}.article dl[data-variant=secondary]{grid-gap:.75rem .25rem;padding:1rem 0;font-size:1rem;width:100%}.article dl[data-variant=secondary] dt{position:relative;color:#111;font-size:.875rem;width:-moz-fit-content;width:fit-content;background-color:var(--body-bg);padding-right:.5rem}.article dl[data-variant=secondary] dt:before{z-index:-1;content:"";position:absolute;left:0;right:-100vw;transform:translateY(1.25em);border-bottom:1px solid #f2f2f2}.article dl[data-variant=secondary] dd{margin-left:auto;padding-left:.5rem;background-color:var(--body-bg);text-align:right;width:-moz-fit-content;width:fit-content;color:rgba(0,0,0,.4);white-space:nowrap}.article .footnotes{padding:2.5rem 0 0}.article .footnotes:before{content:"";display:block;width:3.125rem;height:1px;background:#ededed}.article .footnotes h2{font-size:.6875rem;font-weight:460;color:rgba(0,0,0,.4);letter-spacing:.00063rem;text-transform:uppercase}.article .footnotes ol{list-style:none;padding:3rem 0 0 .25rem!important;position:relative;counter-reset:list}.article .footnotes ol li{counter-increment:list;position:relative;color:rgba(0,0,0,.4);font-size:.75rem;font-weight:460;line-height:1.2;padding:0 0 .5625rem .25rem}.article .footnotes ol li:before{position:absolute;right:100%;top:0;content:counter(list);font-size:.45rem;font-weight:460}.article .footnotes .data-footnote-backref{z-index:1;position:absolute;inset:0;bottom:.5em;overflow:hidden;display:inline-block;text-indent:-9999px}.article sup{font-size:.6em;font-weight:460;line-height:1;letter-spacing:-.00563rem;color:hsla(0,0%,7%,.5);padding:0 0 0 .35em}.article sup a:before{display:none}@keyframes fadeInOut{0%,to{opacity:0}10%{opacity:1}}.article .target{position:relative}.article .target:after{animation:fadeInOut 5s ease both;content:"";position:absolute;inset:.5rem -1rem -.5rem;mix-blend-mode:multiply;background:#ffa;border-radius:.5rem;pointer-events:none}.article li.target:after{inset:-.5rem -1rem .25rem}.article h1.target:after,.article h2.target:after,.article h3.target:after,.article h4.target:after,.article h5.target:after,.article h6.target:after{inset:-.5rem -1rem -.5rem}.divider{display:block;position:relative;padding:2.5rem 0;width:100%}.divider[data-heading=true]{padding:4rem 0 1.5rem}.divider[data-heading=true] h1{font-size:.875rem}.divider .hr{height:1px;background:#f2f2f2}.divider[data-variant=secondary] .hr{background:#bdbdbd}.divider[data-variant=tertiary] .hr{background:#111}.divider[data-variant=small]{padding:1rem 0}.divider[data-variant=small] .hr{width:3.125rem}.divider[data-variant=dashed]{padding:2.5rem 0 2rem}.divider[data-variant=dashed] .hr{background:linear-gradient(90deg,#f2f2f2,#f2f2f2 50%,transparent 0,transparent) 0 0 /6px 1px}.divider[data-variant=dots]{padding:2.5rem 0 2rem}.divider[data-variant=dots] .hr{position:relative;height:3px;width:3px;border-radius:50%;background:#d9d9d9;margin:0 auto}.divider[data-variant=dots] .hr:after,.divider[data-variant=dots] .hr:before{content:"";position:absolute;inset:0;border-radius:50%;background:#d9d9d9}.divider[data-variant=dots] .hr:before{transform:translateX(-1.1875rem)}.divider[data-variant=dots] .hr:after{transform:translateX(1.1875rem)}.divider .heading{position:absolute;width:100%;transform:translateY(-50%)}.divider .heading span{transform:translateY(-15%);display:inline-block;padding:0 .5rem 0 0;background:var(--body-bg);color:hsla(0,0%,7%,.4);font-size:.8125rem;font-weight:400;line-height:1;letter-spacing:.00063rem}.aside{padding:2rem 0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.aside[data-variant=cursive]{font-family:var(--font-script);font-feature-settings:"ss03" on;color:#4a4a4a;font-size:1.375rem;font-weight:460;line-height:95%;letter-spacing:-.0025rem}.aside[data-variant=neutral]{color:rgba(0,0,0,.4);font-size:.875rem;font-weight:460;line-height:1.25rem;letter-spacing:-.00563rem}.article .aside p{font:inherit;color:inherit;letter-spacing:inherit;padding:0}.notation{position:relative;padding-top:1rem}.notation .aside{position:absolute;top:50%;left:100%;transform:translateX(2rem) translateY(-50%);max-width:16rem;width:100%;text-align:left;text-wrap:balance;padding:1rem 0 0}@media screen and (max-width:1080px){.notation .aside{position:relative;top:auto;left:auto;transform:none;margin:0 auto;text-align:center;padding:1.5rem 0 0}}.linkCard{--border:#ebebeb;--color:#111;--background:transparent;display:block;margin:1.25rem 0}.linkCard[href]:hover{cursor:pointer;--background:#f6f6f6;--border:transparent}.linkCard[data-type=warning]{--border:#f6e84c;--background:rgba(246,232,76,0.15)}.linkCard[data-type=error]{--border:#f44336;--background:rgba(244,67,54,0.15)}.linkCard[data-type=success]{--border:#4caf50;--background:rgba(76,175,80,0.15)}.linkCard[data-type=blue]{--color:#3d67ff;--border:#dbe3ff;--background:rgba(61,103,255,0.05)}.linkCard[data-type=orange]{--color:#f09637;--border:#fce6cf;--background:rgba(240,150,55,0.05)}.linkCard header{position:relative;top:1px;padding:.5rem 1rem;border-radius:.5rem .5rem 0 0;box-shadow:inset 0 0 0 1px var(--border);background:var(--background);color:var(--color)}.linkCard header h3{color:inherit}.linkCard .content,.linkCard header h3{font-size:.875rem;font-weight:460;line-height:1.25rem}.linkCard .content{display:flex;align-items:center;gap:.5rem;padding:.65rem 1rem;letter-spacing:-.00563rem;border-radius:.5rem;box-shadow:inset 0 0 0 1px var(--border);background:var(--background);color:#111;transition:all .1s ease}.linkCard header+.content{border-radius:0 0 .5rem .5rem}.linkCard .content p{font-size:inherit;font-weight:inherit;line-height:inherit}.linkCard .content p span{padding-left:.5rem;color:rgba(0,0,0,.4)}@media (max-width:560px){.linkCard .content p span{display:block;padding-left:0}}.linkCard .externalLinkIcon{margin-left:auto;transform:translateY(-1px);flex-shrink:0}.linkCard .icon{color:#999;flex-shrink:0}.article .timeline{--timeline-left:-1.75rem;--circle-size:9px;--circle-border:1.5px;--line-color:rgba(0,0,0,0.08);--circle-border-color:rgba(0,0,0,0.12);--gap-size:6px;--entry-gap:3rem;--h2-line-height:1.25rem;position:relative;margin-top:2rem}.article .timeline .timeline-entry{position:relative;padding-bottom:var(--entry-gap)}.article .timeline .timeline-entry:last-child{padding-bottom:0}.article .timeline h2{position:relative}.article .timeline h2:before{content:"";position:absolute;left:var(--timeline-left);top:calc((var(--h2-line-height) - var(--circle-size)) / 2);width:var(--circle-size);height:var(--circle-size);border-radius:50%;background:#fff;box-shadow:inset 0 0 0 var(--circle-border) var(--circle-border-color);transform:translateX(-50%);z-index:1}.article .timeline .timeline-entry:first-child h2:before{width:calc(var(--circle-size) + 4px);height:calc(var(--circle-size) + 4px)}.article .timeline .timeline-entry:not(:last-child):after{content:"";position:absolute;left:var(--timeline-left);width:1px;background:var(--line-color);transform:translateX(-50%);top:calc((var(--h2-line-height) + var(--circle-size)) / 2 + var(--gap-size));height:calc(100% - var(--circle-size) - var(--gap-size) * 2)}.article .timeline time{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:460;color:rgba(0,0,0,.32);letter-spacing:0}.article .timeline time:after{content:"";display:inline-block;width:2px;height:2px;margin-left:.5rem;border-radius:50%;background:rgba(0,0,0,.15)}.article .timeline time:only-child:after{display:none}.article .timeline p{margin-top:.75rem}.login{gap:1.5rem;max-width:18rem;animation:staggerIn .5s ease both}.login,.login header{display:flex;flex-direction:column}.login header{gap:.25rem}.login header h1{font-weight:500;color:#111}.login header h1,.login header p{font-size:.875rem;line-height:1.25rem;letter-spacing:-.00563rem}.login header p{font-weight:460;color:rgba(0,0,0,.4)}.login form{display:flex;flex-direction:column;gap:.5rem}.login input{width:100%;padding:.5rem .75rem;border-radius:.5rem;box-shadow:inset 0 0 0 1px #ebebeb;background:transparent;color:#111;font-size:.875rem;font-weight:460;line-height:1.25rem;letter-spacing:-.00563rem;transition:box-shadow .15s ease,background .15s ease}.login input::-moz-placeholder{color:rgba(0,0,0,.3)}.login input::placeholder{color:rgba(0,0,0,.3)}.login input:hover{box-shadow:inset 0 0 0 1px #d9d9d9}.login input:focus{outline:none;box-shadow:inset 0 0 0 1px rgba(0,122,255,.5)}.login button{margin-top:.5rem;padding:.5rem .75rem;border-radius:.5rem;background:#111;color:#fdfdfc;font-size:.875rem;font-weight:500;line-height:1.25rem;letter-spacing:-.00563rem;cursor:pointer;transition:opacity .2s ease,transform 20ms ease}.login button:hover:not(:disabled){opacity:.85}.login button:active:not(:disabled){transform:scale(.99)}.login button:disabled{opacity:.4;cursor:default}.login .error{color:var(--error);font-size:.75rem;font-weight:460;line-height:1.2;letter-spacing:.00063rem;min-height:1.2em}