@font-face{font-family:DM;src:url('assets/dm-sans-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:DM;src:url('assets/dm-sans-bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--paper:#f5f5f0;--ink:#20211e;--muted:#6c7067;--line:#d9dad3;--blue:#164bff;--gutter:5vw;--ease:cubic-bezier(.23,1,.32,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:DM,'PingFang SC','Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0}button,a{-webkit-tap-highlight-color:transparent}button:active{transform:scale(.97)}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:6px}::selection{background:var(--blue);color:white}img{display:block;width:100%}button{transition:transform 160ms var(--ease)}[hidden]{display:none!important}.skip{position:fixed;top:-80px;left:20px;z-index:100;padding:15px;background:var(--paper)}.skip:focus{top:12px}main:focus,section:focus{outline:none}section[id]{scroll-margin-top:20px}
.header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr 1fr 1.4fr;align-items:center;gap:20px;padding:30px var(--gutter) 25px;background:var(--paper);transition:padding 220ms var(--ease),box-shadow 220ms ease}.header.is-scrolled{padding-top:17px;padding-bottom:17px;box-shadow:0 1px 0 var(--line)}.wordmark{width:max-content;font-size:27px;line-height:.88;font-weight:700;letter-spacing:-1.8px}.wordmark>span{display:block;padding-left:17px}.logo-dot{color:var(--blue)}.header-note{font-size:11px;color:var(--muted);line-height:1.6;letter-spacing:.01em}.navigation{display:flex;justify-content:space-between;gap:25px}.navigation a{position:relative;font-size:17px;line-height:1.3;color:var(--muted);transition:color 180ms ease}.navigation a>span{font-size:10px;display:block;margin-top:5px;letter-spacing:.08em}.navigation a::before{content:'';position:absolute;width:5px;height:5px;background:var(--blue);border-radius:50%;left:-13px;top:8px;transform:scale(0);transition:transform 180ms var(--ease)}.navigation a[aria-current=location]{color:var(--ink)}.navigation a[aria-current=location]::before{transform:scale(1)}.menu-toggle{display:none;background:none;width:44px;height:44px;padding:10px}.menu-toggle span{display:block;height:1px;background:var(--ink);margin:6px 0}
.hero{padding:75px var(--gutter) 40px}.hero-kicker{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;letter-spacing:.025em}.small-brand{font-size:10px}.hero h1{font-weight:400;letter-spacing:-.065em;font-size:clamp(60px,8.6vw,180px);line-height:1.02;margin:60px 0 42px}.headline-line{display:block;white-space:nowrap}.first-line{margin-left:23%}.hero-period{color:var(--blue)}.hero-bottom{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px}.hero-copy{font-size:15px;line-height:1.9;margin:0}.hero-copy>span{font-size:12px;color:var(--muted)}.hero-preview{display:flex;gap:21px;align-items:center;justify-self:end}.preview-orb{position:relative;width:110px;height:110px;flex:none;overflow:hidden;border-radius:50%;background:#d8d9d2}.preview-orb img,.preview-orb video{position:absolute;width:100%;height:100%;object-fit:cover;inset:0}.preview-orb img{object-position:40% center}.ambient-video{opacity:0;transition:opacity 300ms ease}.ambient-video.is-playing{opacity:1}.orb-arrow{position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:35px;text-shadow:0 1px 20px #0008;transition:transform 250ms var(--ease)}.preview-caption{font-size:12px;line-height:1.6}.preview-caption>span{display:block;color:var(--muted);font-size:10px;margin-top:5px}.scroll-cue{display:flex;gap:12px;align-items:center;margin-top:50px;width:max-content;font-size:11px;color:var(--muted)}.line-arrow{font-size:20px;color:var(--ink)}
#work{scroll-margin-top:-60px}.work-section{padding:90px var(--gutter) 0}.section-intro{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:30px;padding:25px 0 50px;border-top:1px solid var(--line)}.section-intro h2{font-size:20px;font-weight:400;letter-spacing:-.04em;margin:0}.section-intro h2 span{font-size:11px;color:var(--muted);display:block;letter-spacing:0;margin-top:8px}.section-intro p{font-size:12px;line-height:1.8;margin:0}.section-intro p>span{color:var(--muted);font-size:11px}.section-count{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:2.5vw;row-gap:90px;align-items:start}.project{grid-column:span 7;min-width:0}.project:nth-child(4n+2){grid-column:9 / -1;padding-top:145px}.project:nth-child(4n+3){grid-column:1 / 6;padding-top:20px}.project:nth-child(4n+4){grid-column:7 / -1;padding-top:115px}.project:nth-child(5){grid-column:1 / 8}.project:nth-child(6){padding-top:110px}.project:nth-child(7){grid-column:1 / 6}.project:nth-child(8){grid-column:7 / -1}.project-caption{display:flex;gap:18px;align-items:flex-start;margin:18px 0 0}.project-number{font-size:10px;line-height:1.9;color:var(--muted);font-variant-numeric:tabular-nums}.project-titles{flex:1;min-width:0}.project-titles h3{font-size:15px;line-height:1.5;font-weight:400;margin:0}.project-titles p{font-size:11px;color:var(--muted);margin:6px 0 0}.project-category{font-size:9px;color:var(--muted);line-height:1.9;white-space:nowrap}.project-media{position:relative;display:block;width:100%;aspect-ratio:var(--ratio,16 / 9);padding:0;overflow:hidden;background:#dedfd8;text-align:left}.project-media img,.project-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.project-media img{transition:transform 700ms var(--ease)}.project-preview{opacity:0;transition:opacity 220ms ease}.project-preview.is-playing{opacity:1}.project-play{position:absolute;right:15px;bottom:15px;width:38px;height:38px;border-radius:50%;background:#f5f5f0ec;display:grid;place-items:center;font-size:13px;color:var(--ink);transition:background 200ms ease,color 200ms ease,transform 220ms var(--ease)}.project-watch{position:absolute;left:18px;bottom:24px;font-size:10px;color:white;text-shadow:0 1px 10px #0008;opacity:0;transform:translateY(5px);transition:opacity 180ms ease,transform 220ms var(--ease)}.project-media:focus-visible{outline-offset:7px}.project-media:focus-visible .project-watch{opacity:1;transform:none}.project-media:focus-visible .project-play{background:var(--blue);color:white}.work-end{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:90px 0 100px}.small-label{font-size:10px;letter-spacing:.025em;color:var(--muted)}.text-link{display:flex;gap:35px;align-items:center;font-size:13px}.text-link span{font-size:20px;transition:transform 200ms var(--ease)}.no-script{padding:30px 0;font-size:14px}.no-script a{text-decoration:underline}
.studio-section{margin:0 var(--gutter);border-top:1px solid var(--line);padding:30px 0 115px}.section-label{display:flex;align-items:center;gap:12px}.section-label h2{font-size:11px;font-weight:400;margin:0}.section-label>span:last-child{font-size:10px;color:var(--muted);margin-left:auto}.blue-dot{width:7px;height:7px;background:var(--blue);border-radius:50%;flex:none}.studio-heading{display:grid;grid-template-columns:1fr 3fr;gap:30px;align-items:start;margin-top:85px}.studio-aside{font-size:12px;line-height:1.6;color:var(--muted);padding-top:8px}.studio-heading>p{font-size:clamp(27px,3.3vw,65px);font-weight:400;line-height:1.55;letter-spacing:-.05em;margin:0}.blue-text{color:var(--blue)}.studio-details{display:grid;grid-template-columns:1.4fr 1fr;gap:12vw;margin:55px 0 80px 25%}.studio-summary{font-size:13px;line-height:2.1;margin:0;color:#555750}.studio-summary>span{display:block;color:var(--muted);font-size:11px;margin-top:20px}.studio-practice{display:flex;flex-direction:column}.studio-practice>div{display:flex;gap:17px;border-top:1px solid var(--line);padding:13px 0;align-items:flex-start}.studio-practice>div>span{font-size:9px;color:var(--muted);padding-top:3px}.studio-practice p{font-size:12px;margin:0;line-height:1.5}.studio-practice small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.people-grid{display:grid;grid-template-columns:1fr 1fr;gap:7vw;margin-left:25%}.person{border-top:1px solid var(--line);padding-top:20px}.person-role{font-size:9px;letter-spacing:.015em;color:var(--muted)}.person h3{font-size:22px;font-weight:400;margin:25px 0 20px;letter-spacing:-.025em}.person h3>span{display:block;font-size:12px;letter-spacing:0;color:var(--muted);margin-top:8px}.person p{font-size:12px;line-height:2;color:#555750;margin:0;max-width:340px}.person-note{display:block;font-size:10px;color:var(--muted);margin-top:24px;line-height:1.7}
.contact-section{background:#eaece4;padding:35px var(--gutter) 70px}.contact-top{display:flex;justify-content:space-between;gap:25px;font-size:11px}.contact-section h2{position:relative;font-weight:400;font-size:clamp(64px,10.6vw,190px);line-height:1.02;letter-spacing:-.065em;margin:65px 0 55px}.contact-section h2>span{margin-left:10%}.contact-section h2 em{font-style:normal;color:var(--blue)}.contact-arrow{position:absolute;right:0;top:8px;width:100px;height:100px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font-size:60px;letter-spacing:0;line-height:1;transition:color 220ms ease,background 220ms ease,border-color 220ms ease,transform 220ms var(--ease)}.contact-bottom{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;padding-top:30px;border-top:1px solid #ccd0c5}.contact-bottom>p{font-size:14px;margin:0;line-height:1.7}.contact-bottom>p>span{font-size:11px;color:var(--muted)}.contact-links{display:flex;flex-direction:column;gap:18px}.contact-links>a{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:clamp(14px,1.5vw,24px);letter-spacing:-.025em;overflow-wrap:anywhere}.contact-links>a>span{font-size:17px;flex:none}.contact-links>a>.contact-kind{font-size:10px;color:var(--muted);letter-spacing:0}.copy-wechat{display:flex;gap:15px;align-items:center;align-self:flex-start;background:none;padding:3px 0;font-size:10px;color:var(--muted);border-bottom:1px solid #bdc2b3}
footer{padding:30px var(--gutter) 0;overflow:hidden}.footer-meta{display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:10px;color:var(--muted)}.back-top{display:flex;gap:15px;align-items:center}.back-top span{font-size:17px;color:var(--ink)}.footer-wordmark{font-size:clamp(70px,13.4vw,260px);line-height:1.05;letter-spacing:-.07em;white-space:nowrap;margin-top:65px;margin-bottom:-.08em}.footer-wordmark>span{color:var(--blue)}
body.modal-open{overflow:hidden}dialog{color:var(--ink);border:0;padding:0}dialog::backdrop{background:#151612d9}#player{width:min(1120px,92vw);max-width:none;max-height:92dvh;background:#191b18;color:var(--paper);overflow:auto}#player::backdrop{backdrop-filter:blur(5px)}.player-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 25px}.player-label{font-size:10px;color:#b7b9af}.close-player{background:none;color:var(--paper);display:flex;align-items:center;gap:25px;padding:4px;font-size:12px}.close-player>span{font-size:26px;line-height:1}.player-screen{position:relative;background:#10110f;min-height:180px}.player-screen video{display:block;width:100%;max-height:60dvh;object-fit:contain}.player-status{position:absolute;left:0;right:0;top:35%;padding:18px;margin:0;text-align:center;font-size:12px;background:#171916e0;pointer-events:none}.player-information{padding:25px;display:grid;grid-template-columns:1fr auto;gap:35px;align-items:start}.player-information .small-label{color:#9c9f92}.player-information h2{font-size:22px;font-weight:400;letter-spacing:-.02em;margin:10px 0 12px}.player-information p{font-size:12px;line-height:1.9;max-width:620px;color:#b7b9af;margin:0}.film-options{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.film-options button{color:#b7b9af;background:none;border:1px solid #4d5146;padding:10px 15px;font-size:11px}.film-options button[aria-pressed=true]{background:var(--paper);color:var(--ink);border-color:var(--paper)}.notice{position:fixed;bottom:25px;left:50%;transform:translate(-50%,10px);padding:13px 20px;background:var(--ink);color:var(--paper);font-size:12px;z-index:50;opacity:0;pointer-events:none;transition:opacity 200ms ease,transform 200ms var(--ease);white-space:nowrap}.notice.visible{opacity:1;transform:translate(-50%,0)}#mobile-menu{margin:0;max-width:none;max-height:none;width:100%;height:100dvh;padding:30px var(--gutter);background:var(--paper)}#mobile-menu[open]{display:flex;flex-direction:column}.menu-top{display:flex;justify-content:space-between;align-items:center;font-size:18px}.menu-close{font-size:32px;width:44px;height:44px;background:none}.menu-top>span{font-weight:700;letter-spacing:-.05em}#mobile-menu nav{display:grid;gap:15px;margin:auto 0}#mobile-menu nav a{display:flex;align-items:baseline;gap:25px;font-size:55px;letter-spacing:-.05em}#mobile-menu nav a>span{font-size:12px;color:var(--muted);letter-spacing:0}#mobile-menu>p{font-size:11px;line-height:1.8;color:var(--muted)}#mobile-menu>p>span{display:block;font-size:10px}
.motion-ready .reveal{opacity:0;transform:translateY(20px);transition:opacity 650ms var(--ease),transform 650ms var(--ease)}.motion-ready .reveal.is-visible{opacity:1;transform:none}.motion-ready .headline-line{animation:headline-in 850ms var(--ease) both}.motion-ready .headline-line:nth-child(2){animation-delay:90ms}@keyframes headline-in{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine){.navigation a:hover{color:var(--ink)}.hero-preview:hover .orb-arrow{transform:translate(4px,4px)}.project-media:hover img{transform:scale(1.025)}.project-media:hover .project-play{background:var(--blue);color:white;transform:scale(1.08)}.project-media:hover .project-watch{opacity:1;transform:none}.text-link:hover span{transform:translate(3px,-3px)}.contact-arrow:hover{background:var(--blue);color:white;border-color:var(--blue);transform:rotate(5deg)}.contact-links>a:hover{color:var(--blue)}.back-top:hover{color:var(--ink)}}
@media(min-width:1600px){.hero{padding-top:105px}.hero h1{margin-top:85px;margin-bottom:60px}.hero-bottom{margin-bottom:30px}.work-section{padding-top:110px}.project-grid{row-gap:140px}.project:nth-child(4n+2){padding-top:210px}.project:nth-child(4n+4){padding-top:160px}.project-titles h3{font-size:18px}.project-titles p{font-size:13px}.project-category{font-size:11px}.hero-copy{font-size:18px}.preview-orb{width:140px;height:140px}.studio-summary{font-size:16px}.person p{font-size:14px}}
@media(max-width:1000px){.header{grid-template-columns:1fr 1fr}.header-note{display:none}.hero{padding-top:65px}.hero h1{font-size:8.8vw}.project-grid{column-gap:3vw;row-gap:65px}.project:nth-child(4n+2){grid-column:9 / -1;padding-top:100px}.project-category{display:none}.studio-heading{grid-template-columns:1fr 3fr;gap:20px}.studio-details{gap:6vw}.people-grid{gap:5vw}.contact-arrow{width:75px;height:75px;font-size:45px}}
@media(max-width:640px){:root{--gutter:6vw}html{scroll-padding-top:85px}.header{padding-top:22px;padding-bottom:20px;gap:15px}.header.is-scrolled{padding-top:12px;padding-bottom:12px}.wordmark{font-size:23px;letter-spacing:-1.5px}.wordmark>span{padding-left:13px}.navigation{display:none}.menu-toggle{display:block;justify-self:end}.hero{padding-top:45px;padding-bottom:20px}.hero-kicker{font-size:9px}.small-brand{display:none}.hero h1{font-size:14vw;letter-spacing:-.065em;line-height:1.03;margin-top:55px;margin-bottom:35px}.headline-line{white-space:normal}.first-line{margin-left:16%}.hero-bottom{grid-template-columns:1fr;gap:35px}.hero-copy{font-size:12px;line-height:1.9}.hero-copy>span{font-size:10px}.hero-preview{justify-self:end;gap:16px}.preview-orb{width:86px;height:86px}.orb-arrow{font-size:30px}.preview-caption{font-size:10px}.preview-caption>span{font-size:9px}.scroll-cue{font-size:9px;margin-top:25px}#work{scroll-margin-top:-40px}.work-section{padding-top:65px}.section-intro{grid-template-columns:1fr auto;gap:20px;padding-top:20px;padding-bottom:35px}.section-intro h2{font-size:18px}.section-intro p{grid-column:1 / -1;grid-row:2;font-size:11px}.section-intro p>span{font-size:10px}.section-count{font-size:9px}.project-grid{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:40px;column-gap:0}.project:nth-child(n){grid-column:1 / -1;padding-top:0}.project:nth-child(4n+2){grid-column:2 / -1;margin-top:0}.project:nth-child(4n+3){grid-column:1 / 6}.project:nth-child(4n+4){grid-column:1 / -1}.project-caption{gap:12px;margin-top:13px}.project-titles h3{font-size:13px}.project-titles p{font-size:10px;margin-top:4px}.project-number{font-size:9px}.project-play{right:12px;bottom:12px;width:33px;height:33px;font-size:11px}.project-watch{display:none}.work-end{padding-top:55px;padding-bottom:65px;align-items:start;gap:20px;flex-direction:column}.small-label{font-size:9px}.text-link{font-size:11px;gap:20px}.studio-section{padding-top:22px;padding-bottom:70px}.section-label{gap:8px}.section-label h2{font-size:10px}.section-label>span:last-child{display:none}.studio-heading{grid-template-columns:1fr;gap:20px;margin-top:45px}.studio-aside{font-size:10px;line-height:1.6}.studio-heading>p{font-size:clamp(22px,5.8vw,36px);line-height:1.65;letter-spacing:-.04em}.studio-details{grid-template-columns:1fr;gap:35px;margin:30px 0 45px}.studio-summary{font-size:12px;line-height:2}.studio-summary>span{font-size:10px}.studio-practice{flex-direction:row;gap:20px}.studio-practice>div{flex:1;gap:9px;padding-top:12px}.studio-practice p{font-size:11px}.studio-practice small{font-size:8px}.studio-practice>div>span{font-size:8px}.people-grid{grid-template-columns:1fr;gap:40px;margin:0}.person-role{font-size:9px}.person h3{font-size:21px;margin:20px 0 15px}.person h3>span{font-size:11px}.person p{font-size:11px;max-width:100%}.person-note{font-size:9px;margin-top:18px}.contact-section{padding-top:25px;padding-bottom:45px;min-height:calc(100svh - 85px);display:flex;flex-direction:column}.contact-top{font-size:10px}.contact-section h2{font-size:11.5vw;margin-top:55px;margin-bottom:40px;line-height:1.07;letter-spacing:-.07em}.contact-section h2>span{margin-left:0}.contact-arrow{width:44px;height:44px;font-size:26px;top:-8px}.contact-bottom{grid-template-columns:1fr;gap:30px;padding-top:24px;margin-top:auto}.contact-bottom>p{font-size:12px}.contact-bottom>p>span{font-size:10px}.contact-links{gap:18px}.contact-links>a{font-size:16px;letter-spacing:-.035em}.contact-links>a>span{font-size:16px}.contact-links>a>.contact-kind{font-size:9px}.copy-wechat{font-size:10px;min-height:44px}footer{padding-top:25px}.footer-meta{font-size:8px;gap:10px;flex-wrap:wrap}.footer-meta>span:nth-child(2){display:none}.back-top{gap:10px}.footer-wordmark{font-size:13vw;letter-spacing:-.07em;margin-top:45px}#player{width:96vw;max-height:94dvh}.player-top{padding:14px 16px}.player-label{font-size:9px}.close-player{font-size:10px;gap:16px}.player-screen{min-height:120px}.player-information{grid-template-columns:1fr;padding:18px;gap:22px}.player-information h2{font-size:19px}.player-information p{font-size:12px}.film-options{justify-content:flex-start}.film-options button{font-size:10px;padding:9px 13px;min-height:44px}.notice{font-size:11px;max-width:90vw;white-space:normal;text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}.ambient-video,.project-preview{display:none}}
/* Editable studio portraits and private draft preview. */
.person-photo {display:block;width:100%;aspect-ratio:4 / 5;object-fit:cover;margin:0 0 28px;background:#e7e7e1;}
.person p {white-space:pre-line;}
.project-credit {color:#66685f;font-size:12px;margin-top:6px;}
.draft-banner {position:fixed;bottom:16px;left:16px;right:16px;z-index:1100;display:flex;justify-content:space-between;gap:12px;padding:16px 20px;background:#164bff;color:#fff;font-size:13px;box-shadow:0 4px 30px #0002;}
.draft-banner a {color:inherit;white-space:nowrap;}
.copy-wechat {display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:18px;letter-spacing:-.02em;}
.copy-wechat .contact-kind {font-size:10px;color:var(--muted);letter-spacing:0;}
@media(max-width:640px){.copy-wechat{font-size:16px}.copy-wechat .contact-kind{font-size:9px}}
