:root{color-scheme:dark;--paper:#091c24;--ink:#effbfa;--muted:#a9c2c6;--line:#b9e5df25;--mint:#b7f1df}*{box-sizing:border-box}body{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink)}#app{pointer-events:none}#resume-page{position:fixed;inset:0;overflow:auto;z-index:10;scroll-behavior:smooth;overscroll-behavior:contain}header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;background:#081b2299;border-bottom:1px solid var(--line)}.wordmark{font-size:18px;font-weight:700;letter-spacing:.1em}nav{display:flex;gap:28px}a{color:inherit;text-decoration:none}nav a{font-size:14px;color:#d2e6e5}a:hover{color:var(--mint)}a:focus-visible,button:focus-visible{outline:2px solid var(--mint);outline-offset:5px}.hero{min-height:calc(100vh - 86px);display:flex;align-items:center;padding:70px 6vw 65px;background:linear-gradient(90deg,#081b24f7 0%,#081b24dc 38%,#081b2430 74%,transparent)}.hero-copy{max-width:590px;width:53%}.eyebrow{font-size:13px;letter-spacing:.2em;color:var(--mint);margin:0 0 26px}h1{font-size:clamp(48px,6vw,82px);letter-spacing:.05em;line-height:1.15;font-weight:500;margin:0 0 22px}.role{font-size:22px;line-height:1.6;margin:0 0 22px}.intro{font-size:16px;line-height:1.95;color:var(--muted);max-width:490px}.meta{font-size:14px;color:var(--muted);margin:24px 0}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:46px;padding:12px 22px;border:1px solid #a8d7ce6b;font-size:14px;cursor:pointer;background:transparent;color:var(--ink)}.button.primary{background:var(--mint);border-color:var(--mint);color:#102c31}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px;padding-top:27px;border-top:1px solid #afd5d344}.metrics strong{display:block;font-size:30px;font-weight:500;white-space:nowrap}.metrics span{font-size:12px;color:var(--muted);display:block;margin-top:7px}.content{background:#091c24f5;padding:0 6vw}.section{max-width:1180px;margin:auto;padding:75px 0;border-top:1px solid var(--line);scroll-margin-top:20px}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:32px;gap:20px}.section-head h2{font-size:30px;font-weight:500;margin:0}.section-head span{font-size:12px;color:var(--muted);letter-spacing:.18em}.project{display:grid;grid-template-columns:90px 1fr;gap:25px;padding:32px 0;border-top:1px solid var(--line)}.num{font-size:40px;font-weight:300;color:#6b9298}.project h3,.job h3{font-size:21px;font-weight:500;margin:0 0 10px}.when{font-size:14px;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.tags span{font-size:12px;padding:6px 9px;background:#bededb0c;border:1px solid var(--line);color:#c8e8df}ul{padding-left:19px;color:#bdd0d3;font-size:16px;line-height:1.9;margin-bottom:0}li{padding-left:4px;margin-bottom:8px}.job{display:grid;grid-template-columns:180px 1fr;gap:30px;padding:30px 0;border-top:1px solid var(--line)}.job .when{line-height:1.8}.skills{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 55px}.skills h3{font-size:18px;font-weight:500;margin:0 0 12px}.skills p{font-size:16px;color:var(--muted);line-height:1.9;margin:0}.proof{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}.proof p{line-height:1.9;color:var(--muted)}.proof img{display:block;width:100%;max-width:480px;height:auto;border:1px solid var(--line)}.contact{display:flex;justify-content:space-between;gap:40px;align-items:center}.contact h2{margin:0 0 14px;font-weight:500;font-size:30px}.contact-links{display:flex;flex-direction:column;gap:12px;font-size:19px}.portrait{width:76px;height:100px;object-fit:cover;border:1px solid var(--line)}.about-person{display:flex;gap:22px;align-items:center}footer{padding:25px 0 38px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.8}.caption{font-size:13px!important}.education p{color:var(--muted);line-height:1.9}.education h3{font-size:22px;font-weight:500;margin-bottom:10px}@media(max-width:760px){header{height:70px;padding:0 6vw}nav{gap:16px}nav a{font-size:12px}nav a:last-child{display:none}.hero{min-height:840px;padding-top:65px;align-items:flex-start;background:linear-gradient(180deg,#081b24da 0%,#081b24a6 50%,#081b24da 100%)}.hero-copy{width:100%;max-width:none}.intro{max-width:100%}.role{font-size:18px}.metrics{gap:12px}.metrics strong{font-size:27px}.metrics span{font-size:12px}.section{padding:52px 0}.section-head h2{font-size:25px}.project{grid-template-columns:35px 1fr;gap:13px}.num{font-size:26px}.job{grid-template-columns:1fr;gap:12px}.skills{grid-template-columns:1fr;gap:28px}.proof{grid-template-columns:1fr;gap:25px}.contact{align-items:flex-start;flex-direction:column}.project h3,.job h3{font-size:19px}.contact-links{font-size:17px;overflow-wrap:anywhere}}@media(prefers-reduced-motion:reduce){#resume-page{scroll-behavior:auto}}

#resume-page{touch-action:pan-y}#resume-page img{max-width:100%}

.hero-identity{display:flex;align-items:center;gap:32px;margin-bottom:24px}.hero-identity h1{margin:0}.hero-portrait{width:110px;height:149px;object-fit:cover;flex-shrink:0;border:1px solid #c5e9e14d;border-radius:6px;box-shadow:0 12px 35px #0004}@media(max-width:760px){.hero-identity{gap:24px}.hero-portrait{width:86px;height:117px}.hero-identity h1{font-size:48px}}

/* Scroll-linked scene and lighter content surfaces */
#app{transform:translateY(var(--scene-shift,0px)) scale(var(--scene-zoom,1));transform-origin:60% 45%;will-change:transform}
.content{background:rgba(9,28,36,.72)}
.hero{background:linear-gradient(90deg,rgba(8,27,36,.85),rgba(8,27,36,.58) 46%,rgba(8,27,36,.06) 84%)}
.reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;z-index:30;pointer-events:none;background:#b7f1df;transform:scaleX(var(--reading,0));transform-origin:left}
.scroll-reveal{opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1)}
.scroll-reveal.in-view{opacity:1;transform:translateY(0)}
@media(max-width:760px){.hero{background:rgba(8,27,36,.62)}.content{background:rgba(9,28,36,.80)}}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none;transition:none}#app{transform:none}}

/* Reveal the actual original scene transitions while keeping text readable. */
.content{background:linear-gradient(90deg,rgba(5,21,29,.83),rgba(5,21,29,.56) 55%,rgba(5,21,29,.24))}.section h2,.section h3,.section p,.section li{text-shadow:0 2px 12px #001019}.content ul,.skills p,.education p,.proof p{color:#d4e5e7}@media(max-width:760px){.content{background:rgba(5,21,29,.67)}}

@media(min-width:1000px){.content{padding-right:43vw;background:linear-gradient(90deg,rgba(5,21,29,.94),rgba(5,21,29,.84) 43%,rgba(5,21,29,.20) 59%,rgba(5,21,29,.03) 100%)}.content .section{max-width:720px;margin-left:0}.section-head{flex-wrap:wrap;gap:10px}.project{grid-template-columns:44px 1fr;gap:18px}.job{grid-template-columns:1fr;gap:15px}.skills,.proof{grid-template-columns:1fr}.contact{flex-direction:column;align-items:flex-start}.proof img{max-width:350px}#app{transform:translateX(16vw);width:100vw!important}}
