
/*! 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}[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}template{display:none}[hidden]{display:none}body{text-rendering:optimizeLegibility;display:grid;grid-template-columns:repeat(12,[col-start] 1fr);font-size:1.3em;margin:1.2em auto;width:90vw;max-width:900px;background-color:#111518;color:#f1f5fb;font-family:"Fira Sans","Helvetica Neue",sans-serif}header,nav{text-transform:lowercase}article.content,header,nav{grid-column:span 12;padding:.1em 1em}article.content .copy{margin:1em .1em}header .title{font-size:2em;margin-left:-.175em}.proj-header,.pub-extras p,nav .navlinks{display:flex;flex-wrap:wrap;column-gap:1em}.section-head a:hover,a,a.title:hover,nav a,nav a:hover{text-decoration:none}a,a.title:hover,a:link{color:#ffc048}.proj-title a,.proj-title a:hover,.proj-title a:link,.pub-title a,.pub-title a:hover,.pub-title a:link,nav a,nav a:hover,nav a:link{color:#cd84f1}a::after,a::before{opacity:0}.section-head a::before,a.title::before,nav a::before{content:"(";margin-left:-.15em}.section-head a::after,a.title::after,nav a::after{content:")";margin-right:-.15em}a:hover{text-decoration:underline}.section-head a:hover::after,.section-head a:hover::before,a.title:hover::after,a.title:hover::before,nav a:hover::after,nav a:hover::before{opacity:1}.archive-rss a::after,.archive-rss a::before{content:"";margin:inherit 0}.content .about-me{text-transform:lowercase;line-height:1.25}.content .about-me figure{margin:0}.content .about-me figure img{width:100%;max-width:640px;margin:1.5em -1em .5em -1em;border:solid #f1f5fb 1em}.content>:not(section:first-child){margin-top:2em}section .section-head{text-transform:lowercase;font-size:1.5em;margin-left:-.175em}.posts,.projs,.pubs{list-style:none;padding:0}.proj-header{column-gap:.5em;margin-bottom:.5em}.proj,.pub{text-align:left;word-spacing:.05em;margin-bottom:1.5em}.proj{text-transform:lowercase}.proj-language a::before{content:'[';opacity:1!important}.proj-language a::after{content:']';opacity:1!important}.proj .proj-desc p,.pub .pub-extras p{margin:0}.section-head{display:grid;grid-gap:1em;grid-template-columns:1fr 1fr;grid-template:"title date"}.section-head.archive-head{grid-template:"title rss"}.post{margin:1.5em 0;display:grid;grid-template:"date" "title"}.post:first-child{margin-top:0}.archive-title,.post-title{grid-area:title;justify-self:left;color:#ffc048}.post-date{grid-area:date;justify-self:right;color:#ffc048}.post-desc{grid-column:span 2;padding:.2em 0}.post-date,.post-desc,.post-title{text-transform:lowercase}.archive-rss{grid-area:rss;justify-self:right}.archive-rss img{height:1em;width:1em!important}.content .center,.content figure{text-align:center}.content code,.content pre{font-family:"Fira Code","Fira Mono",monospace}.content div.sourceCode,.content pre{font-size:.9em;text-align:left}.content pre{hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;background-color:#d2dae2;padding:1em;border-radius:.2em;overflow:auto;overflow-y:hidden}.content .sourceCode a.sourceLine,.content .sourceCode a:visited.sourceLine{color:#1e272e}.content .sourceCode a:hover.sourceLine{text-decoration:none}pre code.sourceCode{padding:0;font-size:inherit;color:inherit;background-color:transparent;border-radius:0}code{padding:2px 4px;font-size:90%;color:#1e272e;background-color:#d2dae2;border-radius:4px}code.sourceCode,pre code{color:#1e272e;background-color:#d2dae2}sup.footnote-ref{left:.1em}hr{border:0;border-top:2px solid #cd84f1;width:100%}.copy h1{font-size:1.5em;color:#ffc048;font-weight:400;text-transform:lowercase}.content img{width:100%}.content .copy{line-height:1.45}.content .copy p{text-align:justify}.content .copy .blurb,.copy figcaption{font-size:.9em}.copy blockquote{border-left:.25em solid #cd84f1;margin:.5em 0 .5em 0;padding:0 2em;font-style:italic}.copy blockquote cite::before{content:'\2014 '}.copy blockquote cite{display:block;margin-top:-.5em;text-align:right;font-style:normal}.copy ul{list-style:none;padding-left:2.2em}.copy ul li::before{font-family:Helvetica!important;content:'\2605';color:#ffc048;margin-left:-1.5em;margin-right:.5em;font-size:.8em;font-style:normal}.copy ul.posts{list-style:unset;padding-left:unset}.copy ul li.post::before{content:unset}.copy blockquote ol:not(:first-child),.copy blockquote ul:not(:first-child){margin-top:-.5em}.copy .footnote-back{padding-left:.3em}@media (min-width:700px){body{margin:2em auto;width:80vw}.post{grid-template-columns:1fr 1fr;grid-template:"title date"}}code[class*=language-],pre[class*=language-]{background:#f9f9f9;color:#383942;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:#e5e5e5;color:inherit}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection{background:#e5e5e5;color:inherit}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}.token.cdata,.token.comment,.token.prolog{color:#9fa0a6}.token.doctype,.token.entity,.token.punctuation{color:#383942}.token.atrule,.token.attr-name,.token.boolean,.token.class-name,.token.constant,.token.number{color:#b66a00}.token.keyword{color:#a625a4}.token.deleted,.token.important,.token.property,.token.symbol,.token.tag{color:#e35549}.token.attr-value,.token.attr-value>.token.punctuation,.token.builtin,.token.char,.token.inserted,.token.regex,.token.selector,.token.string{color:#50a04f}.token.function,.token.operator,.token.variable{color:#4078f1}.token.url{color:#0083bb}.token.attr-value>.token.punctuation.attr-equals,.token.special-attr>.token.attr-value>.token.value.css{color:#383942}.language-css .token.selector{color:#e35549}.language-css .token.property{color:#383942}.language-css .token.function,.language-css .token.url>.token.function{color:#0083bb}.language-css .token.url>.token.string.url{color:#50a04f}.language-css .token.atrule .token.rule,.language-css .token.important{color:#a625a4}.language-javascript .token.operator{color:#a625a4}.language-javascript .token.template-string>.token.interpolation>.token.interpolation-punctuation.punctuation{color:#c91142}.language-json .token.operator{color:#383942}.language-json .token.null.keyword{color:#b66a00}.language-markdown .token.url,.language-markdown .token.url-reference.url>.token.string,.language-markdown .token.url>.token.operator{color:#383942}.language-markdown .token.url>.token.content{color:#4078f1}.language-markdown .token.url-reference.url,.language-markdown .token.url>.token.url{color:#0083bb}.language-markdown .token.blockquote.punctuation,.language-markdown .token.hr.punctuation{color:#9fa0a6;font-style:italic}.language-markdown .token.code-snippet{color:#50a04f}.language-markdown .token.bold .token.content{color:#b66a00}.language-markdown .token.italic .token.content{color:#a625a4}.language-markdown .token.list.punctuation,.language-markdown .token.strike .token.content,.language-markdown .token.strike .token.punctuation,.language-markdown .token.title.important>.token.punctuation{color:#e35549}.token.bold{font-weight:700}.token.comment,.token.italic{font-style:italic}.token.entity{cursor:help}.token.namespace{opacity:.8}.token.token.cr:before,.token.token.lf:before,.token.token.space:before,.token.token.tab:not(:empty):before{color:hsla(230,8%,24%,.2)}div.code-toolbar>.toolbar.toolbar>.toolbar-item{margin-right:.4em}div.code-toolbar>.toolbar.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span{background:#e5e5e5;color:#696b76;padding:.1em .4em;border-radius:.3em}div.code-toolbar>.toolbar.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span:hover{background:#c6c6c7;color:#383942}.line-highlight.line-highlight{background:hsla(230,8%,24%,.05)}.line-highlight.line-highlight:before,.line-highlight.line-highlight[data-end]:after{background:#e5e5e5;color:#383942;padding:.1em .6em;border-radius:.3em;box-shadow:0 2px 0 0 rgba(0,0,0,.2)}pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:hsla(230,8%,24%,.05)}.command-line .command-line-prompt,.line-numbers.line-numbers .line-numbers-rows{border-right-color:hsla(230,8%,24%,.2)}.command-line .command-line-prompt>span:before,.line-numbers .line-numbers-rows>span:before{color:#9d9d9f}.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:#e35549}.rainbow-braces .token.token.punctuation.brace-level-10,.rainbow-braces .token.token.punctuation.brace-level-2,.rainbow-braces .token.token.punctuation.brace-level-6{color:#50a04f}.rainbow-braces .token.token.punctuation.brace-level-11,.rainbow-braces .token.token.punctuation.brace-level-3,.rainbow-braces .token.token.punctuation.brace-level-7{color:#4078f1}.rainbow-braces .token.token.punctuation.brace-level-12,.rainbow-braces .token.token.punctuation.brace-level-4,.rainbow-braces .token.token.punctuation.brace-level-8{color:#a625a4}pre.diff-highlight>code .token.token.deleted:not(.prefix),pre>code.diff-highlight .token.token.deleted:not(.prefix){background-color:hsla(353,100%,66%,.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:hsla(353,95%,66%,.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:hsla(353,95%,66%,.25)}pre.diff-highlight>code .token.token.inserted:not(.prefix),pre>code.diff-highlight .token.token.inserted:not(.prefix){background-color:hsla(137,100%,55%,.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:hsla(135,73%,55%,.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:hsla(135,73%,55%,.25)}.prism-previewer-gradient.prism-previewer-gradient div,.prism-previewer.prism-previewer:before{border-color:#f2f2f2}.prism-previewer-color.prism-previewer-color:before,.prism-previewer-easing.prism-previewer-easing:before,.prism-previewer-gradient.prism-previewer-gradient div{border-radius:.3em}.prism-previewer.prism-previewer:after{border-top-color:#f2f2f2}.prism-previewer-flipped.prism-previewer-flipped.after{border-bottom-color:#f2f2f2}.prism-previewer-angle.prism-previewer-angle:before,.prism-previewer-easing.prism-previewer-easing,.prism-previewer-time.prism-previewer-time:before{background:#fff}.prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:hsl(230,8%,24%);stroke-opacity:1}.prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing line,.prism-previewer-easing.prism-previewer-easing path{stroke:hsl(230,8%,24%)}.prism-previewer-easing.prism-previewer-easing circle{fill:transparent}
