@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a440747434783fbe-s.047_itglma3g9.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/3aa4d934eba90e8b-s.0n5n~7w2.92ui.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/1ce0dcbf49a4d2fc-s.05xmf775qspvj.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/2edaebbda2e96a79-s.0eowbdkc6-11h.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/704a14dc8309e245-s.0j8~eg.iqcnq~.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/c88e89b5552bf96c-s.0dcndg~e7g9vk.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/234d9015b631dab9-s.p.0_3shu4gwev1q.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_31189b46-module__SdBMeq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_31189b46-module__SdBMeq__variable{--font-inter-portfolio:"Inter", "Inter Fallback"}
.portfolio{--portfolio-bg:#fafaf9;--portfolio-ink:#111;--portfolio-muted:#6b6b6b;--portfolio-rule:#11111114;--portfolio-focus:#1f4ad6;background:var(--portfolio-bg);color:var(--portfolio-ink);font-family:var(--font-inter-portfolio), -apple-system, system-ui, sans-serif;letter-spacing:-.005em;font-feature-settings:"ss01", "cv11", "tnum";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100vh;font-size:14px;font-weight:400;line-height:1.55}.portfolio-main{max-width:640px;margin:0 auto;padding:120px 24px 96px;position:relative}.portfolio-wordmark-wrap{display:inline-block}.portfolio-wordmark{font-size:inherit;font-weight:inherit;margin:0;line-height:1}.portfolio-wordmark-link{color:var(--portfolio-ink);text-decoration:none;display:block}.portfolio-wordmark-link:focus-visible{outline:2px solid var(--portfolio-focus);outline-offset:4px;border-radius:1px}.portfolio-wordmark-display{color:var(--portfolio-ink);font-variation-settings:"wght" 480;align-items:baseline;gap:10px;display:inline-flex}.portfolio-wordmark-name{letter-spacing:-.022em;line-height:1.1}.portfolio-wordmark-handle{letter-spacing:-.01em;color:var(--portfolio-muted);font-variation-settings:"wght" 420;grid-template-areas:"stack";line-height:1.1;display:inline-grid;overflow:hidden}.portfolio-wordmark-handle-line{white-space:nowrap;grid-area:stack;transition:transform .2s cubic-bezier(.23,1,.32,1)}.portfolio-wordmark-handle-line:first-child{transform:translateY(0%)}.portfolio-wordmark-handle-line:nth-child(2){transform:translateY(110%)}.portfolio-wordmark-handle[data-active=true] .portfolio-wordmark-handle-line:first-child{transform:translateY(-110%)}.portfolio-wordmark-handle[data-active=true] .portfolio-wordmark-handle-line:nth-child(2){transform:translateY(0%)}.portfolio .id{margin:0 0 24px}.portfolio .intro{color:var(--portfolio-ink);max-width:44ch;margin:0 0 24px}.portfolio .intro p{margin:0}.portfolio section{margin-bottom:24px}.portfolio section:last-of-type{margin-bottom:0}.portfolio .label{letter-spacing:-.005em;color:var(--portfolio-muted);margin:0 0 16px;font-weight:500;line-height:1.55}.portfolio h1.label,.portfolio h2.label,.portfolio h3.label{font-family:inherit}.portfolio .portfolio-projects-list{margin:0;padding:0;list-style:none}.portfolio .portfolio-projects-list .portfolio-link{font-variation-settings:"wght" 480}.portfolio .portfolio-elsewhere{flex-wrap:wrap;align-items:baseline;gap:8px 24px;margin:0;padding:0;list-style:none;display:flex}.portfolio .portfolio-elsewhere>li{padding:0}.portfolio .portfolio-experience{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.portfolio .portfolio-experience li{flex-direction:column;line-height:1.45;display:flex}.portfolio .portfolio-experience-role{color:var(--portfolio-ink);font-variation-settings:"wght" 480}.portfolio .portfolio-experience-role .portfolio-link{font-variation-settings:inherit;color:inherit}.portfolio .portfolio-experience-detail{color:var(--portfolio-muted);line-height:1.4}.portfolio .portfolio-link{isolation:isolate;color:var(--portfolio-ink);font-variation-settings:"wght" 420;min-height:24px;padding:6px 0;text-decoration:none;display:inline-block;position:relative}.portfolio .portfolio-link:focus-visible{outline:2px solid var(--portfolio-focus);outline-offset:4px;border-radius:1px}.portfolio .portfolio-projects-list .portfolio-link>*{transform-origin:0 100%;transition:transform .26s cubic-bezier(.23,1,.32,1);display:inline-block;transform:skew(0)}.portfolio .portfolio-projects-list .portfolio-link:hover>*,.portfolio .portfolio-projects-list .portfolio-link:focus-visible>*{transform:skew(-8deg)}.portfolio .portfolio-elsewhere-email{perspective:320px}.portfolio .portfolio-elsewhere-at{transform-origin:50% 55%;transform-style:preserve-3d;backface-visibility:visible;transition:transform .62s cubic-bezier(.23,1,.32,1);display:inline-block;transform:rotateY(0)}.portfolio .portfolio-elsewhere-email:hover .portfolio-elsewhere-at,.portfolio .portfolio-elsewhere-email:focus-visible .portfolio-elsewhere-at{transform:rotateY(360deg)}.portfolio .portfolio-inline-link{text-underline-offset:3px;min-height:0;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--portfolio-rule);text-decoration-color:var(--portfolio-rule);padding:0;transition:text-decoration-color .2s;display:inline}.portfolio .portfolio-inline-link:hover{-webkit-text-decoration-color:var(--portfolio-ink);text-decoration-color:var(--portfolio-ink)}.portfolio .portfolio-inline-link [aria-hidden=true]{display:none}.portfolio .portfolio-link-content{display:inline-block;position:relative}.portfolio .portfolio-link-underline{opacity:.5;transform-origin:0;background:currentColor;height:1px;transition:transform .24s cubic-bezier(.23,1,.32,1);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.portfolio .portfolio-swap{vertical-align:bottom;line-height:inherit;grid-template-areas:"stack";display:inline-grid;overflow:hidden}.portfolio .portfolio-swap-from,.portfolio .portfolio-swap-to{white-space:nowrap;grid-area:stack;transition:transform .24s cubic-bezier(.23,1,.32,1)}.portfolio .portfolio-swap-from{transform:translateY(0%)}.portfolio .portfolio-swap-to{transform:translateY(110%)}.portfolio .portfolio-link:hover .portfolio-swap-from,.portfolio .portfolio-link:focus-visible .portfolio-swap-from{transform:translateY(-110%)}.portfolio .portfolio-link:hover .portfolio-swap-to,.portfolio .portfolio-link:focus-visible .portfolio-swap-to{transform:translateY(0%)}.portfolio .portfolio-swap-destination{align-items:center;gap:.38em;display:inline-flex}.portfolio .portfolio-swap-arrow{transform-origin:50%;width:.9em;height:.9em;transition:transform .24s cubic-bezier(.23,1,.32,1);overflow:visible;transform:rotate(-45deg)}.portfolio .portfolio-link:hover .portfolio-swap-arrow,.portfolio .portfolio-link:focus-visible .portfolio-swap-arrow{transform:rotate(-45deg)translate(1.5px,-1.5px)}.portfolio .portfolio-footer{color:var(--portfolio-muted);align-items:center;gap:8px;margin-top:32px;display:flex}.portfolio .portfolio-status-dot{background-color:var(--portfolio-status-color,currentColor);width:5px;height:5px;opacity:var(--portfolio-status-opacity,.58);box-shadow:0 0 var(--portfolio-status-glow,4px) var(--portfolio-status-color,currentColor), 0 0 calc(var(--portfolio-status-glow,4px) * 1.8) color-mix(in oklab, var(--portfolio-status-color,currentColor) 45%, transparent);border-radius:999px;transition:background-color .8s cubic-bezier(.23,1,.32,1),opacity .8s cubic-bezier(.23,1,.32,1),box-shadow .8s cubic-bezier(.23,1,.32,1);animation:6s ease-in-out infinite portfolio-status-breathe}.portfolio .portfolio-back{color:var(--portfolio-muted);margin:0 0 24px}.portfolio .portfolio-case-header{margin:0 0 24px}.portfolio .portfolio-case-title{letter-spacing:-.022em;font-variation-settings:"wght" 480;margin:0 0 4px;line-height:1.1}.portfolio .portfolio-case-meta,.portfolio .portfolio-case-body p{color:var(--portfolio-muted);margin:0}.portfolio ::selection{background:var(--portfolio-ink);color:var(--portfolio-bg)}@keyframes portfolio-status-breathe{0%,to{transform:scale(.92)}50%{transform:scale(1.08)}}@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation-duration:.32s;animation-timing-function:cubic-bezier(.23,1,.32,1)}::view-transition-new(root){animation-duration:.32s;animation-timing-function:cubic-bezier(.23,1,.32,1)}}@media (prefers-reduced-motion:reduce){.portfolio *,.portfolio :before,.portfolio :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
