body{margin:0;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";color:#000;background-color:#fff;min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}body h1,body h2,body h3{font-family:"Barlow Condensed",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}body.dark{color:#fff;background-color:#333}img{width:100%;height:auto}h1,h2,h3,h4,h5,h6,p{margin:.75rem 0;font-weight:400}h1{font-size:2.027rem}@media screen and (min-width:720px){h1{font-size:2.986rem}}h2{font-size:1.802rem}@media screen and (min-width:720px){h2{font-size:2.488rem}}h3{font-size:1.602rem}@media screen and (min-width:720px){h3{font-size:2.074rem}}h4{font-size:1.424rem}@media screen and (min-width:720px){h4{font-size:1.728rem}}h5{font-size:1.266rem}@media screen and (min-width:720px){h5{font-size:1.44rem}}h6{font-size:1.125rem}@media screen and (min-width:720px){h6{font-size:1.2rem}}small{font-size:.889rem}@media screen and (min-width:720px){small{font-size:.833rem}}a{color:#000;text-decoration:underline}body.dark a{color:#c9f}a:hover{text-decoration:underline}hr{border-color:rgba(0,0,0,0.1)}h3 a{text-decoration:none}.container,.container-sm{margin:0 auto;padding:1rem;padding-bottom:2.5rem;max-width:1024px;width:calc(100% - 2rem)}.container-sm{max-width:720px}.footer{display:flex;align-items:center;justify-content:center;padding:.5rem 0;color:#fff;background:#303030}body.dark .footer{background:#3d3d3d}.hero_s{flex-direction:column;display:flex;align-items:center;padding:1rem}@media screen and (min-width:720px){.hero_s{flex-direction:row;padding:2rem}}.hero_img{max-width:11rem;border-radius:50%;border:1px solid #45260d;float:left;margin-right:1rem}.hero{margin:1rem 0}.hero__description{max-width:50ch}@media screen and (min-width:720px){.hero{margin:5rem 0}}.navbar{padding:1rem;box-shadow:0 0 0 .5px #000,inset 0 4px 0 0 #000}body.dark .navbar{box-shadow:0 0 0 1px #fff,inset 0 4px 0 0 #fff}.navbar a{text-decoration:none}.navbar__inner{display:flex;flex-direction:row;align-items:center;justify-content:space-between;max-width:1024px;margin:0 auto}.navbar__links{display:none}@media screen and (min-width:720px){.navbar__links{display:flex;align-items:center;justify-content:space-between;gap:.25rem}}.navbar__mobile-links{display:none}.navbar__mobile-links--open{display:flex;flex-direction:column;gap:.25rem}@media screen and (min-width:720px){.navbar__mobile-links{display:none}}.navbar__mobile-link{padding:1rem;border-radius:.25rem}.navbar__mobile-link:hover{background-color:#f2f2f2}body.dark .navbar__mobile-link:hover{background-color:#3d3d3d}.navbar__mobile-options{display:flex;gap:.25rem}@media screen and (min-width:720px){.navbar__mobile-options{display:none}}.navbar__button{display:block;line-height:0;padding:.5rem;background-color:transparent;border:none;border-radius:.25rem}.navbar__button:hover{background-color:#f2f2f2}body.dark .navbar__button:hover{background-color:#3d3d3d}body.dark .navbar__hamburger > svg{fill:#fff}.navbar__link{display:inline-block;padding:.75rem}.navbar__logo{font-family:"Barlow Condensed",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;display:inline-block;border-radius:.25rem;font-size:1.602rem}@media screen and (min-width:720px){.navbar__logo{font-size:2.074rem}}.section-title{font-size:1.802rem;color:#333;font-weight:400}@media screen and (min-width:720px){.section-title{font-size:2.488rem}}body.dark .section-title{color:#ccc}.card-grid{display:grid;grid-auto-rows:auto;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}@media screen and (min-width:720px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}.card{padding:1rem;border-radius:.25rem;box-shadow:0 0 0 1px rgba(0,0,0,0.06) , 0 2px 2px rgba(0,0,0,0.04) , 0 4px 4px rgba(0,0,0,0.05) , 0 6px 6px rgba(0,0,0,0.06)}body.dark .card{box-shadow:0 0 0 1px rgba(255,255,255,0.06) , 0 2px 2px rgba(255,255,255,0.04) , 0 4px 4px rgba(255,255,255,0.05) , 0 6px 6px rgba(255,255,255,0.06)}.card__title{font-size:1.266rem;margin-top:0;margin-bottom:.1rem}@media screen and (min-width:720px){.card__title{font-size:1.44rem}}.card__date{margin-top:0;color:#333;font-size:.889rem}@media screen and (min-width:720px){.card__date{font-size:.833rem}}body.dark .card__date{color:#ccc}.card__description{margin:0}.card__tags{display:flex;align-items:center;column-gap:.5rem;margin-top:1rem;margin-bottom:.1rem;font-size:.889rem}@media screen and (min-width:720px){.card__tags{font-size:.833rem}}.card__tags a{text-decoration:none;color:#666}body.dark .card__tags svg{fill:#c9f}.pagination{display:flex;margin:1rem 0}.pagination > a{display:block}.pagination__next{margin-left:auto}code[class*="language-"],pre[class*="language-"]{background:#282c34;color:#abb2bf;text-shadow:0 1px rgba(0,0,0,0.3);font-family:"Fira Code","Fira Mono",Menlo,Consolas,"DejaVu Sans Mono",monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*="language-"]::-moz-selection,code[class*="language-"] *::-moz-selection,pre[class*="language-"] *::-moz-selection{background:#3e4451;color:inherit;text-shadow:none}code[class*="language-"]::selection,code[class*="language-"] *::selection,pre[class*="language-"] *::selection{background:#3e4451;color:inherit;text-shadow:none}pre[class*="language-"]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre) > code[class*="language-"]{padding:.2em .3em;border-radius:.3em;white-space:normal}code[class*="language-"]{text-shadow:none}.token.comment,.token.prolog,.token.cdata{color:#5c6370}.token.doctype,.token.punctuation,.token.entity{color:#abb2bf}.token.attr-name,.token.class-name,.token.boolean,.token.constant,.token.number,.token.atrule{color:#d19a66}.token.keyword{color:#c678dd}.token.url{color:#56b6c2}.token.bold{font-weight:bold}.token.entity{cursor:help}.token.namespace{opacity:.8}.token.property,.token.tag,.token.symbol,.token.deleted,.token.important{color:#e06c75}.token.selector,.token.string,.token.char,.token.builtin,.token.inserted,.token.regex,.token.attr-value,.token.attr-value > .token.punctuation{color:#98c379}.token.variable,.token.operator,.token.function{color:#61afef}.token.attr-value > .token.punctuation.attr-equals,.token.special-attr > .token.attr-value > .token.value.css{color:#abb2bf}.language-css .token.selector{color:#e06c75}.language-css .token.property{color:#abb2bf}.language-css .token.url > .token.string.url{color:#98c379}.language-css .token.function,.language-css .token.url > .token.function{color:#56b6c2}.language-css .token.important,.language-css .token.atrule .token.rule{color:#c678dd}.language-javascript .token.operator{color:#c678dd}.language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation{color:#be5046}.language-json .token.operator{color:#abb2bf}.language-json .token.null.keyword{color:#d19a66}.language-markdown .token.url,.language-markdown .token.url > .token.operator,.language-markdown .token.url-reference.url > .token.string{color:#abb2bf}.language-markdown .token.url > .token.content{color:#61afef}.language-markdown .token.code-snippet{color:#98c379}.language-markdown .token.bold .token.content{color:#d19a66}.language-markdown .token.italic .token.content{color:#c678dd}.language-markdown .token.url > .token.url,.language-markdown .token.url-reference.url{color:#56b6c2}.language-markdown .token.blockquote.punctuation,.language-markdown .token.hr.punctuation{color:#5c6370;font-style:italic}.language-markdown .token.strike .token.content,.language-markdown .token.strike .token.punctuation,.language-markdown .token.list.punctuation,.language-markdown .token.title.important > .token.punctuation{color:#e06c75}.token.comment,.token.italic{font-style:italic}.token.token.tab:not(:empty):before,.token.token.cr:before,.token.token.lf:before,.token.token.space:before{color:rgba(171,178,191,0.15);text-shadow:none}div.code-toolbar > .toolbar.toolbar > .toolbar-item{margin-right:.4em}div.code-toolbar > .toolbar.toolbar > .toolbar-item > button,div.code-toolbar > .toolbar.toolbar > .toolbar-item > a,div.code-toolbar > .toolbar.toolbar > .toolbar-item > span{background:#3a3f4b;color:#828997;padding:.1em .4em;border-radius:.3em}div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover,div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus,div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover,div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus,div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover,div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus{background:#3e4451;color:#abb2bf}.line-highlight.line-highlight{background:rgba(153,187,255,0.04)}.line-highlight.line-highlight:before,.line-highlight.line-highlight[data-end]:after{background:#3a3f4b;color:#abb2bf;padding:.1em .6em;border-radius:.3em;box-shadow:0 2px 0 0 rgba(0,0,0,0.2)}pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before{background-color:rgba(153,187,255,0.04)}.line-numbers.line-numbers .line-numbers-rows,.command-line .command-line-prompt{border-right-color:rgba(171,178,191,0.15)}.line-numbers .line-numbers-rows > span:before,.command-line .command-line-prompt > span:before{color:#636d83}.rainbow-braces .token.token.punctuation.brace-level-1,.rainbow-braces .token.token.punctuation.brace-level-5,.rainbow-braces .token.token.punctuation.brace-level-9{color:#e06c75}.rainbow-braces .token.token.punctuation.brace-level-2,.rainbow-braces .token.token.punctuation.brace-level-6,.rainbow-braces .token.token.punctuation.brace-level-10{color:#98c379}.rainbow-braces .token.token.punctuation.brace-level-3,.rainbow-braces .token.token.punctuation.brace-level-7,.rainbow-braces .token.token.punctuation.brace-level-11{color:#61afef}.rainbow-braces .token.token.punctuation.brace-level-4,.rainbow-braces .token.token.punctuation.brace-level-8,.rainbow-braces .token.token.punctuation.brace-level-12{color:#c678dd}pre.diff-highlight > code .token.token.deleted:not(.prefix),pre > code.diff-highlight .token.token.deleted:not(.prefix){background-color:rgba(255,82,102,0.15)}pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection,pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection,pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection,pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection{background-color:rgba(251,86,105,0.25)}pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection,pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection,pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection,pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection{background-color:rgba(251,86,105,0.25)}pre.diff-highlight > code .token.token.inserted:not(.prefix),pre > code.diff-highlight .token.token.inserted:not(.prefix){background-color:rgba(26,255,91,0.15)}pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection,pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection,pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection,pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection{background-color:rgba(56,224,98,0.25)}pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection,pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection,pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection,pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection{background-color:rgba(56,224,98,0.25)}.prism-previewer.prism-previewer:before,.prism-previewer-gradient.prism-previewer-gradient div{border-color:#262931}.prism-previewer-color.prism-previewer-color:before,.prism-previewer-gradient.prism-previewer-gradient div,.prism-previewer-easing.prism-previewer-easing:before{border-radius:.3em}.prism-previewer.prism-previewer:after{border-top-color:#262931}.prism-previewer-flipped.prism-previewer-flipped.after{border-bottom-color:#262931}.prism-previewer-angle.prism-previewer-angle:before,.prism-previewer-time.prism-previewer-time:before,.prism-previewer-easing.prism-previewer-easing{background:#31363f}.prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:#abb2bf;stroke-opacity:1}.prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:#abb2bf}.prism-previewer-easing.prism-previewer-easing circle{fill:transparent}body.dark code[class*="language-"],body.dark pre[class*="language-"]{background:#fafafa;color:#383a42;font-family:"Fira Code","Fira Mono",Menlo,Consolas,"DejaVu Sans Mono",monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}body.dark code[class*="language-"]::-moz-selection,body.dark code[class*="language-"] *::-moz-selection,body.dark pre[class*="language-"] *::-moz-selection{background:#e5e5e6;color:inherit}body.dark code[class*="language-"]::selection,body.dark code[class*="language-"] *::selection,body.dark pre[class*="language-"] *::selection{background:#e5e5e6;color:inherit}body.dark body.dark pre[class*="language-"]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}body.dark body.dark :not(pre) > code[class*="language-"]{padding:.2em .3em;border-radius:.3em;white-space:normal}body.dark .token.comment,body.dark .token.prolog,body.dark .token.cdata{color:#a0a1a7}body.dark .token.doctype,body.dark .token.punctuation,body.dark .token.entity{color:#383a42}body.dark .token.attr-name,body.dark .token.class-name,body.dark .token.boolean,body.dark .token.constant,body.dark .token.number,body.dark .token.atrule{color:#b76b01}body.dark .token.keyword{color:#a626a4}body.dark .token.url{color:#0184bc}body.dark .token.bold{font-weight:bold}body.dark .token.entity{cursor:help}body.dark .token.namespace{opacity:.8}body.dark .token.property,body.dark .token.tag,body.dark .token.symbol,body.dark .token.deleted,body.dark .token.important{color:#e45649}body.dark .token.selector,body.dark .token.string,body.dark .token.char,body.dark .token.builtin,body.dark .token.inserted,body.dark .token.regex,body.dark .token.attr-value,body.dark .token.attr-value > .token.punctuation{color:#50a14f}body.dark .token.variable,body.dark .token.operator,body.dark .token.function{color:#4078f2}body.dark .token.attr-value > .token.punctuation.attr-equals,body.dark .token.special-attr > .token.attr-value > .token.value.css{color:#383a42}body.dark .language-css .token.selector{color:#e45649}body.dark .language-css .token.property{color:#383a42}body.dark .language-css .token.url > .token.string.url{color:#50a14f}body.dark .language-css .token.function,body.dark .language-css .token.url > .token.function{color:#0184bc}body.dark .language-css .token.important,body.dark .language-css .token.atrule .token.rule{color:#a626a4}body.dark .language-javascript .token.operator{color:#a626a4}body.dark .language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation{color:#ca1243}body.dark .language-json .token.operator{color:#383a42}body.dark .language-json .token.null.keyword{color:#b76b01}body.dark .language-markdown .token.url,body.dark .language-markdown .token.url > .token.operator,body.dark .language-markdown .token.url-reference.url > .token.string{color:#383a42}body.dark .language-markdown .token.url > .token.content{color:#4078f2}body.dark .language-markdown .token.code-snippet{color:#50a14f}body.dark .language-markdown .token.bold .token.content{color:#b76b01}body.dark .language-markdown .token.italic .token.content{color:#a626a4}body.dark .language-markdown .token.url > .token.url,body.dark .language-markdown .token.url-reference.url{color:#0184bc}body.dark .language-markdown .token.blockquote.punctuation,body.dark .language-markdown .token.hr.punctuation{color:#a0a1a7;font-style:italic}body.dark .language-markdown .token.strike .token.content,body.dark .language-markdown .token.strike .token.punctuation,body.dark .language-markdown .token.list.punctuation,body.dark .language-markdown .token.title.important > .token.punctuation{color:#e45649}body.dark .token.comment,body.dark .token.italic{font-style:italic}body.dark .token.token.tab:not(:empty):before,body.dark .token.token.cr:before,body.dark .token.token.lf:before,body.dark .token.token.space:before{color:rgba(56,58,66,0.2)}body.dark div.code-toolbar > .toolbar.toolbar > .toolbar-item{margin-right:.4em}body.dark div.code-toolbar > .toolbar.toolbar > .toolbar-item > button,body.dark div.code-toolbar > .toolbar.toolbar > .toolbar-item > a,body.dark div.code-toolbar > .toolbar.toolbar > .toolbar-item > span{background:#e5e5e6;color:#696c77;padding:.1em .4em;border-radius:.3em}body.dark div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover,body.dark div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus,body.dark div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover,body.dark div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus,body.dark div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover,body.dark div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus{background:#c6c7c7;color:#383a42}body.dark .line-highlight.line-highlight{background:rgba(56,58,66,0.05)}body.dark .line-highlight.line-highlight:before,body.dark .line-highlight.line-highlight[data-end]:after{background:#e5e5e6;color:#383a42;padding:.1em .6em;border-radius:.3em;box-shadow:0 2px 0 0 rgba(0,0,0,0.2)}body.dark pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before{background-color:rgba(56,58,66,0.05)}body.dark .line-numbers.line-numbers .line-numbers-rows,body.dark .command-line .command-line-prompt{border-right-color:rgba(56,58,66,0.2)}body.dark .line-numbers .line-numbers-rows > span:before,body.dark .command-line .command-line-prompt > span:before{color:#9d9d9f}body.dark .rainbow-braces .token.token.punctuation.brace-level-1,body.dark .rainbow-braces .token.token.punctuation.brace-level-5,body.dark .rainbow-braces .token.token.punctuation.brace-level-9{color:#e45649}body.dark .rainbow-braces .token.token.punctuation.brace-level-2,body.dark .rainbow-braces .token.token.punctuation.brace-level-6,body.dark .rainbow-braces .token.token.punctuation.brace-level-10{color:#50a14f}body.dark .rainbow-braces .token.token.punctuation.brace-level-3,body.dark .rainbow-braces .token.token.punctuation.brace-level-7,body.dark .rainbow-braces .token.token.punctuation.brace-level-11{color:#4078f2}body.dark .rainbow-braces .token.token.punctuation.brace-level-4,body.dark .rainbow-braces .token.token.punctuation.brace-level-8,body.dark .rainbow-braces .token.token.punctuation.brace-level-12{color:#a626a4}body.dark pre.diff-highlight > code .token.token.deleted:not(.prefix),body.dark pre > code.diff-highlight .token.token.deleted:not(.prefix){background-color:rgba(255,82,102,0.15)}body.dark pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection,body.dark pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection,body.dark pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection,body.dark pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection{background-color:rgba(251,86,105,0.25)}body.dark pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection,body.dark pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection,body.dark pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection,body.dark pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection{background-color:rgba(251,86,105,0.25)}body.dark pre.diff-highlight > code .token.token.inserted:not(.prefix),body.dark pre > code.diff-highlight .token.token.inserted:not(.prefix){background-color:rgba(26,255,91,0.15)}body.dark pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection,body.dark pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection,body.dark pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection,body.dark pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection{background-color:rgba(56,224,98,0.25)}body.dark pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection,body.dark pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection,body.dark pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection,body.dark pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection{background-color:rgba(56,224,98,0.25)}body.dark .prism-previewer.prism-previewer:before,body.dark .prism-previewer-gradient.prism-previewer-gradient div{border-color:#f2f2f2}body.dark .prism-previewer-color.prism-previewer-color:before,body.dark .prism-previewer-gradient.prism-previewer-gradient div,body.dark .prism-previewer-easing.prism-previewer-easing:before{border-radius:.3em}body.dark .prism-previewer.prism-previewer:after{border-top-color:#f2f2f2}body.dark .prism-previewer-flipped.prism-previewer-flipped.after{border-bottom-color:#f2f2f2}body.dark .prism-previewer-angle.prism-previewer-angle:before,body.dark .prism-previewer-time.prism-previewer-time:before,body.dark .prism-previewer-easing.prism-previewer-easing{background:#fff}body.dark .prism-previewer-angle.prism-previewer-angle circle,body.dark .prism-previewer-time.prism-previewer-time circle{stroke:#383a42;stroke-opacity:1}body.dark .prism-previewer-easing.prism-previewer-easing circle,body.dark .prism-previewer-easing.prism-previewer-easing path,body.dark .prism-previewer-easing.prism-previewer-easing line{stroke:#383a42}body.dark .prism-previewer-easing.prism-previewer-easing circle{fill:transparent}