/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;line-height:1.15}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{margin:.67em 0;font-size:2em}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{-webkit-text-decoration-skip:objects;background-color:#0000}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}dfn{font-style:italic}mark{color:#000;background-color:#ff0}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){height:0;display:none}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{margin:0;font-family:sans-serif;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring{outline:1px dotted buttontext}[type=button]:-moz-focusring{outline:1px dotted buttontext}[type=reset]:-moz-focusring{outline:1px dotted buttontext}[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;max-width:100%;color:inherit;white-space:normal;padding:0;display:table}progress{vertical-align:baseline;display:inline-block}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template,[hidden]{display:none}@font-face{font-family:Outfit;font-display:swap;src:local(Outfit);src:url(assets/fonts/Outfit-VariableFont_wght.ttf)format("truetype");font-weight:100 1000;font-style:normal}@supports not (font-variation-settings:normal){@font-face{font-family:Outfit;font-display:swap;src:local(Outfit Light),local(Outfit-Light);src:url(assets/fonts/Outfit-Light.ttf)format("truetype");font-weight:300;font-style:normal}@font-face{font-family:Outfit;font-display:swap;src:local(Outfit Regular),local(Outfit-Regular);src:url(assets/fonts/Outfit-Regular.ttf)format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Outfit;font-display:swap;src:local(Outfit Bold),local(Outfit-Bold);src:url(assets/fonts/Outfit-Bold.ttf)format("truetype");font-weight:700;font-style:normal}}:root{--text-color-primary:#222;--text-color-secondary:#414141;--padding-base:1rem;--padding-large:1.5rem;--padding-xlarge:2rem;--padding-container:var(--padding-large,1.5rem);--theme-color-bg:#fcfcfc;--theme-color-primary:#333;--theme-color-secondary:#414141;--theme-color-tertiary:#eee;--theme-border-color:#333;--theme-border-size:1rem;--theme-breakpoint-desktop:992;--theme-content-size:calc(1rem * 75);--theme-font-base:Outfit, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--theme-font-letter-spacing:-.1px;--theme-font-size-h1:2rem;--theme-font-size-h2:1.25rem;--theme-font-size-h3:1rem;--theme-font-size-base:1rem;--theme-font-size-input:1rem;--theme-nav-color:#b6b6b6}@media screen and (width>=40rem){:root{--theme-font-size-h2:1.375rem}}@media screen and (width>=48rem){:root{--theme-font-size-h1:2.5rem;--theme-font-size-h2:1.4375rem;--theme-font-size-input:.9375rem}}@media screen and (width>=62rem){:root{--theme-font-size-h1:3rem;--theme-font-size-h2:1.5rem;--theme-font-size-base:1.125rem;--theme-border-size:1.5rem;--theme-content-size:calc(1rem * 90);--theme-nav-color:#414141;--padding-container:3rem}}@media (prefers-color-scheme:dark){:root{--text-color-primary:#eee;--text-color-secondary:#f8f8f8;--theme-color-bg:#222;--theme-color-primary:#888;--theme-color-secondary:#eee;--theme-color-tertiary:#333;--theme-border-color:#eee;--theme-nav-color:#f8f8f8}}html,body{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-color-primary);font-family:var(--theme-font-base);word-wrap:break-word;background-color:var(--theme-color-bg);font-size:1rem;transition:background .5s ease-out;position:relative}body:after{content:"";z-index:1;border:var(--theme-border-size) solid #fff0;pointer-events:none;opacity:0;transition:opacity .25s ease-in-out;position:fixed;inset:0}.fonts-loaded body{--theme-font-letter-spacing:-.1px}[hidden]{display:none!important}.scroll-lock{width:100vw;height:100vh;overflow:hidden}*,:before,:after{box-sizing:border-box}.site-container{scroll-behavior:smooth}@media screen and (width>=48rem){.site-container{max-width:90rem;margin-left:auto;margin-right:auto}}@media screen and (width>=62rem){body{padding:var(--theme-border-size)}body:after{border-color:var(--theme-border-color);opacity:1}}@media screen and (width>=30rem){.grid{flex-wrap:wrap;justify-content:center;align-items:stretch;display:flex}[data-grid=thirds] .grid__item{flex-basis:100%}[data-grid=half] .grid__item,[data-grid=fourths] .grid__item{flex-basis:50%}}@media screen and (width>=40rem){.grid{column-gap:var(--padding-base);grid-template-columns:repeat(2,1fr);display:grid}.grid.grid--nogap{grid-gap:0}.grid[data-grid=thirds]{grid-template-columns:repeat(3,1fr)}}@media screen and (width>=62rem){.grid{column-gap:var(--padding-large)}.grid[data-grid=fourths]{grid-template-columns:repeat(4,1fr)}}h1,h2,h3,h4,h5,h6{margin:0 0 .5em;padding:0;font-family:inherit;font-weight:700;line-height:1}h1,.h1{color:var(--text-color-secondary);font-size:var(--theme-font-size-h1);letter-spacing:-1px;margin-top:.75em;line-height:1.25}.fonts-loaded h1,.fonts-loaded .h1{letter-spacing:0}h2,.h2{font-size:var(--theme-font-size-h2);text-transform:uppercase;font-weight:300}h3,.h3{text-transform:uppercase;font-size:1rem;line-height:1.2}dl{margin:0}p,li,dt,dd,tr{color:var(--text-color-primary);letter-spacing:-.1px;margin:0 0 1em;padding:0;font-size:1rem;font-weight:300;line-height:1.6}.fonts-loaded p,.fonts-loaded li,.fonts-loaded dt,.fonts-loaded dd,.fonts-loaded tr{letter-spacing:0}b,strong{font-weight:700}.specialty-icon{padding-right:.25em;display:inline-block}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media screen and (width>=48rem){input,input[type=text],input[type=email],textarea{font-size:.9375rem}}@media screen and (width>=62rem){p{font-size:1.125rem}}img,svg{max-width:100%;height:auto;margin:0;padding:0;display:inline-block}.object-fit{object-fit:cover}a{color:currentColor;text-decoration:none;transition:color .15s ease-in-out}a:hover,a:focus,a:active{color:var(--text-color-secondary)}a:focus-visible{outline-offset:3px;outline:2px solid #e73;transition:outline .1s ease-out}@media (prefers-reduced-motion:reduce){a:focus-visible{transition:none}}a:focus:not(:focus-visible){outline:none}@media (prefers-contrast:more){a:focus:not(:focus-visible){box-shadow:0 0 0 2px var(--text-color-secondary);transition:box-shadow .15s ease-out}}@media (prefers-reduced-motion:reduce){a:focus:not(:focus-visible){transition:none}}button{appearance:none;cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;line-height:1}button:focus,button:active{outline:none}button:focus-visible{outline-offset:3px;outline:2px solid #e73;transition:outline .1s ease-out}@media (prefers-reduced-motion:reduce){button:focus-visible{transition:none}}button:focus:not(:focus-visible){outline:none}@media (prefers-contrast:more){button:focus:not(:focus-visible){box-shadow:0 0 0 2px var(--text-color-secondary);transition:box-shadow .15s ease-out}}@media (prefers-reduced-motion:reduce){button:focus:not(:focus-visible){transition:none}}@media (prefers-color-scheme:dark){a:hover{color:var(--text-color-secondary)}}@media (prefers-reduced-motion:reduce){a{transition:none}}nav ul,nav ol{margin:0;padding:0;font-size:1.75rem;list-style-type:none}nav ul li,nav ol li{font-size:inherit;margin:0;line-height:1}.navigation{opacity:0;flex-direction:column;justify-content:center;align-items:center;transition:transform .4s ease-out .1s,opacity .15s ease-in-out .1s;display:flex;transform:translateZ(3.125rem)}.nav-open .navigation{opacity:1;transform:translate(0,0)}.navigation__item+.navigation__item{margin-top:1em}.navigation__link{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 2px;transition:background-size .25s ease-out}.navigation__link:hover,.navigation__link:focus,.navigation__link:active{background-size:100% 2px}.navigation__link{color:var(--theme-nav-color);font-weight:700}@media screen and (width>=40rem){.navigation__item{font-size:2rem}}@media screen and (width>=62rem){.navigation{opacity:1;flex-direction:row;flex-basis:auto;justify-content:flex-start;align-items:center;font-size:1.0625rem;transform:none}.navigation__item{font-size:inherit;margin-right:1rem}.navigation__item+.navigation__item{margin-top:0}}@media (prefers-reduced-motion:reduce){.navigation,.navigation__link{transition:none}}.header{z-index:1;background:linear-gradient(#fcfcfcfc 0%,#fcfcfcf2 75% 100%);justify-content:flex-end;height:3.75rem;margin:0 auto;display:flex;position:sticky;top:0}.header:after{content:"";z-index:-1;pointer-events:none;opacity:0;background:linear-gradient(#000 0%,#000000eb 70%,#000000de 80%,#000000a6 100%);width:100vw;height:100vh;transition:opacity .35s ease-in-out,transform .5s ease-in-out;position:fixed;top:0;left:0;transform:scale(.5)}.nav-open .header{height:100vh}.nav-open .header:after{opacity:1;transform:scale(3)}.nav-open .header .header__nav{visibility:visible;z-index:0;pointer-events:all;opacity:1;width:100%}.header__body{flex-direction:column;justify-content:space-evenly;align-items:center;width:100%;height:100%;display:flex}.header__nav{visibility:hidden;z-index:-1;perspective:1000px;pointer-events:none;opacity:0;transition:opacity .35s ease-in-out}@media screen and (width>=62rem){.header{top:var(--theme-border-size);justify-content:center;align-items:center}.header__body{flex-direction:row;justify-content:flex-end;height:auto}.header__nav{visibility:visible;z-index:0;pointer-events:all;opacity:1;width:auto;height:auto;position:static;transform:none}.header__nav:last-of-type{padding-right:var(--padding-container)}}@media screen and (width>=95rem){.header__nav:last-of-type{padding-right:0}}@media (prefers-color-scheme:dark){.header{background-color:#222222f0;background-image:none}@supports ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#222222d9}}}@media (prefers-reduced-motion:reduce){.header{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#333}.header__nav,.nav-open .header:after{transition:none}}.footer__link{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 2px;transition:background-size .25s ease-out}.footer__link:hover,.footer__link:focus,.footer__link:active{background-size:100% 2px}.footer__link{left:calc(var(--padding-large));margin-bottom:var(--padding-base);display:inline-block;position:sticky;bottom:0}@media screen and (width>=62rem){.footer__link{left:calc(3rem + var(--theme-border-size))}}.hamburger{appearance:none;z-index:1;color:#333;background-color:#0000;border:0;flex-direction:column;justify-content:center;align-items:center;width:3.75rem;height:3.75rem;margin:0;padding:0;display:flex}.nav-open .hamburger{color:#fff;position:absolute;top:0;right:0}.hamburger:active{background:#fff0}.hamburger:focus,.hamburger:active{outline:none}@media (prefers-contrast:more){.hamburger:focus,.hamburger:active{box-shadow:0 0 0 2px var(--text-color-secondary);transition:box-shadow .15s ease-out}}@media (prefers-reduced-motion:reduce){.hamburger:focus,.hamburger:active{transition:none}}.hamburger:focus,.hamburger:active{outline-offset:-.0625rem}.hamburger:focus:not(:focus-visible){outline:none}@media (prefers-contrast:more){.hamburger:focus:not(:focus-visible){box-shadow:0 0 0 2px var(--text-color-secondary);transition:box-shadow .15s ease-out}}@media (prefers-reduced-motion:reduce){.hamburger:focus:not(:focus-visible){transition:none}}.hamburger:focus-visible{outline-offset:3px;outline:2px solid #e73;transition:outline .1s ease-out}@media (prefers-reduced-motion:reduce){.hamburger:focus-visible{transition:none}}.hamburger__icon{flex-direction:column;width:2rem;margin-bottom:0;display:flex;position:relative}.hamburger__line{transform-origin:0 0;background-color:var(--text-color-secondary);width:100%;height:.125rem;transition:transform .15s ease-out}.hamburger__line+.hamburger__line{margin-top:.375rem}.hamburger__line:nth-of-type(2){transition:opacity .1s ease-in,transform .15s ease-in-out}.hamburger__line:nth-of-type(3){transform-origin:0 0}.nav-open .hamburger__line{background-color:#888}.nav-open .hamburger__line:first-of-type{transform:translate(.0625rem,-.1875rem)rotate(45deg)}.nav-open .hamburger__line:nth-of-type(2){opacity:0;transform:translate(.25rem)}.nav-open .hamburger__line:nth-of-type(3){transform:translateY(.25rem)rotate(-45deg)}.hamburger__label{clip:rect(0 0 0 0);white-space:nowrap;text-transform:uppercase;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media screen and (width>=62rem){.hamburger{display:none}}@media (prefers-color-scheme:dark){.nav-open .hamburger__line{background-color:#b6b6b6}}.h-line,.v-line{z-index:1;pointer-events:none;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.h-line:before,.h-line:after,.v-line:before,.v-line:after{content:"";display:block;position:absolute}.card:hover .h-line:before,.card:hover .h-line:after,.card:focus .h-line:before,.card:focus .h-line:after,.card:hover .v-line:before,.card:hover .v-line:after,.card:focus .v-line:before,.card:focus .v-line:after,.card:focus-within .h-line:before,.card:focus-within .h-line:after,.card:focus-within .v-line:before,.card:focus-within .v-line:after{transform:none}.h-line:before,.h-line:after{width:calc(100% - 2rem);height:1px;transition:transform .6s ease-in;transform:scaleX(0)}.h-line:before{transform-origin:0;background:linear-gradient(90deg,#969696 0%,#969696d9 70%);top:1rem;left:1rem}.h-line:after{transform-origin:100%;background:linear-gradient(270deg,#969696 0%,#969696d9 70%);bottom:1rem;right:1rem}.v-line:before,.v-line:after{width:1px;height:calc(100% - 2rem);transition:transform .65s ease-out .2s;transform:scaleY(0)}.v-line:before{transform-origin:bottom;background:linear-gradient(#969696d9 30%,#969696 100%);bottom:1rem;left:1rem}.v-line:after{transform-origin:top;background:linear-gradient(#969696 0%,#969696d9 70%);top:1rem;right:1rem}.card{height:0;margin:0;padding-bottom:65%;display:block;position:relative}.card__back{z-index:-1;width:100%;height:100%;padding:var(--padding-base,1rem);text-align:center;backface-visibility:hidden;opacity:0;background:linear-gradient(#fffc 0%,#ffffff8c 100%);flex-direction:column;justify-content:center;align-items:center;transition:opacity .25s ease-in-out,transform .2s ease-in-out;display:flex;position:absolute;top:0;left:0;transform:scale(.95)}.card__back a{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:background-size .25s ease-out}.card__back a:hover,.card__back a:focus,.card__back a:active{background-size:100% 1px}.card:hover .card__back,.card:focus .card__back,.card:focus-within .card__back{z-index:0;opacity:1;transform:scale(1.001)}.card__front{z-index:0;opacity:.8;display:block}@media (prefers-color-scheme:dark){.card__front{opacity:.7}}@media (prefers-contrast:more){.card__front{opacity:1}}.card__image{object-fit:cover;object-position:center top;width:100%;height:100%;transition:opacity .1s ease-in-out,transform .1s ease-in-out,filter .3s ease-out;position:absolute;top:0;left:0}.card:hover .card__image,.card:focus .card__image{opacity:.2}@media (prefers-contrast:more){.card:hover .card__image,.card:focus .card__image{opacity:.07}}.card:focus-within .card__image{opacity:0}@supports (filter:saturate(0)){@media not (prefers-contrast:more){.card__image{filter:saturate(.8)}}}@media screen and (width>=40rem){.h-line,.v-line{opacity:0}}@media screen and (width>=62rem){.h-line,.v-line{opacity:1}}@media (prefers-color-scheme:dark){.card__back{background-color:#1e1e1ed9;background-image:none}.card__back a{color:var(--text-color-primary)}}@media (prefers-reduced-motion:reduce){.h-line:before,.h-line:after,.v-line:before,.v-line:after,.card__back,.card__back a{transition:none}}.social{flex-basis:25%;justify-content:center;align-items:center;display:flex}.social__item{color:#888;flex-basis:4rem;justify-content:center;align-items:stretch;display:inline-flex}.social__link{color:inherit;align-items:center;padding:.5rem;transition:color .2s ease-in-out;display:inline-flex}.social__link:hover,.social__link:focus,.social__link:active{color:#eee}.social__link svg{pointer-events:none;fill:currentColor;flex-direction:column;justify-content:center;align-items:center;width:1em;max-width:none;height:1em;display:inline-flex}@media (prefers-contrast:more){.social__link{color:var(--text-color-secondary)}}@media screen and (width>=62rem){.social{flex-basis:auto;justify-content:flex-end;font-size:1.25rem}.social__item{flex-basis:auto;margin-left:1rem}.social__link{padding:0}.social__link:hover,.social__link:focus,.social__link:active{color:var(--text-color-secondary)}}@media (prefers-reduced-motion:reduce){.social__link{transition:none}}.intro:target{scroll-padding-top:calc(var(--theme-border-size) + 3.75rem)}.intro{padding-left:var(--padding-container);padding-right:var(--padding-container)}.intro__title{font-weight:300}.intro__lead-in{font-weight:700;display:block}@media screen and (width>=95rem){.intro{padding-left:0;padding-right:0}}@media (prefers-color-scheme:dark){.intro{color:#f8f8f8}}.section{margin-top:2.75rem;padding-top:1rem}.section__heading{z-index:1;top:calc(3.75rem / 2 - var(--theme-font-size-h2) / 2);left:calc(var(--padding-large));margin-bottom:0;display:inline-block;position:sticky}.scroll-lock .section__heading{z-index:-1}@media screen and (width>=62rem){.section__heading{top:calc(3.75rem / 2 - var(--theme-font-size-h2) / 2 + var(--theme-border-size));left:calc(3rem + var(--theme-border-size))}}.skills{max-width:var(--theme-content-size);padding-left:var(--padding-container);padding-right:var(--padding-container)}.skills__header{align-items:center;display:flex}.skills__icon{height:var(--theme-font-size-h2);width:var(--theme-font-size-h2);padding-right:.5em;display:inline-block}.skills__item{padding-top:var(--padding-large)}@media screen and (width>=95rem){.skills{padding-left:0;padding-right:0}}.work{margin-top:var(--padding-large)}.work__item{height:100%}.work__title{text-align:center;padding:0 .25rem}.work__role{margin-top:var(--padding-base);font-size:.75rem}.work__tech{justify-content:center;align-items:center;margin:0;padding:0;list-style-type:none;display:flex}.work__tech-item+.work__tech-item{margin-left:.25em}.work__icon{opacity:.4;width:calc(1rem + .5vmin);height:calc(1rem + .5vmin);display:inline-block}@media (prefers-contrast:more){.work__icon{opacity:1}}@media screen and (width>=40rem){.work__role{font-size:.875rem}}.clients{margin-top:var(--padding-large)}.clients__item{padding-top:var(--padding-large);padding-bottom:var(--padding-large);flex-direction:column;justify-content:center;align-items:center;display:flex}.clients__image{aspect-ratio:9/3;object-fit:contain;opacity:.75;flex-direction:column;justify-content:center;align-items:center;display:flex}@supports (filter:grayscale(100%)){.clients__image{filter:grayscale()}}@media (prefers-color-scheme:dark){@supports (filter:grayscale(100%)){.clients__image{filter:grayscale()invert()}}}.stats{max-width:var(--theme-content-size);padding-left:var(--padding-container);padding-right:var(--padding-container)}.stats__item{padding-top:var(--padding-large);padding-bottom:var(--padding-large)}.stats__heading{text-transform:uppercase;margin-bottom:.5em;font-size:1rem;font-weight:400}.stats__text{text-align:center;background-color:var(--theme-color-tertiary);margin:0;padding:3rem;font-size:1.375rem}@media screen and (width>=48rem){.stats__heading{text-align:center}}@media screen and (width>=95rem){.stats{padding:0}}
