:root{--ink:#111827;--paper:#f5f7fa;--blue:#2563eb;--blue-dark:#1d4ed8;--orange:#f97316;--tint:#e9eff8;--line:#d1d5db;--muted:#475569}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.58 Manrope,Arial,sans-serif}.sidebar{position:fixed;inset:0 auto 0 0;width:300px;padding:38px 32px 27px;background:var(--ink);color:#f8fafc;display:flex;flex-direction:column;z-index:3}.portrait{display:block;width:118px;aspect-ratio:1;border:3px solid rgba(37,99,235,.7);border-radius:50%;overflow:hidden}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 42%}.identity h1{margin:24px 0 9px;font-size:1.75rem;line-height:.95;letter-spacing:-.07em}.identity p,.sidebar nav,.side-footer,.kicker,.label,.number,.period,.pub-year,.tags,.badge{font-family:"DM Mono",monospace;letter-spacing:.08em}.identity p{margin:0;color:#cbd5e1;font-size:.65rem;line-height:1.7}.sidebar nav{display:grid;margin-top:45px}.sidebar nav a{padding:7px 0;border-bottom:1px solid rgba(255,255,255,.09);color:#cbd5e1;font-size:.7rem;text-decoration:none;text-transform:uppercase}.sidebar nav a span{display:inline-block;width:31px;color:#94a3b8;font-size:.55rem}.sidebar nav a:hover,.sidebar nav a.active{color:#60a5fa}.side-footer{display:grid;gap:6px;margin-top:auto;padding-top:15px;border-top:1px solid rgba(255,255,255,.15);color:#a8b3c5;font-size:.59rem}.side-footer a{color:#e5e7eb;text-decoration:none}main{margin-left:300px}.section{max-width:1500px;padding:84px 8.5vw}.welcome{min-height:100vh;padding-top:10vw;position:relative;overflow:hidden}.welcome:after{content:"";position:absolute;right:-120px;top:-120px;width:355px;height:355px;border-radius:50%;background:var(--blue);z-index:-1}.kicker{margin:0 0 1.35rem;color:var(--blue);font-size:.66rem}.welcome h2{max-width:990px;margin:0;font-size:clamp(3rem,6vw,6.55rem);line-height:.94;letter-spacing:-.08em}.contact-line{display:flex;flex-wrap:wrap;gap:1.5rem;margin:3.25rem 0;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:400 .65rem "DM Mono",monospace}.contact-line a{color:var(--ink)}.intro-grid,.teaching-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:5vw;max-width:980px}.intro-grid p{margin:0;color:var(--muted);font-size:.92rem}.intro-grid .lead{color:var(--ink);font-size:1.22rem;font-weight:600;line-height:1.7}.focus{display:flex;gap:2rem;margin-top:4.5rem}.focus .label,.teaching-grid .label,.awards .label,.grants .label{margin:3px 0;color:var(--orange);font-size:.66rem}.focus ul{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:7px 30px;margin:0;padding:0;list-style:none;font-size:.83rem}.focus li:before{content:"✦";margin-right:8px;color:var(--orange)}.section-title{display:grid;grid-template-columns:70px 1fr;gap:18px;margin-bottom:3.8rem}.section-title .number{margin:3px 0;color:var(--orange);font-size:.66rem}.section-title .kicker{margin:0 0 .6rem}.section-title h2{margin:0;font-size:clamp(2.5rem,4.4vw,5.2rem);line-height:.9;letter-spacing:-.075em}.timeline{border-top:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:150px 1fr;gap:28px;padding:28px 0;border-bottom:1px solid var(--line)}.period{margin:5px 0;color:#64748b;font-size:.66rem}.institution-head{display:flex;align-items:flex-start;gap:15px}.institution-mark,.institution-logo{display:flex;flex:none;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid #d1d5db;border-radius:50%;object-fit:contain}.institution-logo{background:#fff;padding:3px}.ud-logo{background:#00539f;padding:4px}.ucb-logo{padding:2px}.institution-mark{font:700 .7rem/1 "DM Mono",monospace}.institution-mark.pfm{color:var(--blue);background:#fff}.timeline h3{margin:0;font-size:1.2rem;line-height:1.25;letter-spacing:-.035em}.institution{margin:.42rem 0 .85rem;color:var(--blue-dark);font-size:.79rem;font-weight:700}.entry>p{max-width:700px;margin:0;color:var(--muted);font-size:.86rem}.tint{max-width:none;background:var(--tint)}.tint>*{max-width:1500px;margin-left:auto;margin-right:auto}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:1rem}.tags span{padding:3px 6px;border:1px solid #b8c5d6;color:var(--muted);font-size:.57rem}.research{max-width:none;background:var(--ink);color:#f8fafc}.research>*{max-width:1300px;margin-left:auto;margin-right:auto}.research .kicker,.research .section-title .number{color:#60a5fa}.research .section-intro{max-width:720px;margin:0 0 2.6rem;color:#cbd5e1;font-size:1.05rem}.publication-list{border-top:1px solid rgba(255,255,255,.25)}.publication-list article{display:grid;grid-template-columns:75px 1fr auto;gap:1.3rem;padding:1.25rem 0;border-bottom:1px solid rgba(255,255,255,.25)}.pub-year{margin:4px 0;color:#60a5fa;font-size:.66rem}.publication-list h3{margin:0;font-size:1.05rem;line-height:1.35}.publication-list div p{margin:.35rem 0 0;color:#cbd5e1;font-size:.77rem}.badge{height:min-content;padding:4px 6px;border:1px solid #94a3b8;color:#cbd5e1;font-size:.55rem}.more-publications{margin-top:1.5rem}.more-publications summary{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;font:600 .76rem "DM Mono",monospace}.compact article{grid-template-columns:75px 1fr}.teaching-grid{padding-top:2.4rem;border-top:1px solid var(--line)}.teaching-grid h3{margin:.8rem 0;font-size:1.45rem;line-height:1.25;letter-spacing:-.04em}.teaching-grid p:not(.label){color:var(--muted);font-size:.84rem}.detail-list{margin:1rem 0;padding-left:1.15rem;color:var(--muted);font-size:.82rem}.detail-list li{margin:.55rem 0;padding-left:.18rem}.detail-list strong{color:var(--ink)}.sublabel{margin-top:1.65rem!important}.award-columns{display:grid;grid-template-columns:1fr 1fr;gap:5vw;margin-top:4.5rem}.awards{display:grid;grid-template-columns:1fr 2fr;gap:2rem}.award-columns .awards{display:block;margin:0}.awards ul{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.award-columns .awards ul{margin-top:1rem}.awards li{display:flex;justify-content:space-between;gap:1.5rem;padding:10px 0;border-bottom:1px solid var(--line);font-size:.8rem}.awards li span{color:#64748b;font:400 .62rem "DM Mono",monospace;white-space:nowrap}.grants{margin-top:4.5rem;padding-top:2rem;border-top:1px solid var(--line)}.grant-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:1.25rem;background:var(--line)}.grant-grid article{padding:1.35rem;background:var(--tint)}.grant-year{margin:0;color:var(--blue);font:400 .66rem "DM Mono",monospace}.grant-grid h3{margin:.5rem 0;font-size:1rem;line-height:1.25}.grant-grid article>p:last-child{margin:0;color:var(--muted);font-size:.78rem}.contact{display:flex;flex-direction:column;min-height:540px;max-width:none;background:var(--blue);color:white}.contact>*{width:100%;max-width:1300px;margin-left:auto;margin-right:auto}.contact .kicker{color:#dbeafe}.contact h2{margin:0;font-size:clamp(3.4rem,6.7vw,7rem);line-height:.92;letter-spacing:-.085em}.contact>p:not(.kicker){max-width:520px;margin-top:2rem;font-size:.95rem}.contact-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}.email,.linkedin{padding-bottom:3px;border-bottom:2px solid white;color:white;font-size:1rem;font-weight:800;text-decoration:none}.linkedin{padding:8px 12px;border:1px solid rgba(255,255,255,.7)}.contact-links{display:flex;flex-wrap:wrap;gap:2rem;margin-top:auto;padding-top:4rem;font:400 .65rem "DM Mono",monospace}footer{padding:16px 8.5vw;background:var(--ink);color:#cbd5e1;font:400 .61rem "DM Mono",monospace}@media(max-width:880px){.sidebar{display:none}main{margin-left:0}.mobile-header{display:flex;position:relative;align-items:center;justify-content:space-between;height:70px;padding:0 6vw;border-bottom:1px solid var(--line)}.mobile-header>a{color:var(--ink);font-size:1.4rem;font-weight:800;text-decoration:none}.mobile-header button{border:0;background:none;color:var(--ink);font:400 .68rem "DM Mono",monospace}.mobile-header nav{display:none;position:absolute;z-index:5;top:69px;left:0;right:0;padding:1.2rem 6vw;background:var(--ink)}.mobile-header nav.open{display:grid}.mobile-header nav a{padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.15);color:#fff;font:400 .73rem "DM Mono",monospace;text-decoration:none}.section{padding:17vw 6vw}.welcome{min-height:auto;padding-top:18vw}.welcome h2{font-size:clamp(3rem,13vw,5.5rem)}.intro-grid,.teaching-grid,.award-columns,.grant-grid{grid-template-columns:1fr;gap:1.4rem}.focus{display:block;margin-top:3rem}.focus ul{grid-template-columns:1fr;margin-top:1rem}.section-title{grid-template-columns:38px 1fr;gap:10px;margin-bottom:2.8rem}.timeline article{grid-template-columns:1fr;gap:5px;padding:23px 0}.period{margin:0}.publication-list article,.compact article{grid-template-columns:55px 1fr}.badge{display:none}.award-columns{margin-top:3rem}.grants{margin-top:3rem}.contact{min-height:500px}footer{padding:16px 6vw}}@media(min-width:881px){.mobile-header{display:none}}
