*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#1c1c1b;color:#eeeede;font-family:Arial,"Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #ec5b9f;outline-offset:6px}header{height:90px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12;background:#1c1c1bf2;position:sticky;top:0;z-index:10}.wordmark{font-size:34px;font-weight:bold;letter-spacing:-4px;position:relative}.wordmark span{font-size:19px;letter-spacing:-2px}.wordmark i{display:inline-block;width:8px;height:8px;background:#e64a95;border-radius:50%;margin-left:8px}.nav-right{display:flex;align-items:center;gap:42px;font-size:13px}#menu-open{width:38px;height:36px;display:flex;flex-direction:column;justify-content:center;gap:8px;border:0;background:none;padding:0}#menu-open i{height:2px;width:100%;background:#eeeede;transition:transform .2s}#menu-open:hover i:first-child{transform:translateX(-6px)}main{overflow:hidden}.hero{max-width:1440px;margin:auto;padding:38px 5% 48px;position:relative;isolation:isolate}.hero-meta{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;color:#aaa99f}.hero h1{font-size:clamp(48px,7.4vw,110px);font-weight:400;line-height:1.15;letter-spacing:-4px;margin:35px 0 28px}.pink{color:#e64a95}.orb{position:absolute;z-index:-1;right:6%;top:-80px;width:470px;height:470px;border:1px solid #ffffff09;border-radius:50%;box-shadow:0 0 0 55px #ffffff02,0 0 0 110px #ffffff02}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px}.hero-bottom p{font-size:15px;line-height:1.9;color:#c2c2b8;margin:0}.hero-bottom strong{font-weight:400;color:#eeeede}.round-link{display:flex;align-items:center;gap:30px;font-size:14px}.round-link span{width:58px;height:58px;border:1px solid #73736b;display:grid;place-items:center;border-radius:50%;font-size:26px;transition:.25s}.round-link:hover span{background:#e64a95;border-color:#e64a95;color:#181818;transform:rotate(12deg)}.section{max-width:1440px;margin:auto;padding:65px 5%;border-top:1px solid #ffffff24}.section-top{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:38px}.section-top>span{font-size:11px;letter-spacing:1.5px;color:#aaa99f}.section-top h2{font-size:clamp(28px,3.4vw,48px);font-weight:400;margin:0;letter-spacing:-1px}.section-top small{font-size:14px;vertical-align:top;color:#b4b4a6}.grid{display:grid;grid-template-columns:1fr 1fr;gap:55px 28px}.card{min-width:0}.cover{display:block;height:330px;background:#272a2c;overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover;transition:transform .65s}.cover.zombie img{object-fit:contain}.cover.guofeng img{object-position:top}.card:hover .cover img{transform:scale(1.035)}.copy{padding:22px 0 0}.copy small{color:#b7b7aa;font-size:11px;letter-spacing:1px}.copy h2{font-size:30px;font-weight:400;margin:12px 0}.copy p{font-size:14px;line-height:1.8;color:#aaa99f;max-width:540px;margin:0}.actions{display:flex;gap:25px;flex-wrap:wrap;margin-top:23px}.btn{font-size:13px;border-bottom:1px solid #77776b;padding-bottom:8px;transition:color .2s,border-color .2s}.btn:hover{color:#ed72ad;border-color:#ed72ad}.primary{color:#ed72ad;border-color:#b14476}.about{padding-top:90px;padding-bottom:90px}.statement{font-size:clamp(32px,4.9vw,70px);line-height:1.45;letter-spacing:-1px;margin:60px 0 70px;max-width:1000px}.statement em{font-style:normal;color:#ed72ad}.bio{display:grid;grid-template-columns:1fr 1.6fr;gap:70px}.bio-label{font-size:24px!important;color:#eeeede!important}.bio-label span{font-size:13px;color:#aaa99f}.bio p{font-size:16px;line-height:2;color:#b7b7ac;margin:0 0 20px}.text-link{display:inline-flex;gap:70px;border-bottom:1px solid #66665d;padding-bottom:12px;margin-top:15px;font-size:14px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:60px 0}.services article>span{font-size:12px;color:#e86aa3}.services h3{font-size:25px;font-weight:400;margin:25px 0}.services p{color:#aaa99f;font-size:14px;line-height:1.9}details{border-block:1px solid #ffffff24}summary{list-style:none;cursor:pointer;padding:22px 0;font-size:15px;display:flex;justify-content:space-between}summary::-webkit-details-marker{display:none}summary span{color:#ed72ad;font-size:22px;transition:transform .2s}details[open] summary span{transform:rotate(45deg)}.skill-list{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:0 0 25px;font-size:14px;line-height:2;color:#b7b7ac}.experience>div{display:grid;grid-template-columns:200px 1fr 1fr;gap:30px;padding:28px 0;border-top:1px solid #ffffff24;align-items:baseline}.experience span{font-size:12px;color:#aaa99f}.experience h3{font-size:17px;font-weight:400;margin:0}.experience p{font-size:13px;color:#aaa99f;line-height:1.8;margin:0}.award{display:grid;grid-template-columns:200px 1fr 1fr;gap:30px;border-top:1px solid #ffffff24;padding:24px 0;font-size:14px}.award span{font-size:12px;color:#aaa99f}.award p{margin:0}.award b{font-weight:400;color:#aaa99f}.closing{max-width:1440px;margin:auto;padding:80px 5% 100px}.closing>p{font-size:11px;letter-spacing:2px;color:#aaa99f}.closing h2{font-size:clamp(48px,7vw,100px);font-weight:400;line-height:1.2;margin:30px 0 40px}.closing .round-link{justify-content:flex-end}footer{border-top:1px solid #ffffff24;padding:28px 5%;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#aaa99f}dialog{border:0;background:#eeeede;color:#1c1c1b;width:min(100%,900px);max-width:100%;max-height:100dvh;padding:40px}dialog::backdrop{background:#090909c9;backdrop-filter:blur(8px)}.menu-head{display:flex;justify-content:space-between;align-items:center;font-size:12px}#menu-close{background:none;border:0;padding:15px}dialog nav{display:grid;margin-top:30px}dialog nav a{font-size:clamp(32px,5vw,60px);padding:20px 0;border-bottom:1px solid #aaa;display:flex;align-items:center;justify-content:space-between}dialog nav span{font-size:11px;letter-spacing:1px}dialog nav a:hover{color:#b0005b}.reveal{transition:opacity .7s,transform .7s}.reveal.pending{opacity:0;transform:translateY(22px)}@media(max-width:760px){header{height:72px}.nav-right{gap:24px}.hero{padding-top:25px}.hero-meta{font-size:9px;letter-spacing:1px}.hero h1{font-size:clamp(39px,9vw,66px);letter-spacing:-2px;margin:40px 0 28px}.hero-bottom{align-items:start;flex-direction:column;gap:25px}.hero-bottom p{font-size:14px}.round-link span{width:44px;height:44px}.hero-bottom .round-link{align-self:flex-end}.section{padding:42px 5%}.section-top{align-items:start;flex-direction:column;gap:16px;margin-bottom:28px}.grid{grid-template-columns:1fr;gap:40px}.cover{height:270px}.copy h2{font-size:25px}.bio{grid-template-columns:1fr;gap:15px}.statement{margin:25px 0 40px;font-size:31px}.bio p{font-size:14px}.services{grid-template-columns:1fr;gap:25px;margin:35px 0}.services h3{margin:15px 0}.skill-list{grid-template-columns:1fr;gap:0}.experience>div{grid-template-columns:1fr;gap:12px}.award{grid-template-columns:45px 1fr;gap:15px;font-size:12px}.award b{grid-column:2}.closing{padding:50px 5%}.closing h2{font-size:48px}footer{flex-wrap:wrap;line-height:1.8}dialog{padding:25px}dialog nav span{font-size:9px}.orb{right:-200px}.reveal.pending{transform:translateY(12px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.reveal.pending{opacity:1;transform:none}}

