:root{--om:1.4vw;--gut:1.4vw;--bg:#fff;--fg:#0a0a0a;--menu-bg:#000;--menu-fg:#fff;--line:#0a0a0a2e;--ease:cubic-bezier(.16, 1, .3, 1);--ease-io:cubic-bezier(.65, 0, .35, 1);--ease-expo-io:cubic-bezier(.87, 0, .13, 1);--font:"Inter Tight", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", Helvetica, Arial, sans-serif}[data-theme=dark]{--bg:#0b0b0b;--fg:#ececec;--menu-bg:#ececec;--menu-fg:#0a0a0a;--line:#ececec33;color-scheme:dark}@media (width<=1200px){:root{--om:2vw;--gut:2vw}}@media (width<=1024px){:root{--om:3vw;--gut:3vw}}@media (width<=767px){:root{--om:4vw;--gut:4vw}}*,:before,:after{box-sizing:border-box}html,body{background:var(--menu-bg);width:100%;height:100%;margin:0;overflow:hidden}body{color:var(--fg);font-family:var(--font);letter-spacing:-.02em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:clamp(13px,12.2px + .27vw,17px);font-weight:400;line-height:1.15}html[lang=zh] body{letter-spacing:0}p,h1,h2,h3,ul{margin:0;padding:0}h1,h2,h3{font-size:inherit;font-weight:400}ul{list-style:none}a{color:inherit;text-decoration:none}img{max-width:none;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus{outline:none}:focus-visible{outline-offset:4px;outline:1px solid}.nav:focus-visible{outline-offset:4px}.upper{text-transform:uppercase}.dim{opacity:.62}.mt{margin-top:1.5em}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html.theme-anim body,html.theme-anim .view,html.theme-anim .menu,html.theme-anim .project__thumb:after{transition:background-color .6s var(--ease), color .6s var(--ease)!important}.l5{letter-spacing:-.05em;text-transform:uppercase;margin:-.14em .05em -.07em -.06em;font-size:12vw;font-weight:400;line-height:.9}.l4,.p-title{letter-spacing:-.04em;text-transform:uppercase;font-size:calc(5em + 1.6vw - 5px);font-weight:400;line-height:.85}.l3{letter-spacing:-.03em;font-size:calc(2.2em + 1.6vw - 5px);line-height:1}html[lang=zh] .l4,html[lang=zh] .p-title{letter-spacing:0;line-height:1}.u{display:inline-block;position:relative}.u:after{content:"";opacity:.3;transform-origin:100%;height:1px;transition:transform .5s var(--ease);background:currentColor;position:absolute;bottom:0;left:0;right:0}.u:hover:after{transform:scaleX(0)}.cursor{z-index:9999;pointer-events:none;mix-blend-mode:difference;color:#fff;position:fixed;top:0;left:0}.cursor__dot{opacity:0;width:64px;height:64px;position:absolute;top:0;left:0}.cursor__dot svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.cursor__dot circle{fill:none;stroke:#fff;stroke-width:32px;stroke-dasharray:100 100;transition:stroke-dasharray 0s var(--ease)}.cursor__label{white-space:nowrap;width:50vw;height:1.3em;font-size:1em;line-height:1.3em;position:absolute;top:0;left:0;overflow:hidden}.cursor__label>*{white-space:nowrap;display:block;position:absolute;top:0;left:0}.cursor__label .digit{text-align:center;width:.62em;display:inline-block;position:relative}.cursor__label .digits{display:flex;position:relative}html.is-touch .cursor{display:none}.nav{--size:48px;top:calc(var(--om) * .6);right:calc(var(--om) * .6);z-index:1000;width:var(--size);height:var(--size);mix-blend-mode:difference;color:#fff;border-radius:50%;position:fixed}@media (width<=767px){.nav{--size:44px}}.nav--hidden{visibility:hidden;pointer-events:none}.nav__circle{transition:transform .6s var(--ease);background:#fff;border-radius:50%;position:absolute;inset:0}.nav:hover .nav__circle{transform:scale(1.12)}html.menu-open .nav__circle{transform:scale(.9)}.nav__ring{pointer-events:none;animation:nav-ripple 2.8s var(--ease) infinite;border:1.5px solid #fff;border-radius:50%;position:absolute;inset:0}.nav:hover .nav__ring,html.menu-open .nav__ring{opacity:0;animation:none}@keyframes nav-ripple{0%{opacity:.8;transform:scale(1)}70%,to{opacity:0;transform:scale(1.75)}}.nav__orbit{animation:4s linear infinite nav-orbit;position:absolute;inset:0}.nav__dot{width:10px;height:10px;transition:transform .6s var(--ease), opacity .3s;background:#000;border-radius:50%;margin:-5px 0 0 -5px;position:absolute;top:50%;left:50%;transform:translate(9px)}.nav:hover .nav__orbit{animation-play-state:paused}.nav:hover .nav__dot{transform:translate(0)scale(1.6)}html.menu-open .nav__dot{opacity:0;transform:translate(0)scale(0)}@keyframes nav-orbit{to{transform:rotate(360deg)}}.nav__x:before,.nav__x:after{content:"";width:18px;height:2px;transition:transform .6s var(--ease);background:#000;margin:-1px 0 0 -9px;position:absolute;top:50%;left:50%;transform:rotate(0)scaleX(0)}html.menu-open .nav__x:before{transform:rotate(45deg)scaleX(1)}html.menu-open .nav__x:after{transform:rotate(-45deg)scaleX(1)}@media (prefers-reduced-motion:reduce){.nav__ring,.nav__orbit{animation:none}.nav__ring{opacity:0}}.nav__text{text-transform:uppercase;white-space:nowrap;pointer-events:none;height:1em;line-height:1em;position:absolute;top:50%;right:calc(100% + .8em);overflow:hidden;transform:translateY(-50%)}.nav__text>span{transition:transform .6s var(--ease);display:block}.nav--ready .nav__text>span{transform:translateY(100%)}.nav--ready:hover .nav__text>span{transform:none}html.menu-open .nav__text>span{transform:translateY(100%)}.menu{z-index:0;height:66vh;padding:var(--om);color:var(--menu-fg);opacity:0;pointer-events:none;justify-content:space-between;display:flex;position:fixed;top:0;left:0;right:0}html.menu-open .menu{pointer-events:auto}.menu .cat-list li.is-current .l4{opacity:.4}.menu__cats{flex:auto}.menu__side{text-transform:uppercase;padding-right:calc(var(--om) + 56px);flex-direction:column;flex:0 0 25%;justify-content:space-between;display:flex}.menu__main,.controls__langs,.controls__theme{flex-wrap:wrap;gap:.2em 1vw;display:flex}.menu__main li,.menu__controls li{overflow:hidden}.menu__main li>*,.menu__controls li>*{display:inline-block}.menu__controls{flex-direction:column;gap:.6em;display:flex}.footer__controls{flex-direction:column;gap:.4em;display:flex}.footer__controls ul{gap:0 1em}.lang-btn{opacity:.5;text-transform:uppercase;transition:opacity .3s}.lang-btn:hover,.lang-btn.is-active{opacity:1}.menu__main a{transition:opacity .3s}.menu__main a.is-current{opacity:.5}.cat-list li{align-items:flex-start;display:flex;overflow:hidden}.cat-list .l4{display:inline-block}@media (width<=767px){.menu{flex-direction:column;justify-content:space-between}.menu__cats .l4{font-size:15vw}.menu__side{flex-direction:row;flex-basis:auto;justify-content:space-between;align-items:flex-end;padding-right:0}.menu__main{flex-direction:column}}.num{pointer-events:none;height:1.2em;margin-left:.3em;font-size:1.2em;line-height:1.2em;display:inline-flex;overflow:hidden}.num>span{opacity:.5;transition:transform 1s var(--ease), opacity 1s var(--ease);display:block}.cat-list li:hover .num>span{opacity:1;transform:translateY(-1.2em)}.cat-list li.is-current:hover .num>span{opacity:.5;transform:none}.roll{flex-wrap:wrap;display:inline-flex}.roll .w{height:1.08em;padding-right:.25em;line-height:1.08em;display:inline-flex;overflow:hidden}.roll .w:last-child{padding-right:.04em}.roll .c{transition:transform 1s var(--ease);display:inline-block;position:relative}.roll .c:before,.roll .c:after{content:attr(data-c);position:absolute;left:0}.roll .c:before{top:-1.4em}.roll .c:after{top:1.4em}a:hover .roll .c:nth-child(odd){transform:translateY(1.4em)}a:hover .roll .c:nth-child(2n){transform:translateY(-1.4em)}#loader{z-index:999;background:var(--menu-bg);width:100vw;height:100vh;color:var(--menu-fg);position:fixed;top:0;left:0;overflow:hidden}.loader__row{padding:var(--om);display:flex}.loader__col--l{flex:0 0 75%}.loader__col--r{white-space:nowrap;flex:0 0 25%}#loader .l5{overflow:hidden}#loader .l5 span{display:inline-block;transform:translateY(100%)}@media (width<=767px){.loader__row{flex-direction:column}.loader__col--l,.loader__col--r{flex-basis:auto}#loader .l5{font-size:17vw}}#views{z-index:1;pointer-events:none;position:fixed;inset:0}.view{background:var(--bg);color:var(--fg);transform-origin:top;pointer-events:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;position:absolute;inset:0;overflow:hidden auto}.view::-webkit-scrollbar{display:none}.view--h{overflow:auto hidden}.view--h .view__content{width:max-content;height:100vh;display:flex}html.menu-open .view{cursor:pointer}html.menu-open .view>*,html.is-loading .view a,html.is-transitioning .view a{pointer-events:none}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.has-chars>div{margin-left:-.7em;padding-left:.7em;display:inline-block;overflow:hidden}.has-chars p{transition:transform 1s cubic-bezier(.16,1.05,.3,1) .34s;display:inline-block}.has-chars--r p{transition-delay:.5s}.is-unseen .has-chars p{transform:translateY(100%)}.hero{padding:var(--om) var(--om) 0;display:flex}.hero__l{flex:0 0 50%}.hero__name{text-transform:uppercase;transition:opacity 1s var(--ease) .6s;flex:0 0 25%;padding-top:.1em}.is-unseen .hero__name{opacity:0}.hero__r{flex:0 0 25%}.spacer{width:100%;height:max(10vw, calc(8 * var(--om)))}.spacer--s{height:max(5vw, calc(4 * var(--om)))}@media (width<=767px){.hero__l{flex-basis:66.66%}.hero__name{display:none}.hero__r{flex-basis:33.33%}.hero .l5{font-size:24vw}}.grid{padding:0 calc(var(--om) - var(--gut) / 2);flex-wrap:wrap;display:flex}.project{padding:0 calc(var(--gut) / 2) calc(var(--gut) * 7);flex:none;display:flex}.project>a{width:100%;display:block}.project:nth-child(9n+1){flex-basis:41.666%;margin-right:8.333%}.project:nth-child(9n+1)[data-o=landscape]{flex-basis:50%;margin-right:0}.project:nth-child(9n+2){flex-basis:25%;align-items:flex-end;margin-left:25%}.project:nth-child(9n+2)[data-o=landscape],.project:nth-child(9n+3){flex-basis:33.333%;margin-left:16.666%}.project:nth-child(9n+3)[data-o=landscape]{flex-basis:41.666%;margin-left:0;margin-right:8.333%}.project:nth-child(9n+4){flex-basis:33.333%;align-items:center;margin-left:8.333%;margin-right:8.333%}.project:nth-child(9n+5){flex-basis:25%;align-items:flex-end;margin-left:8.333%}.project:nth-child(9n+6){flex-basis:50%;margin-left:8.333%;margin-right:8.333%}.project:nth-child(9n+6)[data-o=landscape]{flex-basis:58.333%;margin-right:0}.project:nth-child(9n+7){flex-basis:33.333%;margin-left:33.333%;margin-right:33.333%}.project:nth-child(9n+7)[data-o=landscape]{flex-basis:66.666%;margin-left:16.666%;margin-right:16.666%}.project:nth-child(9n+8){flex-basis:25%;align-items:flex-start;margin-right:16.666%}.project:nth-child(9n+8)[data-o=landscape]{flex-basis:33.333%;margin-right:8.333%}.project:nth-child(9n+9){flex-basis:41.666%;margin-left:16.666%}.project:nth-child(9n+9)[data-o=landscape]{flex-basis:50%;margin-left:8.333%}@media (width<=1024px){.project{padding-bottom:calc(var(--gut) * 5)}}@media (width<=767px){.project:nth-child(n),.project:nth-child(n)[data-o]{padding-bottom:calc(var(--gut) * 4);flex-basis:100%;margin-left:0;margin-right:0}}.project__thumb{position:relative;overflow:hidden}.project__thumb img{width:100%;height:auto;transition:transform 1.8s var(--ease);transform:scale(1.12)}.project__thumb:after{content:"";background:var(--bg);transform-origin:top;transition:transform 1.2s var(--ease-expo-io);position:absolute;inset:-1px}.is-inview .project__thumb img{transform:scale(1)}.is-inview .project__thumb:after{transform:scaleY(0)}.is-inview a:hover .project__thumb img{transform:scale(1.03)}img.lazy{opacity:0;transition:opacity .8s var(--ease)}.project__thumb img.lazy{transition:opacity .8s var(--ease), transform 1.8s var(--ease)}img.lazy.is-loaded{opacity:1}.grid--incoming{pointer-events:none;position:absolute;left:0;right:0}.project__caption{text-transform:uppercase;padding-top:.6em;display:none}html.is-touch .project__caption{display:block}.filter-row{padding:var(--om) var(--om) 0;display:flex}.filter{gap:0 var(--om);text-transform:uppercase;flex-wrap:wrap;display:flex}.filter a{opacity:.5;transition:opacity .3s}.filter a:hover,.filter a.is-active{opacity:1}.footer{padding:0 var(--om) var(--om)}.footer .cat-list{margin-bottom:calc(var(--om) * 3)}.footer__meta{text-transform:uppercase;display:flex}.footer__meta>div:first-child{flex:0 0 50%}.footer__meta>div:nth-child(2),.footer__meta>div:nth-child(3){flex:0 0 25%}@media (width<=767px){.footer__meta{flex-wrap:wrap;row-gap:1em}.footer__meta>div:first-child{flex-basis:100%}.footer__meta>div:nth-child(2),.footer__meta>div:nth-child(3){flex-basis:50%}}.p-intro{width:50vw;height:100vh;padding:var(--om);flex-direction:column;flex:none;justify-content:space-between;display:flex}.p-title .w{padding-bottom:.04em;padding-right:.25em;display:inline-flex;overflow:hidden}.p-title .w>span{transition:transform 1s var(--ease);display:inline-block;transform:translateY(1em)}.p-title.is-inview .w>span{transform:none}.p-title .w:nth-child(2)>span{transition-delay:80ms}.p-title .w:nth-child(3)>span{transition-delay:.16s}.p-title .w:nth-child(4)>span{transition-delay:.24s}.p-title .w:nth-child(5)>span{transition-delay:.32s}.p-meta{text-transform:uppercase}.p-text{width:25vw;height:100vh;padding:var(--om) calc(var(--gut) / 2);flex-direction:column;flex:none;justify-content:space-between;display:flex}.p-text>div{opacity:0;transform:translateX(calc(var(--gut) / 2));transition:opacity .8s var(--ease), transform 1s var(--ease)}.is-inview.p-text>div{opacity:1;transform:none}.is-inview.p-text>div:nth-child(2){transition-delay:.15s}.m-img{height:100vh;padding:var(--om) var(--om) var(--om) 0;flex:none;display:flex}.m-img--top{align-items:flex-start}.m-img--bottom{align-items:flex-end}.m-img__i{height:66.6%;transform:translateX(calc(var(--om) * 4));transition:transform .9s var(--ease)}.m-img.is-inview .m-img__i{transform:none}.m-img--md .m-img__i{height:66.6%}.m-img--ml .m-img__i{height:83.3%}.m-img--lg .m-img__i{height:100%}.m-img__i img{width:auto;height:100%}.m-img--thumb{margin-right:var(--om);padding:0}.m-img--thumb .m-img__i{height:100%;transform:none}.h-spacer{flex:none;width:16vw;height:100%}.p-next{flex:none;height:100vh;margin-left:25vw;display:flex}.p-next__info{width:50vw;padding:var(--om);flex-direction:column;display:flex}.p-next__label{text-transform:uppercase;margin-bottom:1em}.p-next__link{display:block}.p-next__thumb{cursor:pointer;width:25vw;height:100vh;display:block;overflow:hidden}.p-next__thumb img{object-fit:cover;width:100%;height:100%;transition:transform 2s var(--ease)}.p-next__thumb:hover img{transform:scale(1.03)}@media (width<=767px){.view--p .view__content{display:block}.p-intro{width:100%;height:auto;min-height:35vh;padding-right:calc(var(--om) * 4)}.p-intro .p-meta{margin-top:2em}.p-text{width:100%;height:auto;padding:0 var(--om) calc(var(--om) * 3);gap:1.5em}.m-img,.m-img--thumb{width:100%;height:auto;padding:0 var(--om) calc(var(--om) * 3);margin:0}.m-img--thumb{padding:0 0 calc(var(--om) * 3)}.m-img__i,.m-img--thumb .m-img__i{width:100%;height:auto;transform:translateY(calc(var(--om) * 4))}.m-img--md .m-img__i{width:75%}.m-img--bottom{justify-content:flex-end}.m-img__i img{width:100%;height:auto}.h-spacer{display:none}.p-next{height:auto;margin:0;padding-top:20vh;display:block}.p-next__info{width:100%}.p-next__thumb{width:100%;height:50vh}}#single{z-index:95;pointer-events:none;position:fixed;inset:0;overflow:hidden}#single .single__bg{background:var(--menu-bg);opacity:0;position:absolute;inset:0}#single .clone{background:#fff0;position:absolute;top:0;left:0;overflow:hidden}#single .clone img{object-fit:cover;width:100%;height:100%}#single .p-title .w>span{transition:none}#single .single-title{width:50vw;padding:var(--om);color:var(--menu-fg);position:absolute;top:0;left:0}@media (width<=767px){#single .single-title{width:100%;padding-right:calc(var(--om) * 4)}}.scrollbar{z-index:90;pointer-events:none;mix-blend-mode:difference;opacity:0;width:2px;transition:opacity .6s var(--ease);position:fixed;top:0;bottom:0;right:3px}.scrollbar.is-active{opacity:1}.scrollbar--h{width:auto;height:2px;inset:auto 0 3px}.scrollbar__thumb{background:#fff;border-radius:2px;position:absolute;top:0;left:0}html.menu-open .scrollbar{opacity:0}.next-bar{z-index:99;mix-blend-mode:difference;pointer-events:none;background:#fff;width:0;position:fixed;top:0;bottom:0;right:-2%}.about{padding-top:calc(var(--om) * 4)}.about__lead{padding:0 var(--om);width:80%}.about__row{padding:0 var(--om);gap:var(--gut);display:flex}.about__img{flex:0 0 calc(33.333% - var(--gut));margin-left:16.666%}.about__img .project__thumb img{width:100%}.about__info{align-content:end;gap:2em var(--gut);flex:auto;grid-template-columns:1fr 1fr;display:grid}.about__info h2{text-transform:uppercase;opacity:.62;margin-bottom:.4em;font-size:1em;font-weight:400}.about__text{grid-column:1/-1;max-width:34em}.about__text p+p{margin-top:1em}.fade{opacity:0;transition:opacity 1s var(--ease), transform 1.2s var(--ease);transform:translateY(1.5em)}.fade.is-inview{opacity:1;transform:none}@media (width<=767px){.about__lead{width:100%}.about__row{flex-direction:column}.about__img{flex-basis:auto;width:75%;margin-left:0}.about__info{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important}}.services,.contact,.text-page,.insp-page{padding-top:calc(var(--om) * 4)}.services__intro,.contact__title,.text-page>h1,.insp-page__title{padding:0 var(--om);width:80%}.services__list{padding:0 var(--om);margin:0;list-style:none}.service{gap:var(--gut);border-top:1px solid var(--line);grid-template-columns:8.333% 1fr 1fr 16.666%;align-items:baseline;padding:1.2em 0 3em;display:grid}.service__num{opacity:.62}.service__title{letter-spacing:-.03em;text-transform:uppercase;font-size:calc(1.5em + 1.2vw);line-height:1}.service__price{text-align:right;text-transform:uppercase}.services__cta{padding:calc(var(--om) * 3) var(--om) 0;border-top:1px solid var(--line);margin:0 var(--om);padding-left:0}.services__cta a{display:inline-block}.contact__row{gap:var(--gut);padding:0 var(--om);display:flex}.contact__info{flex:0 0 calc(33.333% - var(--gut));max-width:26em}.form{gap:1.8em var(--gut);flex:auto;grid-template-columns:1fr 1fr;align-content:start;margin-left:8.333%;display:grid}.field{flex-direction:column;gap:.5em;display:flex}.field>span{text-transform:uppercase;opacity:.62}.field input,.field select,.field textarea{font:inherit;color:inherit;border:0;border-bottom:1px solid var(--line);-webkit-appearance:none;appearance:none;background:0 0;border-radius:0;outline:none;padding:.5em 0;transition:border-color .3s}.field select{cursor:pointer}.field select option{color:#0a0a0a;background:#fff}.field textarea{resize:vertical;min-height:7em}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--fg)}.field--wide,.form__agree,.form__send,.form__status{grid-column:1/-1}.form__hp{position:absolute;left:-9999px}.form__send{text-transform:uppercase;justify-self:start}.form.is-sending .form__send{opacity:.35;pointer-events:none}.form__status{min-height:1.3em}.form.is-sent>:not(.form__status){display:none}.form.is-sent .form__status{letter-spacing:-.03em;max-width:18em;font-size:calc(1.5em + 1.2vw);line-height:1.05}.text-page__body{padding:0 var(--om);max-width:40em;margin-left:33.333%}.text-page__body p+p{margin-top:1em}.notfound{min-height:100vh;padding:var(--om);flex-direction:column;justify-content:space-between;display:flex}.notfound__links li{flex-wrap:wrap;align-items:baseline;gap:0 1em;display:flex}.notfound__links .l4{font-size:calc(2em + 2vw)}@media (width<=767px){.services__intro,.contact__title,.text-page>h1{width:100%}.service{grid-template-columns:2.5em 1fr;row-gap:.8em}.service__desc,.service__price{text-align:left;grid-column:2}.contact__row{flex-direction:column;gap:3em}.contact__info{flex-basis:auto}.form{grid-template-columns:1fr;margin-left:0}.text-page__body{margin-left:0}}.insp__head{gap:var(--gut);padding:0 var(--om);display:flex}.insp__label{flex:0 0 calc(33.333% - var(--gut));text-transform:uppercase;opacity:.62;font-size:1em}.insp__text{flex:auto;max-width:40em}.insp__text h3{margin-bottom:.8em}.insp__text p+p{margin-top:1em}.insp__grid{align-items:flex-end;gap:calc(var(--gut) * 2) var(--gut);padding:calc(var(--om) * 4) var(--om) 0;flex-wrap:wrap;display:flex}.insp__item{flex:none;margin:0}.insp__item[data-o=portrait]{width:calc(20% - var(--gut))}.insp__item[data-o=landscape]{width:calc(33.333% - var(--gut))}.insp__item img{width:100%;height:auto}.insp__item figcaption{text-transform:uppercase;padding-top:.6em;font-size:.85em}.insp__credit{padding:calc(var(--om) * 2) var(--om) 0;font-size:.85em}@media (width<=767px){.insp__head{flex-direction:column;gap:1em}.insp__label{flex-basis:auto}.insp__item[data-o]{width:100%}.insp__item[data-o=portrait]{width:75%}.l4,.p-title{font-size:min(5em + 1.6vw - 5px,12.5vw)}}
