:root{color-scheme:light;--color-bg:#FCFDFC;--color-surface:#F4F7F4;--color-surface-strong:#EAF0EC;--color-text:#17211D;--color-muted:#59645F;--color-accent:#176B5B;--color-accent-hover:#0F574A;--color-border:#DCE4DF;--color-focus:#087C68;--color-inverse:#FFFFFF;--bg:var(--color-bg);--surface:var(--color-surface);--text:var(--color-text);--muted:var(--color-muted);--accent:var(--color-accent);--border:var(--color-border);--sans:var(--font-inter),system-ui,-apple-system,"Segoe UI",sans-serif;--serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;--font-size-body:clamp(1rem,.2vw + .96rem,1.0625rem);--line-body:1.72;--line-heading:1.16;--tracking-heading:-.025em;--measure:68ch;--measure-narrow:48ch;--max:1120px;--max-wide:1280px;--pad:clamp(20px,4.5vw,56px);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--gap:clamp(76px,10vw,140px)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:72px}body,html{max-width:100%}body{overflow-x:clip;background:var(--bg);color:var(--text);font:400 var(--font-size-body)/var(--line-body) var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1}main{min-width:0}h1,h2,h3{font-family:var(--serif);font-optical-sizing:auto;text-wrap:balance;overflow-wrap:anywhere}dd,li,p{max-width:100%;text-wrap:pretty}button,input,select,textarea{font:inherit}img{display:block;max-width:100%;height:auto}a{color:var(--accent);text-decoration:none}a:hover{color:var(--color-accent-hover);text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px;border-radius:2px}.skip{position:absolute;top:-100%;left:0;padding:8px 16px;background:var(--text);color:#fff;z-index:200;font-size:.9rem;font-family:var(--sans)}.skip:focus{top:0}.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--pad)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--border)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;height:60px;min-width:0}.brand{font:600 1.05rem var(--sans);color:var(--text);letter-spacing:-.01em;white-space:nowrap;min-width:0}.brand,.brand:hover{text-decoration:none}.brand:hover{color:var(--accent)}.nav-list{display:flex;gap:clamp(10px,1.3vw,20px);list-style:none;align-items:center}.nav-disclosure,.nav-list>li>a{color:var(--muted);font-size:.8rem;font-weight:500;line-height:1.35;letter-spacing:-.005em;text-decoration:none;padding:5px 0;border:0;border-bottom:1.5px solid transparent;background:none;transition:color .18s,border-color .18s;white-space:nowrap}.nav-disclosure:hover,.nav-list>li>a:hover{color:var(--text);text-decoration:none}.nav-disclosure.on,.nav-list>li>a.on{color:var(--text);border-bottom-color:var(--accent)}.nav-publications{position:relative}.nav-publications-control{display:flex;align-items:center;border-bottom:1.5px solid transparent}.nav-publications-control.on{border-bottom-color:var(--accent)}.nav-publications-link{color:var(--muted);font-size:.8rem;font-weight:500;line-height:1.35;letter-spacing:-.005em;text-decoration:none;padding:5px 0;white-space:nowrap}.nav-publications-link:hover{color:var(--text);text-decoration:none}.nav-publications-control .nav-disclosure{padding-left:7px;border-bottom:0}.nav-disclosure{display:flex;align-items:center;gap:7px;cursor:pointer}.nav-chevron{width:10px;height:7px;transition:transform .18s ease}.nav-disclosure[aria-expanded=true] .nav-chevron{transform:rotate(180deg)}.nav-submenu{position:absolute;top:calc(100% + 13px);left:-18px;z-index:30;min-width:240px;padding:9px;list-style:none;background:var(--bg);border:1px solid var(--border);border-radius:3px;box-shadow:0 16px 42px rgba(23,33,29,.12)}.nav-submenu[hidden]{display:none}.nav-submenu a{display:block;padding:10px 11px;color:var(--muted);font-size:.84rem;line-height:1.4;text-decoration:none;border-radius:2px;white-space:nowrap}.nav-submenu a.on,.nav-submenu a:hover{color:var(--text);background:var(--surface);text-decoration:none}.nav-submenu a.on{font-weight:600}.nav-cv{border:1px solid var(--border)!important;border-radius:3px;padding:7px 15px!important;color:var(--text)!important}.nav-cv:hover{border-color:var(--text)!important;background:var(--surface)}.nav-toggle{display:none;flex:0 0 auto;background:none;border:0;cursor:pointer;color:var(--text);padding:8px;margin:-8px}.nav-toggle svg{width:22px;height:22px;display:block}.btn{display:inline-flex;align-items:center;gap:8px;font:500 .93rem var(--sans);letter-spacing:-.005em;padding:13px 26px;border-radius:3px;border:1px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.btn,.btn:hover{text-decoration:none}.btn-solid{background:var(--text);color:#fff}.btn-solid:hover{background:#000}.btn-line{color:var(--text);border-color:var(--border)}.btn-line:hover{border-color:var(--text);background:var(--surface)}main section{padding:var(--gap) 0}.home section.hero{padding:0}.page section:first-child{padding-top:clamp(52px,7vw,92px)}.eyebrow{display:flex;align-items:center;gap:12px;font:600 .7rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.eyebrow:before{content:"";width:18px;height:1px;background:var(--accent)}.shead{max-width:46ch;margin-bottom:clamp(40px,6vw,72px)}.shead .eyebrow{margin-bottom:20px}.shead h1,.shead h2{font:600 clamp(1.7rem,3vw,2.5rem)/var(--line-heading) var(--serif);letter-spacing:var(--tracking-heading)}.lede{color:var(--muted);font-size:1.05rem;line-height:1.68;max-width:64ch}.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1)}.js .reveal.in{opacity:1;transform:none}.hero .wrap{padding-top:clamp(56px,9vw,104px);padding-bottom:clamp(72px,10vw,128px);display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(40px,7vw,96px);gap:clamp(40px,7vw,96px);align-items:center}.hero h1{font:600 clamp(2.6rem,5.4vw,4.25rem)/1.04 var(--serif);letter-spacing:-.038em;margin:20px 0 0}.hero .role{font:500 clamp(1.1rem,1.85vw,1.35rem)/1.45 var(--sans);letter-spacing:-.015em;margin-top:22px;color:var(--text)}.hero .intro{color:var(--muted);font-size:1.05rem;line-height:1.7;max-width:44ch;margin-top:18px}.hero .affil{font-size:.88rem;color:var(--muted);margin-top:26px;letter-spacing:.005em}.hero .btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}.portrait{margin:0;max-width:460px;justify-self:end;width:100%}.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px}.portrait figcaption{margin-top:14px;font-size:.8rem;color:var(--muted);letter-spacing:.005em}.focus-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(48px,7vw,84px) clamp(56px,9vw,120px);gap:clamp(48px,7vw,84px) clamp(56px,9vw,120px)}.focus-item .num{font:500 .74rem var(--sans);letter-spacing:.16em;color:var(--muted)}.focus-item h2,.focus-item h3{font:600 clamp(1.15rem,1.55vw,1.36rem)/1.3 var(--serif);letter-spacing:-.018em;margin:16px 0 12px}.focus-item p{color:var(--muted);font-size:.97rem;line-height:1.72;max-width:44ch}.current{background:var(--surface)}.current .feat{font:600 clamp(1.4rem,2.5vw,2.1rem)/1.3 var(--serif);letter-spacing:-.022em;max-width:30ch;margin-top:20px}.current-grid{display:grid;grid-template-columns:1.08fr .92fr;grid-gap:clamp(40px,6vw,80px);gap:clamp(40px,6vw,80px);align-items:start;margin-top:clamp(40px,5vw,64px)}.current-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:3px;cursor:zoom-in}.current-media figcaption{margin-top:14px;font-size:.8rem;color:var(--muted)}.current-body p{color:var(--muted);font-size:.99rem;line-height:1.72}.current-body .k{font:600 .72rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text);margin:36px 0 16px}.areas{list-style:none;display:flex;flex-direction:column;gap:11px}.areas li{font-size:.97rem}.pubs{list-style:none}.pub{display:grid;grid-template-columns:1fr;grid-gap:0;gap:0;padding:clamp(30px,4vw,44px) 0;border-top:1px solid var(--border)}.pub:last-child{border-bottom:1px solid var(--border)}.pub-year{font:500 .74rem var(--sans);letter-spacing:.16em;color:var(--muted);margin-bottom:12px}.pub-title{font:600 clamp(1.12rem,1.5vw,1.34rem)/1.42 var(--serif);letter-spacing:-.018em;max-width:66ch}.pub-title em{font-style:italic}.pub-authors{color:var(--text);font-size:.9rem;line-height:1.68;margin-top:12px;max-width:68ch}.pub-venue{color:var(--muted);font-size:.94rem;margin-top:12px;max-width:60ch}.pub-venue em{font-style:italic}.pub-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin-top:18px}.status{font:600 .68rem var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.status.tag{border:1px solid var(--border);border-radius:2px;padding:4px 10px}.status.pre{color:var(--accent);border-color:var(--accent)}.pub-meta{font-size:.8rem;color:var(--muted);letter-spacing:.01em}.pub-doi{font:500 .84rem var(--sans);color:var(--accent);margin-left:auto}.publication-intro{padding-bottom:clamp(52px,7vw,84px)}.publication-intro .eyebrow{margin-bottom:20px}.publication-intro h1{font:600 clamp(2.3rem,5vw,3.85rem)/1.08 var(--serif);letter-spacing:-.035em;margin-bottom:22px}.publication-archive{padding-top:0}.publication-group+.publication-group{margin-top:clamp(64px,9vw,112px)}.publication-group-heading{display:grid;grid-template-columns:minmax(0,.8fr) minmax(280px,1.2fr);grid-gap:clamp(28px,6vw,80px);gap:clamp(28px,6vw,80px);align-items:start;margin-bottom:clamp(20px,3vw,36px)}.publication-group-heading h2{font:600 clamp(1.55rem,2.7vw,2.25rem)/1.18 var(--serif);letter-spacing:-.025em}.publication-group-heading p{color:var(--muted);font-size:.94rem;line-height:1.7;max-width:58ch}.tl{list-style:none}.tl li{display:grid;grid-template-columns:200px 1fr;grid-gap:clamp(20px,4vw,56px);gap:clamp(20px,4vw,56px);padding:clamp(30px,4vw,46px) 0;border-top:1px solid var(--border)}.tl li:last-child{border-bottom:1px solid var(--border)}.tl time{font:500 .82rem var(--sans);color:var(--muted);letter-spacing:.02em;padding-top:4px}.tl h2,.tl h3{font:600 clamp(1.1rem,1.5vw,1.28rem)/1.35 var(--serif);letter-spacing:-.018em}.tl .org{color:var(--text);font-size:.95rem;margin-top:6px;line-height:1.6}.tl p{color:var(--muted);font-size:.94rem;line-height:1.72;margin-top:12px;max-width:66ch}.talks{display:flex;flex-direction:column;gap:clamp(64px,8vw,116px)}.talk{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:clamp(32px,5vw,72px);gap:clamp(32px,5vw,72px);align-items:center}.talk:nth-child(2n) .talk-media{order:2}.talk-media{margin:0;cursor:zoom-in;background:none;border:0;padding:0;width:100%}.talk-media img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:3px;transition:transform .6s cubic-bezier(.2,.6,.2,1)}.talk-media:hover img{transform:scale(1.015)}.talk-media.port img{aspect-ratio:4/5}.talk-date{font:600 .72rem var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.talk h3{font:600 clamp(1.15rem,1.6vw,1.4rem)/1.38 var(--serif);letter-spacing:-.02em;margin:16px 0 12px;max-width:34ch}.talk h3 em{font-style:italic}.talk .venue{color:var(--muted);font-size:.93rem;line-height:1.68;max-width:46ch}.talk .desc{color:var(--muted);font-size:.94rem;margin-top:12px}.talk-text{padding-top:8px;max-width:68ch}.talk-text .talk-date{display:block;margin-bottom:14px}.talk-text h3{font:600 clamp(1.15rem,1.6vw,1.38rem)/1.38 var(--serif);letter-spacing:-.02em;margin-bottom:12px}.presentations-intro{padding-bottom:clamp(52px,7vw,84px)}.presentations-intro .eyebrow{margin-bottom:20px}.presentations-intro h1{font:600 clamp(2.3rem,5vw,3.85rem)/1.08 var(--serif);letter-spacing:-.035em;margin-bottom:22px}.presentations-archive{padding-top:0}.presentation-list{display:flex;flex-direction:column}.presentation-list>.presentation-card{border-top:1px solid var(--border);padding:clamp(48px,7vw,84px) 0}.presentation-list>.presentation-card:last-child{border-bottom:1px solid var(--border)}.presentation-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-gap:clamp(40px,6vw,80px);gap:clamp(40px,6vw,80px);align-items:start}.presentation-kicker{font:600 .7rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:15px}.presentation-card h2,.presentation-card h3{font:600 clamp(1.25rem,2vw,1.72rem)/1.4 var(--serif);letter-spacing:-.02em;overflow-wrap:anywhere}.presentation-event{font:500 .98rem/1.6 var(--sans);color:var(--text);margin-top:16px}.presentation-meta{display:grid;grid-gap:15px;gap:15px;margin-top:26px}.presentation-meta>div{display:grid;grid-template-columns:92px minmax(0,1fr);grid-gap:14px;gap:14px}.presentation-label,.presentation-meta dt{font:600 .68rem var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.presentation-meta dd{font-size:.91rem;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}.presentation-summary{font-size:.96rem;line-height:1.76;color:var(--muted);margin-top:28px;max-width:62ch}.presentation-highlights{margin-top:28px}.presentation-highlights ul{margin:14px 0 0 18px;display:grid;grid-gap:9px;gap:9px;color:var(--muted);font-size:.92rem;line-height:1.65}.presentation-action{display:inline-flex;align-items:center;gap:8px;margin-top:30px;padding:11px 17px;border:1px solid var(--text);border-radius:3px;color:var(--text);font:500 .88rem var(--sans);text-decoration:none}.presentation-action:hover{background:var(--text);color:#fff;text-decoration:none}.presentation-media{display:grid;grid-gap:clamp(30px,4vw,46px);gap:clamp(30px,4vw,46px)}.poster-preview{margin:0}.conference-gallery button,.poster-preview button,.presentation-lead{display:block;width:100%;padding:0;border:0;background:var(--surface);cursor:zoom-in;border-radius:3px;overflow:hidden}.poster-preview img{width:100%;max-height:720px;object-fit:contain}.conference-gallery figcaption,.poster-preview figcaption{font-size:.78rem;line-height:1.55;color:var(--muted);margin-top:10px}.conference-gallery>.presentation-label{margin-bottom:14px}.conference-gallery-grid{display:grid;grid-gap:14px;gap:14px}.conference-gallery figure{min-width:0}.conference-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .45s cubic-bezier(.2,.6,.2,1)}.conference-gallery button:hover img,.poster-preview button:hover img,.presentation-lead:hover img{transform:scale(1.012)}.empty-state{color:var(--muted);padding:32px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.presentation-preview-list{display:flex;flex-direction:column;gap:clamp(64px,8vw,116px)}.presentation-card.compact{grid-template-columns:1.15fr .85fr;grid-template-areas:"media content";align-items:center}.presentation-card.compact:nth-child(2n){grid-template-areas:"content media"}.presentation-card.compact.no-media{display:block;max-width:68ch}.presentation-card.compact .presentation-content{grid-area:content}.presentation-card.compact .presentation-lead{grid-area:media}.presentation-card.compact h3{font-size:clamp(1.12rem,1.6vw,1.36rem);margin-top:0}.presentation-venue{color:var(--muted);font-size:.93rem;line-height:1.68;margin-top:13px}.presentation-lead img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .45s cubic-bezier(.2,.6,.2,1)}.presentation-lead.portrait img{aspect-ratio:4/5}.awards-grid{display:grid;grid-template-columns:1fr .72fr;grid-gap:clamp(40px,6vw,88px);gap:clamp(40px,6vw,88px);align-items:start}.award-list{list-style:none}.award-list li{padding:0 0 clamp(32px,4vw,48px)}.award-list .yr{font:500 .74rem var(--sans);letter-spacing:.16em;color:var(--muted);display:block;margin-bottom:12px}.award-list h2,.award-list h3{font:600 clamp(1.12rem,1.55vw,1.3rem)/1.36 var(--serif);letter-spacing:-.018em;margin-bottom:10px}.award-list p{color:var(--muted);font-size:.94rem;line-height:1.72;max-width:48ch}.memberships{margin-top:clamp(8px,2vw,20px);padding-top:clamp(28px,4vw,40px);border-top:1px solid var(--border)}.memberships .k{font:600 .72rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.memberships p{color:var(--muted);font-size:.94rem;line-height:1.7}.awards-media{margin:0}.awards-media img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:3px;cursor:zoom-in}.awards-media figcaption{margin-top:14px;font-size:.8rem;color:var(--muted);line-height:1.6}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:clamp(40px,6vw,88px);gap:clamp(40px,6vw,88px)}.skill-col h3{font:600 .72rem var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:22px}.skill-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}.skill-col li{font-size:.96rem;line-height:1.55;color:var(--text)}.skill-col li span{color:var(--muted)}.workshops{margin-top:clamp(48px,6vw,80px);padding-top:clamp(28px,4vw,44px);border-top:1px solid var(--border)}.workshops .k{font:600 .72rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}.workshops p{color:var(--muted);font-size:.93rem;line-height:1.85;max-width:88ch}.workshops .more-link{margin-top:20px}.trainings-intro{padding-bottom:clamp(52px,7vw,84px)}.trainings-intro .eyebrow{margin-bottom:20px}.trainings-intro h1{font:600 clamp(2.3rem,5vw,3.85rem)/1.08 var(--serif);letter-spacing:-.035em;margin-bottom:22px}.trainings-archive{padding-top:0}.training-list{list-style:none}.training-entry{display:grid;grid-template-columns:minmax(140px,.3fr) minmax(0,1fr);grid-gap:clamp(28px,6vw,84px);gap:clamp(28px,6vw,84px);padding:clamp(34px,5vw,54px) 0;border-top:1px solid var(--border)}.training-entry.no-date{grid-template-columns:minmax(0,1fr)}.training-entry:last-child{border-bottom:1px solid var(--border)}.training-date{font:500 .76rem/1.6 var(--sans);letter-spacing:.08em;color:var(--muted);padding-top:5px}.training-entry h2{font:600 clamp(1.2rem,2vw,1.62rem)/1.36 var(--serif);letter-spacing:-.02em;max-width:45ch;overflow-wrap:anywhere}.training-organization{color:var(--text);font-size:.94rem;line-height:1.65;margin-top:12px}.training-description{color:var(--muted);font-size:.94rem;line-height:1.75;margin-top:20px;max-width:68ch}.training-actions{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:24px}.training-action{font:500 .86rem var(--sans);color:var(--accent);text-decoration:none}.training-action:hover{text-decoration:underline;text-underline-offset:3px}.masonry{column-count:2;column-gap:clamp(14px,2vw,22px)}.masonry button{display:block;width:100%;margin:0 0 clamp(14px,2vw,22px);padding:0;border:0;background:none;cursor:zoom-in;page-break-inside:avoid;break-inside:avoid;border-radius:3px;overflow:hidden}.masonry img{width:100%;border-radius:3px;transition:transform .6s cubic-bezier(.2,.6,.2,1)}.masonry button:hover img{transform:scale(1.015)}.masonry button:nth-child(3n+1) img{aspect-ratio:4/5;object-fit:cover}.about .prose{max-width:62ch}.about .prose p{font-size:1.08rem;line-height:1.78;color:var(--muted)}.about .prose p:first-child{color:var(--text);font-size:1.16rem;line-height:1.7}.about .prose p+p{margin-top:24px}.contact .invite{font:600 clamp(1.55rem,2.8vw,2.25rem)/1.24 var(--serif);letter-spacing:-.022em;max-width:26ch;color:var(--text)}.contact .invite,.contact .shead h1{margin-bottom:18px}.contact .lede{margin-bottom:clamp(44px,6vw,68px)}.contact-list{list-style:none;display:flex;flex-direction:column;gap:clamp(20px,3vw,28px);max-width:560px}.contact-list li{display:grid;grid-template-columns:104px 1fr;grid-gap:16px;gap:16px;align-items:baseline}.contact-list .k{font:600 .7rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.contact-list a,.contact-list span.v{color:var(--text);font-size:1.05rem;line-height:1.5;word-break:break-word}.contact-list a[href^=mailto]{font-weight:500;color:var(--accent)}.contact-list a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.site-footer{border-top:1px solid var(--border);padding:18px 0 14px;background:#fff}.footer-links{max-width:920px;padding-top:0;padding-bottom:10px;font-size:.86rem}.footer-links ul{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 0;list-style:none}.footer-links li{display:inline-flex;align-items:center;white-space:nowrap}.footer-links li:not(:last-child):after{content:"·";margin:0 12px;color:var(--muted)}.footer-links a{display:inline-flex;align-items:center;min-height:30px;color:var(--text);line-height:1.5;text-decoration:none}.footer-links a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.footer-links a:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:2px}.footer-meta{max-width:920px;margin-top:0;padding-top:10px;border-top:1px solid var(--border);color:var(--muted);font-size:.76rem;text-align:center}.lb{border:0;padding:0;background:none;max-width:min(94vw,1120px);max-height:94vh;margin:auto;overflow:visible}.lb::-webkit-backdrop{background:rgba(23,26,24,.92)}.lb::backdrop{background:rgba(23,26,24,.92)}.lb figure{margin:0;position:relative}.lb img{display:block;max-width:100%;max-height:82vh;margin:0 auto;border-radius:4px}.lb figcaption{color:#e9ebe8;text-align:center;margin-top:14px;font-size:.9rem}.lb .close{position:absolute;top:-42px;right:0;background:#fff;color:var(--text);border:0;border-radius:4px;padding:6px 14px;font:500 .85rem var(--sans);cursor:pointer}.more-link{display:inline-flex;align-items:center;gap:7px;margin-top:clamp(30px,4vw,44px);color:var(--accent);font:500 .9rem var(--sans);letter-spacing:-.005em;text-decoration:none}.more-link:hover{text-decoration:underline;text-underline-offset:3px}.pub-title a{color:inherit;text-decoration:none}.pub-title a:hover{color:var(--accent)}.focus-compact{list-style:none;display:grid;grid-gap:clamp(12px,1.6vw,18px);gap:clamp(12px,1.6vw,18px);max-width:56ch}.focus-compact li{display:flex;align-items:baseline;gap:16px}.focus-compact .n{font:500 .74rem var(--sans);letter-spacing:.16em;color:var(--muted);min-width:22px}.focus-compact .t{font:600 clamp(1.08rem,1.5vw,1.3rem)/1.34 var(--serif);letter-spacing:-.016em;color:var(--text)}.member-list{list-style:none;display:flex;flex-direction:column;gap:clamp(14px,2vw,20px);max-width:640px}.member-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 20px;border-top:1px solid var(--border);padding-top:clamp(14px,2vw,20px)}.member-list li:first-child{border-top:0;padding-top:0}.member-list .who{font-size:.98rem;color:var(--text)}.member-list .mid{font-size:.86rem;color:var(--muted);letter-spacing:.02em}.back-link{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font:500 .85rem var(--sans);text-decoration:none;margin-bottom:clamp(28px,4vw,40px)}.back-link:hover{color:var(--accent)}.pub-detail{max-width:72ch}.pub-detail h1{font:600 clamp(1.65rem,2.8vw,2.35rem)/1.28 var(--serif);letter-spacing:-.024em;margin:10px 0 16px}.pub-detail h1 em{font-style:italic}.pub-detail .pub-foot{margin-top:22px}.pub-detail .block{margin-top:30px}.pub-detail .block .k{font:600 .72rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.pub-detail .block p{color:var(--muted);line-height:1.75;max-width:68ch}.pub-detail .chips{display:flex;flex-wrap:wrap;gap:8px}.pub-detail .chips span{font-size:.82rem;color:var(--muted);border:1px solid var(--border);border-radius:2px;padding:4px 10px}@media(max-width:1200px){.nav-toggle{display:inline-flex}.site-header nav{display:contents}.site-header .wrap{position:relative}.nav-list{display:none;position:absolute;top:60px;left:0;right:0;min-width:0;max-height:calc(100vh - 60px);overflow-y:auto;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);border-bottom:1px solid var(--border);padding:4px var(--pad) 20px;box-shadow:0 18px 40px rgba(23,33,29,.08)}.nav-list.open{display:flex}.nav-list li{width:100%;min-width:0}.nav-disclosure,.nav-list>li>a{display:flex;width:100%;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border);font-size:.98rem}.nav-disclosure.on,.nav-list>li>a.on{border-bottom-color:var(--accent)}.nav-publications{position:static}.nav-publications-control{border-bottom:1px solid var(--border)}.nav-publications-control.on{border-bottom-color:var(--accent)}.nav-publications-link{display:block;flex:1 1;min-width:0;padding:14px 0;color:var(--muted);font-size:.98rem}.nav-publications-control .nav-disclosure{width:auto;padding:14px 0 14px 16px;border-bottom:0}.nav-submenu{position:static;min-width:0;padding:5px 0 8px 16px;background:none;border:0;border-left:1px solid var(--border);border-radius:0;box-shadow:none}.nav-submenu li{width:100%}.nav-submenu a{padding:10px 12px;font-size:.92rem;white-space:normal}.nav-cv{border:0!important;padding:15px 0!important}}@media(max-width:900px){.awards-grid,.current-grid,.presentation-card,.presentation-card.compact,.talk{grid-template-columns:1fr}.talk:nth-child(2n) .talk-media{order:0}.talk-media img,.talk-media.port img{aspect-ratio:3/2}.presentation-card.compact,.presentation-card.compact:nth-child(2n){grid-template-areas:"media" "content"}.presentation-lead.portrait img{aspect-ratio:3/2}.awards-media{max-width:440px}.awards-media img{aspect-ratio:4/5}}@media(max-width:720px){:root{--gap:clamp(68px,14vw,92px);--pad:clamp(18px,5vw,24px)}.focus-grid,.skills-grid{grid-template-columns:1fr}.focus-grid{gap:clamp(32px,7vw,42px)}.skills-grid{gap:clamp(40px,9vw,56px)}.tl li{gap:10px}.contact-list li,.tl li{grid-template-columns:1fr}.contact-list li{gap:4px}.hero .wrap{grid-template-columns:1fr;gap:clamp(26px,6vw,38px);padding-top:clamp(34px,9.5vw,54px)}.hero h1{font-size:clamp(2.25rem,10vw,2.75rem);line-height:1.05;letter-spacing:-.035em;margin-top:17px}.hero .role{font-size:1rem;margin-top:18px}.hero .intro{font-size:.95rem;max-width:none;margin-top:15px}.hero .affil{font-size:.8125rem;margin-top:21px}.hero .btn-row{gap:12px;margin-top:32px}.btn{flex:1 1 46%;justify-content:center}.portrait{max-width:100%}.pub-doi{margin-left:0}.publication-group-heading{grid-template-columns:1fr;gap:12px}.training-entry{grid-template-columns:1fr;gap:10px}.training-date{padding-top:0}.masonry{column-count:1}.pub-title,.talk h3{max-width:none}.presentation-meta>div{gap:2px}.conference-gallery-grid,.presentation-meta>div{grid-template-columns:1fr}}@media(max-width:600px){.site-footer{padding:14px 0 12px}.footer-links{padding-bottom:8px;font-size:.82rem}.footer-links ul{row-gap:0}.footer-links li:not(:last-child):after{margin:0 8px}.footer-meta{padding-top:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}.academic-home,.academic-page{background:#fff}.academic-reading-column{max-width:860px}.academic-intro{padding:clamp(56px,7vw,88px) 0 clamp(34px,4vw,52px)!important}.academic-intro h1{font:600 clamp(2rem,4vw,3rem)/1.1 var(--serif);letter-spacing:-.03em}.academic-intro .lede{margin-top:18px;max-width:62ch;font-size:1rem}.record-kicker{font:600 .7rem/1.4 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.record-link{display:inline-block;margin-top:18px;font-size:.88rem;font-weight:500}.reference-home{background:#fff}.reference-home .home-reference-section{padding:clamp(46px,6vw,68px) 0!important}.reference-home .home-reference-section+.home-reference-section{border-top:1px solid var(--border)}.home-reference-wrap{max-width:920px}.reference-home h1,.reference-home h2,.reference-home h3{font-family:var(--sans);letter-spacing:-.018em;color:#273a4a}.home-profile-heading{min-width:0;margin-bottom:clamp(32px,4vw,46px)}.home-profile-heading h1{font-size:clamp(1.75rem,3.1vw,2.25rem);line-height:1.2;font-weight:650}.home-professional-title{margin-top:9px;color:var(--muted);font-size:1rem;line-height:1.55}.home-university{margin-top:4px;color:var(--text);font-size:.94rem;line-height:1.55}.home-profile-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,230px);grid-gap:clamp(38px,6vw,72px);gap:clamp(38px,6vw,72px);align-items:start;min-width:0}.home-profile-layout.no-image{grid-template-columns:minmax(0,720px)}.home-about-copy{min-width:0}.home-about-copy h2,.home-contact-panel h2,.home-reference-section>div>h2{font-size:clamp(1.3rem,2vw,1.55rem);line-height:1.25;font-weight:650;margin-bottom:18px}.home-about-copy p{color:#4f5553;font-size:.96rem;line-height:1.75;text-align:left}.home-about-copy p+p{margin-top:17px}.home-profile-aside{min-width:0}.home-profile-image{margin:0}.home-profile-image img{width:100%;max-width:100%;height:auto;object-fit:cover;object-position:center;border-radius:2px}.achievement-entry figcaption,.home-profile-image figcaption,.research-project figcaption{margin-top:9px;color:var(--muted);font-size:.72rem;line-height:1.5}.home-quick-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.home-quick-links a{font-size:.84rem;font-weight:500}.home-education-list{list-style:none;border-top:1px solid var(--border)}.home-education-list li{padding:22px 0;border-bottom:1px solid var(--border)}.home-education-list h3{font-size:1.04rem;line-height:1.4;font-weight:650}.home-education-organization{margin-top:6px;color:var(--text);font-size:.91rem;line-height:1.55}.home-education-list time{display:block;margin-top:4px;color:var(--muted);font-size:.82rem}.home-education-description{margin-top:8px;color:var(--muted);font-size:.86rem;line-height:1.62;max-width:72ch}.home-interest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px 14px;gap:12px 14px;list-style:none}.home-interest-grid li{padding:13px 15px;border-left:3px solid var(--accent);background:#f4f6f5;color:#4e5552;font-size:.91rem;line-height:1.45}.home-contact-panel{padding:clamp(24px,4vw,34px);background:#f4f6f5}.home-contact-panel dl{display:flex;flex-direction:column;gap:11px}.home-contact-panel dl>div{display:grid;grid-template-columns:88px minmax(0,1fr);grid-gap:14px;gap:14px;align-items:baseline}.home-contact-panel dt{font-weight:650;color:#273a4a;font-size:.86rem}.home-contact-panel dd{color:#4f5553;font-size:.9rem;line-height:1.55;overflow-wrap:anywhere}.research-projects{padding:0 0 clamp(72px,9vw,112px)!important}.research-status-group{padding:0!important}.research-status-group+.research-status-group{margin-top:clamp(64px,8vw,96px)}.research-status-group>h2{font:600 clamp(1.45rem,2.6vw,2rem)/1.2 var(--serif);letter-spacing:-.024em;padding-bottom:18px;border-bottom:1px solid var(--text)}.research-project-list{display:flex;flex-direction:column}.research-project{padding:clamp(34px,5vw,56px) 0;border-top:1px solid var(--border)}.research-status-group>h2+.research-project-list>.research-project:first-child{border-top:0}.research-project:last-child{border-bottom:1px solid var(--border)}.research-project-copy{max-width:72ch}.research-project h3{font:600 clamp(1.35rem,2.4vw,1.9rem)/1.3 var(--serif);letter-spacing:-.022em}.research-description{margin-top:20px}.research-description p{color:var(--muted);font-size:.96rem;line-height:1.78}.research-description p+p{margin-top:17px}.research-project figure{margin:clamp(28px,4vw,40px) 0 0;max-width:760px}.research-project figure img{width:100%;max-height:620px;object-fit:contain;background:var(--surface)}.publications-index .academic-intro{padding-bottom:clamp(80px,11vw,140px)!important}.publication-directory{display:flex;flex-direction:column;max-width:650px;margin-top:clamp(34px,5vw,50px);border-top:1px solid var(--border)}.publication-directory a{display:flex;justify-content:space-between;gap:24px;padding:18px 0;border-bottom:1px solid var(--border);color:var(--text);font:600 clamp(1.05rem,2vw,1.3rem)/1.4 var(--serif);text-decoration:none}.publication-directory a:hover{color:var(--accent)}.presentations-page .wrap,.publications-page .wrap,.trainings-page .wrap{max-width:920px}.presentations-intro,.publication-intro,.trainings-intro{padding:clamp(56px,7vw,88px) 0 clamp(34px,4vw,52px)!important}.presentations-intro .eyebrow,.publication-intro .eyebrow,.trainings-intro .eyebrow{display:none}.presentations-intro h1,.publication-intro h1,.trainings-intro h1{font-size:clamp(2rem,4vw,3rem)}.presentations-intro .lede,.publication-intro .lede,.trainings-intro .lede{font-size:1rem;max-width:62ch}.presentations-archive,.publication-archive,.trainings-archive{padding:0 0 clamp(72px,9vw,112px)!important}.publication-group-heading{display:block;margin-bottom:16px}.publication-group-heading h2{font-size:clamp(1.4rem,2.4vw,1.8rem)}.publication-group-heading p{margin-top:8px;font-size:.88rem}.publication-group+.publication-group{margin-top:clamp(52px,7vw,80px)}.pub{padding:clamp(24px,3vw,34px) 0}.pub-title{font-size:clamp(1.02rem,1.5vw,1.2rem)}.pub-authors,.pub-venue{font-size:.88rem}.pub-foot{margin-top:14px}.experience-archive{padding:0 0 clamp(72px,9vw,112px)!important}.experience-groups{display:flex;flex-direction:column;gap:clamp(48px,7vw,76px)}.experience-group h2{font:600 clamp(1.35rem,2.4vw,1.8rem)/1.25 var(--serif);letter-spacing:-.022em;margin-bottom:16px}.experience-list{list-style:none;border-top:1px solid var(--border)}.experience-list>li{padding:clamp(24px,3vw,34px) 0;border-bottom:1px solid var(--border)}.experience-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:14px 28px;gap:14px 28px;align-items:baseline}.experience-heading h3{font:600 clamp(1.05rem,1.6vw,1.22rem)/1.35 var(--serif);letter-spacing:-.016em}.experience-heading time{font-size:.78rem;color:var(--muted);white-space:nowrap}.experience-organization{margin-top:7px;font-size:.91rem;color:var(--text)}.experience-description{margin-top:12px;color:var(--muted);font-size:.91rem;line-height:1.68;max-width:70ch}.experience-responsibilities{margin:12px 0 0 18px;color:var(--muted);font-size:.9rem;line-height:1.65}.training-entry{grid-template-columns:minmax(120px,.25fr) minmax(0,1fr);gap:clamp(24px,5vw,60px);padding:clamp(26px,4vw,38px) 0}.training-entry h2{font-size:clamp(1.08rem,1.7vw,1.28rem)}.training-description{margin-top:12px}.training-actions{margin-top:16px}.training-certificate{margin-top:24px;max-width:560px}.training-certificate a{display:block}.training-certificate img{display:block;width:100%;height:auto;border:1px solid var(--border);background:var(--surface)}.presentation-certificate figcaption,.training-certificate figcaption{margin-top:9px;color:var(--muted);font-size:.78rem;line-height:1.55}.presentation-list>.presentation-card{padding:clamp(30px,4vw,46px) 0}.presentation-card{grid-template-columns:minmax(0,1fr) minmax(180px,280px);grid-template-areas:"content media";gap:clamp(28px,5vw,56px)}.presentation-card.no-media{grid-template-columns:minmax(0,720px);grid-template-areas:"content"}.presentation-content{grid-area:content}.presentation-media{grid-area:media;gap:24px}.presentation-card h2,.presentation-card h3{font-size:clamp(1.12rem,1.8vw,1.38rem)}.presentation-event{font-size:.91rem;margin-top:12px}.presentation-meta{gap:10px;margin-top:18px}.presentation-meta>div{grid-template-columns:80px minmax(0,1fr)}.presentation-highlights,.presentation-summary{margin-top:20px}.presentation-action{margin-top:22px;padding:9px 14px}.poster-preview img{max-height:420px}.conference-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.presentation-certificate{margin:0}.presentation-certificate>.presentation-label{margin-bottom:10px}.presentation-certificate button{display:block;width:100%;cursor:zoom-in;border:0;background:none;padding:0}.presentation-certificate img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;background:var(--surface)}.achievement-archive{padding:0 0 clamp(72px,9vw,112px)!important}.achievement-list{list-style:none;border-top:1px solid var(--border)}.achievement-list>li{padding:clamp(30px,5vw,52px) 0;border-bottom:1px solid var(--border)}.achievement-entry.has-image{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);grid-gap:clamp(30px,6vw,68px);gap:clamp(30px,6vw,68px);align-items:start}.achievement-entry time{display:block;color:var(--muted);font-size:.78rem;letter-spacing:.06em;margin-bottom:10px}.achievement-entry h2{font:600 clamp(1.2rem,2vw,1.5rem)/1.32 var(--serif);letter-spacing:-.02em}.achievement-organization{margin-top:9px;font-size:.91rem;color:var(--text)}.achievement-description{margin-top:13px;color:var(--muted);font-size:.92rem;line-height:1.7}.achievement-entry figure{margin:0}.achievement-entry figure img{width:100%;max-height:420px;object-fit:contain;background:var(--surface)}.about-layout.has-image{display:grid;grid-template-columns:minmax(240px,330px) minmax(0,1fr);grid-gap:clamp(38px,6vw,76px);gap:clamp(38px,6vw,76px);align-items:start}.about-profile{margin:0}.about-profile img{display:block;width:100%;height:auto;max-height:520px;object-fit:cover;object-position:center;border-radius:2px}.about-profile figcaption{margin-top:10px;color:var(--muted);font-size:.78rem;line-height:1.55}.about-copy{min-width:0}.about-copy .shead{margin-bottom:28px}.about-copy .prose{max-width:68ch}.about-actions{padding-top:0!important}.about-action-links{display:flex;flex-wrap:wrap;gap:14px}@media(max-width:720px){.reference-home .home-reference-section{padding:40px 0!important}.home-profile-layout{grid-template-columns:minmax(0,1fr);gap:30px}.home-profile-aside{width:100%;max-width:260px}.home-contact-panel dl>div,.home-interest-grid{grid-template-columns:minmax(0,1fr)}.home-contact-panel dl>div{gap:2px}.experience-heading{grid-template-columns:1fr;gap:5px}.academic-intro{padding-top:44px!important}.research-project{padding:30px 0}.achievement-entry.has-image,.presentation-card{grid-template-columns:1fr;grid-template-areas:"content" "media"}.achievement-entry.has-image{display:grid}.training-entry{grid-template-columns:1fr;gap:8px}.presentation-meta>div{grid-template-columns:1fr;gap:2px}.about-layout.has-image{grid-template-columns:1fr;gap:34px}.about-profile{max-width:420px}}:is(.home-about-copy p,.home-education-description,.about .prose p,.research-description p,.experience-description,.experience-responsibilities li,.publication-abstract,.presentation-summary,.presentation-highlights li,.training-description,.achievement-description,.focus-item p,.current-body>p:not(.k),.tl p:not(.org),.award-list p){text-align:justify;text-justify:inter-word}@media(max-width:480px){:is(.home-about-copy p,.home-education-description,.about .prose p,.research-description p,.experience-description,.experience-responsibilities li,.publication-abstract,.presentation-summary,.presentation-highlights li,.training-description,.achievement-description,.focus-item p,.current-body>p:not(.k),.tl p:not(.org),.award-list p){text-align:left}}