:root{--code-block-font-size:0.8rem}*{margin:0;padding:0;box-sizing:border-box;overflow-x:hidden;line-height:1.75em;-webkit-tap-highlight-color:transparent;font-size:1.08rem}html{scroll-behavior:smooth}img{max-width:-webkit-fill-available;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}a{word-break:break-word;text-underline-position:under}a:has(h1,h2,h3,h4,h5,h6){text-decoration:none;color:initial}ol{list-style:decimal-leading-zero!important}ol,ul{margin:10px;list-style:disc;list-style-position:inside!important}ul.year-in-review>li{margin-top:.6rem}blockquote{margin:1.5em 10px;padding:.5em 10px;border-radius:4px;quotes:"\201C""\201D""\2018""\2019";color:#3d3d3d}blockquote:before{color:#ccc;content:open-quote;font-size:4em;line-height:.1em;margin-right:.1em;vertical-align:-.4em;color:#3d3d3d}blockquote p{display:inline}input:not([type=submit]){flex:1 1;margin-right:.4rem;padding:0 .8rem;min-height:2.2rem;border:none;background-color:#f0f0f0;border-radius:.2rem;font-size:1rem;outline:none}code{font-size:var(--code-block-font-size)}code:not([class]){background:#eee;padding:2px 6px;border-radius:4px;color:#000}code>span,code>span>*,code>span>*>*{font-size:var(--code-block-font-size)}code[class*=language-],pre{margin:.6rem 0;border-radius:.4rem}code[class*=language-]{max-height:80vh}em{color:#1d2021;background:#d5c4a1;padding:.05rem .25rem .05rem .15rem;margin:0 2px;border-radius:4px;font-weight:500;font-size:medium}br[height="1"]{display:block;content:"";margin:5px 0}.dev-tip-img{max-width:340px;display:flex;margin:0 auto}.mw-full{max-width:100%!important}.spacer{height:16px}article.main-content,main.main-content{margin-top:10rem;min-height:50vh}.not-found-wrapper{height:50vh;display:grid;place-items:center}.not-found-wrapper>p{font-size:1.4rem}.table-wrapper{overflow:auto}details{margin:10px 0}details summary{font-weight:700;cursor:pointer;outline:none}.subscribe-form{padding:.5rem;border:1px dashed #d3d3d3;border-radius:4px;font-size:1rem;margin:1rem 0}.subscribe-form>p{font-weight:700}.subscribe-form div{display:flex;flex-direction:row;margin-top:.5rem}.subscribe-form div input[type=submit],button{padding:0 .5rem;cursor:pointer;-webkit-appearance:button;min-height:2rem;border:none;border-radius:.2rem;font-size:1rem;background-color:#0e7afe;color:#fff}li>p{display:inline}.row-imgs{display:flex;flex-direction:row;justify-content:center;gap:.5rem}.row-imgs img{max-width:80%;max-height:220px;display:flex}.lc-paragraph{margin-top:12px}.lc-img{border-radius:4px}.command-option{display:flex;flex-direction:row;padding:8px 10px;border-left:8px solid #deb887;margin:10px 0}.command-option:not(:first-of-type){margin-top:24px}.command-option>strong{flex:1 1}.command-option>span{flex:3 1}.giscus{margin-top:1rem}iframe.giscus-frame{min-height:360px}.socialShareButtonsWrapper{margin-top:.6rem;display:flex;flex-direction:row;gap:.4rem}@media only screen and (max-width:540px){img{max-width:100%}}

/*!
  Theme: Gruvbox dark, hard
  Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)
  License: ~ MIT (or more permissive) [via base16-schemes-source]
  Maintainer: @highlightjs/core-team
  Version: 2021.09.0
*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d5c4a1;background:#1d2021}.hljs ::selection,.hljs::selection{background-color:#504945;color:#d5c4a1}.hljs-comment{color:#665c54}.hljs-tag{color:#bdae93}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d5c4a1}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#fb4934}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#fe8019}.hljs-class .hljs-title,.hljs-strong,.hljs-title,.hljs-title.class_{color:#fabd2f}.hljs-strong{font-weight:700}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#b8bb26}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#8ec07c}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#83a598}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#d3869b}.hljs-emphasis{color:#d3869b;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#d65d0e}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700}@font-face{font-family:__Crimson_Pro_ea2bb8;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/5bde35a59d0f161b.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1ea0-1ef9,U+20ab}@font-face{font-family:__Crimson_Pro_ea2bb8;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e8900552bada0847.woff2) format("woff2");unicode-range:U+0100-02ba,U+02bd-02c5,U+02c7-02cc,U+02ce-02d7,U+02dd-02ff,U+0304,U+0308,U+0329,U+1d00-1dbf,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:__Crimson_Pro_ea2bb8;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/39b0e861c537f507.p.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:__Crimson_Pro_ea2bb8;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/5bde35a59d0f161b.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1ea0-1ef9,U+20ab}@font-face{font-family:__Crimson_Pro_ea2bb8;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e8900552bada0847.woff2) format("woff2");unicode-range:U+0100-02ba,U+02bd-02c5,U+02c7-02cc,U+02ce-02d7,U+02dd-02ff,U+0304,U+0308,U+0329,U+1d00-1dbf,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:__Crimson_Pro_ea2bb8;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/39b0e861c537f507.p.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:__Crimson_Pro_ea2bb8;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/5bde35a59d0f161b.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1ea0-1ef9,U+20ab}@font-face{font-family:__Crimson_Pro_ea2bb8;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e8900552bada0847.woff2) format("woff2");unicode-range:U+0100-02ba,U+02bd-02c5,U+02c7-02cc,U+02ce-02d7,U+02dd-02ff,U+0304,U+0308,U+0329,U+1d00-1dbf,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:__Crimson_Pro_ea2bb8;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/39b0e861c537f507.p.woff2) format("woff2");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:__Crimson_Pro_Fallback_ea2bb8;src:local("Times New Roman");ascent-override:90.86%;descent-override:21.78%;line-gap-override:0.00%;size-adjust:98.66%}.__className_ea2bb8{font-family:__Crimson_Pro_ea2bb8,sans-serif,__Crimson_Pro_Fallback_ea2bb8;font-style:normal}