:root{--ink:#242d36;--muted:#5c6670;--blue:#315c7b;--line:#e1e6eb;--soft:#f4f7fa;--serif:Georgia,"Times New Roman","Songti SC",SimSun,serif;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:#fff;font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}a{color:var(--blue);text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:5px;border-radius:2px}p,h1,h2,h3,h4,figure{margin:0}p+p{margin-top:16px}img{max-width:100%;height:auto;display:block}.site-header{border-bottom:1px solid var(--line);background:#fff}.header-inner{max-width:1160px;margin:auto;height:82px;display:flex;justify-content:space-between;align-items:center;padding:0 32px}.wordmark{display:flex;gap:14px;align-items:center;color:var(--ink);font-size:12px;letter-spacing:2px;font-weight:600}.wordmark:hover{text-decoration:none}.monogram{font-family:var(--serif);font-size:30px;letter-spacing:-2px;color:var(--blue);font-weight:400}.language-switch{display:flex;align-items:center;gap:13px;font-size:14px}.language-switch>a{padding:5px 2px;color:var(--muted)}.language-switch>a[aria-current]{color:var(--blue);font-weight:650;border-bottom:1px solid var(--blue)}.language-switch>span{color:#a0a9b2}.layout{max-width:1160px;margin:auto;padding:58px 32px 0;display:grid;grid-template-columns:225px minmax(0,1fr);gap:65px}.identity{align-self:start;position:sticky;top:36px;padding-top:3px}.identity-name{font:normal 44px/1.18 var(--serif);letter-spacing:-1.5px;color:var(--ink)}.other-name{margin-top:7px;font-size:20px;letter-spacing:2px;color:var(--muted)}.identity-rule{height:2px;background:var(--blue);width:32px;margin:27px 0 21px}.identity-role{font-size:15px;max-width:200px;line-height:1.65}.identity-university{margin-top:5px;color:var(--blue);font-size:15px}.location{font-size:14px;color:var(--muted);margin-top:13px}.sidebar-email{display:inline-block;font-size:14px;margin-top:19px;overflow-wrap:anywhere}.side-nav{display:flex;flex-direction:column;gap:4px;margin-top:39px}.side-nav a{font-size:14px;display:flex;gap:14px;align-items:center;padding:7px 0;color:var(--muted)}.side-nav a span{font-family:var(--serif);font-size:12px;color:#77838e}.side-nav a:hover,.side-nav a.active{color:var(--blue)}main{min-width:0}.section{margin-bottom:52px}.eyebrow,.project-meta,.interests>span,.subheading,.detail-facts>div>span{font-size:12px;letter-spacing:1.5px;font-weight:600;color:var(--muted)}.eyebrow{color:var(--blue);margin-bottom:10px}h1{font:normal 37px/1.25 var(--serif);letter-spacing:-.9px;margin-bottom:24px}.about p{color:#46515c}.about .intro{color:var(--ink)}.interests{border-top:1px solid var(--line);padding-top:19px;margin-top:25px}.interests ul{list-style:none;display:flex;gap:10px 24px;flex-wrap:wrap;padding:0;margin:8px 0 0}.interests li{font-size:14px;color:var(--blue)}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:12px}h2{font:normal 26px/1.35 var(--serif);letter-spacing:-.4px}.section-number{font-family:var(--serif);font-size:14px;color:var(--muted)}.section-note{font-size:14px;color:var(--muted);margin-bottom:24px}.project{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;padding:25px 0;border-bottom:1px solid var(--line)}.project:first-child{padding-top:0}.project-visual{background:var(--soft);border:1px solid var(--line);border-radius:4px;align-self:start;min-height:136px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:13px}.featured .project-visual{background:#fff}.project-visual img{width:100%;object-fit:contain}.project-meta{font-size:11px;letter-spacing:1.05px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.project-meta>span:first-child{color:var(--blue)}.status{font:400 12px/1.5 var(--sans);letter-spacing:0;color:var(--muted)}.status:before{content:"/";color:#7c8791;margin-right:9px}.project h3{font:normal 22px/1.35 var(--serif);margin-top:7px;letter-spacing:-.2px}.project h3 a{color:var(--ink)}.project-subtitle{font-size:14px;color:var(--muted);margin-top:3px}.project-summary{font-size:15px;line-height:1.65;margin-top:10px}.project-bottom{margin-top:13px;display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between;align-items:center}.tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:5px 12px;font-size:12px;color:var(--muted)}.project-link{font-size:14px;white-space:nowrap}.project-link span{margin-left:3px}.flow{width:100%;padding:12px 0 7px;color:var(--blue)}.flow-steps{display:flex;align-items:center;justify-content:center;gap:4px}.flow-node{background:#fff;border:1px solid #bacbd8;padding:8px 5px;font-size:12px;line-height:1.3;text-align:center;flex:1}.flow-arrow{font-size:12px}.flow-return{margin:0 13%;height:17px;border:1px solid #95adbe;border-top:0;border-radius:0 0 3px 3px}.flow p{text-align:center;font-size:12px;color:var(--muted);line-height:1.5;margin-top:10px}.subheading{margin-top:25px;margin-bottom:16px}.experience-item{padding-bottom:22px}.experience-heading{display:flex;justify-content:space-between;gap:18px;align-items:baseline}.experience-heading h4{font-size:16px;font-weight:550}.experience-heading span{font-size:13px;color:var(--muted);white-space:nowrap}.experience-item>p{font-size:15px;color:var(--muted);margin-top:3px}.experience-item>.experience-description{font-size:14px;margin-top:8px;max-width:610px}.contact p{color:var(--muted);font-size:15px}.contact-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 22px;margin-top:20px}.contact-email{font-size:19px}.contact-actions button{border:1px solid #b9c7d1;background:#fff;color:var(--blue);border-radius:4px;padding:6px 12px;cursor:pointer;font-size:14px;min-height:38px}.contact-actions button:hover{background:var(--soft)}.contact .copy-status{font-size:14px;min-height:25px;margin-top:6px;color:var(--blue)}.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:21px 0 31px;color:var(--muted);font-size:12px}.skip-link{position:fixed;top:-100px;left:15px;background:var(--blue);color:white;padding:10px 16px;z-index:10}.skip-link:focus{top:10px}.back-link{display:inline-block;font-size:14px;margin-bottom:30px}.detail-header h1{font-size:44px;margin-top:15px;margin-bottom:8px}.detail-subtitle{font-size:20px;color:var(--muted);line-height:1.5}.detail-header .intro{margin-top:22px}.detail-facts{display:grid;grid-template-columns:1fr 2fr;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0;margin-top:25px}.detail-facts p{font-size:14px;margin-top:5px}.research-figure{margin:30px 0}.research-figure>a{display:block;border:1px solid var(--line);padding:14px;border-radius:4px}.research-figure figcaption{font-size:14px;line-height:1.6;color:var(--muted);margin-top:12px}.research-figure figcaption a{display:inline-block}.detail-section{margin:35px 0}.detail-section h2{margin-bottom:15px}.detail-section p,.detail-section li{color:#46515c}.detail-section ul{padding-left:20px;margin:0}.detail-section li+li{margin-top:12px}.flow-large{background:var(--soft);padding:30px;margin:30px 0;border:1px solid var(--line);border-radius:4px}.flow-large .flow-node{font-size:16px;padding:18px 10px}.flow-large .flow-arrow{font-size:18px;padding:0 10px}.flow-large p{font-size:14px}.flow-large .flow-return{height:24px}.other-work{border-top:1px solid var(--line);padding-top:24px;margin:40px 0 50px}.other-work h2{font-size:22px;margin-bottom:14px}.other-work>a{display:block;margin-top:9px}.not-found{max-width:800px;margin:15vh auto;padding:30px}
html[lang="zh-CN"] h1{font-size:34px;line-height:1.45;letter-spacing:0}html[lang="zh-CN"] .identity-name{letter-spacing:3px}html[lang="zh-CN"] h2{font-size:25px}html[lang="zh-CN"] .project h3{font-size:21px;line-height:1.5}html[lang="zh-CN"] .other-name{letter-spacing:0}
@media(min-width:1300px){.layout{gap:76px;grid-template-columns:225px minmax(0,1fr)}}
@media(max-width:1000px){.layout{gap:36px;grid-template-columns:195px minmax(0,1fr);padding-top:40px}.identity-name{font-size:38px}.project{grid-template-columns:1fr}.project-visual{min-height:0;max-width:100%;padding:18px}.project-visual img{max-height:180px;width:auto}.project-visual .flow{max-width:360px}.flow-node{font-size:14px}.project-meta{font-size:12px}.project h3{font-size:24px}.experience-heading{flex-direction:column;gap:2px}h1{font-size:33px}}
@media(max-width:700px){html{scroll-padding-top:20px}.header-inner{height:68px;padding:0 24px}.layout{display:block;padding:30px 24px 0}.identity{position:static;padding:0 0 24px;margin-bottom:30px;border-bottom:1px solid var(--line)}.identity-name{font-size:38px}.other-name{display:inline-block;margin-left:14px;font-size:18px}.identity-rule{margin:18px 0 15px;width:28px}.identity-role{max-width:none}.identity-university{display:inline-block;margin:0}.location{display:inline-block;margin:0 0 0 12px}.sidebar-email{display:block;margin-top:10px}.side-nav{flex-direction:row;flex-wrap:wrap;gap:8px 22px;margin-top:19px}.side-nav a{padding:5px 0}.side-nav a span{display:none}.section{margin-bottom:38px}h1{font-size:31px;line-height:1.3;margin-bottom:18px}.about .intro{font-size:16px}.interests ul{gap:7px 18px}.section-heading h2{font-size:24px}.project{gap:18px;padding:25px 0}.project-visual{min-height:145px}.project-visual img{max-height:180px}.project h3{font-size:24px}.project-summary{font-size:16px}.project-meta{font-size:12px}.status{font-size:14px}.project-bottom{gap:11px}.tags{font-size:13px}.experience-heading{flex-direction:row;align-items:start}.experience-heading span{white-space:normal;text-align:right;min-width:85px}.experience-heading h4{max-width:70%}.contact-email{font-size:17px}.detail-header h1{font-size:36px;overflow-wrap:anywhere}.detail-subtitle{font-size:18px}.detail-facts{grid-template-columns:1fr;gap:14px}.flow-large{padding:22px 12px}.flow-large .flow-node{font-size:14px;padding:15px 5px}.flow-large .flow-arrow{padding:0 1px}.research-figure>a{padding:5px}.research-figure figcaption{font-size:14px}.site-footer{font-size:12px}.back-link{margin-bottom:23px}html[lang="zh-CN"] h1{font-size:29px}html[lang="zh-CN"] h2{font-size:24px}.wordmark{gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.research-intro{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.research-intro .section-note{margin-bottom:0}.research-intro>a{font-size:.875rem;white-space:nowrap}
.archive-item{padding:21px 0;border-bottom:1px solid var(--line)}.archive-item:first-child{padding-top:5px}
.archive-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px 20px}
.archive-item h3{font:normal 21px/1.45 var(--serif);letter-spacing:-.2px}.archive-item h3 a{color:var(--ink)}
.archive-item h3 a span{color:var(--blue);font:normal 15px var(--sans);margin-left:4px}
.archive-status{font-size:.8125rem;color:var(--muted);flex-shrink:0}
.archive-item>p{font-size:.9375rem;line-height:1.7;margin:8px 0 10px;color:#46515c;max-width:680px}
.archive-item .tags{gap:5px 16px}.other-work .browse-all{font-size:.875rem;margin-top:22px}
@media(max-width:700px){.archive-top{flex-direction:column;gap:3px}.archive-item h3{font-size:21px}.archive-item>p{font-size:1rem}.research-intro{margin-bottom:20px}.experience-heading{flex-wrap:wrap}.experience-heading h4{max-width:100%}.experience-heading span{min-width:0;text-align:left}}
/* Relative typography respects the reader's default text size. */
body{font-size:1rem}
.project-summary,.contact p{font-size:1rem}
.identity-role,.identity-university,.experience-item>p{font-size:.9375rem}
.side-nav a,.language-switch,.sidebar-email,.location,.interests li,.section-note,.project-subtitle,.project-link,.contact-actions button,.contact .copy-status,.back-link,.detail-facts p,.research-figure figcaption,.experience-item>.experience-description{font-size:.875rem}
.project-meta,.eyebrow,.interests>span,.subheading,.detail-facts>div>span,.tags,.site-footer,.wordmark{font-size:.75rem}
.status{font-size:.875rem}
.flow-node{min-width:0;overflow-wrap:anywhere;font-size:.75rem}
.flow p{font-size:.75rem}
.flow-large .flow-node{font-size:1rem}
.flow-large p{font-size:.875rem}
main:focus-visible{outline:2px solid var(--blue);outline-offset:8px}
@media(max-width:1000px){.flow-node{font-size:.875rem}}
@media(max-width:700px){.flow-large .flow-node{font-size:.875rem}.tags{font-size:.8125rem}}
@media print{.site-header,.side-nav,button,.back-link,.language-switch,.copy-status{display:none}.layout{display:block;padding:0}.identity{position:static;margin-bottom:30px}.project,.research-figure{break-inside:avoid}a{color:inherit}.site-footer{margin-top:30px}}
.project-date{font-size:.875rem;color:var(--blue);margin-top:8px;line-height:1.5}.archive-item{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px}.archive-visual{align-self:start;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#f4f7fa}.archive-visual img{width:100%;aspect-ratio:2/1;object-fit:contain}.archive-copy{min-width:0}.project-visual{padding:0}.project{grid-template-columns:235px minmax(0,1fr)}.detail-header h1{overflow-wrap:break-word}.detail-section p+p{margin-top:16px}@media(max-width:760px){.project{grid-template-columns:1fr}.project-visual{max-width:none}.archive-item{grid-template-columns:1fr}.archive-visual{max-width:none}.archive-visual img{width:100%}}
/* Preserve full original figures, including axes and image/mask panels. */
.project-visual{background:#fff;min-height:0}
.project-visual img{width:100%;max-height:none;height:auto}
.archive-visual{background:#fff}
.archive-visual img{aspect-ratio:auto;width:100%;height:auto;max-height:240px;object-fit:contain}
.research-figure img{width:100%;height:auto}
.project-visual{background:#fff;min-height:0}.project-visual img{width:100%;max-height:none;height:auto}.archive-visual{background:#fff}.archive-visual img{aspect-ratio:auto;width:100%;height:auto;max-height:240px;object-fit:contain}.research-figure img{width:100%;height:auto}
