/* All secondary pages share one type scale: display (page title), article (long title),
   title (section), heading (item), lede (standfirst), reading, body, small, caption,
   plus the same page gutter and section rhythm. The steps sit between the first
   oversized pass and the too-quiet follow-up: a page title lands near 75px at a
   laptop width and 86px at the widest, so the pages read as one set.
   The block is mirrored in works.css, research-pages.css, paper-detail.css,
   contact.css and contact-map.css. */
:root{--black:#000;--text:#bdbdbd;--label:#fff;--quiet:#999;--hover:#fff;--focus:#ffd400;--line:#303030;--gutter:clamp(20px,3.4vw,64px);--page-top:clamp(56px,6vw,104px);--page-bottom:clamp(72px,7vw,116px);--section-gap:clamp(48px,5vw,88px);--intro-gap:clamp(52px,5.6vw,104px);--fs-display:clamp(40px,5.2vw,86px);--fs-article:clamp(28px,2.8vw,44px);--fs-title:clamp(22px,1.9vw,30px);--fs-heading:clamp(19px,1.5vw,24px);--fs-lede:clamp(18px,1.45vw,23px);--fs-reading:17px;--fs-body:16px;--fs-small:14px;--fs-caption:13px;font-family:var(--font);font-synthesis:none;color-scheme:dark;background:var(--black);color:var(--text)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;min-height:100svh;-webkit-font-smoothing:antialiased}
p,h1,h2,ul,dl,dd{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:left}
a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
a:hover,button:hover{color:var(--hover)}
:focus-visible{outline:2px solid var(--focus);outline-offset:6px}
::selection{background:var(--focus);color:var(--black)}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.waves-background{position:fixed;inset:0;pointer-events:none;background:#000;overflow:hidden;z-index:-1}
#waves-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.075}
.waves-background::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.4),rgba(0,0,0,.18) 38%,transparent 70%)}
.skip-link{position:fixed;left:22px;top:-80px;z-index:70;padding:12px 16px;background:var(--black)}
.skip-link:focus{top:12px}
.biography{width:100%;max-width:1920px;margin-inline:auto;margin-top:var(--header-h);padding:var(--page-top) var(--gutter) var(--page-bottom);font-size:var(--fs-reading);font-weight:400;line-height:1.7;overflow-wrap:break-word}
.about-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(40px,5vw,96px);align-items:start;padding-bottom:var(--intro-gap)}
.about-title-block h1{color:var(--label);font-size:var(--fs-display);font-weight:400;letter-spacing:-.055em;line-height:1.04}
html[lang='zh-CN'] .about-title-block h1{font-size:var(--fs-display);letter-spacing:-.04em;line-height:1.08}
.bio-identity{min-width:0;padding-top:6px}
.bio-identity h2{color:var(--label);font-size:var(--fs-title);font-weight:400;line-height:1.3;letter-spacing:-.035em;text-wrap:balance;margin-bottom:28px}
.bio-identity .bio-prose{font-size:var(--fs-lede);line-height:1.7}
.bio-resume{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:40px}
.bio-resume a{display:inline-flex;align-items:baseline;gap:24px;padding-block:9px;border-bottom:1px solid #666;font-size:var(--fs-body);line-height:1.5;color:var(--label)}
.file-format{font-size:var(--fs-caption);color:var(--quiet)}
.bio-group{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.8fr);gap:clamp(40px,5vw,96px);align-items:start;padding-top:var(--section-gap);border-top:1px solid var(--line)}
.bio-group+.bio-group{margin-top:var(--section-gap)}
.bio-group h2{font-size:var(--fs-title);font-weight:400;line-height:1.35;letter-spacing:-.035em;color:var(--label);text-wrap:balance}
.bio-details{min-width:0}
.bio-prose>p{max-width:72ch;text-wrap:pretty}
.bio-prose>p+p{margin-top:22px}
.bio-experience{list-style:none;padding:0;margin-top:36px}
.bio-experience li{display:grid;grid-template-columns:160px minmax(0,1fr);gap:12px 32px;padding-block:28px;border-top:1px solid var(--line)}
.bio-date{grid-column:1;grid-row:1 / 3;font-size:var(--fs-small);line-height:1.8;color:var(--quiet);font-variant-numeric:tabular-nums;padding-top:5px;white-space:nowrap}
.bio-role{grid-column:2;color:var(--label);font-size:var(--fs-heading);line-height:1.45;letter-spacing:-.025em}
.bio-experience .bio-quiet{grid-column:2;font-size:var(--fs-reading);line-height:1.75;max-width:68ch;text-wrap:pretty}
[aria-labelledby='brands-heading'] .bio-prose{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px}
[aria-labelledby='brands-heading'] .bio-prose>p{margin:0;font-size:var(--fs-reading);line-height:1.8}
[aria-labelledby='brands-heading'] .bio-prose>p:first-child{grid-column:1 / -1;font-size:var(--fs-heading);line-height:1.6;letter-spacing:-.025em;color:var(--label)}
[aria-labelledby='brands-heading'] .bio-prose>p:last-child{grid-column:1 / -1}
.bio-tools{margin-block:36px}
.bio-tools>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:24px 40px;border-top:1px solid var(--line);padding-block:26px}
.bio-tools dt{color:var(--label);font-size:var(--fs-heading);line-height:1.5;letter-spacing:-.025em}
.bio-tools dd{font-size:var(--fs-reading);line-height:1.75;min-width:0}
.bio-honor-groups>div{display:grid;grid-template-columns:minmax(0,.5fr) minmax(0,2fr);gap:24px 40px;border-top:1px solid var(--line);padding-block:26px}
.bio-honor-groups dt{color:var(--label);font-size:var(--fs-heading);line-height:1.5;letter-spacing:-.025em}
.bio-honor-groups dd{font-size:var(--fs-reading);line-height:1.75;min-width:0}
.bio-honor-list{list-style:none;padding:0;margin:0}
.bio-honor-list li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:4px 24px;align-items:baseline}
.bio-honor-list li+li{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.bio-honor-year{font-size:var(--fs-small);line-height:1.8;color:var(--quiet);font-variant-numeric:tabular-nums;white-space:nowrap}
.bio-honor-entry{color:var(--label);justify-self:start}
.bio-honor-list .is-example .bio-honor-entry{color:var(--quiet)}
[aria-labelledby='education-heading'] .bio-prose>p:first-child{font-size:var(--fs-heading);line-height:1.5;letter-spacing:-.025em;color:var(--label);text-wrap:balance}
[aria-labelledby='interests-heading'] .bio-prose{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px}
[aria-labelledby='interests-heading'] .bio-prose>p{margin:0;font-size:var(--fs-reading);line-height:1.8}
[aria-labelledby='interests-heading'] .bio-prose>p:first-child{grid-column:1 / -1;font-size:var(--fs-heading);line-height:1.6;letter-spacing:-.025em;color:var(--label)}
[aria-labelledby='interests-heading'] .bio-prose>p:nth-child(2),[aria-labelledby='interests-heading'] .bio-prose>p:last-of-type{grid-column:1 / -1}
.bio-conversation{grid-column:1 / -1;justify-self:start;display:inline-block;padding-block:12px;color:var(--label);border-bottom:1px solid currentColor;font-size:var(--fs-heading);line-height:1.4;letter-spacing:-.025em}
.bio-contact{display:flex;flex-wrap:wrap;align-items:baseline;gap:20px 40px;color:var(--label);font-size:var(--fs-heading);line-height:1.5;letter-spacing:-.025em}
.bio-contact a,.bio-contact button{padding-block:7px;min-height:44px;max-width:100%;overflow-wrap:anywhere}
.copy-status{flex-basis:100%;font-size:var(--fs-small);line-height:1.6;color:var(--quiet);letter-spacing:normal}
.copy-status:empty{display:none}
.bio-resume a:hover,.bio-conversation:hover{border-color:var(--label)}
.bio-contact a:hover,.bio-contact button:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
@media(min-width:1800px){:root{--fs-reading:18px;--fs-body:17px}}
@media(max-width:1100px){.about-intro{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:40px}.bio-group{grid-template-columns:minmax(0,1fr) minmax(0,2.7fr);gap:40px}.bio-experience li{grid-template-columns:135px minmax(0,1fr);column-gap:24px}.bio-tools>div{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px}.bio-honor-groups>div{grid-template-columns:minmax(0,.6fr) minmax(0,2fr);gap:24px}}
@media(max-width:800px){.biography{padding-top:48px}.about-intro{grid-template-columns:1fr;gap:48px;padding-bottom:64px}.about-title-block{display:flex;justify-content:space-between;align-items:start;gap:32px}.bio-resume{margin-top:8px;gap:12px}.bio-identity{padding:0;max-width:68ch}.bio-group{grid-template-columns:1fr;gap:28px}.bio-tools>div{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.bio-honor-groups>div{grid-template-columns:minmax(0,.6fr) minmax(0,2fr)}.bio-contact{gap:20px 32px}}
@media(max-width:560px){.biography{padding-top:40px;line-height:1.8}.about-title-block{display:block}.bio-resume{margin-top:24px;gap:4px}.bio-resume a{gap:22px}.about-intro{gap:40px;padding-bottom:52px}.bio-identity h2{margin-bottom:20px}.bio-identity .bio-prose{line-height:1.8}.bio-prose>p+p{margin-top:18px}.bio-group{gap:24px}.bio-experience{margin-top:28px}.bio-experience li{grid-template-columns:1fr;gap:10px;padding-block:24px}.bio-date{grid-column:1;grid-row:auto;padding:0}.bio-role,.bio-experience .bio-quiet{grid-column:1}[aria-labelledby='brands-heading'] .bio-prose,[aria-labelledby='interests-heading'] .bio-prose{grid-template-columns:1fr;gap:20px}.bio-tools{margin-block:28px}.bio-tools>div{grid-template-columns:1fr;gap:12px;padding-block:22px}.bio-honor-groups>div{grid-template-columns:1fr;gap:12px;padding-block:22px}.bio-honor-list li{grid-template-columns:56px minmax(0,1fr);gap:2px 16px}.bio-contact{flex-direction:column;align-items:flex-start;gap:12px}.copy-status{flex-basis:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
