*,:before,:after{box-sizing:border-box}html{overscroll-behavior-y:none;min-width:320px}body{min-width:0;margin:0}button,input,select,textarea{font:inherit}img{max-width:100%}:root{--font-sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--background:255 255 255;--foreground:51 51 51;--heading:23 23 23;--muted:102 102 102;--underline:138 138 138;--interaction-accent:23 23 23;--selection-background:229 229 229;--divider:229 229 229;--primary:51 51 51;--primary-foreground:255 255 255;--primary-light:138 138 138;--primary-dark:23 23 23;--card:255 255 255;--motion-fast:.14s;--motion-standard:.2s;--ease-out:cubic-bezier(.23, 1, .32, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.dark{--background:23 23 23;--foreground:212 212 212;--heading:245 245 245;--muted:163 163 163;--underline:138 138 138;--interaction-accent:245 245 245;--selection-background:64 64 64;--divider:54 54 54;--primary:212 212 212;--primary-foreground:23 23 23;--primary-light:138 138 138;--primary-dark:245 245 245;--card:38 38 38;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}::selection{background:rgb(var(--selection-background));color:rgb(var(--heading))}html,body{background:rgb(var(--background));min-height:100%}body{color:rgb(var(--foreground));font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;font-weight:400;line-height:24px}a,button{touch-action:manipulation}.site-body{isolation:isolate;flex-direction:column;min-height:100vh;display:flex}.site-content{flex:1 0 auto}@keyframes portfolioFadeIn{0%{opacity:0}to{opacity:1}}.portfolio-site{color:rgb(var(--foreground));background:0 0;min-height:100vh;position:relative}.portfolio-theme-corner{z-index:1;position:absolute;top:24px;right:max(12px,50vw - 388px)}.portfolio-container{box-sizing:border-box;width:100%;max-width:800px;margin:0 auto;padding:96px 24px 64px}.portfolio-intro{grid-template-columns:minmax(0,1fr) 80px;grid-template-areas:"identity portrait""copy copy";gap:24px 20px;margin-bottom:48px;display:grid}.portfolio-identity{grid-area:identity;align-self:start;min-width:0}.portfolio-intro-copy{grid-area:copy;min-width:0}.portfolio-profile-image{object-fit:cover;border-radius:2px;grid-area:portrait;align-self:start;width:80px;height:80px;display:block}.portfolio-h1{color:rgb(var(--heading));font-family:var(--font-sans);letter-spacing:0;margin:0 0 8px;padding:0;font-size:28px;font-weight:500;line-height:36px}.portfolio-location{color:rgb(var(--muted));font-family:var(--font-sans);align-items:center;gap:6px;margin:0;font-size:14px;font-weight:400;line-height:20px;display:flex}.portfolio-location svg{flex:none;width:14px;height:14px}.portfolio-p{color:rgb(var(--foreground));font-family:var(--font-sans);letter-spacing:0;margin:0;padding:0;font-size:16px;font-weight:400;line-height:24px}.portfolio-contact-copy{margin-top:25px}.portfolio-profile-links{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:16px;display:flex}.portfolio-profile-links .portfolio-link{white-space:nowrap;font-size:14px;line-height:24px;display:inline-block}.portfolio-profile-mark,.portfolio-resource-mark{vertical-align:-2px;width:15px;height:15px;margin-right:5px;display:inline-block}.portfolio-profile-mark[data-profile=LinkedIn]{color:#0a66c2}.portfolio-profile-mark[data-profile=YouTube]{color:red}.portfolio-profile-mark[data-profile=Scholar]{color:#4285f4}.portfolio-profile-mark-only{margin-right:0}.portfolio-section+.portfolio-section{margin-top:52px}.portfolio-section-label{color:rgb(var(--heading));font-family:var(--font-sans);letter-spacing:0;text-transform:none;margin:0 0 20px;padding:0;font-size:22px;font-weight:500;line-height:28px}.portfolio-experience-list{gap:20px;display:grid}.portfolio-experience-stints{gap:16px;margin-top:2px;display:grid}.portfolio-experience-row{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px 16px;display:grid}.portfolio-row-title{color:rgb(var(--heading));font-family:var(--font-sans);letter-spacing:0;grid-column:1/-1;min-width:0;margin:0;padding:0;font-size:16px;font-weight:500;line-height:24px}.portfolio-row-role{color:rgb(var(--foreground));font-family:var(--font-sans);letter-spacing:0;grid-area:1/1;margin:0;padding:0 0 0 20px;font-size:14px;font-weight:400;line-height:20px}.portfolio-row-date,.portfolio-work-date{color:rgb(var(--muted));font-family:var(--font-sans);letter-spacing:0;text-transform:uppercase;margin:0;padding:0;font-size:12px;font-weight:400;line-height:20px}.portfolio-row-date{text-align:right;text-transform:none;white-space:nowrap;grid-area:1/2;font-size:14px}@media (max-width:479px){.teaching-role-heading{flex-direction:column}.portfolio-row-role{grid-column:1/-1}.portfolio-row-date{text-align:left;grid-area:2/1/auto/-1;padding-left:20px}}.portfolio-work-list{gap:28px;display:grid}.portfolio-work-item+.portfolio-work-item{border-top:1px solid rgb(var(--divider));padding-top:28px}.portfolio-work-item{grid-template-columns:196px minmax(0,1fr);align-items:start;gap:20px;min-width:0;display:grid}.portfolio-work-media{aspect-ratio:16/10;background:rgb(var(--card));border:1px solid rgb(var(--foreground) / .12);border-radius:4px;display:block;overflow:hidden}.portfolio-work-image{object-fit:contain;width:100%;height:100%;display:block}.portfolio-work-copy{min-width:0}.portfolio-work-title{color:rgb(var(--heading));font-family:var(--font-sans);letter-spacing:0;min-width:0;margin:0;padding:0;font-size:18px;font-weight:500;line-height:26px}.portfolio-work-title .portfolio-link{font-family:inherit;font-weight:500}.portfolio-work-authors,.portfolio-work-venue{font-family:var(--font-sans);letter-spacing:0;padding:0;font-size:14px;font-weight:400;line-height:21px}.portfolio-work-description{font-family:var(--font-sans);letter-spacing:0;padding:0;font-size:15px;font-weight:400;line-height:23px}.portfolio-work-authors{color:rgb(var(--muted));margin:6px 0 0}.portfolio-work-authors .portfolio-link{color:inherit;font-weight:400}.portfolio-work-authors strong{color:rgb(var(--heading));font-weight:500}.portfolio-work-authors strong .portfolio-link{font-weight:500}.portfolio-work-authors strong .portfolio-link-text{background-size:100% 1.5px}.portfolio-work-venue{color:rgb(var(--muted));align-items:center;gap:6px;margin:4px 0 0;font-style:normal;display:flex}.portfolio-work-venue[data-venue=arxiv]{color:#a12830}.portfolio-work-venue[data-venue=iros-2023]{color:#176f65}.dark .portfolio-work-venue[data-venue=arxiv]{color:#df969b}.dark .portfolio-work-venue[data-venue=iros-2023]{color:#77c9b9}.portfolio-venue-icon{object-fit:contain;vertical-align:-2px;width:14px;height:14px;margin-right:6px;display:inline-block}.portfolio-work-resources{flex-wrap:wrap;align-items:center;gap:4px 16px;margin-top:4px;font-size:14px;line-height:21px;display:flex}.portfolio-work-description{color:rgb(var(--foreground));margin:8px 0 0}.portfolio-organization-link{color:rgb(var(--heading));white-space:nowrap;font-weight:500;text-decoration:none}.portfolio-organization-mark{object-fit:contain;vertical-align:-2px;border-radius:2px;width:15px;height:15px;margin-right:5px;display:inline-block}.portfolio-link{color:rgb(var(--heading));font-family:var(--font-sans);font-weight:500;text-decoration:none;display:inline;position:relative}.portfolio-link-text{background-image:linear-gradient(rgb(var(--underline)), rgb(var(--underline)));-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size var(--motion-standard) var(--ease-out);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1.5px;padding-bottom:3px}.portfolio-link:focus-visible .portfolio-link-text,.portfolio-link:active .portfolio-link-text,.portfolio-organization-link:focus-visible .portfolio-link-text,.portfolio-organization-link:active .portfolio-link-text{background-image:linear-gradient(rgb(var(--interaction-accent)), rgb(var(--interaction-accent)));background-size:100% 1.5px}.portfolio-link:focus-visible .portfolio-link-text,.portfolio-organization-link:focus-visible .portfolio-link-text{transition-duration:0s}.portfolio-link:focus-visible,.portfolio-organization-link:focus-visible{outline:2px solid rgb(var(--interaction-accent));outline-offset:3px;border-radius:2px}.portfolio-copy-email{display:inline-block;position:relative}.portfolio-copy-button{appearance:none;cursor:pointer;font-size:inherit;line-height:inherit;transform-origin:50%;transition:transform var(--motion-fast) var(--ease-out);vertical-align:baseline;background:0 0;border:0;margin:0;padding:0;display:inline;overflow:visible}.portfolio-copy-button:active{transform:scale(.98)}.portfolio-copy-status{color:rgb(var(--muted));font-family:var(--font-sans);letter-spacing:0;text-transform:uppercase;white-space:nowrap;font-size:11px;line-height:16px;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.portfolio-copy-confirmation{align-items:center;gap:4px;animation:2s both copy-confirmation;display:inline-flex}.portfolio-copy-confirmation svg{width:13px;height:13px}.portfolio-copy-confirmation polyline{stroke-dasharray:24;animation:copy-check .18s var(--ease-out) both}@keyframes copy-check{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}@keyframes copy-confirmation{0%,to{opacity:0}8%,90%{opacity:1}}.portfolio-copy-email:has(.portfolio-copy-button:focus-visible) .portfolio-copy-confirmation{animation:none}.portfolio-copy-email:has(.portfolio-copy-button:focus-visible) .portfolio-copy-confirmation polyline{animation:none}@media (prefers-reduced-motion:reduce){.portfolio-copy-confirmation,.portfolio-copy-confirmation polyline{animation:none}}.portfolio-theme-toggle{view-transition-name:theme-toggle;appearance:none;color:inherit;cursor:pointer;height:44px;transition:transform var(--motion-fast) var(--ease-out);background:0 0;border:0;border-radius:50%;outline:none;place-items:center;width:44px;margin:0;padding:0;line-height:0;display:grid}::view-transition{pointer-events:none}::view-transition-group(root){animation-duration:.2s}::view-transition-group(theme-toggle){animation-duration:.2s}::view-transition-old(root){animation-duration:.2s;animation-timing-function:var(--ease-out)}::view-transition-new(root){animation-duration:.2s;animation-timing-function:var(--ease-out)}::view-transition-old(theme-toggle){animation:theme-icon-out .16s var(--ease-out) both}::view-transition-new(theme-toggle){animation:theme-icon-in .2s var(--ease-out) both}@keyframes theme-icon-out{to{opacity:0;transform:rotate(-15deg)scale(.9)}}@keyframes theme-icon-in{0%{opacity:0;transform:rotate(15deg)scale(.9)}}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.portfolio-theme-toggle:active{transform:scale(.96)}.portfolio-theme-toggle:focus-visible{outline:2px solid rgb(var(--interaction-accent));outline-offset:2px}.portfolio-theme-toggle img{grid-area:1/1;width:20px;height:auto;display:block}.portfolio-theme-toggle .portfolio-theme-icon-night,.dark .portfolio-theme-toggle .portfolio-theme-icon-day{display:none}.dark .portfolio-theme-toggle .portfolio-theme-icon-night{display:block}.portfolio-fade{animation-name:portfolioFadeIn;animation-duration:.35s;animation-fill-mode:both;animation-timing-function:var(--ease-out)}.portfolio-fade-one{animation-delay:40ms}.portfolio-fade-two{animation-delay:80ms}.portfolio-fade-three{animation-delay:.12s}.teaching-list{margin:0;padding:0 0 0 20px;list-style:none}.teaching-term{color:rgb(var(--muted));font-family:var(--font-sans);letter-spacing:0;white-space:nowrap;margin:0;font-size:14px;font-weight:400;line-height:20px}.teaching-role{color:rgb(var(--foreground));font-family:var(--font-sans);letter-spacing:0;margin:0;font-size:14px;font-weight:400;line-height:20px}.teaching-groups{gap:20px;display:grid}.teaching-institution-name{color:rgb(var(--heading));margin:0 0 2px;font-size:16px;font-weight:500;line-height:24px}.teaching-institution-name .portfolio-organization-link{white-space:normal}.teaching-row+.teaching-row{margin-top:16px}.teaching-role-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 16px;display:flex}.teaching-course{color:rgb(var(--heading));margin:6px 0 0;font-size:14px;font-weight:500;line-height:21px}@media (hover:hover) and (pointer:fine){.portfolio-link:hover .portfolio-link-text,.portfolio-organization-link:hover .portfolio-link-text{background-image:linear-gradient(rgb(var(--interaction-accent)), rgb(var(--interaction-accent)));background-size:100% 1.5px}}@media (min-width:760px){.portfolio-work-item{grid-template-columns:250px minmax(0,1fr)}}@media (max-width:599px){.portfolio-copy-status{top:calc(100% + 1px);left:0;transform:none}.portfolio-work-item{grid-template-columns:minmax(0,1fr);gap:16px}}@media (min-width:600px){.portfolio-container{padding-top:112px;padding-bottom:80px}.portfolio-intro{grid-template-columns:minmax(0,1fr) 104px;column-gap:32px}.portfolio-profile-image{width:104px;height:104px}.portfolio-profile-links{column-gap:24px}}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}.portfolio-fade{animation-delay:0s!important;animation-duration:var(--motion-fast)!important;animation-iteration-count:1!important}.portfolio-link,.portfolio-link-text{transition-duration:.01ms!important}.portfolio-copy-button:active,.portfolio-theme-toggle:active{transform:none}}#publications,#experience,#teaching{scroll-margin-top:32px}.portfolio-work-resources .portfolio-link{min-height:24px;color:rgb(var(--heading));font-weight:400;display:inline-block}.portfolio-resource-mark[data-brand=arxiv]{color:#b31b1b}.dark .portfolio-resource-mark[data-brand=arxiv]{color:#e57373}.portfolio-resource-mark[data-brand=youtube]{color:red}.portfolio-footer{color:rgb(var(--muted));flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;margin-top:52px;font-size:14px;line-height:24px;display:flex}.portfolio-footer p{margin:0}.portfolio-footer .portfolio-link{font-weight:400}.portfolio-venue-link{color:inherit;font-weight:inherit;display:inline-block}
