:root{--bg:white;--fg:#090a14;--hborder:#4f8fba;--link:#3F7AA2;--hlink:#3F7AA2;--user:#468232;--code:#a23e8c;--subtitle:#394a50;--quote:#577277;--tborder:#394a50;--imgbg:white;--preborder:#577277;--bqborder:#10141f;--home-link:#7a367b;--blog-link:#3c5e8b;--projects-link:#752438;--about-link:#468232;--more-link:#394a50}@media(prefers-color-scheme:dark){:root{--bg:#191b1c;--fg:#ebede9;--hborder:#577277;--link:#73bed3;--hlink:#73bed3;--user:#a8ca58;--code:#c65197;--subtitle:#a8b5b2;--quote:#819796;--tborder:#a8b5b2;--imgbg:white;--preborder:#394a50;--bqborder:#394a50;--home-link:#cf573c;--blog-link:#73bed3;--projects-link:#cf573c;--about-link:#a8ca58;--more-link:#ebede9}}.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:#ffc}.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:#a53030;font-weight:700}.chroma .kc{color:#a53030;font-weight:700}.chroma .kd{color:#a53030;font-weight:700}.chroma .kn{color:#a53030;font-weight:700}.chroma .kp{color:#a53030}.chroma .kr{color:#a53030;font-weight:700}.chroma .kt{color:#884b2b;font-weight:700}.chroma .na{color:#a23e8c;font-weight:700}.chroma .no{color:#3c5e8b}.chroma .nf{color:#a23e8c;font-weight:700}.chroma .nt{color:#a53030;font-weight:700}.chroma .nv{color:#a53030}.chroma .s{color:#3c5e8b}.chroma .sa{color:#3c5e8b}.chroma .sb{color:#3c5e8b}.chroma .sc{color:#3c5e8b}.chroma .dl{color:#3c5e8b}.chroma .sd{color:#3c5e8b}.chroma .s2{color:#3c5e8b}.chroma .se{color:#3c5e8b}.chroma .sh{color:#3c5e8b}.chroma .si{color:#3c5e8b}.chroma .sx{color:#3c5e8b}.chroma .sr{color:#3c5e8b}.chroma .s1{color:#3c5e8b}.chroma .ss{color:#3c5e8b}.chroma .m{color:#3c5e8b;font-weight:700}.chroma .mb{color:#3c5e8b;font-weight:700}.chroma .mf{color:#3c5e8b;font-weight:700}.chroma .mh{color:#3c5e8b;font-weight:700}.chroma .mi{color:#3c5e8b;font-weight:700}.chroma .il{color:#3c5e8b;font-weight:700}.chroma .mo{color:#3c5e8b;font-weight:700}.chroma .c{color:#577277;font-style:italic}.chroma .ch{color:#577277;font-style:italic}.chroma .cm{color:#577277;font-style:italic}.chroma .c1{color:#577277;font-style:italic}.chroma .cs{color:#577277;font-style:italic}.chroma .cp{color:#752438;font-weight:700}.chroma .cpf{color:#752438;font-weight:700;font-style:italic}.chroma .gd{color:#752438}.chroma .gh{font-weight:700}.chroma .gi{color:#468232}.chroma .gu{font-weight:700}.chroma .w{color:#819796}@media(prefers-color-scheme:dark){.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:#ffc}.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:#cf573c;font-weight:700}.chroma .kc{color:#cf573c;font-weight:700}.chroma .kd{color:#cf573c;font-weight:700}.chroma .kn{color:#cf573c;font-weight:700}.chroma .kp{color:#cf573c}.chroma .kr{color:#cf573c;font-weight:700}.chroma .kt{color:#cdcaa9;font-weight:700}.chroma .na{color:#c65197;font-weight:700}.chroma .no{color:#4f8fba}.chroma .nf{color:#c65197;font-weight:700}.chroma .nt{color:#cf573c;font-weight:700}.chroma .nv{color:#cf573c}.chroma .s{color:#4f8fba}.chroma .sa{color:#4f8fba}.chroma .sb{color:#4f8fba}.chroma .sc{color:#4f8fba}.chroma .dl{color:#4f8fba}.chroma .sd{color:#4f8fba}.chroma .s2{color:#4f8fba}.chroma .se{color:#4f8fba}.chroma .sh{color:#4f8fba}.chroma .si{color:#4f8fba}.chroma .sx{color:#4f8fba}.chroma .sr{color:#4f8fba}.chroma .s1{color:#4f8fba}.chroma .ss{color:#4f8fba}.chroma .m{color:#73bed3;font-weight:700}.chroma .mb{color:#73bed3;font-weight:700}.chroma .mf{color:#73bed3;font-weight:700}.chroma .mh{color:#73bed3;font-weight:700}.chroma .mi{color:#73bed3;font-weight:700}.chroma .il{color:#73bed3;font-weight:700}.chroma .mo{color:#73bed3;font-weight:700}.chroma .c{color:#a8b5b2;font-style:italic}.chroma .ch{color:#a8b5b2;font-style:italic}.chroma .cm{color:#a8b5b2;font-style:italic}.chroma .c1{color:#a8b5b2;font-style:italic}.chroma .cs{color:#a8b5b2;font-style:italic}.chroma .cp{color:#a53030;font-weight:700}.chroma .cpf{color:#a53030;font-weight:700;font-style:italic}.chroma .gd{color:#a53030}.chroma .gh{font-weight:700}.chroma .gi{color:#75a743}.chroma .gu{font-weight:700}.chroma .w{color:#819796}}th{background-color:var(--fg);color:var(--bg)}table{margin:0 auto;border:1px solid var(--tborder);border-collapse:collapse}th,td{padding:2px 4px;text-align:left;vertical-align:top;border:1px solid var(--tborder)}th{border-bottom-width:2px}th a{color:var(--bg) !important}th a:hover{color:var(--fg) !important;background-color:var(--bg) !important}td{border:1px solid var(--tborder)}body{font-family:monospace;font-size:.9rem;font-weight:400;line-height:1.4;max-width:48rem;margin:0 auto;padding:3rem 10px;background:var(--bg);color:var(--fg)}p{text-align:justify}article header{margin-top:-.5rem;margin-bottom:.5rem;border-bottom:2px solid var(--subtitle)}h2::before,h3::before,h4::before,h5::before,h6::before{content:""}h1{font-size:1.6rem}h2{font-size:1.3rem;margin-top:1.25rem;border-bottom:1px solid var(--hborder)}h3{font-size:1rem;margin-top:1rem;border-bottom:1px solid var(--hborder)}h4{font-size:.9rem;margin-top:0;border-bottom:1px dashed var(--hborder)}h5{font-size:.8rem;margin-top:0}h6{font-size:.7rem;margin-top:0}a{color:var(--link);text-decoration:underline}a:hover{color:var(--bg);background:var(--link);text-decoration:none}a.userlink{color:var(--user);text-decoration:underline}a.userlink:hover{background:var(--user);text-decoration:none}a.userlink:hover>span{color:var(--bg)}code{text-decoration:underline dotted 1px;font-weight:700}@media(prefers-color-scheme:dark){code{font-weight:unset}}pre code{text-decoration:unset;font-weight:unset}article img{max-width:100%;background:var(--imgbg);display:block;margin:0 auto}figure{margin-left:0;margin-right:0}figcaption{text-align:center;font-style:italic;font-size:.8rem}#logo{animation:3s glow infinite;align-self:center}#logo:hover{animation:3s 3s glow infinite,2s shake}@keyframes glow{0%{filter:saturate(100%)}33%{filter:saturate(400%)}66%{filter:saturate(100%)}}@keyframes shake{0%{transform:rotate(0)}2.5%{transform:rotate(7deg)}5%{transform:rotate(0)}7.5%{transform:rotate(-7deg)}10%{transform:rotate(0)}12.5%{transform:rotate(7deg);filter:saturate(400%)}15%{transform:rotate(0)}17.5%{transform:rotate(-7deg)}20%{transform:rotate(0)}100.0%{transform:rotate(0);filter:saturate(100%)}}body>header{display:flex;flex-direction:row;padding-bottom:1rem;margin-left:0}body>header h1{font-size:1.2rem;margin:0}nav{display:flex;flex-direction:column;justify-content:center}nav ul{padding:0;margin:0;font-weight:700;font-size:1rem}nav ul li{font-size:.75rem;display:inline-block;margin-right:.25rem}nav ul li::before{margin-right:.1rem;content:"["}nav ul li::after{margin-left:.1rem;content:"]"}nav ul li a{color:var(--hlink);text-decoration:none}nav ul li a:hover{color:var(--bg);background:var(--hlink)}.home a{color:var(--home-link)}.home a:hover{color:var(--bg);background:var(--home-link)}.posts a{color:var(--link)}.posts a:hover{color:var(--bg);background:var(--link);text-decoration:none}.projects a{color:var(--projects-link)}.projects a:hover{color:var(--bg);background:var(--projects-link)}.about a{color:var(--about-link)}.about a:hover{color:var(--bg);background:var(--about-link)}section#posts :last-child,section#projects :last-child,section#about :last-child{color:var(--more-link)}section#posts :last-child:hover,section#projects :last-child:hover,section#about :last-child:hover{color:var(--bg);background:var(--more-link)}#dates{color:var(--subtitle);font-size:.75rem;margin-bottom:.5rem}#dates ul{font-size:0;padding:0;list-style:none;padding-left:0}#dates ul li{font-size:.75rem;margin-right:2rem;display:inline-block}article{margin-bottom:.5rem}article sup,article sub{vertical-align:baseline;position:relative}article sup{top:-.4em}article sub{top:.4em}main h1{margin-bottom:.2rem}.user{color:var(--user)}pre{border-left:2px dotted var(--preborder);overflow-x:auto;padding:.5rem;padding-left:1rem;margin-left:1rem;tab-size:4}blockquote{border-left:2px solid var(--bqborder);padding:.5rem;padding-left:1rem;margin-left:1rem;font-style:italic;color:var(--quote)}blockquote p{margin:0}blockquote p~p{margin-top:1rem}q{font-style:italic}.footnotes{font-size:.8rem}hr{border:none;border-bottom:1px dashed var(--subtitle)}footer{border-top:1px solid var(--subtitle);color:var(--subtitle);text-align:center;font-size:.75rem;padding-top:1rem;margin-top:1rem}