@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.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/9c72aa0f40e4eef8-s.3i9rha7jpxn0q.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/ad66f9afd8947f86-s.2o7ko1d-5m1xu.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/5476f68d60460930-s.1ee5w62fj497l.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/2bbe8d2671613f1f-s.1way2z9fj6cig.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/1bffadaabf893a1e-s.0szrwpqb9mkwe.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-20C4,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/83afe278b6a6bb3c-s.p.45535valc9rzk.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_c15e96cb-module__0bjUvq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_c15e96cb-module__0bjUvq__variable{--font-inter:"Inter", "Inter Fallback"}
*,: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:var(--font-inter), Arial, sans-serif;--background:253 253 252;--foreground:99 99 94;--heading:33 32 28;--muted:112 112 106;--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:1rem;font-weight:400;line-height:1.5rem}a,button{touch-action:manipulation}.site-body{isolation:isolate;flex-direction:column;min-height:100vh;display:flex}.site-content{flex:1 0 auto}.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 - 334px)}.portfolio-container{box-sizing:border-box;width:100%;max-width:692px;margin:0 auto;padding:72px 24px 64px}.portfolio-intro{grid-template-columns:minmax(0,1fr) 64px;grid-template-areas:"identity portrait""profiles profiles""copy copy";gap:16px 20px;margin-bottom:56px;display:grid}.portfolio-identity{grid-area:identity;align-self:start;min-width:0}.portfolio-intro-copy{grid-area:copy;min-width:0;margin-top:32px}.portfolio-profile-image{object-fit:cover;width:64px;height:64px;box-shadow:0 0 0 1px rgb(var(--foreground) / .08);border-radius:8px;grid-area:portrait;align-self:start;display:block}.portfolio-h1{color:rgb(var(--heading));font-family:var(--font-sans);letter-spacing:-.025em;text-wrap:balance;margin:0 0 4px;padding:0;font-size:1.25rem;font-weight:500;line-height:1.75rem}.portfolio-location{color:rgb(var(--muted));font-family:var(--font-sans);align-items:center;gap:6px;margin:0;font-size:.8125rem;font-weight:400;line-height:1.25rem;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;text-wrap:pretty;margin:0;padding:0;font-size:1rem;font-weight:400;line-height:1.65}.portfolio-p+.portfolio-p{margin-top:16px}.portfolio-contact-copy{color:rgb(var(--muted));margin-top:24px;font-size:.875rem;line-height:1.5rem}.portfolio-profile-links{flex-wrap:wrap;grid-area:profiles;align-items:center;gap:4px 20px;margin-top:0;display:flex}.portfolio-profile-links .portfolio-link{white-space:nowrap;min-height:32px;transition:transform var(--motion-fast) var(--ease-out);transform-origin:0;padding:4px 0;font-size:.875rem;line-height:1.5rem;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:64px}.portfolio-section-label{color:rgb(var(--heading));font-family:var(--font-sans);letter-spacing:-.015em;text-transform:none;margin:0 0 24px;padding:0;font-size:1rem;font-weight:550;line-height:1.5rem}.portfolio-experience-list{gap:28px;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:1rem;font-weight:500;line-height:1.5rem}.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:.875rem;font-weight:400;line-height:1.25rem}.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:.75rem;font-weight:400;line-height:1.25rem}.portfolio-row-date{text-align:right;text-transform:none;white-space:nowrap;grid-area:1/2;font-size:.875rem}@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:64px;display:grid}.portfolio-work-item+.portfolio-work-item{border-top:0;padding-top:0}.portfolio-work-item{grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;min-width:0;display:grid}.portfolio-work-media{aspect-ratio:16/10;background:rgb(var(--card));border:1px solid rgb(var(--foreground) / .09);border-radius:10px;align-self:center;width:100%;display:block;overflow:hidden}.portfolio-work-image{object-fit:contain;background:#fff;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:-.012em;text-wrap:pretty;min-width:0;margin:0;padding:0;font-size:1.0625rem;font-weight:550;line-height:1.625rem}.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:.875rem;font-weight:400;line-height:1.3125rem}.portfolio-work-description{font-family:var(--font-sans);letter-spacing:0;text-wrap:pretty;padding:0;font-size:1rem;font-weight:400;line-height:1.65}.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 20px;margin-top:8px;font-size:.875rem;line-height:1.3125rem;display:flex}.portfolio-work-description{color:rgb(var(--foreground));margin:16px 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 .1s 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;min-height:32px;margin:0;padding:0;display:inline-block;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:none;white-space:nowrap;opacity:0;transition:opacity var(--motion-fast) var(--ease-out);font-size:.75rem;line-height:1rem;position:absolute;top:calc(100% + 2px);left:0;transform:none}.portfolio-copy-status[data-state=copied],.portfolio-copy-status[data-state=failed]{opacity:1}.portfolio-copy-email:has(:focus-visible) .portfolio-copy-status{transition:none}.portfolio-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}@property --theme-reveal-progress{syntax:"<number>";inherits:false;initial-value:0}@keyframes theme-reveal{0%{--theme-reveal-progress:0}to{--theme-reveal-progress:1}}::view-transition{pointer-events:none}::view-transition-group(root){animation:none}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}html[data-theme-reveal=true]::view-transition-new(root){clip-path:circle(calc(var(--theme-reveal-progress) * var(--theme-reveal-radius)) at var(--theme-reveal-x) var(--theme-reveal-y));animation:.34s cubic-bezier(.22,1,.36,1) both theme-reveal}@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:focus-visible,.portfolio-copy-button:focus-visible{transition:none;transform:none}.portfolio-theme-toggle svg{width:20px;height:auto;transition:opacity .18s var(--ease-out), transform .22s var(--ease-out);grid-area:1/1;display:block}.portfolio-theme-toggle .portfolio-theme-icon-night{opacity:0;transform:rotate(-70deg)scale(.7)}.dark .portfolio-theme-toggle .portfolio-theme-icon-day{opacity:0;transform:rotate(70deg)scale(.7)}.dark .portfolio-theme-toggle .portfolio-theme-icon-night{opacity:1;transform:none}.portfolio-theme-toggle[data-instant=true] svg{transition:none}.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:.875rem;font-weight:400;line-height:1.25rem}.teaching-role{color:rgb(var(--foreground));font-family:var(--font-sans);letter-spacing:0;margin:0;font-size:.875rem;font-weight:400;line-height:1.25rem}.teaching-groups{gap:28px;display:grid}.teaching-institution-name{color:rgb(var(--heading));margin:0 0 2px;font-size:1rem;font-weight:500;line-height:1.5rem}.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:.875rem;font-weight:500;line-height:1.3125rem}@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;transition-duration:.16s}}@media (min-width:600px){.portfolio-container{padding-top:112px;padding-bottom:80px}.portfolio-intro{grid-template-columns:minmax(0,1fr) 72px;grid-template-areas:"identity portrait""profiles profiles""copy copy";gap:16px 32px;margin-bottom:80px}.portfolio-profile-image{width:72px;height:72px}.portfolio-intro-copy{margin-top:40px}.portfolio-section+.portfolio-section{margin-top:112px}.portfolio-work-list{gap:80px}}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}.portfolio-link,.portfolio-link-text,.portfolio-copy-status,.portfolio-copy-button{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{overflow-wrap:anywhere;min-width:0;max-width:100%;min-height:32px;color:rgb(var(--heading));transition:transform var(--motion-fast) var(--ease-out);transform-origin:0;padding:4px 0;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:96px;font-size:.8125rem;line-height:1.5rem;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}.portfolio-profile-links .portfolio-link:active,.portfolio-work-resources .portfolio-link:active{transform:scale(.97)}.portfolio-row-date,.teaching-term{font-variant-numeric:tabular-nums}.portfolio-profile-links .portfolio-link:focus-visible,.portfolio-work-resources .portfolio-link:focus-visible{transition:none;transform:none}@media (max-width:599px){.portfolio-work-media{width:100%}.portfolio-contact-copy{margin-top:24px}}@media (pointer:coarse){.portfolio-profile-links .portfolio-link,.portfolio-work-resources .portfolio-link{min-height:44px;padding-block:10px;position:relative}.portfolio-copy-button:after{content:"";position:absolute;inset:-6px 0}.portfolio-profile-links .portfolio-link[aria-label=X]:after{content:"";width:44px;min-height:44px;position:absolute;inset:0 auto 0 50%;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.portfolio-profile-links .portfolio-link:active,.portfolio-work-resources .portfolio-link:active{transform:none}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.portfolio-hint-anchor{display:inline-block;position:relative}.portfolio-hint{z-index:10;background:rgb(var(--heading));width:max-content;max-width:min(250px,80vw);color:rgb(var(--background));pointer-events:none;visibility:hidden;opacity:0;transform-origin:bottom;transition:opacity .125s var(--ease-out), transform .125s var(--ease-out), visibility .125s;border-radius:6px;padding:6px 9px;font-size:.75rem;font-weight:450;line-height:1.125rem;position:absolute;inset:auto auto calc(100% + 8px) 50%;transform:translate(-50%)translateY(3px)scale(.97)}.portfolio-hint:after{content:"";position:absolute;inset:100% 0 -10px}.portfolio-hint[data-open=true]{visibility:visible;opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)scale(1)}.portfolio-hint[data-instant=true]{transition:none}.portfolio-theme-corner .portfolio-hint{transform-origin:100% 0;inset:calc(100% + 8px) 0 auto auto;transform:translateY(-3px)scale(.97)}.portfolio-theme-corner .portfolio-hint[data-open=true]{transform:none}.portfolio-theme-corner .portfolio-hint:after{inset:-10px 0 100%}.portfolio-copy-status{white-space:normal;max-width:min(280px,75vw);transition:opacity .14s var(--ease-out), transform .14s var(--ease-out);transform:translateY(-2px)}.portfolio-copy-status[data-state=copied]{transform:none}.portfolio-copy-status[data-instant=true]{transition:none}@media (prefers-reduced-motion:reduce){.portfolio-hint,.portfolio-copy-status{transition:none!important}}.portfolio-copy-button{position:relative}.portfolio-copy-address{transition:opacity .16s var(--ease-out), transform .16s var(--ease-out), filter .16s var(--ease-out);display:inline-block}.portfolio-copy-success{opacity:0;filter:blur(2px);pointer-events:none;transition:opacity .16s var(--ease-out), transform .16s var(--ease-out), filter .16s var(--ease-out);justify-content:center;align-items:center;gap:6px;display:inline-flex;position:absolute;inset:0;transform:translateY(5px)}.portfolio-copy-button[data-copied=true] .portfolio-copy-address{opacity:0;filter:blur(2px);transform:translateY(-5px)}.portfolio-copy-button[data-copied=true] .portfolio-copy-success{opacity:1;filter:blur();transform:none}.portfolio-copy-button[data-instant=true]>span{transition:none}@media (prefers-reduced-motion:reduce){.portfolio-copy-button>span{transition:none}.portfolio-copy-button[data-copied=true] .portfolio-copy-address{filter:none;transform:none}}.portfolio-copy-email,.portfolio-copy-email .portfolio-hint-anchor,.portfolio-copy-button{max-width:100%}.portfolio-copy-address{overflow-wrap:anywhere}.portfolio-container{overflow-wrap:break-word}.portfolio-experience-group,.portfolio-experience-row,.portfolio-experience-stints{min-width:0}.portfolio-row-date,.portfolio-organization-link,.teaching-term{white-space:normal}@media (max-width:479px){.portfolio-experience-row{grid-template-columns:minmax(0,1fr)}}.portfolio-portrait{perspective:600px;grid-area:portrait;align-self:start;display:block}.link-outbound-arrow{vertical-align:0;width:11px;height:11px;color:rgb(var(--muted));transition:transform .16s var(--ease-out), color .16s var(--ease-out);margin-left:3px;display:inline-block}.portfolio-link:focus-visible .link-outbound-arrow{color:rgb(var(--heading));transition:none}@media (hover:hover) and (pointer:fine){.portfolio-link:hover .link-outbound-arrow{color:rgb(var(--heading));transform:translate(1.5px,-1.5px)}}.publication-details{margin-top:8px}.citation-action{margin-bottom:12px}.citation-copy,.disclosure-trigger{appearance:none;color:rgb(var(--muted));cursor:pointer;background:0 0;border:0;min-height:36px;padding:6px 0;font-size:.8125rem;line-height:1.5}.citation-copy{position:relative}.citation-idle,.citation-done{transition:opacity .14s var(--ease-out), transform .14s var(--ease-out);align-items:center;gap:6px;display:inline-flex}.citation-done{opacity:0;justify-content:center;position:absolute;inset:0;transform:translateY(3px)}.citation-copy[data-copied=true] .citation-idle{opacity:0;transform:translateY(-3px)}.citation-copy[data-copied=true] .citation-done{opacity:1;transform:none}.citation-copy[data-instant=true]>span{transition:none}.citation-fallback pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.75rem}.disclosure-trigger{color:rgb(var(--heading));align-items:center;gap:8px;display:inline-flex}.disclosure-trigger svg{width:14px;height:14px;transition:transform .18s var(--ease-out)}.publication-disclosure[data-open=true]>.disclosure-trigger svg{transform:rotate(180deg)}.disclosure-grid{visibility:hidden;opacity:0;transition:grid-template-rows .22s var(--ease-out), opacity .14s var(--ease-out), visibility .22s;grid-template-rows:0fr;display:grid}.publication-disclosure[data-open=true]>.disclosure-grid{visibility:visible;opacity:1;grid-template-rows:1fr}.disclosure-clip{min-height:0;overflow:hidden}.disclosure-content{padding:12px 0 20px}.publication-disclosure[data-instant=true]>.disclosure-grid,.publication-disclosure[data-instant=true]>.disclosure-trigger svg{transition:none}.publication-abstract{margin:0;font-size:.9375rem;line-height:1.7}.citation-copy:focus-visible,.disclosure-trigger:focus-visible,.method-controls button:focus-visible,.note-inputs input:focus-visible,.research-source a:focus-visible{outline:2px solid rgb(var(--heading));outline-offset:3px;border-radius:3px}.method-figure{background:#fff;border-radius:8px;position:relative;overflow:hidden}.method-figure img{width:100%;height:auto;display:block}.method-figure svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.method-highlight{fill:#2563eb;fill-opacity:.07;stroke:#2563eb;stroke-width:2px;opacity:0;transition:opacity .16s var(--ease-out)}.method-highlight[data-active=true]{opacity:1}.method-controls{justify-content:flex-end;align-items:center;gap:8px;margin:12px 0;display:flex}.method-controls>span{color:rgb(var(--muted));font-variant-numeric:tabular-nums;margin-right:4px;font-size:.75rem}.method-controls button{width:36px;height:36px;color:rgb(var(--heading));background:rgb(var(--foreground) / .05);border:1px solid rgb(var(--divider));cursor:pointer;transition:transform .12s var(--ease-out);border-radius:6px;place-items:center;display:grid}.method-controls button:disabled{opacity:.35;cursor:default}.method-controls button:active:enabled{transform:scale(.97)}.method-explanations{display:grid}.method-explanation{opacity:0;visibility:hidden;transition:opacity .15s var(--ease-out), visibility .15s;grid-area:1/1}.method-explanation[data-active=true]{opacity:1;visibility:visible}.method-explanation h4,.research-example h4{color:rgb(var(--heading));margin:0 0 8px;font-size:.9375rem;font-weight:550}.method-explanation p,.research-example>p{margin:0 0 16px;font-size:.875rem;line-height:1.7}.method-walkthrough[data-instant=true] .method-explanation,.method-walkthrough[data-instant=true] .method-highlight{transition:none}.research-source,.research-example>.research-source{color:rgb(var(--muted));margin:12px 0 0;font-size:.75rem;line-height:1.6}.research-source a{color:inherit;text-underline-offset:3px}.research-example{border-top:1px solid rgb(var(--divider));margin-top:32px;padding-top:24px}.note-example{border:1px solid rgb(var(--divider));background:rgb(var(--foreground) / .025);border-radius:8px;padding:20px}.note-inputs{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.note-inputs label{gap:6px;font-size:.8125rem;display:grid}.note-inputs input{border:1px solid rgb(var(--divider));width:100%;min-width:0;min-height:44px;color:rgb(var(--heading));background:rgb(var(--background));font-variant-numeric:tabular-nums;border-radius:5px;padding:8px 10px;font-size:1rem}.note-inputs input[aria-invalid=true]{border-color:rgb(var(--muted))}.note-equation{min-height:100px;color:rgb(var(--heading));font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:16px;font-size:2rem;line-height:1.4;display:flex}.note-operator{color:rgb(var(--muted));font-size:1.25rem}.note-equation strong{font-weight:500}.note-input-error{font-size:.8125rem}.note-small{color:rgb(var(--muted));font-size:.75rem;line-height:1.6}.note-code{white-space:pre-wrap;overflow-wrap:anywhere;border-top:1px solid rgb(var(--divider));margin:20px 0 0;padding-top:16px;font-size:.75rem;line-height:1.65}.note-code-keyword{color:rgb(var(--heading))}@media (pointer:coarse){.citation-copy,.disclosure-trigger{min-height:44px}.method-controls button{width:44px;height:44px}}@media (prefers-reduced-motion:reduce){.portfolio-theme-toggle svg,.link-outbound-arrow,.disclosure-grid,.disclosure-trigger svg,.citation-copy>span,.method-highlight,.method-explanation,.method-controls button{transition:none}.portfolio-link:hover .link-outbound-arrow,.method-controls button:active:enabled{transform:none}.portfolio-profile-image{transform:none!important}}.publication-details{flex-wrap:wrap;align-items:flex-start;gap:0 20px;display:flex}.publication-details>.citation-action{min-width:0;margin:0}.publication-details>.publication-disclosure{display:contents}.publication-details .disclosure-grid{flex-basis:100%;order:1;min-width:0}.citation-fallback{max-width:min(644px,100vw - 48px)}.paper-icon-fold{transform-origin:11.5px 7px}@keyframes paper-corner-lift{45%{transform:translateY(-.6px)rotate(-18deg)}to{transform:none}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.portfolio-link:hover:not(:focus-visible) .paper-icon-fold{animation:paper-corner-lift .28s var(--ease-out)}}@page{margin:16mm}@media print{:root,.dark{--background:255 255 255;--card:255 255 255;--foreground:45 45 45;--heading:0 0 0;--muted:70 70 70;--divider:190 190 190;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-shadow:none!important;text-shadow:none!important;transition:none!important;animation:none!important}html,body,.site-body,.site-content{background:#fff;min-height:0;display:block}.portfolio-container{max-width:none;padding:0}.portfolio-theme-corner,.portfolio-footer a,.portfolio-hint,.link-outbound-arrow,.portfolio-copy-success,.portfolio-copy-status,.sr-only,nextjs-portal{display:none!important}.portfolio-copy-address{opacity:1!important;filter:none!important;transform:none!important}.portfolio-portrait,.portfolio-profile-image,.portfolio-work-media{opacity:1!important;clip-path:none!important;transform:none!important}.portfolio-intro{break-inside:avoid;margin-bottom:24pt}.portfolio-intro-copy{margin-top:14pt}.portfolio-profile-links{gap:4pt 12pt}.portfolio-section{margin-top:24pt}.portfolio-section-label{break-after:avoid}.portfolio-work-list{display:block}.portfolio-work-item{break-inside:avoid;margin-bottom:22pt;display:block}.portfolio-work-media{border:1px solid #ddd;width:72mm;height:45mm;margin:0 0 10pt}.portfolio-work-title{font-size:11pt;line-height:1.4}.portfolio-p,.portfolio-work-description{font-size:10pt;line-height:1.5}.portfolio-work-authors,.portfolio-work-venue{font-size:9pt;line-height:1.4}.portfolio-experience-group,.teaching-row{break-inside:avoid}h2,h3,h4{break-after:avoid}p{orphans:3;widows:3}a,.portfolio-work-venue{color:inherit!important}.portfolio-link-text{background:0 0!important}.portfolio-footer{margin-top:20pt}}
