.max-width{max-width:48rem}.mx-auto{margin-right:auto;margin-left:auto}.px3{padding-right:2rem;padding-left:2rem}.py3{padding-top:2rem;padding-bottom:2rem}body h1,body .h1{display:block;margin-top:3rem;margin-bottom:1rem;color:var(--color-accent-1);letter-spacing:.01em;font-weight:700;font-style:normal;font-size:1.5em;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}body h2,body .h2{position:relative;display:block;margin-top:2rem;margin-bottom:.5rem;color:var(--color-accent-2);text-transform:none;letter-spacing:normal;font-weight:700;font-size:1rem}body h3{color:var(--color-accent-2);text-decoration:underline;font-weight:700;font-size:.9rem}body h4,body h5,body h6{display:inline;text-decoration:none;color:var(--color-accent-3);font-weight:700;font-size:.9rem}body h3,body h4,body h5,body h6{margin-top:.9rem;margin-bottom:.5rem}body hr{border:.5px dashed var(--color-accent-3);opacity:.5;margin:0;margin-top:20px;margin-bottom:20px}body strong{font-weight:700}body em,body cite{font-style:italic}body sup,body sub{position:relative;vertical-align:baseline;font-size:.75em;line-height:0}body sup{top:-.5em}body sub{bottom:-.2em}body small{font-size:.85em}body acronym,body abbr{border-bottom:1px dotted}body ul,body ol,body dl{line-height:1.725}body ul ul,body ol ul,body ul ol,body ol ol{margin-top:0;margin-bottom:0}body ol{list-style:decimal}body dt{font-weight:700}body table{width:100%;border-collapse:collapse;text-align:left;font-size:10pt;overflow:auto;display:block}body th{padding:8px;border-bottom:1px dashed var(--color-border);color:var(--color-accent-2);font-weight:700;font-size:11pt}body td{padding:0 8px;border-bottom:none}.sidenote{font-size:80%;position:relative;text-align:right;padding:.2rem;float:left}@media(min-width:88rem){.sidenote{clear:left;margin-left:-22vw;width:20vw}.sidenote-number:hover::after{box-shadow:0 0 .5em var(--color-link)}.sidenote-number:hover .sidenote{box-shadow:0 0 .5em var(--color-accent-2)}}@media(max-width:88rem){.sidenote{width:100%;margin:1rem 0;padding-left:10%;text-align:left}}body{counter-reset:sidenote-counter}.sidenote-number{counter-increment:sidenote-counter}.sidenote::before{content:counter(sidenote-counter)". ";position:relative;vertical-align:baseline;font-size:.9em;font-weight:700}.sidenote-number::after{content:counter(sidenote-counter);vertical-align:super;font-size:.7em;margin-left:-.2rem;margin-right:.3rem}:root{--color-background:#fff;--color-footer-mobile-1:#fafafa;--color-footer-mobile-2:#e6e6e6;--color-background-code:#fafafa;--color-border:#666;--color-scrollbar:#999;--color-scrollbar-hover:#7a7a7a;--color-scrollbar-active:#6b6b6b;--color-meta:#666;--color-meta-code:#757575;--color-meta-hover:#858585;--color-link:#2bbc8a;--color-text:#363533;--color-accent-1:#d44375;--color-accent-2:#383838;--color-accent-3:#666;--color-quote:#ab2251}@media(prefers-color-scheme:dark){:root{--color-background:#1d1f21;--color-footer-mobile-1:#212326;--color-footer-mobile-2:#323539;--color-background-code:#212326;--color-border:#908d8d;--color-scrollbar:#999;--color-scrollbar-hover:#adadad;--color-scrollbar-active:#b8b8b8;--color-meta:#908d8d;--color-meta-code:#908d8d;--color-meta-hover:#747070;--color-link:#d480aa;--color-text:#c9cacc;--color-accent-1:#2bbc8a;--color-accent-2:#eee;--color-accent-3:#ccc;--color-quote:#ccffb6}}#header{margin:0 auto 2rem;width:100%}#header h1,#header .h1{margin-top:0;margin-bottom:0;color:var(--color-text);letter-spacing:.01em;font-weight:700;font-style:normal;font-size:1.5rem;line-height:2rem;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}#header a{background:0 0;color:inherit;text-decoration:none}#header #logo{display:inline-block;float:left;margin-right:20px;width:50px;height:50px;border-radius:5px;background-size:50px 50px;background-repeat:no-repeat;filter:grayscale(100%);-webkit-filter:grayscale(100%)}#header #nav{color:var(--color-accent-1);letter-spacing:.01em;font-weight:200;font-style:normal;font-size:.8rem}#header #nav ul{margin:0;padding:0;list-style-type:none;line-height:1}#header #nav ul a{margin-right:15px;color:var(--color-accent-1)}#header #nav ul a:hover{background-image:linear-gradient(transparent,transparent 5px,var(--color-accent-1) 5px,var(--color-accent-1));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}#header #nav ul li{display:inline-block;margin-right:15px;border-right:1px dotted;border-color:var(--color-accent-1);vertical-align:middle}#header #nav ul .icon{display:none}#header #nav ul li:last-child{margin-right:0;border-right:0}#header #nav ul li:last-child a{margin-right:0}#header:hover #logo{filter:none;-webkit-filter:none}.index section>h1{margin-top:1rem}.index section:first-of-type p:first-of-type{margin-top:0}.post-list{padding:0}.post-list .post-item{margin-bottom:1rem;margin-left:0;list-style-type:none}.post-list .post-item time{display:block;margin-right:16px;min-width:100px;color:var(--color-meta);font-size:12pt}@media(min-width:480px){.post-list .post-item{display:flex;margin-bottom:5px}.post-list .post-item .meta{text-align:left}}article header .posttitle{margin-top:0;margin-bottom:0;text-transform:none;font-size:1.5em;line-height:1.25}article header .meta{margin-top:0;margin-bottom:1rem}article header .meta>*{margin-right:1.75rem;color:var(--color-accent-3);font-size:.85rem}article header .author{text-transform:uppercase;letter-spacing:.01em;font-weight:700}article .content h2:before{position:absolute;top:-4px;left:-1rem;color:var(--color-accent-1);content:"#";font-weight:700;font-size:1.2rem}article .content img,article .content video{display:block;margin:auto;max-width:100%;height:auto}article .content blockquote{margin:1rem 10px;padding:.5em 10px;background:inherit;color:var(--color-quote);quotes:"\201C" "\201D" "\2018" "\2019";font-weight:700}article .content blockquote p{margin:0}article .content blockquote:before{margin-right:.25em;color:var(--color-quote);content:"\201C";vertical-align:-.4em;font-size:2em;line-height:.1em}article .content blockquote footer{margin:line-height 0;color:var(--color-meta);font-size:10pt}article .content blockquote footer a{background-image:linear-gradient(transparent,transparent 5px,var(--color-meta) 5px,var(--color-meta));color:var(--color-meta)}article .content blockquote footer a:hover{background-image:linear-gradient(transparent,transparent 4px,var(--color-meta-hover) 4px,var(--color-meta-hover));color:var(--color-meta-hover)}article .content blockquote footer cite:before{padding:0 .5em;content:"—"}.posttitle{text-transform:none;font-size:1.5em;line-height:1.25}.article-tag .tag-link{background-image:linear-gradient(transparent,transparent 10px,var(--color-link) 10px,var(--color-link));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.article-tag .tag-link:before{content:"#"}.article-category .category-link{background-image:linear-gradient(transparent,transparent 10px,var(--color-link) 10px,var(--color-link));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}@media(min-width:480px){.article-tag,.article-category{display:inline}}#archive .post-year{list-style-type:none}#archive .post-list{padding:0}#archive .post-list .post-item{margin-bottom:1rem;margin-left:0;list-style-type:none}#archive .post-list .post-item .meta{display:block;margin-right:16px;min-width:100px;color:var(--color-meta);font-size:12pt}@media(min-width:480px){#archive .post-list .post-item{display:flex;margin-bottom:5px;margin-left:1rem}#archive .post-list .post-item .meta{text-align:left}}#footer{width:100%;color:var(--color-meta);vertical-align:top;text-align:center;font-size:10pt}#footer>div{margin-top:20px}#footer ul{margin:0;padding:0;list-style:none;line-height:1}#footer li{display:inline-block;margin-right:15px;border-right:1px solid;border-color:var(--color-border);vertical-align:middle}#footer li a{margin-right:15px}#footer li:last-child{margin-right:0;border-right:0}#footer li:last-child a{margin-right:0}#footer a{color:var(--color-meta);text-decoration:underline;background-image:none}#footer a:hover{color:var(--color-meta-hover)}#footer .footer-left{height:20px;vertical-align:middle;line-height:1}@media(min-width:39rem){#footer{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:baseline;align-content:center}}#header-post{position:fixed;top:2rem;right:0;display:inline-block;float:right;z-index:100;padding-right:2rem}#header-post a{background:0 0;color:inherit;text-decoration:none}#header-post a.icon{background:0 0}#header-post a.icon:hover{color:var(--color-link)}#header-post ol{list-style-type:none}#header-post ul{display:inline-block;margin:0;padding:0;list-style-type:none}#header-post ul li{display:inline-block;margin-right:15px;vertical-align:middle}#header-post ul li:last-child{margin-right:0}#header-post .active{color:var(--color-accent-1)}#header-post nav.menu{color:var(--color-accent-1);letter-spacing:.01em;font-weight:200;font-style:normal;text-align:right}#header-post nav.menu ul{line-height:15px}#header-post nav.menu ul a{margin-right:15px;color:var(--color-accent-1)}#header-post nav.menu ul a:hover{background-image:linear-gradient(transparent,transparent 5px,var(--color-accent-1) 5px,var(--color-accent-1));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}#header-post nav.menu ul li{border-right:1px dotted var(--color-accent-1)}#header-post nav.menu ul li:last-child{margin-right:0;border-right:0}#header-post nav.menu ul li:last-child a{margin-right:0}#header-post nav.actions{float:right;margin-top:2rem;width:100%;text-align:right}#header-post nav.actions ul{display:block}#header-post nav.actions .info{display:block;font-style:italic}#header-post #share{clear:both;padding-top:1rem;text-align:right}#header-post #share li{display:block;margin:0}#header-post nav#TableOfContents{float:right;clear:both;overflow:auto;margin-top:1rem;max-width:20em;max-height:calc(95vh - 7rem)}#header-post nav#TableOfContents a:hover{color:var(--color-link)}#header-post nav#TableOfContents li{color:var(--color-text);font-size:1rem}#header-post nav#TableOfContents li:before{color:var(--color-accent-1);content:"# "}#header-post nav#TableOfContents li li{color:var(--color-meta);font-size:.85rem}#header-post nav#TableOfContents li li:before{color:var(--color-accent-1);content:"~ "}@media screen and (max-width:1199px){#header-post{display:none}}@media screen and (min-width:1200px){#header-post nav.actions{width:auto}#header-post nav.actions ul{display:inline-block;float:right}#header-post nav.actions .info{display:inline;float:left;margin-right:2rem;font-style:italic}}@media print{#header-post{display:none}#footer-post-container{display:none}}.bg{background-color:#fff}.chroma{background-color:#fff}.chroma .err{color:#a61717;background-color:#e3d2d2}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#e5e5e5}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{font-weight:700}.chroma .kc{font-weight:700}.chroma .kd{font-weight:700}.chroma .kn{font-weight:700}.chroma .kp{font-weight:700}.chroma .kr{font-weight:700}.chroma .kt{color:#458;font-weight:700}.chroma .na{color:teal}.chroma .nc{color:#458;font-weight:700}.chroma .no{color:teal}.chroma .ni{color:purple}.chroma .ne{color:#900;font-weight:700}.chroma .nn{color:#555}.chroma .nt{color:navy}.chroma .nb{color:#999}.chroma .bp{color:#999}.chroma .nv{color:teal}.chroma .vc{color:teal}.chroma .vg{color:teal}.chroma .vi{color:teal}.chroma .vm{color:teal}.chroma .nf{color:#900;font-weight:700}.chroma .fm{color:#900;font-weight:700}.chroma .s{color:#b84}.chroma .sa{color:#b84}.chroma .sb{color:#b84}.chroma .sc{color:#b84}.chroma .dl{color:#b84}.chroma .sd{color:#b84}.chroma .s2{color:#b84}.chroma .se{color:#b84}.chroma .sh{color:#b84}.chroma .si{color:#b84}.chroma .sx{color:#b84}.chroma .sr{color:olive}.chroma .s1{color:#b84}.chroma .ss{color:#b84}.chroma .m{color:#099}.chroma .mb{color:#099}.chroma .mf{color:#099}.chroma .mh{color:#099}.chroma .mi{color:#099}.chroma .il{color:#099}.chroma .mo{color:#099}.chroma .o{font-weight:700}.chroma .ow{font-weight:700}.chroma .c{color:#998;font-style:italic}.chroma .ch{color:#998;font-style:italic}.chroma .cm{color:#998;font-style:italic}.chroma .c1{color:#998;font-style:italic}.chroma .cs{color:#999;font-weight:700;font-style:italic}.chroma .cp{color:#999;font-weight:700}.chroma .cpf{color:#999;font-weight:700}.chroma .gd{color:#000;background-color:#fdd}.chroma .ge{font-style:italic}.chroma .gr{color:#a00}.chroma .gh{color:#999}.chroma .gi{color:#000;background-color:#dfd}.chroma .go{color:#888}.chroma .gp{color:#555}.chroma .gs{font-weight:700}.chroma .gu{color:#aaa}.chroma .gt{color:#a00}.chroma .gl{text-decoration:underline}.chroma .w{color:#bbb}@media(prefers-color-scheme:dark){.bg{color:#f8f8f2;background-color:#272822}.chroma{color:#f8f8f2;background-color:#272822}.chroma .err{color:#960050;background-color:#1e0010}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#3c3d38}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#66d9ef}.chroma .kc{color:#66d9ef}.chroma .kd{color:#66d9ef}.chroma .kn{color:#f92672}.chroma .kp{color:#66d9ef}.chroma .kr{color:#66d9ef}.chroma .kt{color:#66d9ef}.chroma .na{color:#a6e22e}.chroma .nc{color:#a6e22e}.chroma .no{color:#66d9ef}.chroma .nd{color:#a6e22e}.chroma .ne{color:#a6e22e}.chroma .nx{color:#a6e22e}.chroma .nt{color:#f92672}.chroma .nf{color:#a6e22e}.chroma .fm{color:#a6e22e}.chroma .l{color:#ae81ff}.chroma .ld{color:#e6db74}.chroma .s{color:#e6db74}.chroma .sa{color:#e6db74}.chroma .sb{color:#e6db74}.chroma .sc{color:#e6db74}.chroma .dl{color:#e6db74}.chroma .sd{color:#e6db74}.chroma .s2{color:#e6db74}.chroma .se{color:#ae81ff}.chroma .sh{color:#e6db74}.chroma .si{color:#e6db74}.chroma .sx{color:#e6db74}.chroma .sr{color:#e6db74}.chroma .s1{color:#e6db74}.chroma .ss{color:#e6db74}.chroma .m{color:#ae81ff}.chroma .mb{color:#ae81ff}.chroma .mf{color:#ae81ff}.chroma .mh{color:#ae81ff}.chroma .mi{color:#ae81ff}.chroma .il{color:#ae81ff}.chroma .mo{color:#ae81ff}.chroma .o{color:#f92672}.chroma .ow{color:#f92672}.chroma .c{color:#75715e}.chroma .ch{color:#75715e}.chroma .cm{color:#75715e}.chroma .c1{color:#75715e}.chroma .cs{color:#75715e}.chroma .cp{color:#75715e}.chroma .cpf{color:#75715e}.chroma .gd{color:#f92672}.chroma .ge{font-style:italic}.chroma .gi{color:#a6e22e}.chroma .gs{font-weight:700}.chroma .gu{color:#75715e}}*,*:before,*:after{box-sizing:border-box}*{scrollbar-color:var(--color-scrollbar)transparent}*::-webkit-scrollbar{width:8px;height:6px}*::-webkit-scrollbar-track{background:0 0}*::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar);border-radius:6px}*::-webkit-scrollbar-thumb:hover{background-color:var(--color-scrollbar-hover)}*::-webkit-scrollbar-thumb:active{background-color:var(--color-scrollbar-active)}html{margin:0;padding:0;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0;background-color:var(--color-background);color:var(--color-text);font-weight:400;font-size:12pt;font-family:monospace;line-height:1.725;text-rendering:geometricPrecision;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.content{min-height:100vh;display:flex;flex-direction:column;overflow-wrap:break-word}.content footer{margin-top:auto;margin-bottom:0}.content p,.content ol,.content ul{hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;-webkit-hyphens:auto;font-family:serif}.content code{hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual;-webkit-hyphens:manual}.content a{color:var(--color-text);text-decoration:none;background-image:linear-gradient(transparent,transparent 5px,var(--color-text) 5px,var(--color-text));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.content a:hover{background-image:linear-gradient(transparent,transparent 4px,var(--color-link) 4px,var(--color-link))}.content a.icon{background:0 0}.content a.icon:hover{color:var(--color-link)}.content h1 a,.content .h1 a,.content h2 a,.content h3 a,.content h4 a,.content h5 a,.content h6 a{background:0 0;color:inherit;text-decoration:none}.content h1 a:hover,.content .h1 a:hover,.content h2 a:hover,.content h3 a:hover,.content h4 a:hover,.content h5 a:hover,.content h6 a:hover{background-image:linear-gradient(transparent,transparent 6px,var(--color-link) 6px,var(--color-link));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.content h6 a{background:0 0;color:inherit;text-decoration:none}.content h6 a:hover{background-image:linear-gradient(transparent,transparent 6px,var(--color-link) 6px,var(--color-link));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.max-width{max-width:48rem}@media(max-width:480px){.px3{padding-right:1rem;padding-left:1rem}.my4{margin-top:2rem;margin-bottom:2rem}}@media(min-width:480px){p{text-align:justify}}pre{overflow-x:auto;padding:10px 15px;padding-bottom:0;border:1px dotted var(--color-border);border-radius:4px;font-size:12pt;font-family:monospace;line-height:22px;-webkit-border-radius:4px}pre code{display:block;padding:0;border:none}code{padding:0 5px;border:1px dotted var(--color-border);border-radius:2px;-webkit-border-radius:2px}.highlight{overflow-x:auto;margin:1rem 0;padding:10px 15px;border-radius:4px;background:var(--color-background-code);font-family:monospace;-webkit-border-radius:4px}.highlight figcaption{margin:-5px 0 5px;color:var(--color-meta-code);font-size:.9em;transform:scale(1)}.highlight figcaption a{float:right;color:var(--color-meta-code);font-style:italic;font-size:.8em;background-image:linear-gradient(transparent,transparent 10px,var(--color-link) 10px,var(--color-link));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.highlight figcaption a:hover{color:var(--color-meta-hover)}.highlight figcaption:before,.highlight figcaption content: ""{display:table}.highlight figcaption:after{clear:both}.highlight:hover .btn-copy{opacity:1}.highlight .btn-copy{font-size:1.2rem;position:absolute;right:20px;opacity:0;transition:opacity .2s ease-in}.highlight .btn-copy:hover{color:var(--color-accent-1)}.highlight pre{margin:0;padding:0;border:none;background:0 0}.highlight table{width:auto}.highlight td.gutter{text-align:right;opacity:.2}.highlight .line{height:22px}#header-post #actions{direction:ltr!important}