@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-variable-6_FqcnjP.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-latin-DPozrLNt.woff2)format("woff2");unicode-range:U+??,U+11E-11F,U+130-131,U+152-153,U+15E-15F,U+300-36F,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page-background:#fff;--text-primary:#171717;--text-secondary:gray;--text-hover:#5c5c5c;--divider:#eee;--profile-width:480px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--duration-gallery:.8s;--ease-gallery:cubic-bezier(.37, 0, .63, 1);--duration-tabs:.35s;--ease-modal:cubic-bezier(.4, 0, .6, 1);--duration-modal:.6s;--duration-modal-reduced:.16s;font-synthesis:none;font-optical-sizing:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,Arial,sans-serif}*,:before,:after{box-sizing:border-box}*{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}img{-webkit-user-drag:none}body{background:var(--page-background);color:var(--text-secondary);margin:0;font-size:14px;font-weight:400;line-height:26px}h1,h2,h3,p,ul{font:inherit;margin:0;padding:0}a{color:inherit;text-decoration:none}button{font:inherit}[hidden]{display:none!important}:focus,:focus-visible{outline:none}a:focus-visible,button:focus-visible:not(.work-card__open){text-underline-offset:4px;text-decoration:underline}.portfolio{inline-size:min(var(--profile-width), calc(100% - 80px));flex-direction:column;min-block-size:calc(100svh - 120px);margin:60px auto;display:flex}.profile__portrait{object-fit:cover;border-radius:7.111px;block-size:64px;inline-size:64px;display:block}.title-group{flex-wrap:wrap;align-items:baseline;gap:0 4px;line-height:23px;display:flex}.title-group h1,.title-group h2{color:var(--text-primary)}.profile__heading{margin-block-start:24px}.about{padding-block-start:32px}.about>p+p{margin-block-start:16px}.contact{flex-wrap:wrap;gap:0 16px;padding-block-start:12px;display:flex}.contact a,.contact__copy{transition:color .3s ease-out}.tab{transition:color var(--duration-tabs) var(--ease-out)}.contact a:hover,.contact__copy:hover,.tab:hover{color:var(--text-hover)}.contact__email{position:relative}.contact__copy{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;position:relative}.contact__copy:before{content:"";block-size:44px;position:absolute;inset-block:50% auto;inset-inline:-6px;transform:translateY(-50%)}.contact__copy-status{color:var(--text-hover);white-space:nowrap;pointer-events:none;opacity:0;transform-origin:0;transition:opacity .16s var(--ease-out), transform .16s var(--ease-out);background:#f8f8f8;border-radius:999px;align-items:center;padding:3px 8px;font-size:11px;line-height:18px;display:inline-flex;position:absolute;inset-block-start:50%;inset-inline-start:calc(100% + 8px);transform:translate(-4px,-50%)scale(.97);box-shadow:0 0 0 1px #0000000a,0 2px 4px #00000008}.contact__copy-status[data-state=visible]{opacity:1;transition-duration:.2s;transform:translateY(-50%)scale(1)}.contact__copy-status[data-instant]{transition:none}.collection{flex:1;min-inline-size:0;padding-block-start:48px}.tabs{scrollbar-width:none;align-items:flex-start;max-inline-size:100%;display:flex;position:relative;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{block-size:28px;color:var(--text-secondary);text-align:start;white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:none;padding:0 0 2px;line-height:26px;position:relative}.tab[data-category=works]{inline-size:101px}.tab[data-category=experiments]{inline-size:82px}.tab[data-category=artifacts]{inline-size:55px}.tab[data-category=experience]{inline-size:74px}.tab[aria-selected=true]{color:var(--text-primary)}.tab__line{display:block;position:absolute;inset-block-end:0;inset-inline-start:0}.tab__line--active,.tab[aria-selected=true] .tab__line--inactive{visibility:hidden}.tab[aria-selected=true] .tab__line--active{visibility:visible}.tabs[data-enhanced] .tab__line--active{visibility:hidden}.tabs[data-enhanced] .tab__line--inactive{visibility:visible}.tabs__indicator{background:var(--text-primary);pointer-events:none;block-size:1px;transition:clip-path var(--duration-tabs) var(--ease-in-out);position:absolute;inset-inline-start:0}.tabs[data-instant] .tabs__indicator,.tabs[data-instant] .tab{transition:none!important}.tab-spacer{flex:0 0 24px;block-size:28px;display:block;overflow:hidden}.tab-spacer img{display:block}.panels{position:relative;overflow:clip}.panel{opacity:1;transition:opacity var(--duration-tabs) var(--ease-out);padding-block-start:20px}.panel[data-category-motion=entering],.panel[data-category-motion=leaving]{opacity:0}.panel[data-category-motion=leaving]{pointer-events:none;position:absolute;inset:0 0 auto}.panels[data-instant] .panel{transition:none!important}.work-list{gap:40px;display:grid}.work-card{border-radius:12px;position:relative}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.work-card__image img{transition:transform .5s var(--ease-gallery)}.work-card:hover .work-card__image img{transform:scale(1.02)}}.work-card__open{z-index:1;cursor:pointer;background:0 0;border:0;border-radius:12px;padding:0;position:absolute;inset:0}.work-card:has(.work-card__open:focus-visible) .work-card__heading h2{text-underline-offset:4px;text-decoration:underline}.visually-hidden{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;padding:0;position:absolute;overflow:hidden}.is-project-open{overflow:hidden}.project-dialog{overscroll-behavior:contain;block-size:100%;max-block-size:none;inline-size:100%;max-inline-size:none;color:var(--text-secondary);font:inherit;background:0 0;border:0;margin:0;padding:25px 16px 24px;position:fixed;inset:0;overflow-y:auto}.project-dialog[open]{display:flex}.project-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity var(--duration-modal) var(--ease-modal);background:#9a9a9a33}.project-dialog[data-state=open]::backdrop{opacity:1}.project-detail{opacity:0;inline-size:720px;max-inline-size:100%;transition:opacity var(--duration-modal) var(--ease-modal);flex-direction:column;flex:none;align-items:center;gap:24px;margin:auto;display:flex}.project-dialog[data-state=open] .project-detail{opacity:1}.project-detail__card{--detail-padding:40px;inline-size:100%;padding:var(--detail-padding);background:var(--page-background);clip-path:inset(calc(50% - 28px) 33% round 100px);transition:clip-path var(--duration-modal) var(--ease-modal);border-radius:24px;overflow:hidden}.project-dialog[data-state=open] .project-detail__card{clip-path:inset(0% round 24px)}.project-detail__card:focus{outline:none}.project-gallery__stage{position:relative}.project-gallery{inline-size:calc(100% + var(--detail-padding));overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;overflow:auto hidden}.project-gallery::-webkit-scrollbar{display:none}@media (hover:hover) and (pointer:fine){.project-gallery{overscroll-behavior-y:none}}.project-gallery__track{gap:16px;inline-size:100%;display:flex;position:relative}.project-gallery__track:after{content:"";flex:0 0 calc(var(--detail-padding) - 16px)}.project-gallery .image-container{flex:0 0 calc(100% - var(--detail-padding));scroll-snap-align:start;max-inline-size:none}.project-detail__toolbar{justify-content:space-between;align-items:center;block-size:38px;padding-block-start:16px;display:flex}.project-detail__year{flex:none;line-height:23px}.project-gallery__controls{gap:4px;display:flex}.image-button{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#fff;border:1px solid #eee;border-radius:6px;flex:none;justify-content:center;align-items:center;block-size:22px;padding:4px 6px;display:flex}.image-button img{display:block}.image-button:hover:not(:disabled){border-color:#ccc}.image-button:disabled{cursor:default;border-color:#f5f5f5}.image-button--next:disabled img{opacity:.2}.project-detail__summary{padding-block-start:32px}.project-detail__title-row{justify-content:space-between;align-items:baseline;gap:16px;line-height:23px;display:flex}.project-detail__description{padding-block-start:4px}.project-detail__section{padding-block-start:20px}.project-detail__section h3{color:var(--text-primary);line-height:23px}.project-detail__description a[href]{text-underline-position:from-font;overflow-wrap:anywhere;text-decoration:underline}.project-detail__description a[href]:hover{color:var(--text-hover)}.project-detail__close{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);cursor:pointer;opacity:0;background:#fff;border:.5px solid #eee;border-radius:100px;flex:none;place-items:center;block-size:50px;inline-size:58px;padding:0;transition:opacity .25s ease-out .3s,transform .25s ease-out .3s;display:grid;position:relative;transform:scale(.85);box-shadow:0 4px 12px #00000012,inset 0 .5px #fffffff2}.project-dialog[data-state=open] .project-detail__close{opacity:1;transform:scale(1)}.close-icon{grid-area:1/1;display:block}.close-icon--hover,.project-detail__close:hover .close-icon--default{visibility:hidden}.project-detail__close:hover .close-icon--hover{visibility:visible}@media (width<=559px){.project-detail__card{--detail-padding:24px}}.image-container{aspect-ratio:4/3;background:#f8f8f8;border-radius:12px;inline-size:100%;max-inline-size:480px;position:relative;overflow:hidden}.image-container[data-size=large],.image-container[data-size=video]{border-radius:16px;max-inline-size:640px}.image-container[data-size=video]{background:#f8f8f8}.image-container__viewport{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.image-container[data-size=video] .image-container__viewport{inline-size:81.25%;aspect-ratio:var(--video-aspect-ratio,520 / 284);border-radius:12px;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.image-container[data-video-layout=desktop] .image-container__viewport{border-radius:.833333%/1.48148%;inline-size:80%}.video-container__frame{object-fit:cover;pointer-events:none;border-radius:3%/4%;block-size:100%;inline-size:100%;position:absolute;inset:0}.image-container[data-video-layout=phone] .image-container__viewport{aspect-ratio:593.713/1262.99;border-radius:13.5066%/6.34922%;inline-size:24.738%;inset:14.9166% auto auto 37.6461%;transform:none}.image-container__viewport>picture{block-size:100%;inline-size:100%;display:block}.image-container__viewport>img,.image-container__viewport>picture>img{object-fit:cover;pointer-events:none;border-radius:3%/4%;block-size:100%;inline-size:100%;display:block}.image-container__viewport>video{object-fit:cover;border-radius:inherit;block-size:100%;inline-size:100%;display:block}.work-card__heading{margin-block-start:12px}.work-card__description{overflow-wrap:break-word;margin-block-start:6px;line-height:22px}.slide-indicators{opacity:0;block-size:24px;transition:opacity .18s var(--ease-out);pointer-events:none;justify-content:center;align-items:center;gap:8px;margin-block-end:-9.5px;display:flex;position:absolute;inset-block-end:20px;inset-inline-start:50%;transform:translate(-50%)}.project-gallery__stage:focus-within .slide-indicators{opacity:1;pointer-events:auto}@media (hover:hover) and (pointer:fine){.project-gallery__stage:hover .slide-indicators{opacity:1;pointer-events:auto}}@media (hover:none),(pointer:coarse){.slide-indicators{opacity:1;pointer-events:auto}}.slide-indicators button{cursor:pointer;background:0 0;border:0;flex:none;block-size:24px;inline-size:5px;padding:0;position:relative}.slide-indicators button:before{content:"";position:absolute;inset:0 -4px}.slide-indicators__track{opacity:.6;background:#dbdbdb;border-radius:999px;block-size:5px;position:absolute;inset:50% 0 auto;overflow:hidden;transform:translateY(-50%)}.slide-indicators__fill{transform-origin:0;background:#b2b2b2;block-size:100%;inline-size:100%;display:block;transform:scaleX(0)}.slide-indicators .is-current{inline-size:20px}.slide-indicators .is-current .slide-indicators__track,.slide-indicators button:focus-visible .slide-indicators__track{opacity:1}@media (prefers-reduced-motion:reduce){.slide-indicators .is-current .slide-indicators__fill{transform:scaleX(1)}}.entries{color:var(--text-primary);gap:12px;line-height:23px;list-style:none;display:grid}.entries li{justify-content:space-between;align-items:baseline;gap:28px;display:flex}.entries li>:first-child{overflow-wrap:anywhere;min-inline-size:0}.entry-date{color:var(--text-secondary);white-space:nowrap;flex:none}#experience .entry-date{justify-content:space-between;gap:4px;min-inline-size:96px;display:flex}.company{text-underline-position:from-font;text-decoration:underline}.artifact-link{color:var(--text-primary);flex:1;justify-content:space-between;align-items:baseline;gap:28px;display:flex}.artifact-link,.entry-date,#experience .entries li>:first-child{transition:color .3s ease-out}.artifact-link>:first-child{overflow-wrap:anywhere;min-inline-size:0}.artifact-breadcrumbs{flex-wrap:wrap;align-items:baseline;gap:0 4px;line-height:23px;display:flex}.artifact-breadcrumbs [aria-current=page]{overflow-wrap:anywhere;min-inline-size:0}.artifact-breadcrumbs a:hover{color:var(--text-hover)}.artifact-content{padding-block-start:48px}.artifact-title{color:#3c4142;min-block-size:23px;font-size:18px;line-height:22.5px}.artifact-title:focus{outline:none}.artifact-date{padding-block-start:6px;font-size:12px;line-height:16px}.artifact-body>p{padding-block-start:16px}.artifact-body>p:first-child{padding-block-start:24px}.artifact-figure{margin:0;padding-block:32px 16px}@media (hover:hover) and (pointer:fine){#artifacts .entries>li:hover .entry-date,#experience .entries>li:hover .entry-date{color:var(--text-primary)}:is(#artifacts .entries:has(>li:hover)>li:not(:hover) .artifact-link,#experience .entries:has(>li:hover)>li:not(:hover)>:first-child){color:var(--text-secondary)}}.footer{font-size:12px;line-height:20px}.footer__divider{background:var(--divider);block-size:1px;inline-size:48px;margin-block:40px}.footer__conditions{flex-wrap:wrap;gap:8px;margin-block-start:8px;display:flex}@media (width<=559px){.portfolio{min-block-size:calc(100svh - 80px);inline-size:calc(100% - 48px);margin-block:40px}.tabs{max-inline-size:calc(100% + 8px);margin:-4px;padding:4px}.tab-spacer{flex-basis:12px}#experience .entries li{flex-direction:column;gap:0}.entries li{gap:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}.contact__copy-status{transition:opacity .12s var(--ease-out)!important;transform:translateY(-50%)!important}.contact__copy-status[data-instant]{transition:none!important}.panel{transition:opacity .12s var(--ease-out)!important}.project-dialog .project-detail{transition:opacity var(--duration-modal-reduced) var(--ease-out)!important}.project-dialog .project-detail__card{clip-path:none!important}.project-dialog .project-detail__close{transition:opacity var(--duration-modal-reduced) var(--ease-out)!important;transform:none!important}.project-dialog::backdrop{transition:opacity var(--duration-modal-reduced) var(--ease-out)!important}}
