@charset "UTF-8";
:root{--ink:#17202b;--muted:#596673;--accent:#255b9b;--line:#e2e7ed;--pale:#f3f6fa;--serif:Georgia,'Times New Roman','Noto Serif CJK SC','Songti SC',serif;--sans:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans CJK SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:108px}body{margin:0;background:#fff;color:var(--ink);font:400 16px/1.75 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}a:hover{color:var(--accent)}p{margin:0 0 1.2rem}h1,h2,h3{margin:0;font-weight:400}img{display:block;max-width:100%}::selection{background:#dce9f9}.skip-link{position:fixed;left:20px;top:-100px;padding:10px 20px;background:var(--ink);color:#fff;z-index:30}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);z-index:10}.header-inner{max-width:1136px;padding:0 32px;margin:auto;display:flex;align-items:center;gap:36px;min-height:84px}.wordmark{font:600 21px/1.3 var(--sans);letter-spacing:-.8px;white-space:nowrap}.brand-period{color:var(--accent)}nav{display:flex;align-items:center;gap:27px;margin-left:auto}nav a{font-size:14px;color:var(--muted);position:relative;padding:30px 0}nav a:after{content:'';height:2px;background:var(--accent);position:absolute;bottom:19px;left:0;right:0;transform:scaleX(0);transition:transform .2s}nav a.active{color:var(--ink)}nav a.active:after{transform:scaleX(1)}#language-toggle{font-size:14px;line-height:1.5;color:var(--ink);background:transparent;border:0;border-left:1px solid var(--line);padding:4px 0 4px 23px;white-space:nowrap;cursor:pointer}#language-toggle:hover{color:var(--accent)}#language-toggle span{font-size:15px;margin-left:4px}.page-shell{max-width:1136px;padding:0 32px;margin:auto}.intro{padding:89px 0 76px;display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:76px;align-items:center}.eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:600;color:var(--accent);margin:0 0 21px}.intro h1{font:400 clamp(46px,5.5vw,66px)/1.1 var(--serif);letter-spacing:-2px;display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 20px}.chinese-name{font:400 22px/1.5 var(--sans);letter-spacing:2px;color:var(--muted)}.intro-line{font:400 28px/1.45 var(--serif);letter-spacing:-.3px;margin:25px 0 20px}.intro-description{max-width:650px;color:var(--muted);font-size:17px;line-height:1.8}.intro-links{display:flex;align-items:center;gap:30px;margin-top:29px;font-size:14px}.primary-link{display:inline-flex;align-items:center;gap:28px;background:var(--ink);color:#fff;padding:11px 18px;transition:background .2s}.primary-link:hover{background:var(--accent);color:#fff}.text-link{display:inline-flex;gap:13px;border-bottom:1px solid #9ca9b5;padding:6px 0}.portrait-block{margin:0;align-self:center;padding-top:14px}.portrait{width:254px;height:254px;border-radius:50%;object-fit:cover;object-position:center top;box-shadow:0 0 0 9px var(--pale);margin:0 auto}.portrait-block figcaption{text-align:center;color:var(--muted);font-size:12px;letter-spacing:.15px;margin:26px -10px 0}.section-row{display:grid;grid-template-columns:242px minmax(0,1fr);gap:40px;padding:63px 0 67px;border-top:1px solid var(--line)}.section-label{padding-right:20px}.section-index{display:block;font-size:12px;letter-spacing:1.5px;color:var(--accent);font-weight:500;margin-bottom:17px}.section-label h2{font:400 29px/1.25 var(--serif);letter-spacing:-.6px}.section-label>p{font-size:14px;color:var(--muted);line-height:1.7;margin-top:17px}.section-content>p{color:var(--muted)}.section-content>.lead-paragraph{font-size:21px;line-height:1.6;color:var(--ink);font-family:var(--serif);margin-top:0;margin-bottom:20px}.focus-list{display:flex;gap:8px 22px;flex-wrap:wrap;list-style:none;padding:0;margin:28px 0 0}.focus-list li{font-size:13px;color:var(--accent);position:relative;padding-left:13px}.focus-list li:before{content:'';width:4px;height:4px;background:var(--accent);position:absolute;left:0;top:10px}.project{border-bottom:1px solid var(--line);padding:0 0 31px;margin-bottom:32px}.project:last-of-type{border:0;margin:0;padding-bottom:0}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;line-height:1.5;letter-spacing:.55px;color:var(--muted);margin-bottom:14px}.stage{font-size:12px;white-space:nowrap;color:#47586a;background:var(--pale);padding:3px 9px;letter-spacing:0}.stage.planning{background:#eaf1fb;color:var(--accent)}.project h3{font:400 28px/1.3 var(--serif);letter-spacing:-.5px;margin-bottom:13px}.project>p{color:var(--muted);line-height:1.8;margin-bottom:21px}.project-result{display:flex;align-items:center;gap:22px;margin:25px 0 18px}.result-number{font:400 32px/1.3 var(--serif);letter-spacing:-1px;white-space:nowrap}.result-number small{font:400 15px/1.4 var(--sans);letter-spacing:0}.result-number>span{font-size:23px;color:#8493a4;padding:0 6px}.result-label{color:var(--muted);font-size:13px;line-height:1.6;border-left:1px solid var(--line);padding-left:21px;max-width:250px}.project-focus{padding:1px 0 1px 17px;border-left:2px solid var(--accent);margin:25px 0 22px}.project-focus>span{font-size:12px;font-weight:600;letter-spacing:1.2px;color:var(--accent)}.project-focus p{font:400 20px/1.5 var(--serif);margin:5px 0 0}.project details{margin-top:22px}.project summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--accent);padding:3px 0}.project summary::-webkit-details-marker{display:none}.detail-icon{font-size:21px;font-weight:300;line-height:1;transition:transform .2s}.project details[open] .detail-icon{transform:rotate(45deg)}.detail-body{padding:17px 20px 3px;margin-top:13px;background:var(--pale);font-size:15px;line-height:1.8;color:var(--muted)}.detail-body p:last-child{margin-bottom:14px}.timeline-item{position:relative;padding:0 0 30px 24px;border-left:1px solid var(--line)}.timeline-item:before{content:'';position:absolute;left:-4px;top:8px;width:7px;height:7px;border:1px solid #798b9e;background:#fff;border-radius:50%}.timeline-item:first-child:before{background:var(--accent);border-color:var(--accent)}.timeline-item:last-child{padding-bottom:0}.date{font-size:12px;letter-spacing:1px;color:var(--muted);margin-bottom:9px}.timeline h3,.education-item h3{font:400 24px/1.35 var(--serif);letter-spacing:-.3px;margin-bottom:4px}.role{font-size:14px;font-weight:500;color:var(--accent);margin:0 0 11px}.timeline-item>p:last-child,.education-item>p:last-child{font-size:16px;color:var(--muted);margin-bottom:0}.education-item{margin-bottom:31px}.education-item .role{margin-top:7px;color:var(--accent)}.certification{border-top:1px solid var(--line);padding-top:26px;display:flex;align-items:center;gap:18px}.certification-mark{font:600 17px/1.3 var(--sans);letter-spacing:1px;color:var(--accent);border:1px solid #c9d5e3;padding:12px 9px}.certification p{margin:0;font-size:14px}.certification strong{display:block;font-weight:500}.certification p span{display:block;font-size:12px;color:var(--muted)}.contact-section{padding-bottom:81px}.contact-section .contact-heading{font:400 27px/1.4 var(--serif);letter-spacing:-.35px;color:var(--ink);margin-bottom:17px}.email-link{font:400 26px/1.5 var(--serif);display:inline-block;margin:9px 0 28px;border-bottom:1px solid #9ca9b5}.email-link span{margin-left:15px;color:var(--accent)}.resume-links{display:flex;gap:24px;align-items:center;flex-wrap:wrap;font-size:14px}.resume-links>span{font-size:12px;letter-spacing:1px;color:var(--muted)}.resume-links a{color:var(--accent)}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:12px}.site-footer>div{max-width:1136px;padding:25px 32px;margin:auto;display:flex;gap:25px;justify-content:space-between}.site-footer a{color:var(--ink)}html[lang=zh-CN] .intro h1{letter-spacing:-1.5px}html[lang=zh-CN] .intro-line{font-size:27px;line-height:1.6;letter-spacing:0}html[lang=zh-CN] .section-label h2{letter-spacing:0;font-size:27px}html[lang=zh-CN] .project h3{letter-spacing:0;font-size:26px}html[lang=zh-CN] .eyebrow{letter-spacing:1px}html[lang=zh-CN] .lead-paragraph{font-size:20px;line-height:1.8}
@media(min-width:1300px){.intro{padding-top:99px;padding-bottom:89px}}
@media(max-width:980px){.header-inner{gap:24px}nav{gap:18px}.intro{gap:38px;grid-template-columns:minmax(0,1fr) 220px}.portrait{width:210px;height:210px}.intro h1{font-size:52px}.section-row{grid-template-columns:195px minmax(0,1fr);gap:28px}.project-meta{flex-wrap:wrap}.project-result{gap:15px}.result-label{padding-left:15px}.portrait-block figcaption{font-size:12px}.eyebrow{font-size:12px;letter-spacing:1px}}
@media(max-width:760px){html{scroll-padding-top:135px}.header-inner{padding:17px 22px 0;min-height:0;gap:0;flex-wrap:wrap;justify-content:space-between}.wordmark{font-size:20px}#language-toggle{order:2;border:0;padding:0;min-height:30px}nav{order:3;flex-basis:100%;margin-left:0;justify-content:space-between;gap:16px}nav a{padding:15px 0;font-size:13px}nav a:after{bottom:7px}.page-shell{padding:0 24px}.intro{padding:45px 0 45px;grid-template-columns:minmax(0,1fr) 150px;gap:25px}.intro-copy{display:contents}.eyebrow{grid-column:1/-1;margin:0}.intro h1{font-size:46px;grid-column:1;grid-row:2;align-content:center;gap:10px}.chinese-name{display:block;font-size:19px;flex-basis:100%;letter-spacing:2px}.portrait-block{grid-column:2;grid-row:2;margin:0;padding:0}.portrait{width:140px;height:140px;box-shadow:0 0 0 5px var(--pale)}.portrait-block figcaption{display:none}.intro-line{grid-column:1/-1;margin:3px 0 0;font-size:28px}.intro-description{grid-column:1/-1;margin:0;font-size:16px;line-height:1.8}.intro-links{grid-column:1/-1;margin:0;gap:25px}.section-row{grid-template-columns:1fr;gap:26px;padding:38px 0 42px}.section-label{padding:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:14px}.section-index{margin:0}.section-label h2{font-size:27px}.section-label h2 br{display:none}.section-label>p{display:none}.section-content>.lead-paragraph{font-size:21px}.project h3{font-size:26px}.project{margin-bottom:28px;padding-bottom:27px}.project-meta{font-size:12px;gap:8px}.project-result{flex-wrap:wrap;gap:10px}.result-number{font-size:30px}.result-label{max-width:none}.contact-section{padding-bottom:45px}.contact-section .contact-heading{font-size:26px}.site-footer>div{padding:23px 24px;gap:13px;flex-wrap:wrap}.site-footer>div>span:nth-child(2){display:none}.timeline h3,.education-item h3{font-size:23px}.focus-list{gap:8px 18px}.detail-body{padding-left:15px;padding-right:15px}}
@media(max-width:390px){.intro{grid-template-columns:minmax(0,1fr) 112px;gap:21px}.intro h1{font-size:40px}.portrait{width:108px;height:108px}.eyebrow{letter-spacing:.7px;font-size:12px}.intro-links{font-size:13px;gap:21px}.primary-link{gap:15px;padding:10px 13px}.project-result{display:block}.result-label{display:block;border:0;padding:7px 0 0}.email-link{font-size:23px}.resume-links{gap:18px}nav{gap:10px}nav a{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
@media print{.site-header,.intro-links,.resume-links,.site-footer,.skip-link,details{display:none}.page-shell{max-width:100%;padding:0}.intro{padding:20px 0;gap:25px}.section-row{padding:25px 0;grid-template-columns:180px 1fr}.project,.timeline-item,.education-item{break-inside:avoid}.portrait{width:170px;height:170px}.contact-section{padding-bottom:0}}
/* IndustrialNext current work */
.current-work{margin:0 0 42px;padding:30px;border:1px solid #d6e0eb;background:linear-gradient(145deg,#f7f9fc 0%,#fff 65%)}
.current-work-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}.current-work-heading .eyebrow{margin:0 0 10px}.current-work-heading h3{font:400 30px/1.3 var(--serif);letter-spacing:-.55px;max-width:590px}.current-work-lead{color:var(--muted);font-size:16px;line-height:1.8;max-width:720px}
.product-cycle{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;padding:0;margin:27px 0 31px;border-top:1px solid #cfd9e4}.product-cycle li{position:relative;padding:13px 10px 0 0}.product-cycle li:not(:last-child):after{content:'→';position:absolute;right:8px;top:24px;color:#9aabba}.product-cycle span{display:block;font-size:11px;letter-spacing:1px;color:var(--accent);margin-bottom:5px}.product-cycle strong{display:block;font-size:12px;line-height:1.45;font-weight:500;max-width:105px}
.current-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}.current-work-grid section{padding:23px 19px 0 0}.current-work-grid section+section{border-left:1px solid var(--line);padding-left:19px}.work-number{display:block;font:400 18px/1 var(--serif);color:var(--accent);margin-bottom:12px}.current-work-grid h4{font:500 15px/1.5 var(--sans);margin:0 0 8px}.current-work-grid p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}
html[lang=zh-CN] .current-work-heading h3{letter-spacing:0;font-size:28px}
@media(max-width:760px){.current-work{padding:23px 20px;margin-bottom:34px}.current-work-heading{display:block}.current-work-heading .stage{display:inline-block;margin-top:13px}.product-cycle{grid-template-columns:1fr;margin-top:24px}.product-cycle li{display:grid;grid-template-columns:35px 1fr;padding:10px 0;border-bottom:1px solid var(--line)}.product-cycle li:not(:last-child):after{display:none}.product-cycle span{margin:0}.product-cycle strong{max-width:none}.current-work-grid{grid-template-columns:1fr}.current-work-grid section{padding:20px 0}.current-work-grid section+section{border-left:0;border-top:1px solid var(--line);padding-left:0}.current-work-heading h3{font-size:26px}}

/* Original portfolio media and supporting work */
.aisop-demo{margin:28px 0 23px;max-width:690px}.aisop-demo video{aspect-ratio:16/9;object-fit:contain}.aisop-demo figcaption span{max-width:590px}
.portfolio-details{border-top:1px solid var(--line);margin-top:28px;padding-top:19px}.portfolio-details>summary{display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;list-style:none;color:var(--accent);font-size:15px;padding:4px 0}.portfolio-details>summary::-webkit-details-marker{display:none}.portfolio-details[open]>summary>.detail-icon{transform:rotate(45deg)}.portfolio-details>summary strong{display:block;font-weight:500;color:var(--ink);font-size:18px}.portfolio-details>summary small{display:block;font-size:13px;color:var(--muted);margin-top:3px}.expanded-content{padding:22px 0 2px;color:var(--muted);font-size:15px}.expanded-content>p{margin-bottom:20px}.skills-list{margin:0}.skills-list>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;border-top:1px solid var(--line);padding:12px 0}.skills-list dt{color:var(--ink);font-size:14px}.skills-list dd{margin:0;font-size:14px}.project video,.archive-project video{display:block;width:100%;height:auto;background:#101820;aspect-ratio:640/368;object-fit:contain;border:1px solid var(--line)}.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.media-grid figure,.archive-project>figure,.field-photo,.student-grid figure{margin:0;min-width:0}figcaption{color:var(--muted);font-size:13px;line-height:1.6;margin-top:10px}figcaption strong{display:block;font-size:14px;font-weight:500;color:var(--ink)}figcaption span{display:block;font-size:12px;margin-top:3px}.field-photo{max-width:440px;margin-top:20px}.field-photo img{max-height:390px;width:100%;object-fit:contain;background:var(--pale)}.engineering-archive{border-top:1px solid var(--line);margin-top:31px}.archive-intro{font-size:14px}.archive-project{border-top:1px solid var(--line);padding-top:25px;margin-top:26px}.archive-project:first-of-type{padding-top:0;border:0;margin-top:0}.expanded-content h4{font:400 21px/1.4 var(--serif);color:var(--ink);margin:0 0 12px}.archive-project p{line-height:1.8}.reconstruction-media img,.reconstruction-media video{width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:var(--pale)}.portrait-demos{max-width:510px;margin-left:auto;margin-right:auto;gap:24px}.portrait-demos video{aspect-ratio:9/16;max-height:420px}.publication-list{padding-left:22px;margin:0 0 29px}.publication-list li{padding-left:6px;margin-bottom:23px}.publication-list h5{font-size:16px;font-weight:500;line-height:1.7;color:var(--ink);margin:0 0 6px}.publication-list p{font-size:14px;line-height:1.7;margin:0 0 6px}.publication-list a{font-size:13px;color:var(--accent);text-decoration:underline;text-underline-offset:3px}.recognition-list,.credential-list{list-style:none;padding:0;margin:0 0 30px}.recognition-list li,.credential-list li{border-top:1px solid var(--line);padding:13px 0}.recognition-list .date{display:block;margin:0 0 4px}.recognition-list strong,.credential-list strong{display:block;font-size:15px;font-weight:500;color:var(--ink)}.recognition-list p,.credential-list span{display:block;font-size:14px;line-height:1.7;margin:6px 0 0}.credential-list{margin-bottom:0}.student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}.student-grid img{display:block;width:100%;height:185px;object-fit:contain;background:var(--pale);border:1px solid var(--line)}.student-grid a{display:block}.student-grid a:hover img{border-color:#829dbc}.profile-links{display:flex;flex-wrap:wrap;gap:10px 24px;color:var(--accent);font-size:14px;margin:-8px 0 28px}.profile-links a{overflow-wrap:anywhere}
@media(max-width:760px){.media-grid{gap:14px}.skills-list>div{grid-template-columns:1fr;gap:3px}.expanded-content h4{font-size:21px}.profile-links{display:grid;gap:10px}.portrait-demos{gap:18px}.student-grid{gap:22px 14px}.student-grid img{height:160px}}
@media(max-width:480px){.sports-demos,.reconstruction-media{grid-template-columns:1fr}.reconstruction-media{max-width:350px}.student-grid{grid-template-columns:1fr}.student-grid img{height:auto;max-height:280px}.portrait-demos{gap:12px}.portrait-demos figcaption{font-size:12px}}
@media print{.portfolio-details,.sports-demos,.profile-links{display:none}}
