:root{--bg:#ffffff;--bg-soft:#f6f7f9;--text:#1c1e21;--text-2:#4b5260;--muted:#6b7280;--line:#e5e7eb;--link:var(--accent);--tint:color-mix(in srgb, var(--accent) 9%, transparent);--serif:"Source Serif 4", Georgia, "Times New Roman", serif;--sans:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius:10px;--wrap:1080px;--prose-wide:100ch;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111317;--bg-soft:#1a1d23;--text:#e6e8eb;--text-2:#b7bcc6;--muted:#8b919c;--line:#2a2e36;--link:var(--accent-dark);--tint:color-mix(in srgb, var(--accent-dark) 12%, transparent);color-scheme:dark}}:root[data-theme=dark]{--bg:#111317;--bg-soft:#1a1d23;--text:#e6e8eb;--text-2:#b7bcc6;--muted:#8b919c;--line:#2a2e36;--link:var(--accent-dark);--tint:color-mix(in srgb, var(--accent-dark) 12%, transparent);color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 var(--sans);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:4px}img{max-width:100%;display:block}h1,h2,h3{line-height:1.25;margin:0}h2{font:600 1.3rem/1.3 var(--serif);letter-spacing:-.005em;margin:3.2rem 0 1.1rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}.muted{color:var(--muted)}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:var(--bg);padding:6px 10px;z-index:10}.prose,.lead,.note,.intro,.callout,.bio{max-width:var(--prose-wide)}.prose p{margin:0 0 1em}.prose p:last-child{margin-bottom:0}.prose strong{font-weight:600}.site-header{border-bottom:1px solid var(--line);background:var(--bg-soft)}.masthead{display:grid;grid-template-columns:1fr 230px;gap:56px;align-items:center;padding:40px 0 28px}.masthead-photo .monogram{display:grid;place-items:center;font:600 3.6rem var(--serif);color:var(--link);background:linear-gradient(135deg,var(--tint),var(--bg));border:1px solid var(--line)}.masthead-name{font:600 2.6rem/1.05 var(--serif);letter-spacing:-.02em;margin-bottom:.7rem}.masthead-name a{color:var(--text)}.masthead-name a:hover{color:var(--link);text-decoration:none}.masthead-role{margin:0;color:var(--text-2);font-size:1rem;line-height:1.6}.masthead-role strong{color:var(--text);font-weight:600}.masthead-role a{color:var(--link)}.masthead-sub{color:var(--muted);font-size:.93rem}.masthead-sub p{display:inline;margin:0}.masthead-photo img,.masthead-photo .monogram{width:230px;height:230px;border-radius:14px;object-fit:cover;box-shadow:0 1px 2px rgba(0,0,0,7%),0 10px 28px rgba(0,0,0,.1)}.masthead .buttons{margin-top:1.1rem}.buttons{display:flex;flex-wrap:wrap;gap:8px}.btn{display:inline-block;font-size:.87rem;font-weight:500;padding:6px 13px;line-height:1.4;border:1px solid var(--line);border-radius:999px;color:var(--text-2);background:var(--bg);transition:border-color .15s,color .15s,background .15s}.btn:hover{text-decoration:none;color:var(--link);border-color:var(--link)}.btn.primary{background:var(--link);border-color:var(--link);color:var(--bg)}.btn.primary:hover{filter:brightness(1.08);color:var(--bg)}.tabbar{border-top:1px solid var(--line);background:var(--bg-soft)}.tabbar-inner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:7px;padding-bottom:7px}.tabs{display:flex;flex-wrap:wrap;gap:4px}.tabs a{color:var(--text-2);font-size:.94rem;font-weight:500;padding:7px 14px;border-radius:8px}.tabs a:hover{color:var(--text);background:var(--bg);text-decoration:none}.tabs a[aria-current=page]{color:var(--bg);background:var(--link)}.theme-toggle{display:grid;place-items:center;width:34px;height:34px;flex:none;border:1px solid var(--line);border-radius:8px;background:0 0;color:var(--text-2);cursor:pointer}.theme-toggle:hover{color:var(--text);background:var(--bg)}.theme-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.theme-toggle .i-moon{fill:currentColor;stroke:none}.i-sun{display:none}:root[data-theme=dark] .i-sun{display:block}:root[data-theme=dark] .i-moon{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .i-sun{display:block}:root:not([data-theme=light]) .i-moon{display:none}}main{padding-top:40px;padding-bottom:72px;min-height:50vh}.callout{margin:0 0 2rem;padding:12px 16px;border-radius:var(--radius);background:var(--tint);border-left:3px solid var(--link);font-size:.97rem}.callout p{margin:0}.bio{font-size:1.02rem}.about h2.first{margin-top:0}.areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.area{display:flex;flex-direction:column;padding:18px 18px 14px;color:var(--text);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);transition:border-color .15s,transform .15s,box-shadow .15s}.area:hover{text-decoration:none;border-color:var(--link);transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,6%)}.area h3{font-size:1rem;font-weight:600;margin-bottom:.35rem}.area p{margin:0 0 .7rem;color:var(--text-2);font-size:.92rem;line-height:1.55;flex:1}.area .more{font-size:.85rem;color:var(--link);font-weight:500}.news{list-style:none;margin:0;padding:0}.news li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;padding:7px 0}.news time{color:var(--muted);font-size:.88rem;font-variant-numeric:tabular-nums;padding-top:2px;white-space:nowrap}.news p{margin:0}.see-all{margin:1rem 0 0;font-size:.93rem;font-weight:500}.pubs{display:flex;flex-direction:column}.pub,.talk{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;padding:14px 0}.pub+.pub,.talk+.talk{border-top:1px dashed var(--line)}.pub-venue{align-self:start;margin-top:3px;text-align:center;font-size:.74rem;font-weight:600;letter-spacing:.02em;padding:3px 6px;border-radius:6px;color:var(--link);background:var(--tint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pub-venue.journal{color:var(--bg);background:var(--link)}.pub-venue.preprint{color:var(--muted);background:var(--bg-soft);border:1px solid var(--line)}.talk-date{color:var(--muted);background:var(--bg-soft)}.pub-body{min-width:0}.pub-title{font-size:1.02rem;font-weight:600;line-height:1.4;margin-bottom:.2rem}.pub-title a{color:var(--text)}.pub-title a:hover{color:var(--link)}.pub-authors{color:var(--text-2);font-size:.94rem}.pub-authors .me{font-weight:600;color:var(--text)}.pub-authors .coauthor{color:inherit;border-bottom:1px dotted var(--muted)}.pub-authors .coauthor:hover{color:var(--link);text-decoration:none}.pub-where{color:var(--muted);font-size:.92rem}.pub-where .status{font-style:normal;color:var(--link)}.pub-note,.pub-award{font-size:.88rem;color:var(--muted);margin-top:.1rem}.pub-award{color:#b7791f;font-weight:500}.pub-links{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;margin-top:.5rem}.pub-links a,.bib summary{font-size:.78rem;font-weight:500;padding:2px 9px;border:1px solid var(--line);border-radius:6px;color:var(--text-2);cursor:pointer;list-style:none;user-select:none;line-height:1.6}.pub-links a:hover,.bib summary:hover{color:var(--link);border-color:var(--link);text-decoration:none}.bib summary::-webkit-details-marker{display:none}.bib{min-width:0;max-width:100%}.bib[open]{flex-basis:100%}.bib[open] summary{color:var(--link);border-color:var(--link);display:inline-block}.bib-box{position:relative;margin-top:8px;max-width:100%}.bib pre{margin:0;padding:12px 14px;overflow-x:auto;font:.78rem/1.55 var(--mono);background:var(--bg-soft);border:1px solid var(--line);border-radius:8px;color:var(--text-2)}.copy{position:absolute;top:8px;right:8px;font:500 .74rem var(--sans);padding:2px 8px;cursor:pointer;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text-2)}.copy:hover{color:var(--link);border-color:var(--link)}.page-title{font:600 2.1rem/1.2 var(--serif);letter-spacing:-.01em;margin-bottom:1rem}.intro{color:var(--text-2);margin-bottom:1.5rem}.note{font-size:.92rem;margin:0 0 1.25rem}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 .5rem}.chip{font:500 .86rem var(--sans);padding:5px 12px;border-radius:999px;cursor:pointer;border:1px solid var(--line);background:var(--bg);color:var(--text-2)}.chip:hover{border-color:var(--link);color:var(--link)}.chip[aria-pressed=true]{background:var(--link);border-color:var(--link);color:var(--bg)}.year-group h2.year{font:600 1.05rem var(--sans);color:var(--muted);margin:2.2rem 0 .3rem;padding-bottom:.4rem}.year-group[hidden],.pub[hidden]{display:none}.cv-section:first-of-type h2{margin-top:1.5rem}.entries{list-style:none;margin:0;padding:0}.entry{padding:9px 0}.entry-head{display:flex;justify-content:space-between;gap:24px;align-items:baseline}.entry-title{font-weight:600}.entry-title p,.entry-sub p,.entry-where p{display:inline;margin:0}.entry-sub{color:var(--muted);font-size:.94rem}.entry-where{color:var(--text-2);font-size:.95rem}.entry-when{color:var(--muted);font-size:.9rem;white-space:nowrap;font-variant-numeric:tabular-nums}.entry-details{margin:.3rem 0 0;padding-left:1.1rem;color:var(--text-2);font-size:.94rem}.entry-details p{margin:0}.entry-note{color:var(--muted);font-size:.9rem;margin-top:.2rem}.contact-list{display:grid;grid-template-columns:max-content 1fr;gap:6px 20px;margin:0}.contact-list dt{color:var(--muted);font-size:.93rem}.contact-list dd{margin:0;color:var(--text-2)}.contact-list dd p{margin:0}@media(max-width:680px){.masthead{grid-template-columns:1fr;gap:20px;padding:26px 0 20px}.masthead-photo{order:-1}.masthead-photo img{width:140px;height:140px}.masthead-name{font-size:2.05rem}.tabs{justify-content:flex-start}.tabs a{padding:6px 10px;font-size:.9rem}main{padding-top:28px}.areas{grid-template-columns:1fr}.news li{grid-template-columns:1fr;gap:0}.pub,.talk{grid-template-columns:minmax(0,1fr);gap:6px}.pub-venue{justify-self:start}.entry-head{flex-direction:column;gap:0}}@media print{.tabbar,.site-footer,.theme-toggle,.filters,.bib{display:none!important}.site-header{border:0;background:0 0}main{padding:0}}.lead{font-size:1.05rem;color:var(--text-2)}.research-area{scroll-margin-top:80px}.research-area .prose p{margin:0 0 .8em}.area-papers{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1.1rem 0 .4rem}.paper-list{margin:0;padding-left:1.1rem}.paper-list li{margin:.25rem 0}.paper-list a{color:var(--text);font-weight:500}.paper-list a:hover{color:var(--link)}.contact-list{font-size:1.02rem;margin-top:.5rem}.ongoing{margin:1rem 0 0;font-size:.92rem;color:var(--muted);font-style:italic}.ongoing p{margin:0}