@charset "UTF-8";
:root{--bg:#111413;--panel:#1b201e;--text:#f1f0e9;--muted:#acb3ad;--line:#343b36;--accent:#e4bc79;--max:1400px;--pad:clamp(22px,5.2vw,92px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,"Helvetica Neue","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.6}body.spatial{--bg:#edede6;--panel:#e3e4da;--text:#202722;--muted:#5d685e;--line:#bfc7bb;--accent:#465b41}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}a:focus-visible,button:focus-visible,video:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{display:block;width:100%;height:auto}button img{pointer-events:none}p,h1,h2,h3{margin:0}p+p{margin-top:1em}h1,h2,h3{font-weight:500;line-height:1.06;letter-spacing:-.045em}h1{font-size:clamp(48px,6.5vw,104px)}h2{font-size:clamp(35px,4vw,62px)}h3{font-size:clamp(25px,2.4vw,34px)}.wrap{max-width:var(--max);padding:0 var(--pad);margin:auto}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.accent{color:var(--accent)}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:10px;left:10px;padding:12px;background:var(--accent);color:var(--bg);z-index:100;transform:translateY(-200%)}.skip:focus{transform:none}.site-header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:var(--bg)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;height:85px;max-width:var(--max);padding:0 var(--pad);margin:auto}.brand{display:flex;gap:12px;align-items:center;font-weight:700;font-size:17px;letter-spacing:.02em;white-space:nowrap}.brand-mark{display:grid;place-items:center;border:1px solid var(--accent);width:31px;height:31px;transform:rotate(-8deg);font-size:11px;color:var(--accent)}.brand-mark span{transform:rotate(8deg)}.nav{display:flex;align-items:center;gap:32px;font-size:12px}.nav a{padding:9px 0;position:relative;color:var(--muted)}.nav a[aria-current=page],.nav a:hover{color:var(--text)}.nav a[aria-current=page]:after{content:"";height:3px;width:3px;border-radius:100%;background:var(--accent);position:absolute;bottom:0;left:50%}.lang{background:none;border:1px solid var(--line);padding:6px 10px;font-size:11px}.menu-toggle{display:none;border:1px solid var(--line);background:transparent;padding:6px 12px}.hero{padding-top:35px}.hero-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;font-size:11px;color:var(--muted)}.hero-topline span:last-child{display:flex;gap:9px;align-items:center}.dot{height:5px;width:5px;display:inline-block;background:var(--accent);border-radius:50%}.hero-stage{position:relative;min-height:600px;height:min(70vw,710px);overflow:hidden;background:#343b33}.hero-stage>img{height:100%;object-fit:cover;object-position:center;filter:brightness(.72)}.hero-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,16,12,.58),rgba(9,16,12,.03) 80%),linear-gradient(0deg,rgba(9,16,12,.75),transparent 55%);pointer-events:none}.hero-copy{position:absolute;left:clamp(25px,4.4vw,70px);bottom:clamp(35px,4.4vw,65px);z-index:1;max-width:850px;color:#f5f3ed}.hero-copy .eyebrow{margin-bottom:23px;color:#e5d2ad}.hero-copy h1{max-width:1000px;font-size:clamp(46px,6.5vw,100px);line-height:1.01}.hero-copy p{max-width:500px;color:#d1d6ce;margin-top:22px;font-size:14px;line-height:1.8}.hero-tag{position:absolute;right:26px;top:24px;z-index:1;color:#f5f3ed;border:1px solid #9caa9780;padding:6px 10px;font-size:10px;letter-spacing:.1em;background:#11141350}.hero-actions{display:flex;gap:28px;align-items:center;margin-top:29px}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;background:var(--accent);color:#171c16;padding:14px 21px;font-size:12px;font-weight:600;border:1px solid var(--accent);transition:filter .2s}.button:hover{filter:brightness(1.12)}.spatial .button{color:#f1f0e9}.button.outline{background:transparent;color:var(--text);border-color:var(--line)}.hero-actions .text-link{font-size:12px;color:#f1f0e9}.text-link{display:inline-flex;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:7px 0;font-size:13px}.text-link:hover{color:var(--accent)}.hero-caption{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:16px 0;color:var(--muted);font-size:11px}.section{padding-top:95px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:38px}.section-head .eyebrow{color:var(--accent);margin-bottom:15px}.section-head>p{color:var(--muted);font-size:13px;max-width:310px}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 28px}.work-card{display:block;min-width:0}.card-visual{overflow:hidden;background:var(--panel);position:relative;aspect-ratio:1.72}.card-visual img{height:100%;object-fit:cover;transition:transform .5s}.work-card:hover .card-visual img{transform:scale(1.035)}.card-visual .number{position:absolute;top:15px;left:15px;padding:3px 7px;background:#10151190;color:#eaece5;font-size:10px;z-index:1}.card-footer{display:flex;align-items:flex-start;justify-content:space-between;margin-top:19px;gap:20px}.card-footer h3{font-size:26px;margin-bottom:8px}.card-footer .arrow{font-size:25px;line-height:1;color:var(--accent)}.card-footer p{font-size:11px;letter-spacing:.03em;color:var(--muted)}.project-strip{margin-top:60px;padding:29px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.project-strip p{font-size:13px;color:var(--muted)}.practice-note{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:85px 0;border-bottom:1px solid var(--line);margin-top:60px}.practice-note .eyebrow{color:var(--accent)}.practice-note h2{font-size:clamp(34px,3.4vw,51px);margin-top:18px}.practice-note p{color:var(--muted);font-size:15px;line-height:1.9}.practice-note .text-link{margin-top:20px}.footer{padding:65px 0 25px}.footer-top{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:65px}.footer-top .eyebrow{color:var(--muted);margin-bottom:15px}.footer-top h2{font-size:clamp(38px,5.1vw,78px)}.footer-top .text-link{color:var(--accent);font-size:16px;word-break:break-all}.footer-bottom{border-top:1px solid var(--line);padding-top:21px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:10px}.page-intro{padding:65px 0 45px}.page-intro .eyebrow{margin-bottom:25px;color:var(--accent)}.intro-row{display:grid;grid-template-columns:1.7fr 1fr;gap:70px;align-items:end}.intro-row p{font-size:14px;color:var(--muted);line-height:1.9}.discipline-band{display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:40px;padding:16px 0;font-size:11px;color:var(--muted)}.spatial-hero{margin-bottom:55px;position:relative;height:460px;overflow:hidden;background:#39453a}.spatial-hero img{height:100%;object-fit:cover;object-position:50% 15%}.spatial-hero span{position:absolute;left:25px;bottom:20px;background:#f1f2e9e0;color:#273126;padding:8px 12px;font-size:11px}.breadcrumb{display:flex;gap:12px;align-items:center;font-size:11px;color:var(--muted);padding-top:32px}.breadcrumb a:hover{color:var(--accent)}.project-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;padding:40px 0}.project-heading h1{font-size:clamp(48px,6vw,88px);margin:18px 0}.project-heading .eyebrow{color:var(--accent)}.project-heading>div>p{max-width:650px;color:var(--muted);font-size:15px;line-height:1.85}.project-meta{display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:7px}.project-meta div{padding:14px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:95px 1fr;gap:20px;font-size:12px}.project-meta dt{color:var(--muted)}.project-meta dd{margin:0}.cover-image{width:100%;max-height:760px;object-fit:cover;background:var(--panel)}.project-overview{display:grid;grid-template-columns:1fr 2fr;gap:60px;padding:60px 0}.project-overview .eyebrow{color:var(--accent);margin-top:5px}.project-overview p{font-size:17px;color:var(--muted);line-height:1.9;max-width:780px}.project-section{padding-top:50px}.project-section-head{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:25px}.project-section-head h2{font-size:34px}.project-section-head p{font-size:12px;color:var(--muted);max-width:380px}.media-frame{background:#060807;border:1px solid var(--line)}video{display:block;width:100%;height:auto;max-height:78vh;background:#050706}.video-note{display:flex;gap:15px;justify-content:space-between;padding-top:13px;font-size:11px;color:var(--muted)}.media-error{padding:14px;color:var(--accent)}.stills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.image-button{display:block;padding:0;border:0;background:var(--panel);width:100%;position:relative;text-align:left;overflow:hidden}.image-button:after{content:"↗";position:absolute;right:12px;top:12px;color:#fff;background:#111413b0;width:28px;height:28px;text-align:center;line-height:28px}.image-button img{width:100%;height:auto}.stills-grid .image-button{aspect-ratio:16/9}.stills-grid .image-button img{height:100%;object-fit:cover}.boards{display:grid;gap:30px}.board-card{border:1px solid var(--line);background:var(--panel)}.board-label{padding:13px 17px;display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px}.board-card .image-button{max-height:none}.board-card img{object-fit:contain}.archive-intro{padding:32px;background:var(--panel);border:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;align-items:center;margin:30px 0}.archive-intro p{color:var(--muted);font-size:13px;margin-top:12px}.archive-intro h2{font-size:28px}.board-preview{max-width:1100px;margin:0 auto}.project-navigation{display:flex;justify-content:space-between;gap:30px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:35px 0;margin-top:70px}.project-navigation p{font-size:11px;color:var(--muted);margin-bottom:10px}.project-navigation h3{font-size:25px}.project-navigation .next{text-align:right}.about-heading{padding:75px 0 55px}.about-heading h1{max-width:1050px;margin-top:25px}.about-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:90px;padding:30px 0 70px}.about-layout .lead{font-size:23px;line-height:1.6;color:var(--text)}.about-layout p{color:var(--muted);margin-bottom:24px}.about-layout h2{font-size:27px;margin-bottom:20px}.info-block{border-top:1px solid var(--line);padding-top:23px;margin-bottom:35px}.info-block h3{font-size:18px;margin-bottom:9px}.info-block p{font-size:13px;margin-bottom:0}.skills-list{display:flex;gap:9px;flex-wrap:wrap}.skills-list span{padding:6px 10px;border:1px solid var(--line);font-size:11px}.contact-panel{padding:40px;background:var(--panel);margin-top:45px}.contact-panel h2{margin-bottom:18px}.contact-panel a{font-size:22px;word-break:break-all;color:var(--accent)}.contact-panel button{background:none;border:1px solid var(--line);font-size:11px;padding:6px 12px;margin-top:20px}.resume-actions{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0}.pdf-reader{height:980px;max-height:85vh;width:100%;border:1px solid var(--line);background:#fff}.pdf-help{font-size:13px;color:var(--muted);margin:16px 0}.lightbox{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;border:0;background:#0c100ff7;color:#f0f2eb}.lightbox::backdrop{background:#000c}.lightbox-bar{height:65px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 25px;border-bottom:1px solid #3c443d;position:sticky;top:0;background:#111713;z-index:2}.lightbox-title{font-size:12px}.lightbox-actions{display:flex;gap:12px;align-items:center}.lightbox-actions button,.lightbox-actions a{background:none;border:1px solid #485446;padding:5px 12px;font-size:12px}.lightbox-scroll{height:calc(100% - 65px);overflow:auto;padding:25px;overscroll-behavior:contain}.lightbox-scroll img{display:block;width:min(1200px,100%);max-width:none;margin:0 auto}.lightbox-scroll.zoomed img{width:2000px;margin:0}.notice{padding:20px;background:var(--panel);border:1px solid var(--line);font-size:13px}.noscript{padding:30px;text-align:center;background:#2d352d}.nav .contact-nav{color:var(--text)}
.work-card[href="denfang.html"] .card-visual,.work-card[href="characters.html"] .card-visual{background:#0d100f}.work-card[href="denfang.html"] .card-visual img,.work-card[href="characters.html"] .card-visual img{object-fit:contain}
@media(min-width:1500px){.hero-stage{height:710px}.wrap,.header-inner{padding-left:70px;padding-right:70px}}
@media(max-width:950px){.nav{gap:20px}.hero-stage{min-height:550px}.intro-row,.project-heading{gap:35px}.project-meta div{grid-template-columns:65px 1fr;gap:10px}.about-layout{gap:40px}.hero-copy h1{font-size:70px}.work-grid{gap:35px 22px}.footer-top{align-items:flex-start;flex-direction:column;gap:25px}.hero-topline{gap:20px}.hero-topline span:last-child{display:none}}
@media(max-width:640px){:root{--pad:21px}.header-inner{height:70px;gap:15px}.brand{font-size:16px}.brand-mark{width:27px;height:27px}.menu-toggle{display:block;margin-left:auto;font-size:11px}.nav{display:none;position:absolute;left:0;right:0;top:70px;background:var(--bg);padding:22px var(--pad) 28px;border-bottom:1px solid var(--line);align-items:flex-start;flex-direction:column;gap:13px}.nav.open{display:flex}.lang{margin-top:4px}.hero{padding-top:22px}.hero-topline{font-size:9px;margin-bottom:20px}.hero-stage{height:610px;min-height:0;margin-left:-21px;margin-right:-21px}.hero-stage>img{object-position:52% 50%;filter:brightness(.68)}.hero-stage:after{background:linear-gradient(0deg,#101a13dc,transparent 95%)}.hero-copy{left:25px;right:25px;bottom:38px}.hero-copy h1{font-size:54px;line-height:1.02}.hero-copy .eyebrow{font-size:10px;letter-spacing:.12em}.hero-copy p{font-size:13px;line-height:1.8;margin-top:20px;max-width:320px}.hero-tag{top:22px;right:22px;font-size:9px}.hero-actions{gap:20px}.button{padding:13px 17px;gap:18px}.hero-caption{font-size:9px;gap:20px}.hero-caption span:last-child{text-align:right}.section{padding-top:60px}.section-head{align-items:start;flex-direction:column;gap:17px;margin-bottom:27px}.section-head>p{max-width:none}.work-grid{grid-template-columns:1fr;gap:31px}.card-footer h3{font-size:25px}.card-visual{aspect-ratio:1.65}.project-strip{margin-top:40px;align-items:flex-start;flex-direction:column}.practice-note{grid-template-columns:1fr;gap:24px;padding:48px 0;margin-top:40px}.practice-note h2{font-size:37px}.practice-note p{font-size:14px}.footer{padding:45px 0 22px}.footer-top{margin-bottom:45px}.footer-top h2{font-size:46px}.footer-bottom{flex-wrap:wrap;gap:10px}.page-intro{padding-top:45px}.intro-row{grid-template-columns:1fr;gap:25px}.intro-row h1{font-size:52px}.discipline-band{gap:20px;font-size:10px;margin-top:30px}.spatial-hero{height:300px;margin-bottom:35px}.spatial-hero img{object-position:50% 15%}.project-heading{grid-template-columns:1fr;gap:22px;padding:30px 0}.project-heading h1{font-size:53px}.project-heading>div>p{font-size:14px}.project-meta{margin:0}.project-meta div{grid-template-columns:75px 1fr;gap:15px;padding:11px 0}.breadcrumb{padding-top:22px;font-size:10px}.project-overview{grid-template-columns:1fr;gap:18px;padding:35px 0 15px}.project-overview p{font-size:15px}.project-section{padding-top:35px}.project-section-head{align-items:flex-start;flex-direction:column;gap:15px}.project-section-head h2{font-size:29px}.stills-grid{grid-template-columns:1fr;gap:15px}.video-note{flex-direction:column;gap:7px}.boards{gap:20px}.board-label{font-size:10px;padding:10px 12px}.archive-intro{padding:22px;align-items:flex-start;flex-direction:column}.project-navigation{gap:20px}.project-navigation h3{font-size:20px}.about-heading{padding:45px 0 30px}.about-heading h1{font-size:47px}.about-layout{grid-template-columns:1fr;gap:35px;padding-bottom:30px}.about-layout .lead{font-size:21px}.contact-panel{padding:25px}.contact-panel a{font-size:20px}.lightbox-bar{padding:0 13px;gap:10px}.lightbox-title{font-size:10px;max-width:43%}.lightbox-actions{gap:6px}.lightbox-actions button,.lightbox-actions a{font-size:10px;padding:5px 8px}.lightbox-scroll{padding:12px}.pdf-reader{height:650px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
