@font-face{font-family:'Montserrat';font-style:italic;font-weight:1 1000;src:url('../fonts/latin-ext/Montserrat-VariableFont_wght-italic.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;font-stretch:50% 200%}@font-face{font-family:'Montserrat';font-style:italic;font-weight:1 1000;src:url('../fonts/latin/Montserrat-VariableFont_wght-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;font-stretch:50% 200%}@font-face{font-family:'Montserrat';font-style:normal;font-weight:1 1000;src:url('../fonts/latin-ext/Montserrat-VariableFont_wght.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:fallback;font-stretch:50% 200%}@font-face{font-family:'Montserrat';font-style:normal;font-weight:1 1000;src:url('../fonts/latin/Montserrat-VariableFont_wght.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:fallback;font-stretch:50% 200%}@font-face{font-family:'Montserrat Underline';font-style:swap;font-weight:1 1000;src:url('../fonts/latin-ext/MontserratUnderline-VariableFont_wght-italic.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:fallback;font-stretch:50% 200%}@font-face{font-family:'Montserrat Underline';font-style:italic;font-weight:1 1000;src:url('../fonts/latin/MontserratUnderline-VariableFont_wght-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;font-stretch:50% 200%}@font-face{font-family:'Montserrat Underline';font-style:normal;font-weight:1 1000;src:url('../fonts/latin-ext/MontserratUnderline-VariableFont_wght.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:fallback;font-stretch:50% 200%}@font-face{font-family:'Montserrat Underline';font-style:normal;font-weight:1 1000;src:url('../fonts/latin/MontserratUnderline-VariableFont_wght.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:fallback;font-stretch:50% 200%}body,h1,h2,h3,h4,h5,h6,address,p,hr,pre,blockquote,ol,ul,li,dl,dt,dd,figure,figcaption,div,table,caption,form,fieldset{margin:0}input,button,textarea,select{font-family:inherit;font-size:inherit}button,input,label{line-height:1.1}strong,b,th{font-weight:500}ul{padding-left:0em}p{margin-bottom:0.625em}small{font-size:10pt;line-height:1.5}body{font-family:"Montserrat";font-size:12pt;line-height:1.25;text-decoration-skip-ink:auto;font-optical-sizing:auto;font-variant-ligatures:common-ligatures no-discretionary-ligatures no-historical-ligatures contextual;font-kerning:normal}.prose{-webkit-hyphens:auto;-webkit-hyphenate-limit-before:4;-webkit-hyphenate-limit-after:3;-webkit-hyphenate-limit-lines:2;hyphens:auto;hyphenate-limit-chars:7 4 3;hyphenate-limit-lines:2;hyphenate-limit-zone:8%;hyphenate-limit-last:always;text-wrap:pretty;font-variant-numeric:oldstyle-nums proportional-nums}.flow>*+*{margin-block-start:var(--flow-space,1em)}.prose{--flow-space:1.5em}.prose pre,.prose code,.prose var,.prose samp,.prose kbd,.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{-webkit-hyphens:manual;hyphens:manual}h1{font-family:"Montserrat Underline";font-weight:500;font-size:26pt;line-height:0.58;margin-top:1.16em}h2{font-weight:500;font-size:18pt;line-height:0.833;margin-top:1.25em;margin-bottom:0.42em}h3{font-size:12pt;text-transform:uppercase;font-weight:500;margin-bottom:0.625em;font-variant-numeric:tabular-nums}a{text-decoration:none;font-weight:500;color:#0068b3}#hacking{height:10em;float:left}#bust{height:10em;float:right;padding-left:0.5ex}@media screen and (min-width:48em){#hacking{height:20em;float:left;position:relative;left:-5.5em;margin-right:-5.5em}#bust{height:12em;float:right;padding-left:1.5ex;position:relative;top:-3.5em;margin-bottom:-3.5em}}.csl-entry{margin-top:1ex;position:relative;display:inline-block}.csl-entry::before{content:"■";font-size:1em;margin-left:-1.25rem;margin-right:0rem;margin-top:-0.085rem;position:absolute}.csl-expl::before{content:"◼";margin-right:0.5ex}.bib-conference::before{color:#196ca3}.bib-workshop::before{color:#8cb6d1}.bib-informal::before{color:#606b70}.bib-thesis::before{color:#f8c91f}span.award::before{content:"🏆 "}span.award{margin-top:0.2em;display:block}.inlineSep span{display:none}.inlineSep:before{content:" "}.inlineSep:after{content:"• "}li>p{margin-bottom:0em}li{margin-bottom:0.625em}td{padding-right:1em;vertical-align:top}.soft-entry{margin-top:1ex;position:relative;display:inline-block}.soft-header{font-weight:500;display:block}.soft-role{}