:root{--ink:#0a0a0a;--paper:#f0eee8;--warm:#d8c8af;--line-dark:#ffffff2e;--line-light:#0a0a0a2e}@font-face{font-family:Noto Sans SC Portfolio;src:url(/portfolio/fonts/noto-sans-sc-subset.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Noto Serif SC Portfolio;src:url(/portfolio/fonts/noto-serif-sc-subset.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}html.custom-cursor-enabled,html.custom-cursor-enabled *{cursor:none!important}body{background:var(--ink);color:#fff;text-rendering:optimizelegibility;margin:0;font-family:Noto Sans SC Portfolio,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{z-index:50;color:#fff;letter-spacing:-.03em;mix-blend-mode:difference;justify-content:space-between;align-items:center;width:100%;padding:25px 30px;font-size:18px;font-weight:650;display:flex;position:fixed;top:0;left:0}.site-header nav{gap:30px;display:flex}.site-header a{position:relative}.site-header a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .22s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.site-header a:hover:after,.site-header a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.hero{background:#0a0a0a;min-height:100svh;position:relative;overflow:hidden}.hero-image,.hero-shade{width:100%;height:100%;position:absolute;inset:0}.hero-image{object-fit:cover;object-position:center;filter:saturate(.92)contrast(1.04);animation:1.2s cubic-bezier(.22,1,.36,1) both reveal-image}.hero-shade{background:linear-gradient(#0a0a0a0d,#0a0a0a24 55%,#0a0a0a80),linear-gradient(90deg,#0a0a0af0 0%,#0a0a0ac7 30%,#0a0a0a14 70%)}.hero-copy{z-index:2;text-align:left;flex-direction:column;justify-content:flex-end;align-items:flex-start;width:64%;padding:110px 30px 72px;display:flex;position:absolute;inset:0}.eyebrow{letter-spacing:.28em;text-transform:uppercase;margin:0;font-size:11px;font-weight:650}.hero h1{letter-spacing:-.075em;max-width:1500px;margin:20px 0 16px;font-size:clamp(56px,9.2vw,150px);font-weight:650;line-height:.9;animation:.9s cubic-bezier(.22,1,.36,1) .18s both reveal-copy}.hero h1 em,.detail-hero h1 em{font-family:Noto Serif SC Portfolio,Songti SC,serif;font-style:normal;font-weight:400}.hero h1,.detail-hero h1,.archive-intro h2,.chapter-heading h2,.about-hero h1,.experience-list h2,.profile-facts h2,.contact-heading h2{font-family:Noto Serif SC Portfolio,Songti SC,serif}.hero h1 em{padding:0 .04em;font-size:.72em}.hero h1>span{display:block}.hero-role{letter-spacing:.24em;margin:0;font-size:13px;font-weight:600}.scroll-cue{z-index:3;border:1px solid #ffffff6b;border-radius:50%;place-items:center;width:42px;height:42px;transition:background .18s,color .18s;display:grid;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.scroll-cue:hover{color:var(--ink);background:#fff}.selected-section{background:var(--ink);padding:74px 8px 110px}.section-heading{letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;padding:0 22px 22px;font-size:12px;font-weight:600;display:flex}.section-heading p{margin:0}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.project-card{min-width:0;overflow:hidden}.project-card:first-child,.project-card:nth-child(6),.project-card:nth-child(9){grid-column:1/-1}.project-card:first-child figure,.project-card:nth-child(6) figure,.project-card:nth-child(9) figure{aspect-ratio:16/8.7}.project-card figure{aspect-ratio:4/3;background:#181818;margin:0;position:relative;overflow:hidden}.project-card img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.22,1,.36,1),filter .3s}.project-card figcaption{letter-spacing:.12em;opacity:0;text-transform:uppercase;background:linear-gradient(#0000 55%,#0000007a);justify-content:space-between;align-items:flex-end;padding:22px;font-size:11px;font-weight:600;transition:opacity .26s;display:flex;position:absolute;inset:0}.project-card:hover img,.project-card:focus-visible img{filter:saturate(1.08);transform:scale(1.025)}.project-card:hover figcaption,.project-card:focus-visible figcaption{opacity:1}.project-name{grid-template-columns:32px 1fr auto;align-items:baseline;gap:10px;padding:16px 8px 30px;display:grid}.project-name h2{letter-spacing:-.045em;margin:0;font-size:clamp(18px,2vw,30px);font-weight:550}.project-name span{color:#8a8a8a;font-size:11px}.archive-section{background:var(--paper);color:var(--ink);padding:120px 30px 140px}.archive-intro{grid-template-columns:1fr 3fr;gap:40px;padding-bottom:100px;display:grid}.dark-text{color:var(--ink)}.archive-intro h2{letter-spacing:-.065em;max-width:980px;margin:0;font-size:clamp(42px,6vw,92px);font-weight:520;line-height:1.04}.archive-groups{border-top:1px solid var(--line-light);border-left:1px solid var(--line-light);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.archive-group{border-right:1px solid var(--line-light);border-bottom:1px solid var(--line-light);min-width:0;padding:28px}.archive-group-heading{grid-template-columns:38px minmax(0,1fr) auto;align-items:start;gap:14px;min-height:168px;display:grid}.archive-group-heading h3{letter-spacing:-.055em;margin:0;font-family:Noto Serif SC Portfolio,Songti SC,serif;font-size:clamp(30px,3.4vw,52px);font-weight:520}.archive-group-heading p{color:#686868;max-width:390px;margin:14px 0 0;font-size:12px;line-height:1.7}.archive-group-heading>span,.archive-group-heading>strong{letter-spacing:.08em;font-size:11px;font-weight:600}.archive-list{border-top:1px solid var(--line-light)}.archive-row{border-bottom:1px solid var(--line-light);grid-template-columns:34px minmax(0,1fr) 110px 42px;align-items:center;gap:18px;min-height:58px;transition:padding .24s,background .24s;display:grid}.archive-row:hover,.archive-row:focus-visible{background:#e6e1d8;padding:0 14px}.archive-row strong{letter-spacing:-.04em;font-size:clamp(15px,1.3vw,20px);font-weight:510}.archive-row span{letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.site-footer{background:var(--ink);letter-spacing:.06em;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:34px 30px;font-size:12px;display:grid}.site-footer p{margin:0}.site-footer p:last-child{text-align:right}.site-footer a{font-size:18px;font-weight:600}.custom-cursor{z-index:9999;pointer-events:none;opacity:0;mix-blend-mode:difference;will-change:transform;border:1px solid #fff;border-radius:50%;width:34px;height:34px;margin:-17px 0 0 -17px;transition:width .18s,height .18s,margin .18s,opacity .16s,background .18s;position:fixed;top:0;left:0}.custom-cursor span{background:#fff;border-radius:50%;width:4px;height:4px;transition:transform .18s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.custom-cursor[data-visible=true]{opacity:1}.custom-cursor[data-interactive=true]{background:#fff;width:50px;height:50px;margin:-25px 0 0 -25px}.custom-cursor[data-interactive=true] span{transform:translate(-50%,-50%)scale(0)}.custom-cursor[data-pressed=true]{width:26px;height:26px;margin:-13px 0 0 -13px}.detail-page{background:var(--ink);min-height:100vh}.detail-hero{flex-direction:column;padding:155px 30px 42px;display:flex}.detail-hero h1{letter-spacing:-.07em;margin:28px 0 64px;font-size:clamp(58px,10vw,156px);font-weight:580;line-height:.84}.detail-hero h1 em{font-size:.72em}.detail-meta{border-top:1px solid var(--line-dark);grid-template-columns:repeat(4,1fr);display:grid}.detail-meta p{margin:0;padding:17px 16px 0 0;font-size:13px}.detail-meta span{color:#777;letter-spacing:.12em;text-transform:uppercase;margin-bottom:7px;font-size:10px;display:block}.case-summary{background:#363636;grid-template-columns:repeat(4,1fr);gap:1px;padding:1px;display:grid}.case-summary article{background:#111;min-height:320px;padding:28px}.case-summary span{color:#777;letter-spacing:.14em;text-transform:uppercase;font-size:10px}.case-summary p{color:#d4d4d4;margin:110px 0 0;font-size:15px;line-height:1.75}.case-media{color:var(--ink);background:#d8d4cc;padding:0}.project-lead-frame img{width:100%;height:auto}.project-lead-frame.contained{text-align:center;padding:8px}.project-lead-frame.contained img{width:min(100%,820px);margin-inline:auto}.project-lead-image{background:#111}.dynamic-gallery{column-count:2;column-gap:8px;padding:0 8px 8px}.dynamic-gallery figure{break-inside:avoid;background:#cbc6bd;margin:0 0 8px;overflow:hidden}.dynamic-gallery figure.gallery-wide,.dynamic-gallery>figure:not(.gallery-wide):only-child,.dynamic-gallery>.gallery-wide+figure:not(.gallery-wide):last-child{column-span:all}.dynamic-gallery>figure:not(.gallery-wide):first-child:has(+.gallery-wide){column-span:all}.dynamic-gallery>.gallery-wide+figure:not(.gallery-wide):has(+.gallery-wide){column-span:all}.dynamic-gallery img{width:100%;height:auto}.comparison-gallery{column-count:initial;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px;display:grid}.comparison-gallery.comparison-count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.comparison-gallery figure{margin:0;column-span:none!important}.comparison-gallery:not(.comparison-count-3) figure:last-child:nth-child(odd){grid-column:1/-1;width:calc(50% - 4px);margin-inline:auto}.chapter-heading{grid-template-columns:90px 1.6fr 1fr;align-items:start;gap:30px;padding:120px 8vw 58px;display:grid}.chapter-heading span{letter-spacing:.12em;font-size:11px}.chapter-heading h2{letter-spacing:-.06em;margin:0;font-size:clamp(38px,5vw,74px);font-weight:520;line-height:1.02}.chapter-heading p{margin:5px 0 0;font-size:14px;line-height:1.75}.media-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.media-pair img{object-fit:cover;width:100%;height:100%}.more-work{background:var(--ink);padding:105px 30px 42px}.more-work-heading{border-bottom:1px solid var(--line-dark);justify-content:space-between;align-items:baseline;margin-bottom:24px;padding-bottom:16px;display:flex}.more-work-heading p,.more-work-heading span{color:#777;letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:11px}.more-work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.more-work-card figure{margin:0}.more-work-image{aspect-ratio:4/3;background:#171717;overflow:hidden}.more-work-card img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.more-work-card:hover img,.more-work-card:focus-visible img{transform:scale(1.025)}.more-work-card figcaption{padding:18px 2px 8px}.more-work-card figcaption>div{color:#777;letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;font-size:10px;display:flex}.more-work-card h2{letter-spacing:-.055em;margin:13px 0 20px;font-size:clamp(28px,3.5vw,56px);font-weight:520;line-height:1}.more-work-card figcaption>p{border-top:1px solid var(--line-dark);color:#aaa;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;margin:0;padding-top:13px;font-size:11px;display:flex}.about-page{background:var(--paper);min-height:100vh;color:var(--ink)}.about-hero{grid-template-columns:minmax(0,1.6fr) minmax(340px,.65fr);align-items:end;gap:6vw;padding:150px 30px 110px;display:grid}.about-hero h1{letter-spacing:-.07em;max-width:1050px;margin:42px 0 80px;font-size:clamp(50px,6.4vw,108px);font-weight:520;line-height:.98}.about-lead{grid-template-columns:1fr 1fr;gap:50px;max-width:900px;display:grid}.about-lead p{margin:0;font-size:16px;line-height:1.8}.about-portrait{margin:0}.about-portrait img{aspect-ratio:2/3;object-fit:cover;object-position:center top;background:#747d7e;width:100%}.about-portrait figcaption{border-top:1px solid var(--line-light);color:#555;letter-spacing:.1em;justify-content:space-between;gap:18px;padding-top:12px;font-size:10px;display:flex}.about-image{background:#d1b276;height:90svh;position:relative;overflow:hidden}.about-image img{object-fit:cover;object-position:center 55%;width:100%;height:100%}.about-image p{color:#fff;letter-spacing:.2em;margin:0;font-size:11px;position:absolute;bottom:25px;right:30px}.resume-section{grid-template-columns:1fr 3fr;gap:50px;padding:130px 30px;display:grid}.resume-aside>p:last-child{color:#777;margin-top:16px;font-size:13px}.experience-list{border-top:1px solid var(--line-light)}.experience-list article{border-bottom:1px solid var(--line-light);grid-template-columns:50px 1.2fr .6fr 1.2fr;align-items:baseline;gap:22px;padding:30px 0;display:grid}.experience-list span,.experience-list strong{letter-spacing:.08em;text-transform:uppercase;font-size:11px}.experience-list h2{letter-spacing:-.045em;margin:0;font-size:clamp(22px,2.5vw,38px);font-weight:520}.experience-list p{color:#555;margin:0;font-size:13px;line-height:1.7}.experience-detail ul{color:#555;gap:8px;margin:0;padding:0;font-size:13px;line-height:1.7;list-style:none;display:grid}.experience-detail li{padding-left:15px;position:relative}.experience-detail li:before{content:"—";position:absolute;left:0}.experience-detail p{border-top:1px solid var(--line-light);margin-top:16px;padding-top:14px}.experience-detail b{color:var(--ink);letter-spacing:.12em;margin-bottom:5px;font-size:10px;display:block}.profile-facts{border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light);grid-template-columns:repeat(3,1fr);display:grid}.profile-facts article{border-right:1px solid var(--line-light);min-height:330px;padding:30px}.profile-facts article:last-child{border-right:0}.profile-facts h2{letter-spacing:-.05em;margin:130px 0 12px;font-size:clamp(26px,3.2vw,48px);font-weight:520}.profile-facts article>p:last-child{color:#666;font-size:13px;line-height:1.6}.contact-block{background:var(--ink);color:#fff;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);align-items:end;gap:8vw;padding:130px 30px 38px;display:grid}.contact-heading p{color:#777;letter-spacing:.14em;text-transform:uppercase;margin:0 0 28px;font-size:11px}.contact-heading h2{letter-spacing:-.065em;max-width:960px;margin:0;font-size:clamp(48px,7vw,112px);font-weight:560;line-height:1.04}.contact-links{border-top:1px solid var(--line-dark)}.contact-links a{border-bottom:1px solid var(--line-dark);grid-template-columns:95px 1fr;align-items:baseline;gap:20px;padding:25px 0;transition:padding .22s,color .22s;display:grid}.contact-links a:hover,.contact-links a:focus-visible{color:#d8c8af;padding-left:10px;padding-right:10px}.contact-links span{color:#777;letter-spacing:.12em;font-size:10px}.contact-links strong{letter-spacing:-.035em;font-size:clamp(20px,2.2vw,34px);font-weight:520}@keyframes reveal-image{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes reveal-copy{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@media (max-width:760px){.site-header{padding:19px 17px;font-size:15px}.site-header nav{gap:17px}.hero-copy{text-align:left;justify-content:flex-end;align-items:flex-start;width:100%;padding:110px 17px}.hero h1{margin:15px 0;font-size:clamp(58px,18vw,88px);line-height:.87}.hero h1 em{margin:.05em 0;display:block}.hero-image{object-position:24% center}.project-grid,.media-pair{grid-template-columns:1fr}.dynamic-gallery{column-count:1}.comparison-gallery{display:block}.comparison-gallery figure,.comparison-gallery figure:last-child:nth-child(odd){width:100%;margin-bottom:8px}.project-card:first-child figure,.project-card:nth-child(6) figure,.project-card:nth-child(9) figure{aspect-ratio:4/3}.selected-section{padding-top:55px}.section-heading{padding-left:9px;padding-right:9px}.project-card figcaption{opacity:1}.project-name{padding-bottom:22px}.archive-section{padding:80px 17px 90px}.archive-intro,.resume-section{grid-template-columns:1fr}.archive-intro{padding-bottom:60px}.archive-intro h2{font-size:42px}.archive-groups{grid-template-columns:1fr}.archive-group{padding:22px 14px}.archive-group-heading{min-height:142px}.archive-group-heading h3{font-size:34px}.archive-row{grid-template-columns:38px 1fr 45px;gap:10px;min-height:62px}.archive-row span:nth-child(3){display:none}.archive-row strong{font-size:18px}.site-footer{grid-template-columns:1fr auto;padding:28px 17px}.site-footer p:first-child{display:none}.detail-hero{padding:116px 17px 28px}.detail-hero h1{margin:25px 0 55px;font-size:16vw}.detail-meta,.case-summary,.profile-facts{grid-template-columns:1fr 1fr}.detail-meta p{padding-bottom:14px}.case-summary article{min-height:260px;padding:20px}.case-summary p{margin-top:65px;font-size:13px}.case-media{padding:0}.chapter-heading{grid-template-columns:36px 1fr;gap:14px;padding:80px 17px 35px}.chapter-heading h2{font-size:39px}.chapter-heading p{grid-column:2}.more-work{padding:80px 17px 28px}.more-work-grid{grid-template-columns:1fr;gap:42px}.more-work-card h2{font-size:36px}.about-hero{grid-template-columns:1fr;gap:55px;padding:125px 17px 75px}.about-hero h1{margin:30px 0 60px;font-size:13vw}.about-lead{grid-template-columns:1fr;gap:22px}.about-portrait{width:min(100%,560px);margin-left:auto}.about-image{height:72svh}.resume-section{padding:85px 17px}.experience-list article{grid-template-columns:34px 1fr;gap:11px}.experience-list strong,.experience-detail{grid-column:2}.profile-facts article{border-bottom:1px solid var(--line-light);min-height:260px;padding:20px 17px}.profile-facts article:last-child{grid-column:1/-1}.profile-facts h2{margin-top:80px;font-size:27px}.contact-block{grid-template-columns:1fr;gap:60px;padding:90px 17px 30px}.contact-heading h2{font-size:14vw}.contact-links a{grid-template-columns:78px 1fr;padding:22px 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
