:root{color-scheme:light;--bg:#fff;--ink:#253348;--text:#394656;--muted:#66758a;--line:#dfe6ee;--soft:#f5f8fb;--accent:#265e96;--hover:#18436f;--header:rgba(255,255,255,.97)}
:root[data-theme="dark"]{color-scheme:dark;--bg:#151b24;--ink:#edf2f8;--text:#c7d1de;--muted:#9eafc3;--line:#354252;--soft:#202b39;--accent:#9ac5f1;--hover:#c6e0ff;--header:rgba(21,27,36,.97)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.85 "Microsoft YaHei","PingFang SC",sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;text-underline-offset:4px}a:hover{color:var(--hover);text-decoration:underline}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}img{max-width:100%;height:auto}p{margin:0 0 1.15em}strong{font-weight:600;color:var(--ink)}h1,h2,h3{color:var(--ink)}h3{font-size:17px;line-height:1.65;font-weight:600;margin:0 0 9px}ul{padding-left:1.3em}li{padding-left:3px;margin:8px 0}.skip-link{position:fixed;z-index:10;top:-80px;left:15px;padding:8px 15px;background:var(--bg);border:1px solid var(--accent)}.skip-link:focus{top:10px}
.masthead{position:sticky;top:0;z-index:5;background:var(--header);border-bottom:1px solid var(--line)}.masthead-inner{max-width:1200px;margin:auto;min-height:82px;padding:0 34px;display:flex;align-items:center;gap:45px}.brand{color:var(--ink);font-size:21px;font-weight:600;white-space:nowrap}.brand span{font:21px Georgia,serif;font-weight:400;margin-left:5px}.masthead nav{display:flex;gap:30px;margin-left:auto;align-self:stretch}.masthead nav a{display:flex;align-items:center;font-size:15px;color:var(--muted);border-bottom:2px solid transparent;padding-top:2px}.masthead nav a[aria-current]{color:var(--ink);border-color:var(--accent);font-weight:600}.theme-toggle{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--ink)}.theme-toggle:hover{background:var(--soft)}
.layout{display:grid;grid-template-columns:225px minmax(0,1fr);gap:72px;max-width:1160px;margin:52px auto 75px;padding:0 34px}.profile{position:sticky;top:121px;align-self:start}.avatar{display:block;border-radius:50%;margin-bottom:24px;border:5px solid var(--bg);outline:1px solid var(--line)}.avatar-link{display:inline-block}.profile h2{font-size:24px;margin:0 0 14px;line-height:1.3}.profile h2 span{display:block;font:20px Georgia,serif;margin-top:7px;color:var(--muted)}.degree{font-size:14px;line-height:1.8;margin-bottom:9px}.english-degree{font:12px/1.6 Georgia,serif;color:var(--muted);margin-bottom:23px}.profile-links{display:grid;gap:13px;font-size:13px}.profile-links p,.profile-links a{display:flex;align-items:flex-start;gap:10px;margin:0;color:var(--text)}.profile-links small{color:var(--muted);font-size:12px}.link-symbol{display:inline-block;min-width:18px;font-size:16px;line-height:1.5;color:var(--muted)}.profile-note{font-size:12px;line-height:1.9;color:var(--muted);border-top:1px solid var(--line);padding-top:19px;margin-top:26px}
main{min-width:0}main:focus{outline:none}.page-heading{margin:0 0 29px}.eyebrow{font-size:11px;letter-spacing:1.1px;color:var(--muted);margin:0 0 12px;line-height:1.7}h1{font-size:34px;letter-spacing:-.5px;line-height:1.4;margin:0 0 12px;font-weight:600}h1 span{font:34px Georgia,serif;margin-left:9px;font-weight:400}.page-subtitle{color:var(--muted);font-size:14px;margin:0}.introduction{line-height:1.95}.section-heading{display:flex;gap:16px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px;margin:39px 0 23px}.section-heading h2{font-size:22px;line-height:1.45;font-weight:600;margin:0}.section-heading>span{font-size:10px;letter-spacing:1.3px;color:var(--muted)}.section-heading>a{font-size:12px}
.project-card{display:block;border:1px solid var(--line);border-radius:5px;overflow:hidden;margin:22px 0;background:var(--bg)}.project-body{padding:22px 23px}.project-body .eyebrow{font-size:10px;letter-spacing:.4px;margin-bottom:9px}.project-body h3{font-size:17px;line-height:1.6}.project-body h3 a{color:var(--ink)}.project-body>p:not(.eyebrow){font-size:13px;line-height:1.85;margin-bottom:14px}.tags{display:flex;list-style:none;flex-wrap:wrap;gap:6px;padding:0;margin:16px 0}.tags li{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:2px 8px;margin:0;line-height:1.65}.text-link{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:600}.education-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:15px;padding:15px 0;border-bottom:1px solid var(--line)}.education-row:last-child{border-bottom:0}.date{font-size:12px;color:var(--muted);padding-top:3px;font-variant-numeric:tabular-nums}.education-row h3{font-size:16px;margin:0 0 7px}.education-row p{font-size:13px;margin:0 0 8px}.award-list{list-style:none;margin:0;padding:0}.award-list li{display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px;font-size:14px;padding:11px 0;margin:0;border-bottom:1px solid var(--line)}.award-list li:last-child{border-bottom:0}.award-year{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:2px}.contact-line{display:flex;gap:25px;font-size:14px;margin-bottom:5px}.contact-line>span{min-width:53px;color:var(--muted);font-size:12px}.site-footer{border-top:1px solid var(--line);background:var(--soft)}.site-footer>div{max-width:1160px;margin:auto;display:flex;gap:22px;padding:25px 34px;font-size:11px;color:var(--muted)}.updated{margin-left:auto}
.back-link{font-size:12px;display:inline-block;margin-bottom:25px}.detail-heading h1{font-size:30px;margin-top:7px}.lead{font-size:16px;line-height:1.95}.work-list{list-style:none;counter-reset:work;padding:0}.work-list>li{counter-increment:work;position:relative;padding-left:40px;margin:25px 0}.work-list>li::before{content:counter(work,decimal-leading-zero);position:absolute;left:0;top:3px;color:var(--accent);font:16px Georgia,serif}.work-list h3{font-size:17px}.work-list p{font-size:14px}.flow{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0}.flow span{border:1px solid var(--line);background:var(--soft);padding:8px 12px;font-size:12px}.flow span:not(:last-child)::after{content:' →';margin-left:7px;color:var(--muted)}.metrics{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin:18px 0}.metrics>div{display:flex;flex-direction:column;padding:0 20px}.metrics>div+div{border-left:1px solid var(--line)}.metrics strong{font:42px/1.3 Georgia,serif;color:var(--accent)}.metrics small{font-size:14px;margin-left:5px}.metrics span{font-size:12px;color:var(--muted);margin-top:6px}.caption{font-size:12px;color:var(--muted);line-height:1.85}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--line);padding:12px 10px;text-align:left;vertical-align:top}thead{background:var(--soft)}th{font-weight:600;color:var(--ink)}table caption{text-align:left;font-size:12px;color:var(--muted);padding:0 0 10px}.next-project{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);margin-top:45px;padding-top:20px;font-size:11px;color:var(--muted)}.next-project span{font-size:15px;color:var(--accent)}.experience{margin-bottom:29px;padding-bottom:25px;border-bottom:1px solid var(--line)}.experience p,.experience li{font-size:14px}.experience .eyebrow,.meta{font-size:12px;color:var(--muted)}.experience:last-child{border-bottom:0}.print-button{display:inline-block;font-size:12px;color:var(--accent);background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:6px 12px;margin-top:19px}#education article{margin:20px 0}#honors>ul{font-size:14px}#skills p,#service p{font-size:14px}
@media(min-width:1500px){.layout{margin-top:65px}}
@media(max-width:1020px){.layout{gap:35px;grid-template-columns:195px minmax(0,1fr)}.project-body{padding:18px}.project-body h3{font-size:16px}.masthead-inner{gap:25px}}
@media(max-width:760px){.masthead-inner{padding:0 22px;min-height:69px;gap:17px;flex-wrap:wrap}.brand,.brand span{font-size:18px}.masthead nav{gap:20px}.masthead nav a{font-size:13px}.layout{padding:0 24px;grid-template-columns:1fr;gap:35px;margin-top:30px}.profile{position:static;display:grid;grid-template-columns:105px 1fr;gap:0 21px;padding-bottom:23px;border-bottom:1px solid var(--line)}.avatar{width:100px;height:100px;margin:0}.profile h2{font-size:22px;margin-top:2px;margin-bottom:7px}.profile h2 span{display:inline;font-size:18px;margin-left:8px}.degree{font-size:12px;margin-bottom:0}.english-degree,.profile-note{display:none}.profile-links{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:20px;margin-top:17px;font-size:12px}.profile-links p{flex-grow:1}.profile-links small{display:none}.profile-links p br{display:none}h1{font-size:30px}h1 span{font-size:30px}.site-footer>div{padding:22px 24px}.detail-heading h1{font-size:27px}}
@media(max-width:520px){.masthead-inner{padding:13px 20px;gap:8px 12px}.masthead nav{order:3;width:100%;gap:27px;margin-left:0;height:36px}.theme-toggle{margin-left:auto}.masthead nav a{font-size:13px}.layout{padding:0 21px;margin:25px auto 50px;gap:28px}.page-heading{margin-bottom:23px}.eyebrow{font-size:9px}h1,h1 span{font-size:28px}.section-heading{margin-top:31px}.section-heading h2{font-size:20px}.section-heading>span{font-size:8px;letter-spacing:.7px}.project-body{padding:21px}.project-body h3{font-size:18px}.project-body>p:not(.eyebrow){font-size:14px}.education-row{grid-template-columns:1fr;gap:5px}.award-list li{grid-template-columns:75px minmax(0,1fr);gap:12px}.award-year{font-size:11px}.site-footer>div{flex-wrap:wrap;gap:10px 20px}.updated{margin-left:0}.profile-links{gap:14px}.metrics strong{font-size:32px}.metrics>div{padding:0 12px}.detail-heading h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{:root,:root[data-theme="dark"]{--bg:white;--ink:#111;--text:#222;--muted:#555;--line:#ddd;--soft:#fafafa;--accent:#222}.masthead,.profile,.site-footer,.print-button,.back-link,.next-project,.skip-link{display:none!important}.layout{display:block;margin:0;padding:0}body{font-size:11px;line-height:1.6}h1{font-size:25px}.page-heading{margin-bottom:15px}.section-heading{margin:20px 0 12px}.section-heading h2{font-size:17px}.experience p,.experience li,#honors>ul,#skills p,#service p{font-size:11px}.experience{margin-bottom:15px;padding-bottom:12px}h2,h3{break-after:avoid}.education-row,.award-list li{break-inside:avoid}a{color:#222;text-decoration:none}@page{size:A4;margin:16mm}}

/* Compact homepage and bilingual university affiliation. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.profile-links .school-en{display:block;margin:4px 0;font:11px/1.6 Georgia,serif;color:var(--muted)}
.profile-links .school-name small{display:block}
main>.sr-only+section>.section-heading{margin-top:0}
@media(max-width:760px){.profile-links>p{flex-basis:100%}.profile-links .school-en{margin:2px 0}}
