@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Instrument+Serif:ital@0;1&display=swap');
:root{--ink:#18222d;--muted:#596574;--blue:#1549dd;--line:#dce1e8;--wash:#f3f6fb;--serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65}a{color:inherit;text-decoration:none}a:hover{color:var(--blue)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}button{font:inherit}p{margin:0 0 1.15em}h1,h2,h3{line-height:1.1;font-weight:500;margin:0}h1,h2{font-family:var(--serif)}h1{font-size:clamp(3.5rem,7.5vw,6.7rem);letter-spacing:-.035em}h2{font-size:clamp(2.4rem,4vw,3.6rem);letter-spacing:-.025em}h3{font-size:1.12rem;font-weight:600;line-height:1.4}.wrap{width:min(1180px,calc(100% - 96px));margin:auto}.skip{position:absolute;left:20px;top:-100px;background:white;z-index:20;padding:12px}.skip:focus{top:12px}.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);z-index:10}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:92px;gap:24px}.brand{font-size:1.04rem;font-weight:650;letter-spacing:-.03em;white-space:nowrap}.brand span{color:var(--blue)}nav{display:flex;gap:26px;align-items:center;font-size:.9rem}nav a{padding:12px 0;position:relative}nav a[aria-current=page]{color:var(--blue)}nav a[aria-current=page]:after{content:'';height:2px;background:var(--blue);position:absolute;bottom:3px;left:0;right:0}.cv-link{border:1px solid var(--ink);padding:8px 16px!important}.menu-toggle{display:none;background:white;border:1px solid var(--line);padding:7px 13px}.eyebrow{color:var(--blue);text-transform:uppercase;font-size:.79rem;letter-spacing:.14em;font-weight:650;margin-bottom:24px}.hero{display:grid;grid-template-columns:1fr 300px;gap:90px;padding:90px 0 76px;align-items:center}.hero h1 em{color:var(--blue);font-weight:400}.hero .intro{max-width:650px;margin-top:29px;font-size:1.13rem}.hero .intro strong{font-weight:600}.hero .description{max-width:620px;color:var(--muted)}.links{display:flex;flex-wrap:wrap;gap:12px 27px;margin-top:25px;font-size:.94rem}.text-link{display:inline-block;border-bottom:1px solid var(--ink);padding-bottom:3px}.text-link:hover{border-color:var(--blue)}.portrait{aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;background:#edf2fb;border:1px solid #d5dff5;position:relative;overflow:hidden}.portrait:before{content:'';position:absolute;inset:18px;border:1px solid #d0dafa}.portrait-monogram{font-family:var(--serif);font-size:6.7rem;color:#b2c4ed;letter-spacing:-.06em}.portrait-caption{position:absolute;bottom:27px;left:0;right:0;text-align:center;color:#556c9f;font-size:.76rem;letter-spacing:.09em;text-transform:uppercase}.portrait img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.portrait figcaption{display:none}.portrait-wrap{margin:0}.portrait-note{font-size:.85rem;color:var(--muted);padding-top:16px}.research-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding:27px 0;gap:25px}.research-band div{font-size:1rem}.research-band span{color:var(--blue);font-family:var(--serif);font-size:1.4rem;margin-right:12px}.section{padding:74px 0;border-bottom:1px solid var(--line)}.section-top{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}.section-top .text-link{font-size:.92rem;white-space:nowrap}.paper{display:grid;grid-template-columns:65px 1fr;gap:16px;padding:25px 0;border-top:1px solid var(--line)}.paper:first-child{border-top:0;padding-top:0}.paper-year{font-size:.85rem;color:var(--muted);padding-top:4px;font-variant-numeric:tabular-nums}.paper h3{max-width:880px;font-size:1.17rem;line-height:1.4}.paper p{color:var(--muted);font-size:.9rem;margin:8px 0 0;max-width:880px}.paper-actions{display:flex;gap:18px;font-size:.8rem;margin-top:10px;color:var(--blue);font-weight:600}.paper-actions a{border-bottom:1px solid #c6d3f8}.split{display:grid;grid-template-columns:1fr 1.55fr;gap:100px}.split .lead{font-size:1.1rem;color:var(--muted);margin-top:20px}.events .event{padding:18px 0;border-bottom:1px solid var(--line)}.events .event:first-child{padding-top:0}.event .meta{font-size:.8rem;color:var(--muted);margin-bottom:6px}.event h3{font-size:1.04rem}.event p{font-size:.9rem;color:var(--muted);margin:5px 0 0}.page-intro{padding:74px 0 45px;max-width:850px}.page-intro h1{font-size:clamp(3.5rem,6vw,5rem)}.page-intro .lead{font-size:1.13rem;color:var(--muted);margin-top:20px;max-width:730px}.page-intro .eyebrow{margin-bottom:18px}.page-body{padding-bottom:65px}.research-block{display:grid;grid-template-columns:70px 1fr;gap:30px;padding:45px 0;border-top:1px solid var(--line)}.research-block .number{font-family:var(--serif);color:var(--blue);font-size:2.5rem}.research-block h2{font-size:2.6rem;margin-bottom:22px}.research-block p{max-width:820px;color:var(--muted)}.research-block .text-link{font-size:.94rem}.partners{background:var(--wash);padding:36px 40px;margin:25px 0}.partners h3{margin-bottom:14px}.partners p:last-child{margin-bottom:0}.subhead{font-family:var(--serif);font-size:2.35rem;margin:38px 0 22px}.people-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:60px}.person{padding:24px 0;border-top:1px solid var(--line)}.person h3{font-size:1.15rem}.person .dates{font-size:.83rem;color:var(--muted);margin:6px 0 10px}.person p{font-size:.92rem;color:var(--muted);margin:6px 0}.person .position{color:var(--blue);font-weight:500}.person .award{font-size:.85rem}.course{padding:27px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:140px 1fr;gap:25px}.course .label{font-size:.84rem;color:var(--muted)}.course p{color:var(--muted);font-size:.95rem;margin:9px 0}.course a{font-size:.88rem}.service{margin-top:24px;color:var(--muted)}.service p{max-width:880px}.footer{padding:45px 0 32px}.footer-top{display:flex;justify-content:space-between;gap:40px}.footer-name{font-family:var(--serif);font-size:1.9rem}.footer p{font-size:.88rem;color:var(--muted);margin:6px 0}.footer-links{display:flex;gap:24px;font-size:.9rem;align-items:start}.footer-bottom{margin-top:35px;padding-top:20px;border-top:1px solid var(--line);font-size:.76rem;color:var(--muted)}.archive{margin-top:35px;border-top:1px solid var(--line);padding:20px 0}.archive summary{cursor:pointer;font-weight:600}.archive ul{padding-left:22px;color:var(--muted);font-size:.94rem}.archive li{padding:8px 0}.archive a{text-decoration:underline;text-decoration-color:#b9c5db;text-underline-offset:3px}
@media(min-width:1500px){.hero{padding-top:110px;padding-bottom:100px}}@media(max-width:1050px){.wrap{width:calc(100% - 56px)}nav{gap:16px;font-size:.84rem}.hero{grid-template-columns:1fr 245px;gap:45px}.split{gap:45px}.people-grid{column-gap:35px}}@media(max-width:760px){.wrap{width:calc(100% - 40px)}.header-inner{min-height:76px;flex-wrap:wrap;gap:0}.menu-toggle{display:block}nav{display:none;width:100%;padding:8px 0 22px;align-items:stretch;flex-direction:column;gap:2px;font-size:1rem}nav.open{display:flex}nav a{padding:9px 0}nav a[aria-current=page]:after{display:none}.cv-link{align-self:start;margin-top:8px}.hero{padding:54px 0 40px;grid-template-columns:1fr;gap:32px}.hero h1{font-size:clamp(3.4rem,14vw,5.5rem)}.hero .intro{font-size:1.04rem}.portrait-wrap{width:180px}.portrait-monogram{font-size:4.5rem}.portrait-caption{font-size:.65rem;bottom:23px}.portrait-note{font-size:.78rem}.research-band{grid-template-columns:1fr;gap:9px;padding:22px 0}.section{padding:45px 0}.section-top{align-items:start;flex-direction:column;gap:16px;margin-bottom:26px}.paper{grid-template-columns:1fr;gap:6px}.paper-year{padding:0}.paper h3{font-size:1.07rem}.split{grid-template-columns:1fr;gap:30px}.page-intro{padding:48px 0 30px}.page-intro h1{font-size:3.4rem}.page-intro .lead{font-size:1.05rem}.research-block{grid-template-columns:1fr;gap:12px;padding:32px 0}.research-block h2{font-size:2.3rem}.research-block .number{font-size:1.5rem}.people-grid{grid-template-columns:1fr}.course{grid-template-columns:1fr;gap:9px}.partners{padding:25px}.footer-top{flex-direction:column;gap:20px}.footer-links{flex-wrap:wrap;gap:14px 22px}.footer{padding-top:30px}.footer-bottom{margin-top:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.site-header,.footer,.portrait-wrap{display:none}.wrap{width:100%}body{font-size:11pt}a{color:inherit}.page-intro{padding-top:0}.paper,.person,.course{break-inside:avoid}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Homepage profile links and research keywords. */
.profile-links{gap:14px 24px;align-items:center}
.profile-link{display:inline-flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--line)}
.profile-link:hover{border-color:var(--blue)}
.profile-link svg{width:18px;height:18px;flex:none}
.research-band{display:flex;justify-content:space-between;align-items:center;gap:0}
.research-band div{padding:0 24px;text-align:center}
.research-band div:first-child{padding-left:0}
.research-band div:last-child{padding-right:0}
.research-band div+div{border-left:1px solid var(--line)}
@media(max-width:1050px){.research-band div{padding:0 14px;font-size:.9rem}}
@media(max-width:760px){.research-band{display:grid;grid-template-columns:1fr 1fr;gap:16px 0}.research-band div{padding:0 14px;text-align:left}.research-band div:nth-child(odd){padding-left:0;border-left:0}.profile-links{gap:12px 20px}}

.journal-link{text-decoration:underline;text-decoration-color:#b9c5db;text-underline-offset:3px}.paper-year{font-variant-numeric:tabular-nums}

.inline-link{text-decoration:underline;text-decoration-color:#b9c5db;text-underline-offset:3px}.academic-overview{display:grid;grid-template-columns:1.2fr 1fr;gap:65px}.academic-overview h2{font-size:2.35rem;margin-bottom:24px}.academic-overview p,.academic-overview li{font-size:.95rem;color:var(--muted)}.academic-overview ul{padding-left:20px}.academic-overview li{margin-bottom:18px}.teaching-list span{display:block;font-size:.83rem;margin-top:5px}.service-awards h2:not(:first-child){margin-top:32px}.talk-distinction{color:var(--blue);font-weight:700}.archive summary{font-family:var(--serif);font-size:1.9rem;font-weight:500}.events{margin-top:24px}@media(max-width:760px){.academic-overview{grid-template-columns:1fr;gap:32px}}

.paper-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}.paper-grid .paper{display:flex;flex-direction:column;gap:14px;padding:26px 0;border-top:1px solid var(--line)}.paper-grid .paper h3{font-size:1.12rem}.paper-grid .paper p{font-size:.86rem}.agenda-year{color:var(--blue);font-size:1.05rem;margin:36px 0 14px}.agenda-row{display:grid;grid-template-columns:180px 1fr;gap:30px;padding:22px 0;border-top:1px solid var(--line)}.agenda-date{color:var(--blue);font-size:.94rem;font-weight:500}.agenda-row h3{font-size:1.08rem}.agenda-row p{font-size:.9rem;color:var(--muted);margin:6px 0 0}.agenda-row .agenda-place{font-size:.83rem}.thesis-note{display:block;font-size:.78rem;margin-top:5px}@media(max-width:760px){.paper-grid{grid-template-columns:1fr;gap:22px}.agenda-row{grid-template-columns:1fr;gap:8px}.agenda-year{margin-top:28px}}

/* Shared date-led agenda and compact recent publications. */
.agenda-row h4{font-size:1.08rem;font-weight:600;line-height:1.4;margin:0}
.talk-badges{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}
.talk-badges .talk-distinction{display:inline-block;background:var(--wash);border:1px solid #d5dff5;padding:2px 9px;font-size:.75rem;letter-spacing:.035em;border-radius:3px}
.section-jumps{display:flex;flex-wrap:wrap;gap:12px 28px;padding:4px 0 26px;border-bottom:1px solid var(--line)}
.section-jumps a{color:var(--blue);font-size:.94rem;border-bottom:1px solid #c6d3f8}
.paper-grid .paper h3{font-size:1.15rem}
.paper-grid .paper p{font-size:.88rem}
@media(max-width:760px){.paper-grid{gap:0}.paper-grid .paper{padding:22px 0}.agenda-row h4{font-size:1.05rem}}

.people-role{margin-bottom:48px}.people-status{color:var(--blue);font-size:.85rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;margin:28px 0 15px}.person h4{font-size:1.15rem;font-weight:600;line-height:1.4;margin:0}
