p,h1,h2,h3,h4,h5,h6,ol{margin:0}
h1,h2,h3{color:var(--text-bright);font-weight:400}
main{display:block}
section{width:min(calc(100% - 64px),var(--max-w));margin:auto;padding:80px 0;border-top:1px solid var(--border);scroll-margin-top:20px}
.section-label{font:600 12px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--accent);margin-bottom:12px}
.section-title{font:400 clamp(32px,4vw,43px)/1.15 var(--serif);letter-spacing:-1.3px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px 32px;flex-wrap:wrap;margin-bottom:32px}
.section-heading>div{flex:1 1 280px;min-width:0}
.section-heading>p{max-width:400px;color:var(--text-dim);font-size:16px}
.text-link{font-weight:600;text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:3px;white-space:normal;overflow-wrap:anywhere}
.button-link{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:46px;padding:10px 22px;border:1px solid var(--text-bright);border-radius:3px;color:var(--text-bright);text-decoration:none;font-size:16px;font-weight:600;background:transparent}
.button-link.primary{background:var(--text-bright);color:var(--bg)}
.button-link:hover{background:var(--bg-elevated);color:var(--text-bright)}
.button-link.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}
#hero{border-top:0;padding:72px 0 68px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,310px);gap:clamp(32px,5vw,72px);align-items:center}
.hero-text,.hero-portrait,.news-intro,.news-list,.about-content>*,.research-card,.teaching-item,.contact-grid>*{min-width:0}
.hero-text h1{font:400 clamp(52px,6.5vw,80px)/1.08 var(--serif);letter-spacing:-3px;margin:16px 0 20px}
.hero-text .role{font-size:20px;line-height:1.4;color:var(--text-bright)}
.hero-text .affiliation{font-size:17px;color:var(--text-dim);margin-top:4px}
.hero-text .tagline{font-size:21px;line-height:1.5;max-width:580px;margin-top:24px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 22px}
.hero-links{display:flex;gap:22px;flex-wrap:wrap;font-size:15px}
.hero-links a{color:var(--text-dim);text-decoration:none}
.hero-links a:hover{text-decoration:underline;color:var(--accent)}
.hero-portrait{margin:0;padding:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;align-self:center}
.hero-portrait img{width:100%;height:auto;aspect-ratio:1;display:block;object-fit:cover;object-position:center;border-radius:4px}
.portrait-caption{padding:16px 6px 8px;color:var(--text-dim)}
.portrait-caption strong{display:block;font-size:15px;line-height:1.4;letter-spacing:.1em;color:var(--accent)}
.portrait-caption span{display:block;font-size:14px;line-height:1.5;margin-top:5px;max-width:240px}
#news{display:grid;grid-template-columns:260px minmax(0,1fr);gap:60px;padding:48px 0 64px}
.news-intro p:last-child{font-size:16px;color:var(--text-dim);margin-top:18px;max-width:240px}
.news-list{list-style:none;padding:0}
.news-item{display:grid;grid-template-columns:95px minmax(0,1fr);gap:24px;padding:17px 0;border-bottom:1px solid var(--border)}
.news-item:first-child{padding-top:0}
.news-item:last-child{border-bottom:0;padding-bottom:0}
.news-date{font-size:13px;color:var(--text-dim);white-space:nowrap;padding-top:3px}
.news-type{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:4px}
.news-text{font-size:16px;line-height:1.5}
.news-text a{color:var(--text-bright);text-decoration-color:var(--border)}
.news-text a:hover{text-decoration-color:var(--accent);color:var(--accent)}
.about-content{display:grid;grid-template-columns:1.3fr 1fr;gap:72px}
.about-copy p+p{margin-top:18px}
.about-copy strong{font-weight:600;color:var(--text-bright)}
.about-copy .text-link{display:inline-block;margin-top:24px}
.affiliations{padding-left:28px;border-left:2px solid var(--accent)}
.affiliations h3{font:600 15px/1.4 var(--sans);margin-bottom:14px}
.affiliations p{font-size:15px;color:var(--text-dim);line-height:1.7}
.affiliations p+p{margin-top:14px}
.research-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--border)}
.research-card{padding:28px 32px 30px 0;border-bottom:1px solid var(--border);display:flex;flex-direction:column;align-items:start}
.research-card:nth-child(even){padding-left:32px;padding-right:0;border-left:1px solid var(--border)}
.research-number{font:400 12px/1 var(--mono);color:var(--accent);margin-bottom:16px}
.research-card h3{font:400 25px/1.25 var(--serif);letter-spacing:-.5px;margin-bottom:12px}
.research-card p{font-size:16px;max-width:460px;margin-bottom:20px}
.research-links{display:flex;gap:10px 20px;flex-wrap:wrap;margin-top:auto;font-size:14px}
.research-links a{text-decoration:none;border-bottom:1px solid var(--border)}
.research-links a:hover{border-color:var(--accent)}
.pub-controls{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:18px 0}
.pub-filters{display:flex;gap:6px;flex-wrap:wrap}
.pub-filter-btn{font-size:15px;background:transparent;border:1px solid transparent;color:var(--text-dim);padding:8px 14px;border-radius:3px;min-height:44px}
.pub-filter-btn:hover{border-color:var(--border);color:var(--text-bright)}
.pub-filter-btn[aria-pressed="true"]{background:var(--text-bright);color:var(--bg)}
.pub-search{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-dim)}
.pub-search input{min-width:0;width:250px;max-width:100%;border:1px solid var(--border);border-radius:3px;padding:10px 12px;background:var(--bg-card);color:var(--text-bright);font-size:16px}
.pub-search input::placeholder{color:var(--text-dim);opacity:1}
.pub-status{font-size:14px;color:var(--text-dim);margin:18px 0}
.pub-year-group{margin-top:32px;display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:24px;align-items:start}
.pub-year-label{font:400 22px/1.3 var(--serif);color:var(--accent);padding-top:20px}
.pub-year-papers{min-width:0}
.pub-item{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:20px 0;border-bottom:1px solid var(--border);scroll-margin-top:100px}
.pub-item:first-of-type{padding-top:20px}
.pub-item:target{background:var(--accent-glow);box-shadow:0 0 0 12px var(--accent-glow)}
.pub-venue-badge{font-size:12px;font-weight:600;color:var(--accent);line-height:1.4;letter-spacing:.025em}
.pub-content{min-width:0;width:100%}
.pub-title{font:600 18px/1.4 var(--sans);color:var(--text-bright);margin:0 0 6px;overflow-wrap:anywhere}
.pub-title a{color:inherit;text-decoration:none}
.pub-title a:hover{color:var(--accent);text-decoration:underline}
.pub-authors{font-size:15px;color:var(--text-dim);line-height:1.5}
.pub-authors strong{font-weight:600;color:var(--text)}
.pub-more{display:flex;align-items:center;gap:24px;margin:30px 0 0 144px;flex-wrap:wrap}
.pub-empty{padding:32px 0;font-size:17px}
.people-subtitle{color:var(--text-dim);font-size:16px;max-width:430px}
.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
.person-card{display:flex;align-items:center;gap:16px;padding:20px 0;border-top:1px solid var(--border);min-width:0}
.person-avatar{width:56px;height:56px;flex:0 0 56px;position:relative;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--avatar-bg)}
.person-avatar img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:1}
.person-avatar .initials{font:400 20px/1 var(--serif);color:var(--accent)}
.person-name{min-width:0;font-size:16px;line-height:1.35;color:var(--text-bright);overflow-wrap:anywhere}
.person-name a{color:inherit;text-decoration:none}
.person-name a:hover{color:var(--accent);text-decoration:underline}
.teaching-list{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.teaching-item{padding:26px;border:1px solid var(--border);background:var(--bg-card)}
.teaching-sem{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:14px}
.teaching-info h3{font:400 25px/1.25 var(--serif);margin-bottom:12px}
.teaching-info p{font-size:16px}
.teaching-info a{display:inline-block;margin-top:16px;font-weight:600}
#contact{padding-bottom:80px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px}
.contact-email{font:400 clamp(23px,3vw,34px)/1.3 var(--serif);overflow-wrap:anywhere}
.contact-address{font-size:16px;color:var(--text-dim);margin-top:18px;font-style:normal}
.contact-note h3{font:600 17px/1.4 var(--sans);margin-bottom:12px}
.contact-note p{font-size:16px}
.contact-note p+p{margin-top:16px}
@media(min-width:1200px){.hero-text .tagline{max-width:555px}}
@media(max-width:1000px){.hero-grid{gap:32px;grid-template-columns:minmax(0,1fr) 240px}.about-content,.contact-grid{gap:40px}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
 #news{grid-template-columns:1fr;gap:28px}.news-intro p:last-child{max-width:none;margin-top:12px}
 .section-heading{align-items:start}.section-heading>p{flex:1 1 300px;max-width:none}
 .about-content,.contact-grid{grid-template-columns:1fr;gap:28px}
}
@media(max-width:760px){
 .hero-grid{grid-template-columns:1fr;gap:32px}
 .hero-portrait{display:flex;align-items:center;gap:18px;width:100%;max-width:380px}
 .hero-portrait img{width:120px;flex:0 0 120px;height:auto}
 .portrait-caption{padding:4px 6px 4px 0;min-width:0}
 .hero-text h1{font-size:clamp(44px,8vw,60px);letter-spacing:-2px}
 .research-grid,.teaching-list{grid-template-columns:1fr}
 .research-card,.research-card:nth-child(even){padding:26px 0;border-left:0}
}
@media(max-width:700px){
 section{width:calc(100% - 40px);padding:52px 0}
 #hero{padding:40px 0 48px}.hero-grid{grid-template-columns:1fr;gap:32px}
 .hero-text .tagline{font-size:19px}
 .hero-portrait img{width:100px;flex-basis:100px}
 #news{display:block;padding:40px 0 48px}.news-intro{margin-bottom:26px}.news-intro p:last-child{max-width:none;margin-top:12px}
 .news-item{grid-template-columns:85px minmax(0,1fr);gap:18px}.news-date{font-size:12px}
 .section-heading{display:block;margin-bottom:26px}.section-heading>p,.section-heading>.text-link{margin-top:16px;display:inline-block}.section-title{font-size:34px}
 .about-content,.research-grid,.contact-grid,.teaching-list{grid-template-columns:1fr;gap:28px}
 .research-grid{gap:0}.research-card,.research-card:nth-child(even){padding:26px 0;border-left:0}
 .affiliations{padding-left:20px}.pub-controls{gap:16px}.pub-filter-btn{padding:8px 10px}
 .pub-search{width:100%}.pub-search input{flex:1;width:auto}.pub-year-group{display:block;margin-top:24px}.pub-year-label{padding:0 0 8px;font-size:24px}.pub-item{padding:18px 0}.pub-title{font-size:17px}.pub-more{margin-left:0;gap:18px}
 .people-grid{gap:0 20px}.person-card{gap:12px}.person-avatar{width:44px;height:44px;flex-basis:44px}.person-name{font-size:15px}
 .contact-grid{gap:32px}.hero-links{gap:20px}
}
@media(max-width:400px){.people-grid{grid-template-columns:1fr}.news-item{grid-template-columns:1fr;gap:6px}.hero-actions .button-link{padding:10px 16px}.pub-filters{gap:0}}
@media print{section{width:100%;padding:24px 0;break-inside:auto}.hero-grid{grid-template-columns:1fr 180px;gap:30px}.hero-portrait img{height:auto}#hero{padding-top:0}.pub-controls,.pub-status,.pub-more{display:none}.pub-item[hidden]{display:flex!important}.pub-year-group,.pub-year-group[hidden]{display:block!important}.pub-item,.news-item,.person-card{break-inside:avoid}.section-title{font-size:26px}}
