@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600&amp;display=swap");@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700&display=swap");:root,:root.light{--background-color:#fafafa;--text-color:#000;--shade-100:#efefef;--shade-300:#8a8a8a;--shade-500:#3d3d3d;--secondary-color:#ccd0be;--grey-color:#c2bfbc;--grey-text:#595959}:root.dark{--background-color:#0d1926;--text-color:#f7fafc;--shade-100:#1a324c;--shade-300:#4383cb;--shade-500:#8cb0d9;--secondary-color:#a67a59;--grey-color:#303f50;--grey-text:#cfd8e2}:root.brown{--background-color:#eeeae2;--text-color:#120c07;--shade-100:#c7a991;--shade-300:#6f482a;--shade-500:#4a301c;--secondary-color:#8cb0d9;--grey-color:#c2bfbc;--grey-text:#5e5955}:root.pink{--background-color:#fcf7f9;--text-color:#260d17;--shade-100:#ffcce1;--shade-300:#bf4075;--shade-500:#732646;--secondary-color:#a8d1c8;--grey-color:#d1c7cd;--grey-text:#62505b}:root.green{--background-color:#f2f5f4;--text-color:#1b3817;--shade-100:#bae5b3;--shade-300:#024541;--shade-500:#012d32;--secondary-color:#e5b3b9;--grey-color:#c8d1c7;--grey-text:#536250}:root.neon{--background-color:#101b37;--text-color:#fff;--shade-100:#101b37;--shade-300:#4b4bfb;--shade-500:#01c7ef;--secondary-color:#e41376;--grey-color:#017f98;--grey-text:#fff;--neon-color:#e41376}.neon-path{display:none}.neon body{font-family:Orbitron,sans-serif}.brown body,.dark body,.green body,.light body,.pink body{font-family:Inter,sans-serif}.neon body:after,.neon body:before{content:"";position:fixed;top:0;width:10px;z-index:99;background-color:var(--neon-color);height:100vh;box-shadow:0 0 15px 0 var(--neon-color)}@media screen and (max-width:720px){.neon body:after,.neon body:before{width:5px}.neon .project-content-container{border:1px solid var(--shade-300)}}.neon body:before{left:0}.neon body:after{right:0}.neon .section-title,.neon h1{text-shadow:2px 1px var(--neon-color)}.neon .arrow{color:var(--neon-color)}.neon .link-btn{border-color:var(--neon-color);color:var(--shade-500)}.neon .nav-links a{text-shadow:1px 1px var(--neon-color)}.neon ::marker{color:var(--secondary-color)}.neon a{-webkit-text-decoration-color:var(--neon-color)!important;text-decoration-color:var(--neon-color)!important}.neon img:not(.img-404){box-shadow:10px 10px 0 0 var(--neon-color)}.neon .neon-path{display:block}.neon .wave-border path:not(.neon-path){display:none}.neon input[value=all]:checked~.post-tags label[data-post=all],.neon input[value=conferences]:checked~.post-tags label[data-post=conferences],.neon input[value=javascript]:checked~.post-tags label[data-post=javascript],.neon input[value=portfolio]:checked~.post-tags label[data-post=portfolio]{border-color:var(--neon-color);color:var(--shade-500)}.neon .input-container.focused .form-input{border-color:var(--neon-color)}.neon .focused label{border:1px solid var(--neon-color);border-bottom:1px solid transparent}.neon .article-content,.neon .card-content{border:1px solid var(--shade-300)}#light-select .color.text{background-color:#000}#light-select .color.shade-100{background-color:#efefef}#light-select .color.shade-300{background-color:#8a8a8a}#light-select .color.shade-500{background-color:#3d3d3d}#light-select .color.background{background-color:#fff}#dark-select .color.text{background-color:#f7fafc}#dark-select .color.shade-100{background-color:#1a324c}#dark-select .color.shade-300{background-color:#4383cb}#dark-select .color.shade-500{background-color:#8cb0d9}#dark-select .color.background{background-color:#0d1926}#brown-select .color.text{background-color:#120c07}#brown-select .color.shade-100{background-color:#c7a991}#brown-select .color.shade-300{background-color:#6f482a}#brown-select .color.shade-500{background-color:#4a301c}#brown-select .color.background{background-color:#eeeae2}#pink-select .color.text{background-color:#260d17}#pink-select .color.shade-100{background-color:#ffcce1}#pink-select .color.shade-300{background-color:#bf4075}#pink-select .color.shade-500{background-color:#732646}#pink-select .color.background{background-color:#fcf7f9}#green-select .color.text{background-color:#1b3817}#green-select .color.shade-100{background-color:#bae5b3}#green-select .color.shade-300{background-color:#024541}#green-select .color.shade-500{background-color:#012d32}#green-select .color.background{background-color:#f2f5f4}#neon-select .color.text{background-color:#fff}#neon-select .color.shade-100{background-color:#101b37}#neon-select .color.shade-300{background-color:#4b4bfb}#neon-select .color.shade-500{background-color:#01c8ee}#neon-select .color.background{background-color:#e41376}.privacy-screen{top:0;bottom:0;background-color:var(--text-color);z-index:99999}.privacy-screen,.progress{position:fixed;left:0;right:0}.progress{height:2px;background:var(--text-color);bottom:100px;margin:0 auto;bottom:0;z-index:999999;width:100%}a,img{-webkit-tap-highlight-color:#00000000}.container{width:90%;max-width:1280px}.container,.inner-container{margin-left:auto;margin-right:auto}.inner-container{max-width:960px}.underline{position:relative;width:-moz-fit-content;width:fit-content;padding:0 .25em}.underline:before{content:"";z-index:-1;position:absolute;background-color:var(--secondary-color);bottom:0;left:0;width:100%;height:50%;transition:max-width .5s,background-color .5s,color .5s}.d-none{display:none}header .animate-background:before{animation:slide-in-bottom 1s ease-in-out both}header .animate-logo{animation:tracking-in-expand 1s cubic-bezier(.215,.61,.355,1) both}header .animate-text-1{animation:fade-in-bottom .5s ease-in-out both}header .animate-text-2{animation:fade-in-bottom .5s ease-in-out 50ms both}header .animate-subtitle{animation:fade-in-bottom .5s ease-in-out .1s both}header .animate-scroll{animation:fade-in-bottom .5s ease-in-out .15s both}@media (prefers-reduced-motion){header .animate-background:before,header .animate-logo,header .animate-scroll,header .animate-subtitle,header .animate-text-1,header .animate-text-2{opacity:1;animation:none}}@keyframes slide-in-bottom{0%{transform:translateY(1000px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-in-left{0%{transform:translateX(-100px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slide-in-right{0%{transform:translateX(100px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes fade-in-bottom{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade-in-top{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade-out-top{0%{transform:translateY(0);opacity:1}to{transform:translateY(-50px);opacity:0}}@keyframes bounce-top{0%{transform:translateY(0);animation-timing-function:ease-in;opacity:1}24%{opacity:1}40%{transform:translateY(-12px);animation-timing-function:ease-in}65%{transform:translateY(-8px);animation-timing-function:ease-in}82%{transform:translateY(-6px);animation-timing-function:ease-in}93%{transform:translateY(-4px);animation-timing-function:ease-in}25%,55%,75%,87%{transform:translateY(0);animation-timing-function:ease-out}to{transform:translateY(0);animation-timing-function:ease-out;opacity:1}}@keyframes slide-top{0%{transform:translateY(0)}to{transform:translateY(-10vh)}}@keyframes slide-bottom{0%{transform:translateY(0)}to{transform:translateY(10vh)}}@keyframes rotate-center{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes tracking-in-expand{0%{letter-spacing:-.5em;opacity:0}40%{opacity:.6}to{opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.bmc-btn svg{height:32px!important;margin-bottom:0!important;box-shadow:none!important;border:none!important;vertical-align:middle!important;transform:scale(.9);flex-shrink:0}.bmc-btn{min-width:210px;color:var(--background-color);background-color:var(--secondary-color)!important;border-radius:12px;font-size:28px;font-weight:400;border:none;padding:12px 24px;line-height:27px;text-decoration:none!important;display:inline-flex!important;align-items:center;font-family:Cookie,cursive!important;box-sizing:border-box!important}.bmc-btn:active,.bmc-btn:focus,.bmc-btn:hover{text-decoration:none!important;cursor:pointer}.bmc-btn-text{margin-left:8px;display:inline-block;line-height:0;width:100%;flex-shrink:0}.logo-outline{fill:#000}.logo-coffee{fill:#fff}.no-animate{animation:none!important}body{margin:0;background-color:var(--background-color);background-repeat:no-repeat;background-position:0 0;color:var(--text-color);font-family:Inter,sans-serif}body.no-scroll{overflow:hidden}*{box-sizing:border-box}a{color:var(--shade-500);text-decoration:none}.link-btn{display:inline-block;border:2px solid var(--grey-color);background-color:transparent;border-radius:2em;padding:1em 2em;text-transform:uppercase;font-size:.9rem;letter-spacing:.2em;transition:border .5s,background-color .5s,color .5s}.link-btn:focus,.link-btn:hover{outline:none;color:var(--background-color);background-color:var(--shade-500);border-color:var(--shade-500)}button{border:none;background-color:transparent;text-transform:uppercase;font-size:.9rem;color:var(--shade-500);cursor:pointer}button:focus,button:hover{color:var(--text-color)}nav{position:-webkit-sticky;position:sticky;top:0;left:0;right:0;padding-top:2rem;padding-bottom:2rem;background-color:rgba(var(--background-color),.6);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);transition:top .5s;transition:all .3s ease;border-bottom:1px solid rgba(var(--text-color),1);box-shadow:0 .9px 2.2px rgba(0,0,0,.02),0 2.1px 5.3px rgba(0,0,0,.014),0 3.9px 10px rgba(0,0,0,.012),0 6.9px 17.9px rgba(0,0,0,.01),0 13px 33.4px rgba(0,0,0,.008),0 31px 80px rgba(0,0,0,.006)}.js-nav.visible{z-index:50;animation:fade-in .6s cubic-bezier(.39,.575,.565,1) both}.js-nav.visible.scroll-up{top:0}.js-nav.visible.scroll-down{top:-20%}.js-nav.hidden{animation:fade-out .6s cubic-bezier(.39,.575,.565,1) both}nav .container{justify-content:space-between}.nav-links,nav .container{display:flex;align-items:center}.nav-links{margin:-1em 0;flex:1 0 auto;justify-content:flex-end}.nav-links .link{position:relative;margin:1em;color:var(--text-color);font-size:1rem;text-transform:uppercase;letter-spacing:1px}.nav-links .link:before{content:"";z-index:-1;position:absolute;background-color:var(--secondary-color);bottom:0;left:0;width:100%;height:50%;max-width:0;transition:max-width .5s}.nav-links .link:focus,.nav-links .link:hover{outline:none}.nav-links .link.active:before,.nav-links .link:focus:before,.nav-links .link:hover:before{max-width:10rem}.js-nav .nav-controls{padding-left:1rem;display:flex;align-items:center}.js-nav .nav-controls .hamburger{width:1.5rem;margin:0 1.5rem;height:.75rem;position:relative;right:0}.nav-controls .hamburger.active{position:fixed;z-index:51;top:2rem;right:.5rem}aside{background-color:var(--background-color);height:100%;z-index:999999;position:fixed;right:0;top:0;bottom:0}.js-nav .nav-controls .hamburger:after,.js-nav .nav-controls .hamburger:before{content:"";position:absolute;height:2px;width:100%;background-color:var(--shade-500);left:0;margin:auto;transition:transform .5s}.nav-controls .hamburger:before{top:0}.nav-controls .hamburger:after{bottom:0}.nav-controls .hamburger.active:before{bottom:0;transform:rotate(45deg)}.nav-controls .hamburger.active:after{top:0;transform:rotate(-45deg)}.nav-controls .control{display:none;font-size:1rem;padding:0;transition:all .3s ease;will-change:scale}.js-nav .nav-controls .control{display:inline-flex}.nav-controls .control:active{scale:1.3}.nav-controls .control:focus,.nav-controls .control:hover{outline:none}.nav-logo{position:relative;line-height:1;font-size:1.1rem}.nav-logo .logo-img{width:auto;height:auto;max-width:140px;display:none}.brown .logo-img.dark,.dark .logo-img.light,.green .logo-img.dark,.light .logo-img.dark,.neon .logo-img.blue,.pink .logo-img.dark,html:not(.light,.dark,.brown,.green,.pink,.neon) .logo-img.dark{display:block}.logo{text-align:center;font-size:1.25rem;color:var(--shade-500);letter-spacing:1px;text-transform:uppercase}.theme-container{position:absolute;padding:2rem;right:0;top:4.5rem;margin-right:1em;display:flex;flex-direction:column;background-color:var(--shade-100);opacity:0;box-shadow:0 0 10px 1px rgba(0,0,0,.2);border-radius:.25em;visibility:hidden}.theme-container.visible{visibility:visible;animation:fade-in-top 1s cubic-bezier(.39,.575,.565,1) both}.theme-container .theme-select{text-align:left;padding:0}.theme-container .theme-select+.theme-select{margin-top:1em}.theme-select .theme-label{font-size:.85rem;text-transform:uppercase;letter-spacing:1px;padding:0 .25em;margin-bottom:.5em;display:inline-block;position:relative}.theme-select .theme-label:before{content:"";z-index:-1;position:absolute;background-color:var(--secondary-color);bottom:0;left:0;width:100%;height:50%;max-width:0;transition:max-width .5s}.theme-select.active .theme-label:before{max-width:5rem}.theme-select .theme{display:flex;justify-content:center;align-items:center;padding:1rem;background-color:var(--grey-color);border-radius:.25em;transition:filter .5s}.theme-select:focus{outline:none}.theme-select:focus .theme,.theme-select:hover .theme{filter:brightness(1.1)}.theme-select .theme .color{height:1rem;width:1rem;margin:0 .125em;border-radius:.2rem;flex:1 0 1rem}.wave-border{height:150px;overflow:hidden}.scroll-in.js-opacity{opacity:0}.scroll-in.scrolled{animation:fade-in-bottom 1s cubic-bezier(.39,.575,.565,1) both}.scroll-in.unscrolled{animation:fade-out-top 1s cubic-bezier(.39,.575,.565,1) both}footer{padding-top:2rem;padding-bottom:2rem;background-color:var(--shade-100)}footer .support.container{flex-direction:column;align-items:flex-end;margin-bottom:1rem;text-align:right}.shadow-hover-link{box-shadow:inset 0 -.125em 0 var(--grey-color);transition:box-shadow .27s cubic-bezier(.77,0,.175,1),color .27s cubic-bezier(.77,0,.175,1)}.shadow-hover-link:hover{box-shadow:inset 0 -1.125em 0 var(--grey-color)}footer .support-mail{display:inline-block;margin-top:5px}footer .support p{margin:0 0 .5rem;max-width:45ch;font-size:.9rem;color:var(--shade-500)}footer .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}footer .social-media{display:flex;margin-left:-.5rem}footer .social-media a:hover{transform:scale(1.2)}footer .social-media a{margin:.5rem;font-size:1.1rem;transition:all .2s ease;will-change:transform}footer .copyright{font-size:.9rem;color:var(--shade-500)}.copyright .heart{color:var(--shade-300)}@media screen and (min-width:721px){.hamburger,.nav-links .social-media{display:none}}.mobile-navigation__links{display:flex;justify-content:space-between;flex-direction:column;text-align:center;align-items:center;row-gap:2.5rem}@media screen and (max-width:720px){.logo{font-size:1rem}.js-nav .nav-links{position:fixed;padding:2rem;right:0;top:0;left:0;bottom:0;inset:0;height:100vh;margin:auto;display:flex;flex-direction:column;width:100%;box-shadow:0 0 10px 1px rgba(0,0,0,.2);border-radius:.25em;opacity:0;visibility:hidden;justify-content:center}.navigation-list--mobile .social-media{display:flex;margin:1rem -.5rem}.navigation-list--mobile .social-media a{margin:0 1rem;font-size:1.8rem}footer .support.container{margin-bottom:2rem}nav{padding-top:1.5rem;padding-bottom:1.5rem;box-shadow:0 3px 6px rgb(0 0 0/6%)}.navigation-list{display:none}.navigation-list--mobile{display:flex;justify-content:center;flex-direction:column;text-align:center;align-items:center;flex:1 1;row-gap:1.8rem;justify-content:space-between;height:100%}.nav-links .link,.navigation-list--mobile .link{font-size:1.8rem}.navigation-list--mobile .link{font-size:2.8rem;text-transform:capitalize;font-weight:500}.mobile-navigation__close{display:flex;justify-content:flex-end;text-align:right;width:100%;padding:1rem 1rem 0 0}}@media (prefers-reduced-motion){.scroll-in.js-opacity{opacity:1;animation:none!important}}.error-message:first-letter{text-transform:uppercase}.project-scroll{scrollbar-color:#000 #000;scrollbar-width:thin;-ms-overflow-style:none;max-width:100vw}.project-scroll::-webkit-scrollbar{height:5px}.project-scroll::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 0 transparent}.project-scroll::-webkit-scrollbar-thumb{height:5px;background-color:var(--secondary-color)}.project-scroll::-webkit-scrollbar-thumb:hover{background-color:var(--secondary-color)}.cursor-container{position:fixed;background-color:var(--text-color);width:0;z-index:99999;height:0}.cursor-container__circle{position:absolute;top:-.5rem;left:-.5rem;background-color:var(--text-color);width:1rem;height:1rem;border-radius:9999px;pointer-events:none;transition:transform .5s ease}.cursor-container__circle.cursor-over-link{transform:scale(0)!important;background-color:var(--shade-500)}main{margin-top:4rem;animation:fade-in-bottom 1s cubic-bezier(.39,.575,.565,1) both}section a:not([class]){color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--grey-color);text-decoration-color:var(--grey-color)}.section-link{margin-top:3rem}section p{color:var(--grey-text);font-size:1.25rem;line-height:140%}.subsection-title{text-transform:uppercase;color:var(--shade-500);font-size:1.17em}.page-nav{padding:3rem 0 0;display:flex;justify-content:space-between;flex-wrap:wrap}header{text-align:center;position:relative;height:100vh}.table-lamp-svg{position:absolute;bottom:97px;right:84px;transform:scale(1.5)}.toggle-beam{cursor:pointer}.turned-off{display:none}.light-beam{animation:flicker .8s .2s infinite}header.js-fixed{height:110vh}.header-container{height:100%;display:flex;flex-direction:column;justify-content:center;text-align:left;align-items:flex-start}header h1{font-size:4rem;margin:0}header h1 p{position:relative;font:inherit;margin:0;width:-moz-fit-content;width:fit-content;font-weight:800;text-align:left;line-height:130%;letter-spacing:-.03em}header h2{max-width:65ch;font-weight:200;color:var(--shade-500);margin:0}header .fixed-header{position:absolute;height:100vh;width:100%;top:0;left:0;right:0;bottom:0}header.js-fixed .fixed-header{position:fixed}header.js-fixed .fixed-header.scrolled{position:absolute;top:auto;bottom:0}header .fixed-header:before{content:"";z-index:-1;position:absolute;background-color:var(--shade-100);width:100%;height:50%;margin:auto;bottom:0;left:0}header .header-text{position:relative}.scroll-button{position:absolute;bottom:0;padding:2rem 0;border:none;outline:none;cursor:pointer;display:flex;transition:opacity .25s;color:var(--text-color)}.fixed-header.scrolled .scroll-button{opacity:0}.scroll-button .arrow{margin-right:.25rem}.scroll-button:focus .arrow,.scroll-button:hover .arrow{animation:bounce-top 1.5s ease-in-out infinite both}.index-page section:nth-of-type(2n){background-color:var(--shade-100)}.index-page section .container{padding:5rem 0}.index-page section:last-of-type .container{padding-bottom:0}.section-link{text-align:center;margin-top:5rem}.section-title{margin-top:0;margin-bottom:1rem;font-size:2.5rem;font-weight:600;color:var(--shade-500)}.section-subtitle{font-size:1.5rem;color:var(--grey-text);max-width:60ch}.title-icon{display:inline-block}.scrolled .title-icon{animation:bounce-top 1s ease-in-out both}.intro a:not([class]){color:inherit;text-decoration:none;box-shadow:inset 0 -.125em 0 var(--grey-color);transition:box-shadow .27s cubic-bezier(.77,0,.175,1),color .27s cubic-bezier(.77,0,.175,1)}.intro a:not([class]):hover{box-shadow:inset 0 -1.125em 0 var(--grey-color)}.project,.project-container{margin:3rem 0}.project{display:flex}.project:nth-of-type(2n){flex-direction:row-reverse}.project.scrolled{animation:fade-in 1s linear both}.project.scrolled .project-content{animation:fade-in-bottom 1s cubic-bezier(.25,.46,.45,.94) both}.project-image img{display:block;width:100%;height:auto;object-fit:cover;object-position:top;transition:filter 1s;cursor:pointer}.project-image .macbook-air{background-image:url(/_next/static/media/macbook-mockup.c6a244d9.png);background-repeat:no-repeat;background-size:contain;position:relative;height:20.4rem;width:35rem}.project-image .macbook-air img{position:absolute;top:5.4%;left:11.3%;height:83.4%;width:77.5%;max-width:100%;object-fit:cover;transform:translateY(.4%);object-position:0 0;will-change:object-position;transition:object-position 3s ease-in-out;box-shadow:none!important}.project-image .macbook-air img.non-scroll-product{object-fit:contain;top:5.2%;left:11.2%}.project.active .project-image img:not(.non-scroll-product),.project:focus-within .project-image img:not(.non-scroll-product),.project:hover .project-image img:not(.non-scroll-product){object-position:0 100%}.project-content{display:flex;flex-direction:column;justify-content:center}.project-content p{font-size:1.25rem;color:var(--grey-text);margin:.5rem 0;line-height:135%}.project-title{margin-top:0;margin-bottom:1rem;color:var(--shade-500);font-size:1.5rem;text-transform:uppercase}.project-title a{color:inherit;text-decoration:none}.project-tags{display:flex;padding:1rem;margin:0;flex-wrap:wrap;gap:8px}.project-tags .tag{margin-right:2rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.15em}.project-links{display:flex;flex-wrap:wrap;align-items:flex-end;margin:0 -1rem}.project-links a{color:var(--grey-text);margin:1rem;border-radius:0}.talks-container{margin:1.5rem -1.5rem -1.5rem;display:flex;flex-wrap:wrap}.talk-card{flex:1 0 auto;margin:1.5rem}.talk-card iframe{width:100%;min-height:300px;background-color:var(--grey-color)}.articles-container,.cards-container{display:flex;margin:1.5rem -1.5rem -1.5rem;flex-wrap:wrap}.article,.card{flex:1 1 300px;display:flex;flex-direction:column;margin:1.5rem;transition:box-shadow .5s}.article.scrolled:nth-of-type(2){animation-delay:50ms}.article.scrolled:nth-of-type(3){animation-delay:.1s}.article:focus-within,.article:hover,.card:focus-within,.card:hover{box-shadow:0 0 10px 1px rgba(0,0,0,.2)}.article-image img,.card-image img{display:block;width:100%;height:200px;object-fit:cover;opacity:.8;filter:contrast(75%);transition:filter 1s,opacity .5s}.article:focus-within .article-image img,.article:hover .article-image img,.card:focus-within .card-image img,.card:hover .card-image img{opacity:1;filter:contrast(100%) grayscale(0)}.article-content{background-color:var(--background-color);padding:2rem;height:100%}.card-content{background-color:var(--shade-100);padding:0 1rem;height:100%}.card-content .card-title{margin-bottom:0}.article-site a,.card-site a{text-transform:uppercase;color:var(--grey-text);font-size:.9rem;transition:color .5s}.article-site a:hover{color:var(--text-color)}.contact-content{display:flex;flex-wrap:wrap}.contact-content .link-btn{border-radius:0;margin:1.5rem 0;display:block;width:-moz-fit-content;width:fit-content}.links-container{flex:0 1 300px}.links-container h3{margin:1.5rem 0 .5rem;text-transform:uppercase;color:var(--shade-500)}.links-container li{margin-bottom:1rem}.links-container a:focus,.links-container a:hover{text-decoration:underline}.form-container{flex:1 0 auto;max-width:600px;width:100%;margin-right:3rem}.input-container{position:relative;margin:1.5rem 0}.input-container .form-input{width:100%;box-sizing:border-box;background:transparent;caret-color:var(--shade-300);border:1px solid var(--grey-color);color:var(--text-color);transition:border .5s;padding:1.75rem 1rem .5rem;font-size:1.15rem}.input-container textarea{height:300px;resize:none;font:inherit}.input-container label{display:block;position:absolute;width:100%;font-size:1.15rem;top:15px;padding:.25rem 1rem;color:var(--grey-text);transform-origin:left;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .5s;cursor:text}.input-container .form-input:focus,.input-container .form-input:hover{outline:none;border-color:var(--shade-300)}.focused label,.form-input:focus+label,.form-input:not(:placeholder-shown)+label{top:0;font-size:.75rem;background-color:var(--shade-500);color:var(--background-color);-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}footer{padding-top:0}@media screen and (max-width:960px){header .fixed-header:before{height:51%}header h1{font-size:3rem}header h2{font-size:1.5rem}.project-image .macbook-air{width:24rem}.project-image .macbook-air img{top:3.7%;left:11.2%;height:56.8%}}@media screen and (min-width:721px){.project-container{margin:0 -3rem}.project{justify-content:space-between;margin:0 5rem;padding:5rem 0;border-bottom:1px dashed var(--shade-300)}.project.scrolled .project-image{animation:slide-in-left 1s cubic-bezier(.25,.46,.45,.94) both}.project:nth-of-type(2n).scrolled .project-image{animation:slide-in-right 1s cubic-bezier(.25,.46,.45,.94) both}.project-content-container,.project-image{width:50%}.project:nth-of-type(odd) .project-content-container{margin-left:3rem}.project:nth-of-type(2n) .project-content-container{margin-right:3rem}.project-content p{color:var(--text-color)}}@media screen and (max-width:720px){header h1{font-size:2.5rem}header h2{font-size:1.25rem}.project,.project:nth-of-type(2n){flex-direction:column}.project-content-container{background-color:var(--background-color);padding:2rem}.project-links a{margin:1rem auto}.articles-container,.cards-container,.talks-container{margin:1.5rem -1rem}.project-image .macbook-air{width:30rem;margin:auto}.project-image .macbook-air img{top:3.7%;left:11.3%;height:72.3%}}@media screen and (max-width:515px){.project-image .macbook-air{width:21rem;height:12.5rem;background-position:bottom}.project-image .macbook-air img{top:8.7%;left:11.3%;height:80.9%}.table-lamp-svg{position:absolute;bottom:-59px;right:-50px;transform:scale(.7)}}@media (prefers-reduced-motion){.project.scrolled,.project.scrolled:nth-of-type(2n) .project-image,.project.scrolled:nth-of-type(odd) .project-image{animation:none}}@keyframes flicker{20%{opacity:.1}23%{opacity:0}26%{opacity:.15}30%{opacity:0}35%{opacity:.2}38%{opacity:.1}to{opacity:.4}}html{scroll-behavior:smooth}#about.container{max-width:960px}.intro-container{display:flex;flex-wrap:wrap;align-items:center}.intro-image{flex:1 1 200px}.intro-image img{width:100%;background-color:var(--grey-color);object-fit:cover;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;object-position:100% 43%}.intro{margin-left:3rem;flex:1 1 60%}.intro p{max-width:48ch}.intro .large-text{margin-top:0;font-size:2.5rem;font-weight:600;color:var(--shade-500)}.intro .bold-text{font-size:1.5rem;color:var(--grey-text)}.main-text p{font-size:1.25rem}summary .subsection-title{display:inline;cursor:pointer}details{margin:1rem 0}details .main-text{margin:1rem 1rem 3rem}details .text{padding:2rem 0;border-bottom:1px dashed var(--shade-300)}details .list .text{padding-bottom:1rem}details .text:first-of-type{padding-top:0}.text-header{font-size:1.25rem;font-weight:400;margin:0}#experience .text-header a,#volunteering .text-header a{color:var(--shade-300);text-decoration:none}.text p.text-subtitle{margin:.5rem 0;font-size:.9rem}.text li{max-width:65ch;font-size:1.15rem;color:var(--grey-text);margin:.5rem 0}.tags{display:flex;flex-wrap:wrap;padding:1rem;margin:0}.tags li{font-size:1rem;margin:.25rem 2rem .25rem 0;text-transform:uppercase;letter-spacing:.15em}@media screen and (max-width:720px){.intro-container{flex-direction:column-reverse}.intro{margin-left:0;margin-bottom:1rem}.intro-image{width:100%}.intro-image img{height:25rem}}.projects-page .project-scroll{display:flex;overflow-x:scroll;padding:1rem;margin:0 -1rem;scroll-snap-type:x mandatory}.projects-page .project{scroll-snap-align:center;flex:1 1 40vw;display:flex;flex-direction:column;min-width:40vw;box-shadow:0 0 10px 1px rgba(0,0,0,.2)}.projects-page .project+.project{margin-left:1.5rem}.projects-page .project-image{width:100%}.projects-page .project-image img{display:block;width:100%;height:auto;opacity:.8;filter:brightness(45%);transition:filter 1s}.project:hover .project-image img,.projects-page .project:focus-within .project-image img{filter:brightness(100%) grayscale(0)}.projects-page .project-text{padding:1rem;height:100%;display:flex;flex-direction:column}.projects-page .project-text p{margin:0 0 .5rem;font-size:1rem}.projects-page .project-title{font-size:1em;margin:0 0 .25rem;color:var(--shade-500);text-transform:uppercase}.projects-page .project-tags{display:flex;flex-wrap:wrap;margin:.5rem 0;padding:0 1rem}.projects-page .project-tags li{margin-right:1.5rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.15em}.projects-page .project-links{padding-top:1em;margin-top:auto;color:var(--grey-text)}.projects-page .project-links a{font-size:.9rem;margin-right:.5rem;transition:color .5s}.project-links a:hover,.projects-page .project-links a:focus{color:var(--shade-100);-webkit-text-decoration-color:var(--shade-100);text-decoration-color:var(--shade-100)}.projects-page .more-link{margin:0 1.5rem;display:flex;align-items:center;scroll-snap-align:center}.projects-page .more-link a{display:block;width:max-content}@media screen and (max-width:720px){.projects-page .project{min-width:75vw}}.four-zero-four{background:#1b1b1b;color:#fff;padding-top:50px;text-align:center;height:100vh;width:100%}.four-zero-four,.four-zero-four a{font-family:Bungee,cursive!important}.four-zero-four a{color:#2aa7cc;text-decoration:none}.four-zero-four a:hover{color:#fff}.four-zero-four svg{width:50vw}.four-zero-four .lightblue{fill:#444}.four-zero-four .eye{cx:calc(115px + 30px * var(--mouse-x));cy:calc(50px + 30px * var(--mouse-y))}.four-zero-four #eye-wrap{overflow:hidden}.four-zero-four .error-text{font-family:Bungee,cursive!important;font-size:120px}.four-zero-four .alarm{animation:alarmOn .5s infinite}@keyframes alarmOn{to{fill:darkred}}