*{box-sizing:border-box}html,body{margin:0;background:white;color:#080808;font-family:Arial,Helvetica,sans-serif}body{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid #222;outline-offset:6px}[hidden]{display:none!important}
.profile-header{position:fixed;top:3.6vh;left:2.1vw;right:1.3vw;display:flex;justify-content:space-between;align-items:flex-start;z-index:10;pointer-events:none}.profile-header>*{pointer-events:auto}.home-logo{display:block;width:6.2vw;min-width:68px;max-width:130px}.home-logo img{width:100%;display:block;filter:brightness(.65)}nav{display:flex;align-items:center;gap:clamp(6px,1.1vw,22px);padding-top:5px}nav>a{background:#ccc;color:white;font-weight:700;border-radius:30px;font-size:clamp(11px,.94vw,20px);padding:3px 10px;line-height:1.1}nav>a.active,nav>a:hover{background:#292929}.language{display:flex;align-items:center;gap:6px;margin-right:10px;font-size:clamp(12px,.9vw,19px)}.language button{border:0;background:none;padding:0;color:#aaa}.language button[aria-pressed=true]{color:#111;font-weight:700}.search-toggle{border:0;background:none;padding:0;width:24px;height:28px;color:#bbb}.search-toggle svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4}.search-toggle:hover{color:#111}
.profile-pages{height:100svh;overflow-y:auto;scroll-snap-type:y mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior:contain}.profile-pages::-webkit-scrollbar{display:none}.profile-page{position:relative;height:100svh;min-height:600px;scroll-snap-align:start;scroll-snap-stop:always;padding:14.4vh 1.9vw 11vh;background:white}.profile-page h1,.profile-page h2{font-size:clamp(42px,5.05vw,112px);font-weight:700;letter-spacing:-.04em;line-height:.96;margin:0}.next-page,.resume-download{position:absolute;left:1.9vw;bottom:3.5vh;display:flex;align-items:center;background:none;border:0;padding:0}.next-page{width:clamp(40px,3.1vw,65px);height:clamp(40px,6.5vh,65px)}.next-page svg,.resume-download svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.3;transition:stroke-width .2s}.next-page:hover svg,.next-page:focus-visible svg,.resume-download:hover svg,.resume-download:focus-visible svg{stroke-width:3.2}.next-page:hover{color:#000}
.portrait{position:absolute;left:1.8vw;top:37.6vh;width:13.8vw;height:43.2vh;object-fit:cover}.introduction-copy{position:absolute;left:16.4vw;bottom:19.1vh;width:33vw;font-size:clamp(12px,.87vw,19px);line-height:1.28;margin:0}.signature{position:absolute;right:3.3vw;bottom:3.6vh;font-size:clamp(46px,5.1vw,112px);font-weight:700;letter-spacing:-.03em;line-height:.95}.signature small{display:block;text-align:right;font-size:clamp(15px,1.5vw,32px);font-weight:400;letter-spacing:0;margin-top:16px}
.education-copy{margin-top:5.8vh;width:39vw;font-size:clamp(15px,1.25vw,28px);line-height:1.35}.education-copy article+article{margin-top:5.7vh}h3{font-size:inherit;margin:0;border-bottom:1px solid #aaa;padding-bottom:2px;font-weight:700}.education-copy p{margin:8px 0 3.1vh}.education-image{position:absolute;right:3.3vw;top:42vh;width:16vw;height:45vh;object-fit:cover}
.project-list{margin-top:5.5vh}.project-entry{margin-bottom:4.8vh}.project-toggle{display:flex;width:68%;align-items:flex-end;justify-content:space-between;gap:16px;background:none;border:0;border-bottom:1px solid #aaa;padding:0 3px 3px 0;text-align:left;font-size:clamp(15px,1.25vw,27px);line-height:1.25}.project-role{display:block;font-weight:400}.project-meta{display:flex;align-items:center;gap:10px;white-space:nowrap}.project-toggle svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none;transition:transform .25s,stroke-width .2s}.project-toggle:hover svg{stroke-width:3}.project-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.project-detail{display:grid;grid-template-columns:68% 28%;gap:2%;align-items:start;margin-top:12px}.project-copy{max-width:79%;font-size:clamp(12px,.86vw,19px);line-height:1.28;color:#555}.project-copy p{margin:0 0 2.2vh}.project-image{width:100%;max-height:39vh;object-fit:contain;object-position:top}.project-entry.selected{margin-bottom:0}.project-entry.selected .project-image{animation:riseIn .65s both}.project-list.expanded .project-entry:not(.selected){display:none}
.internship-content{margin-top:5.4vh;display:grid;grid-template-columns:68% 26%;gap:4%;align-items:start}.experience-heading{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #aaa;padding-bottom:4px;font-size:clamp(15px,1.25vw,27px);line-height:1.25}.experience-heading span:last-child{white-space:nowrap}.internship-copy{max-width:83%;font-size:clamp(12px,.86vw,19px);line-height:1.28;color:#555}.internship-copy p{margin:10px 0 2.2vh}.internship-copy strong{color:#111}.internship-image{width:100%;height:55vh;object-fit:contain;object-position:top}
.contact-copy{margin-top:6.3vh;width:43vw;font-size:clamp(13px,.86vw,19px);line-height:1.35}.contact-copy h3{font-size:clamp(17px,1.25vw,27px)}.contact-copy p{margin:2vh 0}.indent{padding-left:4ch}.contact-copy a:hover{text-decoration:underline;text-underline-offset:3px}.resume-download{bottom:9.9vh;gap:10px;font-size:clamp(13px,.9vw,20px)}.resume-download svg{width:24px;height:24px}.resume-download:hover span{text-decoration:underline;text-underline-offset:5px}.notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;width:max-content;background:#222;color:white;padding:12px 20px;font-size:14px;line-height:1.4;z-index:30;border-radius:4px;box-shadow:0 3px 15px #0002}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .65s ease,transform .65s ease}.profile-page.in-view .reveal{opacity:1;transform:translateY(0)}@keyframes riseIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}dialog{width:min(700px,92vw);max-height:85svh;padding:40px;border:1px solid #ccc;background:white;color:#111}dialog::backdrop{background:#0006;backdrop-filter:blur(8px)}.close-search{position:absolute;right:16px;top:10px;font-size:28px;border:0;background:none}dialog h2{font-size:14px;letter-spacing:.1em;margin:8px 0 24px}dialog input{font:inherit;font-size:26px;border:0;border-bottom:1px solid #aaa;width:100%;padding:10px 0;outline:none}.search-result{display:block;padding:16px 0;border-bottom:1px solid #ddd}.search-result:hover{text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:850px),(max-height:550px){.profile-header{top:20px;left:20px;right:20px}.home-logo{width:62px;min-width:0}nav{gap:5px;flex-wrap:wrap;justify-content:flex-end;max-width:75%;padding-top:0}nav>a{font-size:10px;padding:4px 7px}.language{font-size:12px;margin-right:4px}.search-toggle{width:18px;height:22px}.profile-page{height:auto;min-height:100svh;padding:120px 22px 100px}.profile-page h1,.profile-page h2{font-size:clamp(35px,7.5vw,64px);line-height:1}.portrait{position:relative;left:auto;top:auto;width:38%;height:auto;margin-top:30px}.introduction-copy{position:relative;left:auto;bottom:auto;width:100%;font-size:15px;line-height:1.4;margin-top:20px}.signature{position:relative;right:auto;bottom:auto;text-align:right;font-size:44px;margin-top:24px}.signature small{font-size:18px;margin-top:6px}.next-page{left:22px;bottom:25px;width:42px;height:42px}.education-copy{width:100%;font-size:16px;margin-top:35px}.education-copy article+article{margin-top:30px}.education-image{position:relative;right:auto;top:auto;width:45%;height:auto;margin:20px 0 0 auto;display:block}.project-list{margin-top:35px}.project-toggle{width:100%;font-size:16px;align-items:flex-start;flex-direction:column;gap:6px}.project-meta{align-self:flex-end;font-size:14px}.project-entry{margin-bottom:28px}.project-detail{grid-template-columns:1fr;gap:15px}.project-copy{max-width:none;font-size:14px;line-height:1.45}.project-copy p{margin-bottom:18px}.project-image{width:100%;max-height:none}.internship-content{margin-top:35px;grid-template-columns:1fr}.experience-heading{font-size:16px;flex-direction:column}.internship-copy{max-width:none;font-size:14px;line-height:1.45}.internship-copy p{margin-bottom:20px}.internship-image{height:auto;width:75%;margin:auto}.contact-copy{width:100%;font-size:14px;margin-top:40px;overflow-wrap:anywhere}.contact-copy p{margin:20px 0}.resume-download{left:22px;bottom:35px;font-size:14px}.profile-pages{scroll-snap-type:y proximity}.notice{font-size:13px}}
@media(prefers-reduced-motion:reduce){.profile-pages{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

.introduction-copy p{margin:0}.introduction-copy p+p{margin-top:12px}.introduction-copy [lang=zh]{font-family:SimSun,"Songti SC",serif}.contact-row{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px}.contact-row>span>span{display:block}.chinese .profile-page:not(.intro)>h2{font-family:SimSun,"Songti SC","Noto Serif CJK SC",serif;letter-spacing:0;min-height:1.92em}.chinese .education-copy,.chinese .project-toggle,.chinese .project-copy,.chinese .internship-copy,.chinese .experience-heading,.chinese .contact-copy{font-family:Arial,"Microsoft YaHei",sans-serif}.chinese .project-copy,.chinese .internship-copy{line-height:1.45}.chinese .project-toggle>span:first-child{min-width:0}.chinese .contact-copy h3{font-family:SimSun,"Songti SC",serif}@media(max-width:850px),(max-height:550px){.chinese .profile-page:not(.intro)>h2{min-height:0}.contact-row{grid-template-columns:max-content minmax(0,1fr)}}

/* Use the installed DengXian faces without distributing Windows font files. */
@font-face{font-family:"LC DengXian";src:local("DengXian Light"),local("DengXian-Light"),local("等线 Light");font-style:normal;font-weight:300;font-display:swap}
@font-face{font-family:"LC DengXian";src:local("DengXian"),local("DengXian Regular"),local("等线");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"LC DengXian";src:local("DengXian Bold"),local("DengXian-Bold"),local("等线 Bold");font-style:normal;font-weight:700;font-display:swap}
:root{--chinese-font:"LC DengXian","DengXian","等线",sans-serif}
[lang=zh],.introduction-copy [lang=zh],.signature small,.language [data-language=zh],.notice{font-family:var(--chinese-font);font-weight:400;font-synthesis:none}
.chinese .profile-page:not(.intro)>h2,.chinese .contact-copy h3{font-family:var(--chinese-font);font-weight:700;letter-spacing:0}
.chinese .education-copy,.chinese .project-toggle,.chinese .project-copy,.chinese .internship-copy,.chinese .experience-heading,.chinese .contact-copy,.chinese .resume-download,.chinese dialog{font-family:var(--chinese-font);font-weight:400;font-synthesis:none}
.chinese h3,.chinese strong,.chinese dialog h2{font-family:var(--chinese-font);font-weight:700}
.introduction-copy [lang=zh],.chinese .project-copy,.chinese .internship-copy,.chinese .contact-copy{font-weight:300}
.chinese .project-role{font-weight:400}

