:root {
  color-scheme: light;
  --ink:#182e32;
  --text:#304347;
  --muted:#58686b;
  --accent:#195953;
  --rule:#d7dfdd;
  --wash:#f0f5f3;
  --serif: Georgia,"Iowan Old Style","Songti SC","STSong","Noto Serif CJK SC",serif;
  --sans: -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;
  --mono: "SFMono-Regular",Consolas,"Liberation Mono","PingFang SC",monospace;
}
* {box-sizing:border-box}
html {scroll-padding-top:20px}
body {margin:0;background:#fff;color:var(--text);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
a {color:var(--accent);text-decoration-thickness:1px;text-underline-offset:4px}
a:hover {color:#0b3836;text-decoration:underline}
a:focus-visible,summary:focus-visible,input:focus-visible {outline:2px solid var(--accent);outline-offset:4px}
p,h1,h2,h3,figure {margin:0}
h1,h2,h3 {color:var(--ink);font-family:var(--serif);font-weight:normal;text-wrap:pretty}
.wrap {width:min(1176px,calc(100% - 96px));margin-inline:auto}
.skip {position:absolute;left:16px;top:-80px;background:white;padding:10px;z-index:5}
.skip:focus {top:5px}
header {border-bottom:1px solid var(--rule)}
.header-row {min-height:82px;display:flex;align-items:center;gap:32px}
.brand {display:inline-flex;align-items:center;gap:12px;font:600 21px/1.25 var(--serif);white-space:nowrap;color:var(--ink);text-decoration:none}
.brand img {width:33px;height:33px}
.menu {display:flex;align-self:stretch;align-items:stretch;gap:24px;margin-left:auto}
.menu a {display:flex;align-items:center;position:relative;color:var(--muted);font-size:14px;font-weight:500;text-decoration:none}
.menu a[aria-current],.menu a:hover {color:var(--ink)}
.menu a[aria-current]::after {content:"";position:absolute;bottom:17px;left:0;right:0;height:2px;background:var(--accent)}
.lang {border-left:1px solid var(--rule);padding-left:23px;display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:13px;line-height:1;color:var(--muted)}
.lang a {display:inline-flex;align-items:center;min-height:36px;text-decoration:none;color:var(--muted)}
.lang a[aria-current] {color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:5px}
.layout {display:grid;grid-template-columns:minmax(190px,242px) minmax(0,1fr);column-gap:clamp(40px,5.5vw,82px);align-items:start;padding-block:52px 78px}
.profile {position:sticky;top:20px;align-self:start;padding-right:30px;border-right:1px solid var(--rule)}
.portrait {display:block;width:min(100%,185px);height:auto;aspect-ratio:5/7}
.profile-name {font:normal 32px/1.2 var(--serif);letter-spacing:-.035em;color:var(--ink);margin-top:20px}
.other-name {color:var(--muted);font-size:14px;margin-top:3px}
.profile-role {font-weight:650;color:var(--ink);line-height:1.4;margin-top:19px;font-size:14px}
.affiliation {font-size:14px;line-height:1.55;color:var(--muted);margin-top:5px;max-width:32ch}
.profile-links {display:grid;gap:9px;border-top:1px solid var(--rule);margin-top:20px;padding-top:18px}
.profile-links a {display:flex;align-items:center;gap:9px;overflow-wrap:anywhere;font-size:13px;text-decoration:none;width:fit-content}
.profile-links a:hover {text-decoration:underline}
.icon {width:16px;height:16px;flex:none;vertical-align:middle}
.eyebrow {font:650 11px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
h1 {font-size:clamp(42px,4.25vw,67px);line-height:1.06;letter-spacing:-.044em;margin:10px 0 20px;max-width:20ch}
.lead {font-size:clamp(16px,1.35vw,19px);line-height:1.67;max-width:69ch;color:#35474b}
.home-hero h1 {text-wrap:balance}
.home-hero {padding:4px 0 31px;border-bottom:1px solid var(--rule)}
.page-head {border-bottom:1px solid var(--rule);padding:0 0 28px}
.page-head h1 {margin-top:0}
h2 {font-size:clamp(26px,2.35vw,35px);line-height:1.18;letter-spacing:-.025em}
h3 {font-size:24px;line-height:1.3;letter-spacing:-.02em}
.section {margin-top:31px}
.section-head {display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.jump,.resource-links a {display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:550;text-decoration:none}
.jump:hover,.resource-links a:hover {text-decoration:underline}
.feature {border-top:1px solid var(--rule);padding-top:18px;container-type:inline-size}
.feature-copy h3 {font-size:clamp(23px,2vw,30px);line-height:1.22}
.feature-copy p {margin:9px 0 18px;line-height:1.75}
.paper-figures {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
.paper-figure {min-width:0;margin:0}
.figure-heading {display:flex;align-items:baseline;gap:8px;margin:0 0 10px}
.figure-heading span {font:600 12px/1.4 var(--sans);color:var(--accent);white-space:nowrap}
.figure-heading h4 {margin:0;color:var(--ink);font:600 15px/1.45 var(--sans)}
.figure-image {display:block;cursor:zoom-in;padding:5px;border:1px solid var(--rule);background:#fff}
.figure-image img {display:block;width:100%;height:auto}
.paper-figure figcaption {font-size:14px;line-height:1.65;color:var(--muted);margin-top:8px}
.figure-more {display:inline-block;white-space:nowrap;font-size:12px}
.figure-sources {display:flex;justify-content:space-between;align-items:baseline;gap:7px 15px;flex-wrap:wrap;border-bottom:1px solid var(--rule);padding:15px 0;font-size:12px}
.figure-sources a:first-child {color:var(--muted)}
.citation-count {font-size:12px;line-height:1.6;color:var(--muted);margin-top:7px}
.citation-count a {color:inherit}
@container (max-width:640px) {
  .paper-figures {grid-template-columns:1fr;gap:22px}
  .figure-image {max-width:480px}
}
.entry {border-top:1px solid var(--rule);padding:17px 0 19px;min-width:0}
.pub-title {font:normal 21px/1.32 var(--serif);letter-spacing:-.014em;overflow-wrap:anywhere}
.pub-title a {color:var(--ink);text-decoration:none}
.pub-title a:hover {color:var(--accent);text-decoration:underline}
.pub-meta {color:var(--muted);font-size:13px;margin-top:5px}
.pub-authors {font-size:14px;line-height:1.55;margin-top:5px;overflow-wrap:anywhere}
.pub-authors b {font-weight:650;color:var(--ink)}
.ref-links {display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;margin-top:7px;font-size:12px}
.ref-links a {font-weight:600}
.home-pub {display:grid;grid-template-columns:52px minmax(0,1fr);gap:15px}
.year,.date {font:13px/1.65 var(--mono);color:var(--accent);font-variant-numeric:tabular-nums}
.home-pub .year {padding-top:3px}
.topic,.resource,.about-section {border-bottom:1px solid var(--rule);padding:27px 0}
.topic p,.resource p,.activity p {margin-top:12px;max-width:70ch}
.topic .resource-links {margin-top:14px}
.resource-links {display:flex;gap:7px 19px;flex-wrap:wrap;align-items:baseline;margin-top:12px}
.resource-links a {font-size:13px}
.resource h2 {font-size:27px;margin-top:5px}
.credit {font:12px/1.4 var(--mono);color:var(--muted)}
.interests {padding-left:1.25em;margin:16px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:5px 26px}
.interests li::marker {color:var(--accent)}
.topic .related-heading {font:600 14px/1.6 var(--sans);margin-top:15px}
.related-papers {margin:6px 0 0;padding:0;list-style:none}
.related-papers li {padding:8px 0;font-size:15px}
.related-papers li > a {font-family:var(--serif)}
.related-papers .ref-links {margin-top:3px}
.pub-overview,.first-work {padding:24px 0;border-bottom:1px solid var(--rule)}
.pub-overview p,.first-work p {margin-top:10px;line-height:1.75}
.version-note {color:var(--muted)}
.journal-breakdown {font-size:15px}.journal-breakdown span {color:var(--muted);padding:0 5px}
.journal-breakdown a {display:inline-block;max-width:100%}
.pub-overview .scope-note {color:var(--muted);font-size:13px}
.pub-group {margin-top:34px}
.pub-group h2 {margin-bottom:14px}
.year-head {font:600 16px var(--sans);color:var(--accent);margin:22px 0 7px}
details {margin-top:7px;color:var(--muted);font-size:13px}
summary {cursor:pointer;text-decoration:underline;text-underline-offset:3px;width:fit-content}
details .pub-authors {font-size:13px;color:var(--text)}
.timeline {list-style:none;margin:14px 0 0;padding:0}
.timeline li {display:grid;grid-template-columns:158px minmax(0,1fr);gap:12px;align-items:baseline;padding:12px 0}
.timeline h3,.activity h3 {font:600 17px/1.45 var(--sans);letter-spacing:normal}
.timeline p,.activity p {font-size:15px}
.activity {padding-top:20px}
.activity p {margin-top:4px}
.quiet {color:var(--muted)}
footer {border-top:1px solid var(--rule);font-size:13px;color:var(--muted)}
.footer-row {display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:22px}
footer a {text-decoration:none}
[hidden] {display:none !important}
:lang(zh-CN) h1 {letter-spacing:.01em;line-height:1.24}
:lang(zh-CN) h2,:lang(zh-CN) h3,:lang(zh-CN) .profile-name {letter-spacing:.01em}
:lang(zh-CN) .lead,:lang(zh-CN) .topic p {line-height:1.85}
:lang(zh-CN) .eyebrow {letter-spacing:.12em}
@media(max-width:1030px) {
  .wrap {width:calc(100% - 64px)}
  .layout {grid-template-columns:200px minmax(0,1fr);gap:34px}
  .profile {padding-right:20px}
  .header-row {gap:20px}
  .menu {gap:18px}
}
@media(max-width:860px) {
  .wrap {width:calc(100% - 36px)}
  .header-row {display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding-top:13px}
  .menu {grid-row:2;grid-column:1/-1;display:flex;margin:0;flex-wrap:wrap;gap:0 20px}
  .menu a {min-height:42px;font-size:13px}
  .menu a[aria-current]::after {bottom:1px}
  .lang {grid-column:2;grid-row:1;border:0;padding-left:0}
  .brand {font-size:19px}.brand img {width:27px;height:27px}
  .layout {display:block;padding:24px 0 45px}
  .profile {position:static;display:grid;grid-template-columns:85px 1fr;column-gap:16px;align-items:center;border-right:0;border-bottom:1px solid var(--rule);padding:0 0 18px;margin-bottom:25px}
  .portrait {width:85px;grid-column:1;grid-row:1}
  .profile-name {margin:0;font-size:26px}.other-name {font-size:12px;margin-top:1px}
  .profile-role {margin-top:6px;font-size:13px}.affiliation {font-size:12px;margin-top:3px;max-width:44ch}
  .profile-links {grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 16px;border:0;padding:0;margin-top:13px}
  .profile-links a {font-size:12px}
  h1 {font-size:clamp(38px,7vw,50px);margin:8px 0 14px}
  .home-hero {padding:0 0 22px}
  .section {margin-top:23px}
  .timeline li {grid-template-columns:135px minmax(0,1fr)}
}
@media(max-width:530px) {
  .interests {grid-template-columns:1fr}
  .figure-sources {display:grid}
  .home-pub {grid-template-columns:40px minmax(0,1fr);gap:9px}
  .pub-title {font-size:19px}
  .timeline li {grid-template-columns:1fr;gap:3px}
  .footer-row {align-items:baseline;font-size:12px}
}
@media(max-width:360px) {
  .menu {gap:0 13px}
  .profile-links {gap:6px 12px}
}
@media(max-height:680px) and (min-width:861px) {.profile {position:static}}
@media print {
  .menu,.lang,.skip,.profile-links,.footer-row a {display:none}
  .wrap {width:100%}.header-row {min-height:40px}
  .layout {display:block;padding:12px 0}.profile {display:none}
  .entry,.feature,.resource {break-inside:avoid}.entry {padding:8px 0}
}
.language-entry {padding-block:clamp(48px,12vh,120px)}
.language-entry h1 {max-width:none}
.language-entry nav {display:flex;gap:24px}
