html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[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-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring{outline:1px dotted buttontext}[type=reset]:-moz-focusring{outline:1px dotted buttontext}[type=submit]:-moz-focusring{outline:1px dotted buttontext}button:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}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-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template,[hidden]{display:none}:root{--site-background:#f8f8f2;--site-text:#282a36;--site-background-alt:#dcdce6;--site-text-alt:#44475a;--site-yellow:#8b80d6;--site-text-on-yellow:#eaeaf0}[data-theme=dark]{--site-background:#282a36;--site-text:#f8f8f2;--site-background-alt:#43475b;--site-text-alt:#cfd3f0;--site-yellow:#8b80d6;--site-text-on-yellow:#eaeaf0}.site-header{flex-direction:column;width:100%;max-width:708px;margin:0 auto;padding:60px 18px;display:flex}@media (max-width:672px){.site-header{width:auto;margin:0;padding:18px}}.site-header a,.site-header a:hover{border:none}.site-header .header-row{justify-content:space-between;align-items:center;display:flex}@media (max-width:672px){.site-header .header-row{align-items:flex-start}}.site-header nav{font-size:1rem}.site-header ul{margin:0 0 0 -6px;padding:0;list-style-type:none;display:flex}@media (max-width:672px){.site-header ul{display:block}}.site-header li{border-radius:6px;width:fit-content;margin-right:12px;padding:4px 6px;font-weight:700;transition-duration:.3s}@media (max-width:672px){.site-header li{margin-bottom:4px;margin-left:0}}.site-header li.active{background-color:var(--site-yellow)}.site-header li.active a{color:var(--site-text-on-yellow)}.theme-toggle{z-index:2;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:1rem;display:flex;position:relative}.theme-toggle:before{content:"";border:1px solid var(--site-text);mix-blend-mode:difference;pointer-events:none;border-radius:50%;position:absolute;inset:0}.theme-toggle:focus{outline:none}@media (max-width:672px){.theme-toggle{position:fixed;right:18px}}.site-footer{padding-left:18px;padding-right:18px}.site-footer .container{max-width:672px;margin:auto;padding-top:60px;padding-bottom:12px}@media (max-width:992px){.site-footer .container{padding-top:36px}}.site-footer p{font-size:1rem}.site-footer .divider{background-color:var(--site-text);height:1px;margin-bottom:12px}.home-wrapper{flex-direction:column;display:flex}.home{max-width:708px;margin:0 auto;padding-left:18px;padding-right:18px}.wave{cursor:default;transform-origin:70% 70%;animation:3.5s 1.5s wave-animation;display:inline-block}.wave:hover{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'  width='40' height='48' viewport='0 0 100 100' style='fill:$site-text;font-size:24px;'><text y='50%'>👋🏽</text></svg>") 16 0,auto;animation:2.5s infinite wave-animation}@media (max-width:672px){.wave:hover{animation-iteration-count:1}}@keyframes wave-animation{0%{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}}.post.project-post img{width:auto;max-width:100%;height:auto;max-height:60vh;margin:0 auto;display:block}.post.project-post figure{margin:36px 0}.post.project-post .figure-media{margin:0 auto;display:block;position:relative}.post.project-post .figure-media img{opacity:0;width:100%;height:auto;transition:opacity .4s ease-in-out}.post.project-post .figure-spinner{z-index:1;background-color:var(--site-background-alt);justify-content:center;align-items:center;transition:opacity .4s ease-in-out,visibility .4s;display:flex;position:absolute;inset:0}.post.project-post .figure-loaded img{opacity:1}.post.project-post .figure-loaded .figure-spinner{opacity:0;visibility:hidden}.post.project-post figcaption{max-width:34rem;color:var(--site-text-alt);text-align:center;margin:8px auto 0;font-size:.875rem;font-weight:300;line-height:1.35}.post.project-post ul{margin-top:0;margin-bottom:18px}.post.project-post li{margin-bottom:18px;font-size:1.125rem;line-height:1.5}.projects .intro,.projects .source,.projects .grid,.projects .tile-grid{max-width:708px;margin:auto;padding-left:18px;padding-right:18px}.projects .intro{padding-bottom:24px}.projects .grid{flex-direction:column;gap:24px;padding-bottom:36px;display:flex}.projects .tile-grid{grid-template-columns:repeat(2,1fr);gap:18px;padding-bottom:36px;display:grid}@media (max-width:672px){.projects .tile-grid{grid-template-columns:1fr}}.projects .story-spinner{z-index:1;background-color:var(--site-background-alt);justify-content:center;align-items:center;transition:all .4s ease-in-out;display:flex;position:absolute;inset:0}.projects .story{border:1px solid var(--site-background-alt);border-radius:4px;transition:transform 1.3s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden}.projects .story .story-media{border-bottom:none;flex:0 0 40%;align-self:stretch;min-height:100px;position:relative}.projects .story .card-text{flex-direction:column;flex:1;justify-content:center;padding:18px;display:flex}.projects .story .story-org{padding-bottom:4px;font-size:.875rem;line-height:1.2}.projects .story .story-tag{border:1px solid color-mix(in srgb,var(--site-text)18%,transparent);letter-spacing:.04em;text-transform:uppercase;color:var(--site-text);vertical-align:8%;white-space:nowrap;border-radius:999px;margin-left:8px;padding:2px 9px;font-size:.75rem;font-weight:500;line-height:1.2;display:inline-block}.projects .story .story-name{padding-bottom:8px}.projects .story .story-description{font-size:1rem;line-height:1.5}.projects .story .story-name a,.projects .story .story-description a{border-bottom:none}.projects .story .card-actions{flex-wrap:wrap;gap:8px;padding-top:12px;display:flex}@media (max-width:672px){.projects .story{flex-direction:column}.projects .story .story-media{aspect-ratio:16/9;flex:none;width:100%}}.projects .card-btn{white-space:nowrap;cursor:pointer;border-radius:6px;padding:6px 13px;font-size:.875rem;font-weight:500;line-height:1.2;transition:all .18s}.projects .card-btn--primary{background-color:var(--site-yellow);color:var(--site-text-on-yellow);border:1px solid var(--site-yellow)}.projects .card-btn--primary:hover{border:1px solid var(--site-yellow);filter:brightness(1.06);transform:translateY(-1px)}.projects .card-btn--ghost{color:var(--site-text);border:1px solid color-mix(in srgb,var(--site-text)18%,transparent);background-color:#0000}.projects .card-btn--ghost:hover{border:1px solid color-mix(in srgb,var(--site-text)18%,transparent);background-color:color-mix(in srgb,var(--site-text)7%,transparent)}.projects .tile{border:1px solid var(--site-background-alt);border-radius:4px;transition:transform 1.3s cubic-bezier(.16,1,.3,1);display:block;overflow:hidden}.projects .tile .tile-media{aspect-ratio:16/9;border-bottom:none;width:100%;position:relative}.projects .tile .tile-text{padding:12px 18px}.projects .tile .tile-org{padding-bottom:4px;font-size:.875rem;line-height:1.2}.projects .tile .tile-name{font-size:1.125rem;line-height:1.35}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.story-spinner svg,.figure-spinner svg{animation:.9s linear infinite spinner-rotate}@media (prefers-reduced-motion:reduce){.story-spinner svg,.figure-spinner svg{animation:none}}.resume{max-width:708px;margin:auto;padding-left:18px;padding-right:18px}.resume .exp{display:flex}.resume .left{width:25%;padding-right:2%}.resume .right{width:75%;padding-left:2%}.resume .section{padding-bottom:36px}.resume .item{padding-bottom:18px}.resume .skills{grid-gap:18px;grid-template-columns:1fr 1fr;display:grid}.resume .skills p{padding-bottom:4px}@media (max-width:400px){.resume .skills{grid-template-columns:1fr}}@media (max-width:992px){.resume .exp{display:block}.resume .left,.resume .right{width:100%;padding:0}}.contact{max-width:708px;margin:auto;padding-left:18px;padding-right:18px}.contact .social{display:flex}.contact .left{width:30%;font-weight:700}.contact .right{align-items:center;width:70%;display:flex}.contact .info-icon{vertical-align:middle;width:20px;margin-bottom:8px;margin-left:8px}.contact .tooltip{background-color:var(--site-text);max-width:350px;color:var(--site-background);font-size:1rem;font-weight:300}@media (max-width:672px){.contact .tooltip{max-width:300px}}@media (max-width:400px){.contact .tooltip{max-width:80%}}@media (max-width:992px){.contact p{padding-bottom:0}.contact .social{padding-bottom:18px;display:block}.contact .left,.contact .right{width:100%}.contact .info-icon{margin-top:8px}}.blog{max-width:708px;margin:auto;padding-left:18px;padding-right:18px}.blog table{width:100%}.blog .blog-intro{padding-bottom:24px}.blog .posts a{border-bottom:none}.blog .post-title p{font-weight:500}.blog .post-date{text-align:right;width:30%}@media (max-width:768px){.blog .post-date{width:40%}}.post{max-width:708px;margin:auto;padding-left:18px;padding-right:18px}.post .divider{background-color:var(--site-text);height:1px;margin-top:18px;margin-bottom:24px}.post img{width:100%}.post em{color:var(--site-text)}.post pre{border:1px solid var(--site-background-alt);background-color:var(--site-background-alt);white-space:pre-wrap;overflow-wrap:break-word;border-radius:2px;margin-bottom:36px;padding:12px}.post code{text-wrap:auto;font-family:monospace;font-size:1rem}.post p code{background-color:var(--site-background-alt);border-radius:4px;padding-left:6px;padding-right:6px}.post ol{margin-left:18px;line-height:1.5;list-style-type:disc}.post li{margin-bottom:24px;font-size:1.125rem;font-weight:300}.post nav{justify-content:space-between;padding-top:36px;display:flex}.post .actions{width:30%}@media (max-width:768px){.post .actions{width:45%}}.post .actions.next{text-align:right}.post .actions p{padding-bottom:4px;font-size:1rem}.post .actions .label{color:var(--site-text)}.not-found{max-width:708px;margin:auto;padding-left:18px;padding-right:18px}.app-wrapper{flex-direction:column;justify-content:space-between;height:100%;min-height:100vh;display:flex}*,:before,:after{box-sizing:border-box}body,pre,code,em,.divider,.label,.tooltip,.theme-toggle:before{transition:background-color .25s,color .25s,border-color .25s}body{background-color:var(--site-background);color:var(--site-text)}a{border-bottom:solid 2px var(--site-yellow);color:var(--site-text);text-decoration:none;transition:all .1s}a:hover{border-bottom:solid 3px var(--site-yellow)}h1{margin:0;padding-bottom:24px;font-size:2.2rem;font-weight:700;line-height:1.35}h2{margin:0;padding-top:18px;padding-bottom:18px;font-size:1.5rem;font-weight:700;line-height:1.35}h3{margin:0;padding-top:18px;padding-bottom:18px;font-size:1.125rem;font-weight:700;line-height:1.35}h4{margin:0;padding-top:12px;padding-bottom:12px;font-size:1.125rem;font-weight:500;line-height:1.35}p{margin:0;padding-bottom:12px;font-size:1.125rem;font-weight:300;line-height:1.5}.reveal{transform:none}.no-reveal{transform:translateY(28px)}@media (prefers-reduced-motion:reduce){.no-reveal{transform:none}}
@font-face{font-family:Fraunces;font-style:normal;font-weight:300;font-display:swap;src:url(../media/1e219c03c996efbd-s.ba7d7329.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:300;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0c27b1b4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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-face{font-family:Fraunces;font-style:normal;font-weight:300;font-display:swap;src:url(../media/03bda585a99c6450-s.p.ad37b9d9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1e219c03c996efbd-s.ba7d7329.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0c27b1b4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/03bda585a99c6450-s.p.ad37b9d9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1e219c03c996efbd-s.ba7d7329.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0c27b1b4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(../media/03bda585a99c6450-s.p.ad37b9d9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_f10f017c-module__U_eY-a__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}
