:root{--bg:#f8f7f3;--ink:#202c2a;--muted:#64716c;--accent:#246958;--line:#d9dfd6}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:5px}
a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ba7b39;outline-offset:5px}
.shell{max-width:1160px;margin:auto;padding-left:40px;padding-right:40px}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:110px;border-bottom:1px solid var(--line)}
.brand{font-weight:750;letter-spacing:.03em;color:var(--ink)}
.brand span{font-weight:400;font-size:14px;margin-left:12px}
nav{display:flex;gap:28px;font-size:14px}
nav a{color:var(--muted)}
nav a[aria-current]{color:var(--ink);text-decoration:underline;text-underline-offset:8px}
.hero{display:grid;grid-template-columns:1.7fr 1fr;gap:88px;padding:80px 0 72px}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--accent);margin:0 0 22px}
h1,h2,h3,p{margin-top:0}
h1{font:normal 64px/1.14 Georgia,serif;letter-spacing:-.04em;margin-bottom:22px}
.chinese{display:block;font:300 26px/1.6 system-ui;letter-spacing:.18em;margin-top:12px;color:var(--muted)}
.intro{font:32px/1.3 Georgia,serif;margin-bottom:27px}
.bio{color:#52605a;font-size:15px;max-width:630px}
.bio p{margin-bottom:16px}
.actions{display:flex;align-items:center;gap:24px;margin-top:30px;font-size:13px}
.button{background:var(--accent);color:white;padding:12px 18px;border-radius:3px}
.button span{margin-left:22px}
.research-panel{border-left:1px solid var(--line);padding-left:38px}
.lattice{height:220px;display:grid;place-items:center;background-image:radial-gradient(circle,#719186 2px,transparent 2.5px),linear-gradient(30deg,transparent 49.6%,#d8dfd6 50%,transparent 50.4%);background-size:27px 27px,54px 54px;margin-bottom:38px;mask-image:radial-gradient(ellipse,black 35%,transparent 74%)}
.lattice span{font:italic 92px Georgia;color:var(--accent);background:var(--bg);border:1px solid var(--line);border-radius:50%;width:125px;height:125px;text-align:center;line-height:110px}
.research-panel ul{list-style:none;padding:0;margin:0 0 27px;font-size:14px}
.research-panel li{padding:8px 0;border-bottom:1px solid var(--line)}
.affiliation{font-size:12px;color:var(--muted)}
.recent{border-top:1px solid var(--line);padding-top:38px}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}
.section-heading .eyebrow{margin-bottom:8px}
h2{font:34px Georgia}
.section-heading>a{font-size:13px}
.papers{padding:0;list-style:none}
.paper{display:grid;grid-template-columns:38px 1fr 45px;gap:18px;padding:27px 0;border-bottom:1px solid var(--line)}
.paper-number{font:14px/1.8 ui-monospace,monospace;color:#87948b}
.paper h3{font:normal 21px/1.4 Georgia,serif;margin-bottom:9px}
.authors{font-size:13px;line-height:1.7;color:var(--muted);margin-bottom:11px}
.authors strong{color:var(--ink);font-weight:600}
.paper-links{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12px}
.paper-year{font-size:12px;color:var(--muted);padding-top:5px}
.footer{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);padding-top:38px;padding-bottom:32px;margin-top:50px}
.publication-page{padding-top:65px}
.title-count{font:18px system-ui;vertical-align:top;letter-spacing:0;margin-left:16px;color:var(--accent)}
.page-intro{color:var(--muted)}
.filters{display:flex;gap:18px;padding:25px 0;margin-top:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.filters label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:8px}
.search-label{flex:1}
input,select{font:14px system-ui;padding:12px;border:1px solid #cbd4cb;border-radius:3px;background:transparent;color:var(--ink);min-width:0}
select{max-width:100%}
.list-meta{display:flex;justify-content:space-between;margin-top:25px;font-size:12px;color:var(--muted)}
.list-meta p{margin:0}
.notation{font-size:12px;color:var(--muted);margin-top:25px}
.prose{padding-top:70px;min-height:65vh}
.skip{position:absolute;left:20px;top:-80px;background:white;padding:10px;z-index:3}
.skip:focus{top:10px}
[hidden]{display:none!important}
@media(max-width:800px){.shell{padding-left:24px;padding-right:24px}
.site-header{flex-wrap:wrap;padding-top:22px;padding-bottom:22px;gap:16px}
nav{gap:18px;flex-wrap:wrap;font-size:12px}
.hero{gap:30px;padding-top:45px;grid-template-columns:1fr}
.research-panel{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}
.lattice{display:none}
.research-panel ul{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
h1{font-size:48px}
.intro{font-size:28px}
.filters{flex-wrap:wrap}
.search-label{flex-basis:100%}
.paper{grid-template-columns:26px 1fr;gap:10px}
.paper-year{grid-column:2;grid-row:2}
.paper h3{font-size:19px}
.section-heading{align-items:start}
.section-heading>a{max-width:110px;text-align:right}
.footer{flex-wrap:wrap}
.actions{flex-wrap:wrap}
.publication-page{padding-top:40px}
}
@media(prefers-reduced-motion:no-preference){a{transition:color .15s,background .15s}
}

.profile-links{display:flex;flex-wrap:wrap;gap:22px;font-size:13px;margin-top:20px}
.document-page{padding-top:64px}
.cv-page{max-width:960px}
.cv-contact{color:var(--muted);font-size:14px;line-height:1.8}
.cv-contact p{margin-bottom:8px}
.cv-section{margin-top:42px}
.cv-section h2{font:normal 28px/1.35 Georgia,serif;margin-bottom:20px}
.cv-section .career-list{margin-top:0}
.cv-section .career-list h3{margin-top:0}
.cv-related{border-top:1px solid var(--line);padding-top:24px;margin-top:32px}
.document-heading{margin-bottom:44px}
.document-heading h1{font-size:clamp(36px,5vw,56px)}
.document-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:52px}
.document-contents{align-self:start;position:sticky;top:28px;font-size:13px;line-height:1.6}
.document-contents nav{display:block;font-size:13px}
.document-contents ul{list-style:none;padding:0;margin:0}
.document-contents li{margin-bottom:14px}
.document-contents li ul{display:none}
.document-content{min-width:0;line-height:1.85;overflow-wrap:anywhere}
.document-content .article-body{margin-top:0}
.document-content h2{font:normal 28px/1.35 Georgia,serif;margin-top:48px;scroll-margin-top:28px}
.document-content h3{font-size:16px;scroll-margin-top:28px}
.reference-entry{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;margin:18px 0;font-size:14px;line-height:1.75;scroll-margin-top:28px}
.reference-number{color:var(--muted);font-variant-numeric:tabular-nums}
.reference-entry p{margin:0}
.document-content :target{background:#eaf0e8}
@media(max-width:800px){.document-page{padding-top:40px}.document-layout{grid-template-columns:1fr;gap:30px}.document-contents{position:static;border-bottom:1px solid var(--line);padding-bottom:20px}.document-content h2{font-size:25px}}
.chinese-articles{max-width:880px;line-height:1.9;overflow-wrap:anywhere}
.chinese-articles h1{font:600 clamp(28px,4vw,40px)/1.5 system-ui,sans-serif;letter-spacing:0;margin-top:24px}
.chinese-articles h2{font:600 24px/1.5 system-ui,sans-serif}
.article-list{list-style:none;padding:0;margin-top:32px}
.article-list li{display:flex;align-items:center;gap:24px;padding:24px 0;border-top:1px solid var(--line)}
.article-summary{flex:1;min-width:0}
.article-thumbnail{display:block;flex:0 0 200px}
.article-thumbnail img{display:block;width:100%;height:auto;border-radius:6px}
.article-cover{display:block;width:100%;height:auto;margin:28px 0;border-radius:8px}
@media(max-width:600px){.article-list li{gap:16px}.article-thumbnail{flex-basis:112px}.article-list h2{font-size:17px}.article-list time{font-size:12px}}
.article-list h2{margin:8px 0}
.article-list p,.article-meta,.article-list time{color:var(--muted);font-size:14px}
.article-toc{margin:28px 0;padding:16px 20px;border:1px solid var(--line)}
.article-toc summary{cursor:pointer}
.article-toc nav{display:block;font-size:14px}
.article-sidebar{display:none}
@media(min-width:1100px){
  .article-with-sidebar{max-width:1200px;display:grid;grid-template-columns:210px minmax(0,1fr);gap:48px}
  .article-with-sidebar>article{min-width:0}
  .article-with-sidebar .article-toc{display:none}
  .article-sidebar{display:block;align-self:start;position:sticky;top:28px;max-height:calc(100vh - 56px);overflow-y:auto;padding-right:12px;font-size:13px;line-height:1.7}
  .article-sidebar nav{display:block;font-size:13px}
  .article-sidebar ul{list-style:none;padding:0;margin:0}
  .article-sidebar li{margin-bottom:12px}
  .article-sidebar ul ul{padding-left:14px;margin-top:10px}
}
.article-body{margin-top:32px;overflow-x:clip}
.article-body h2,.article-body h3{margin-top:2em;scroll-margin-top:24px}
.article-body img{max-width:100%;height:auto}
.article-body pre{overflow-x:auto;padding:18px;background:#edf0e9}
.article-body blockquote{border-left:3px solid var(--accent);margin-left:0;padding-left:20px;color:var(--muted)}
.article-body math[display="block"]{display:block;overflow-x:auto;padding:16px 0;margin:20px 0}
.article-body mjx-container.math-overflow{display:block;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:8px 0}
.article-body table{display:block;overflow-x:auto;border-collapse:collapse}
.article-body td,.article-body th{padding:8px 14px;border:1px solid var(--line)}
.article-pagination{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}
.article-pagination a{display:block;min-width:0;color:var(--accent);padding:12px 0}
.article-pagination span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}
.article-pagination strong{font-size:16px;font-weight:600;line-height:1.7}
.article-next{grid-column:2;text-align:right}
@media(max-width:600px){.article-pagination{grid-template-columns:1fr;gap:12px}.article-next{grid-column:1}.article-pagination strong{font-size:15px}}
.paper-kind{font-size:11px;color:var(--accent);margin-bottom:9px}
.career{border-top:1px solid var(--line);margin-top:52px;padding-top:38px}
.career .eyebrow{margin-bottom:10px}
.career-list{list-style:none;padding:0;margin:28px 0 0}
.career-list li{display:grid;grid-template-columns:150px 1fr;gap:25px;border-top:1px solid var(--line);padding:22px 0}
.career-period{font-size:13px;color:var(--accent);padding-top:3px}
.career-list h3{font-size:16px;font-weight:600;margin-bottom:4px}
.career-list p{font-size:14px;margin-bottom:2px}
.career-list .career-detail{font-size:12px;color:var(--muted)}
@media(max-width:600px){.career-list li{grid-template-columns:1fr;gap:8px}.research-panel ul{grid-template-columns:1fr}.intro{max-width:450px}}
