:root{--ink:#203542;--muted:#596872;--accent:#1d5872;--rule:#dce2e3;--paper:#fcfcfa;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline}a:focus-visible{outline:3px solid #397d9c;outline-offset:5px}::selection{background:#d8e8ee}.skip-link{position:fixed;left:14px;top:-100px;z-index:20;background:white;padding:8px 16px}.skip-link:focus{top:10px}.site-header{position:sticky;top:0;z-index:10;background:rgba(252,252,250,.97);border-bottom:1px solid var(--rule)}.nav-wrap{max-width:1120px;margin:auto;padding:21px 36px;display:flex;align-items:center;justify-content:space-between;gap:25px}.wordmark{font-family:var(--serif);font-size:23px;font-weight:700;letter-spacing:-.6px;color:var(--ink)}.wordmark-dot{color:#a66c42}.wordmark:hover{text-decoration:none}nav{display:flex;align-items:center;gap:31px}nav a{font-size:14px;color:var(--ink)}nav .nav-cv{border:1px solid #bac8ce;border-radius:3px;padding:5px 14px}.page{max-width:1120px;padding:0 36px;margin:auto}.hero{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:76px;padding:72px 0 49px;align-items:start}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:1.8px;color:var(--accent);font-weight:600;margin:0 0 11px}h1{font-family:var(--serif);font-size:60px;line-height:1.12;letter-spacing:-1.9px;font-weight:400;margin:0 0 23px}.affiliation{font-size:16px;line-height:1.65;margin:0 0 25px}.affiliation a{color:var(--ink)}.bio{margin:0 0 16px;max-width:660px}.education{font-size:15px;color:var(--muted);margin:0 0 24px}.profile-links{display:flex;flex-wrap:wrap;gap:12px 28px;font-size:14px}.profile-links a{border-bottom:1px solid #b6c9d1}.profile-links a:hover{text-decoration:none;border-color:var(--accent)}.portrait{margin:4px 0 0;position:relative}.portrait img{display:block;width:100%;height:310px;object-fit:cover;object-position:center 28%;border-radius:3px}.portrait:after{content:'';height:3px;width:48px;background:#a66c42;display:block;margin-top:19px}.interests{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:18px 0;display:flex;align-items:center;flex-wrap:wrap;gap:8px 30px;color:var(--ink);font-size:13px}.interests-label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-right:16px}.content-section{padding-top:54px;scroll-margin-top:0}.section-heading{display:flex;align-items:baseline;gap:24px;margin-bottom:9px}.section-heading h2{font-family:var(--serif);font-size:34px;font-weight:400;letter-spacing:-.7px;line-height:1.3;margin:0}.section-heading>p{font-size:13px;color:var(--muted);margin:0}.paper{display:grid;grid-template-columns:36px minmax(0,1fr);gap:18px;padding:29px 0 27px;border-bottom:1px solid var(--rule)}.paper-number{font-size:12px;color:#73808a;padding-top:6px;letter-spacing:1px}.paper h3{font-family:var(--serif);font-size:23px;font-weight:400;line-height:1.4;letter-spacing:-.2px;margin:0 0 7px}.coauthors{font-size:14px;color:var(--muted);margin:0}.appearances{margin-top:14px;padding-left:14px;border-left:2px solid #d2dfe4}.appearances p{margin:5px 0 0;font-size:12.5px;line-height:1.8;color:var(--muted)}.list-label{font-weight:600;color:#435d6a;margin-right:9px}.teaching-section{padding-top:54px;padding-bottom:75px}.courses{margin-top:24px;border-top:1px solid var(--rule)}.course{display:grid;grid-template-columns:78px 1fr auto;align-items:baseline;gap:22px;padding:22px 0;border-bottom:1px solid var(--rule)}.course h3{font-family:var(--serif);font-weight:400;font-size:23px;line-height:1.4;margin:0}.program{font-size:12px;color:var(--accent);font-weight:600;letter-spacing:1px}.course-school{font-size:12px;color:var(--muted)}.abbreviation{font-family:var(--sans);font-size:15px;color:var(--muted)}.site-footer{border-top:1px solid var(--rule)}.site-footer>div{max-width:1120px;margin:auto;display:flex;justify-content:space-between;padding:23px 36px 31px;font-size:12px;color:var(--muted)}
@media(min-width:1400px){.hero{padding-top:88px}}
@media(max-width:850px){.hero{grid-template-columns:minmax(0,1fr) 210px;gap:35px;padding-top:48px}h1{font-size:49px}.portrait img{height:270px}.bio{font-size:15px}.interests{gap:8px 20px}.interests-label{width:100%;margin-right:0}}
@media(max-width:600px){html{scroll-padding-top:130px}.nav-wrap{padding:15px 22px;gap:9px;flex-wrap:wrap}.wordmark{font-size:22px}nav{gap:19px}nav a{font-size:13px}nav .nav-cv{padding:3px 10px}.page{padding:0 22px}.hero{grid-template-columns:1fr;gap:25px;padding:36px 0 30px}.portrait{grid-row:1;max-width:150px;margin:0}.portrait img{height:166px;object-position:center 25%}.portrait:after{display:none}h1{font-size:45px;margin-bottom:18px}.eyebrow{font-size:10px;letter-spacing:1.35px}.affiliation{font-size:14px;margin-bottom:20px}.bio{font-size:15px}.education{font-size:14px}.profile-links{gap:11px 25px;font-size:13px}.interests{gap:7px 18px;font-size:12px}.content-section{padding-top:36px}.section-heading{display:block}.section-heading h2{font-size:31px}.section-heading>p{margin-top:5px;font-size:12px}.paper{grid-template-columns:25px minmax(0,1fr);gap:9px;padding:24px 0}.paper h3{font-size:21px}.coauthors{font-size:13px}.appearances{padding-left:10px}.appearances p{font-size:12px}.course{grid-template-columns:48px minmax(0,1fr);gap:13px}.course h3{font-size:21px}.course-school{display:none}.teaching-section{padding-bottom:45px}.site-footer>div{padding:20px 22px;font-size:11px}.abbreviation{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.site-header,.site-footer,.skip-link{display:none}.page{max-width:none;padding:0}.hero{padding-top:0}.paper,.course{break-inside:avoid}a{color:inherit}.portrait img{height:230px}.hero{grid-template-columns:1fr 200px}.content-section{padding-top:24px}}

.upcoming{border-left-color:var(--accent)}.upcoming .list-label{color:var(--accent)}
