:root{--ink:#192b42;--blue:#183f72;--muted:#5c6878;--line:#dce3eb;--soft:#f3f6fb;--accent:#16766d;--paper:#fff;font-size:16px;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:1rem;line-height:1.75;-webkit-font-smoothing:antialiased}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible{outline:3px solid var(--accent);outline-offset:5px;border-radius:3px}::selection{background:#d7e7ff}h1,h2,h3,p{margin:0}strong{font-weight:600}h1,h2,h3{line-height:1.3}p+p{margin-top:.9rem}.site-shell{width:min(1200px,100%);margin:auto;padding:4.5rem 3rem 0;display:grid;grid-template-columns:260px minmax(0,1fr);gap:5rem}.profile{position:sticky;top:3rem;align-self:start;padding-right:1.5rem}.wordmark{display:inline-block;font-family:Georgia,serif;font-size:2rem;letter-spacing:-.1em;line-height:1;border-top:3px solid var(--blue);padding-top:.8rem;margin-bottom:2.1rem}.wordmark span{color:var(--accent)}.profile h1{font-size:2rem;font-weight:650;letter-spacing:-.055em}.profile h1 span{display:block;font-size:1.25rem;letter-spacing:.14em;font-weight:450;margin-top:.4rem}.identity{color:var(--blue);font-weight:600;margin-top:1.4rem;font-size:.95rem}.affiliation{font-size:.9rem;color:var(--muted);line-height:1.6;margin-top:.55rem}.current{margin:1.7rem 0 1.4rem;display:flex;gap:.6rem;font-size:.9rem;line-height:1.55}.current div>span{display:block;font-weight:650}.status-dot{height:7px;width:7px;flex-shrink:0;background:var(--accent);border-radius:50%;margin-top:.5rem}.contact{display:flex;gap:1.3rem;font-size:.9rem}.contact a span{padding-left:.25rem}.profile nav{margin-top:2.4rem;border-top:1px solid var(--line);padding-top:.7rem;display:flex;flex-direction:column}.profile nav a{display:flex;justify-content:space-between;padding:.6rem 0;color:var(--muted);font-size:.9rem}.profile nav a:hover{color:var(--blue)}.profile nav span{font-size:.8rem;color:var(--muted)}.side-note{font-size:.8rem;line-height:1.8;color:var(--muted);margin-top:2.3rem}main{min-width:0}section{margin-bottom:4.5rem}.about{padding-top:.2rem;padding-bottom:2.3rem;border-bottom:1px solid var(--line);margin-bottom:2.8rem}.eyebrow{display:flex;align-items:center;gap:.8rem;color:var(--blue);font-size:.8rem;letter-spacing:.14em;font-weight:650}.small-rule{height:1px;width:2.3rem;background:var(--blue)}.about h2{font-family:Georgia,"Times New Roman",serif;font-size:3.15rem;line-height:1.12;letter-spacing:-.045em;font-weight:400;margin:1.4rem 0 1.8rem}.about h2 em{color:var(--blue);font-weight:400}.about p:not(.eyebrow){max-width:660px}.topics{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.topics span{border:1px solid var(--line);padding:.22rem .65rem;border-radius:4px;font-size:.8rem;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.7rem}.section-heading h2{font-size:1.5rem;letter-spacing:-.035em;font-weight:600}.section-heading>span{font-size:.75rem;letter-spacing:.06em;color:var(--muted);text-align:right}.project{padding:1.8rem 0;border-bottom:1px solid var(--line)}.project.featured{background:var(--soft);padding:1.7rem;border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:5px;margin-bottom:.5rem}.project-top{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.8rem}.project-index{font-size:.75rem;letter-spacing:.07em;color:var(--muted);font-weight:550}.venue{font-size:.8rem;color:var(--blue);white-space:nowrap}.project h3{font-size:1.45rem;letter-spacing:-.03em;font-weight:650}.project h3>span{display:block;font-size:1.02rem;line-height:1.5;font-weight:500;letter-spacing:0;margin-top:.3rem}.byline{font-size:.875rem;color:var(--muted);margin:.75rem 0 1rem}.byline strong{color:var(--ink)}.project>p:not(.byline){font-size:1rem}.project .contribution{font-size:.9rem!important;color:var(--muted)}.project-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.1rem}.project-links a{border:1px solid #b9c9dc;border-radius:4px;font-size:.85rem;line-height:1.6;padding:.3rem .7rem;font-weight:550;background:#fff;transition:background .15s,border-color .15s}.project-links a:hover{background:#e9f0fa;border-color:var(--blue);text-decoration:none}.concept{display:flex;align-items:stretch;gap:.5rem;margin:1.2rem 0;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.concept div{flex:1;font-size:.82rem;font-weight:600;line-height:1.5}.concept div span{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-top:.35rem}.concept b{align-self:center;font-weight:400;color:#8996a6}.concept .masked{color:var(--accent)}.timeline-item{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1.4rem;position:relative;padding:0 0 1.9rem}.timeline-item h3,.education h3,.teaching h3{font-size:1.08rem;font-weight:600;letter-spacing:-.015em}.timeline-item p{font-size:.9rem;line-height:1.7;margin-top:.25rem}.date{font-size:.85rem!important;color:var(--muted)}.muted{color:var(--muted)}.live{display:inline-block;font-size:.75rem;font-weight:500;vertical-align:middle;background:#e7f4ef;color:#17644d;border-radius:3px;padding:.15rem .4rem;margin-left:.4rem}.education{border-left:3px solid var(--blue);padding:.2rem 0 .2rem 1.3rem}.education h3{margin-top:.4rem}.education p{font-size:.95rem;color:var(--muted);margin-top:.6rem}.teaching{margin-top:2rem}.teaching h3{margin-bottom:1rem}.teaching p{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}.teaching p span{color:var(--muted);white-space:nowrap}footer{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);padding:1.5rem 0 2.5rem;color:var(--muted);font-size:.8rem}.skip{position:absolute;left:1rem;top:-100px;padding:.5rem 1rem;background:#fff;z-index:10}.skip:focus{top:1rem}@media(min-width:1440px){.site-shell{gap:6rem;padding-top:5.5rem}}@media(max-width:1000px){.site-shell{gap:2.5rem;padding:3rem 2rem 0;grid-template-columns:225px minmax(0,1fr)}.about h2{font-size:2.7rem}.section-heading{flex-wrap:wrap;gap:.3rem}.timeline-item{grid-template-columns:125px minmax(0,1fr);gap:1rem}}@media(max-width:720px){html{scroll-padding-top:1rem}.site-shell{display:block;padding:2rem 1.3rem 0}.profile{position:static;padding:0 0 1.7rem;border-bottom:1px solid var(--line);margin-bottom:2rem}.wordmark{margin-bottom:1rem;font-size:1.5rem}.profile h1{font-size:2rem}.profile h1 span{display:inline-block;margin-left:.7rem;font-size:1.1rem;letter-spacing:.1em}.identity{margin-top:.9rem}.affiliation br{display:none}.current{margin:1rem 0}.profile nav{flex-direction:row;flex-wrap:wrap;gap:.2rem 1.2rem;margin-top:1rem;padding-top:.7rem}.profile nav span,.side-note{display:none}.profile nav a{font-size:.85rem;padding:.2rem 0}.about h2{font-size:2.8rem}.about{padding-bottom:2rem}.project.featured{padding:1.2rem}.project-top{align-items:start}.project-index{max-width:65%}.concept{gap:.5rem;flex-direction:column}.concept b{align-self:start;transform:rotate(90deg);margin-left:.4rem}.concept div span{margin-top:0}.timeline-item{display:block}.timeline-item .date{margin-bottom:.4rem}.section-heading>span{font-size:.75rem}.teaching p,footer{flex-wrap:wrap}section{margin-bottom:3.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{.site-shell{display:block;padding:0}.profile{position:static}.profile nav,.wordmark,.side-note,.skip{display:none}.project{break-inside:avoid}a{color:inherit}.about h2{font-size:2rem}}

.portrait{display:block;width:180px;max-width:100%;height:auto;object-fit:contain;border-radius:12px;margin-bottom:1.5rem;border:1px solid var(--line)}.award-list>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1.4rem;padding:1rem 0;border-bottom:1px solid var(--line)}.award-list p{font-size:1rem;line-height:1.6}.award-list p span{display:block;font-size:.875rem;color:var(--muted);margin-top:.25rem}.profile{position:static}.profile nav{margin-top:1.5rem}.side-note{margin-top:1.5rem}@media(max-width:720px){.portrait{width:140px;height:auto;margin-bottom:1.2rem}.award-list>div{grid-template-columns:1fr;gap:.3rem}}
