.c-constrain{max-width:1000px;margin-left:auto;margin-right:auto}.c-constrain__inner{height:100%;padding-left:var(--margin-lg);padding-right:var(--margin-lg)}.c-constrain.xs{max-width:380px}.c-constrain.sm{max-width:600px}.c-constrain.lg{max-width:1040px}.c-constrain.xl{max-width:1400px}.c-constrain.sidebar{display:grid;grid-template-columns:240px 1fr;grid-column-gap:var(--spacer)}.c-constrain__sidebar{margin-top:2rem;padding-left:var(--margin-lg)}.c-constrain__sidebar>div{display:unset}@media screen and (max-width: 1380px){.c-constrain.sidebar{grid-template-columns:220px 1fr;max-width:940px}}@media screen and (max-width: 980px){.c-constrain.sidebar{display:block}}.c-header{position:relative;z-index:1;top:0;left:0;width:100%;backdrop-filter:blur(4px)}.c-header__inner{height:100%}.c-header__inner article{max-width:400px;padding:4rem 0;font-size:var(--font-size-lg);line-height:1.4}.c-header__inner article h1{font-size:var(--font-size-lg);line-height:1.4;margin:0}.c-header__inner article h1 span{opacity:.75}.c-header__inner nav{height:100%;display:flex;justify-content:center;align-items:center}.c-header__inner nav>a{color:var(--color-font);display:inline-block;padding:var(--margin) var(--spacer-sm);margin:0 var(--margin-sm);font-weight:500;color:var(--font-color);border-radius:var(--border-radius-lg);transition:all var(--transition-time-sm) linear}.c-header__inner nav>a:hover,.c-header__inner nav>a:active,.c-header__inner nav>a.active{color:var(--color-link);background-color:var(--color-primary-dark)}.c-header__inner nav>a:hover h1,.c-header__inner nav>a:active h1,.c-header__inner nav>a.active h1{font-style:normal}.c-header__inner .btn.btn-fancy{padding:var(--margin) var(--spacer-sm)}.c-header__inner .btn:not(:last-child){margin-right:var(--margin-lg)}.c-header__mobile{display:none;position:fixed;z-index:10;top:0;left:0;width:100%;max-height:48px;justify-content:space-between;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:solid 1px var(--color-translucent)}.c-header__mobile>h1{display:flex;align-items:center;justify-content:center}.c-header__mobile button{-webkit-appearance:none;border:none;background-color:transparent;touch-action:manipulation;user-select:none;color:var(--color-font);padding:var(--margin-lg);cursor:pointer}.c-header__menu{display:none;position:fixed;top:48px;left:0;width:100%;pointer-events:none;opacity:0;transform:translateY(-4px);transition:all var(--transition-time) var(--ease-out-quad);border-bottom:solid 1px var(--color-translucent)}.c-header__menu a{display:block;background-color:var(--color-bg-2);font-weight:500;padding:var(--margin-lg);touch-action:manipulation}.c-header__menu a:hover,.c-header__menu a:active{background-color:var(--color-bg-4)}.c-header.active .c-header__mobile{background-color:var(--color-bg-2);border-color:var(--color-bg-2)}.c-header.active .c-header__menu{pointer-events:initial;opacity:1;transform:translateY(0)}@media screen and (max-width: 576px){.c-header{height:auto}.c-header__inner{display:none}.c-header__mobile{display:flex}.c-header__menu{display:block}}:before,:after{box-sizing:border-box}a,abbr,address,area,article,aside,audio,b,base,bdi,bdo,blockquote,body,br,button,canvas,caption,cite,code,col,colgroup,data,datalist,dd,del,details,dfn,dialog,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,i,iframe,img,input,ins,kbd,label,legend,li,link,main,map,mark,meta,meter,nav,noscript,object,ol,optgroup,option,output,p,param,picture,pre,progress,q,rp,rt,ruby,s,samp,script,section,select,small,source,span,strong,style,sub,summary,sup,svg,table,tbody,td,template,textarea,tfoot,th,thead,time,title,tr,track,u,ul,var,video,wbr{box-sizing:border-box;margin:0}body{-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root,#__next{isolation:isolate}pre,code{font-family:var(--font-family-monospace)}h1,.h1{margin-top:0;margin-bottom:1.5rem;font-size:var(--font-size-xxxl);font-weight:200;line-height:1.14;font-family:var(--font-family-heading)}h1.fancy,.h1.fancy{font-size:var(--font-size-xxxxl);font-family:var(--font-family-heading);font-weight:300;background:linear-gradient(to bottom,#f7f7f7 30%,#b3b3b3);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0px 2px 4px rgba(35,8,22,.7))}h2,.h2{margin-top:0;margin-bottom:1rem;font-size:var(--font-size-xxl);font-weight:600;line-height:1.18}h2.fancy,.h2.fancy{font-family:var(--font-family-heading);font-weight:300}h3,.h3{margin-top:0;margin-bottom:1rem;font-weight:600;font-size:var(--font-size-xl);line-height:1.18}h4,.h4{margin-top:0;margin-bottom:1rem;font-size:var(--font-size-lg);font-weight:500;line-height:1.3}a{text-decoration:none;color:var(--color-link)}a:hover,a:focus,a:active{text-decoration:none;color:var(--color-link-hover)}p,.p{margin-bottom:1rem}ul,ol{padding-left:1rem;margin-top:0;margin-bottom:1rem}ul li,ol li{margin-bottom:0}ul li::marker,ol li::marker{color:var(--color-grey-2)}ul li>p:last-child,ol li>p:last-child{margin-bottom:0!important}p+ul,p+ol{margin-top:-1rem}blockquote{padding-left:24px;border-left:var(--color-border-primary) solid 4px}strong,b{font-weight:600}.article-text{color:var(--color-font-light);font-size:var(--font-size-lg);font-weight:500}.byline{font-size:var(--font-size-sm);opacity:.85;color:var(--color-primary);text-transform:uppercase;font-weight:600;letter-spacing:.2px}hr{display:block;height:1px;margin:var(--spacer) 0;padding:0;background-color:var(--color-bg-6);border:none}code{font-size:var(--font-size-sm);font-weight:50}@font-face{font-family:PP Editorial New;src:url(/fonts/ppeditorialnewitalic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:block}@font-face{font-family:PP Editorial New;src:url(/fonts/ppeditorialnew.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:block}@font-face{font-family:Jetbrains Mono;src:url(/fonts/jetbrains-mono.woff2);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Jetbrains Mono;src:url(/fonts/jetbrains-mono-italic.woff2);font-weight:400;font-style:italic;font-display:swap}.btn{position:relative;display:inline-flex;height:38px;line-height:24px;padding:7px var(--spacer-sm);justify-content:center;align-items:center;background-color:var(--color-bg-4);border:var(--color-bg-4) solid 1px;font-weight:500;cursor:pointer;user-select:none;color:var(--color-font);border-radius:var(--input-radius);transition:all .12s linear;box-shadow:inset 0 -1px 1px #00000001,inset 0 1px 1px #ffffff06,inset 0 5px 20px 1px #ffffff06,0 2px 5px #3c425714,0 1px 1px #0000001f,0 0 0 1px #00000026}.btn>.c-spinner{margin-right:var(--margin)}.btn:hover,.btn:active,.btn:focus{color:var(--color-font);outline:none;border-color:var(--color-primary);box-shadow:inset 0 -1px 1px #00000001,inset 0 1px 1px #ffffff0d,inset 0 5px 20px 1px #ffffff06,0 2px 5px #3c425714,0 1px 1px #00000013,0 0 0 2px var(--color-focus)}.btn.btn-icon{gap:var(--margin)}.btn.btn-icon>svg{margin-left:calc(var(--margin) * -1)}.btn.btn-round{border-radius:99px}.btn.btn-wide{width:100%}.btn.btn-primary{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-font-input)}.btn.btn-success{background-color:var(--color-success);border-color:var(--color-success);color:var(--color-font-input)}.btn.btn-danger{background-color:var(--color-danger);border-color:var(--color-danger);color:var(--color-font-input)}.btn.btn-danger:hover,.btn.btn-danger:active,.btn.btn-danger:focus{box-shadow:inset 0 -1px 1px #00000001,inset 0 1px 1px #ffffff0d,inset 0 5px 20px 1px #ffffff06,0 2px 5px #3c425714,0 1px 1px #00000013,0 0 0 2px var(--color-focus-danger)}.btn[disabled]{border-color:var(--color-bg-4);border-color:transparent;pointer-events:none;box-shadow:inset 0 -1px 1px #0000,inset 0 1px 1px #fff0,inset 0 5px 20px 1px #fff0,0 2px 5px #3c425714,0 1px 1px #0000001f,0 0 0 1px #00000026}.btn[disabled]:hover,.btn[disabled]:active,.btn[disabled]:focus{border-color:transparent;box-shadow:inset 0 -1px 1px #0000,inset 0 1px 1px #fff0,inset 0 5px 20px 1px #fff0,0 2px 5px #3c425714,0 1px 1px #0000001f,0 0 0 1px #00000026}.btn.btn-lg{height:44px;padding:var(--spacer-sm)}.btn.btn-sm{height:32px;padding:var(--margin-lg);font-size:var(--font-size-sm)}.btn:disabled{opacity:.75;box-shadow:none;cursor:not-allowed}.btn.btn-fancy{height:initial;padding:var(--margin-lg) var(--spacer);border-radius:99px;border:none;box-shadow:#fff 0 0,#0000 0 0 0 2px,#0006 0 0 0 .5px,#0000001f 0 1px 1px -1px,#0000001f 0 2px 2px -1px,#ffffff0f 0 .5px inset,#ffffff29 0 0 1px inset,#00000029 0 -6px 12px -4px inset}.btn.btn-fancy svg{margin-left:var(--margin-lg);margin-right:-18px}.c-input{margin-bottom:16px;font-size:var(--font-size-sm)}.c-input span[role=alert]{user-select:none;display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-warning)}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.c-spinner{width:16px;height:16px;font-size:12px;overflow:hidden;margin-left:-6px;border:2px solid #fff;border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite}.form-label{user-select:none;display:block;margin-bottom:8px;line-height:1;opacity:.85}.form-control{width:100%;display:block;position:relative;-webkit-appearance:none;padding:4px 8px;font-size:var(--font-size-sm);background-color:var(--color-bg-2);border:transparent solid 1px;border-radius:var(--input-radius);min-height:38px;margin-bottom:8px;color:var(--color-font);transition:var(--transition)}.form-control:focus,.form-control:active{outline:none;box-shadow:0 0 0 3px var(--color-focus);border-color:var(--color-focus)}.c-switch{position:relative;display:inline-block;width:60px;height:30px;user-select:none}.c-switch input{opacity:0;width:0;height:0}.c-switch input:focus{outline:none}.c-switch input:checked+.c-switch__slider .c-switch__toggle{transform:translate(30px);color:var(--color-primary)}.c-switch__slider{position:absolute;cursor:pointer;inset:0;background-color:var(--color-bg-1);-webkit-transition:.4s;transition:.4s;border-radius:99px}.c-switch__toggle{position:absolute;display:flex;align-items:center;justify-content:center;content:"";width:24px;height:24px;left:3px;bottom:3px;background-color:#fff;transition:.5s;color:var(--color-bg-3);border-radius:99px}.c-switch__toggle>svg{transform:scale(.6)}.c-switch.round{width:30px}.c-switch.round input:checked+.c-switch__slider .c-switch__toggle{transform:translate(0);color:var(--color-primary)}@keyframes animloader{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:0}}.c-switch{width:40px;height:20px}.c-switch__toggle{left:2px;bottom:2px;width:16px;height:16px}.c-switch__slider{background-color:var(--color-bg-3)}.c-switch input:checked+.c-switch__slider{background-color:var(--color-primary)}.c-switch input:checked+.c-switch__slider .c-switch__toggle{transform:translate(20px)}[class*=shj-lang-]{white-space:pre-wrap;margin:10px 0;border-radius:10px;padding:var(--margin-lg);background:#fff;color:#112;box-shadow:0 0 5px #0001;text-shadow:none;line-height:24px;box-sizing:border-box;max-width:min(100%,100vw);border-radius:var(--border-radius)}.shj-inline{margin:0;display:inline-block;border-radius:5px}[class*=shj-lang-]::selection,[class*=shj-lang-] ::selection{background:#bdf5}[class*=shj-lang-]>div{display:flex;overflow:auto}[class*=shj-lang-]>div :last-child{flex:1;outline:none}.shj-numbers{padding-left:5px;counter-reset:line}.shj-numbers div{padding-right:5px}.shj-numbers div:before{color:#999;display:block;content:counter(line);opacity:.5;text-align:right;margin-right:5px;counter-increment:line}.shj-syn-cmnt{font-style:italic}.shj-syn-err,.shj-syn-kwd{color:#e16}.shj-syn-num,.shj-syn-class{color:#f60}.shj-numbers,.shj-syn-cmnt{color:#999}.shj-syn-insert,.shj-syn-str{color:#7d8}.shj-syn-bool{color:#3bf}.shj-syn-type,.shj-syn-oper{color:#5af}.shj-syn-section,.shj-syn-func{color:#84f}.shj-syn-deleted,.shj-syn-var{color:#f44}.shj-oneline{padding:12px 10px}.shj-lang-http.shj-oneline .shj-syn-kwd{background:#25f;color:#fff;padding:5px 7px;border-radius:5px}[class*=shj-lang-]{color:#abb2bf;background:var(--color-bg-2)}[class*=shj-lang-]:before{color:#6f9aff}.shj-syn-deleted,.shj-syn-err,.shj-syn-var{color:#e06c75}.shj-syn-section,.shj-syn-oper,.shj-syn-kwd{color:#c678dd}.shj-syn-class{color:#e5c07b}.shj-numbers,.shj-syn-cmnt{color:#76839a}.shj-syn-insert{color:#98c379}.shj-syn-type{color:#56b6c2}.shj-syn-num,.shj-syn-bool{color:#d19a66}.shj-syn-str,.shj-syn-func{color:#61afef}.shj-numbers{display:none}#nprogress{pointer-events:none}#nprogress .bar{background:var(--color-primary);position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px var(--color-primary),0 0 5px var(--color-primary);opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:var(--color-primary);border-left-color:var(--color-primary);border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{interpolate-size:allow-keywords}body{--grid-gap: 10px;--container-sm-width: 720px;--container-width: 1024px;--hue-p: 353;--hue-s: 20;--hue-red: 362;--hue-orange: 36;--hue-green: 93;--color-font: hsl(var(--hue-s), 8%, 94%);--color-font-light: hsl(var(--hue-s), 12%, 85%);--color-translucent: hsla(0, 0%, 100%, .075);--color-bg-0: hsl(var(--hue-p), 0%, 2%);--color-bg-1: hsl(var(--hue-p), 3%, 8%);--color-bg-2: hsl(var(--hue-p), 3%, 12%);--color-bg-3: hsl(var(--hue-p), 3%, 16%);--color-bg-4: hsl(var(--hue-p), 3%, 18%);--color-bg-5: hsl(var(--hue-p), 3%, 22%);--color-bg-6: hsl(var(--hue-p), 3%, 24%);--color-bg-input: hsl(var(--hue-p), 10%, 94%);--color-font-input: hsl(var(--hue-p), 0%, 99%);--color-focus: hsl(var(--hue-p), 50%, 50%);--color-focus-danger: hsl(var(--hue-red), 50%, 40%);--color-primary: hsl(var(--hue-p), 73%, 56%);--color-primary-light: hsl(var(--hue-p), 86%, 66%);--color-primary-dark: hsl(var(--hue-p), 84%, 12%);--color-warning: hsl(var(--hue-orange), 90%, 47%);--color-danger: hsl(var(--hue-red), 65%, 48%);--color-success: hsl(var(--hue-green), 54%, 47%);--color-border-2: hsl(var(--hue-p), 10%, 80%);--color-border-transparent: rgba(0, 0, 0, .05);--color-link: hsl(var(--hue-p), 75%, 74%);--color-link-hover: hsl(var(--hue-p), 90%, 66%);--font-size-xxs: .625rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size: 1rem;--font-size-md: 1.125rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-xxl: 1.75rem;--font-size-xxxl: 3.25rem;--font-size-xxxxl: 4rem;--font-weight: 420;--font-family-heading: "Jetbrains Mono", monospace;--font-family: "Jetbrains Mono", monospace;--font-family-monospace: "Jetbrains Mono", ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Courier New", monospace;--line-height: 1.5;--font-space: 12px;--font-heading-line-height: 1.3;--input-radius: 10px;--breakpoint-sm: 720px;--border-radius-sm: 0;--border-radius: 0;--border-radius-lg: 0;--border-radius-xl: 0;--border-radius-full: 9999px;--spacer-sm: 16px;--spacer: 32px;--spacer-lg: 48px;--margin-xs: 2px;--margin-sm: 4px;--margin: 6px;--margin-lg: 12px;--ease-out-quad: cubic-bezier(.25, .46, .45, .94);--transition-time-sm: 60ms;--transition-time: .12s;--transition: all 90ms ease-in-out;--box-shadow-low: 0px 2px 4px rgba(0, 0, 0, .1);--box-shadow-high: 0px 7px 32px rgba(0, 0, 0, .35);font-family:var(--font-family);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height);color:var(--color-font);background-color:var(--color-bg-1)}@media screen and (max-width: 576px){body{--input-radius: 6px;--font-size-xxl: 2rem;--font-size-xxxl: 3rem}}body{font-size:16px;background-color:var(--color-bg-1);overflow-x:hidden}body main{position:relative;z-index:1}body .c-header{backdrop-filter:none}body .c-card{margin-bottom:1rem}@media screen and (max-width: 576px){body main{padding-top:48px}}