/* Living motion layer. Native cursors and links remain available. */
.hero{--mx:0px;--my:0px;--sx:0px;--sy:0px;--scroll:0px}.hero h1{position:relative;z-index:1;transform:translate(var(--sx),var(--sy));transition:none}.orb{width:420px;height:420px;top:12px;right:8%;border:0;box-shadow:none;transform:translate(var(--mx),calc(var(--my) + var(--scroll)));opacity:.72}.orb i{position:absolute;inset:14%;border:1px solid #e971ac66;border-radius:46% 54% 61% 39% / 42% 40% 60% 58%;animation:orbit 18s linear infinite}.orb i:nth-child(2){inset:5%;border-color:#eeeede30;animation-duration:26s;animation-direction:reverse;transform:rotate(55deg)}.orb i:nth-child(3){inset:22%;border-color:#e971ac90;animation-duration:13s}.orb b{position:absolute;inset:0;display:grid;place-items:center;font-size:150px;font-weight:400;color:#e64a9538;animation:orbit 45s linear infinite}.orb:after{content:"";position:absolute;left:17%;top:27%;width:9px;height:9px;background:#f384b8;border-radius:50%;box-shadow:0 0 32px #e64a95;animation:breathe 4s ease-in-out infinite}.hero-meta,.hero h1,.hero-bottom{animation:hero-arrive .95s cubic-bezier(.2,.7,.2,1) both}.hero h1{animation-delay:.1s}.hero-bottom{animation-delay:.25s}@keyframes orbit{to{rotate:360deg}}@keyframes breathe{50%{scale:1.7;opacity:.5}}@keyframes hero-arrive{from{opacity:0;filter:blur(5px);translate:0 20px}to{opacity:1;filter:blur(0);translate:0 0}}.reading-line{position:fixed;top:0;left:0;width:100%;height:3px;background:#ed72ad;transform:scaleX(0);transform-origin:left;z-index:50;pointer-events:none}.cover{position:relative;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s ease,box-shadow .35s ease;transform-style:preserve-3d}.cover:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--px,50%) var(--py,50%),#ffffff26,transparent 55%);opacity:0;transition:opacity .35s}.cover:hover:after{opacity:1}.cover:hover{box-shadow:0 16px 40px #0005}.cover img{transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s}.cover:hover img{transform:scale(1.055)}.project-cue{position:absolute;right:20px;bottom:20px;width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:#e971ac;color:#211820;font-size:12px;opacity:0;translate:0 12px;transition:opacity .25s,translate .3s;pointer-events:none}.cover:hover .project-cue,.cover:focus-visible .project-cue{opacity:1;translate:0 0}.round-link{transition:translate .25s ease}.round-link:hover span{transform:rotate(-30deg) scale(1.08)}.btn{position:relative;transition:color .25s,translate .25s,border-color .25s}.btn:hover{translate:4px -2px}.card.reveal{transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms)}.card.reveal.pending{transform:translateY(45px)}.services article{transition:transform .4s,color .4s}.services article:hover{transform:translateY(-8px)}.services article:hover h3{color:#ed72ad}.experience>div,.award{transition:background .3s,padding .3s}.experience>div:hover,.award:hover{background:#ffffff04;padding-left:12px;padding-right:12px}dialog[open]{animation:menu-arrive .4s cubic-bezier(.2,.7,.2,1)}dialog[open] nav a{animation:hero-arrive .45s both}dialog[open] nav a:nth-child(2){animation-delay:.05s}dialog[open] nav a:nth-child(3){animation-delay:.1s}dialog[open] nav a:nth-child(4){animation-delay:.15s}dialog nav a{transition:color .25s,padding .25s}dialog nav a:hover{padding-left:14px}dialog::backdrop{animation:backdrop-arrive .3s}@keyframes menu-arrive{from{opacity:0;transform:translateY(-25px) scale(.97)}to{opacity:1;transform:none}}@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}@media(max-width:760px){.orb{width:290px;height:290px;right:-80px;top:35px;opacity:.34}.orb b{font-size:105px}.hero h1{transform:none}.project-cue{width:48px;height:48px;font-size:10px;opacity:1;translate:0 0;right:12px;bottom:12px}.cover{transform:none!important}.experience>div:hover,.award:hover{padding-left:0;padding-right:0}}@media(prefers-reduced-motion:reduce){.hero h1,.orb,.cover,.round-link{transform:none!important;translate:none!important}.hero-meta,.hero h1,.hero-bottom{opacity:1;filter:none}.orb i,.orb b,.orb:after{animation:none!important}.reveal{transition:none!important}.reveal.pending{opacity:1;transform:none}.project-cue{translate:none}}
