@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_396b12ce-module__rRjk0G__className{font-family:Inter,Inter Fallback;font-style:normal}
@font-face{font-family:mdIO;src:url(../media/MDIO_VF-s.p.62104941.woff2)format("woff2");font-display:swap}@font-face{font-family:mdIO Fallback;src:local(Arial);ascent-override:69.97%;descent-override:21.29%;line-gap-override:0.0%;size-adjust:131.49%}.mdio_ce3b74fe-module__8nr43q__className{font-family:mdIO,mdIO Fallback}.mdio_ce3b74fe-module__8nr43q__variable{--font-mono:"mdIO","mdIO Fallback"}
@font-face{font-family:martinaPlantijn;src:url(../media/regular-s.p.44999c7e.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:martinaPlantijn;src:url(../media/italic-s.p.7d944313.woff2)format("woff2");font-display:swap;font-weight:400;font-style:italic}@font-face{font-family:martinaPlantijn Fallback;src:local(Arial);ascent-override:103.66%;descent-override:27.41%;line-gap-override:0.0%;size-adjust:95.6%}.martinaplantijn_7026e582-module__Bjghma__className{font-family:martinaPlantijn,martinaPlantijn Fallback}.martinaplantijn_7026e582-module__Bjghma__variable{--font-heading:"martinaPlantijn","martinaPlantijn Fallback"}
*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji,sans-serif;font-size:14px}html,body{height:100%}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}body{line-height:1.5;position:relative}h1,h2,h3,h4,button,input,label{line-height:1.2}h1,h2,h3,h4{text-wrap:balance}ul,ol{margin:0;padding:0}input,button,textarea,select{font:inherit}a{text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}button{appearance:none;cursor:pointer;background:0 0;border:none;margin:0;padding:0}:root{--color-gray-1:#fcfcfc;--color-gray-2:#f9f9f9;--color-gray-3:#f0f0f0;--color-gray-4:#e8e8e8;--color-gray-5:#e0e0e0;--color-gray-6:#d9d9d9;--color-gray-7:#cecece;--color-gray-8:#bbb;--color-gray-9:#8d8d8d;--color-gray-10:#838383;--color-gray-11:#646464;--color-gray-12:#202020;--color-bg-surface:white;--color-bg-hover:var(--color-gray-2);--color-bg-offset:var(--color-gray-2);--color-text:var(--color-gray-12);--color-text-subdued:var(--color-gray-11);--color-border:var(--color-gray-4);--prose-spacing:1rem}html,body{color:var(--color-text);background:var(--color-bg-surface);font-size:16px}body{-webkit-text-size-adjust:100%;background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0\" y=\"0\" width=\"8px\" height=\"12px\" viewBox=\"0 0 8 12\" xml:space=\"preserve\"><style type=\"text/css\">.st0{fill:%23E1E1E1;}</style><rect class=\"st0\" width=\"4\" height=\"4\"/><rect x=\"4\" y=\"4\" class=\"st0\" width=\"4\" height=\"4\"/><rect y=\"8\" class=\"st0\" width=\"4\" height=\"4\"/></svg>") repeat-x}a{color:inherit;text-decoration:none}:where(h1,h2,h3,h4,h5,h6){font-family:var(--font-heading);font-weight:400}h1{font-size:2.75rem}@media (max-width:650px){h1{font-size:2.1rem}}h2{font-size:2.25rem}h3{font-size:1.75rem}:root{--content-max-width:800px;--layout-padding-x:24px;--grid-columns:[full-start]1fr [header-start]var(--layout-padding-x)[content-start]minmax(0,var(--content-max-width))[content-end]var(--layout-padding-x)[header-end]1fr [full-end]}@media (max-width:650px){:root{--layout-padding-x:4px;--grid-columns:[full-start]calc(var(--layout-padding-x)/2)[header-start content-start]minmax(0,var(--content-max-width))[content-end header-end]calc(var(--layout-padding-x)/2)[full-end]}:root .card-list{--grid-columns:[full-start]calc(var(--layout-padding-x)/2 + 1rem)[header-start content-start]minmax(0,var(--content-max-width))[content-end header-end]calc(var(--layout-padding-x)/2 + 1rem)[full-end]}}body>.wrapper{grid-template-columns:var(--grid-columns);gap:5rem 1rem;padding-bottom:3rem;display:grid}main{display:contents}header{grid-column:header}hr{background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" fill=\"none\" height=\"10\" viewBox=\"0 0 18 10\" width=\"18\"><clipPath id=\"a\"><path d=\"m0 0h18v10h-18z\"/></clipPath><g clip-path=\"url(%23a)\"><path d=\"m0 1c4.56 0 4.56 8 9.14 8s4.56-8 9.14-8 4.56 8 9.14 8 4.56-8 9.14-8 4.58 8 9.14 8 4.58-8 9.14-8 4.58 8 9.16 8\" stroke=\"%23e0e0e0\" stroke-miterlimit=\"10\"/></g></svg>");border:none;grid-column:content;width:100%;height:10px;margin:0}.SiteLogo>div{align-items:center;display:flex;position:relative}.SiteLogo>div canvas{border-radius:100%;width:40px;height:40px}.SiteLogo>div canvas+canvas{mix-blend-mode:multiply;position:absolute;inset:0}.prose{gap:var(--prose-spacing);flex-direction:column;display:flex}.prose a{text-decoration:underline}.prose img,.prose figure{width:100%;height:auto}.prose>img,.prose figure,.prose ul,.prose ol{margin:1rem 0}.prose ul,.prose ol{padding-left:1.5rem}.prose ul li+li,.prose ol li+li{margin-top:.75rem}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{margin-top:1em}.prose ul,.prose pre{margin:0}.prose pre{white-space:pre-wrap;border-radius:12px;margin:.75rem 0;padding:1rem;font-size:.9rem;background-color:var(--color-bg-offset)!important}.prose figure{gap:.75rem;display:grid}.prose figure figcaption{color:var(--color-text-subdued);font-size:.75rem;font-family:var(--font-mono);text-wrap:pretty;max-width:80ch}.LearnMore{font-family:var(--font-mono);text-align:center;color:var(--color-gray-9);margin:0 auto;font-size:.8rem}header{--peek-amount:64px;background-color:var(--color-bg-offset);margin:1.5rem auto;margin-top:calc(var(--peek-amount) + 5rem);clip-path:inset(-50% 0% 0% -50%);background:linear-gradient(#fcfcfc,#f9f9f9);border-radius:20px;align-items:center;gap:1rem;padding-inline:2rem 0;display:flex;position:relative}@media (max-width:650px){header{margin-inline:-18px;margin-top:calc(var(--peek-amount) + 4rem);background:linear-gradient(#fff0,#f9f9f9);border-radius:0;flex-direction:column;padding:0}}header:before{content:"";border:1px solid var(--color-gray-4);pointer-events:none;border-radius:20px;position:absolute;inset:0}@media (max-width:650px){header:before{border:none;border-radius:0}}header:after{content:"";background:var(--color-gray-4);z-index:2;height:1px;position:absolute;bottom:0;left:20px;right:20px}@media (max-width:650px){header:after{left:0;right:0}}header .card-wrapper{transform:translate(1rem,calc(-1*var(--peek-amount)));margin-bottom:calc(-1*var(--peek-amount) - 2.5rem);z-index:1;display:flex}@media (max-width:650px){header .card-wrapper{margin-bottom:calc(-1*var(--peek-amount) - 3.5rem);clip-path:inset(-50% -50% 2.5rem);transform:translate(.55rem,calc(-1*var(--peek-amount)))}}header .card1,header .card2{background:#fff;border-radius:12px;width:350px;min-height:400px;padding:1.5rem;box-shadow:0 .9px 4px #0000001f,0 2.1px 9.5px #0000001f,inset 0 0 0 -1px #00000029}@media (max-width:650px){header .card1,header .card2{width:320px;min-height:370px}}header .card1 h1,header .card2 h1{text-wrap:pretty;font-size:1.5rem;font-weight:400;line-height:1.4}@media (max-width:650px){header .card1 h1,header .card2 h1{font-size:1.4rem}}header .card1 h1>a,header .card2 h1>a{text-underline-offset:3px;font-style:italic;-webkit-text-decoration:underline #ffb068;text-decoration:underline #ffb068;text-decoration-thickness:3px}header .card1 a[href^=mailto],header .card2 a[href^=mailto]{font-size:.8rem;font-family:var(--font-mono);background-color:#acefa0;border-radius:999em;padding:5px 14px 4px}header .card2{padding-bottom:var(--peek-amount);flex-direction:column;justify-content:space-between;align-items:flex-start;display:flex;position:absolute}header .card2>div:has(h1) span{font-family:var(--font-mono);color:var(--color-text-subdued);margin-bottom:.75rem;font-size:.8rem;display:block}header .email-link{align-items:center;display:inline-flex}header .email-link>span{opacity:0;justify-content:center;align-items:center;width:0;transition:all .2s ease-in-out;display:inline-flex;overflow:hidden;transform:translateY(-.5px)}header .email-link>span svg{width:12px;height:12px;color:inherit;vertical-align:middle}header .email-link:hover>span{opacity:1;width:12px;margin-left:8px}header .info{--padding-x:2.5rem;padding:1rem var(--padding-x);width:100%;font-size:.9rem}@media (max-width:650px){header .info{border-top:1px solid var(--color-border);--padding-x:1.5rem;padding:1.5rem var(--padding-x)}}header .info dl{row-gap:1.5rem;display:grid}header .info dl>div{flex-direction:column;gap:.1rem;min-width:0;display:flex}header .info dl dt{color:var(--color-text-subdued);font-size:.75rem;font-family:var(--font-mono);width:100%}header .info .socials{color:var(--color-text-subdued);gap:.75rem;margin-top:4px;display:flex}header .info a{transition:color .3s}header .info a:hover{color:var(--color-text)}header .info a.linkedin:hover{color:#0a66c2}header .info a.github:hover{color:#000}header .info a.mastodon:hover{color:#6364ff}header .info a.instagram:hover{color:#c32aa3}header .info .Marquee{margin-inline:calc(-1*var(--padding-x));margin-top:6px}.card-list{--hover-offset:16px;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding:var(--hover-offset)0;margin:calc(-1*var(--hover-offset))0;grid-column:full;grid-template-columns:var(--grid-columns);display:grid;overflow-x:scroll}.card-list>div{grid-column:content;gap:32px;display:flex}.card-list>div:after{content:"";align-self:stretch;padding-inline-end:max(32px,(100vw - var(--content-max-width))/2 - 32px)}.ProjectCard{--border-radius:12px;border-radius:calc(var(--border-radius) + 8px);border:1px solid #0000;min-width:calc(45% - 21.3333px);position:relative}@media (max-width:650px){.ProjectCard{min-width:calc(95% - 32px)}}.ProjectCard:after{content:"";inset:calc(-1*var(--hover-offset));border-radius:calc(var(--border-radius) + 8px);background-color:var(--color-bg-hover);opacity:0;z-index:-1;transition:opacity .3s;position:absolute}.ProjectCard:hover:after{opacity:1}.ProjectCard>.wrapper{flex-direction:column;justify-content:space-between;gap:12px;height:100%;display:flex}.ProjectCard a{inset:calc(-1*var(--hover-offset));position:absolute}.ProjectCard .image-container{border-radius:var(--border-radius);width:100%;position:relative;overflow:clip}.ProjectCard .image-container img{object-fit:cover;width:100%;height:100%}.ProjectCard .title-container{flex-direction:column;gap:4px;display:flex}.ProjectCard .title-container h2{text-wrap:pretty;font-size:1.5rem}.ProjectCard .title-container p{color:var(--color-text-subdued);text-wrap:pretty;font-size:.9rem}.ProjectCard-placeholder{min-width:calc(45% - 21.3333px);color:var(--color-gray-9);background-image:url("data:image/svg+xml;utf8,<svg width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' fill='none' rx='20' ry='20' stroke='%23d8dee4' stroke-width='1.5' stroke-dasharray='8, 8' stroke-dashoffset='4' stroke-linecap='round' style='width: calc(100% - 3px); height: calc(100% - 3px); transform: translateY(1px) translateX(1px);' /></svg>");border-radius:20px;justify-content:center;align-items:center;font-size:.8rem;display:flex}@media (max-width:650px){.ProjectCard-placeholder{min-width:calc(95% - 32px)}}.DialogOverlay{-webkit-backdrop-filter:saturate(0);backdrop-filter:saturate(0);background:#bfbfbfb3;position:fixed;inset:0}.DialogContent{--max-width:840px;width:100vw;height:100%;max-width:var(--max-width);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.DialogContent .wrapper{width:100%;height:100%;margin:0 auto;position:relative}.DialogContent .card-content{background:var(--color-bg-surface);flex-direction:column;gap:2rem;width:100%;height:100%;padding:2rem 2rem 4rem;display:flex;position:relative;overflow-y:auto}@media (max-width:650px){.DialogContent .card-content{padding:1rem 1rem 4rem}}.DialogContent .image-container{height:auto}.DialogContent .image-container img{border-radius:12px;width:100%;height:auto}.DialogContent .title-container{flex-direction:column;gap:.5rem;width:100%;display:flex;position:relative}.DialogContent .title-container p{color:var(--color-text-subdued);text-wrap:pretty;max-width:55ch;font-size:1.2rem}.DialogContent .title-container .meta{align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.DialogContent .title-container .meta span{font-family:var(--font-mono);color:var(--color-text-subdued);border:1px solid var(--color-border);text-transform:uppercase;border-radius:999em;padding:2px 8px;font-size:.75rem}.DialogContent .title-container h1{padding-right:8rem}.DialogContent .title-container button{color:var(--color-gray-9);padding:1rem;display:flex;position:absolute;top:.05rem;right:0}.DialogContent .title-container button:focus-visible{outline:none}.DialogContent .content{grid-template-columns:[full-start]4rem[main-start]1fr[main-end]4rem[full-end];column-gap:0;display:grid}@media (max-width:650px){.DialogContent .content{grid-template-columns:[full-start main-start]1fr[main-end full-end]}}.DialogContent .content>*{grid-column:main}.DialogContent .content>:is(img,figure):not(.small){grid-column:full}.DialogContent .content>figure{grid-template-columns:subgrid;column-gap:0;display:grid}.DialogContent .content>figure img{grid-column:full}.DialogContent .content>figure figcaption{grid-column:main}.DialogContent:focus{outline:none}.Marquee{text-wrap:nowrap;flex-direction:column;gap:8px;display:flex;overflow-x:clip}.Marquee .MarqueeRow{display:flex}.Marquee span{border:1px solid var(--color-gray-5);color:var(--color-text-subdued);border-radius:6px;margin-right:8px;padding:2px 6px;font-size:.8rem}main>section{grid-column:full;grid-template-columns:var(--grid-columns);gap:2rem 1rem;display:grid}main>section>*{grid-column:content}main>section:first-child{margin-top:-2rem}main>section .header{flex-direction:column;gap:.5rem;display:flex}main>section .section-title{align-items:baseline;gap:1rem;margin-top:-.5rem;display:flex}main>section .section-title span{font-family:var(--font-mono);border:1px solid var(--color-gray-4);color:var(--color-text-subdued);border-radius:999em;padding:2px 8px;font-size:.75rem;translate:0 -.35rem}main>section .description{color:var(--color-text-subdued);text-wrap:pretty;max-width:70ch}
