@font-face{font-display:swap;font-family:ibm plex mono;font-style:normal;font-weight:300;src:url(/fonts/ibm-plex-mono-v19-latin-300.woff2)format("woff2")}@font-face{font-display:swap;font-family:ibm plex mono;font-style:italic;font-weight:300;src:url(/fonts/ibm-plex-mono-v19-latin-300italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:ibm plex mono;font-style:normal;font-weight:400;src:url(/fonts/ibm-plex-mono-v19-latin-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:ibm plex mono;font-style:italic;font-weight:400;src:url(/fonts/ibm-plex-mono-v19-latin-italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:ibm plex mono;font-style:normal;font-weight:500;src:url(/fonts/ibm-plex-mono-v19-latin-500.woff2)format("woff2")}@font-face{font-display:swap;font-family:ibm plex mono;font-style:italic;font-weight:500;src:url(/fonts/ibm-plex-mono-v19-latin-500italic.woff2)format("woff2")}::selection{background-color:#e9ff32}:root{font-size:18px}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}*,*::before,*::after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;text-size-adjust:100%}body{background-color:#f8f8f8;color:#000}body,h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dt,dd,blockquote,figure{margin:0;padding:0;font-family:ibm plex mono,helvetica,arial,sans-serif;font-size:18px;font-weight:400;line-height:1.5}ul,ol{list-style-type:none}figure img{display:block;max-width:100%;height:auto}pre{margin:0;font-family:ibm plex mono,consolas,monaco,andale mono,ubuntu mono,monospace}hr{overflow:visible;height:0;margin:0;box-sizing:content-box;border:none;border-top:solid 2px #000}img{border-style:none}a{color:#000;text-decoration:none}strong,b{font-weight:400}cite,em,i{font-style:normal}code{font-family:ibm plex mono,consolas,monaco,andale mono,ubuntu mono,monospace}.button,button{display:inline-block;padding:8.5px 16px;outline-width:0;white-space:nowrap;vertical-align:middle;background-color:transparent;color:#000;text-align:center;text-decoration:underline;font-family:ibm plex mono,helvetica,arial,sans-serif;font-weight:500;font-size:18px;line-height:1.5;cursor:pointer}.button.button--fill,button.button--fill{color:#fff;background-color:#000;text-decoration:none}.button.button--fill:focus,button.button--fill:focus{outline:0}.button.button--fill:hover,.button.button--fill:active,button.button--fill:hover,button.button--fill:active{background-color:transparent;outline:solid 2px #000;outline-offset:-2px;color:#000}.button.button--outline,button.button--outline{color:#000;background-color:transparent;outline:solid 1px #000;outline-offset:-1px;text-decoration:none}.button.button--outline:hover,.button.button--outline:active,button.button--outline:hover,button.button--outline:active{outline:solid 2px #000;outline-offset:-2px}.button.button--lg,button.button--lg{padding:13px 24px;font-size:24px}.button.button--md,button.button--md{padding:8.5px 16px;font-size:18px}.button.button--sm,button.button--sm{padding:8px 14px;font-size:14px}.button.button--block,button.button--block{display:block;width:100%}.button.button--disabled,button.button--disabled{pointer-events:none;opacity:.25}.container,.container-sm,.container-md,.container-lg,.container-xl,.container-xxl{width:100%;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px}.container [class^=container],.container-sm [class^=container],.container-md [class^=container],.container-lg [class^=container],.container-xl [class^=container],.container-xxl [class^=container]{padding-left:0;padding-right:0}.container,.container-xxl{max-width:1320px}.container-sm{max-width:540px}.container-md{max-width:720px}.container-lg{max-width:960px}.container-xl{max-width:1140px}.grid{display:grid;gap:32px}@media(min-width:576px){.grid.grid--2col{grid-template-columns:repeat(2,1fr)}}@media(min-width:576px){.grid.grid--3col{grid-template-columns:repeat(3,1fr)}}@media(min-width:576px){.grid.grid--4col{grid-template-columns:repeat(2,1fr)}}@media(min-width:992px){.grid.grid--4col{grid-template-columns:repeat(4,1fr)}}.highlight pre{padding:16px}.pager ul{display:flex;justify-content:center;gap:16px}.paginator ul{display:flex;justify-content:center;gap:16px}@media(max-width:575px){.paginator li:not(.paginator__prev):not(.paginator__next){display:none}}.paginator__elipsis{padding-top:16px}.prose>h1,.prose>h2,.prose>h3,.prose>h4,.prose>h5,.prose>h6,.prose>p,.prose>ul,.prose>ol,.prose>dl,.prose>blockquote,.prose>figure,.prose>div{margin-bottom:32px}.prose>:last-child{margin-bottom:0}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{line-height:1.2}.prose h1,.prose h2,.prose h3{font-weight:300}.prose h1{font-size:32px}.prose h2{font-size:28px}.prose h3{font-size:24px}.prose h4{font-size:20px}.prose h5{font-size:18px}.prose h6{font-size:16px}.prose ul{list-style-type:square;padding-left:16px}.prose blockquote{padding:32px;background-color:#fff;border-left:solid 2px #000}.prose blockquote p{margin-bottom:32px}.prose blockquote p:last-of-type{margin-bottom:0}.prose blockquote footer{padding-top:32px}.prose a{text-decoration:underline}.prose strong,.prose b{font-weight:500}.prose cite,.prose em,.prose i{font-style:italic}.tag-list{display:flex;gap:8px}.tag-list.tag-list--vertical{flex-direction:column}.tag{display:inline-block;padding:2px 10px;border:solid 1px #000;border-radius:999px;font-size:14px}a.tag:hover{background-color:#000;color:#fff}.main-header{padding-top:80px;padding-bottom:80px;border-bottom:dashed 1px #000}.main-header [class^=container]{display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:48px}@media(min-width:992px){.main-header [class^=container]{flex-direction:row}}.main-logo{display:flex;flex-direction:column;align-items:center;gap:32px;text-align:center}.main-logo svg{display:block;width:50px;height:44px}.main-logo h1,.main-logo h2{line-height:1.2}.main-logo h1{font-size:28px;font-weight:300}@media(min-width:576px){.main-logo{flex-direction:row;text-align:left}}@media(min-width:768px){.main-logo{gap:32px}.main-logo svg{width:80px;height:70px}.main-logo h1{font-size:32px}}.main-nav ul{display:flex;gap:24px}.main-nav a{display:block}.main-nav a:hover{border-bottom:dashed 1px #000}@media(min-width:576px){.main-nav ul{gap:32px}}.main-nav .main-nav--selected a{border-bottom:solid 2px #000}.main-content{padding-top:80px;padding-bottom:80px}.main-footer{padding-top:80px;padding-bottom:80px;background-color:#000;color:#fff;text-align:center}.main-footer h3{font-size:32px;font-weight:300}.main-footer a{color:#fff}.main-footer a:hover{border-bottom:dashed 1px #fff}@media(min-width:576px){.main-footer h3{font-size:64px;font-weight:300}.main-footer p{font-size:24px}}@media(min-width:992px){.main-footer{text-align:left}}.home{display:flex;flex-direction:column;gap:80px}.intro p{font-size:24px;font-weight:300}@media(min-width:768px){.intro{padding-top:32px;padding-bottom:32px}.intro p{font-size:28px;text-align:center}}@media(min-width:992px){.intro p{font-size:32px}}.latest-update{padding-top:80px;border-top:solid 2px #000}.latest-update>[class^=container]{display:flex;flex-direction:column;gap:80px}.latest-update__more{padding-top:80px;border-top:dashed 1px #000;text-align:center}.project-list{display:flex;flex-direction:column;gap:32px}.project-list__heading{text-align:center}.project-list__grid{display:grid;gap:32px}@media(min-width:768px){.project-list{gap:64px}.project-list__heading{font-size:24px}.project-list__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:64px}}.project-link{position:relative;border:solid 1px #000}.project-link a{display:block}.project-link a:hover+figcaption{opacity:1}.project-link figcaption{pointer-events:none;display:flex;flex-direction:column;justify-content:center;text-align:center;position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.85);color:#fff;opacity:0;font-size:24px;transition:opacity .15s ease-in-out}.project{display:flex;flex-direction:column;gap:80px}.project img{border:solid 1px rgba(0,0,0,.1);box-shadow:0 0 32px rgba(0,0,0,4%)}.project__title h2{font-size:28px;font-weight:300}.project__title h5{font-size:14px}@media(min-width:576px){.project__pager .button{padding:13px 24px;font-size:24px}}.project-blurb{padding:48px 0}.project-caption{text-align:center}.project-caption p{display:inline-block;padding:12px 16px;border-radius:999px;background-color:#fff;font-size:14px}@media(min-width:576px){.project-caption p{padding:4px 16px}}.project-card{border:solid 1px rgba(0,0,0,.1);box-shadow:0 0 32px rgba(0,0,0,4%);display:grid;background-color:#fff}.project-card img{border:none;box-shadow:none}.project-card .project-card__media{border-bottom:solid 1px rgba(0,0,0,.1)}.project-card .project-card__content{align-self:center;padding:32px}@media(min-width:992px){.project-card{grid-template-columns:1fr 1fr}.project-card .project-card__media{border-bottom:none;border-right:solid 1px rgba(0,0,0,.1)}}@media(min-width:1200px){.project-card{grid-template-columns:2fr 1fr}}.cv{display:flex;flex-direction:column;gap:80px}.about figure{margin-top:-104px;margin-bottom:48px}.about figure img{display:block;margin:0 auto;width:200px;clip-path:circle(50% at 50% 50%)}.quote-list{display:flex;flex-direction:column;gap:32px}.quote-list__heading{font-size:28px;font-weight:300}.job-list{display:flex;flex-direction:column;gap:32px}.job-list .job{margin-bottom:48px}.job-list>:last-child{margin-bottom:0}.job-list__heading{font-size:28px;font-weight:300}.job-list__timeline{margin-bottom:32px}@media(max-width:991px){.job-list__timeline{display:none}}.job{display:flex;flex-direction:column;gap:32px}.job__logo img{max-width:none;width:200px}.job__description h2{margin-bottom:8px;font-size:20px}.job__description h3{margin-bottom:8px;font-size:32px;font-weight:300;line-height:1.2}.job__description h4{margin-bottom:32px;font-size:18px}@media(min-width:768px){.job{flex-direction:row;gap:80px;border-top:solid 2px #000}.job__description{padding-top:80px}}.update-list{display:flex;flex-direction:column;gap:80px}.update-list>*{padding-bottom:80px;border-bottom:dashed 1px #000}.update-list>:last-child{padding-bottom:0;border-bottom:none}.update-list__heading{padding-bottom:0;border-bottom:none;font-size:24px}.update{display:flex;flex-direction:column;gap:32px}.update__date{font-size:14px}.update__date a:hover{border-bottom:dashed 1px #000}.update__tag-list{margin-top:-24px}.update--featured .update__date{order:-1;font-size:24px}.update--featured .update__tag-list{margin-top:0}.update-article{display:grid;gap:32px}@media(min-width:768px){.update-article{grid-template-columns:1fr 2fr}}.four0four{display:flex;flex-direction:column;align-items:center;gap:32px}.four0four h2{font-size:28px;font-weight:300;text-align:center}