:root{--bg:#fff;--surface:#f4f7f9;--text:#171d23;--muted:#5c6b77;--border:#e0e7ec;--accent:#1f6383;--accent-soft:#e8f1f6;--measure:56ch;--gap:1.5rem;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#11171c;--surface:#192127;--text:#e6ecf1;--muted:#9aa9b5;--border:#2a343c;--accent:#7cbcd9;--accent-soft:#1b2932;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-synthesis-weight:none;text-rendering:optimizelegibility;margin:0;font:400 17px/1.65 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--accent);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}img{max-width:100%;height:auto}h1,h2,h3{letter-spacing:-.015em;text-wrap:balance;margin:2.2rem 0 .6rem;line-height:1.2}h1{margin-top:0;font-size:clamp(1.7rem,1.3rem + 1.6vw,2.3rem)}h2{border-bottom:1px solid var(--border);padding-bottom:.35rem;font-size:1.3rem}h3{font-size:1.05rem}p,ul,ol{margin:0 0 1rem}li{margin-bottom:.3rem}li>ul{margin:.3rem 0 .5rem}.wrap{max-width:62rem;margin:0 auto;padding:0 1.25rem}.site-header{border-bottom:1px solid var(--border);background:var(--bg)}.site-header .wrap{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;padding-top:1.1rem;padding-bottom:1.1rem;display:flex}.brand{letter-spacing:-.02em;color:var(--text);font-size:1.15rem;font-weight:600;text-decoration:none}nav ul{flex-wrap:wrap;gap:.35rem 1.15rem;margin:0;padding:0;font-size:.94rem;list-style:none;display:flex}nav a{color:var(--muted);text-decoration:none}nav a:hover,nav a[aria-current=page]{color:var(--accent)}nav a[aria-current=page]{font-weight:600}main{padding:2.75rem 0 1rem}:is(article,.cv) :is(p,ul,ol),main>.wrap>p{max-width:var(--measure)}.site-footer{border-top:1px solid var(--border);color:var(--muted);margin-top:4rem;font-size:.88rem}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding-top:1.4rem;padding-bottom:2.5rem;display:flex}.hero{grid-template-columns:minmax(0,15rem) minmax(0,1fr);align-items:start;gap:2.5rem;display:grid}.hero img{border-radius:10px;width:100%;display:block}.hero .bio>:last-child{margin-bottom:0}.hero h1{margin-bottom:.9rem}.hero .role{color:var(--muted);margin-top:-.55rem;margin-bottom:1.1rem;font-size:1.02rem}.pubs{margin:0;padding:0;list-style:none}.pub{border-top:1px solid var(--border);grid-template-columns:minmax(0,20rem) minmax(0,1fr);gap:1.75rem;padding:1.75rem 0;display:grid}.pub.no-figure{grid-template-columns:minmax(0,1fr)}.pub-figure{background:var(--surface);border:1px solid var(--border);border-radius:8px;justify-content:center;align-items:center;padding:.6rem;display:flex;overflow:hidden}.pub-figure img{object-fit:contain;width:auto;max-height:11rem;display:block}.pub h3{margin:0 0 .35rem;font-size:1.08rem}.pub h3 a{color:var(--text);text-decoration:none}.pub h3 a:hover{color:var(--accent);text-decoration:underline}.authors{color:var(--muted);margin:0 0 .4rem;font-size:.93rem}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem .7rem;margin:0;font-size:.86rem;display:flex}.venue{color:var(--text);font-weight:600}.tag{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.05rem .6rem;font-size:.79rem}.award{background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:.12rem .55rem;font-size:.83rem;font-weight:600;display:inline-block}.post-header{border-bottom:1px solid var(--border);margin-bottom:1.75rem;padding-bottom:1.25rem}.post-header h1{margin-bottom:.5rem}.post-header .authors{font-size:1rem}.links{flex-wrap:wrap;gap:.6rem;margin:1.5rem 0;padding:0;list-style:none;display:flex}.links a{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:.3rem .85rem;font-size:.93rem;text-decoration:none;display:inline-block}.links a:hover{border-color:var(--accent);color:var(--accent)}figure{margin:2rem 0}figure img{border:1px solid var(--border);background:var(--bg);border-radius:8px;width:100%;display:block}.video{aspect-ratio:16/9;max-width:44rem;margin:2rem auto 0;position:relative}.video iframe{border:0;border-radius:8px;width:100%;height:100%;position:absolute;inset:0}.back{margin-top:2.5rem;font-size:.93rem;display:inline-block}.cv h2{margin-top:2.6rem}.cv ul{max-width:46rem;padding-left:1.2rem}.cv strong{font-variant-numeric:tabular-nums}@media (width<=46rem){body{font-size:16px}.hero,.pub{grid-template-columns:minmax(0,1fr);gap:1.25rem}.hero img{max-width:13rem}main{padding-top:2rem}}
