:root{--ff-purple:#5a5475;--ff-darkyellow:#e6c000;--ff-lightyellow:#ffffcc;--ff-white:#f8f8f2;--ff-pink:#ffb8d1;--ff-red:#951117;--ff-green:#508c1c;--ff-dustyrose:#a8757b;--ff-violet:#625c7b;--ff-brightpink:#f92672;--ff-lilac:#c5a3ff;--ff-yellow:#ffea00;--ff-mint:#c2ffdf}.chroma{background-color:#232136;color:#e0def4}.chroma .err{color:#eb6f92}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:#2a283e}.chroma .lnt{color:#6e6a86;margin-right:.8em;padding:0 .8em 0 .4em}.chroma .ln{color:#6e6a86;margin-right:.8em;padding:0 .8em 0 .4em}.chroma .line{display:flex}.chroma .c{color:#6e6a86;font-style:italic}.chroma .ch{color:#6e6a86;font-style:italic}.chroma .cm{color:#6e6a86;font-style:italic}.chroma .c1{color:#6e6a86;font-style:italic}.chroma .cs{color:#6e6a86;font-style:italic}.chroma .cp{color:#9ccfd8}.chroma .cpf{color:#9ccfd8}.chroma .k{color:#c4a7e7}.chroma .kc{color:#c4a7e7}.chroma .kd{color:#c4a7e7}.chroma .kn{color:#c4a7e7}.chroma .kp{color:#9ccfd8}.chroma .kr{color:#c4a7e7}.chroma .kt{color:#9ccfd8}.chroma .n{color:#e0def4}.chroma .na{color:#9ccfd8}.chroma .nb{color:#f6c177}.chroma .bp{color:#f6c177}.chroma .nc{color:#f6c177}.chroma .no{color:#f6c177}.chroma .nd{color:#9ccfd8}.chroma .ni{color:#e0def4}.chroma .ne{color:#f6c177}.chroma .nf{color:#9ccfd8}.chroma .fm{color:#9ccfd8}.chroma .nl{color:#f6c177}.chroma .nn{color:#f6c177}.chroma .nx{color:#e0def4}.chroma .py{color:#e0def4}.chroma .nt{color:#eb6f92}.chroma .nv{color:#eb6f92}.chroma .vc{color:#eb6f92}.chroma .vg{color:#eb6f92}.chroma .vi{color:#eb6f92}.chroma .vm{color:#eb6f92}.chroma .l{color:#f6c177}.chroma .ld{color:#ebbcba}.chroma .s{color:#f6c177}.chroma .sa{color:#ebbcba}.chroma .sb{color:#f6c177}.chroma .sc{color:#ebbcba}.chroma .dl{color:#ebbcba}.chroma .sd{color:#ebbcba}.chroma .s2{color:#f6c177}.chroma .se{color:#9ccfd8}.chroma .sh{color:#f6c177}.chroma .si{color:#ebbcba}.chroma .sx{color:#f6c177}.chroma .sr{color:#f6c177}.chroma .s1{color:#f6c177}.chroma .ss{color:#f6c177}.chroma .m{color:#f6c177}.chroma .mb{color:#f6c177}.chroma .mf{color:#f6c177}.chroma .mh{color:#f6c177}.chroma .mi{color:#f6c177}.chroma .il{color:#f6c177}.chroma .mo{color:#f6c177}.chroma .o{color:#908caa}.chroma .ow{color:#908caa}.chroma .p{color:#908caa}.chroma .g{color:#e0def4}.chroma .gd{color:#eb6f92}.chroma .ge{font-style:italic}.chroma .gh{color:#f6c177;font-weight:700}.chroma .gi{color:#9ccfd8}.chroma .go{color:#6e6a86}.chroma .gp{color:#e0def4;font-weight:700}.chroma .gs{font-weight:700}.chroma .gu{color:#c4a7e7;font-weight:700}*{border:0;font-weight:inherit;font-family:inherit;font-style:inherit;font-size:100%;margin:0;outline:0;padding:0;vertical-align:baseline}html{background-color:var(--ff-purple);color:var(--ff-white);font-family:hack,fantasque sans mono,monospace;font-style:normal;font-weight:400}html,body{height:100%;width:100%}h1,h2,h3,h4,h5,h6,p,pre,blockquote,form,ul,ol,dl{margin:1rem 0}li,dd,blockquote{margin-left:2rem}h1,h2,h3,h4,h5,h6{font-size:1rem;font-style:normal;font-weight:700;letter-spacing:.125ch;margin-top:2em;text-decoration:underline}h1::before{content:"# "}h2::before{content:"## "}h3::before{content:"### "}h4::before{content:"#### "}h5::before{content:"##### "}h6::before{content:"###### "}blockquote,p,table{margin-top:0}blockquote,p,li{line-height:1.5}figure{background-color:var(--ff-violet);padding:1rem;margin-bottom:1rem}figure blockquote{background-color:#47415e;margin-left:0;padding:.5rem}figcaption{display:block;color:var(--ff-yellow)}figcaption code{background:var(--ff-violet);color:#f6d3ff;display:inline-block;padding:.125rem .3rem}a,a:visited{border-bottom:1px dashed;color:var(--ff-mint);font-style:normal;font-weight:400;text-decoration:none}a:hover,a:focus{border-bottom-style:solid;color:var(--ff-yellow);outline:1px solid;outline-offset:.25em}em{color:var(--ff-yellow);font-style:italic}i{font-style:italic}b,strong{color:var(--ff-mint);font-weight:700}table{border-collapse:separate;border-spacing:0}table th{border-bottom:2px solid var(--ff-lightyellow);padding-bottom:.5rem;font-weight:700;letter-spacing:.1rem}table td{background-color:var(--ff-violet);padding:.5rem}table td em{color:var(--ff-pink);font-style:italic;font-weight:400}table tbody tr:first-child td{font-weight:700;text-align:center}li code,p code{background:var(--ff-violet);color:#f6d3ff;display:inline-block;padding:.125rem .3rem;padding:.25ch .5ch}abbr{cursor:help}.container{display:grid;gap:1rem;margin:0 1rem;padding-bottom:1rem}.main{padding-right:1rem;max-width:72ch}@media screen and (max-width:960px){.container{grid-template-columns:1fr}.side{grid-row-start:1;grid-row-end:2}.main{grid-row-start:2;grid-row-end:3;grid-column-start:1;grid-column-end:2}}@media all and (min-width:960px){.container{grid-template-columns:repeat(8,1fr);grid-template-rows:auto min-content}.side{grid-column-start:1;grid-column-end:3;padding-left:1rem}.main{grid-column-start:3;grid-column-end:8}footer{grid-column-start:1;grid-row-start:2;grid-column:span 8;padding-left:1rem}}@media screen and (min-width:1100px){.container{grid-template-columns:1fr 2fr}.side{grid-column-start:1;grid-column-end:2;padding-left:1rem}.main{grid-column-start:2;grid-column-end:3}}@media screen and (min-width:1400px){.container{grid-template-columns:repeat(6,1fr)}.side{grid-column-start:2;grid-column-end:3}.main{grid-column-start:3;grid-column-end:6}}#name{font-size:inherit}#name a{color:inherit;border-bottom:0;font-weight:700}.side .nav ul{list-style:none;margin:0;padding:0}.side .nav ul li{line-height:1.2;margin:0 0 1em}.side .post-nav ul{margin-top:-.6em}.side .post-nav ul li{color:var(--ff-mint);margin-bottom:.3em;margin-left:.5em}.side .post-nav ul li::before{content:"\251C\2500"}.side .post-nav a{margin-left:.5em;text-decoration:none}@media screen and (max-width:960px){.side .post-nav{display:none}.side .nav ul{display:flex;flex-flow:row wrap;align-content:left;justify-content:space-between}.side .nav ul li{margin:0}}footer{border-top:1px solid var(--ff-yellow);padding-top:1rem;text-align:center}.post-details{border-bottom:1px solid var(--ff-darkyellow);margin-bottom:1rem}.post-details ul{max-width:fit-content}.post-details ul li{margin-right:1ch}.post-details time{display:block;padding-top:1rem}.post-content .highlight{margin-bottom:1em;max-width:70vw}.post-content figure img{height:auto;width:100%}.post-content pre,.post-content .highlight pre{overflow-x:auto;padding:1ch}.post-content pre code,.post-content .highlight pre code{background:0 0;padding:0}.lnt{display:block}#post-list article{margin-bottom:1rem}#post-list article p{margin-bottom:0}#post-list article p.date{color:var(--ff-pink)}.post-tags::before{content:"\1F3F7 ";margin-right:1ch;margin-top:.25rem}.no-bullets{list-style:none}.inline-list{display:flex;flex-flow:row wrap;align-content:center;justify-content:space-between}.inline-list li{margin:0}details summary::marker{content:"[\002B]\A0"}details summary:hover::marker{color:var(--ff-yellow);cursor:pointer}details[open] summary::marker{content:"[\2212]\A0"}#details-and-controls{display:grid;grid-template-columns:auto auto;align-items:normal; #print-options { margin-top: 0; justify-self: self-end; legend { color: var(--ff-pink); } fieldset { display: flex; flex-direction: column; align-items: flex-start; text-align: left; } label { position: relative; display: inline-block; margin: 5px 0 0 0; } label:hover { color: var(--ff-yellow); } input { opacity: 0; position: absolute; } span { position: relative; display: inline-block; padding-left: 40px; } span::before { content: ""; position: absolute; left: 0; bottom: 0; border-bottom: 1px dashed; width: 30px; } input:focus~span::before { border-bottom: 1px solid; } input:checked~span::after { content: "\2713"; color: #fff; position: absolute; font-size: 12px; left: 12px; top: 1px; } }}@media print{#print-options{display:none}html:has(#print-minimal:checked){ #experience details:first-of-type::details-content { content-visibility: visible !important; }}html:has(#print-full:checked){details>*:not(summary){display:block}details::details-content{content-visibility:visible!important}}details summary::marker{content:""}details[open] summary::marker{content:""}details{margin-bottom:1rem;margin-left:2rem}.no-print{display:none}.container{display:block}.main{grid-column:unset;grid-row:unset;padding:0}html{background:#fff;color:#000;font-size:.75rem;max-width:100%}body{max-width:100%;padding-top:1rem}i,em{color:#000;text-decoration:underline}b,strong{color:#000;text-decoration:underline double}blockquote,p,table,.post-details{max-width:100%}a,a:visited,a:active{color:#000;border-bottom:none}details,table,blockquote,ul,ol{page-break-inside:avoid}h1,h2,h3,h4,h5,h6{margin:0 0 1rem;page-break-after:avoid}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:700;letter-spacing:.125ch;text-decoration:none}h1::before,h2::before,h3::before,h4::before,h5::before,h6::before{content:""}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.25rem;padding-top:1rem}section{margin-top:2rem}p code,li code{background:0 0;color:#000;display:inline;padding:0}.main{padding-right:1rem;max-width:108ch}}@media screen{.only-print{display:none}}