/* Tongzhao Gong — questions, methods and evidence. */
:root{--bg:#f5f7fb;--surface:#fff;--ink:#24374d;--ink-soft:#4c6078;--muted:#61738b;--line:#355b8a21;--line-strong:#355b8a3b;--accent:#3e6f9e;--accent-deep:#2c567e;--accent-soft:#497eb212;--copper:#82693f;--text-caption:.8125rem;--text-small:.875rem;--text-body:1rem;--nav-h:4.75rem;--max:78rem;--sans:"Segoe UI Variable Display","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--mono:"Cascadia Code","SFMono-Regular",Consolas,monospace;--ease:cubic-bezier(.22,1,.36,1)}
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:light;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 1.5rem);scrollbar-color:#b7c7dd var(--bg)}
body{margin:0;padding-top:var(--nav-h);background:var(--bg);color:var(--ink);font:1rem/1.8 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
body.nav-open{overflow:hidden}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
img{display:block;max-width:100%}
button,input{font:inherit;color:inherit}
button,a,input{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{color:inherit;text-decoration-color:#497eb25c;text-underline-offset:.25em;transition:color .2s,border-color .2s,background .2s}
a:hover{color:var(--accent)}
::selection{background:#d6e5f7;color:#24374d}
:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap;border:0}
.skip{position:fixed;top:-5rem;left:1rem;z-index:200;padding:.6rem 1rem;background:var(--accent);color:#fff;border-radius:6px}.skip:focus{top:.8rem}
.wrap{width:min(100%,var(--max));margin-inline:auto;padding-inline:3rem}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:120;transform:scaleX(0);transform-origin:left;pointer-events:none;background:linear-gradient(90deg,#497eb2,#8fa9ce)}
/* Navigation */
.site-nav{height:var(--nav-h);position:fixed;inset:0 0 auto;z-index:100;background:#f5f7fbe8;border-bottom:1px solid var(--line);backdrop-filter:blur(24px)}
.site-nav.is-scrolled{background:#f5f7fbfa}
.nav-inner{max-width:var(--max);height:100%;padding-inline:3rem;margin:auto;display:flex;align-items:center;gap:1.2rem}
.nav-brand{text-decoration:none;font-size:1rem;font-weight:600;letter-spacing:.08em;white-space:nowrap}
.nav-brand span[lang]{margin-left:.7rem;font-size:.8125rem;font-weight:400;letter-spacing:0;color:var(--muted)}
.nav-links-wrap{position:relative;margin-left:auto}
.nav-links{display:flex;align-items:center;gap:clamp(1rem,2.7vw,2.1rem)}
.nav-links a{display:block;padding:.5rem .15rem;color:var(--muted);font-size:.9375rem;text-decoration:none;letter-spacing:.1em}
.nav-links a.active,.nav-links a:hover{color:var(--accent-deep)}
.nav-indicator{position:absolute;left:0;bottom:-.7rem;height:2px;background:var(--accent);opacity:0;transition:transform .4s var(--ease),width .4s var(--ease),opacity .2s}
.nav-tools{display:flex;align-items:center;flex:0 0 auto;gap:.6rem}
.lang-toggle,.nav-toggle{min-width:44px;min-height:40px;padding:.4rem .7rem;border:1px solid var(--line-strong);border-radius:5px;background:#ffffff88;color:var(--ink-soft);font-size:var(--text-small)}
.nav-toggle{display:none}.lang-toggle:hover,.lang-toggle[aria-pressed="true"]{color:var(--accent-deep);border-color:#497eb266;background:var(--accent-soft)}
.side-rail{position:fixed;right:.7rem;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column}
.side-rail a{position:relative;display:grid;place-items:center;width:30px;height:30px}
.side-rail a::after{content:"";width:4px;height:4px;border-radius:50%;background:#7c8da5}
.side-rail a.active::after{background:var(--accent);box-shadow:0 0 0 5px #497eb217}
.side-rail a span{position:absolute;right:2.25rem;white-space:nowrap;font-size:var(--text-caption);color:var(--accent);opacity:0;pointer-events:none}
.side-rail a:hover span,.side-rail a:focus-visible span{opacity:1}
/* Hero */
.hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 80% 45%,#dce8f8b0,transparent 48%),linear-gradient(130deg,#f5f8fc,#edf2fa 55%,#eaf1fb)}
.hero-mesh{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(#345e9209 1px,transparent 1px),linear-gradient(90deg,#345e9209 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,transparent 25%,black 70%,transparent)}
.hero-ring{position:absolute;width:550px;aspect-ratio:1;border:1px solid #497eb217;border-radius:50%;right:5%;top:50%;transform:translateY(-50%)}
.hero-ring::after{content:"";position:absolute;inset:35px;border:1px dashed #497eb214;border-radius:50%}
.hero-layout{min-height:715px;position:relative;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;padding-block:4.5rem 6rem}
.hero-copy{position:relative;z-index:2;min-width:0}
.hero-kicker{display:flex;align-items:center;gap:.75rem;color:var(--accent-deep);font:500 var(--text-caption)/1.8 var(--mono);letter-spacing:.08em;margin-bottom:1.8rem}
.hero-kicker::before{content:"";flex:0 0 24px;height:1px;background:var(--accent)}
.hero h1{font-size:clamp(3.8rem,6.3vw,5rem);line-height:1.2;letter-spacing:.09em;font-weight:650}
.en-name{font-size:clamp(1.8rem,3vw,2.5rem);font-weight:300;letter-spacing:-.05em;line-height:1.3;color:#7488a3;margin-top:.35rem}
.hero-position{font-size:1rem;font-weight:500;margin-top:1.75rem;line-height:1.7}
.role-divider{color:#98abc4;margin-inline:.45rem;font-weight:300}
.hero-division{color:var(--muted);font-size:var(--text-small);margin-top:.2rem}
.hero-statement{color:#405a79;font-size:1.125rem;line-height:1.95;max-width:29em;margin-top:1.5rem;text-wrap:pretty}
.affiliation-fields{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.1rem}
.affiliation-fields>span{color:var(--accent-deep);font-size:var(--text-small);padding:.15rem .6rem;border:1px solid #497eb229;border-radius:4px;background:#497eb206}
.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
.btn{--bx:0px;--by:0px;display:inline-flex;align-items:center;justify-content:center;gap:1rem;min-height:46px;padding:.65rem 1.25rem;border:1px solid var(--line-strong);border-radius:5px;color:var(--ink-soft);background:transparent;text-decoration:none;font-size:var(--text-small);letter-spacing:.025em;transition:color .2s,background .2s,border-color .2s,transform .3s var(--ease);transform:translate(var(--bx),var(--by))}
.btn:hover{background:var(--accent-soft);color:var(--accent-deep);border-color:#497eb266}
.btn-primary{color:#fff;background:var(--accent);border-color:var(--accent);font-weight:600}
.btn-primary::after{content:"↗";font-size:1.1rem;line-height:1}
.btn-primary:hover{color:#fff;background:var(--accent-deep);border-color:var(--accent-deep)}
.hero-visual{position:absolute;width:53%;height:610px;right:-2%;top:50%;transform:translateY(-50%);z-index:1;pointer-events:none}
.hero-visual canvas,.hero-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.hero-visual.is-ready .hero-fallback{display:none}
.hero-foot{position:absolute;bottom:1.8rem;left:3rem;display:flex;align-items:center;gap:1rem}
.hero-foot::after{content:"";height:1px;width:100px;background:linear-gradient(90deg,#8da8cc55,transparent)}
.scroll-hint{display:grid;place-items:center;width:28px;height:36px;border:1px solid var(--line-strong);border-radius:16px}
.scroll-hint span{height:7px;width:2px;background:var(--accent);animation:scroll-drop 2s infinite}
@keyframes scroll-drop{0%,100%{transform:translateY(-4px);opacity:.4}50%{transform:translateY(4px);opacity:1}}
/* Section rhythm */
.section-block{padding-block:5.5rem;position:relative}
.section-block+.section-block::before{content:"";position:absolute;top:0;left:max(3rem,calc((100% - var(--max))/2 + 3rem));right:max(3rem,calc((100% - var(--max))/2 + 3rem));height:1px;background:var(--line)}
.section-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;margin-bottom:2.75rem}
.section-kicker{display:flex;align-items:center;line-height:1;transform:translateY(2px)}
.section-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--accent-deep);background:#497eb20b;border:1px solid #497eb233;border-radius:50%}
.section-icon svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.section-title{font-size:2.125rem;font-weight:600;letter-spacing:.05em;line-height:1.35}
.section-lead{color:#7c8ea8;font-weight:300;font-size:1.85rem;letter-spacing:-.035em;line-height:1.35}
.section-intro{max-width:50em;color:var(--muted);margin-top:-1.3rem;margin-bottom:2rem;font-size:1.0625rem}
.band{background:#edf2f9}
/* Biography */
.about-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);gap:4rem;align-items:start}
.bio{display:flex;flex-direction:column;gap:1.5rem;color:var(--ink-soft);font-size:var(--text-body);line-height:1.95}
.bio-intro{display:grid;grid-template-columns:112px minmax(0,1fr);gap:1.5rem;align-items:center}
.bio-intro p{color:#324b6a}
.bio p,.research-questions dd,.work-copy>p:not(.work-category),.work-card>p:not(.work-category){text-align:justify;text-align-last:start;text-justify:inter-ideograph;text-wrap:pretty}
.bio strong{color:var(--accent-deep);font-weight:600}
.bio-portrait{width:112px;height:150px;object-fit:cover;border-radius:5px;filter:saturate(.8);border:1px solid var(--line)}
.funding{padding-top:1.5rem;border-top:1px solid var(--line)}
.funding h3{font-size:1.0625rem;font-weight:600;color:var(--ink);margin-bottom:1rem}
.funding-list{display:grid;gap:.65rem;color:var(--ink-soft);font-size:var(--text-small);line-height:1.85}
.funding-list li{position:relative;padding-left:1rem}
.funding-list li::before{content:"";position:absolute;left:0;top:.8em;width:4px;height:4px;background:var(--accent);border-radius:1px}
.about-side{min-width:0;border:1px solid var(--line);border-radius:10px;padding:1.8rem 2rem .8rem;background:linear-gradient(150deg,#fff,#fafcff);box-shadow:0 12px 35px #355b8a09}
.about-kicker{font-size:1.0625rem;font-weight:600;letter-spacing:.025em}
.about-lead{font-size:var(--text-caption);color:var(--muted);margin-top:.3rem}
.glance{margin-top:1.8rem;position:relative}
.glance::before{content:"";position:absolute;top:9px;bottom:50px;left:3px;width:1px;background:linear-gradient(#cbd8ea,#85a6cf)}
.glance li{position:relative;padding-left:1.6rem}
.glance li::before{content:"";position:absolute;width:7px;height:7px;left:0;top:7px;border:1px solid #9eb3d0;border-radius:50%;background:#fff}
.glance li:last-child::before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px #497eb214}
.glance-card{padding-bottom:1.5rem}.glance-k,.glance-t,.glance-d{display:block}
.glance-k{color:var(--muted);font:var(--text-caption)/1.7 var(--mono)}
.glance-t{color:#3d5674;font-size:.9375rem;font-weight:500;margin-top:.25rem}
.glance-d{color:var(--muted);font-size:var(--text-small);line-height:1.8;margin-top:.15rem}
.is-current .glance-k,.is-current .glance-t{color:var(--accent-deep)}
@media screen and (min-width:861px){
 .about-grid{align-items:stretch}
 .bio{justify-content:space-between}
 .about-side{display:flex;flex-direction:column}
 .glance{display:flex;flex:1;flex-direction:column;justify-content:space-between}
}
/* Three scientific questions. Text and figures occupy separate columns. */
.research-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.25rem}
.research-tab{display:flex;align-items:flex-start;gap:.85rem;min-width:0;width:100%;min-height:82px;padding:1rem 1.15rem;border:1px solid var(--line);border-radius:6px;background:#ffffff55;color:var(--ink-soft);text-align:left;transition:background .2s,border-color .2s,color .2s}
.research-tab:hover{background:#ffffffaa;color:var(--accent-deep)}
.research-tab.is-active{color:var(--accent-deep);background:#e2eaf6;border-color:#497eb244}
.tab-no{flex:0 0 auto;font:var(--text-caption)/1.9 var(--mono);color:var(--muted);margin-top:.08rem}
.tab-name{font-size:1rem;line-height:1.7;font-weight:500}
.research-stage{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:2.5rem;align-items:stretch;padding:2.5rem;border:1px solid var(--line-strong);border-radius:10px;background:linear-gradient(120deg,#f9fbff,#edf3fb)}
.topic-panel{display:none;grid-column:1;grid-row:1;min-width:0}
.topic-panel.is-active{display:block;animation:panel-in .35s var(--ease) both}
@keyframes panel-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.topic-copy h3{font-size:1.5rem;font-weight:550;line-height:1.5;letter-spacing:.015em;text-wrap:pretty}
.research-questions{display:grid;gap:1rem;margin-top:1.25rem}
.research-questions dt{color:var(--accent-deep);font-size:var(--text-caption);font-weight:600;letter-spacing:.04em;margin-bottom:.25rem}
.research-questions dd{color:var(--ink-soft);font-size:1rem;line-height:1.85}
.topic-papers{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line);font-size:var(--text-caption);color:var(--accent-deep)}
.topic-papers a{max-width:100%}
.topic-media{grid-column:2;grid-row:1;min-width:0;min-height:0;align-self:stretch;display:grid}
.topic-concept{display:grid;min-height:0}
.topic-visual{width:100%;height:auto;min-height:0;position:relative;overflow:hidden;border:1px solid var(--line);background:#e7eef9;border-radius:6px}
.topic-visual canvas{position:absolute;inset:0;width:100%;height:100%}
.research-toolkit{margin-top:2.5rem;padding-top:1.8rem;border-top:1px solid var(--line-strong)}
.toolkit-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}
.toolkit-head h3{font-size:1.25rem;font-weight:600}.toolkit-en{color:var(--muted);font-size:1rem;font-weight:350}
.toolkit-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.75fr) minmax(0,1fr);gap:2rem}
.toolkit-group{min-width:0}.toolkit-group+.toolkit-group{padding-left:2rem;border-left:1px solid var(--line-strong)}
.toolkit-label{margin:0 0 .6rem;color:var(--accent-deep);font-size:var(--text-small);font-weight:500}
.toolkit-items{display:flex;flex-wrap:wrap;gap:.2rem 1.1rem;font-size:.9375rem;line-height:1.9}
.toolkit-items li{min-width:0;max-width:100%;overflow-wrap:anywhere}.toolkit-languages{font-family:var(--mono);font-size:var(--text-small)}
/* Selected work */
.selected-works{scroll-margin-top:calc(var(--nav-h) + 1.5rem)}
.subsection-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.25rem}
.subsection-head h3,.catalog-head h3{font-size:1.375rem;font-weight:600;letter-spacing:.025em}
.eyebrow{color:var(--muted);font:var(--text-caption)/1.7 var(--mono);letter-spacing:.1em}
.work-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:2.5rem;padding:2.25rem;border:1px solid var(--line-strong);border-top:3px solid #638abb;border-radius:8px;background:#fcfdff}
.work-copy,.work-card{min-width:0}.work-category{font:var(--text-caption)/1.8 var(--mono);color:var(--accent-deep);letter-spacing:.045em}
.work-copy h4,.work-card h4{font-size:1.5rem;line-height:1.5;font-weight:550;margin-top:.8rem;text-wrap:pretty}
.work-copy>p:not(.work-category),.work-card>p:not(.work-category){color:var(--ink-soft);font-size:1rem;line-height:1.9;margin-top:.9rem}
.work-copy>.work-question,.work-card>.work-question{color:#354e6e!important}
.work-links{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.85rem;color:var(--accent-deep);font-size:var(--text-small);line-height:1.65}
.work-figure{align-self:center;min-width:0}.work-figure img{width:100%;height:auto;background:#fff;border:1px solid var(--line)}
.work-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:1.25rem}
.work-card{padding:2rem 2.25rem;border:1px solid var(--line);border-radius:8px;background:#fcfdff}.work-card h4{font-size:1.375rem}
.catalog-head{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--line-strong);display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem 1.5rem;margin-bottom:1.5rem}
/* A bounded scroll area keeps the publication archive compact. */
.pub-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem 1.5rem;margin-bottom:1.25rem}
.pub-search-row{grid-column:1/-1;display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
.search-field{position:relative;display:flex;align-items:center;flex:1 1 280px;min-width:0;max-width:490px}
.search-field::before{content:"";position:absolute;left:1rem;width:12px;height:12px;border:1.5px solid #8196b2;border-radius:50%}
.search-field::after{content:"";position:absolute;left:1.65rem;top:1.8rem;width:5px;height:1px;background:#8196b2;transform:rotate(45deg)}
.search-field input{width:100%;min-height:48px;padding:.7rem 2.8rem .7rem 2.8rem;border:1px solid var(--line-strong);border-radius:6px;background:#fff;font-size:var(--text-small);outline-offset:2px}
.search-field input::placeholder{color:var(--muted)}.search-field input:focus{border-color:#497eb288}
.search-field kbd{position:absolute;right:1rem;pointer-events:none;color:var(--muted);font:var(--text-caption) var(--mono);border:1px solid var(--line-strong);border-radius:3px;padding:.1rem .4rem}
.sort-btn{min-height:44px;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--ink-soft);padding:.5rem .65rem;font-size:var(--text-small);white-space:nowrap}
.sort-btn::after{content:" ↓";color:var(--accent)}.sort-btn[aria-pressed="true"]::after{content:" ↑"}
.pub-count{margin-left:auto;font:var(--text-small)/1.7 var(--mono);color:var(--muted);white-space:nowrap}
.year-chips,.role-chips,.theme-chips{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}
.year-chip,.role-chip,.theme-chip{min-height:38px;padding:.35rem .65rem;border:1px solid transparent;background:transparent;color:var(--muted);border-radius:5px;font-size:var(--text-caption)}
.year-chip:hover,.role-chip:hover,.theme-chip:hover{color:var(--ink);background:var(--accent-soft)}
.year-chip.is-active,.role-chip.is-active,.theme-chip.is-active{color:var(--accent-deep);background:var(--accent-soft);border-color:#497eb238}
.role-chips{padding-left:1rem;border-left:1px solid var(--line)}
.theme-chips{grid-column:1/-1;padding-top:.6rem;border-top:1px solid var(--line)}
.pub-frame{max-height:760px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#b3c6df transparent;scrollbar-gutter:stable;scroll-padding-block:1rem;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.pub-item{display:grid;grid-template-columns:52px minmax(0,1fr);gap:1.3rem;position:relative;padding:1.7rem .75rem;border-bottom:1px solid var(--line);transition:background .2s}
.pub-item:last-child{border-bottom:0}.pub-item:hover{background:#497eb206}
.pub-item.is-filtered-out{display:none}.pub-body{min-width:0}
.pub-year{color:var(--muted);font:var(--text-small)/1.8 var(--mono);margin-top:.15rem}
.pub-title{font-size:1.0625rem;font-weight:550;color:#304b6d;line-height:1.6;overflow-wrap:anywhere}
.pub-title a{text-decoration:none}.pub-title a:hover{text-decoration:underline;text-decoration-thickness:1px}
.pub-authors{color:var(--muted);font-size:var(--text-small);line-height:1.85;margin-top:.6rem}
.pub-authors strong{color:var(--ink);font-weight:600}
details.pub-authors summary{cursor:pointer;list-style:none}details.pub-authors summary::-webkit-details-marker{display:none}
.authors-more{color:var(--accent-deep);display:inline-block;padding-inline:.25rem;text-decoration:underline;text-underline-offset:.2em;font-size:var(--text-caption);white-space:nowrap}
.authors-full{margin-top:.45rem;padding-left:.8rem;border-left:2px solid #9db9dc}
.pub-roles{display:inline-flex;gap:.35rem;margin-top:.7rem;flex-wrap:wrap}
.badge{font-size:.78125rem;padding:.1rem .45rem;border:1px solid #4d6d952e;border-radius:3px;line-height:1.7;color:#5c7492;background:#7c9bbf0a}
.badge-first,.badge-cofirst{color:#32628f;background:#497eb20f;border-color:#497eb230}
.badge-corr,.badge-cocorr{color:#806139;background:#967a4e0f;border-color:#967a4e33}
.pub-meta{display:inline;font-size:var(--text-small);color:var(--muted);margin-left:.5rem}.pub-meta em{font-style:normal}
.pub-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.7rem}
.pub-doi{min-width:0;font:var(--text-caption)/1.8 var(--mono);overflow-wrap:anywhere}
.pub-doi a{color:#4b7099;text-decoration:none}.pub-doi a::after{content:" ↗"}
.text-btn{flex:0 0 auto;font-size:var(--text-caption);padding:.35rem .55rem;min-height:38px;border:1px solid var(--line);border-radius:4px;color:var(--muted);background:transparent}
.text-btn:hover{border-color:#497eb240;color:var(--accent-deep);background:var(--accent-soft)}
.pub-empty{text-align:center;color:var(--muted);padding:3rem 1rem}
/* Contact */
#contact{background:radial-gradient(ellipse at 90% 100%,#dce6f6a0,transparent 65%),#edf2f9}
.contact-purpose{color:var(--ink-soft);max-width:45em;font-size:1.0625rem;margin-bottom:2rem}
.contact-box{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:1rem 4rem;padding-top:2rem;border-top:1px solid var(--line-strong)}
.contact-name{grid-column:1;grid-row:1;align-self:first baseline;font-size:1.25rem;color:var(--muted);font-weight:300}.contact-name strong{color:var(--ink);font-weight:500}
#contact-address{grid-column:2;grid-row:1/3;align-self:first baseline;color:var(--muted);font-size:var(--text-small);line-height:2}
.contact-mail{grid-column:1;grid-row:2;font-size:var(--text-small);color:var(--muted)}
.email-address{display:block;width:fit-content;max-width:100%;font-size:clamp(1.3rem,2.5vw,2rem);font-weight:350;letter-spacing:-.035em;color:var(--accent-deep);margin-top:.3rem;overflow-wrap:anywhere;text-decoration:none}
.email-address:hover{text-decoration:underline}
.contact-actions{grid-column:1;grid-row:3;display:flex;flex-wrap:wrap;gap:.6rem}
.academic-links{grid-column:2;grid-row:3;align-self:center;font-size:var(--text-small);color:var(--accent-deep)}
.academic-links span{font-family:var(--mono);font-size:var(--text-caption);margin-left:.4rem}
.site-footer{max-width:var(--max);padding:2rem 3rem;margin:auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.7rem 2rem;color:var(--muted);font-size:var(--text-caption)}
.footer-nav{display:flex;flex-wrap:wrap;min-width:0;gap:.5rem 1.5rem}.footer-nav a{text-decoration:none}
.to-top{position:fixed;right:1.1rem;bottom:1.3rem;z-index:80;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:7px;background:#fffffff0;color:var(--accent);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s,visibility .3s,transform .3s;box-shadow:0 4px 16px #355b8a0f}
.to-top.is-on{opacity:1;visibility:visible;transform:none}
.to-top span{width:7px;height:7px;border-top:1px solid currentColor;border-left:1px solid currentColor;transform:translateY(2px) rotate(45deg)}
.toast{position:fixed;left:50%;bottom:2rem;transform:translate(-50%,10px);opacity:0;visibility:hidden;z-index:200;max-width:calc(100% - 2rem);padding:.6rem 1.4rem;background:#fff;border:1px solid #497eb240;color:#3b5d84;border-radius:7px;font-size:var(--text-small);box-shadow:0 6px 30px #354d6f1a;transition:opacity .2s,transform .2s,visibility .2s}
.toast.is-on{transform:translate(-50%,0);opacity:1;visibility:visible}
.js .will-reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .will-reveal.is-visible{opacity:1;transform:none}
/* English paragraphs are left aligned. Chinese prose uses justification. */
html[lang="en"] .hero h1{font-size:clamp(3rem,5.7vw,4.8rem);line-height:1.1;letter-spacing:-.05em;font-weight:550}
html[lang="en"] .en-name,html[lang="en"] .section-lead,html[lang="en"] .about-lead,html[lang="en"] .toolkit-en,html[lang="en"] .eyebrow{display:none}
html[lang="en"] .section-kicker{transform:none}html[lang="en"] .section-title{letter-spacing:-.025em}
html[lang="en"] .hero-statement{font-size:1.0625rem;line-height:1.85}
html[lang="en"] .bio p,html[lang="en"] .research-questions dd,html[lang="en"] .work-copy>p,html[lang="en"] .work-card>p{text-align:left;hyphens:none}
/* Responsive layouts */
@media(max-width:1100px){
 .wrap,.nav-inner{padding-inline:2.5rem}.hero-layout{min-height:690px}.hero h1{font-size:4.5rem}
 .hero-visual{width:51%;right:-3%;opacity:.85}.about-grid{gap:2.5rem;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.bio-intro{gap:1.1rem}
 .research-stage{padding:2rem;gap:2rem}.research-tab{padding:.9rem;gap:.6rem}.work-feature{gap:1.8rem;padding:1.8rem}.work-card{padding:1.8rem}
 .pub-toolbar{grid-template-columns:1fr}.role-chips{border-left:0;padding-left:0}
}
@media(max-width:860px){
 :root{--nav-h:4.25rem}.wrap,.nav-inner{padding-inline:1.75rem}.nav-brand span[lang]{display:none}
 .nav-links-wrap{display:none;position:absolute;top:calc(var(--nav-h) - 1px);left:0;right:0;padding:1.2rem 1.75rem;background:#f5f7fb;border-bottom:1px solid var(--line-strong);box-shadow:0 15px 20px #304b6d0a}
 .nav-links-wrap.open{display:block}.nav-links{flex-direction:column;align-items:stretch;gap:.5rem}.nav-links a{padding:.6rem;font-size:1rem}
 .nav-tools{margin-left:auto}.nav-toggle{display:block}.nav-indicator,.side-rail{display:none}
 .hero-layout{display:grid;grid-template-columns:minmax(0,1fr);min-height:0;padding-top:3rem;padding-bottom:1.5rem}.hero-copy{max-width:650px}
 .hero-visual{position:relative;top:auto;right:auto;width:100%;height:230px;transform:none;opacity:1;margin-top:1rem}
 .hero-ring{width:340px;top:auto;bottom:-50px;right:0;transform:none}.hero-foot{display:none}.hero h1{font-size:4.25rem}.hero-statement{max-width:35em}
 .section-block{padding-block:4rem}.section-title{font-size:1.9rem}.section-lead{font-size:1.5rem}.section-head{margin-bottom:2.25rem}
 .about-grid{grid-template-columns:minmax(0,1fr);gap:2rem}.bio-intro{grid-template-columns:112px minmax(0,1fr)}.about-side{padding:1.8rem 2rem .5rem}
 .glance{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 2rem}.glance::before{display:none}
 .research-stage{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:1.5rem;padding:1.8rem}.topic-copy h3{font-size:1.375rem}
 .research-questions dd{font-size:.9375rem}.research-tab{min-height:85px}.tab-name{font-size:.9375rem}
 .toolkit-grid{grid-template-columns:1fr;gap:0}.toolkit-group{display:grid;grid-template-columns:135px minmax(0,1fr);gap:1rem;padding-block:.9rem}
 .toolkit-group+.toolkit-group{padding-left:0;border-left:0;border-top:1px solid var(--line)}.toolkit-label{margin:0}
 .work-feature{grid-template-columns:1fr}.work-figure{max-width:620px}.work-pair{gap:1rem}.work-card{padding:1.5rem}.contact-box{gap:1rem 2rem}.site-footer{padding:1.75rem}
}
@media(max-width:640px){
 .research-nav{display:flex;overflow-x:auto;gap:.5rem;padding:.25rem .1rem .7rem;margin-bottom:.7rem}.research-tab{flex:0 0 215px;min-height:70px}
 .research-stage{display:flex;flex-direction:column-reverse;align-items:stretch;gap:1.75rem;padding:1.5rem}.topic-visual{height:220px}.topic-media{width:100%}
 .work-pair{grid-template-columns:1fr}.pub-count{flex-basis:100%;margin-left:0}
 .contact-box{grid-template-columns:minmax(0,1fr)}#contact-address{grid-column:1;grid-row:auto;margin-top:1rem}
 .contact-name,.contact-mail,.contact-actions{grid-column:1;grid-row:auto}.academic-links{grid-column:1;grid-row:auto}
 .contact-name{order:0}.contact-mail{order:1}.contact-actions{order:2}#contact-address{order:3}.academic-links{order:4}
}
@media(max-width:540px){
 .wrap,.nav-inner{padding-inline:1.4rem}.nav-inner{gap:.6rem}.nav-brand{font-size:.9375rem}html[lang="en"] .nav-brand{letter-spacing:0}
 .hero-layout{padding-top:2.4rem}.hero-kicker{font-size:.6875rem;letter-spacing:.04em;gap:.5rem;margin-bottom:1.5rem}.hero-kicker::before{flex-basis:16px}
 .hero h1{font-size:clamp(3rem,13.5vw,3.8rem)}html[lang="en"] .hero h1{font-size:clamp(2.7rem,11.5vw,3.5rem);max-width:8em}
 .en-name{font-size:1.9rem}.hero-position{margin-top:1.4rem;font-size:.9375rem}.hero-statement{font-size:1rem;line-height:1.9;margin-top:1.2rem}
 .affiliation-fields{gap:.4rem}.affiliation-fields>span{font-size:.8125rem;padding:.15rem .5rem}
 .hero-actions{margin-top:1.5rem;gap:.6rem}.hero-actions .btn{padding:.6rem 1rem}.hero-visual{height:205px;margin-top:.3rem}.hero-ring{width:290px}
 .section-block{padding-block:3.25rem}.section-head{grid-template-columns:auto 1fr;gap:.75rem;margin-bottom:1.8rem}.section-title{font-size:1.8rem}
 .section-icon{width:32px;height:32px}.section-icon svg{width:18px;height:18px}.section-lead{grid-column:2;font-size:1.1rem;margin-top:-.35rem}
 .section-intro{margin-top:-.5rem;font-size:1rem}.bio{font-size:1rem;gap:1.25rem}.bio-intro{display:flow-root}
 .bio-portrait{float:left;width:96px;height:128px;margin:.3rem 1rem .5rem 0}.bio-intro p{font-size:.9375rem;line-height:1.95}
  .about-side{padding:1.5rem 1.5rem .3rem}.glance{display:block}.glance::before{display:block}
 .research-stage{padding:1.35rem}.research-questions dd{font-size:1rem}.toolkit-head{display:block;margin-bottom:1rem}.toolkit-en{font-size:.875rem}
 .toolkit-group{display:block}.toolkit-label{margin-bottom:.4rem}.toolkit-items{font-size:.9375rem}
 .subsection-head{display:block}.eyebrow{font-size:.75rem}.work-feature,.work-card{padding:1.4rem}.work-copy h4,.work-card h4{font-size:1.3rem}
 .work-copy>p:not(.work-category),.work-card>p:not(.work-category){font-size:1rem}.work-category{font-size:.75rem}.work-links{font-size:.8125rem}
 .catalog-head{margin-top:2.5rem}.pub-toolbar{gap:.8rem}.search-field{flex-basis:100%;max-width:none}.search-field input{font-size:.875rem}.search-field kbd{display:none}
 .pub-search-row{gap:.3rem .6rem}.sort-btn{font-size:.8125rem}.pub-count{font-size:.8125rem;margin-top:.25rem}
 .year-chip,.role-chip,.theme-chip{min-height:40px;padding-inline:.55rem}
 .pub-frame{max-height:700px}
 .pub-item{grid-template-columns:minmax(0,1fr);gap:.3rem;padding:1.4rem .15rem}.pub-title{font-size:1.03125rem}.pub-authors{font-size:.8125rem}.pub-meta{font-size:.8125rem}
 .pub-foot{align-items:flex-start;gap:.5rem}.pub-doi{font-size:.75rem}.text-btn{font-size:.75rem;padding-inline:.4rem}
 .contact-purpose{font-size:1rem}.contact-box{padding-top:1.5rem}.email-address{font-size:1.55rem}.site-footer{padding-inline:1.4rem;font-size:.75rem}
 .site-footer>p{max-width:100%;overflow-wrap:anywhere}.to-top{right:.8rem;bottom:.9rem;width:38px;height:38px}
}
/* Static text and scientific imagery survive script failures. */
html:not(.js) body{padding-top:0}html:not(.js) .site-nav{position:relative;height:auto}
html:not(.js) .nav-inner{min-height:var(--nav-h);padding-block:.8rem;flex-wrap:wrap}
html:not(.js) .nav-links-wrap{display:block;position:static;padding:0;background:transparent;border:0;box-shadow:none}
html:not(.js) .nav-links{display:flex;flex-wrap:wrap;flex-direction:row;gap:.5rem 1rem}
html:not(.js) .nav-tools,html:not(.js) .pub-toolbar,html:not(.js) .contact-actions,html:not(.js) .research-nav{display:none}
html:not(.js) .research-stage{display:block}html:not(.js) .topic-media{display:none}
html:not(.js) .topic-panel{display:block;margin-bottom:2rem}html:not(.js) .topic-panel:last-child{margin-bottom:0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .will-reveal{opacity:1;transform:none}}
@media print{
 :root{--bg:#fff;--surface:#fff;--ink:#111;--ink-soft:#333;--muted:#555;--line:#ddd;--line-strong:#bbb}
 html,body{background:#fff}body{padding:0;font-size:10pt}
 .site-nav,.side-rail,.scroll-progress,.hero-mesh,.hero-visual,.hero-foot,.hero-actions,.research-nav,.topic-media,.pub-toolbar,.text-btn,.contact-actions,.to-top,.toast,.skip,.eyebrow{display:none!important}
 .wrap{width:100%;max-width:none;padding:0}.hero,.band,#contact,.about-side,.research-stage,.work-feature,.work-card{background:#fff;box-shadow:none}
 .hero-layout{min-height:0;display:block;padding:0 0 1.5rem}.hero h1,html[lang="en"] .hero h1{font-size:32pt}.en-name{font-size:20pt}
 .hero-kicker{margin-bottom:.8rem}.hero-position{margin-top:.8rem}.hero-statement{font-size:12pt}
 .section-block{padding:1.25rem 0}.section-block::before{display:none}.section-head{margin-bottom:1rem;break-after:avoid}
 .section-title{font-size:20pt}.section-lead{font-size:15pt}.section-intro{margin-top:0}
 .about-grid{gap:2rem}.bio{font-size:10pt;gap:1rem}.about-side{padding:1rem}.bio-portrait{width:85px;height:114px}.bio-intro{grid-template-columns:85px 1fr}
 .research-stage{display:block;border:0;padding:0;min-height:0}.topic-panel,.topic-panel.is-active{display:block!important;margin-block:1rem;break-inside:avoid}
 .topic-copy h3{font-size:13pt}.research-questions{gap:.5rem}.research-questions dd{font-size:10pt}
 .research-toolkit{margin-top:1rem;padding-top:1rem}.toolkit-items{font-size:10pt}
 .work-feature{padding:1rem;gap:1rem}.work-card{padding:1rem}.work-copy h4,.work-card h4{font-size:13pt}
 .work-copy>p:not(.work-category),.work-card>p:not(.work-category){font-size:10pt}.work-feature,.work-card{break-inside:avoid}.catalog-head{margin-top:1.5rem}
 .pub-frame{height:auto;max-height:none;overflow:visible;scrollbar-gutter:auto}
 .pub-item,.pub-item.is-filtered-out{display:grid!important;grid-template-columns:40px minmax(0,1fr);padding:.8rem 0;break-inside:avoid}
 .pub-title{font-size:11pt}.pub-authors,.pub-meta{font-size:9pt}.pub-doi{font-size:8pt}
 details.pub-authors .authors-full{display:block!important}.authors-more{display:none}.pub-empty{display:none!important}
 .contact-box{gap:1rem 2rem}.site-footer{padding:1rem 0}.js .will-reveal{opacity:1;transform:none}a{text-decoration:none}
}
