@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--paper:#f6f5f1;--ink:#172b29;--muted:#5c6c67;--teal:#087d75;--line:#d8ded7;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:hover{color:var(--teal)}a:focus-visible,summary:focus-visible{outline:2px solid var(--teal);outline-offset:6px}img,svg{max-width:100%}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.15;font-weight:500;letter-spacing:-.045em}h2{font-size:clamp(32px,3.5vw,48px)}h3{font-size:24px}p{color:var(--muted)}em{font-family:var(--serif);font-weight:400}::selection{background:#bde8d8}.wrap{width:min(1240px,calc(100% - 96px));margin-inline:auto}.header{width:min(1344px,calc(100% - 96px));margin:auto;min-height:102px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:32px}.brand{font-size:39px;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-4px;line-height:1}.brand-dot{color:var(--teal)}nav{display:flex;gap:34px;font-size:14px}nav a{position:relative;padding:8px 0}nav a:after{content:'';position:absolute;bottom:0;left:0;right:100%;height:1px;background:var(--teal);transition:right .25s}nav a:hover:after{right:0}.contact-nav{font-size:14px;display:flex;align-items:center;gap:32px}.contact-nav span{font-size:22px}.hero{display:grid;grid-template-columns:1.06fr 1fr;gap:44px;padding-block:78px 65px;align-items:center}.eyebrow,.section-marker,.column-label{font-size:10px;font-weight:650;letter-spacing:1.8px;line-height:1.5}.eyebrow{color:var(--teal)}.hero .eyebrow{display:flex;gap:10px;align-items:center;letter-spacing:1.3px;font-size:10px}.status-dot{width:6px;height:6px;background:var(--teal);border-radius:50%;display:inline-block;box-shadow:0 0 0 4px #087d750d;flex-shrink:0}h1{font-size:clamp(46px,5.6vw,79px);line-height:1.08;letter-spacing:-.065em;margin-top:29px;white-space:nowrap}.surname{font-weight:550}.accent{color:var(--teal)}.chinese{font-size:12px;margin-top:18px;letter-spacing:1px}.chinese span{margin:0 9px;color:#a5aea7}.hero-statement{font-size:26px;line-height:1.37;color:var(--ink);margin-top:32px;letter-spacing:-.7px}.hero-statement em{font-size:29px;color:var(--teal)}.hero-description{max-width:420px;font-size:14px;margin-top:18px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:30px}.button{font-size:12px;padding:16px 20px;display:inline-flex;gap:28px;align-items:center;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--ink);color:#fff}.primary:hover{background:var(--teal);color:#fff}.text-link{font-size:12px;border-bottom:1px solid #a5b1a7;padding-bottom:4px}.signal-art{position:relative;align-self:stretch;min-height:520px;background:radial-gradient(ellipse at 65% 46%,#cfddd44a,transparent 65%);overflow:hidden}.art-top,.art-bottom{position:absolute;left:16px;right:8px;display:flex;justify-content:space-between;align-items:center;z-index:1}.art-top{top:0;font-size:8px;letter-spacing:1px;color:#697d73}.art-bottom{bottom:6px;font-size:10px;line-height:1.65;color:#697d73}.signal-symbol{font-size:55px;color:var(--teal);line-height:1}.waves{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.art-label{position:absolute;font-size:8px;letter-spacing:1.4px;color:#4f7168;display:flex;align-items:center;gap:6px}.label-optical{top:28%;left:3%}.label-radio{bottom:25%;right:1%}.tiny-square{width:4px;height:4px;background:var(--teal)}#wave-lines{transform-origin:center;animation:breathe 14s ease-in-out infinite}@keyframes breathe{0%,100%{transform:rotate(-4deg) scale(.97)}50%{transform:rotate(4deg) scale(1.03)}}.topic-strip{border-block:1px solid var(--line);padding:23px 0}.topic-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:1.4px;color:#51665b}.topic-strip span[aria-hidden]{font-size:18px;color:#8d9f8b}.section{padding-block:94px}.about{display:grid;grid-template-columns:115px 1fr 280px;gap:48px}.section-marker{color:var(--teal);padding-top:9px}.vertical-line{display:block;width:1px;height:72px;background:#b4c5b9;margin-top:25px}.about-body h2{margin-bottom:24px}.about-body p{font-size:14px;margin-top:16px;line-height:1.85}.about-body .lead{font-size:18px;color:#394d43;line-height:1.7}.about-body p a{border-bottom:1px solid #bac7bc}.social-links{display:flex;gap:25px;margin-top:27px;font-size:12px;color:var(--teal)}.portrait{padding-top:7px}.portrait img{width:100%;height:330px;object-fit:cover;object-position:50% 35%;display:block;filter:saturate(.75)}.portrait figcaption{display:flex;flex-direction:column;font-size:11px;gap:2px;margin-top:12px}.portrait figcaption span:last-child{font-size:8px;letter-spacing:1.4px;color:var(--muted)}.research-section{background:#eaece5}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:42px}.section-head h2{margin-top:15px}.section-head>p{font-size:12px;line-height:1.8}.featured-project{display:grid;grid-template-columns:1fr 1fr;border:1px solid #cbd3c6;background:var(--paper)}.project-copy{padding:45px 48px}.project-copy h3{font-size:39px;line-height:1.13;margin-top:22px}.project-copy h3 em{color:var(--teal)}.project-copy>p:not(.eyebrow){font-size:13px;max-width:370px;line-height:1.85;margin-top:23px}.project-copy .button{margin-top:25px}.dataset-visual{background:#173c36;color:#d8e7d9;padding:32px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.visual-heading{display:flex;justify-content:space-between;align-items:center;font-size:13px;letter-spacing:.3px}.live-badge{font-size:8px;border:1px solid #73998d;padding:4px 8px;letter-spacing:1.6px;color:#b4dfc6}.dataset-visual svg{width:100%;margin-top:20px}.figure-note{font-size:8px;text-align:center;color:#a2c4b5;letter-spacing:.5px}.data-stats{display:grid;grid-template-columns:1fr 1.3fr .8fr;gap:18px;border-top:1px solid #42645a;margin-top:28px;padding-top:20px}.data-stats strong{display:block;font-family:Manrope,sans-serif;font-size:27px;font-weight:400;letter-spacing:-1px}.data-stats strong span{font-size:12px}.data-stats div>span{display:block;font-size:8px;color:#b6cbbc;margin-top:4px;line-height:1.5}.research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:47px}.project-number{font-family:var(--serif);color:#749083;font-size:17px}.research-grid h3{font-size:22px;margin:16px 0}.research-grid p{font-size:13px;line-height:1.85}.project-tag{display:block;font-size:8px;letter-spacing:1px;margin-top:24px;color:#566f60}.publication{display:grid;grid-template-columns:180px 1fr;gap:30px;padding:32px 0;border-top:1px solid var(--line)}.publication:last-child{border-bottom:1px solid var(--line)}.pub-meta{display:flex;flex-direction:column;gap:10px}.pub-meta span:first-child{color:var(--teal);font-size:13px;font-weight:600}.pub-meta span:last-child{font-size:9px;letter-spacing:1px;color:var(--muted)}.publication h3{font-size:23px;line-height:1.45;letter-spacing:-.7px;max-width:850px}.publication h3 span{color:var(--teal);white-space:nowrap}.publication p{font-size:12px;margin:13px 0 8px}.small-link{font-size:11px;color:var(--teal)}.news-section{background:#eceee7;border-block:1px solid var(--line);padding:54px 0}.news-layout{display:grid;grid-template-columns:1fr 1.7fr;gap:65px}.news-layout h2{font-size:34px;margin-top:14px}.news-list>div,.news-list details>div{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:15px 0;border-bottom:1px solid #d8ded3}.news-list>div:first-child{padding-top:0}.news-list time{font-size:9px;letter-spacing:1px;padding-top:4px;color:var(--teal)}.news-list p{font-size:13px}.news-list em{font:inherit;font-style:italic}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;padding:16px 0;font-size:12px;color:var(--teal)}summary::-webkit-details-marker{display:none}summary span{font-size:17px;line-height:1}details[open]>summary span{transform:rotate(45deg)}.experience-columns{display:grid;grid-template-columns:1fr 1fr;gap:100px}.column-label{letter-spacing:1.5px;color:var(--teal);margin:0 0 30px;font-family:'DM Sans',sans-serif}.timeline-item{position:relative;padding:0 0 33px 26px;border-left:1px solid var(--line)}.timeline-item:before{content:'';position:absolute;top:5px;left:-4px;width:7px;height:7px;border:1px solid #80998c;background:var(--paper);border-radius:50%}.timeline-item>span{font-size:9px;color:var(--muted);letter-spacing:1px}.timeline-item h3{font-size:21px;margin-top:10px;letter-spacing:-.7px}.timeline-item p{font-size:12px;line-height:1.85;margin-top:9px}.timeline-item .role{font-size:12px;color:var(--ink);margin-top:7px}.education-card{background:#eaece5;padding:26px 30px}.education-card h3{font-size:23px;margin:16px 0;line-height:1.35}.education-card p{font-size:12px;line-height:1.9}.education-card details{border-top:1px solid #cdd6c9;margin-top:20px}.education-card details p{padding:3px 0 10px}.teaching{margin-top:38px}.teaching .column-label{margin-bottom:20px}.teaching h4{font-weight:500;font-size:14px;margin-top:20px}.teaching h4 span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.teaching p{font-size:12px;line-height:1.9;margin-top:6px}.teaching .service-note{margin-top:20px}.awards{margin-top:30px;padding-top:25px;border-top:1px solid var(--line)}.awards .column-label{margin-bottom:20px}.awards p{font-size:12px;margin-top:10px;display:flex;gap:20px}.awards p span{font-size:10px;color:var(--teal);padding-top:2px}.extra-experience{margin-top:22px;border-top:1px solid var(--line)}.extra-experience p{font-size:12px;margin:10px 0 16px}.contact-section{background:#183a33;color:#e9eee2;padding:70px 0 55px}.contact-section .eyebrow{color:#a9c9b2}.contact-section h2{font-size:clamp(40px,5vw,66px);margin-top:26px;letter-spacing:-2.5px;line-height:1.12}.contact-section h2 em{color:#bfdbb4}.contact-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;border-top:1px solid #446052;padding-top:30px;margin-top:40px}.contact-bottom p{color:#c1cebf;font-size:12px;line-height:1.9}.email-link{font-size:clamp(14px,1.8vw,23px);letter-spacing:-.5px;border-bottom:1px solid #78927c;padding-bottom:8px}.email-link span{margin-left:20px}.email-link:hover{color:#c4e4b6}footer{min-height:112px;display:flex;align-items:center;gap:30px;font-size:10px}footer .brand{font-size:30px}footer p{margin-right:auto}footer>div{display:flex;gap:22px}.back-top{margin-left:35px}.skip{position:absolute;top:-100px;left:20px;z-index:10;background:white;padding:12px}.skip:focus{top:15px}
@media(min-width:1500px){.hero{padding-block:95px}.signal-art{min-height:550px}}@media(max-width:1100px){.wrap,.header{width:calc(100% - 56px)}.hero{gap:20px}.hero .eyebrow{font-size:8px}.about{grid-template-columns:80px 1fr 220px;gap:25px}.portrait img{height:290px}.hero-statement{font-size:23px}.hero-statement em{font-size:26px}.signal-art{min-height:490px}.project-copy{padding:34px}.project-copy h3{font-size:34px}.experience-columns{gap:60px}.art-top{font-size:7px}.art-top span:last-child{display:none}}
@media(max-width:780px){html{scroll-padding-top:24px}.wrap,.header{width:calc(100% - 40px)}.header{min-height:84px;gap:20px;flex-wrap:wrap;padding-block:18px}.brand{font-size:33px}.header nav{order:3;width:100%;justify-content:space-between;gap:14px;font-size:12px}.contact-nav{font-size:12px;gap:15px}.hero{grid-template-columns:1fr;padding-top:42px;padding-bottom:25px;gap:25px}.hero .eyebrow{font-size:9px;letter-spacing:1px}h1{font-size:clamp(48px,10vw,72px);margin-top:22px}.hero-statement{font-size:24px;margin-top:25px}.hero-statement em{font-size:28px}.hero-description{max-width:480px}.hero-actions{gap:24px}.signal-art{min-height:330px;max-width:560px;width:100%;margin:auto}.waves{height:360px;top:-15px}.art-bottom{bottom:0}.label-optical{top:33%;left:5%}.label-radio{bottom:30%;right:5%}.art-top span:last-child{display:block}.topic-strip{padding-block:18px}.topic-strip .wrap{flex-wrap:wrap;justify-content:center;font-size:8px;gap:11px 20px}.topic-strip span[aria-hidden]{display:none}.section{padding-block:60px}.about{grid-template-columns:1fr 170px;gap:24px}.section-marker{grid-column:1/-1}.vertical-line{display:none}.about-body h2{font-size:32px}.about-body .lead{font-size:16px}.about-body p{font-size:13px}.portrait img{height:230px}.section-head{gap:20px;align-items:flex-start;flex-direction:column;margin-bottom:30px}.section-head>p br{display:none}.featured-project{grid-template-columns:1fr}.project-copy{padding:30px}.project-copy h3{font-size:38px}.project-copy>p:not(.eyebrow){max-width:none}.dataset-visual{padding:26px}.dataset-visual svg{max-height:250px}.data-stats strong{font-size:29px}.research-grid{gap:22px;grid-template-columns:1fr;margin-top:30px}.research-grid article{padding-bottom:24px;border-bottom:1px solid #ccd5c7}.research-grid article:last-child{border:0;padding-bottom:0}.research-grid h3{margin:8px 0 13px}.research-grid .project-tag{margin-top:15px}.publication{grid-template-columns:1fr;gap:15px}.pub-meta{flex-direction:row;align-items:center;gap:18px}.publication h3{font-size:21px}.news-layout{grid-template-columns:1fr;gap:30px}.news-list>div,.news-list details>div{grid-template-columns:75px 1fr;gap:10px}.experience-columns{grid-template-columns:1fr;gap:25px}.contact-section{padding:50px 0 40px}.contact-bottom{flex-direction:column;align-items:flex-start;gap:22px}.email-link{font-size:19px}.contact-bottom p br{display:none}footer{flex-wrap:wrap;padding-block:27px;gap:20px}footer p{font-size:9px}footer>div{order:3;width:100%;font-size:11px}.back-top{margin-left:0;font-size:9px}}
@media(max-width:480px){.about{grid-template-columns:1fr}.portrait{display:grid;grid-template-columns:100px 1fr;gap:20px;align-items:end}.portrait img{height:125px}.portrait figcaption{padding-bottom:10px}.hero-actions .button{gap:14px;padding:14px 16px}.hero .eyebrow{font-size:8px}.social-links{gap:22px}.data-stats{gap:12px}.data-stats strong{font-size:24px}.contact-section h2{letter-spacing:-1.5px}.email-link{font-size:16px}.email-link span{margin-left:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}#wave-lines{animation:none}*{transition:none!important}}@media print{.header,.signal-art,.topic-strip,.contact-section,footer,.hero-actions{display:none}.wrap{width:100%}.section{padding:25px 0}.hero{display:block;padding:0}h1{font-size:40px}.hero-statement{margin-top:15px}.about{grid-template-columns:1fr 180px}.section-marker{display:none}.research-section,.news-section{background:white}.featured-project,.publication,.timeline-item{break-inside:avoid}body{font-size:11px}.experience-columns{gap:30px}}

.compact-experience{border-top:1px solid var(--line)}.background-copy{font-size:14px;line-height:1.9}.compact-experience .teaching{margin-top:24px}.compact-experience .teaching strong{font-weight:500;color:var(--ink)}
