@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap');

:root{--bg:#111210;--panel:#151613;--ink:#f1f1ec;--muted:#92938c;--line:#30312c;--acid:#e7ff35;--side:clamp(82px,11vw,176px);--pad:clamp(26px,5vw,82px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans','Noto Sans SC',sans-serif;cursor:none;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}.noise{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.cursor-dot,.cursor-ring{position:fixed;left:0;top:0;border-radius:50%;pointer-events:none;z-index:99;transform:translate(-50%,-50%)}.cursor-dot{width:5px;height:5px;background:var(--acid)}.cursor-ring{width:34px;height:34px;border:1px solid rgba(231,255,53,.55);transition:width .2s,height .2s,background .2s}.cursor-ring.hover{width:58px;height:58px;background:rgba(231,255,53,.09)}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--side);z-index:50;border-right:1px solid var(--line);background:rgba(15,16,14,.91);backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center}.logo{font-size:32px;font-weight:900;margin-top:42px;letter-spacing:-3px}.logo i{color:var(--acid);font-style:normal}.sidebar nav{margin:auto 0;display:flex;flex-direction:column;gap:14px;width:100%}.nav-link{height:48px;display:flex;align-items:center;gap:12px;padding:0 17%;color:#7e7f78;font-size:14px;position:relative;transition:.25s}.nav-link em{font-style:normal;font-size:9px}.nav-link::before{content:'';position:absolute;left:0;width:3px;height:0;background:var(--acid);transition:.25s}.nav-link:hover,.nav-link.active{color:#fff}.nav-link.active::before{height:24px}.nav-link.active em{color:var(--acid)}.side-foot{writing-mode:vertical-rl;font-size:8px;color:#62635d;letter-spacing:2px;display:flex;gap:15px;margin-bottom:32px}.menu-toggle{display:none}
.progress{position:fixed;z-index:60;right:0;top:0;height:3px;width:calc(100% - var(--side));background:transparent}.progress span{display:block;width:0;height:100%;background:var(--acid)}main{margin-left:var(--side)}.panel{min-height:100vh;position:relative;overflow:hidden;padding:clamp(90px,10vw,150px) var(--pad)}.section-mark{position:absolute;right:var(--pad);top:44px;display:flex;align-items:center;gap:15px}.section-mark span{font-size:12px;color:var(--acid)}.section-mark i{font-style:normal;font-size:9px;letter-spacing:2px;color:#73746e}.section-mark::after{content:'';width:40px;height:1px;background:var(--acid)}
.hero{height:100vh;padding:0;background:#0e0f0d}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,10,9,.98) 0%,rgba(9,10,9,.84) 32%,rgba(9,10,9,.12) 70%,rgba(9,10,9,.24) 100%)}.hero-copy{position:absolute;left:8%;top:50%;transform:translateY(-50%);z-index:2}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#aaa;margin:0 0 28px;display:flex;align-items:center;gap:12px}.eyebrow span{width:38px;height:2px;background:var(--acid)}h1{font-size:clamp(50px,7.6vw,118px);font-weight:300;line-height:.92;letter-spacing:-.06em;margin:0}h1 strong{font-weight:800}h1 strong span{color:var(--acid)}.lead{font-size:clamp(13px,1.2vw,18px);letter-spacing:.16em;margin:30px 0 14px}.intro{font-size:13px;line-height:2;color:var(--muted)}.hero-actions{display:flex;gap:28px;align-items:center;margin-top:36px}.button{border:1px solid var(--acid);padding:15px 20px;font-size:12px;min-width:140px;display:flex;justify-content:space-between;transition:.25s}.button:hover{background:var(--acid);color:#111}.text-link{font-size:12px;border-bottom:1px solid #555;padding:10px 0;display:inline-flex;gap:22px}.text-link span{color:var(--acid)}.hero-index{position:absolute;right:4%;top:9%;display:grid;grid-template-columns:auto auto;align-items:end}.hero-index b{font-size:52px}.hero-index>span{font-size:12px;color:#777;margin:0 0 10px 5px}.hero-index small{grid-column:1/3;font-size:8px;letter-spacing:2px;color:#777;border-top:1px solid var(--acid);padding-top:10px}.scroll-cue{position:absolute;right:4%;bottom:5%;font-size:8px;letter-spacing:2px;color:#777;display:flex;gap:10px;align-items:center}.scroll-cue span{width:34px;height:1px;background:var(--acid);animation:pulse 1.6s infinite}@keyframes pulse{50%{width:55px}}
.about{background:#151613}.about::before{content:'糖';font-weight:900;font-size:70vw;color:#fff;opacity:.014;position:absolute;right:-8vw;top:-25vw}.about-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.about h2,.section-head h2,.skills h2,.contact h2{font-size:clamp(42px,5.7vw,84px);line-height:1.12;letter-spacing:-.05em;margin:0}.about h2 em,.contact h2 em{font-style:normal;color:var(--acid)}.about-copy{padding-top:35px}.quote{font-size:clamp(18px,2vw,28px);font-weight:600;line-height:1.5;margin:0 0 34px}.about-copy>p:nth-child(2){font-size:13px;line-height:2;color:var(--muted);max-width:520px}.facts{display:flex;gap:clamp(25px,4vw,60px);margin:44px 0}.facts div{display:flex;flex-direction:column}.facts b{font-size:28px;color:var(--acid)}.facts span{font-size:10px;color:#777;margin-top:5px}.ticker{position:absolute;bottom:0;left:0;width:100%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;white-space:nowrap;overflow:hidden;color:#5f605a;font-size:13px;letter-spacing:3px}.ticker div{width:max-content;animation:ticker 28s linear infinite}@keyframes ticker{to{transform:translateX(-50%)}}
.works{background:#0f100e}.section-head{display:flex;justify-content:space-between;align-items:end;max-width:1180px;margin:0 auto 70px}.section-head h2 span,.skills h2 span{color:var(--acid)}.section-head>p{color:var(--muted);font-size:11px;line-height:2}.project-list{max-width:1180px;margin:auto;border-top:1px solid var(--line)}.project{display:grid;grid-template-columns:60px 1fr 70px 35px;align-items:center;padding:28px 12px;border-bottom:1px solid var(--line);transition:.25s;position:relative}.project::before{content:'';position:absolute;inset:0;background:var(--acid);transform:scaleY(0);transform-origin:bottom;transition:.3s;z-index:-1}.project:hover{color:#111;padding-left:25px}.project:hover::before{transform:scaleY(1)}.project-no{font-size:10px;color:#777}.project h3{font-size:clamp(22px,2.4vw,34px);margin:0 0 8px}.project p{font-size:10px;color:#777;margin:0}.project:hover p,.project:hover .project-no{color:#333}.project time{font-size:10px}.project i{font-size:22px;font-style:normal}.project-preview{position:fixed;width:150px;height:190px;background:var(--acid);z-index:10;pointer-events:none;opacity:0;transform:translate(-50%,-50%) rotate(-5deg) scale(.8);transition:opacity .2s,transform .25s;display:grid;place-items:center;color:#111;text-align:center;font-size:12px;letter-spacing:2px}.project-preview.show{opacity:1;transform:translate(-50%,-50%) rotate(4deg) scale(1)}
.skills{background:#171815}.skills-layout{max-width:1180px;margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw}.muted{color:var(--muted);font-size:12px;line-height:1.8;margin-top:35px}.skill-stack{border-top:1px solid var(--line)}.skill-stack article{display:grid;grid-template-columns:45px 1fr 1.4fr 30px;align-items:center;border-bottom:1px solid var(--line);padding:27px 8px;transition:.25s}.skill-stack article:hover{transform:translateX(12px);border-color:var(--acid)}.skill-stack b{font-size:9px;color:var(--acid)}.skill-stack h3{margin:0;font-size:22px}.skill-stack p{color:var(--muted);font-size:10px}.skill-stack span{color:var(--acid)}.tool-row{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-around;border-top:1px solid var(--line);padding:20px;color:#5b5c56;font-size:9px;letter-spacing:2px}
.contact{background:var(--acid);color:#10110f;display:flex;flex-direction:column}.contact .section-mark span{color:#111}.contact .section-mark i{color:#525549}.contact .section-mark::after{background:#111}.contact-inner{width:100%;max-width:1180px;margin:auto}.contact .eyebrow{color:#46483f}.contact .eyebrow span{background:#111}.contact h2 em{color:#10110f;-webkit-text-stroke:1px #10110f}.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,330px);gap:clamp(45px,7vw,110px);align-items:end}.mail{font-size:clamp(19px,3vw,42px);border-bottom:2px solid #111;display:flex;justify-content:space-between;padding:22px 0;margin-top:55px}.mail span{transition:.25s}.mail:hover span{transform:translate(5px,-5px)}.contact-details{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid rgba(0,0,0,.28)}.contact-details>a,.contact-details>div{padding:24px 0;display:flex;flex-direction:column;gap:5px}.contact-details>a{border-right:1px solid rgba(0,0,0,.28)}.contact-details>div{padding-left:28px}.contact-details small{font-size:8px;letter-spacing:1.8px;opacity:.55}.contact-details strong{font-size:clamp(16px,1.5vw,22px)}.contact-details span{font-size:9px;opacity:.65}.contact-details>a:hover span{text-decoration:underline}.contact-meta{display:flex;justify-content:space-between;margin-top:30px;font-size:10px;line-height:1.8}.contact-meta p:last-child{text-align:right}.wechat-card{margin:0;background:#111;padding:16px;position:relative;box-shadow:14px 14px 0 rgba(16,17,15,.16);transition:transform .35s}.wechat-card:hover{transform:translateY(-7px) rotate(-.7deg)}.wechat-card::before{content:'05';position:absolute;right:18px;top:15px;color:var(--acid);font-size:9px;letter-spacing:1px}.wechat-label{color:#fff;padding:3px 0 14px;display:flex;flex-direction:column;gap:4px}.wechat-label span{color:var(--acid);font-size:7px;letter-spacing:2px}.wechat-label b{font-size:13px}.wechat-card img{display:block;width:100%;aspect-ratio:1/1.12;object-fit:cover;object-position:center}.wechat-card figcaption{color:#fff;font-size:8px;letter-spacing:1.2px;padding:14px 2px 2px;display:flex;align-items:center;gap:8px}.wechat-card figcaption i{width:7px;height:7px;border-radius:50%;background:var(--acid)}.contact footer{display:flex;justify-content:space-between;border-top:1px solid rgba(0,0,0,.3);padding-top:20px;font-size:8px;letter-spacing:1.5px}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){body{cursor:auto}.cursor-dot,.cursor-ring{display:none}:root{--side:0px}.sidebar{width:100%;height:70px;bottom:auto;flex-direction:row;padding:0 22px;justify-content:space-between;border-right:0;border-bottom:1px solid var(--line)}.logo{margin:0;font-size:25px}.sidebar nav{position:fixed;inset:70px 0 0;background:#111;display:flex;margin:0;padding:60px 24px;transform:translateX(-100%);transition:.4s}.sidebar.open nav{transform:none}.nav-link{font-size:20px;padding:0 10%;height:60px}.side-foot{display:none}.menu-toggle{display:block;border:0;background:none;width:38px;height:38px;position:relative}.menu-toggle span{position:absolute;left:8px;width:22px;height:1px;background:white;transition:.3s}.menu-toggle span:first-child{top:14px}.menu-toggle span:last-child{top:22px}.sidebar.open .menu-toggle span:first-child{transform:rotate(45deg);top:18px}.sidebar.open .menu-toggle span:last-child{transform:rotate(-45deg);top:18px}.progress{width:100%}.panel{padding-top:110px}.hero{height:100svh;padding:0}.hero-photo{object-position:68% center}.hero-shade{background:linear-gradient(0deg,rgba(9,10,9,.98) 0%,rgba(9,10,9,.68) 58%,rgba(9,10,9,.2) 100%)}.hero-copy{left:24px;right:24px;top:auto;bottom:90px;transform:none}.hero-index{top:95px}.scroll-cue{display:none}.about-grid,.skills-layout{grid-template-columns:1fr;gap:55px}.about-copy{padding:0}.section-head{display:block}.section-head>p{margin-top:20px}.project{grid-template-columns:35px 1fr 25px}.project time{display:none}.project-preview{display:none}.skill-stack article{grid-template-columns:35px 1fr 25px}.skill-stack p{grid-column:2/3}.tool-row{overflow:hidden;gap:30px;justify-content:flex-start;padding-left:25px}.contact-layout{grid-template-columns:1fr}.contact-details{grid-template-columns:1fr}.contact-details>a{border-right:0;border-bottom:1px solid rgba(0,0,0,.28)}.contact-details>div{padding-left:0}.contact-meta{display:block}.contact-meta p:last-child{text-align:left}.wechat-card{max-width:330px;width:100%;margin:10px auto 25px}.contact footer span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
.project{isolation:isolate}

/* Case study overlay */
.project{width:100%;color:inherit;background:none;border-left:0;border-right:0;border-top:0;text-align:left;font-family:inherit;cursor:none}.case-modal{position:fixed;inset:0;z-index:100;background:#0d0e0c;color:var(--ink);overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(4vh);transition:opacity .45s,transform .45s,visibility .45s}.case-modal.open{opacity:1;visibility:visible;transform:none}.case-progress{position:fixed;left:0;top:0;height:3px;width:0;background:var(--acid);z-index:3}.case-close{position:fixed;right:34px;top:28px;width:54px;height:54px;border:1px solid #555;background:rgba(15,16,14,.82);border-radius:50%;z-index:4;cursor:none;transition:.3s}.case-close:hover{background:var(--acid);border-color:var(--acid);transform:rotate(90deg)}.case-close span{position:absolute;width:20px;height:1px;background:#fff;left:16px;top:26px}.case-close span:first-child{transform:rotate(45deg)}.case-close span:last-child{transform:rotate(-45deg)}.case-close:hover span{background:#111}.case-hero{min-height:76vh;display:grid;grid-template-columns:1fr 1fr;position:relative;align-items:end;padding:10vw var(--pad) 6vw;overflow:hidden}.case-hero::before{content:attr(data-index);position:absolute;right:3vw;top:-5vw;font-size:35vw;font-weight:900;color:#fff;opacity:.025;line-height:1}.case-kicker{color:var(--acid);font-size:10px;letter-spacing:3px}.case-hero h2{font-size:clamp(48px,8vw,118px);line-height:.93;letter-spacing:-.06em;margin:22px 0;max-width:900px}.case-summary{max-width:430px;justify-self:end;color:#aaa;font-size:13px;line-height:2}.case-summary dl{display:grid;grid-template-columns:90px 1fr;border-top:1px solid #333;margin-top:35px}.case-summary dt,.case-summary dd{margin:0;padding:12px 0;border-bottom:1px solid #333}.case-summary dt{color:#666;font-size:9px}.case-summary dd{font-size:11px}.case-cover{height:min(70vw,760px);margin:0 var(--pad);overflow:hidden;background:#191a17;position:relative}.case-cover img,.case-cover video{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s}.case-cover:hover img{transform:scale(1.025)}.case-section{max-width:1180px;margin:auto;padding:clamp(90px,10vw,150px) var(--pad)}.case-section-head{display:grid;grid-template-columns:100px 1fr 1fr;gap:4vw;margin-bottom:60px}.case-section-head b{color:var(--acid);font-size:11px}.case-section-head h3{font-size:clamp(30px,4vw,56px);margin:0;line-height:1.1}.case-section-head p{color:#888;font-size:12px;line-height:2;margin:0}.case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px}.case-media{background:#191a17;overflow:hidden;min-height:280px;position:relative}.case-media.wide{grid-column:1/3}.case-media img,.case-media video{display:block;width:100%;height:100%;object-fit:cover}.case-media figcaption{position:absolute;left:16px;bottom:16px;background:rgba(12,13,11,.86);padding:8px 12px;font-size:9px;letter-spacing:1px}.case-note{padding:8vw var(--pad);background:var(--acid);color:#111;text-align:center}.case-note p{font-size:clamp(26px,4vw,58px);max-width:900px;line-height:1.2;margin:auto;font-weight:700}.case-note small{display:block;margin-top:25px;letter-spacing:3px}.case-next{display:flex;justify-content:space-between;align-items:center;padding:45px var(--pad);border-top:1px solid #333;font-size:12px}.case-next button{background:none;border:0;color:var(--acid);font:inherit;cursor:none}.body-modal-open{overflow:hidden}
@media(max-width:800px){.project{cursor:auto}.case-close{right:16px;top:15px;cursor:auto}.case-hero{grid-template-columns:1fr;padding-top:130px}.case-summary{justify-self:start;margin-top:40px}.case-cover{height:60vh;margin:0 18px}.case-section{padding-left:22px;padding-right:22px}.case-section-head{grid-template-columns:1fr}.case-gallery{grid-template-columns:1fr}.case-media.wide{grid-column:auto}.case-media{min-height:220px}.case-next button{cursor:auto}}

.process-section{padding-top:40px}.process-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,4vw,54px)}.process-card{min-width:0}.process-card:nth-child(even){padding-top:8vw}.process-image{height:min(52vw,650px);background:#1b1c18;overflow:hidden;position:relative;border:1px solid #292a26}.process-image img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .7s}.process-card:hover .process-image img{transform:scale(1.035)}.process-image span{position:absolute;left:14px;top:14px;background:var(--acid);color:#111;padding:7px 10px;font-size:8px;letter-spacing:1.5px}.process-card h4{font-size:clamp(20px,2.2vw,32px);margin:20px 0 8px}.process-card>p{font-size:11px;line-height:1.9;color:#85867f;max-width:420px;margin:0}.explode-section{padding-top:50px}.explode-view{height:min(62vw,720px);position:relative;background:radial-gradient(circle at center,#282a25,#151613 65%);overflow:hidden;border:1px solid #34352f;cursor:crosshair}.explode-final{position:absolute;inset:7%;width:86%;height:86%;object-fit:contain;opacity:.2;filter:saturate(.45);transition:opacity .4s,filter .4s}.explode-view:hover .explode-final{opacity:.08;filter:saturate(0)}.explode-layers{position:absolute;inset:10%;display:grid;place-items:center}.explode-layers img{position:absolute;max-width:40%;max-height:42%;object-fit:contain;filter:drop-shadow(0 12px 20px rgba(0,0,0,.45));transition:transform .45s cubic-bezier(.2,.8,.2,1)}.explode-layers img:nth-child(1){left:20%;top:18%}.explode-layers img:nth-child(2){right:20%;top:25%}.explode-layers img:nth-child(3){left:43%;top:43%;max-width:22%}.explode-layers img:nth-child(4){right:18%;bottom:16%}.explode-layers img:nth-child(5){left:14%;bottom:12%}.explode-layers img:nth-child(6){right:10%;top:8%}.explode-view:hover .explode-layers img:nth-child(1){margin-left:-9%;margin-top:-6%}.explode-view:hover .explode-layers img:nth-child(2){margin-right:-8%;margin-top:-3%}.explode-view:hover .explode-layers img:nth-child(3){transform:scale(1.25)}.explode-view:hover .explode-layers img:nth-child(4){margin-right:-6%;margin-bottom:-4%}.explode-view:hover .explode-layers img:nth-child(5){margin-left:-7%;margin-bottom:-5%}.explode-view:hover .explode-layers img:nth-child(6){margin-right:-5%;margin-top:-4%}.explode-hint{position:absolute;left:24px;bottom:24px;display:flex;flex-direction:column;gap:5px;background:rgba(10,11,9,.82);padding:12px 16px}.explode-hint span{font-size:7px;letter-spacing:2px;color:var(--acid)}.explode-hint b{font-size:11px}.case-media video{background:#050505}
@media(max-width:800px){.process-grid{grid-template-columns:1fr}.process-card:nth-child(even){padding-top:0}.process-image{height:72vh}.explode-view{height:70vh;cursor:auto}.explode-layers img{max-width:58%}.explode-hint span{display:none}}

/* Unity editor workflow illustration */
.unity-media{height:auto;min-height:560px;background:#1e1f21}.unity-panel{height:560px;display:grid;grid-template-columns:190px 1fr 210px;grid-template-rows:42px 1fr 54px;background:#27282b;color:#c9cacf;font-family:Consolas,monospace;font-size:10px}.unity-panel header{grid-column:1/4;background:#191a1c;display:flex;align-items:center;padding:0 14px;border-bottom:1px solid #0d0e0f;gap:20px}.unity-panel header b{font-size:17px;color:#fff}.unity-panel header span{color:#73757b}.unity-panel header i{font-style:normal;margin-left:auto;background:#e7ff35;color:#151613;padding:7px 14px;font-weight:bold}.unity-hierarchy,.unity-inspector{display:flex;flex-direction:column;border-right:1px solid #151618;background:#222326}.unity-inspector{border-right:0;border-left:1px solid #151618}.unity-hierarchy strong,.unity-inspector strong{font-size:9px;letter-spacing:1.5px;color:#85878c;background:#1d1e20;padding:10px;border-bottom:1px solid #151618}.unity-hierarchy span,.unity-inspector span,.unity-inspector b{padding:7px 12px;border-bottom:1px solid #303135}.unity-inspector b{color:#fff;background:#333438}.unity-scene{position:relative;overflow:hidden;background:linear-gradient(#7fa0b1 0 42%,#50594d 42% 100%);perspective:600px}.scene-grid{position:absolute;inset:42% -20% -45%;background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);background-size:42px 42px;transform:rotateX(62deg);transform-origin:top}.scene-object{position:absolute;width:210px;height:150px;left:50%;top:53%;transform:translate(-50%,-50%);border:2px solid #ff9d23;background:linear-gradient(135deg,#6e5a4d,#302e2c);box-shadow:0 30px 60px rgba(0,0,0,.35)}.scene-object span,.scene-object i,.scene-object b{position:absolute;background:#525b62;border:1px solid #8c969c}.scene-object span{width:70px;height:110px;left:18px;bottom:0}.scene-object i{width:82px;height:65px;right:14px;top:18px}.scene-object b{width:52px;height:32px;right:28px;bottom:12px}.unity-scene label{position:absolute;left:15px;top:15px;color:#fff;letter-spacing:1px}.unity-scene small{color:#d5d7da;line-height:2}.unity-panel footer{grid-column:1/4;background:#202124;border-top:1px solid #111;display:flex;align-items:flex-start;gap:25px;padding:8px 14px}.unity-panel footer span{color:#fff;border-bottom:2px solid var(--acid);padding-bottom:7px}.unity-panel footer b{font-weight:normal;color:#6f7176;margin-left:15px}.unity-media figcaption{z-index:2}.unity-media::after{content:'UNITY 制作流程  ·  01 场景与资产导入  →  02 灯光材质配置  →  03 C# 交互逻辑  →  04 Game 窗口运行测试  →  05 录屏输出';position:absolute;left:0;right:0;bottom:0;padding:18px 22px;background:rgba(9,10,9,.94);color:#d6d7d1;font-size:10px;letter-spacing:1px;line-height:1.8}.unity-media figcaption{bottom:57px}
@media(max-width:800px){.unity-media{min-height:500px}.unity-panel{height:500px;grid-template-columns:100px 1fr;grid-template-rows:42px 1fr 54px}.unity-panel header{grid-column:1/3}.unity-inspector{display:none}.unity-panel footer{grid-column:1/3}.unity-hierarchy{font-size:8px}.unity-hierarchy span{padding:6px}.scene-object{width:140px;height:105px}.unity-media::after{font-size:8px;padding:12px}.unity-media figcaption{bottom:74px}}

/* Resume-backed profile and capability details */
.profile-lines{margin-top:28px;border-top:1px solid var(--line)}.profile-lines>div{display:grid;grid-template-columns:85px 1fr;gap:5px 18px;padding:15px 0;border-bottom:1px solid var(--line)}.profile-lines small{grid-row:1/3;font-size:8px;letter-spacing:1.5px;color:var(--acid);padding-top:3px}.profile-lines b{font-size:12px;font-weight:500}.profile-lines span{font-size:9px;color:#777}.skill-note{display:flex;align-items:center;gap:14px;margin-top:45px}.skill-note b{font-size:42px;line-height:1;color:var(--acid)}.skill-note span{font-size:8px;letter-spacing:1px;color:#777;line-height:1.7}.skill-stack article>span{font-size:8px;letter-spacing:.7px;text-align:right;max-width:105px}.skill-stack article:nth-child(4){border-color:rgba(231,255,53,.4)}
@media(max-width:800px){.profile-lines>div{grid-template-columns:72px 1fr}.skill-note{margin:25px 0}.skill-stack article>span{font-size:7px}.facts{flex-wrap:wrap}}

/* Featured work cards: visual-first editorial layout */
.works{padding-bottom:clamp(100px,12vw,180px)}.works .section-head{margin-bottom:clamp(45px,7vw,90px)}.project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(34px,6vw,88px) clamp(24px,4vw,60px);border-top:0;max-width:1180px}.project-list .project{display:grid;grid-template-columns:1fr auto 28px;grid-template-rows:auto auto;align-items:end;gap:18px 12px;padding:0 0 22px;border:0;border-bottom:1px solid var(--line);overflow:hidden;isolation:isolate}.project-list .project:nth-child(even){transform:translateY(clamp(55px,8vw,110px))}.project-list .project:last-child{grid-column:1/2}.project-list .project::before{display:none}.project-list .project:hover{padding-left:0;color:var(--ink)}.project-thumb{grid-column:1/4;display:block;width:100%;aspect-ratio:4/3;overflow:hidden;background:#22231f;position:relative}.project-thumb::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(8,9,8,.7));opacity:.45;transition:.45s}.project-thumb img{width:100%;height:100%;display:block;object-fit:cover;filter:grayscale(1) contrast(1.05);transform:scale(1.015);transition:filter .55s,transform .8s cubic-bezier(.2,.75,.2,1)}.project:nth-child(2) .project-thumb img,.project:nth-child(5) .project-thumb img{object-position:center 30%}.project:nth-child(4) .project-thumb img{object-fit:contain;background:#202226}.project-thumb>b{position:absolute;right:18px;bottom:16px;z-index:2;font-size:9px;letter-spacing:1.5px;background:var(--acid);color:#111;padding:10px 13px;transform:translateY(55px);transition:.35s}.project:hover .project-thumb img{filter:grayscale(0);transform:scale(1.06)}.project:hover .project-thumb::after{opacity:.1}.project:hover .project-thumb>b{transform:none}.project-list .project-no{grid-column:1/4;font-size:8px;letter-spacing:1.5px;color:var(--acid);margin-bottom:-6px}.project-copy{grid-column:1/2}.project-list .project h3{font-size:clamp(22px,2.35vw,35px);line-height:1.08;margin:0 0 12px;letter-spacing:-.025em}.project-list .project p{font-size:11px;line-height:1.75;color:#9b9c95;max-width:430px;margin:0 0 12px}.project-list .project small{display:block;font-size:8px;letter-spacing:.9px;color:#62635e}.project-list .project time{grid-column:2/3;align-self:end;color:#777;font-size:9px}.project-list .project>i{grid-column:3/4;align-self:end;color:var(--acid);transition:.3s}.project-list .project:hover>i{transform:translate(4px,-4px)}.project-preview{display:none}.project-thumb-unity{background:radial-gradient(circle at 65% 35%,#465762,#202326 52%,#141516);display:grid;place-items:center}.project-thumb-unity::before{content:'';position:absolute;inset:48% -10% -30%;background-image:linear-gradient(rgba(231,255,53,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(231,255,53,.13) 1px,transparent 1px);background-size:34px 34px;transform:perspective(450px) rotateX(60deg)}.unity-cover-mark{position:relative;z-index:1;display:grid;grid-template-columns:auto auto;align-items:end;gap:10px 18px}.unity-cover-mark strong{font-size:clamp(42px,7vw,88px);line-height:.8;letter-spacing:-.08em}.unity-cover-mark em{font-style:normal;font-size:8px;line-height:1.7;letter-spacing:2px;color:#a4a7a7}.unity-cover-mark u{grid-column:1/3;text-decoration:none;border:1px solid var(--acid);color:var(--acid);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;margin-top:10px;transition:.35s}.project:hover .unity-cover-mark u{background:var(--acid);color:#111;transform:scale(1.12)}
@media(max-width:800px){.project-list{grid-template-columns:1fr;gap:48px}.project-list .project:nth-child(even){transform:none}.project-list .project:last-child{grid-column:auto}.project-thumb{aspect-ratio:1.12/1}.project-list .project{grid-template-columns:1fr auto 24px;cursor:auto}.project-list .project p{font-size:10px}.project-thumb>b{transform:none;padding:8px 10px}.unity-cover-mark strong{font-size:52px}}

/* Restore the compact works index; visual depth lives inside each case study. */
.works{padding-bottom:var(--pad)}.works .section-head{margin-bottom:70px}.project-list{display:block;max-width:1180px;margin:auto;border-top:1px solid var(--line)}.project-list .project,.project-list .project:nth-child(even),.project-list .project:last-child{display:grid;grid-template-columns:60px 1fr 70px 35px;grid-template-rows:auto;align-items:center;gap:0;padding:28px 12px;border-bottom:1px solid var(--line);transform:none;overflow:visible}.project-list .project::before{display:block}.project-list .project:hover{padding-left:25px;color:#111}.project-list .project-no{grid-column:auto;margin:0;font-size:10px;letter-spacing:0;color:#777}.project-list .project>div{grid-column:auto}.project-list .project h3{font-size:clamp(22px,2.4vw,34px);margin:0 0 8px}.project-list .project p{font-size:10px;line-height:normal;color:#777;margin:0}.project-list .project time{grid-column:auto;align-self:auto;font-size:10px}.project-list .project>i{grid-column:auto;align-self:auto}.project-list .project:hover p,.project-list .project:hover .project-no{color:#333}.project-preview{display:grid}
@media(max-width:800px){.works{padding-bottom:110px}.project-list .project,.project-list .project:nth-child(even),.project-list .project:last-child{grid-template-columns:35px 1fr 25px;padding:24px 8px;cursor:auto}.project-list .project time{display:none}.project-list .project:hover{padding-left:8px}.project-preview{display:none}}

/* Interactive poster anatomy */
.poster-breakdown-section{padding-top:45px}.poster-breakdown{display:grid;grid-template-columns:minmax(320px,.88fr) 1.12fr;gap:clamp(28px,6vw,85px);align-items:center}.poster-canvas{--rx:0deg;--ry:0deg;position:relative;height:min(70vw,760px);overflow:hidden;background:#e8e6e0;border:1px solid #383934;perspective:900px}.poster-canvas img{width:100%;height:100%;object-fit:contain;display:block;transform:rotateX(var(--rx)) rotateY(var(--ry)) scale(1);transform-origin:center;transition:transform .65s cubic-bezier(.2,.75,.2,1),filter .45s;filter:saturate(.7)}.poster-canvas[data-step="1"] img{transform:rotateX(var(--rx)) rotateY(var(--ry)) scale(1.03);transform-origin:center}.poster-canvas[data-step="2"] img{transform:rotateX(var(--rx)) rotateY(var(--ry)) scale(1.28);transform-origin:54% 16%}.poster-canvas[data-step="3"] img{transform:rotateX(var(--rx)) rotateY(var(--ry)) scale(1.3);transform-origin:76% 55%}.poster-canvas[data-step="4"] img{transform:rotateX(var(--rx)) rotateY(var(--ry)) scale(1.25);transform-origin:28% 50%}.poster-focus-dot{position:absolute;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--acid);color:#111;font-size:9px;font-weight:bold;box-shadow:0 0 0 0 rgba(231,255,53,.5);animation:posterPulse 1.8s infinite;transition:left .55s,top .55s}.poster-canvas[data-step="1"] .poster-focus-dot{left:10%;top:8%}.poster-canvas[data-step="2"] .poster-focus-dot{left:47%;top:15%}.poster-canvas[data-step="3"] .poster-focus-dot{left:72%;top:57%}.poster-canvas[data-step="4"] .poster-focus-dot{left:24%;top:46%}.poster-canvas>small{position:absolute;left:15px;bottom:15px;background:#111;color:#aaa;padding:8px 10px;font-size:7px;letter-spacing:1.5px}@keyframes posterPulse{70%{box-shadow:0 0 0 14px rgba(231,255,53,0)}}.poster-steps{border-top:1px solid var(--line)}.poster-steps button{width:100%;display:grid;grid-template-columns:48px 1fr;gap:12px;padding:22px 6px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:#777;font-family:inherit;cursor:none;transition:.3s}.poster-steps button:hover,.poster-steps button.active{color:#fff;padding-left:16px}.poster-steps button.active{background:#1a1b18;border-color:var(--acid)}.poster-steps em{font-style:normal;font-size:9px;color:#555;padding-top:4px}.poster-steps button.active em{color:var(--acid)}.poster-steps span{display:flex;flex-direction:column;gap:8px}.poster-steps b{font-size:clamp(16px,1.7vw,23px);font-weight:500}.poster-steps small{font-size:10px;line-height:1.8;color:#70716b;max-width:480px}.poster-steps button.active small{color:#a0a19a}
@media(max-width:800px){.poster-breakdown{grid-template-columns:1fr}.poster-canvas{height:72vh}.poster-steps button{cursor:auto}.poster-canvas img{transform:none!important}.poster-focus-dot{width:34px;height:34px}}

/* AI film: interactive video trace and key-frame timeline */
.film-trace-section{padding-top:35px}.trace-monitor{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.45fr);background:#080a0d;border:1px solid #2c3138}.trace-screen{position:relative;aspect-ratio:16/9;overflow:hidden;background:#050608}.trace-screen>img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .18s,transform .65s}.trace-screen>img.switching{opacity:.15;transform:scale(1.025)}.trace-screen::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0,rgba(255,255,255,.025) 1px,transparent 1px,transparent 4px)}.trace-rec,.trace-time{position:absolute;z-index:2;top:17px;font-family:Consolas,monospace;font-size:8px;letter-spacing:1.4px;color:#fff;background:rgba(3,5,7,.68);padding:7px 9px}.trace-rec{left:17px}.trace-rec i{display:inline-block;width:6px;height:6px;background:#ff4255;border-radius:50%;margin-right:7px;animation:traceBlink 1.2s infinite}.trace-time{right:17px;color:var(--acid)}@keyframes traceBlink{50%{opacity:.25}}.trace-corners{position:absolute;inset:14px;border:1px solid rgba(255,255,255,.12);z-index:1}.trace-corners::before,.trace-corners::after{content:'';position:absolute;width:42px;height:42px;border-color:var(--acid)}.trace-corners::before{left:-1px;top:-1px;border-left:2px solid;border-top:2px solid}.trace-corners::after{right:-1px;bottom:-1px;border-right:2px solid;border-bottom:2px solid}.trace-info{display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(24px,4vw,55px);border-left:1px solid #2c3138;background:linear-gradient(145deg,#12171d,#090b0e)}.trace-info small{font-size:8px;letter-spacing:2px;color:var(--acid)}.trace-info h4{font-size:clamp(22px,2.8vw,38px);line-height:1.15;margin:16px 0}.trace-info p{font-size:11px;line-height:1.9;color:#858b90;margin:0}.trace-timeline{margin-top:22px;background:#111418;border:1px solid #292e34;padding:18px}.trace-track{height:2px;background:#353b42;margin:0 0 16px;position:relative}.trace-track i{display:block;width:0;height:100%;background:var(--acid);transition:.45s}.trace-track::after{content:'';position:absolute;left:0;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--acid);transform:translateX(calc(var(--trace-progress,0) - 50%))}.trace-frames{display:flex;gap:10px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--acid) #1b1e22;padding-bottom:12px}.trace-frame{flex:0 0 clamp(145px,18vw,210px);padding:0 0 10px;border:1px solid #31363c;background:#171a1e;color:#777;text-align:left;font-family:inherit;cursor:none;transition:.28s}.trace-frame>span{display:block;aspect-ratio:16/9;position:relative;overflow:hidden}.trace-frame img{width:100%;height:100%;object-fit:cover;filter:grayscale(.8);transition:.35s}.trace-frame span b{position:absolute;left:50%;top:50%;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;transform:translate(-50%,-50%);background:rgba(5,7,8,.72);color:white;font-size:8px}.trace-frame em,.trace-frame time{display:inline-block;font-style:normal;font-size:7px;letter-spacing:1px;margin:9px 0 0 9px}.trace-frame time{float:right;margin-right:9px}.trace-frame:hover,.trace-frame.active{border-color:var(--acid);color:#fff;transform:translateY(-3px)}.trace-frame.active img,.trace-frame:hover img{filter:none;transform:scale(1.04)}.trace-frame.active em{color:var(--acid)}
@media(max-width:800px){.trace-monitor{grid-template-columns:1fr}.trace-info{border-left:0;border-top:1px solid #2c3138;padding:25px}.trace-frame{cursor:auto;flex-basis:155px}.film-trace-section{padding-left:18px;padding-right:18px}}

/* Abstract homepage artwork */
.hero-photo{filter:contrast(1.04) saturate(.88)}
.hero-shade{background:linear-gradient(90deg,rgba(9,10,9,.96) 0%,rgba(9,10,9,.74) 31%,rgba(9,10,9,.08) 63%,rgba(9,10,9,.18) 100%)}
@media(max-width:800px){.hero-photo{object-position:62% center}.hero-shade{background:linear-gradient(0deg,rgba(9,10,9,.98) 0%,rgba(9,10,9,.65) 58%,rgba(9,10,9,.12) 100%)}}

/* Hero title: sequential wave entrance */
.wave-line{display:inline-block;white-space:nowrap}.wave-title .wave-line i{display:inline-block;font-style:normal;opacity:0;transform:translateY(1.05em) rotate(7deg) scale(.88);transform-origin:50% 100%;filter:blur(7px);will-change:transform,opacity,filter}.wave-title .wave-dot{color:var(--acid)}.hero-copy.visible .wave-title .wave-line i{animation:heroWaveIn .72s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(.16s + var(--i) * .095s)}@keyframes heroWaveIn{0%{opacity:0;transform:translateY(1.05em) rotate(7deg) scale(.88);filter:blur(7px)}58%{opacity:1;transform:translateY(-.13em) rotate(-2deg) scale(1.035);filter:blur(0)}78%{transform:translateY(.045em) rotate(.5deg) scale(.995)}100%{opacity:1;transform:translateY(0) rotate(0) scale(1);filter:blur(0)}}
@media(prefers-reduced-motion:reduce){.wave-title .wave-line i{opacity:1;transform:none;filter:none}}

/* Eastern mythology: eighteen-realms horizontal gallery and vertical long scroll */
.diyu-section,.diyu-scroll-section{--hell:#bd3e32;--hell-gold:#c8a25b;padding-top:45px}.diyu-toolbar{display:grid;grid-template-columns:90px 1fr 90px;align-items:center;gap:18px;margin:0 0 20px;font-family:Consolas,monospace;font-size:9px;letter-spacing:1.5px;color:#74736d}.diyu-toolbar span b{font-size:18px;color:var(--hell-gold)}.diyu-toolbar>div{height:2px;background:#30302d}.diyu-toolbar>div i{display:block;width:4%;height:100%;background:linear-gradient(90deg,var(--hell),var(--hell-gold));transition:width .18s}.diyu-toolbar em{text-align:right;font-style:normal;color:var(--hell-gold)}.diyu-horizontal{display:flex;gap:24px;overflow-x:auto;overscroll-behavior:contain;padding:0 0 24px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--hell-gold) #252522;cursor:ew-resize}.diyu-card{flex:0 0 min(78vw,960px);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);min-height:min(62vw,690px);background:#0c0b0a;border:1px solid #342d28;scroll-snap-align:start}.diyu-card figure{position:relative;margin:0;overflow:hidden;background:#080706}.diyu-card figure::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 90px rgba(0,0,0,.45);pointer-events:none}.diyu-card figure img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.82) contrast(1.05);transition:transform 1.2s,filter .5s}.diyu-card:hover figure img{transform:scale(1.025);filter:saturate(1) contrast(1.02)}.diyu-card figure span{position:absolute;z-index:2;left:20px;top:20px;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--hell-gold);background:rgba(8,7,6,.72);color:var(--hell-gold);font-size:9px}.diyu-card>div{display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(28px,4vw,58px);background:linear-gradient(145deg,#17110e,#090908)}.diyu-card small{font-size:8px;letter-spacing:1.8px;color:var(--hell-gold)}.diyu-card h4{font-size:clamp(28px,4vw,54px);line-height:1;margin:18px 0 20px;font-weight:500}.diyu-card p{font-size:11px;line-height:2;color:#8c8881;margin:0}.diyu-scroll-section{border-top:1px solid #2c2824}.diyu-long-wrap{display:grid;grid-template-columns:150px minmax(280px,760px) 5px;justify-content:center;gap:20px;align-items:stretch}.diyu-long-meta{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:10px 0;color:#68645e;font-size:7px;letter-spacing:1.5px}.diyu-long-meta b{color:var(--hell-gold);font-weight:normal;writing-mode:vertical-rl;letter-spacing:3px}.diyu-long-viewport{height:min(78vh,850px);overflow-y:auto;overscroll-behavior:contain;background:#090807;border:1px solid #3b3027;scrollbar-width:thin;scrollbar-color:var(--hell-gold) #181512;cursor:ns-resize}.diyu-long-viewport img{display:block;width:100%;height:auto}.diyu-long-progress{background:#2b2824;position:relative}.diyu-long-progress i{display:block;width:100%;height:3%;background:linear-gradient(var(--hell-gold),var(--hell));transition:height .12s}
@media(max-width:800px){.diyu-section,.diyu-scroll-section{padding-left:18px;padding-right:18px}.diyu-toolbar{grid-template-columns:58px 1fr 70px;gap:10px}.diyu-card{flex-basis:86vw;grid-template-columns:1fr;grid-template-rows:min(118vw,560px) auto;min-height:0}.diyu-card>div{padding:25px;min-height:235px}.diyu-horizontal{gap:14px;cursor:auto}.diyu-long-wrap{grid-template-columns:24px 1fr 4px;gap:9px}.diyu-long-meta b{font-size:6px}.diyu-long-meta span{display:none}.diyu-long-viewport{height:72vh;cursor:auto}}

/* Video editing reel */
.edit-reel-section{--reel:#ff8d47;padding-top:45px}.edit-reel-list{display:flex;flex-direction:column;gap:clamp(55px,8vw,110px)}.edit-reel-card{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.45fr);background:#0b0b0a;border:1px solid #34312e}.edit-reel-card:nth-child(even){grid-template-columns:minmax(270px,.45fr) minmax(0,1.55fr)}.edit-reel-card:nth-child(even) .edit-reel-player{grid-column:2;grid-row:1}.edit-reel-card:nth-child(even) .edit-reel-copy{grid-column:1;grid-row:1;border-left:0;border-right:1px solid #34312e}.edit-reel-player{position:relative;background:#050505;align-self:center}.edit-reel-player video{width:100%;display:block;aspect-ratio:16/9;object-fit:contain;background:#050505}.edit-reel-player>span{position:absolute;left:16px;top:16px;width:42px;height:42px;display:grid;place-items:center;background:rgba(9,9,8,.75);border:1px solid var(--reel);color:var(--reel);font-size:8px;pointer-events:none}.edit-reel-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,4vw,58px);border-left:1px solid #34312e;background:linear-gradient(145deg,#171512,#0c0c0b)}.edit-reel-copy>small{font-size:8px;letter-spacing:1.7px;color:var(--reel)}.edit-reel-copy h4{font-size:clamp(26px,3.4vw,48px);line-height:1.08;margin:18px 0 20px;font-weight:500}.edit-reel-copy>p{font-size:11px;line-height:2;color:#929089;margin:0}.edit-reel-copy>div{margin-top:30px;border-top:1px solid #34312e}.edit-reel-copy>div span{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid #292725;font-size:9px;color:#aaa}.edit-reel-copy>div b{color:var(--reel);font-size:7px;letter-spacing:1px}
@media(max-width:800px){.edit-reel-section{padding-left:18px;padding-right:18px}.edit-reel-card,.edit-reel-card:nth-child(even){grid-template-columns:1fr}.edit-reel-card:nth-child(even) .edit-reel-player,.edit-reel-card:nth-child(even) .edit-reel-copy{grid-column:1;grid-row:auto}.edit-reel-card:nth-child(even) .edit-reel-copy,.edit-reel-copy{border:0;border-top:1px solid #34312e;padding:26px}.edit-reel-copy>div{margin-top:22px}}
