@font-face{font-family:Inter;src:url('assets/fonts/InterVariable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Noto Sans SC';src:url('assets/fonts/NotoSansSC-portfolio.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--paper:#f7f6f1;--white:#fff;--ink:#19364a;--muted:#4b5b65;--line:#d6dedb;--soft:#eaf0ed;--accent:#527260;--serif:Georgia,'Times New Roman','Songti SC','SimSun',serif;--sans:Inter,'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75}html[data-language=en] [data-copy=zh],html[data-language=zh] [data-copy=en]{display:none}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3{font-weight:400;line-height:1.16}h2{font:400 clamp(34px,4vw,49px)/1.15 var(--serif);letter-spacing:-1.3px}h3{font:400 28px/1.3 var(--serif);letter-spacing:-.4px}h4{font-size:11px;letter-spacing:1.5px;font-weight:600}p{color:var(--muted)}p+p{margin-top:18px}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #6c997c;outline-offset:5px}a:hover{color:var(--accent)}.wrap{width:min(1160px,calc(100% - 96px));margin:0 auto}.eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:600;line-height:1.6}.small-label{font-size:11px;letter-spacing:1.2px}.site-header{position:sticky;top:0;z-index:20;background:rgba(247,246,241,.97);border-bottom:1px solid var(--line)}.header-inner{max-width:1400px;margin:auto;min-height:92px;padding:16px 48px;display:flex;align-items:center;gap:35px}.brand{display:flex;align-items:center;gap:13px;font-size:16px;font-weight:600;line-height:1.25;white-space:nowrap}.brand small{display:block;font-size:8px;font-weight:400;letter-spacing:1.7px;margin-top:7px}.monogram{display:grid;place-items:center;width:43px;height:43px;border:1px solid var(--ink);font:23px var(--serif)}nav{margin-left:auto;display:flex;gap:25px;font-size:12px}nav a{position:relative;padding:8px 0}nav a.active:after{content:'';position:absolute;bottom:1px;left:0;right:0;height:1px;background:var(--ink)}.language-switch{display:flex;border-left:1px solid var(--line);padding-left:20px;gap:3px}.language-switch button{background:transparent;border:0;padding:6px 8px;font-size:11px;color:var(--muted);border-radius:2px}.language-switch button[aria-pressed=true]{background:var(--ink);color:white}.skip-link{position:fixed;top:-60px;left:20px;background:var(--ink);color:white;z-index:100;padding:10px}.skip-link:focus{top:10px}.hero{padding-top:72px;padding-bottom:68px;display:grid;grid-template-columns:1.35fr 1fr;gap:75px;align-items:center}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:7px;vertical-align:middle}.hero h1{font:400 clamp(75px,8vw,114px)/.92 var(--serif);letter-spacing:-6px;margin:25px 0 28px}.hero h1 em{font-style:italic;color:var(--accent)}.hero-subtitle{font:400 30px/1.3 var(--serif);letter-spacing:-.5px}.hero-intro{font-size:14px;line-height:1.9;max-width:460px;margin-top:20px}.actions{display:flex;align-items:center;gap:27px;margin-top:32px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;font-size:12px;font-weight:600;padding:15px 22px;border:1px solid var(--ink);transition:background .2s,color .2s}.primary{background:var(--ink);color:white}.primary:hover{background:#2e5268;color:#fff}.text-link{font-size:12px;border-bottom:1px solid currentColor;padding:7px 0;display:inline-flex;gap:15px;align-items:center}.portrait-block{position:relative;padding:0 0 23px 0;margin-right:10px}.portrait-frame{height:470px;overflow:hidden;background:#0a6f9a}.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:center 28%}.portrait-caption{margin-top:17px;display:flex;justify-content:space-between;gap:15px;font-size:8px;letter-spacing:1px;line-height:1.7}.portrait-line{position:absolute;top:25px;right:-24px;width:100%;height:calc(100% - 25px);border:1px solid #b8c5be;z-index:-1}.chinese-name-en{display:block;font:italic 39px/1.4 var(--serif);letter-spacing:0;color:var(--accent);margin-top:20px}html[data-language=zh] .hero h1{font-size:85px;letter-spacing:8px}html[data-language=zh] h2,html[data-language=zh] h3{letter-spacing:0}html[data-language=zh] .hero-subtitle{font-size:28px}.stats{display:grid;grid-template-columns:repeat(4,1fr);padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stats>div{padding-left:35px;border-left:1px solid var(--line);display:flex;flex-direction:column}.stats>div:first-child{padding-left:0;border-left:0}.stats strong{font:400 35px var(--serif)}.stats strong span{font:400 16px var(--serif);color:var(--muted);margin-left:6px}.stats>div>span{font-size:10px;letter-spacing:.7px;margin-top:10px;color:var(--muted)}.section{padding-top:95px;padding-bottom:95px}.section-heading{display:flex;justify-content:space-between;gap:60px;align-items:end;margin-bottom:48px}.section-heading h2{margin-top:12px}.section-heading>p{max-width:350px;font-size:13px;line-height:1.8}.about-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:100px;align-items:start}.about-copy h3{font-size:36px;margin-bottom:25px}.about-copy p{font-size:14px;line-height:1.95}.education-panel{background:var(--soft);padding:33px 36px;border-top:2px solid var(--accent)}.education-panel h3{font-size:25px;margin:12px 0 15px}.education-panel p{font-size:12px;line-height:1.9}.education-divider{height:1px;background:#cbd6d0;margin:22px 0}.education-panel .small-label{font-size:10px;margin-bottom:10px}.education-note{margin-top:18px!important;font-size:11px!important}.tags{display:flex;gap:7px;flex-wrap:wrap}.tag{border:1px solid var(--line);font-size:10px;line-height:1.6;padding:4px 10px;border-radius:2px;color:#435c5e}.experience-section{background:#fff}.experience{display:grid;grid-template-columns:190px 1fr;gap:50px;padding:47px 0;border-top:1px solid var(--line)}.experience:last-child{padding-bottom:0}.experience-date{position:relative}.coop-number{display:block;font:italic 64px/.9 var(--serif);color:#9db0a5;margin-bottom:20px}.experience-date .eyebrow{font-size:10px}.experience-date p{font-size:11px;margin-top:8px}.experience-date .role{font-size:12px;font-weight:600;color:var(--ink);margin-top:16px;max-width:160px}.organization{font-size:12px;color:var(--accent);margin-bottom:10px;font-weight:600}.experience-main h3{font-size:29px;line-height:1.3;max-width:700px}.experience-summary{font-size:13px;margin-top:16px;margin-bottom:18px;max-width:740px}.experience-body{display:grid;grid-template-columns:1.45fr 1fr;gap:32px;margin-top:28px}.experience-body ul{margin:12px 0 0;padding-left:17px}.experience-body li{font-size:12px;color:var(--muted);margin:0 0 11px;padding-left:4px;line-height:1.9}.experience-body li::marker{color:var(--accent)}.outcome{padding:20px 22px;background:var(--paper);align-self:start;border-left:2px solid #8ba294}.outcome .eyebrow{font-size:9px}.outcome p{margin-top:10px;font-size:12px;line-height:1.9}.outcome-line{font-size:12px;margin-top:18px;padding-top:17px;border-top:1px solid var(--line)}details{margin-top:23px;border-top:1px solid var(--line)}summary{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;padding:15px 0;cursor:pointer;list-style:none;font-weight:600}summary::-webkit-details-marker{display:none}.expand-icon{font-weight:400;font-size:22px;line-height:1;transition:transform .2s}details[open]>summary .expand-icon{transform:rotate(45deg)}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:5px}.photo-grid.single{grid-template-columns:1fr;max-width:600px}.photo-grid .image-link{height:255px;display:block;overflow:hidden;background:var(--paper)}.photo-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.photo-grid.single .image-link{height:auto}.photo-grid.single img{height:auto}.photo-grid a:hover img{transform:scale(1.025)}figcaption{font-size:10px;color:var(--muted);margin-top:9px;display:flex;justify-content:space-between;gap:10px;line-height:1.7}.image-link{cursor:zoom-in}#coop-01 .photo-grid img{object-fit:contain}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.project-card{border:1px solid var(--line);background:#fff;overflow:hidden}.project-figure{padding:27px;background:#edf0ec}.project-figure .image-link{display:flex;align-items:center;justify-content:center;height:265px;background:white;overflow:hidden}.project-figure img{height:100%;width:100%;object-fit:contain}.project-content{padding:30px}.project-content .eyebrow{font-size:9px}.project-content h3{margin:12px 0 16px;font-size:27px}.project-content p{font-size:12px;line-height:1.95}.project-content .tags{margin-top:18px}.project-content details p{margin-top:4px}.project-content .project-note{font-size:10px;margin-top:12px;font-style:italic}.leadership-row{display:grid;grid-template-columns:240px 1fr;gap:50px;border-top:1px solid var(--line);margin-top:40px;padding-top:30px}.leadership-row h3{font-size:25px;margin-bottom:15px}.leadership-row p{font-size:12px}.skills-section{background:var(--soft)}.skills-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:0 50px}.skill-feature{grid-row:span 3;background:var(--paper);padding:35px;align-self:start;border:1px solid #d6ded8}.skills-grid h3{font-size:29px;margin:15px 0}.skills-grid p{font-size:13px;line-height:1.9}.skills-grid .eyebrow{font-size:9px}.certificate{margin-top:35px;padding-top:25px;border-top:1px solid var(--line);display:flex;gap:16px;align-items:start}.certificate-mark{border:1px solid var(--accent);border-radius:50%;font-size:18px;flex:0 0 35px;height:35px;text-align:center;color:var(--accent)}.certificate strong{display:block;font-size:12px;font-weight:600;line-height:1.7}.certificate p{font-size:11px;margin-top:8px}.skill-card{padding:0 0 25px;margin:0 0 24px;border-bottom:1px solid #c8d4ce}.skill-card:last-child{margin:0;padding:0;border:0}.skill-card h3{font-size:24px;margin:8px 0 10px}.skill-card p{font-size:12px}.honor-list>div{display:grid;grid-template-columns:100px 1fr 90px;align-items:center;gap:25px;padding:23px 0;border-top:1px solid var(--line)}.honor-list>div:last-child{border-bottom:1px solid var(--line)}.honor-list h3{font:400 16px/1.5 var(--sans);letter-spacing:0}.honor-list time,.honor-list>div>span{font-size:11px;color:var(--muted)}.honor-list>div>span{text-align:right}.resume-section{background:var(--ink);color:var(--paper);padding:50px 55px;display:flex;align-items:center;justify-content:space-between;gap:40px}.resume-section .eyebrow{color:#b3c9bc;font-size:10px}.resume-section h2{margin:13px 0;font-size:45px}.resume-section p{color:#c6d2d7;font-size:13px;max-width:530px}.resume-actions{display:flex;flex-direction:column;align-items:center;flex-shrink:0;gap:12px}.button.light{background:var(--paper);color:var(--ink);border-color:var(--paper);min-width:210px}.button.light:hover{background:#e3e9e4}.resume-actions .text-link{font-size:11px;color:var(--paper)}.resume-meta{font-size:9px;letter-spacing:1px;color:#b3c5cf}.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center}.contact h2{margin:15px 0}.contact p{font-size:13px;max-width:360px}.contact-details .small-label{font-size:9px}.email-link{font:400 25px/1.5 var(--serif);border-bottom:1px solid var(--line);padding:10px 0 15px;display:flex;justify-content:space-between;gap:12px}.contact-actions{display:flex;align-items:center;gap:30px;margin-top:18px;font-size:12px;flex-wrap:wrap}.copy-email{background:transparent;border:0;border-bottom:1px solid currentColor;padding:0;color:var(--ink);font-size:11px}.location{font-size:11px!important;margin-top:22px!important}.contact-details{min-width:0}#copy-status{display:block;font-size:11px;color:var(--accent);height:20px;margin-top:8px}footer{padding:25px 0 35px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}.footer-name{font:16px var(--serif);color:var(--ink)}dialog{border:0;padding:25px;background:var(--paper);max-width:min(1100px,94vw);max-height:94vh;box-shadow:0 20px 100px #0005}dialog::backdrop{background:#102533d9;backdrop-filter:blur(4px)}dialog img{max-height:76vh;width:auto;margin:auto;object-fit:contain}dialog p{font-size:12px;margin-top:15px;text-align:center}.dialog-close{position:absolute;top:4px;right:8px;background:var(--ink);color:#fff;border:0;width:30px;height:30px;font-size:23px;line-height:1;z-index:2}body.modal-open{overflow:hidden}
@media(min-width:1500px){.hero{padding-top:90px;padding-bottom:85px}.portrait-frame{height:510px}}@media(max-width:1100px){.header-inner{padding:16px 28px;gap:20px}nav{gap:15px}.wrap{width:calc(100% - 70px)}.hero{gap:45px}.hero h1{font-size:93px}.portrait-frame{height:445px}.portrait-caption{font-size:7px}.about-grid{gap:50px}.experience{grid-template-columns:140px 1fr;gap:30px}.experience-body{gap:22px}.contact{gap:35px}.email-link{font-size:22px}.skills-grid{gap:0 30px}}
@media(max-width:800px){.header-inner{flex-wrap:wrap;gap:12px;padding:12px 25px;min-height:105px}.brand{font-size:14px}.brand small{font-size:7px}.monogram{width:35px;height:35px;font-size:20px}.language-switch{margin-left:auto;border:0}nav{width:100%;order:3;justify-content:space-between;gap:12px;font-size:11px}html{scroll-padding-top:130px}.wrap{width:calc(100% - 50px)}.hero{padding-top:45px;padding-bottom:50px;gap:28px;grid-template-columns:1.2fr 1fr}.hero h1{font-size:75px;letter-spacing:-4px}.hero-subtitle{font-size:24px}.hero-intro{font-size:12px}.hero .eyebrow{font-size:8px;letter-spacing:1px}.portrait-frame{height:350px}.portrait-caption{flex-direction:column;gap:4px}.portrait-line{right:-12px}.actions{gap:15px;margin-top:22px}.button{font-size:11px;padding:12px 16px;gap:16px}.hero .text-link{font-size:11px}.stats>div{padding-left:20px}.stats strong{font-size:29px}.stats>div>span{font-size:9px}.section{padding:65px 0}.section-heading{gap:30px;margin-bottom:35px}.section-heading>p{max-width:270px;font-size:12px}.section-heading .eyebrow{font-size:9px}.about-grid{gap:30px}.about-copy h3{font-size:30px}.about-copy p{font-size:12px}.education-panel{padding:25px}.education-panel h3{font-size:23px}.experience{grid-template-columns:105px 1fr;gap:25px;padding:35px 0}.experience-body{grid-template-columns:1fr;gap:15px}.experience-main h3{font-size:26px}.photo-grid{gap:12px}.photo-grid .image-link{height:185px}.project-grid{gap:20px}.project-figure{padding:15px}.project-figure .image-link{height:200px}.project-content{padding:22px}.project-content h3{font-size:24px}.leadership-row{grid-template-columns:150px 1fr;gap:25px}.skills-grid{gap:0 25px}.skill-feature{padding:25px}.resume-section{padding:35px;gap:25px}.resume-section h2{font-size:36px}.contact{grid-template-columns:1fr;gap:30px}.contact-details{max-width:600px}.email-link{font-size:25px}html[data-language=zh] .hero h1{font-size:62px;letter-spacing:4px}html[data-language=zh] .hero-subtitle{font-size:23px}}
@media(max-width:560px){.wrap{width:calc(100% - 40px)}.header-inner{padding:12px 20px}.brand small{letter-spacing:1.1px}nav{gap:8px;font-size:10px}.hero{grid-template-columns:1fr;gap:35px;padding-top:35px}.hero h1{font-size:92px;line-height:.94;margin:25px 0}.hero h1 br{display:none}.hero h1 em{display:block}.hero-subtitle{font-size:29px}.hero-intro{font-size:14px;max-width:100%}.hero .eyebrow{font-size:9px}.actions{margin-top:25px;gap:22px}.button{font-size:12px;padding:13px 18px}.portrait-block{width:85%;margin:0 auto}.portrait-frame{height:380px}.portrait-caption{flex-direction:row;font-size:7px}.portrait-line{right:-15px}.stats{grid-template-columns:1fr 1fr;padding:0}.stats>div{padding:23px 20px!important;border-left:0}.stats>div:nth-child(2n){border-left:1px solid var(--line)}.stats>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.stats strong{font-size:34px}.stats>div>span{font-size:10px}.section{padding:55px 0}.section-heading{display:block;margin-bottom:30px}.section-heading>p{max-width:100%;margin-top:18px}.section-heading h2{font-size:36px}.about-grid{grid-template-columns:1fr;gap:30px}.about-copy h3{font-size:31px}.about-copy p{font-size:13px}.education-panel{padding:28px}.experience{grid-template-columns:1fr;gap:20px;padding:32px 0}.experience-date{display:grid;grid-template-columns:50px 1fr;column-gap:15px;align-items:center}.coop-number{grid-row:span 3;font-size:46px;margin:0}.experience-date .eyebrow{font-size:9px}.experience-date p{margin:0;font-size:10px}.experience-date .role{max-width:none;margin:2px 0 0;font-size:11px}.experience-main h3{font-size:27px}.experience-summary{font-size:13px}.experience-body li,.outcome p{font-size:12px}.photo-grid{grid-template-columns:1fr}.photo-grid .image-link{height:auto}.photo-grid img{height:auto;max-height:410px;object-fit:contain;background:var(--paper)}.project-grid{grid-template-columns:1fr}.project-figure .image-link{height:240px}.project-content{padding:25px}.project-content h3{font-size:26px}.leadership-row{grid-template-columns:1fr;gap:15px;margin-top:30px;padding-top:25px}.skills-grid{grid-template-columns:1fr;gap:25px}.skill-feature{grid-row:auto;padding:28px;margin-bottom:5px}.skill-card{padding-bottom:24px;margin:0}.honor-list>div{grid-template-columns:60px 1fr;gap:5px 15px;padding:20px 0}.honor-list h3{font-size:13px}.honor-list>div>span{grid-column:2;text-align:left;font-size:9px}.honor-list time{font-size:10px;align-self:start}.resume-section{padding:32px 25px;display:block}.resume-section h2{font-size:37px}.resume-section p{font-size:12px}.resume-actions{align-items:flex-start;margin-top:25px}.contact{gap:25px}.email-link{font-size:20px;overflow-wrap:anywhere}.contact-actions{gap:24px}footer{flex-wrap:wrap;font-size:9px;gap:15px}.footer-name{font-size:14px;flex:1 0 100%}dialog{padding:20px 12px}.chinese-name-en{font-size:34px}html[data-language=zh] .hero h1{font-size:72px;letter-spacing:5px}html[data-language=zh] .hero-subtitle{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{.site-header,.actions,.resume-actions,.contact-actions,.dialog-close,.expand-icon{display:none!important}.wrap{width:100%}.hero{padding:25px 0}.portrait-frame{height:280px}.section{padding:30px 0}.experience,.project-card,.skill-feature{break-inside:avoid}.resume-section{color:#19364a;background:white;border:1px solid #ccc}.resume-section p{color:#52616b}footer{margin-top:20px}.portrait-line{display:none}}
/* Comfortable reading size across both languages and screen sizes. */
@media screen {
  body{font-optical-sizing:auto;font-feature-settings:'calt' 1,'liga' 1;-webkit-font-smoothing:antialiased}
  h2,h3,.hero-subtitle,.about-copy h3,.email-link,.education-panel h3{font-family:var(--sans);font-weight:500;letter-spacing:-.035em}
  h3{line-height:1.4}
  .hero-subtitle{line-height:1.4;font-size:28px;font-weight:500}
  .section-heading h2,.contact h2,.resume-section h2{font-weight:500;letter-spacing:-.04em}
  html[data-language=zh] h1,html[data-language=zh] h2,html[data-language=zh] h3{font-family:var(--sans);font-weight:500;letter-spacing:0}
  html[data-language=zh] .hero h1{font-weight:500;letter-spacing:.04em}
  .email-link{font-weight:400;letter-spacing:-.035em}
  .hero-intro{font-size:17px;line-height:1.95;max-width:500px}
  .section-heading>p,.about-copy p,.education-panel p,.experience-summary,.experience-body li,.outcome p,.outcome-line,.project-content p,.leadership-row p,.skills-grid p,.resume-section p,.contact p{font-size:16px;line-height:1.9}
  .organization{font-size:15px;line-height:1.8}
  .experience-date p,.experience-date .role{font-size:14px;line-height:1.8}
  .education-panel .education-note,.project-content .project-note,.certificate p{font-size:14px!important;line-height:1.9}
  .education-panel .small-label{font-size:12px}
  .experience-body h4,.eyebrow,.section-heading .eyebrow,.skills-grid .eyebrow,.project-content .eyebrow,.outcome .eyebrow,.resume-section .eyebrow{font-size:12px}
  .tag{font-size:12px;padding:5px 10px}
  summary,.button,.text-link,.resume-actions .text-link,.copy-email,.contact-actions{font-size:14px}
  figcaption,.portrait-caption,.resume-meta,.contact-details .small-label,.small-label{font-size:12px}
  .certificate strong{font-size:15px}
  .honor-list h3{font-size:17px;line-height:1.7}
  .honor-list time,.honor-list>div>span{font-size:13px}
  .stats>div>span{font-size:12px;line-height:1.8}
  .contact p.location{font-size:14px!important}
  #copy-status{font-size:13px}
  nav{font-size:14px}
  .language-switch button{font-size:12px}
  .portrait-caption{flex-direction:column;gap:4px;font-size:10px}
  .experience-body{gap:28px}
  .project-content,.skill-feature{padding:32px}
  @media(max-width:1100px){nav{gap:14px;font-size:13px}.header-inner{gap:20px}.hero-intro{font-size:16px}}
  @media(max-width:800px){nav{font-size:13px}.hero-intro{font-size:16px}.hero .eyebrow{font-size:10px}.hero .text-link{font-size:13px}.project-content,.skill-feature{padding:26px}.experience-body{gap:20px}.button{font-size:13px}}
  @media(max-width:560px){nav{font-size:12px;gap:7px}.hero-intro{font-size:17px}.hero .eyebrow{font-size:10px}.experience-date .eyebrow{font-size:11px}.experience-date p,.experience-date .role{font-size:13px}.section-heading .eyebrow{font-size:11px}.honor-list h3{font-size:16px}.honor-list time,.honor-list>div>span{font-size:12px}.stats>div>span{font-size:12px}.button,.hero .text-link{font-size:14px}.portrait-caption{font-size:10px}.certificate strong{font-size:14px}}
}
/* Requested 20pt body typography, with wider reading columns. */
@media screen {
  .hero-intro,.section-heading>p,.about-copy p,.education-panel p,.experience-summary,.experience-body li,.outcome p,.outcome-line,.project-content p,.leadership-row p,.skills-grid p,.resume-section p,.contact p{font-size:20pt;line-height:1.7;letter-spacing:0}
  .education-panel .education-note,.project-content .project-note,.certificate p{font-size:20pt!important;line-height:1.7}
  .hero-intro{max-width:680px}
  .hero{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:55px;align-items:start}
  .portrait-block{margin-top:45px}
  .hero-subtitle,html[data-language=zh] .hero-subtitle{font-size:36px;line-height:1.35}
  .section-heading{display:block}
  .section-heading>p{max-width:960px;margin-top:22px}
  .about-grid{grid-template-columns:1fr;gap:36px}
  .about-copy{max-width:1050px}
  .education-panel{padding:36px 40px}
  .education-panel h3,.experience-main h3,.project-content h3,.leadership-row h3,.skills-grid h3,.skill-card h3{font-size:34px;line-height:1.35}
  .education-panel .small-label{font-size:14px}
  .experience{grid-template-columns:150px minmax(0,1fr);gap:35px}
  .experience-summary,.experience-main h3{max-width:none}
  .experience-body{grid-template-columns:1fr;gap:26px}
  .experience-body li{margin-bottom:20px}
  .outcome{padding:26px 30px}
  .outcome-line{padding-top:25px;margin-top:26px}
  .project-grid{grid-template-columns:1fr;gap:35px}
  .project-card{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr)}
  .project-figure{align-self:start;padding:22px}
  .project-figure .image-link{height:auto;min-height:260px}
  .project-figure img{height:auto;max-height:420px}
  .project-content{padding:35px}
  .leadership-row{grid-template-columns:1fr;gap:20px}
  .skills-grid{grid-template-columns:1fr;gap:32px}
  .skill-feature{grid-row:auto;padding:36px}
  .skill-card{padding-bottom:30px;margin:0}
  .certificate strong{font-size:20px}
  .honor-list h3{font-size:20pt;line-height:1.5}
  .resume-section{display:block}
  .resume-section p{max-width:100%}
  .resume-actions{align-items:flex-start;margin-top:30px}
  .contact{grid-template-columns:1fr;gap:35px}
  .contact p{max-width:100%}
  .contact-details{width:100%;max-width:760px}
  .email-link{font-size:30px}
  @media(max-width:1000px){.hero{grid-template-columns:1fr;gap:35px}.portrait-block{max-width:420px;width:75%;margin:0 auto}.portrait-frame{height:480px}.project-card{grid-template-columns:1fr}.project-figure .image-link{height:330px}.project-figure img{height:100%;width:auto;max-width:100%;margin:auto}.experience{grid-template-columns:110px minmax(0,1fr);gap:25px}}
  @media(max-width:600px){.hero-intro,.section-heading>p,.about-copy p,.education-panel p,.experience-summary,.experience-body li,.outcome p,.outcome-line,.project-content p,.leadership-row p,.skills-grid p,.resume-section p,.contact p{font-size:20pt;line-height:1.65}.hero{grid-template-columns:1fr}.hero-subtitle,html[data-language=zh] .hero-subtitle{font-size:34px}.experience{grid-template-columns:1fr;gap:24px}.experience-date{display:grid;grid-template-columns:50px 1fr;column-gap:15px;align-items:center}.coop-number{grid-row:span 3;font-size:46px;margin:0}.experience-date .role{max-width:none}.education-panel,.skill-feature,.project-content{padding:24px 20px}.outcome{padding:22px 20px}.project-figure .image-link{min-height:0;height:240px}.portrait-frame{height:400px}.portrait-block{width:85%}.honor-list>div{grid-template-columns:1fr;gap:8px}.honor-list>div>span{grid-column:1}.email-link{font-size:24px;overflow-wrap:anywhere}.resume-section{padding:30px 24px}}
}

/* Image chapters fade into the reading surface as they scroll away. */
.scroll-scene{--scene-opacity:1;--scene-shift:0px;position:relative;height:75vh;height:75svh;min-height:420px;max-height:740px;overflow:hidden;background:var(--paper);isolation:isolate;margin-top:70px}
.scene-visual{position:absolute;inset:0;opacity:var(--scene-opacity);background:#17364a;will-change:opacity}
.scene-image{position:absolute;inset:-50px 0;width:100%;height:calc(100% + 100px);object-fit:cover;transform:translateY(var(--scene-shift));will-change:transform}
.scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,29,42,.58),rgba(10,29,42,.08)),linear-gradient(0deg,rgba(10,29,42,.65),transparent 60%)}
.scene-caption{position:absolute;bottom:70px;left:max(48px,calc((100% - 1160px)/2));right:48px;color:white;max-width:850px}
.scene-caption h2{font-family:var(--sans);font-size:clamp(38px,5vw,64px);font-weight:500;line-height:1.18;letter-spacing:-.035em;margin:20px 0 30px;color:white;text-wrap:balance}
.scene-caption .eyebrow{font-size:13px;letter-spacing:2px;color:#e5eee8}
.scene-scroll{font-size:12px;letter-spacing:1.4px;display:flex;gap:22px;align-items:center}
.scene-scroll>span[aria-hidden]{font-size:24px}
.scene-institute{background:#fff;margin:65px 0 45px;height:620px;min-height:420px}
.scene-institute .scene-visual{background:#17364a}
.scene-institute .scene-image{inset:auto;right:25px;top:50%;width:49%;height:auto;max-height:80%;object-fit:contain;transform:translateY(calc(-50% + var(--scene-shift)))}
.scene-institute .scene-shade{background:linear-gradient(90deg,#17364a 3%,rgba(23,54,74,.94) 32%,rgba(23,54,74,.16) 68%,transparent)}
.scene-institute .scene-caption{left:45px;bottom:60px;right:35px;max-width:610px}
.scene-institute .scene-caption h2{font-size:46px;max-width:570px;line-height:1.25}
@media(max-width:800px){.scroll-scene{margin-top:45px;height:65svh;min-height:420px}.scene-caption{left:30px;right:30px;bottom:45px}.scene-caption h2{font-size:42px}.scene-institute{height:720px;margin:45px 0 30px}.scene-institute .scene-image{top:20px;right:50%;width:75%;height:350px;max-height:none;transform:translate(50%,var(--scene-shift));object-fit:contain}.scene-institute .scene-shade{background:linear-gradient(0deg,#17364a 3%,rgba(23,54,74,.95) 36%,transparent 80%)}.scene-institute .scene-caption{left:30px;right:30px;bottom:40px}.scene-institute .scene-caption h2{font-size:38px;max-width:none}}
@media(max-width:560px){.scene-caption h2{font-size:36px}.scene-caption .eyebrow{font-size:11px}.scene-institute{height:720px}.scene-institute .scene-image{width:95%;height:310px}.scene-institute .scene-caption{left:24px;right:24px;bottom:35px}.scene-institute .scene-caption h2{font-size:32px}.scene-caption{left:22px;right:22px}.scene-scroll{font-size:11px}.scene-campus .scene-image{object-position:43% center}}
@media(prefers-reduced-motion:reduce){.scene-visual{opacity:1;will-change:auto}.scene-image{will-change:auto}}
@media print{.scroll-scene{display:none}}

/* Research interests follow the requested body reading size. */
@media screen {
  .education-panel .small-label,.education-panel .tag{font-size:20pt;line-height:1.6;letter-spacing:0}
  .education-panel .tags{gap:10px}
  .education-panel .tag{padding:7px 14px}
}

/* Emphasize award dates and recognition levels. */
@media screen {
  .honor-list time,.honor-list>div>span{font-size:20pt;font-weight:700;line-height:1.5;color:var(--ink)}
  .honor-list>div{grid-template-columns:140px minmax(0,1fr) 190px;gap:28px}
}
@media screen and (max-width:800px){
  .honor-list>div{grid-template-columns:1fr;gap:12px}
  .honor-list>div>span{grid-column:1;text-align:left}
}
