/*!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:transparent}abbr[title]{border-bottom:none;text-decoration:underline;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}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-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}template{display:none}[hidden]{display:none}:root{--color-white:#fcfcfc;--color-light:#eff0f1;--color-light-grey:#bdc3c7;--color-dark-grey:#6d6d6d;--color-black:#232629;--color-dark:#31363b;--color-white-87:rgba(255, 255, 255, 0.87);--color-white-60:rgba(255, 255, 255, 0.6);--color-white-38:rgba(255, 255, 255, 0.38);--color-black-87:rgba(0, 0, 0, 0.87);--color-black-60:rgba(0, 0, 0, 0.6);--color-black-38:rgba(0, 0, 0, 0.38);--color-dark-blue:#0075d0;--color-light-blue:#2b94da;--color-dark-purple:#9b59b6;--color-light-purple:#ca5ceb;--color-main-background:var(--color-black);--color-alt-background:var(--color-dark);--color-main-text:var(--color-light);--color-alt-text:var(--color-light-grey);--color-link-text:var(--color-light-blue);--color-link-visited:var(--color-light-purple);--color-border:var(--color-dark-grey)}*,*::before,*::after{box-sizing:border-box}html,body{height:100%}body{background-color:var(--color-main-background);color:var(--color-main-text);font-family:noto sans,sans-serif;font-size:16px}h1,h2,h3,h4,h5,h6{color:var(--color-main-text);margin:2em 0 1em}h1{font-weight:600}h2{font-weight:600}h3{font-size:1.25rem;font-weight:600}h4{font-size:1.125rem;font-weight:700}h5{font-size:1rem;font-weight:700}h6{font-size:.875rem;font-weight:700}a{color:var(--color-link-text);text-decoration:none}a:hover{text-decoration:underline}a:visited{color:var(--color-link-visited)}img{max-width:100%}p{line-height:1.7}ul{margin:2em 0}li{margin:.5em 0}code{background-color:var(--color-alt-background);border:1px solid var(--color-border);border-radius:3px;font-family:dejavu sans mono,monospace;font-size:13px;line-height:1.2em;padding:1px 3px;white-space:pre-wrap}pre{font-family:dejavu sans mono,monospace}hr{background-color:var(--color-border);border:unset;height:1px;margin:3rem auto}blockquote{background:var(--color-alt-background);border-left:3px solid var(--color-border);border-radius:3px;margin:1.5em 0;padding:.5em .5em .5em 1.5em}table{border-collapse:collapse;font-size:.875rem;line-height:1.5em;margin:1em 0 2em;width:100%}th{border-bottom:1px solid var(--color-border);font-weight:700;padding:.75em 1em}td{border-top:1px solid var(--color-border);padding:.75em 1em}tr:nth-child(odd)>td{background:var(--color-alt-background)}.bg{color:#f8f8f2;background-color:#272822}.chroma{color:#f8f8f2;background-color:#272822}.chroma .x{}.chroma .err{color:#960050;background-color:#1e0010}.chroma .cl{}.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 .n{}.chroma .na{color:#a6e22e}.chroma .nb{}.chroma .bp{}.chroma .nc{color:#a6e22e}.chroma .no{color:#66d9ef}.chroma .nd{color:#a6e22e}.chroma .ni{}.chroma .ne{color:#a6e22e}.chroma .nf{color:#a6e22e}.chroma .fm{}.chroma .nl{}.chroma .nn{}.chroma .nx{color:#a6e22e}.chroma .py{}.chroma .nt{color:#f92672}.chroma .nv{}.chroma .vc{}.chroma .vg{}.chroma .vi{}.chroma .vm{}.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 .p{}.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 .g{}.chroma .gd{color:#f92672}.chroma .ge{font-style:italic}.chroma .gr{}.chroma .gh{}.chroma .gi{color:#a6e22e}.chroma .go{}.chroma .gp{}.chroma .gs{font-weight:700}.chroma .gu{color:#75715e}.chroma .gt{}.chroma .gl{}.chroma .w{}.home,.with-profile{display:grid;grid-template-areas:"navigation navigation navigation" ". header ." ". content ." ". footer .";grid-template-columns:1fr 42rem 1fr;grid-template-rows:5rem 14rem 1fr 7rem}.page{display:grid;grid-template-areas:"navigation navigation navigation" ". content ." ". footer .";grid-template-columns:1fr 42rem 1fr;grid-template-rows:5rem 1fr 7rem}.content{align-content:start;display:grid;grid-area:content;min-width:0}.main-nav{align-content:center;display:grid;grid-area:navigation;justify-content:end;margin:0 2rem}.main-nav .nav{display:grid;gap:1em;grid-auto-flow:column}.profile{align-content:center;border-bottom:1px solid var(--color-border);display:grid;grid-area:header;justify-items:center;min-width:0}.main-footer{align-content:center;border-top:1px solid var(--color-border);display:grid;grid-area:footer;justify-items:center;padding-bottom:1rem}.small{font-size:14px;opacity:.8}.hidden{display:none}nav a{display:grid;font-size:14px;font-weight:700;gap:.25em;grid-auto-flow:column;padding:10px 0}nav a svg{height:1.2em;width:1.2em}nav a:visited{color:var(--color-link-text)}nav .subscribe{background:var(--color-link-text);border-radius:3px;color:var(--color-white);padding:10px 12px}nav .subscribe:visited{color:var(--color-white)}.nav-toggle{display:none}.profile .avatar{border-radius:50%;height:80px;width:80px}.profile h1,.profile h2{font-size:20px}.profile h2{color:var(--color-alt-text);margin-top:0}.post-list{margin-top:4rem;padding:0 1.5rem}.post-list+.pagination{margin-bottom:4rem}.post-list li{list-style-type:none;margin:0;padding:1.5em 0}.post-list li+li{border-top:1px solid var(--color-border)}.post-list h1{font-size:19px;font-weight:500;grid-area:heading;margin:0}.post-list h2{color:var(--color-alt-text);font-size:17px;font-weight:400;grid-area:subheading;margin:0}.post-list li a{display:grid;gap:.75em 0;grid-template-areas:"heading date" "subheading date"}.post-list a:hover{text-decoration:none}.post-list a:hover h1{color:var(--color-link-text);text-decoration:underline}.post-list .dates{color:var(--color-alt-text);grid-area:date;justify-self:end}.post{min-width:0}.post header{text-align:center}.post .date,.post .reading-time{color:var(--color-alt-text);display:grid;font-size:14px;letter-spacing:2px;text-transform:uppercase}.post .reading-time{gap:.5em;grid-auto-flow:column;justify-content:center;margin:1em 0 3em}.post .reading-time .feather-clock{height:1.2em;width:1.2em}code.hljs{padding:1em}.highlight{margin:1.5em 0}.highlight pre{margin:0;padding:1rem;overflow-x:auto;border-radius:5px;border:1px solid var(--color-border)}.highlight pre code{border:none;padding:0;background-color:transparent;white-space:pre}#post-meta{border-top:1px solid var(--color-border);display:grid;font-size:14px;grid-auto-flow:column;justify-content:start;line-height:1.4;margin-top:3em;padding:3em 0;min-width:0}#post-meta span{color:var(--color-alt-text);display:grid}#post-meta .author{color:var(--color-main-text)}#post-meta .avatar{border-radius:50%;box-shadow:0 0 0 3px var(--color-alt-background),0 0 0 4px var(--color-border);height:3em;margin-right:1.5em;width:3em}.main-footer .links a{padding:0 .5rem}.main-footer .links a+a{border-left:1px solid var(--color-border)}@media screen and (max-width:48em){.page{grid-template-rows:4rem 1fr 7rem}.home,.with-profile,.page{column-gap:1em;grid-template-columns:auto 1fr auto}.main-nav{align-content:unset;justify-content:unset;margin:0 1.5rem}.nav-toggle{align-self:center;background:unset;border:unset;color:var(--color-main-text);cursor:pointer;display:grid;justify-self:end;margin:0;padding:0;transition:all .5s;z-index:2}.nav-toggle[aria-expanded=true]{margin-right:10.5rem;position:fixed}.main-nav .nav{align-content:start;background-color:var(--color-alt-background);display:grid;gap:.5em;grid-auto-flow:row;height:100%;justify-content:center;opacity:0;padding-top:4rem;position:fixed;right:0;transition:all .5s;visibility:hidden;width:0;z-index:1}.main-nav .nav[aria-expanded=true]{opacity:1;visibility:visible;width:15rem}}