@font-face{font-display:swap;font-family:Roboto Slab;font-style:normal;font-weight:100;src:local("Roboto Slab Thin "),local("Roboto Slab-Thin"),url(/fonts/roboto-slab-latin-100.woff2)format("woff2"),url(/fonts/roboto-slab-latin-100.woff)format("woff")}@font-face{font-display:swap;font-family:Roboto Slab;font-style:normal;font-weight:200;src:local("Roboto Slab Extra Light "),local("Roboto Slab-Extra Light"),url(/fonts/roboto-slab-latin-200.woff2)format("woff2"),url(/fonts/roboto-slab-latin-200.woff)format("woff")}@font-face{font-display:swap;font-family:Roboto Slab;font-style:normal;font-weight:300;src:local("Roboto Slab Light "),local("Roboto Slab-Light"),url(/fonts/roboto-slab-latin-300.woff2)format("woff2"),url(/fonts/roboto-slab-latin-300.woff)format("woff")}@font-face{font-display:swap;font-family:Roboto Slab;font-style:normal;font-weight:400;src:local("Roboto Slab Regular "),local("Roboto Slab-Regular"),url(/fonts/roboto-slab-latin-400.woff2)format("woff2"),url(/fonts/roboto-slab-latin-400.woff)format("woff")}@font-face{font-display:swap;font-family:Roboto Slab;font-style:normal;font-weight:500;src:local("Roboto Slab Medium "),local("Roboto Slab-Medium"),url(/fonts/roboto-slab-latin-500.woff2)format("woff2"),url(/fonts/roboto-slab-latin-500.woff)format("woff")}@font-face{font-display:swap;font-family:Roboto Slab;font-style:normal;font-weight:600;src:local("Roboto Slab SemiBold "),local("Roboto Slab-SemiBold"),url(/fonts/roboto-slab-latin-600.woff2)format("woff2"),url(/fonts/roboto-slab-latin-600.woff)format("woff")}@font-face{font-display:swap;font-family:Roboto Slab;font-style:normal;font-weight:700;src:local("Roboto Slab Bold "),local("Roboto Slab-Bold"),url(/fonts/roboto-slab-latin-700.woff2)format("woff2"),url(/fonts/roboto-slab-latin-700.woff)format("woff")}@font-face{font-display:swap;font-family:Roboto Slab;font-style:normal;font-weight:800;src:local("Roboto Slab ExtraBold "),local("Roboto Slab-ExtraBold"),url(/fonts/roboto-slab-latin-800.woff2)format("woff2"),url(/fonts/roboto-slab-latin-800.woff)format("woff")}@font-face{font-display:swap;font-family:Roboto Slab;font-style:normal;font-weight:900;src:local("Roboto Slab Black "),local("Roboto Slab-Black"),url(/fonts/roboto-slab-latin-900.woff2)format("woff2"),url(/fonts/roboto-slab-latin-900.woff)format("woff")}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:300;src:local("Fira Code Light "),local("Fira Code-Light"),url(/fonts/fira-code-latin-300.woff2)format("woff2"),url(/fonts/fira-code-latin-300.woff)format("woff")}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:400;src:local("Fira Code Regular "),local("Fira Code-Regular"),url(/fonts/fira-code-latin-400.woff2)format("woff2"),url(/fonts/fira-code-latin-400.woff)format("woff")}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:500;src:local("Fira Code Medium "),local("Fira Code-Medium"),url(/fonts/fira-code-latin-500.woff2)format("woff2"),url(/fonts/fira-code-latin-500.woff)format("woff")}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:600;src:local("Fira Code SemiBold "),local("Fira Code-SemiBold"),url(/fonts/fira-code-latin-600.woff2)format("woff2"),url(/fonts/fira-code-latin-600.woff)format("woff")}@font-face{font-display:swap;font-family:Fira Code;font-style:normal;font-weight:700;src:local("Fira Code Bold "),local("Fira Code-Bold"),url(/fonts/fira-code-latin-700.woff2)format("woff2"),url(/fonts/fira-code-latin-700.woff)format("woff")}/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:initial}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;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}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{opacity:0;position:absolute;right:.2em;top:.3em;transition:opacity .3s ease-in-out;z-index:10}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{background:#f5f2f0;background:hsla(0,0%,88%,.2);border-radius:.5em;box-shadow:0 2px rgba(0,0,0,.2);color:#bbb;font-size:.8em;padding:0 .5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;-webkit-text-decoration:none;text-decoration:none}.command-line-prompt{border-right:1px solid #999;display:block;float:left;font-size:100%;letter-spacing:-1px;margin-right:1em;pointer-events:none;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none}.command-line-prompt>span:before{content:" ";display:block;opacity:.7;padding-right:.8em}.command-line-prompt>span[data-user]:before{content:"[" attr(data-user)"@" attr(data-host)"] $"}.command-line-prompt>span[data-user=root]:before{content:"[" attr(data-user)"@" attr(data-host)"] #"}.command-line-prompt>span[data-prompt]:before{content:attr(data-prompt)}.command-line-prompt>span[data-continuation-prompt]:before{content:attr(data-continuation-prompt)}.command-line span.token.output{opacity:.7}code,code[class*=language-],kbd,pre[class*=language-]{font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace)}:root,:root[data-theme=light]{--bg:#e8e8e8;--bg0:#ddd;--bg1:#d0d0d0;--bg2:silver;--bg3:#999;--bg4:#b0b0b0;--fg:#2a2a2e;--fg0:#1a1a1e;--fg1:#2a2a2e;--fg3:#6a6c67;--fg4:#999;--yellow1:#b8860b;--yellow2:#d4942f;--blue1:#2a6496;--blue2:#3178a8;--primary:var(--blue1);--primary-alt:var(--blue2)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1e1e28;--bg0:#1e1e28;--bg1:#25252f;--bg2:#2e2e3a;--bg3:#5a5a6a;--bg4:#2e2e3a;--fg:#d4d4d4;--fg0:#a0a0a0;--fg1:#d4d4d4;--fg3:#6a6a6a;--fg4:#2e2e3a;--yellow1:#e0af68;--yellow2:#ff9e64;--blue1:#85adc8;--blue2:#85adc8;--primary:var(--blue1);--primary-alt:var(--blue2)}}:root[data-theme=dark]{--bg:#1e1e28;--bg0:#1e1e28;--bg1:#25252f;--bg2:#2e2e3a;--bg3:#5a5a6a;--bg4:#2e2e3a;--fg:#d4d4d4;--fg0:#a0a0a0;--fg1:#d4d4d4;--fg3:#6a6a6a;--fg4:#2e2e3a;--yellow1:#e0af68;--yellow2:#ff9e64;--blue1:#85adc8;--blue2:#85adc8;--primary:var(--blue1);--primary-alt:var(--blue2)}:root{--font-monospace:"Fira Code","Lucida Console",Monaco,monospace;--font-serif:"Roboto Slab",Georgia,serif}html{font-family:Roboto Slab,Georgia,serif;font-family:var(--font-serif);font-size:1rem;scroll-behavior:smooth}body{background:#e8e8e8;background:var(--bg);color:#2a2a2e;color:var(--fg);line-height:1.675;word-wrap:break-word;transition:background-color .3s ease,color .3s ease}strong{letter-spacing:.35px}a{color:inherit;-webkit-text-decoration:none;text-decoration:none;transition:color .2s ease}a.link--external:after{content:"\2009↗"}img{border:2px solid #d0d0d0;border:2px solid var(--bg1);height:auto;max-width:100%}::-moz-selection{background:#b0b0b0;background:var(--bg4);color:#1a1a1e;color:var(--fg0)}::selection{background:#b0b0b0;background:var(--bg4);color:#1a1a1e;color:var(--fg0)}h1,h2,h3{color:#1a1a1e;color:var(--fg0);font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);font-weight:300;line-height:1.4}h1 code,h2 code,h3 code{font-size:1em}h2,h3{border-bottom:1px solid #d0d0d0;border-bottom:1px solid var(--bg1)}h1,h2{font-weight:400}h1{font-size:1.875rem}h2{font-size:1.75rem}h3{font-size:1.625rem}@media(min-width:768px){h1{font-size:2.375rem}h2{font-size:2rem}h3{font-size:1.75rem}}blockquote,code,pre{border-radius:.2rem;padding:0 .2em}pre code{padding:0}blockquote,code,pre{background:#d0d0d0;background:var(--bg1)}code,pre{font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace)}code code{background:silver;background:var(--bg2)}blockquote,pre{padding:1rem}pre{background:#d0d0d0;background:var(--bg1);overflow:auto}pre code{background:0 0}blockquote{border-left:5px solid #3178a8;border-left:5px solid var(--primary-alt);margin:.5rem 0}blockquote code{background:silver;background:var(--bg2)}blockquote p:first-of-type{margin-top:0}blockquote p:last-of-type{margin-bottom:0}pre{scrollbar-color:#b0b0b0 silver;scrollbar-color:var(--bg4)var(--bg2);scrollbar-width:thin}pre::-webkit-scrollbar{height:.5rem}pre::-webkit-scrollbar-track{background:silver;background:var(--bg2);border-radius:.2rem}pre::-webkit-scrollbar-thumb{background:#b0b0b0;background:var(--bg4);border-radius:.2rem}.layout{display:grid;grid-template-areas:"header" "main" "footer";grid-template-rows:auto 1fr auto;min-height:100vh;min-height:100dvh}main{align-items:start;display:grid;grid-area:main;grid-template-areas:"empty content sidebar";grid-template-columns:2fr minmax(0,860px)2fr}header{background:#d0d0d0;background:var(--bg1);grid-area:header;position:sticky;top:0;z-index:1000}footer{grid-area:footer}footer,main{margin:.5em 1.1em}.content{grid-area:content}.sidebar{display:none;flex-direction:column;grid-area:sidebar;margin-top:3rem;position:sticky;top:2rem}@media(min-width:992px){.sidebar{display:flex}}header{display:grid;font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);font-size:1.125rem;grid-template-areas:"heading search nav theme-toggle";grid-template-columns:auto auto 1fr auto;padding:.75rem;transition:background-color .3s ease}.logo{color:#1a1a1e;color:var(--fg0);display:flex;font-weight:700;grid-area:heading}.logo:hover .logo__cursor{animation:blink 1s infinite;opacity:1}/*!CC BY-SA 3.0 License | https://stackoverflow.com/a/36118384/1154965*/@keyframes blink{50%{opacity:0}to{opacity:1}}.logo__chevron,.logo__cursor{margin-left:.5rem}.logo__cursor{opacity:0}.logo__text{display:none}@media(min-width:768px){.logo__text{display:block}}.search{display:flex;grid-area:search;margin:0 1rem;position:relative;z-index:1000}#search__text{background:silver;background:var(--bg2);border:1px solid silver;border:1px solid var(--bg2);border-radius:.2rem;caret-color:#2a2a2e;caret-color:var(--fg);color:#2a2a2e;color:var(--fg);outline:none;padding:0 .5rem;width:100%}#search__text:hover{border-color:#999;border-color:var(--bg3)}#search__text:focus{border-color:#b0b0b0;border-color:var(--bg4)}#search__text::-moz-placeholder{color:#2a2a2e;color:var(--fg1)}#search__text::placeholder{color:#2a2a2e;color:var(--fg1)}#search__text[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}#search__suggestions{background:#e8e8e8;background:var(--bg);border-radius:.2rem;box-shadow:0 .5rem 1rem #d0d0d0;box-shadow:0 .5rem 1rem var(--bg1);box-sizing:border-box;font-family:Roboto Slab,Georgia,serif;font-family:var(--font-serif);left:0;overflow:hidden;position:fixed;right:0;top:3rem;z-index:1000}@media(min-width:768px){#search__suggestions{left:0;margin-top:2rem;position:absolute;right:auto;top:auto;transform:none;width:60vw}}.search__suggestions--hidden{display:none}.search__backdrop{backdrop-filter:blur(4px);background:rgba(0,0,0,.5);bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:999}.search__backdrop--visible{display:block}.search__suggestion-item{border-bottom:1px dashed silver;border-bottom:1px dashed var(--bg2);display:grid;grid-template-columns:1fr 2fr}.search__suggestion-item:focus,.search__suggestion-item:focus-visible,.search__suggestion-item:hover{background:#d0d0d0;background:var(--bg1);cursor:pointer;outline:none}.search__suggestion-item:last-child{border:none}.search__suggestion-description,.search__suggestion-title{margin:1rem 0;overflow:hidden;padding:0 1rem;word-wrap:break-word;word-break:break-word}.search__suggestion-title{font-weight:700}.search__suggestion-description{border-left:1px solid silver;border-left:1px solid var(--bg2)}.search__no-results{padding:.75rem}.theme__toggle{align-items:center;background:0 0;border:1px solid silver;border:1px solid var(--bg2);border-radius:.25rem;color:#1a1a1e;color:var(--fg0);cursor:pointer;display:flex;grid-area:theme-toggle;margin:0 .5rem;padding:.25rem;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.theme__toggle:hover{background:silver;background:var(--bg2);border-color:#999;border-color:var(--bg3);color:#2a2a2e;color:var(--fg1)}.theme__toggle:active{transform:scale(.95)}.theme__toggle svg{height:22px;width:22px}.theme__toggle-icon{line-height:0}.theme__toggle-icon,nav#menu{align-items:center;display:flex}nav#menu{grid-area:nav;justify-content:flex-end}nav#menu .menu__item{color:#2a2a2e;color:var(--fg)}nav#menu .menu__item:hover{color:#6a6c67;color:var(--fg3);cursor:pointer}nav#menu ul{list-style:none;margin:0;padding:0}nav#menu ul.menu--horizontal{align-items:center;display:none}nav#menu ul.menu--horizontal li{display:inline-block;margin:0 .75rem}@media(min-width:768px){nav#menu ul.menu--horizontal{display:flex}}nav#menu ul.menu--vertical{background:#d0d0d0;background:var(--bg1);bottom:0;margin:0;padding:3rem;position:fixed;right:0;top:0;transform:translate(100%);transition:transform .5s cubic-bezier(.9,0,.1,1);width:50%;z-index:10}nav#menu ul.menu--vertical .menu__item{color:#2a2a2e;color:var(--fg1)}nav#menu ul.menu--vertical .menu__item:hover{color:#6a6c67;color:var(--fg3)}nav#menu .menu__burger{display:flex;height:24px;width:24px}nav#menu .menu__burger>*{position:absolute}nav#menu .menu__burger svg{height:inherit;width:inherit;z-index:20}nav#menu .menu__burger input{height:inherit;opacity:0;width:inherit;z-index:30}nav#menu .menu__burger input:checked~ul.menu--vertical{transform:none}nav#menu .menu__burger input:checked~svg{stroke:#2a2a2e;stroke:var(--fg1)}@media(min-width:768px){nav#menu .menu__burger{display:none}}.sidebar{font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);margin-left:auto;margin-right:auto;max-width:350px;padding-left:2.5rem}.sidebar svg{fill:#2a2a2e;fill:var(--fg)}.content-section,.post{border-bottom:2px dotted #d0d0d0;border-bottom:2px dotted var(--bg1);padding:0}.post img:not(figure img){box-sizing:border-box;margin:.5rem 0}.post-header{font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace)}.post-content{margin:1.3rem 0}.content-section a,.post-content a,.post-header a{color:#3178a8;color:var(--primary-alt)}.content-section a:hover,.post-content a:hover,.post-header a:hover{color:#2a6496;color:var(--primary)}.post-heading__anchor{display:none}h1:hover .post-heading__anchor,h2:hover .post-heading__anchor,h3:hover .post-heading__anchor{display:inline-block}footer{align-items:center;color:#6a6c67;color:var(--fg3);display:flex;font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);font-size:.8rem;justify-content:center;padding-bottom:.5rem;padding-top:2rem;text-align:center}.pagination{display:flex;margin-top:2rem}.pagination__button{color:#3178a8;color:var(--primary-alt);font-family:Fira Code,Lucida Console,Monaco,monospace;font-family:var(--font-monospace);font-size:1.125rem}.pagination__button:hover{color:#2a6496;color:var(--primary)}.pagination__button--next{margin-left:auto}