@font-face{font-family:Anton;src:url(fonts/anton.woff2) format('woff2');font-display:swap;font-weight:400}@font-face{font-family:'Noto Sans SC';src:url(fonts/noto-sc.woff2) format('woff2');font-display:swap;font-weight:100 900}
:root{--paper:#f2f0e9;--red:#ee3426;--ink:#171715;--rule:rgba(23,23,21,.35);--gutter:3vw;--ease:cubic-bezier(.2,.7,.1,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--ink);background:var(--paper);font-family:'Noto Sans SC','Source Han Sans SC','PingFang SC',sans-serif;font-size:14px;line-height:1.6;overflow-x:clip}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:6px}.red-spread a:focus-visible,.contact a:focus-visible{outline-color:var(--ink)}::selection{background:var(--red);color:var(--paper)}img{max-width:100%;display:block}figure,p,h1,h2,h3{margin:0}button{cursor:pointer}.display{font-family:Anton,'Barlow Condensed','Impact',sans-serif;font-weight:400;line-height:.9;letter-spacing:-.025em}.skip{position:fixed;z-index:1000;top:8px;left:8px;padding:10px 18px;background:var(--ink);color:white;transform:translateY(-180%)}.skip:focus{transform:translateY(0)}.reading-line{position:fixed;z-index:100;top:0;left:0;height:3px;background:var(--red);width:0;pointer-events:none}
.masthead{margin:0 var(--gutter);height:102px;display:flex;align-items:center;gap:4vw;border-bottom:1px solid var(--ink);position:relative;z-index:10}.brand{width:159px;flex:0 0 159px}.brand img{width:100%;height:auto;filter:brightness(0)}.masthead-location{font-size:10px;line-height:1.55;letter-spacing:.08em}.masthead-location span{letter-spacing:.12em}.main-nav{display:flex;gap:2.8vw;margin-left:auto}.main-nav a{font-weight:600;font-size:13px;position:relative}.main-nav a:after{content:'';position:absolute;height:1px;bottom:-4px;left:0;right:100%;background:var(--red);transition:right .25s}.main-nav a:hover:after{right:0}.main-nav span{font-size:9px;vertical-align:super;color:var(--red);margin-left:4px}.contact-link{border-bottom:1px solid var(--ink);padding:5px 0;margin-left:2vw;font-weight:600}.contact-link span{margin-left:25px;font-size:21px}
.cover{padding:19px var(--gutter) 52px;position:relative}.cover-line{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.13em}.cover-title{color:var(--red);font-size:18.55vw;white-space:nowrap;margin-top:19px;position:relative;z-index:0;letter-spacing:-.018em;will-change:transform}.cover-art{width:75%;margin-left:21%;position:relative;margin-top:-3.8vw;z-index:2}.cover-stage{position:relative;aspect-ratio:1587/1080;background:#e9e7df}.cover-stage>a{display:block;width:100%;height:100%;overflow:hidden}.cover-stage img{width:100%;height:100%;object-fit:contain;clip-path:inset(0 0 0 0);transition:clip-path .38s var(--ease);background:var(--paper)}.cover-stage.changing img{clip-path:inset(0 0 0 100%)}.frame-mark{position:absolute;width:17px;height:17px;pointer-events:none;border-color:var(--red);border-style:solid}.top-left{top:-8px;left:-8px;border-width:1px 0 0 1px}.bottom-right{bottom:-8px;right:-8px;border-width:0 1px 1px 0}.cover-number{position:absolute;top:31vw;left:var(--gutter);color:var(--red)}.cover-number>span{font-family:Anton,sans-serif;font-size:10vw;line-height:.9;letter-spacing:-.04em;display:block}.cover-number small{display:block;font-size:10px;letter-spacing:.12em;margin-top:17px}.vertical-note{position:absolute;left:18%;top:32vw;writing-mode:vertical-rl;font-size:9px;letter-spacing:.16em}.cover-caption{border-bottom:1px solid var(--ink);padding:22px 0 15px;display:flex;justify-content:space-between;align-items:flex-end}.eyebrow{font-size:9px;letter-spacing:.12em}.cover-caption h2{font-weight:650;font-size:30px;letter-spacing:-.035em;line-height:1.3;margin-top:3px}.case-link{font-size:11px}.case-link span{font-size:23px;padding-left:25px}.cover-bottom{display:flex;align-items:flex-end;justify-content:space-between;margin-top:38px}.cover-intro{font-size:12px;line-height:1.8}.carousel-control{display:flex;align-items:center;gap:18px;margin-left:auto;margin-right:5vw}.carousel-control>span{font-size:11px;min-width:52px;letter-spacing:.08em}.carousel-control button{border:0;border-bottom:1px solid var(--ink);background:transparent;font-size:27px;line-height:1.5;width:47px;padding:0;transition:color .2s,transform .2s}.carousel-control button:hover{color:var(--red);transform:translateX(3px)}.carousel-control button:disabled{cursor:wait}.scroll-hint{font-size:11px}.scroll-hint span{display:inline-block;margin-left:14px;font-size:25px}
.section-line{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid currentColor;padding-top:13px;font-size:10px;letter-spacing:.09em}.section-line a{border-bottom:1px solid currentColor}.selected{position:relative;padding:52px var(--gutter) 115px}.work-title{font-size:18vw;line-height:.86;letter-spacing:-.028em;margin:50px 0 0 -1vw;color:var(--red);pointer-events:none}.work-title>span{display:block}.work-title>span+span{margin-left:3vw}.asterisk{font-family:'Noto Sans SC',sans-serif;font-size:10vw;vertical-align:top;margin-left:1vw;display:inline-block;transform:translateY(1vw)}.pair{position:relative;display:grid;grid-template-columns:repeat(12,1fr);column-gap:2vw}.pair-one{margin-top:-13vw}.photo{position:relative;min-width:0}.work-02{grid-column:2/7}.work-03{grid-column:8/13;margin-top:20vw}.photo-index{position:absolute;font-size:8vw;color:var(--red);top:-5.4vw;left:-3.9vw;z-index:3;pointer-events:none}.image-window{display:block;position:relative;overflow:hidden;background:var(--ink)}.image-window>img{width:100%;height:auto;display:block;transition:transform 1.3s var(--ease)}.image-visit{position:absolute;right:0;bottom:0;padding:13px 18px;font-size:11px;background:var(--paper);color:var(--ink);transform:translateY(102%);transition:transform .35s var(--ease)}.image-window:hover .image-visit,.image-window:focus-visible .image-visit{transform:translateY(0)}.photo-caption{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-top:1px solid currentColor;margin-top:18px;padding-top:9px}.photo-caption h3{font-size:13px;font-weight:600;letter-spacing:-.025em}.photo-caption>span{font-size:8px;letter-spacing:.1em;text-align:right}.margin-note{margin-top:38px;font-size:12px;line-height:1.9}.enhanced [data-reveal] .image-window{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease)}.enhanced [data-reveal] .image-window>img{transform:translateY(28px)}.enhanced [data-reveal].revealed .image-window{clip-path:inset(0 0 0 0)}.enhanced [data-reveal].revealed .image-window>img{transform:translateY(0)}.enhanced .photo-caption{transition:transform .9s var(--ease);transform:translateY(12px)}.enhanced .revealed .photo-caption{transform:translateY(0)}
.red-spread{background:var(--red);padding:30px var(--gutter) 66px;position:relative;overflow:hidden}.detail-title{font-size:25vw;line-height:.9;letter-spacing:-.027em;margin-top:52px;color:var(--paper);position:relative;z-index:1;pointer-events:none}.detail-title>span{font-family:'Noto Sans SC',sans-serif;font-size:14vw;vertical-align:top;margin-left:1vw}.red-pair{display:grid;grid-template-columns:repeat(12,1fr);column-gap:2vw;margin-top:-4.6vw;position:relative;z-index:2}.work-04{grid-column:2/7}.work-05{grid-column:9/13;margin-top:21vw}.red-spread .photo-index{color:var(--ink)}.red-spread .image-window{background:var(--red)}.red-spread .photo-caption{border-color:var(--ink)}.spread-label{position:absolute;left:8vw;bottom:75px;font-size:13px;line-height:1.8}.spread-label span{font-size:9px;letter-spacing:.13em}.red-spread .work-04 .photo-caption{padding-right:3px}
.final-pair{padding:115px var(--gutter) 0}.chapter-mark{display:flex;align-items:flex-end;justify-content:space-between;padding:0 5vw 0 1vw}.chapter-mark>.display{font-size:12vw;color:var(--red);letter-spacing:-.035em}.chapter-dash{display:inline-block;padding:0 3vw;font-size:8vw;vertical-align:middle}.chapter-mark>p{font-size:12px;line-height:1.8;transform:translateY(-15px)}.pair-two{margin-top:35px}.work-06{grid-column:2/6}.work-07{grid-column:8/13;margin-top:11vw}.all-work{display:grid;grid-template-columns:1fr auto;align-items:center;position:relative;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin-top:100px;padding:27px 0 33px}.all-work>span:first-child{grid-column:1;font-size:11px;margin-bottom:20px}.all-work .display{grid-column:1;font-size:10.9vw;line-height:.9;transition:letter-spacing .5s var(--ease)}.all-work:hover .display{letter-spacing:0}.all-arrow{grid-column:2;grid-row:1/3;font-size:9vw;line-height:1;transition:transform .4s var(--ease)}.all-work:hover .all-arrow{transform:translate(8px,-8px)}
.scope{padding:130px var(--gutter) 110px}.scope-heading{display:flex;align-items:flex-end;gap:5vw;margin:45px 0 60px}.scope-heading h2{font-size:11.5vw;letter-spacing:-.025em;color:var(--red)}.scope-heading>p{font-size:18px;margin-bottom:5px}.service-list{position:relative}.service{display:flex;position:relative;align-items:center;border-top:1px solid var(--ink);min-height:145px;gap:3vw;padding:22px 0;transition:color .3s}.service:last-child{border-bottom:1px solid var(--ink)}.service-no{align-self:flex-start;font-size:11px;margin-top:14px;width:5vw}.service h3{font-size:clamp(25px,3.7vw,58px);font-weight:750;letter-spacing:-.07em;line-height:1.3}.service p{font-size:10px;margin-top:8px;letter-spacing:.025em}.service-en{margin-left:auto;font-size:10px;letter-spacing:.1em;width:13vw}.service-arrow{font-size:40px;line-height:1;margin-right:2vw}.service:hover,.service:focus-visible{color:var(--red)}.service-picture{position:absolute;z-index:5;top:50%;left:57%;width:225px;height:275px;background:var(--ink);pointer-events:none;clip-path:inset(50% 0 50% 0);transform:translateY(-50%) rotate(-4deg);transition:clip-path .45s var(--ease),transform .6s var(--ease);box-shadow:0 10px 30px #0002}.service-picture img{width:100%;height:100%;object-fit:cover}.service:hover .service-picture,.service:focus-visible .service-picture{clip-path:inset(0 0 0 0);transform:translateY(calc(-50% + var(--preview-y,0px))) rotate(2deg)}
.studio{margin:0 var(--gutter);padding:0 0 135px}.studio-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:12vw;padding:75px 5vw 0}.studio-heading h2{font-size:clamp(42px,6vw,92px);font-weight:800;letter-spacing:-.07em;line-height:1.12;position:relative}.red-dot{width:1vw;height:1vw;min-width:10px;min-height:10px;background:var(--red);display:inline-block;margin-left:12px}.studio-heading>.display{font-size:3.7vw;color:var(--red);margin-top:27px;letter-spacing:-.01em}.studio-copy{padding-top:8px;max-width:470px}.studio-copy p:first-child{font-size:20px;font-weight:600;line-height:1.7;margin-bottom:27px}.studio-copy p+p{font-size:13px;line-height:2.05}.studio-copy>a{display:inline-flex;justify-content:space-between;gap:60px;margin-top:34px;font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:8px}.studio-copy>a span{font-size:22px;line-height:1}
.contact{background:var(--red);padding:30px var(--gutter) 36px}.contact-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-top:75px}.contact-heading h2{font-size:clamp(28px,5.3vw,85px);letter-spacing:-.065em;line-height:1.2;font-weight:750}.contact-heading>span{font-size:12px;line-height:1.85;padding-right:7vw}.phone{font-size:12.6vw;letter-spacing:-.015em;display:flex;justify-content:space-between;align-items:center;padding:40px 0 46px;border-bottom:1px solid var(--ink);white-space:nowrap}.phone>span{font-size:7.8vw;font-family:'Noto Sans SC',sans-serif;transition:transform .4s var(--ease)}.phone:hover>span{transform:translate(8px,-8px)}.contact-bottom{display:flex;gap:5vw;align-items:flex-end;margin-top:38px}.footer-brand{display:block;width:190px}.footer-brand img{filter:brightness(0);width:100%;height:auto}.contact-bottom address{margin-left:auto;font-size:12px;line-height:1.8;font-style:normal}.contact-bottom>p{font-size:10px;line-height:1.8;letter-spacing:.045em}
@media(min-width:1800px){body{font-size:16px}.masthead{height:125px}.cover-line,.section-line{font-size:12px}.photo-caption h3{font-size:16px}.photo-caption>span{font-size:11px}.margin-note{font-size:15px}}
@media(max-width:900px){.masthead{height:86px;gap:25px}.brand{width:132px;flex-basis:132px}.masthead-location{display:none}.main-nav{gap:23px}.contact-link{margin-left:8px}.contact-link span{margin-left:12px}.cover-art{width:79%;margin-left:17%;margin-top:-2.8vw}.cover-number{top:32vw}.vertical-note{left:14%;top:33vw}.cover-number>span{font-size:10vw}.cover-caption h2{font-size:25px}.cover-intro{font-size:11px}.photo-caption{display:block}.photo-caption>span{display:block;margin-top:2px;text-align:left}.photo-index{font-size:10vw}.work-02{grid-column:1/7;margin-left:3vw}.work-03{grid-column:8/13}.red-pair{column-gap:3vw}.work-04{grid-column:1/7;margin-left:3vw}.work-05{grid-column:8/13}.spread-label{left:6vw;bottom:45px;font-size:11px}.spread-label span{font-size:8px}.service-picture{width:175px;height:210px;left:55%}.service-en{width:16vw}.studio-layout{gap:8vw;padding:55px 3vw 0}.studio-copy p:first-child{font-size:17px}.studio-copy p+p{font-size:12px}.contact-heading>span{padding-right:0}.footer-brand{width:155px}}
@media(max-width:600px){:root{--gutter:5vw}.masthead{height:76px;gap:18px}.brand{width:119px;flex-basis:119px}.main-nav{gap:18px}.main-nav a{font-size:11px}.main-nav a:nth-child(3){display:none}.main-nav span{display:none}.contact-link{font-size:11px;white-space:nowrap;margin-left:auto;padding:4px 0}.contact-link span{font-size:17px;margin-left:8px}.main-nav{margin-left:auto}.cover{padding-top:16px;padding-bottom:26px}.cover-line{font-size:7px;letter-spacing:.055em}.cover-title{font-size:17.8vw;margin-top:22px;letter-spacing:-.02em}.cover-art{width:100%;margin-left:0;margin-top:18px}.cover-number{position:relative;top:auto;left:auto;display:flex;align-items:center;gap:8px;margin-top:16px;margin-bottom:8px}.cover-number>span{font-size:34px}.cover-number small{font-size:8px;margin-top:0}.cover-art{margin-top:-20px;margin-left:9%;width:91%}.cover-stage{aspect-ratio:1587/1080}.vertical-note{left:5.2vw;top:62vw;font-size:7px;letter-spacing:.07em}.cover-caption{padding:15px 0 12px}.eyebrow{font-size:7px;letter-spacing:.04em}.cover-caption h2{font-size:21px;letter-spacing:-.025em}.case-link{font-size:9px}.case-link span{font-size:19px;padding-left:12px}.cover-bottom{margin-top:22px;gap:14px;align-items:center}.cover-intro{font-size:9px;line-height:1.8;max-width:47%}.carousel-control{gap:12px;margin:0 0 0 auto}.carousel-control>span{font-size:9px;min-width:39px}.carousel-control button{width:30px;font-size:23px}.scroll-hint{display:none}.selected{padding-top:42px;padding-bottom:65px}.section-line{font-size:8px;letter-spacing:.025em;gap:8px}.selected .section-line>span:nth-child(2){display:none}.work-title{font-size:22.5vw;margin-top:38px;line-height:.9}.work-title>span+span{margin-left:10vw}.asterisk{font-size:13vw;margin-left:3vw}.pair-one{display:block;margin-top:-7vw}.work-02{width:70%;margin-left:6%}.work-03{width:88%;margin-left:12%;margin-top:78px}.photo-index{font-size:15vw;top:-9.8vw;left:-5vw}.photo-caption{margin-top:12px;padding-top:7px;display:flex}.photo-caption h3{font-size:11px}.photo-caption>span{font-size:6px;margin:0}.margin-note{font-size:10px;margin-top:19px;line-height:1.85}.image-visit{transform:none;padding:7px 10px;font-size:8px;background:var(--paper)}.red-spread{padding-top:23px;padding-bottom:38px}.detail-title{font-size:24.8vw;margin-top:40px}.detail-title>span{font-size:12vw}.red-pair{display:block;margin-top:-2vw}.work-04{width:72%;margin-left:4%}.work-05{width:67%;margin-left:33%;margin-top:72px}.red-spread .photo-index{font-size:14vw}.spread-label{position:static;margin:38px 0 0 2vw;font-size:11px}.spread-label span{font-size:8px}.final-pair{padding-top:62px}.chapter-mark{padding:0 0 0 3vw}.chapter-mark>.display{font-size:19vw}.chapter-dash{font-size:11vw;padding:0 3vw}.chapter-mark>p{font-size:9px;transform:none}.pair-two{display:block;margin-top:30px}.work-06{width:65%;margin-left:3%}.work-07{width:75%;margin-left:25%;margin-top:45px}.all-work{margin-top:55px;padding:20px 0 24px}.all-work>span:first-child{font-size:9px;margin-bottom:17px}.all-work .display{font-size:17.8vw}.all-arrow{font-size:14vw}.scope{padding-top:70px;padding-bottom:68px}.scope>.section-line>span:nth-child(2){max-width:55%;text-align:right;font-size:7px}.scope-heading{margin:34px 0 35px;gap:6vw}.scope-heading h2{font-size:16vw}.scope-heading>p{font-size:12px;margin-bottom:3px}.service{min-height:127px;padding:20px 0;gap:13px}.service-no{width:15px;font-size:8px;margin-top:8px}.service h3{font-size:26px;letter-spacing:-.055em}.service p{font-size:8px;max-width:195px;margin-top:8px}.service-en{display:none}.service-arrow{font-size:23px;margin:0 0 0 auto;align-self:flex-start}.service-picture{position:relative;top:auto;left:auto;clip-path:none;width:63px;height:80px;flex:0 0 63px;transform:none;order:2;box-shadow:none;margin-left:0}.service:hover .service-picture,.service:focus-visible .service-picture{transform:none}.service-arrow{order:3}.service-picture img{object-fit:cover}.studio{padding-bottom:75px}.studio-layout{display:block;padding:38px 0 0}.studio-heading h2{font-size:52px;line-height:1.13}.studio-heading>.display{font-size:30px;margin-top:20px}.studio-copy{margin:36px 0 0 18%;max-width:350px;padding:0}.studio-copy p:first-child{font-size:15px;line-height:1.8;margin-bottom:20px}.studio-copy p+p{font-size:12px;line-height:2}.studio-copy>a{font-size:11px;gap:58px;margin-top:25px}.contact{padding-top:24px;padding-bottom:27px}.contact-heading{display:block;margin-top:43px}.contact-heading h2{font-size:32px;letter-spacing:-.06em}.contact-heading>span{display:block;font-size:10px;margin-top:20px;line-height:1.8}.phone{font-size:12.8vw;padding:33px 0 31px;letter-spacing:-.02em}.phone>span{font-size:7.2vw}.contact-bottom{display:grid;grid-template-columns:1fr 1fr;gap:25px 16px;margin-top:25px;align-items:end}.footer-brand{width:129px}.contact-bottom address{font-size:10px;margin-left:0;line-height:1.8}.contact-bottom>p{grid-column:1/3;font-size:8px;letter-spacing:.05em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.enhanced [data-reveal] .image-window{clip-path:none}.enhanced [data-reveal] .image-window>img,.enhanced .photo-caption{transform:none}.cover-title{transform:none!important}}
/* Photography opens the page. The display identity lives in the image margin. */
.cover-title{position:absolute;top:146px;left:var(--gutter);margin:0;font-size:6.7vw;line-height:.85;letter-spacing:-.018em;writing-mode:vertical-rl;transform:translateY(var(--title-shift,0px));z-index:0}
.cover-art{width:83%;margin-left:15%;margin-top:27px}
.cover-number{top:57px;left:var(--gutter);display:flex;align-items:flex-end;gap:12px}
.cover-number>span{font-size:4vw;line-height:.9}.cover-number small{font-size:8px;letter-spacing:.08em;margin:0 0 2px}
.vertical-note{display:none}
@media(max-width:900px) and (min-width:601px){.cover-art{width:84%;margin-left:16%;margin-top:27px}.cover-title{top:130px;font-size:6.9vw}.cover-number{top:57px}.cover-number>span{font-size:4.7vw}}
@media(max-width:600px){.cover{padding-top:12px}.cover-line{display:none}.cover-title{top:5px;left:var(--gutter);font-size:17.8vw;line-height:.9;writing-mode:horizontal-tb;transform:none;margin:0;letter-spacing:-.02em}.cover-number{display:none}.cover-art{width:100%;margin-left:0;margin-top:24px}}
/* A portrait slide receives a portrait-height viewing window, without cropping. */
.cover-stage{transition:height .52s var(--ease)}
.cover-stage img{object-fit:contain}
@media(max-width:600px){.photo-caption h3{font-size:12px}.photo-caption>span{font-size:10px;letter-spacing:.025em}.photo-caption{align-items:flex-start;flex-wrap:wrap;gap:4px 10px}.eyebrow{font-size:10px;letter-spacing:.025em}.case-link{font-size:11px}}
/* The project label and controls share the left editorial margin on desktop. */
@media(min-width:901px){
 .cover-title{font-size:min(6.7vw,96.48px)}
 .cover-art{position:static}
 .cover-stage{z-index:2}
 .cover-caption{position:absolute;left:var(--gutter);top:calc(146px + min(29vw,417.6px));width:calc(14.1vw - 24px);max-width:210px;display:grid;gap:8px;padding:0 0 12px;z-index:3}
 .cover-caption h2{font-size:clamp(18px,1.5vw,23px);line-height:1.4;overflow-wrap:anywhere}
 .cover-caption .eyebrow{font-size:9px;letter-spacing:.025em;line-height:1.7;display:block}
 .cover-caption .case-link{display:flex;justify-content:space-between;align-items:center;font-size:11px}
 .cover-caption .case-link span{padding-left:8px;font-size:19px}
 .carousel-control{position:absolute;left:var(--gutter);top:calc(276px + min(29vw,417.6px));margin:0;gap:10px;z-index:3}
 .carousel-control>span{min-width:45px;font-size:10px}
 .carousel-control button{width:34px;font-size:25px}
}
@media(max-width:600px){
 .work-02 .photo-index{top:12px;left:12px;font-size:40px;line-height:1}
}
@media(min-width:901px) and (max-height:750px){.cover-title{font-size:4vw}.cover-caption{top:398px}.carousel-control{top:510px}}
@media(min-width:901px) and (max-height:750px){.cover-title{top:100px;font-size:3.6vw}.cover-caption{top:calc(100vh - 270px)}.carousel-control{top:calc(100vh - 160px)}}
/* Constrain the aspect-ratio frame while the responsive preview changes width. */
.cover-stage{width:100%;min-width:0}
