@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;src:url(/fonts/ibm-plex-mono/IBMPlexMono-Regular.ttf)format("truetype")}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:400;src:url(/fonts/ibm-plex-mono/IBMPlexMono-Italic.ttf)format("truetype")}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:700;src:url(/fonts/ibm-plex-mono/IBMPlexMono-Bold.ttf)format("truetype")}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:700;src:url(/fonts/ibm-plex-mono/IBMPlexMono-BoldItalic.ttf)format("truetype")}.float-container{display:flex;flex-wrap:wrap;gap:.5em;margin:0 1em 1em 0;flex-direction:row;align-items:flex-start}.float-container.position-left{float:left}.float-container.position-right{float:right;margin:0 0 1em 1em}.float-container.size-small{max-width:12.5%}.float-container.size-medium{max-width:25%}.float-container.size-large{max-width:50%}.float-container>img{flex:1;min-width:0;max-width:none;height:auto}.float-container.layout-column{flex-direction:column}.float-container.layout-column>img{display:block;max-width:100%;height:auto}.clearfix{clear:both}:root{color-scheme:light dark;--light-bg:#ffffff;--light-color:#000000;--light-highlight:#2a85e8;--dark-bg:#000000;--dark-color:#ffffff;--dark-highlight:#2a85e8;--gap:4rem;--gap-s:1rem}body{font-family:ibm plex mono,monospace;font-size:1rem;line-height:1.5;color:light-dark(var(--light-color),var(--dark-color));background-color:light-dark(var(--light-bg),var(--dark-bg))}h1,h2,h3,h4,h5,h6{font-family:ibm plex mono,monospace}h1{font-size:1.4rem}h2,h3,h4,h5,h6{font-size:1.2rem}img,svg,video{max-width:100%;display:block}a{text-decoration:none;color:light-dark(var(--light-highlight),var(--dark-highlight))}a:visited{filter:brightness(80%)}em{font-style:oblique 6deg}.muted{opacity:.5}header{max-width:100%;margin-inline:auto;margin:0 20rem;display:flex;justify-content:space-between;align-items:center}main{max-width:100%;margin-inline:auto;margin:var(--gap)20rem}.logo-link{display:inline-block;color:inherit}.logo{display:block;max-width:100%;width:750px;height:auto}.logo-dark{display:none}.logo-light{display:block}@media(prefers-color-scheme:dark){.logo-dark{display:block}.logo-light{display:none}}.home-section{padding:var(--gap)0 0}.about-text{width:750px;margin:0}nav#main-menu{display:flex;align-items:center}nav#main-menu .hamburger{display:none;background:0 0;border:none;cursor:pointer;padding:.5rem;color:light-dark(var(--light-color),var(--dark-color));opacity:.7;transition:opacity .3s}nav#main-menu .hamburger:hover{opacity:1}nav#main-menu .hamburger svg{width:2rem;height:2rem}nav#main-menu ul{list-style:none;margin:0;padding:0;background-color:light-dark(var(--light-bg),var(--dark-bg))}nav#main-menu ul li{display:inline-block;margin-right:1rem}nav#main-menu ul li:last-child{margin-right:0}nav#main-menu ul li a{text-decoration:none;color:light-dark(var(--light-color),var(--dark-color));padding:.25rem 0;position:relative}nav#main-menu ul li a::before{content:"{";margin-right:.25rem;opacity:0}nav#main-menu ul li a::after{content:"}";margin-left:.25rem;opacity:0}nav#main-menu ul li a:hover,nav#main-menu ul li a.active{border-bottom:2px solid light-dark(var(--light-color),var(--dark-color))}nav#main-menu ul li a:hover::before,nav#main-menu ul li a.active::before{opacity:1}nav#main-menu ul li a:hover::after,nav#main-menu ul li a.active::after{opacity:1}div.highlight{font-size:.8rem;margin:0 var(--gap)}ul.list-of-links{list-style:none;margin:0;padding:0}ul.list-of-links li{display:inline-block;padding-left:1rem;padding-right:1rem;border-right:1px solid;line-height:1.4rem}ul.list-of-links li:first-child{padding-left:0}ul.list-of-links li:last-child{padding-right:0;border-right:none}ul.list-of-summaries{list-style:none;padding:0;margin:0}ul.list-of-summaries li{display:flex}ul.list-of-summaries li .bullet{flex:0 0 6rem;padding-right:2rem}ul.gallery{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--gap);align-items:stretch}ul.gallery li{flex:0 0 calc(33.333% - var(--gap));display:flex;flex-direction:column}ul.gallery li img{display:block;max-width:100%;margin-bottom:.5rem}ul.gallery li p{margin:.5rem 0 0;margin-top:auto;text-align:left}ul.gallery li p a{color:light-dark(var(--light-color),var(--dark-color))}ul.gallery .title-line{display:block}@media(max-width:768px){ul.gallery{flex-direction:column;gap:var(--gap-s)}ul.gallery li{flex:0 0 100%}header{flex-wrap:wrap;margin:0 var(--gap-s)}main{margin:var(--gap-s)}.logo-link{flex:1 0;text-align:center;order:1}.logo{width:auto;max-width:100%;margin:0 auto}.about-text{width:100%}nav#main-menu{justify-content:flex-end;order:2;max-width:100%;padding:.5rem;position:relative}nav#main-menu .hamburger{display:block;z-index:100;margin-left:auto}nav#main-menu ul{display:none;position:absolute;top:0;right:0;flex-direction:column;min-width:200px}nav#main-menu ul li{display:block;margin:.5rem 0;text-align:left}nav#main-menu ul li a{padding:.5rem 1rem;display:block}nav#main-menu ul.is-open{display:flex}}.section-work main>p{margin-bottom:2rem}article.work-page{display:flex;gap:var(--gap);align-items:flex-start}article.work-page .metadata{flex:0 0 calc(33.333% - 1.5rem);display:flex;flex-direction:column}article.work-page .metadata .tags{list-style:none;margin:0;padding:0}article.work-page .metadata .tags .tag{display:inline;white-space:pre}article.work-page .metadata .tags .tag a{color:light-dark(var(--light-color),var(--dark-color))}article.work-page .metadata .tags .tag:after{content:"  \00b7  "}article.work-page .metadata .tags .tag:last-child:after{content:""}article.work-page .content{flex:1 1 calc(66.666% - 1.5rem)}article.work-page .content h1{margin:0}article.work-page .content p:first-child{margin-top:0}article.work-page .content p img{display:block;max-width:100%;height:auto;margin:0 auto}article.work-page .content video{max-height:80vh;width:auto}article.work-page .marked-image{width:100%;height:auto;display:block}article.work-page .work-date{margin-top:2rem;font-size:.9rem;opacity:.7}@media(max-width:768px){article.work-page{flex-direction:column}article.work-page .left-col,article.work-page .right-col{flex:0 0 100%;flex-direction:row;justify-content:center}article.work-page .top-spacing{display:none}article.work-page .marked-image{margin:0 auto}}