:root{--paper:#f8f7f2;--ink:#183e35;--text:#34433c;--muted:#616b64;--line:#dcded4;--soft:#eef0e8;--white:#fffefa;--accent:#8b6743;--serif:Georgia,"Noto Serif SC","Source Han Serif SC","Songti SC",SimSun,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.8;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button:not([hidden]),summary{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:#d6e2d6;color:var(--ink)}p,h1,h2,h3,h4,figure{margin:0}h1,h2,h3,h4{color:var(--ink)}h1,h2{font-family:var(--serif);font-weight:400}h1{font-size:clamp(40px,4.4vw,62px);line-height:1.3;letter-spacing:-.035em}h2{font-size:clamp(30px,3vw,42px);line-height:1.4;letter-spacing:-.025em}h3{font-size:19px;font-weight:600;line-height:1.55}h4{font-size:14px;line-height:1.65}.container{width:min(1180px,calc(100% - 96px));margin-inline:auto}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.16em;line-height:1.8;color:var(--accent)}.section{padding-block:94px}.section-label{margin-bottom:22px}.section-intro{margin-top:19px;color:var(--muted)}.section-heading{display:grid;grid-template-columns:1.1fr 1fr;align-items:end;gap:90px;margin-bottom:40px}.section-heading>p{max-width:440px;color:var(--muted)}.skip-link{position:fixed;top:-90px;left:20px;padding:10px 20px;background:var(--ink);color:white;z-index:100}.skip-link:focus{top:8px}
.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:rgba(248,247,242,.96);backdrop-filter:blur(12px)}.header-inner{height:84px;display:flex;align-items:center;gap:36px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;line-height:1.3;font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--ink)}.brand-mark{font-family:Georgia,serif;font-size:31px;letter-spacing:-.1em;border:1px solid var(--ink);width:45px;height:45px;display:grid;place-content:center;padding-right:4px}.brand-sub{display:block;font-size:10px;letter-spacing:.19em;font-weight:400;margin-top:4px}.navigation{display:flex;gap:27px;align-items:center;margin-left:auto;font-size:12px;white-space:nowrap}.navigation a{position:relative;padding-block:14px}.navigation a:after{content:"";position:absolute;bottom:9px;height:1px;left:0;right:100%;background:var(--ink);transition:right .2s}.navigation a:hover:after,.navigation a[aria-current]:after{right:0}.header-actions{display:flex;gap:14px;align-items:center}.language-switch{border:1px solid var(--line);padding:5px 13px;font-size:12px;white-space:nowrap}.language-switch:hover{border-color:var(--ink)}.menu-toggle{display:none;background:none;border:0;font-size:12px}
.hero{padding-top:65px;padding-bottom:48px;display:grid;grid-template-columns:1.4fr 1fr;gap:76px;align-items:center}.availability{display:flex;align-items:flex-start;gap:9px;font-size:11px;color:var(--ink);margin-bottom:38px;letter-spacing:.02em}.availability>span{width:6px;height:6px;background:#537952;border-radius:50%;flex-shrink:0;margin-top:7px}.hero-eyebrow{margin-bottom:18px}.hero-intro{font-size:16px;line-height:1.95;max-width:510px;margin-top:26px;color:var(--muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:12px 19px;min-height:48px;font-size:12px;border:1px solid var(--ink);transition:background .2s,color .2s}.button-primary{background:var(--ink);color:var(--paper)}.button-primary:hover{background:#285548}.button-outline:hover{background:var(--soft)}.hero-location{font-size:11px;color:var(--muted);margin-top:23px}.portrait{max-width:380px;justify-self:end;position:relative;width:100%}.portrait:before{content:"";position:absolute;inset:17px -17px 39px 17px;border:1px solid #cbd3c3;z-index:-1}.portrait-frame{position:relative;background:#cbd0d7;overflow:hidden}.portrait img{display:block;width:100%;height:auto;aspect-ratio:380/425;object-fit:cover;object-position:center 24%;filter:saturate(.82)}.portrait-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(16,29,30,.88));padding:38px 23px 18px;color:white}.portrait-label strong{display:block;font-family:var(--serif);font-size:25px;font-weight:400}.portrait-label span{font-size:10px;letter-spacing:.09em}.portrait figcaption{font-size:11px;font-style:italic;color:var(--muted);padding-top:18px;letter-spacing:.02em}.portrait figcaption span{color:var(--accent);margin-right:6px}.stats{display:grid;grid-template-columns:1fr 1.4fr 1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:28px}.stat{padding-inline:28px;border-left:1px solid var(--line)}.stat:first-child{padding-left:0;border-left:0}.stat:last-child{padding-right:0}.stat strong{display:block;font-family:Georgia,var(--sans);font-size:30px;font-weight:400;line-height:1.4;letter-spacing:-.035em;color:var(--ink)}.stat span{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:96px}.about-copy p{margin-bottom:16px;line-height:1.9}.about-copy p:last-child{margin-bottom:0}.capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:45px}.capabilities article{border-top:1px solid var(--line);padding-top:22px}.mini-index{font-family:Georgia,serif;font-size:13px;color:var(--accent)}.capabilities h3{font-size:17px;margin-block:10px}.capabilities p{font-size:13px;color:var(--muted);line-height:1.9}.impact-section{background:var(--soft)}.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}.case{background:var(--white);border:1px solid #dce0d4;padding:27px 24px 0}.case-top{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:22px}.case-top .eyebrow{font-size:9px;letter-spacing:.09em}.case-number{font-family:Georgia,serif;font-size:19px;color:#a8b4a4}.case h3{font-family:var(--serif);font-size:24px;font-weight:400;line-height:1.45;min-height:70px}.case-company{font-size:10px;color:var(--muted);margin-top:15px;min-height:36px;line-height:1.7}.case dl{margin:25px 0 0}.case dt{font-size:10px;letter-spacing:.05em;font-weight:600;color:var(--ink);margin-top:17px}.case dd{font-size:12px;line-height:1.9;margin:6px 0 0;color:var(--muted)}.case-outcome{display:flex;align-items:baseline;gap:13px;flex-wrap:wrap;padding-block:24px 21px;margin-top:23px;border-top:1px solid var(--line)}.case-outcome strong{font:30px Georgia,serif;color:var(--ink)}.case-outcome span{font-size:10px;color:var(--muted)}details{border-top:1px solid var(--line)}summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:50px;font-size:11px;color:var(--ink)}summary::-webkit-details-marker{display:none}summary>span{font-size:19px;font-weight:300;transition:transform .2s}details[open] summary>span{transform:rotate(45deg)}.detail-body{padding-bottom:22px;font-size:12px;color:var(--muted)}.detail-body h4{margin-bottom:9px}
.experience-layout{display:grid;grid-template-columns:1.75fr 1fr;gap:80px;margin-top:46px;align-items:start}.job{display:grid;grid-template-columns:139px 1fr;gap:24px;border-top:1px solid var(--line);padding-block:26px}.job-date{font-size:10px;color:var(--muted);padding-top:4px}.job h3{font-size:18px}.job-role{font-size:12px;color:var(--ink);margin-top:5px}.job-desc{font-size:13px;color:var(--muted);margin-top:11px;line-height:1.9}.job-tag{display:inline-block;font-size:9px;color:var(--accent);margin-top:12px;letter-spacing:.04em}.credentials{background:var(--soft);padding:30px}.credentials h3{font-size:16px}.education{margin-top:26px}.education>div{margin-bottom:20px}.education p{font-size:11px;color:var(--muted);margin-top:4px}.certifications{padding:22px 0 0;margin:24px 0 0;border-top:1px solid #d7dccc;list-style:none;display:flex;flex-wrap:wrap;gap:9px}.certifications li{font-size:10px;background:var(--paper);border:1px solid var(--line);padding:5px 9px;line-height:1.6}.credentials-mark{display:block;font:italic 34px/1.2 Georgia,serif;color:#748772;margin-top:38px}
.work-section{border-top:1px solid var(--line)}.projects{border-bottom:1px solid var(--line)}.project{display:grid;grid-template-columns:60px 1fr;gap:24px;border-top:1px solid var(--line);padding-block:25px}.project-index{font:22px Georgia,serif;color:var(--accent);padding-top:12px}.project>div{display:grid;grid-template-columns:1fr 1.1fr;gap:0 50px}.project-stage{font-size:9px;color:var(--accent);letter-spacing:.04em;grid-column:1}.project h3{font-size:18px;grid-column:1;margin-top:6px}.project>div>p{grid-column:2;grid-row:1/3;font-size:13px;align-self:center;color:var(--muted);line-height:1.85}.project details{grid-column:1/3;border:0;margin-top:5px}.project summary{justify-content:flex-start;min-height:35px;font-size:10px}.project .detail-body{max-width:830px;padding-top:8px;padding-bottom:0}.research{display:grid;grid-template-columns:220px 1fr;gap:55px;background:#e8ecdf;margin-top:52px;padding:42px 46px;align-items:center}.research h3{font-family:var(--serif);font-size:26px;font-weight:400;line-height:1.45;margin-top:12px}.research p:not(.eyebrow){font-size:13px;color:var(--muted);margin-top:18px;max-width:690px;line-height:1.95}.research-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:21px}.research-tags span{font-size:9px;border-bottom:1px solid #aab89e;color:#55664e;padding-bottom:3px;letter-spacing:.05em}.research-symbol{position:relative;width:200px;height:170px;display:grid;place-content:center}.research-symbol>span{font-size:9px;letter-spacing:.17em;color:#62795c}.orbit{position:absolute;width:153px;height:153px;border:1px solid #90a287;border-radius:50%;top:8px}.orbit-a{left:0}.orbit-b{left:47px}.orbit-c{left:24px;top:0;border-color:#a5b59c}
.contact-section{background:var(--ink);color:#dce4d9}.contact-section h2{color:var(--paper)}.contact-section .eyebrow{color:#c1c8a5}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:100px;align-items:center}.contact-copy{font-size:14px;line-height:1.95;margin-top:24px;max-width:550px;color:#d0dbd0}.contact-note{font-size:11px;color:#b5c7b9;margin-top:27px}.email-address{font:22px/1.5 Georgia,serif;color:var(--paper);display:flex;gap:18px;justify-content:space-between;border-bottom:1px solid #567262;padding-bottom:18px}.email-address span{font-family:var(--sans);font-size:21px}.contact-actions{display:flex;gap:23px;margin-top:17px;font-size:11px}.contact-actions button{border:0;padding:0;background:none;text-decoration:underline;text-underline-offset:4px;font-size:11px}.copy-status{font-size:10px;min-height:22px;color:#d0dbd0;margin-top:8px}.social-links{display:flex;gap:24px;font-size:12px;padding-block:16px}.social-links span{margin-left:10px}.resume-downloads{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-top:17px;border-top:1px solid #567262;padding-top:23px}.resume-downloads p{grid-column:1/3;font-size:10px;color:#b5c7b9;margin-bottom:6px}.resume-downloads a{font-size:11px;display:flex;gap:15px;align-items:center;justify-content:space-between}.contact-panel a:hover{color:#f0ddb7}.footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:26px;font-size:10px;color:var(--muted)}.footer>div{display:flex;gap:25px}
html[lang=en] h1{font-size:clamp(40px,4.6vw,63px);line-height:1.12;letter-spacing:-.045em}html[lang=en] .hero-intro{font-size:16px;line-height:1.8}html[lang=en] .case h3{font-size:25px;min-height:110px}html[lang=en] .case-company{min-height:36px}html[lang=en] .availability{font-size:10px}html[lang=en] .navigation{gap:23px;font-size:11px}
@media(min-width:1450px){.hero{padding-top:80px;padding-bottom:62px}.hero-intro{font-size:17px}}
@media(max-width:1050px){.container{width:calc(100% - 64px)}.header-inner{gap:22px}.navigation{gap:18px}.hero{gap:40px}.hero-eyebrow{font-size:9px;letter-spacing:.11em}.availability{margin-bottom:30px}.about-grid{gap:45px}.section-heading{gap:45px}.experience-layout{gap:36px}.job{grid-template-columns:113px 1fr;gap:14px}.cases{gap:14px}.case{padding:22px 18px 0}.case h3{font-size:21px}.contact-grid{gap:45px}.stat{padding-inline:18px}.stat strong{font-size:26px}html[lang=en] .navigation{gap:16px;font-size:10px}}
@media(max-width:800px){.container{width:calc(100% - 44px)}.header-inner{height:70px;gap:18px}.navigation{display:none;position:absolute;top:70px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:14px 22px;margin:0;flex-direction:column;align-items:stretch;gap:0;font-size:14px!important}.navigation.is-open{display:flex}.navigation a{padding-block:12px}.navigation a:after{display:none}.header-actions{margin-left:auto}.menu-toggle{display:flex;gap:9px;align-items:center;padding:7px 0 7px 9px}.hero{padding-top:40px;gap:28px}.hero h1{font-size:40px}.hero-intro{font-size:14px}.hero-eyebrow{font-size:8px}.hero-actions{gap:9px}.button{font-size:10px;padding:11px 13px;gap:10px}.portrait figcaption{font-size:9px}.hero-location{font-size:10px}.section{padding-block:66px}.about-grid{grid-template-columns:1fr;gap:26px}.about-copy{max-width:680px}.capabilities{gap:22px}.section-heading{grid-template-columns:1fr;gap:20px}.section-heading>p{max-width:680px}.cases{grid-template-columns:1fr}.case{padding:27px 25px 0}.case h3,html[lang=en] .case h3{min-height:0;font-size:26px}.case-company,html[lang=en] .case-company{min-height:0;font-size:11px}.case dd{font-size:13px}.case dl{margin-top:16px}.experience-layout{grid-template-columns:1fr;gap:30px}.credentials-mark{display:none}.education{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.education>div{margin:0}.job{grid-template-columns:140px 1fr;gap:25px}.research{grid-template-columns:150px 1fr;gap:22px;padding:30px}.research-symbol{transform:scale(.72);transform-origin:left center;width:145px}.research h3{font-size:23px}.contact-grid{grid-template-columns:1fr;gap:35px}.contact-panel{max-width:560px}.footer{align-items:flex-start}.footer>div{gap:10px;flex-direction:column;text-align:right}html[lang=en] .hero h1{font-size:41px}}
@media(max-width:580px){html{scroll-padding-top:84px}.brand-mark{width:38px;height:38px;font-size:28px}.brand{font-size:10px;gap:9px}.hero{grid-template-columns:1fr;padding-top:33px;padding-bottom:34px;gap:37px}.hero .availability{font-size:10px;margin-bottom:26px}.hero h1{font-size:43px;line-height:1.35}.hero-eyebrow{font-size:8px;letter-spacing:.12em}.hero-intro{font-size:14px;line-height:1.95;max-width:450px;margin-top:18px}.hero-actions{margin-top:23px;gap:10px}.button{font-size:11px;padding:11px 16px;gap:17px}.hero-location{margin-top:18px}.portrait{max-width:none;width:100%;display:grid;grid-template-columns:148px 1fr;gap:21px;align-items:end;justify-self:start}.portrait:before{display:none}.portrait img{aspect-ratio:148/175;object-position:center 25%}.portrait-label{padding:23px 10px 8px}.portrait-label strong{font-size:15px}.portrait-label span{display:none}.portrait figcaption{font-size:11px;max-width:150px;line-height:1.9;font-style:normal;border-top:1px solid var(--line);padding-top:17px;margin-bottom:13px}.stats{grid-template-columns:1fr 1.35fr;gap:25px 0;padding-block:23px}.stat{padding-inline:17px}.stat:nth-child(3){border-left:0;padding-left:0}.stat:nth-child(2){padding-right:0}.stat strong{font-size:26px}.stat span{font-size:10px;line-height:1.7}.stat:nth-child(2) strong{font-size:24px}.section{padding-block:52px}h2{font-size:31px}.section-label{margin-bottom:17px}.about-copy{font-size:13px;line-height:2}.capabilities{grid-template-columns:1fr;gap:24px;margin-top:28px}.capabilities article{display:grid;grid-template-columns:30px 1fr;gap:4px 8px;padding-top:17px}.capabilities h3{font-size:16px;margin:0}.capabilities p{grid-column:2}.mini-index{padding-top:4px}.section-heading{margin-bottom:27px;gap:17px}.section-heading>p{font-size:13px}.case{padding:23px 21px 0}.case h3,html[lang=en] .case h3{font-size:25px}.case-top{margin-bottom:17px}.case-outcome{padding-block:18px}.job{grid-template-columns:1fr;gap:7px;padding-block:22px}.job-date{font-size:10px}.job h3{font-size:18px}.job-role{font-size:11px}.job-desc{font-size:12px}.section-intro{font-size:12px;line-height:1.9}.experience-layout{margin-top:26px}.credentials{padding:25px}.education{grid-template-columns:1fr;gap:17px}.education h4{font-size:13px}.project{grid-template-columns:30px 1fr;gap:14px;padding-block:22px}.project>div{display:block}.project-index{font-size:18px;padding-top:4px}.project h3{font-size:17px;margin-block:8px}.project>div>p{font-size:12px;line-height:1.95}.project details{margin-top:9px}.project summary{font-size:11px}.research{display:block;padding:28px 23px;margin-top:31px}.research-symbol{display:none}.research h3{font-size:25px}.research p:not(.eyebrow){font-size:12px}.research-tags{gap:10px}.research-tags span{font-size:9px}.contact-copy{font-size:13px}.contact-note{font-size:10px}.email-address{font-size:21px;gap:10px}.resume-downloads{gap:14px 18px}.footer{font-size:9px;line-height:1.8;gap:15px}.footer p{max-width:190px}.footer>div{gap:5px;white-space:nowrap}html[lang=en] .hero h1{font-size:44px;line-height:1.15}html[lang=en] .hero-intro{font-size:14px}html[lang=en] .portrait figcaption{font-size:12px}html[lang=en] .case h3{font-size:27px}html[lang=en] .case-top .eyebrow{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.site-header,.hero-actions,.contact-actions,.social-links,.resume-downloads,.footer,.skip-link{display:none!important}.container{width:100%}.section{padding-block:24px}.hero{padding-top:0;gap:30px}.hero h1,html[lang=en] .hero h1{font-size:34px}.portrait{max-width:180px}.stats{padding-block:15px}.stat strong{font-size:23px}.about-grid,.section-heading{gap:25px}.cases{display:block}.case{break-inside:avoid;margin-bottom:15px}.case h3,html[lang=en] .case h3{min-height:0}.case-company{min-height:0}.case-outcome{padding-block:12px}.experience-layout{grid-template-columns:1.7fr 1fr;gap:20px}.job{break-inside:avoid;padding-block:14px}.job-date{font-size:9px}.credentials{break-inside:avoid}.project,.research{break-inside:avoid}.contact-section{background:white;color:var(--text)}.contact-section h2,.contact-section .eyebrow,.contact-copy,.contact-note,.email-address{color:var(--ink)}.contact-grid{gap:20px}details:not([open]){display:none}h2{font-size:27px}body{font-size:12px}}
