@font-face{font-family:aeonik;src:url(../media/Aeonik_Regular-s.p.0l_a99z65sgvl.woff2)format("woff2");font-display:swap;font-weight:400}@font-face{font-family:aeonik;src:url(../media/Aeonik_Medium-s.p.2o3l7_fq2st8h.woff2)format("woff2");font-display:swap;font-weight:500}@font-face{font-family:aeonik Fallback;src:local(Arial);ascent-override:98.7%;descent-override:19.76%;line-gap-override:0.0%;size-adjust:101.32%}.aeonik_debbb2dc-module__C6GjJG__className{font-family:aeonik,aeonik Fallback}.aeonik_debbb2dc-module__C6GjJG__variable{--font-aeonik:"aeonik", "aeonik Fallback"}
@font-face{font-family:mono;src:url(../media/IBMPlexMono_Regular-s.p.0q3l_x-uz78rk.woff2)format("woff2");font-display:swap}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.95%;descent-override:20.91%;line-gap-override:0.0%;size-adjust:131.49%}.mono_471cd199-module__FQA36W__className{font-family:mono,mono Fallback}.mono_471cd199-module__FQA36W__variable{--font-mono:"mono", "mono Fallback"}
:root{--paper:#f7f5ef;--ink:#000;--muted:#e4e6ef;--dark:#2b2e3a;--gutter:max(5vw,40px);--pad-y:clamp(30px,4vw,50px);--gap:2vw;--ease:cubic-bezier(.4,0,.1,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:none}html::-webkit-scrollbar{display:none}body{background:var(--paper);color:var(--ink);font-family:var(--font-aeonik),Arial,sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.15}button,a{-webkit-tap-highlight-color:transparent}button,input,a{font:inherit}button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline-offset:6px;outline:2px solid #1a2ffb}::selection{color:var(--paper);background:#000}h1,h2,h3,p{margin:0;font-weight:400}svg{width:100%;height:100%;display:block}.portfolio{overflow:clip}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;color:#fff;background:#000;padding:15px;position:fixed;top:10px;left:10px;transform:translateY(-150%)}.skip-link:focus{transform:none}.site-header>*{pointer-events:auto}.wordmark{text-align:left;flex-direction:column;line-height:.92;display:inline-flex}.wordmark>span:first-child{letter-spacing:-.025em;font-size:25px}.wordmark>span:last-child{letter-spacing:.49em;margin-top:5px;margin-left:2px;font-size:9px}.pill{text-transform:uppercase;height:44.8px;transition:background .4s,color .4s,transform .4s var(--ease);border-radius:100px;justify-content:center;align-items:center;gap:14px;padding:0 22px;font-size:14px;font-weight:500;display:flex}.pill:hover{transform:translateY(-2px)}.projects-section{padding:var(--pad-y) var(--gutter);position:relative}.projects-heading{margin-top:0}.title-wrapper{width:fit-content;height:1.17572em;font-size:17vw;position:relative;left:-.01em}.projects-heading h1{white-space:nowrap;letter-spacing:0;font-size:1em;font-weight:400;line-height:1;display:inline-block;position:relative;left:-1vw;overflow:hidden}.hero-letter{transform-origin:0 100%;display:inline-block}.project-grid{column-gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr));row-gap:80px;margin-top:8vh;scroll-margin-top:125px;display:grid}.project-card{text-align:left;outline-offset:10px;min-width:0;display:block;position:relative}.project-media{aspect-ratio:1/.65;background:var(--project-color);isolation:isolate;transform-origin:50%;border-radius:15px;width:100%;position:relative;overflow:hidden}.project-image{object-fit:cover;width:100%;height:100%;transition:transform 1.1s var(--ease);-webkit-user-select:none;user-select:none;display:block}.project-card:hover .project-image{transform:scale(1.035)}.project-category{text-transform:uppercase;min-height:1.15em;margin:1.5em 0 1em;font-size:.9vw;line-height:1.15}.project-name{font-size:3vw;line-height:1.15;position:relative;left:-.06em;overflow:hidden}.project-arrow{width:.8em;height:.8em;transition:transform .6s var(--ease) 60ms;position:absolute;top:.175em;left:-1em}.project-card:is(:hover,:focus-visible) .project-arrow{transform:translate(1em)}.site-footer{padding:var(--pad-y) var(--gutter);flex-direction:column;justify-content:space-between;display:flex}.footer-content{padding-top:8vh}.footer-company .wordmark>span:first-child{font-size:40px}.footer-company .wordmark>span:last-child{font-size:14px}.footer-company>p{margin-top:50px;font-size:18px}.company-number{margin-top:12px;font-size:14px;display:block}.footer-bottom{justify-content:space-between;align-items:center;gap:20px;padding-top:80px;font-size:12px;display:flex}.footer-bottom>a{text-transform:uppercase;align-items:center;gap:14px;display:flex}.footer-bottom svg{width:20px;height:20px;transform:rotate(-90deg)}@media (min-aspect-ratio:21/9){:root{--gutter:max(6vw,60px)}.project-name{font-size:2vw}.project-category{font-size:.6vw}.project-grid{row-gap:160px}}@media (max-width:812px){:root{--gutter:25px;--pad-y:25px;--gap:4vw}.wordmark>span:first-child{font-size:23px}.wordmark>span:last-child{font-size:8px}.projects-heading{margin-top:0;margin-bottom:32px}.title-wrapper{height:1.177em}h1{font-kerning:normal}.hero-letter{display:contents}.project-grid{grid-template-columns:1fr;row-gap:32px;margin-top:0}.project-category{font-size:max(10px,2.5vw)}.project-name{font-size:6.5vw}.project-arrow{transform:translate(1em)}.footer-content{padding-top:48px}.footer-company .wordmark>span:first-child{font-size:30px}.footer-company .wordmark>span:last-child{font-size:11px}.footer-company>p{margin-top:30px;font-size:16px}.footer-bottom{flex-wrap:wrap;row-gap:24px;padding-top:60px;padding-bottom:15px;font-size:11px}.footer-bottom>span:nth-child(2){display:none}}@media (max-width:400px){:root{--gutter:15px;--pad-y:15px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.project-image{transform:none!important}}.project-category{overflow-wrap:normal}.project-title{transition:transform .55s var(--ease);display:block}@media (hover:hover) and (pointer:fine){.project-card:hover .project-title{transform:translate(1.5em)}}.project-card:focus-visible .project-title{transform:translate(1.5em)}@media (max-width:812px){.project-title{transform:translate(1.5em)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-image,.project-title{transition:none}}.site-header{z-index:30;padding:clamp(16px,2.5vw,28px) var(--gutter);isolation:isolate;pointer-events:none;justify-content:space-between;align-items:center;transition:transform .3s cubic-bezier(.22,.61,.36,1);display:flex;position:fixed;inset:0 0 auto;transform:translateY(0)}.site-header:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7f5efa6;position:absolute;inset:0 0 -36px;-webkit-mask-image:linear-gradient(#000 0% calc(100% - 36px),#0000 100%);mask-image:linear-gradient(#000 0% calc(100% - 36px),#0000 100%)}.site-header[data-hidden=true]{transform:translateY(calc(-100% - 40px))}.site-header:has(:focus-visible){transform:translateY(0)}.brand{pointer-events:auto;width:fit-content;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;display:block}@media (prefers-reduced-motion:reduce){.site-header{transition:none}}.project-card{scroll-margin-top:125px}.detail-close{background:#fff;gap:20px}.detail-close>span{line-height:1}.detail-close .close-icon{flex:none;width:18px;height:18px}.project-detail{padding:125px var(--gutter) 80px;max-width:1800px;margin:auto}.detail-image{object-fit:cover;border-radius:15px;width:100%;height:auto;max-height:68vh;display:block}.detail-caption{justify-content:space-between;align-items:flex-start;gap:40px;margin-top:32px;display:flex}.detail-category{text-transform:uppercase;font-size:12px;line-height:1.5}.detail-caption h1{letter-spacing:-.035em;white-space:normal;margin-top:12px;font-size:clamp(48px,6vw,96px);line-height:1.15;display:block;position:static}.detail-description{max-width:65ch;margin-top:22px;font-size:14px;line-height:1.6}.detail-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:12px;padding-top:8px;display:flex}.visit-project{background:var(--ink);height:52px;color:var(--paper);gap:32px;padding:0 24px}.visit-project svg{width:22px;height:22px;transform:rotate(-45deg)}.visit-project.unavailable{opacity:.4;cursor:default;transform:none}.detail-actions p{font-size:12px;line-height:1.4}@media (max-width:812px){.project-detail{padding-top:106px;padding-bottom:50px}.detail-image{aspect-ratio:4/3;height:auto;max-height:none}.detail-caption{flex-direction:column;gap:24px;margin-top:24px}.detail-actions{align-items:flex-start;padding-top:0}.detail-close{gap:14px;height:40px;padding:0 17px;font-size:12px}}.personal-intro{padding:clamp(150px,14vw,190px) var(--gutter) 60px;grid-template-columns:144px minmax(0,760px);align-items:start;gap:42px;display:grid}.intro-avatar{object-fit:cover;border-radius:50%;width:144px;height:144px;margin-top:4px;display:block}.intro-greeting{letter-spacing:-.035em;font-size:clamp(28px,3vw,42px);line-height:1.2}.intro-greeting>span{margin-right:5px;font-size:.8em;display:inline-block}.intro-bio{letter-spacing:-.025em;text-wrap:pretty;max-width:30ch;margin-top:18px;font-size:clamp(25px,2.7vw,38px);line-height:1.25}.intro-note{color:#55554f;margin-top:22px;font-size:18px;line-height:1.5}.intro-socials{gap:10px;margin-top:24px;display:flex}.intro-socials a{border:1px solid #0000002e;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .2s,color .2s,transform .2s;display:flex}.intro-socials svg{width:18px;height:18px}.intro-socials a:is(:hover,:focus-visible){background:var(--ink);color:var(--paper);transform:translateY(-2px)}@media (max-width:812px){.personal-intro{grid-template-columns:1fr;gap:24px;padding-top:120px;padding-bottom:42px}.intro-avatar{width:88px;height:88px;margin:0}.intro-greeting{font-size:30px}.intro-bio{max-width:30ch;margin-top:16px;font-size:27px}.intro-note{margin-top:20px;font-size:16px}.intro-socials{margin-top:20px}}body[data-site=personal] .personal-intro{padding-top:clamp(60px,7vw,100px)}body[data-site=personal] .projects-section{padding-bottom:80px}.personal-close{top:clamp(16px,2.5vw,28px);right:var(--gutter);z-index:3;position:absolute}
