@charset "UTF-8";body{margin:0}blockquote,pre,ol,ul,figure{padding:0;margin:0}img{max-width:100%;display:block;height:auto;border:none}article,aside,figure,footer,header,aside,main,nav{display:block}*,*:before,*:after{box-sizing:border-box}iframe{border:none}:root{--white: #fff;--light: #f9fafb;--dark: #2f2831;--dark-hover: #1f1821;--mid: #eaeef2;--mid-blue: #607288;--gradient-blue: hsl(222, 100%, 83%);--gradient-green: hsl(191, 50%, 53%);--gradient-overlay-blue: hsl(222, 100%, 25%);--gradient-overlay-green: hsl(161, 100%, 30%);--success: #2c753c;--failure: #9a3730;--gradient: linear-gradient(var(--gradient-blue), var(--gradient-green))}:root{--fluid-min-width: 320;--fluid-max-width: 750;--fluid-min-size: 17;--fluid-max-size: 24;--fluid-min-ratio: 1.1;--fluid-max-ratio: 1.2;--fluid-screen: 100vw;--fluid-bp: calc(
    (var(--fluid-screen) - ((var(--fluid-min-width) / 16) * 1rem)) /
      ((var(--fluid-max-width) / 16) - (var(--fluid-min-width) / 16))
  )}@media screen and (min-width:750px){:root{--fluid-screen: calc(var(--fluid-max-width) * 1px)}}:root{--fluid-max-negative: (1 / var(--fluid-max-ratio) / var(--fluid-max-ratio));--fluid-min-negative: (1 / var(--fluid-min-ratio) / var(--fluid-min-ratio));--fluid-min-scale--2: var(--fluid-min-scale--1) * var(--fluid-min-ratio) * var(--fluid-min-negative);--fluid-max-scale--2: var(--fluid-max-scale--1) * var(--fluid-max-ratio) * var(--fluid-max-negative);--fluid-min-size--2: (var(--fluid-min-size) * var(--fluid-min-scale--2)) / 16;--fluid-max-size--2: (var(--fluid-max-size) * var(--fluid-max-scale--2)) / 16;--step--2: calc(((var(--fluid-min-size--2) * 1rem) + (var(--fluid-max-size--2) - var(--fluid-min-size--2)) * var(--fluid-bp)));--fluid-min-scale--1: var(--fluid-min-ratio) * var(--fluid-min-negative);--fluid-max-scale--1: var(--fluid-max-ratio) * var(--fluid-max-negative);--fluid-min-size--1: (var(--fluid-min-size) * var(--fluid-min-scale--1)) / 16;--fluid-max-size--1: (var(--fluid-max-size) * var(--fluid-max-scale--1)) / 16;--step--1: calc(((var(--fluid-min-size--1) * 1rem) + (var(--fluid-max-size--1) - var(--fluid-min-size--1)) * var(--fluid-bp)));--fluid-min-scale-0: var(--fluid-min-ratio);--fluid-max-scale-0: var(--fluid-max-ratio);--fluid-min-size-0: (var(--fluid-min-size)) / 16;--fluid-max-size-0: (var(--fluid-max-size)) / 16;--step-0: calc(((var(--fluid-min-size-0) * 1rem) + (var(--fluid-max-size-0) - var(--fluid-min-size-0)) * var(--fluid-bp)));--fluid-min-scale-1: var(--fluid-min-scale-0) * var(--fluid-min-ratio);--fluid-max-scale-1: var(--fluid-max-scale-0) * var(--fluid-max-ratio);--fluid-min-size-1: (var(--fluid-min-size) * var(--fluid-min-scale-0)) / 16;--fluid-max-size-1: (var(--fluid-max-size) * var(--fluid-max-scale-0)) / 16;--step-1: calc(((var(--fluid-min-size-1) * 1rem) + (var(--fluid-max-size-1) - var(--fluid-min-size-1)) * var(--fluid-bp)));--fluid-min-scale-2: var(--fluid-min-scale-1) * var(--fluid-min-ratio);--fluid-max-scale-2: var(--fluid-max-scale-1) * var(--fluid-max-ratio);--fluid-min-size-2: (var(--fluid-min-size) * var(--fluid-min-scale-1)) / 16;--fluid-max-size-2: (var(--fluid-max-size) * var(--fluid-max-scale-1)) / 16;--step-2: calc(((var(--fluid-min-size-2) * 1rem) + (var(--fluid-max-size-2) - var(--fluid-min-size-2)) * var(--fluid-bp)));--fluid-min-scale-3: var(--fluid-min-scale-2) * var(--fluid-min-ratio);--fluid-max-scale-3: var(--fluid-max-scale-2) * var(--fluid-max-ratio);--fluid-min-size-3: (var(--fluid-min-size) * var(--fluid-min-scale-2)) / 16;--fluid-max-size-3: (var(--fluid-max-size) * var(--fluid-max-scale-2)) / 16;--step-3: calc(((var(--fluid-min-size-3) * 1rem) + (var(--fluid-max-size-3) - var(--fluid-min-size-3)) * var(--fluid-bp)));--fluid-min-scale-4: var(--fluid-min-scale-3) * var(--fluid-min-ratio);--fluid-max-scale-4: var(--fluid-max-scale-3) * var(--fluid-max-ratio);--fluid-min-size-4: (var(--fluid-min-size) * var(--fluid-min-scale-3)) / 16;--fluid-max-size-4: (var(--fluid-max-size) * var(--fluid-max-scale-3)) / 16;--step-4: calc(((var(--fluid-min-size-4) * 1rem) + (var(--fluid-max-size-4) - var(--fluid-min-size-4)) * var(--fluid-bp)));--fluid-min-scale-5: var(--fluid-min-scale-4) * var(--fluid-min-ratio);--fluid-max-scale-5: var(--fluid-max-scale-4) * var(--fluid-max-ratio);--fluid-min-size-5: (var(--fluid-min-size) * var(--fluid-min-scale-4)) / 16;--fluid-max-size-5: (var(--fluid-max-size) * var(--fluid-max-scale-4)) / 16;--step-5: calc(((var(--fluid-min-size-5) * 1rem) + (var(--fluid-max-size-5) - var(--fluid-min-size-5)) * var(--fluid-bp)))}@font-face{font-family:avenir lt;src:url(/fonts/1475520/AvenirLT-Book.woff2) format("woff2"),url(/fonts/1475520/9bdf0737-f98c-477a-9365-ffc41b9d1285.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:avenir lt;src:url(/fonts/1475544/ccd17c6b-e7ed-4b73-b0d2-76712a4ef46b-subset.woff2) format("woff2"),url(/fonts/1475544/ccd17c6b-e7ed-4b73-b0d2-76712a4ef46b.ttf) format("truetype");font-weight:700;font-display:swap;unicode-range:U+20-7E}@font-face{font-family:avenir lt;src:url(/fonts/1475520/AvenirLT-BookOblique.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+20-7E}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--dark);font:var(--step-0)/1.79 avenir lt,avenir,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,sans-serif}a:not(.button){color:inherit;transition:300ms color}a:not(.button):hover{color:var(--mid-blue)}@supports(-webkit-text-fill-color:transparent){a:not(.button):hover{background-image:-webkit-gradient(linear,0% 0%,100% 100%,from(var(--gradient-blue)),to(var(--gradient-green)));-webkit-background-clip:text;-webkit-text-fill-color:transparent}a:not(.button):hover::selection{-webkit-text-fill-color:var(--dark)}}a.footnote-ref,.footnote-ref a{text-decoration:none;font-size:var(--step--2);color:var(--gradient-green);font-weight:700}p,ul,ol{margin:0 0 1.2em}h1{font-size:var(--step-3);margin:0 0 .5em;line-height:1.3}@supports(-webkit-text-fill-color:transparent){h1{background-image:-webkit-gradient(linear,0% 0%,100% 100%,from(var(--gradient-blue)),to(var(--gradient-green)));-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}h1::selection{-webkit-text-fill-color:var(--dark)}}h2{font-size:var(--step-2);line-height:1.3;margin:1em 0}h3{font-size:var(--step-1);line-height:1.5;margin:1em 0 0}h4{line-height:1.3;margin:1em 0 0;font-size:var(--step-0)}.center{text-align:center}blockquote{font-weight:700;font-size:var(--step-1);position:relative;border-bottom:2px solid var(--mid);border-top:2px solid var(--mid);padding:1em 0;margin:1.85em 0;text-align:center}blockquote :last-child{margin-bottom:0}blockquote.longquote{font-size:var(--step-0);text-align:left;font-weight:400;padding-left:1.5em;font-style:italic;color:var(--mid-blue)}blockquote.longquote:before{content:'“';position:absolute;font-size:var(--step-4);font-weight:700;left:-.25rem;top:.6rem}blockquote.longquote cite{font-weight:700;display:block;margin-top:.5rem;font-style:normal;font-size:var(--step--1)}li{line-height:1.5}li+li{margin-top:.8em}code{font-size:var(--step--1)}pre{max-width:100%;overflow:auto;margin:1.85em 0;padding:1.2em;line-height:1.3}pre,pre code{font-size:var(--step--2)}p code{background-color:var(--mid);font-size:var(--step--2);padding:.25em}h2+.highlight pre,h3+.highlight pre{margin-top:1em}.p-name{text-align:center}@media(min-width:750px){.p-name{margin:1em 0 1.5em}}.content img{margin:1em auto}.content h2{margin-bottom:.25em}.content figcaption{display:block;margin:-1.25em 0 2rem}.content h3+ul{margin-top:1rem}ul ul,ol ol{padding:1.5em 1em 0}figcaption{font-size:var(--step--2);padding:.2em 0 0;text-align:right}.footnotes{font-size:var(--step--1)}body{background:var(--light)}::selection{background:var(--gradient-blue)}.main{min-height:calc(100vh - 7em)}.wrap{max-width:1180px;padding-left:20px;padding-right:20px;margin-left:auto;margin-right:auto}@media(min-width:500px){.wrap{width:90%}}.insulate{padding-top:1.666em;padding-bottom:1.666em}.top,.low{letter-spacing:2px;font-weight:700;box-shadow:0 2px 4px rgba(0,0,0,.06);background:var(--white);font-size:var(--step--2);padding:1.75em 0;position:relative;z-index:10}.top a,.low a{text-decoration:none;margin-left:1em}.top .wrap,.low .wrap{width:100%;display:flex;justify-content:flex-end;flex-wrap:wrap}.top a:first-child,.low a:first-child{margin:0 auto 0 0}@media(min-width:350px){.top a,.low a{margin-left:20px}}@media(min-width:450px){.top a,.low a{margin-left:40px}}hr{margin:1.8em 0;border:none;border-top:2px solid var(--mid)}.button{margin:1rem auto;font-weight:700;font-size:var(--step--2);letter-spacing:1px;text-decoration:none;background:var(--dark);transition:300ms background;padding:1rem 2rem;text-align:center;color:var(--white);display:inline-block;border:none;min-width:200px;cursor:pointer;width:auto}.button:hover{background:var(--dark-hover);color:var(--white)}.button.button--success{background:var(--success)}.button.button--failure{background:var(--failure)}.password .password__result{display:block;margin:1.8em 0 1em}.password .button{min-width:auto}.opening{position:relative;text-align:center}.opening .wrap{background:var(--light)}.opening .opening__content{max-width:800px;margin:0 auto;padding:1.666em 0}.opening figure{background:var(--gradient);margin:0 auto 20px;max-width:461px;padding:18px}.opening figure .home-image__cover{position:relative;box-shadow:0 0 30px rgba(0,0,0,.15)}.opening figure .home-image__cover img{filter:saturate(0)}.opening figure .home-image__cover:after{background-image:linear-gradient(90deg,var(--gradient-overlay-blue),var(--gradient-overlay-green));position:absolute;opacity:.4;content:'';height:100%;width:100%;left:0;top:0}@supports(mix-blend-mode:overlay){.opening figure .home-image__cover:after{mix-blend-mode:screen;opacity:1}}@media(min-width:500px){.opening figure{display:none}}@media(min-width:1000px){.opening .wrap{width:100%;display:flex;padding:0;justify-content:space-between;align-items:stretch;overflow:hidden}.opening .opening__content{--push: 8rem;text-align:left;padding:3.5em 0 3.5em 20px;max-width:700px;width:55%;margin:0 auto 0 var(--push);position:relative;z-index:1}.opening .opening__content:before{position:absolute;content:'';height:100%;z-index:0;width:100px;right:calc(100% + var(--push));top:0}.opening figure{background-image:linear-gradient(to left,#f9fafb,rgba(249,250,251,0)),var(--gradient);background-size:200px 100%,auto;background-repeat:no-repeat,repeat-x;background-position:100% 0;display:flex;flex-direction:column;justify-content:center;order:-1;width:340px;max-width:none;margin:0;z-index:2}.opening .home-image__cover{transform:translateX(-25px) scale(0.875);width:460px;max-width:none}.opening::after{background:var(--gradient);position:absolute;content:'';height:100%;z-index:-1;width:50%;left:0;top:0}}.work{background:var(--mid);padding:1.666em 0 0}.work article:nth-child(odd){background:var(--light)}.work article:nth-child(odd) figure{order:-1}@media(min-width:850px){.work .p-name{margin-bottom:0}}.feed{background:var(--mid)}.side-projects{box-shadow:0 -2px 4px rgba(0,0,0,.1);background:#fff;position:relative;z-index:3;padding-bottom:30px}.side-projects .projects{display:grid;grid-template-columns:repeat(1,1fr);grid-gap:60px;color:var(--dark);pointer-events:none}@media screen and (min-width:50em){.side-projects .projects{grid-template-columns:repeat(2,1fr)}}.side-projects .projects>*{background:var(--mid);display:block;transition:300ms box-shadow,300ms opacity,300ms transform;box-shadow:0 0 30px rgba(0,0,0,.1);pointer-events:auto}.side-projects .projects>*:hover{box-shadow:0 0 30px rgba(0,0,0,.2);transform:scale(1.05)}.side-projects .projects:hover>:not(:hover){opacity:.3}.side-projects .projects h3{margin-top:0}.side-projects .projects a{text-decoration:none}.side-projects .projects p{font-size:var(--step--1);margin-bottom:0;opacity:.7}.side-projects .projects .button{margin-bottom:0}.side-projects .projects .project-content{border-top:1px solid var(--mid);padding:30px}.blog{background:var(--mid)}.blog-title{margin-bottom:0}.blog-header{margin-bottom:1.85em}.post{margin:0 0 60px}.post a{text-decoration:none}.post--article{background:var(--light);position:relative;padding:1.666em;display:flex;align-items:center}.post--article a{display:block}.post--article h2{margin:0}.post--article h2 a:visited{color:var(--mid-blue)}.categories{position:absolute;font-size:var(--step--2);font-weight:700;letter-spacing:1px;left:0;top:50%;transform-origin:0 50%;transform:translateY(-50%) rotate(-90deg) translateX(-50%);text-align:center;line-height:1.2}.posts{grid-gap:30px;display:grid;max-width:750px;margin:0 auto}@supports(display:grid){.posts{max-width:none;margin:0}}.posts>*{margin:0}@media(min-width:850px){.posts{grid-template-columns:1fr 1fr;grid-auto-flow:dense;grid-gap:60px}.posts .post--video{grid-column:1/-1;display:grid;grid-template-columns:1fr 60px 1fr;grid-row:auto auto;align-items:center}.posts .post--video>*{grid-column:3/4;align-self:start}.posts .post--video>div{align-self:center;grid-column:1/2;grid-row:span 2;order:-1}.posts .post--video h2{margin:0;align-self:end}.posts .post--video h2:nth-last-child(2){grid-row:1/3;align-self:center}.posts .post--image{grid-row:span 2;display:flex;justify-content:center;flex-direction:column}.posts .post--image.post--image--large{grid-row:span 3}}.load-more{padding:60px 0}.post--quote{background:rgba(0,0,0,.05);padding:30px 20px;display:flex;flex-direction:column;justify-content:center;align-items:center}.post--quote blockquote{margin:0;border:none;padding:0;line-height:1.2}.post--quote p{margin:0}.post--quote cite{font-style:normal;font-size:var(--step--2)}.large-image{max-width:100vw;width:1140px;transform:translateX(-50%);margin:2rem 50%}.grid-of-cards{display:grid;grid-gap:1.5rem;margin:1.5rem 0}@media(min-width:48em){.grid-of-cards{width:90vw;max-width:1100px;margin-left:50%;transform:translateX(-50%);grid-template-columns:1fr 1fr}}.card{background:var(--white);padding:1.5em;font-size:var(--step--1);box-shadow:0 0 20px rgba(0,0,0,.1)}.card>*{margin-bottom:0;margin-top:0}.card>*+*{margin-top:1em}.card p a{color:var(--gradient-green)}.single{max-width:740px;margin:0 auto 120px}.single .twitter-tweet{padding-bottom:1em;margin-left:auto;margin-right:auto}.single .meta{display:block;margin-bottom:30px;color:var(--mid-blue)}.single h1{margin-bottom:.25rem}.alert{font-size:var(--step--1);padding:1rem;background:var(--mid);position:relative;margin-bottom:1.5em}.alert--with-eyebrow{padding-top:2.5rem}.alert__eyebrow{position:absolute;font-size:var(--step--2);font-weight:700;letter-spacing:.1em;background:var(--gradient);color:var(--white);padding:0 1rem;left:0;top:0}.alert>:first-child{margin-top:0}.alert pre{padding:0}.alert>:last-child,.alert>.highlight:last-child>:last-child{margin-bottom:0}.chroma{background-color:var(--mid)}.chroma .err{color:red;background-color:#faa}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:100%;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:#ffc}.chroma .lnt{margin-right:.4em;padding:0 .4em;display:block}.chroma .ln{margin-right:.4em;padding:0 .4em}.chroma .k{color:#00a}.chroma .kc{color:#00a}.chroma .kd{color:#00a}.chroma .kn{color:#00a}.chroma .kp{color:#00a}.chroma .kr{color:#00a}.chroma .kt{color:#0aa}.chroma .na{color:#1e90ff}.chroma .nb{color:#0aa}.chroma .nc{color:#0a0}.chroma .no{color:#a00}.chroma .nd{color:#888}.chroma .ni{color:#800;font-weight:700}.chroma .nf{color:#0a0}.chroma .nn{color:#0aa}.chroma .nt{color:#1e90ff;font-weight:700}.chroma .nv{color:#a00}.chroma .s{color:#713900}.chroma .sa{color:#713900}.chroma .sb{color:#713900}.chroma .sc{color:#713900}.chroma .dl{color:#713900}.chroma .sd{color:#713900}.chroma .s2{color:#713900}.chroma .se{color:#713900}.chroma .sh{color:#713900}.chroma .si{color:#713900}.chroma .sx{color:#713900}.chroma .sr{color:#099}.chroma .s1{color:#713900}.chroma .ss{color:#00a}.chroma .m{color:#099}.chroma .mb{color:#099}.chroma .mf{color:#099}.chroma .mh{color:#099}.chroma .mi{color:#099}.chroma .il{color:#099}.chroma .mo{color:#099}.chroma .ow{color:#00a}.chroma .c{color:#aaa;font-style:italic}.chroma .ch{color:#aaa;font-style:italic}.chroma .cm{color:#aaa;font-style:italic}.chroma .c1{color:#aaa;font-style:italic}.chroma .cs{color:#00a;font-style:italic}.chroma .cp{color:#4c8317}.chroma .cpf{color:#4c8317}.chroma .gd{color:#a00}.chroma .ge{font-style:italic}.chroma .gr{color:#a00}.chroma .gh{color:navy;font-weight:700}.chroma .gi{color:#0a0}.chroma .go{color:#888}.chroma .gp{color:#555}.chroma .gs{font-weight:700}.chroma .gu{color:purple;font-weight:700}.chroma .gt{color:#a00}.chroma .w{color:#bbb}