@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.3ms9vq719j3f8.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__VkLvga__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__VkLvga__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
:root{--background:#fff;--foreground:#000;--muted:#0006;--surface:#f5f5f5;--focus-ring:#143cfe;--radius:16px;--motion-ease:cubic-bezier(.2, 1, .36, 1);--motion-page-exit:.32s;--motion-page-enter:.32s;--motion-page-exit-ease:cubic-bezier(.65, 0, .35, 1);--motion-page-enter-ease:cubic-bezier(.65, 0, .35, 1);--motion-hover:.18s;--motion-lightbox-enter:.32s;--motion-lightbox-exit:.32s;--motion-control-state:.16s;--project-image-crop-scale:1.006;--project-image-hover-scale:1.026}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}::selection{color:#143cfe;background:#d9dffc}html{background:var(--background);scroll-behavior:smooth;scrollbar-gutter:stable}@supports not selector(::-webkit-scrollbar){html{scrollbar-color:#00000026 transparent;scrollbar-width:thin}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-track-piece{background:0 0}::-webkit-scrollbar-thumb{background:0 0;border-radius:100px}:hover::-webkit-scrollbar-thumb{background:#00000026}::-webkit-scrollbar-thumb:hover{background:#00000040}::-webkit-scrollbar-corner{background:0 0}body{background:var(--background);color:var(--foreground);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;font-weight:400;line-height:22px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{color:inherit}p,h1,h2,dl,dd{margin:0}p{text-wrap:pretty}h1,h2{text-wrap:balance}img{max-width:100%}.muted{color:var(--muted)}.srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sitePage{width:min(1592px,100% - 128px);transition:filter var(--motion-lightbox-enter) var(--motion-ease);grid-template-columns:579px minmax(0,949px);gap:64px;margin:0 auto;padding:64px 0;display:grid}.sidebar{opacity:1;filter:blur();grid-template-rows:min-content 1fr min-content;grid-template-columns:338px 177px;align-self:start;column-gap:64px;height:calc(100vh - 128px);display:grid;position:sticky;top:64px;transform:translate(0,0)}.sidebarIntro{flex-direction:column;grid-area:1/1;gap:12px;display:flex}.identity{flex-direction:column;gap:0;display:flex}.identityLink{border-radius:4px;width:fit-content}.identityLink:focus-visible{outline-color:var(--focus-ring);outline-offset:4px}.bio{flex-direction:column;gap:12px;display:flex}.siteNav{flex-direction:column;grid-area:1/2/span 2;gap:12px;display:flex}.navGroup{flex-direction:column;display:flex}.navGroup+.navGroup{margin-top:0}.resumeNav{margin-top:0!important}.navLink{width:fit-content;color:var(--muted);transition:color var(--motion-hover) var(--motion-ease);margin-right:-12px;padding-left:0;padding-right:12px;display:block}.navLinkText{transition:transform var(--motion-hover) var(--motion-ease);display:block;transform:translate(0)}.navLink:focus-visible,.navLink.active{color:var(--foreground)}.navLink:focus-visible .navLinkText,.navLink.active .navLinkText{transform:translate(12px)}.projectNav .navLink{padding-left:24px}.sidebarStatus{font-variant-numeric:tabular-nums;grid-area:3/1;align-items:center;gap:24px;display:flex}.profilePhoto{object-fit:cover;border-radius:5px;width:44px;height:44px}.liveClock{white-space:nowrap;gap:4px;display:inline-flex}.mainContent{opacity:1;filter:blur();min-width:0;transform:translate(0,0)}.sidebar[data-initial-transition=initial],.mainContent[data-transition=initial]{opacity:0;filter:blur(4px);transition:none;transform:translate(-16px)}.sidebar[data-initial-transition=idle],.mainContent[data-transition=idle]{transition:opacity var(--motion-page-enter) var(--motion-page-enter-ease), filter var(--motion-page-enter) var(--motion-page-enter-ease), transform var(--motion-page-enter) var(--motion-page-enter-ease)}.mainContent[data-transition=prepare]{opacity:0;filter:blur(4px);transition:none;transform:translate(-16px)}.mainContent[data-transition=exit]{animation:routePageExit var(--motion-page-exit) var(--motion-page-exit-ease) forwards;pointer-events:none}@keyframes routePageExit{0%{opacity:1;filter:blur();transform:translate(0,0)}to{opacity:0;filter:blur(4px);transform:translate(-16px)}}.projectsList{flex-direction:column;gap:64px;display:flex}.projectCardLink{border-radius:var(--radius);display:block}.projectCardLink:focus-visible{outline-color:var(--focus-ring);outline-offset:6px}.projectCardMedia,.caseCover,.galleryItem{border-radius:var(--radius);background:var(--surface);isolation:isolate;position:relative;overflow:hidden}.projectCardMedia img,.caseCover img,.galleryItem img{backface-visibility:hidden;image-rendering:auto;border-radius:0;width:100%;height:auto;display:block}.projectCardMedia img,.caseCoverButton img,.galleryItem img{transform:translateZ(0) scale(var(--project-image-crop-scale));transition:transform .18s}.projectCardText{align-items:flex-start;gap:24px;margin-top:24px;display:flex}.projectCopy{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.projectCopy h2,.caseCopy h1,.placeholderPage h1{font-size:16px;font-weight:400;line-height:inherit}.projectCopy p{color:var(--muted)}.pillAction{background:var(--surface);white-space:nowrap;min-height:37px;transition:background-color var(--motion-hover) var(--motion-ease), color var(--motion-hover) var(--motion-ease), transform var(--motion-hover) var(--motion-ease);border-radius:999px;flex:none;justify-content:center;align-items:center;padding:8px 12px;display:inline-flex;transform:scale(1)}.pillAction:focus-visible{background:#e9e9e9}.pillAction:active{transform:scale(.96)}.casePage{padding-bottom:24px}.caseCoverButton{cursor:pointer;border:0;width:100%;padding:0;display:block}.caseCoverButton:focus-visible,.galleryItem:focus-visible{outline-color:var(--focus-ring);outline-offset:6px}.caseIntro{align-items:flex-start;gap:24px;margin-top:24px;display:flex}.caseCopy{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.caseCopy p{color:var(--muted)}.caseMeta{grid-template-columns:231px 1fr;gap:8px;margin-top:24px;display:grid}.metaCard{border-radius:var(--radius);background:var(--surface);min-width:0;padding:24px}.metaCard dt{color:var(--muted);margin-bottom:4px}.metaCard dd{overflow-wrap:anywhere}.caseNotice{margin:24px 0}.projectGallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.galleryItem{cursor:pointer;border:0;width:100%;padding:0;display:block}.galleryItem.wide{grid-column:1/-1}.projectPlaceholder,.placeholderPage{border-radius:var(--radius);background:var(--surface);min-height:535px;color:var(--muted);text-align:center;place-items:center;padding:48px;display:grid}.placeholderPage>div{flex-direction:column;gap:12px;max-width:560px;display:flex}.lightbox{z-index:1000;position:fixed;inset:0;overflow:hidden}body[data-lightbox-open=true] .sitePage{filter:blur(24px)}body[data-lightbox-closing=true] .sitePage{transition-duration:var(--motion-lightbox-exit)}.lightboxBackdrop{z-index:0;pointer-events:none;opacity:0;transition:opacity var(--motion-lightbox-exit) var(--motion-ease);will-change:opacity;background:#0006;position:absolute;inset:0}.lightbox[data-state=open] .lightboxBackdrop{opacity:1;transition-duration:var(--motion-lightbox-enter)}.lightbox[data-state=closing]{pointer-events:none}.lightbox[data-state=closing] .lightboxBackdrop{opacity:0;transition-duration:var(--motion-lightbox-exit)}.lightboxScroller{z-index:1;overscroll-behavior:none;scrollbar-width:none;touch-action:pan-y;opacity:0;filter:blur(4px);transition:opacity var(--motion-lightbox-enter) var(--motion-ease), filter var(--motion-lightbox-enter) var(--motion-ease), transform var(--motion-lightbox-enter) var(--motion-ease);will-change:opacity, filter, transform;position:absolute;inset:0;overflow:hidden auto;transform:translateY(-16px)}.lightbox[data-state=open] .lightboxScroller{opacity:1;filter:blur();transform:translate(0,0)}.lightbox[data-state=closing] .lightboxScroller{opacity:0;filter:blur(4px);transition-duration:var(--motion-lightbox-exit);transform:translateY(-16px)}.lightboxScroller:focus{outline:none}.lightboxScroller::-webkit-scrollbar{width:0;height:0;display:none}.lightboxTrack{flex-direction:column;align-items:center;gap:8px;padding-block:50svh;display:flex}.lightboxSlide{aspect-ratio:1898/1070;border-radius:var(--radius);background:0 0;flex:none;width:min(1476px,100vw - 128px);max-width:min(1476px,100vw - 128px);max-height:calc(100svh - 128px);margin:0;position:relative;overflow:hidden}.lightboxSlideImage{object-fit:cover;backface-visibility:hidden;image-rendering:auto;border-radius:0;width:100%;height:100%;display:block}.lightboxSlidePair{background:0 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.lightboxSlideHalf{border-radius:var(--radius);min-width:0;overflow:hidden}.lightboxClose,.lightboxArrow{color:#000000a3;cursor:pointer;background:#f5f5f5;border:0;border-radius:999px;place-items:center;width:38px;height:38px;padding:0;display:grid;position:relative}.lightboxArrow{transition:background-color .12s var(--motion-ease), color var(--motion-control-state) var(--motion-ease), transform .12s var(--motion-ease)}.lightboxClose:before,.lightboxArrow:before{content:"";position:absolute;inset:-3px}.lightboxControlIcon{display:block;overflow:visible}.lightboxArrowIconPrevious{transform:translateY(-1px)}.lightboxArrowIconNext{transform:translateY(1px)}.lightboxClose{z-index:3;opacity:0;filter:blur(4px);transition:background-color .12s var(--motion-ease), opacity var(--motion-lightbox-enter) var(--motion-ease), filter var(--motion-lightbox-enter) var(--motion-ease), transform var(--motion-lightbox-enter) var(--motion-ease);position:fixed;top:64px;right:max(16px,50vw + -1*min(738px,50vw - 64px) - 58px);transform:translateY(-16px)scale(.96)}.lightboxNavigation{z-index:3;opacity:0;filter:blur(4px);transition:opacity var(--motion-lightbox-enter) var(--motion-ease), filter var(--motion-lightbox-enter) var(--motion-ease), transform var(--motion-lightbox-enter) var(--motion-ease);flex-direction:column;gap:8px;display:flex;position:fixed;top:50%;right:max(16px,50vw + -1*min(738px,50vw - 64px) - 58px);transform:translateY(calc(-50% - 16px))}.lightbox[data-state=open] .lightboxClose{opacity:1;filter:blur();transform:translate(0,0)scale(1)}.lightbox[data-state=open] .lightboxClose:active{transform:translate(0,0)scale(.96)}.lightbox[data-state=open] .lightboxNavigation{opacity:1;filter:blur();transform:translateY(-50%)}.lightbox[data-state=closing] .lightboxClose{opacity:0;filter:blur(4px);transition-duration:var(--motion-lightbox-exit);transform:translateY(-16px)scale(.96)}.lightbox[data-state=closing] .lightboxNavigation{opacity:0;filter:blur(4px);transition-duration:var(--motion-lightbox-exit);transform:translateY(calc(-50% - 16px))}.lightboxArrow:disabled{color:#0003;cursor:default}.lightboxClose:active,.lightboxArrow:not(:disabled):active{transform:scale(.96)}@media (hover:hover) and (pointer:fine){.navLink:hover{color:var(--foreground)}.navLink:hover .navLinkText{transform:translate(12px)}.projectCardMedia:hover img,.caseCoverButton:hover img,.galleryItem:hover img{transform:translateZ(0) scale(var(--project-image-hover-scale))}.pillAction:hover{background:#e9e9e9}.projectCardLink:active .pillAction:hover{transform:scale(.96)}.lightboxClose:hover,.lightboxArrow:not(:disabled):hover{background:#e9e9e9}}.notFound{flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100vh;display:flex}@media (max-width:1400px){.sitePage{grid-template-columns:480px minmax(0,1fr);gap:48px;width:calc(100% - 96px);padding:48px 0}.sidebar{grid-template-columns:280px 152px;column-gap:48px;height:calc(100vh - 96px);top:48px}}@media (max-width:1100px){.sitePage{grid-template-columns:300px minmax(0,1fr);gap:40px;width:calc(100% - 64px);padding:32px 0}.sidebar{flex-direction:column;height:calc(100vh - 64px);display:flex;top:32px}.siteNav{margin-top:40px}.sidebarStatus{margin-top:auto}.projectCardText,.caseIntro{gap:16px}.caseMeta{grid-template-columns:190px 1fr}}@media (max-width:820px){body{font-size:15px}.sitePage{width:auto;padding:24px;display:block}.sidebar{grid-template-columns:minmax(0,1fr) 160px;gap:32px;height:auto;margin-bottom:64px;display:grid;position:static}.siteNav{margin-top:0}.sidebarStatus{grid-column:1;margin-top:0}.projectsList{gap:56px}.projectCardText{margin-top:18px}}@media (max-width:600px){.sitePage{padding:20px}.sidebar{flex-direction:column;gap:0;margin-bottom:48px;display:flex}.siteNav{grid-template-columns:1fr 1fr;gap:12px;margin-top:40px;display:grid}.navGroup+.navGroup,.resumeNav{margin-top:0!important}.sidebarStatus{order:3;margin-top:32px}.projectCardText,.caseIntro{flex-direction:column}.pillAction{align-self:flex-start}.caseMeta,.projectGallery{grid-template-columns:1fr}.galleryItem.half{grid-column:1/-1}.placeholderPage,.projectPlaceholder{min-height:360px;padding:32px}.lightboxClose{top:16px;right:16px}.lightboxNavigation{right:16px}.lightboxTrack{gap:8px}.lightboxSlide{width:calc(100vw - 32px);max-width:calc(100vw - 32px);max-height:calc(100svh - 112px)}.lightboxSlideImage{max-width:calc(100vw - 32px);max-height:calc(100svh - 112px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.sidebar[data-initial-transition],.mainContent[data-transition]{opacity:1;filter:none;transition:none;animation:none;transform:none}}
