:root { --bg:#fff; --text:#222; --muted:#666; --faint:#8a8a8a; --rule:#e7e7e7; --link:#336699; --max-width:940px; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size:16px; line-height:1.58; -webkit-font-smoothing:antialiased; }
a { color:var(--link); text-decoration:none; }
a:hover { text-decoration:underline; text-underline-offset:3px; }
.page { width:min(calc(100% - 44px), var(--max-width)); margin:0 auto; padding:30px 0 36px; }
.site-header { display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:34px; }
.site-name { color:var(--text); font-size:1.18rem; font-weight:500; }
.site-name:hover { text-decoration:none; color:var(--link); }
.links { display:flex; flex-wrap:wrap; gap:7px; font-size:.93rem; }
.links span,.paper-links span { color:var(--faint); }
.hero { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:48px; align-items:start; }
.bio p { margin:0 0 17px; }
.portrait-wrap { width:270px; }
.portrait { display:block; width:270px; height:350px; object-fit:cover; object-position:center; border-radius:3px; }
.section { margin-top:55px; }
h2 { margin:0 0 22px; font-size:1.17rem; font-weight:600; }
.paper { padding:0 0 27px; }
.paper h3 { margin:0 0 4px; font-size:1rem; font-weight:400; line-height:1.45; }
.paper h3 em { font-style:italic; }
.paper h3 strong { font-weight:700; }
.paper .authors,.paper .venue,.paper .paper-links { margin:0 0 2px; font-size:.94rem; }
.paper .venue { color:var(--muted); }
.paper .paper-links { margin-top:3px; }
.news-section { padding-top:30px; border-top:1px solid var(--rule); }
.news { margin:0; padding-left:20px; font-size:.95rem; }
.news li { margin-bottom:9px; padding-left:3px; }
.date { display:inline-block; min-width:76px; color:var(--muted); font-variant-numeric:tabular-nums; }
footer { margin-top:55px; padding-top:16px; border-top:1px solid var(--rule); color:var(--faint); font-size:.8rem; }
@media (max-width:720px) { .page { width:min(calc(100% - 30px),var(--max-width)); padding-top:24px; } .site-header { align-items:flex-start; flex-direction:column; gap:7px; margin-bottom:28px; } .hero { grid-template-columns:1fr; gap:24px; } .portrait-wrap { grid-row:1; width:190px; } .portrait { width:190px; height:245px; } .section { margin-top:44px; } .date { min-width:72px; } }
