:root{--max: 760px;--ink:#1a1a1a;--muted:#666;--bg:#ffffff;--line:#e6e6e6;--link:#8b1a1a}*{box-sizing:border-box}html{font-size:17px;-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.65}.container{max-width:var(--max);margin:0 auto;padding:0 20px}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}.site-header{border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(6px)}.nav-inner{display:flex;align-items:center;justify-content:space-between;min-height:60px;gap:16px;flex-wrap:wrap}.brand{font-weight:700;color:var(--ink);font-size:1.05rem}.site-header nav{display:flex;gap:16px;flex-wrap:wrap}.site-header nav a{color:var(--muted);font-size:.95rem}.site-header nav a.active{color:var(--ink);font-weight:600}main.container{padding-top:40px;padding-bottom:60px}h1{font-size:1.9rem;margin:.2em 0;line-height:1.2}h2{font-size:1.25rem;margin-top:1.8em;border-bottom:1px solid var(--line);padding-bottom:.3em}p{margin:.7em 0}.cn{color:var(--muted);font-weight:400;font-size:1.2rem;margin-left:.35em}.hero{display:flex;gap:26px;align-items:center;margin-bottom:1.2em}.avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;border:1px solid var(--line);flex:none}.tagline{color:var(--muted);margin:.35em 0}.links a{margin-right:.35em}.muted{color:var(--muted)}.project{display:flex;gap:22px;align-items:flex-start;margin:1.6em 0;padding-bottom:1.6em;border-bottom:1px solid var(--line)}.project img{width:200px;height:130px;object-fit:cover;border-radius:8px;border:1px solid var(--line);flex:none}.project h2{margin-top:0;border:none;padding:0}.pub{margin:1.2em 0;padding-bottom:1.1em;border-bottom:1px solid var(--line)}.pub .authors{margin:.2em 0}.pub .venue{color:var(--muted);margin:.2em 0;font-style:italic}.pub{display:flex;gap:20px;align-items:flex-start}.pub img{width:200px;height:112px;object-fit:cover;border-radius:6px;border:1px solid var(--line);flex:none}.pub h3{margin:0 0 .2em;font-size:1.05rem;line-height:1.35}.pub .award{color:var(--link);font-weight:600;margin:.2em 0}.callout{border-left:3px solid var(--link);padding:.4em .9em;background:color-mix(in srgb,var(--link) 7%,transparent)}.news{list-style:none;padding:0}.news li{display:flex;gap:14px;margin:.45em 0}.news .date{color:var(--muted);flex:none;width:6.5em}figure{margin:1em 0}figure img{border-radius:6px;border:1px solid var(--line)}figcaption{color:var(--muted);font-size:.92rem;margin-top:.4em}.contact-list{list-style:none;padding:0}.contact-list li{margin:.4em 0}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:.9rem;padding:24px 0;margin-top:40px}@media(max-width:560px){.hero{flex-direction:column;text-align:center}.project{flex-direction:column}.project img{width:100%;height:auto}.pub{flex-direction:column}.pub img{width:100%;height:auto;aspect-ratio:200/112}.news li{flex-direction:column;gap:0}}@media(prefers-color-scheme:dark){:root{--ink:#e8e8e8;--muted:#9a9a9a;--bg:#141414;--line:#2a2a2a;--link:#e6949a}}.kicker{margin:0;font-size:.9rem;text-transform:uppercase;letter-spacing:.04em}.subtitle{color:var(--muted);margin:.1em 0 .6em;font-size:1.1rem}h3{font-size:1.05rem;margin-top:1.6em}.wide{width:min(1100px,calc(100vw - 32px));margin-left:50%;transform:translate(-50%)}.row2{display:grid;grid-template-columns:3fr 2fr;gap:24px;align-items:start}.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end}.row3 figure{margin:.4em 0;text-align:center}.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:1em}.grid1{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}.grid1 figure{margin:.4em 0 .8em}video{width:100%;border-radius:6px;display:block}.bib{background:color-mix(in srgb,var(--ink) 5%,transparent);padding:12px 14px;border-radius:6px;overflow-x:auto;font-size:.85rem;line-height:1.45}@media(max-width:640px){.row2,.row3,.grid1{grid-template-columns:1fr}}.site-footer .visit-line{margin-top:.2em}
