@import url("/refinement-51.css?v=51");
@import url('/opening.css?v=131');
@font-face{font-family:FarsightSerif;src:url('/assets/cormorant-light.ttf') format('truetype');font-style:normal;font-weight:300;font-display:swap}
:root{--paper:#f2f1ef;--ink:#282726;--muted:#a8a6a2;--line:#d7d5d1;--pad:clamp(22px,2.8vw,54px);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:6px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}em{font-family:FarsightSerif,Georgia,serif;font-weight:300}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:20px;z-index:110;background:var(--paper);color:var(--ink);padding:15px}.skip-link:focus{top:15px}.eyebrow,.kicker{font-size:12px;letter-spacing:.035em}.kicker{display:flex;justify-content:space-between;gap:20px}
.header{position:fixed;inset:0 0 auto;height:86px;display:grid;grid-template-columns:1fr 210px 1fr;align-items:center;padding:0 var(--pad);color:white;z-index:40;transition:color .35s,transform .5s,background .35s}.header.ink,.collection .header{color:var(--ink);background:linear-gradient(var(--paper),#f2f1ef00)}.header.hide{transform:translateY(-105%)}.header.hide:focus-within{transform:none;background:var(--paper);color:var(--ink)}.header nav{display:flex;align-items:center;gap:clamp(32px,6vw,105px);font-size:14px;text-transform:uppercase}.header nav:last-of-type{justify-content:flex-end}.header nav a{position:relative;white-space:nowrap}.header nav a:not(.contact-link)::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s}.header nav a:hover::after{transform:scaleX(1);transform-origin:left}.brand{display:flex;flex-direction:column;align-items:center;font-size:27px;font-weight:800;letter-spacing:-1.8px;line-height:.9}.brand span{font-size:10px;font-weight:400;letter-spacing:3.8px;margin:8px 0 0 4px}.contact-link{display:flex;gap:18px;align-items:center;padding:11px 14px 11px 20px;border-radius:50px;background:#ffffff24}.ink .contact-link,.collection .contact-link{background:#dedcd9}.contact-link span{font-size:22px;line-height:1}.menu-toggle,.mobile-return{display:none}.mobile-menu{position:fixed;inset:0;z-index:39;background:var(--ink);color:var(--paper);padding:140px var(--pad) 60px}.mobile-menu a{display:block;font-size:clamp(36px,7vw,64px);line-height:1.6;letter-spacing:-.04em}.menu-open .header{color:white;background:none;transform:none}
.home-hero{height:100svh;min-height:550px;position:relative;overflow:hidden;background:#514b40;color:white}.hero-frame,.hero-image,.hero-shade,.opening-curtain{position:absolute;inset:0;width:100%;height:100%}.hero-frame{will-change:transform}.hero-image{object-fit:cover;animation:image-open 1.8s cubic-bezier(.2,.8,.2,1) both}.hero-shade{background:linear-gradient(#0002,transparent 35%,transparent 65%,#0006);pointer-events:none}.hero-caption{position:absolute;left:var(--pad);right:var(--pad);bottom:30px;display:flex;align-items:center;justify-content:space-between;gap:24px;animation:caption-open 1s .4s both}.hero-caption>div{display:flex;gap:48px;font-size:12px}.opening-curtain{background:var(--paper);pointer-events:none;animation:curtain-open .95s cubic-bezier(.77,0,.18,1) both}.pill{display:inline-flex;align-items:center;justify-content:center;gap:26px;border-radius:50px;padding:12px 24px;background:#dddbd8;color:var(--ink);font-size:13px;line-height:1.2;text-transform:uppercase;transition:background .3s,transform .3s}.pill:hover{background:#c6c3be;transform:translateY(-2px)}.hero-caption .pill{background:var(--paper)}
.manifesto{height:250svh;position:relative}.manifesto-stage{height:100svh;min-height:550px;position:sticky;top:0;overflow:hidden}.manifesto-label{position:absolute;top:120px;left:var(--pad);font-size:12px}.manifesto-foot{position:absolute;bottom:35px;right:var(--pad);font-size:12px;color:#8b8882}.manifesto-message{position:absolute;left:2.5%;right:2.5%;top:50%;transform:translateY(-50%);text-align:center;font-size:clamp(36px,4.55vw,90px);line-height:.98;font-weight:600;letter-spacing:-.06em}.manifesto-message.second{opacity:0}.statement-line{display:block;will-change:transform}.statement-line .word{display:inline-block;white-space:nowrap}.statement-line .char{display:inline-block}.studio-intro{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:45px var(--pad) 110px}.studio-copy{display:grid;grid-template-columns:1fr 1fr;max-width:660px;gap:30px;margin-left:auto}.studio-copy p{font-size:17px;line-height:1.6}.line-link{grid-column:1/-1;font-size:14px;border-bottom:1px solid;padding:16px 0;display:flex;justify-content:space-between}.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s,transform 1.1s cubic-bezier(.22,1,.36,1)}.reveal.visible{opacity:1;transform:none}
.disciplines{height:185svh;position:relative}.discipline-stage{height:100svh;min-height:550px;position:sticky;top:0;overflow:hidden;display:grid;place-items:center}.we-do{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:2.4vw;font-size:clamp(115px,21vw,380px);font-weight:600;letter-spacing:-.085em;line-height:.9;pointer-events:none}.we-do>span{will-change:transform,opacity}.discipline-list{text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;z-index:2}.discipline-list>a:not(.pill){font-size:clamp(35px,5.4vw,98px);text-transform:uppercase;font-weight:600;letter-spacing:-.06em;line-height:.96;transition:color .3s}.discipline-list>a:not(.pill):hover{color:#8e8b85}.discipline-list>.pill{margin-top:38px}.motion-ready .discipline-list>a{will-change:transform,opacity}
.world{height:185svh;position:relative}.world-stage{height:100svh;min-height:620px;position:sticky;top:0;overflow:hidden;padding:95px var(--pad) 30px;display:flex;flex-direction:column}.world-heading{position:absolute;z-index:2;left:3%;right:3%;top:25%;pointer-events:none}.world-heading h2{font-size:clamp(56px,8vw,150px);font-weight:600;line-height:.94;letter-spacing:-.065em;margin-top:22px}.world-heading h2>span{display:block;will-change:opacity,transform}.map-wrap{position:relative;width:100%;height:70%;flex:1;opacity:.1}.world-map{width:100%;height:100%;overflow:visible;cursor:grab;touch-action:pan-y;user-select:none}.world-map:active{cursor:grabbing}.map-land{display:none}.map-lines{fill:none;stroke:#aaa7a1;stroke-dasharray:3 7;stroke-width:.7;opacity:.45}.map-pin{cursor:pointer;outline:none}.map-pin circle{fill:var(--paper);stroke:var(--ink);stroke-width:1.2}.map-pin.active circle,.map-pin:hover circle{fill:var(--ink);r:5}.map-pin line{stroke:var(--ink);stroke-width:.7}.map-pin text{font-size:20px;fill:var(--ink);letter-spacing:-.6px}.map-pin.active text{font-weight:600}.map-pin:focus-visible circle{stroke-width:5}.map-controls{position:absolute;left:0;bottom:25px;display:flex;gap:6px}.map-controls button{width:36px;height:36px;border-radius:50%;background:#e1dfda;font-size:21px}.map-controls button:hover{background:var(--ink);color:white}.coordinates{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;font-size:12px;color:#8d8a83;pointer-events:none}.world-bottom{display:flex;justify-content:space-between;gap:35px;padding-top:25px}.city-selector{display:flex;gap:28px;flex-wrap:wrap;align-items:flex-start}.city-selector button{font-size:14px;padding:8px 0;border-bottom:1px solid transparent;text-align:left}.city-selector button[aria-pressed=true]{border-color:var(--ink)}.city-selector small{display:block;font-size:12px;color:#777;margin-top:6px}.city-story{width:310px}.city-story>span{font-size:12px}.city-story p{font-size:16px;line-height:1.45;margin-top:10px}
.book{height:170svh;position:relative;background:#181818;color:var(--paper)}.book-stage{position:sticky;top:0;height:100svh;min-height:680px;overflow:hidden;padding:100px var(--pad) 30px;perspective:1200px}.book-title-one,.book-title-two{position:absolute;font-size:clamp(64px,12.3vw,225px);line-height:.94;font-weight:500;letter-spacing:-.08em;will-change:transform}.book-title-one{left:var(--pad);top:150px}.book-title-two{right:var(--pad);bottom:28px}.book-copy{position:absolute;left:var(--pad);top:49%;width:25%;max-width:310px;z-index:3}.book-copy p{font-size:20px;line-height:1.3;margin-bottom:22px}.book-copy>span{font-size:12px;line-height:1.5;color:#aaa}.outline{background:none;color:white;border:1px solid #6c6c68;margin-top:25px}.outline:hover{background:#333}.floating-book{position:absolute;z-index:2;width:min(78vw,1300px);left:20%;top:22%;padding:0;will-change:transform;mix-blend-mode:lighten;transform-origin:center}.floating-book img{width:100%;pointer-events:none}.book-caption{position:absolute;bottom:40px;left:var(--pad);font-size:12px;color:#aaa}
.representatives{padding:100px var(--pad) 70px}.rep-list{max-width:1000px;margin:120px auto 90px}.rep summary{list-style:none;cursor:pointer;display:flex;justify-content:center;align-items:flex-start;text-transform:uppercase;font-size:clamp(48px,6.1vw,100px);font-weight:600;line-height:1.04;letter-spacing:-.07em;padding:7px 0;gap:16px;transition:color .3s}.rep summary::-webkit-details-marker{display:none}.rep summary>span{position:relative}.rep time{font-size:12px;letter-spacing:0;margin-top:8px;white-space:nowrap;font-weight:400}.rep small{position:absolute;left:calc(100% + 16px);top:30px;font-size:12px;line-height:1.2;border:1px solid var(--line);padding:4px 9px;border-radius:20px;letter-spacing:0;white-space:nowrap;font-weight:400;text-transform:none}.rep summary:hover,.rep[open] summary{color:#89857d}.rep-info{display:flex;justify-content:space-between;gap:25px;max-width:520px;margin:0 auto;padding:25px 0 35px;font-size:14px;line-height:1.6;animation:info-in .4s both}.rep-info>span{font-size:12px}.rep-info p{color:#66635d}
footer{padding:60px var(--pad) 30px;background:var(--ink);color:var(--paper);position:relative;z-index:2;overflow:hidden}.footer-top{display:flex;justify-content:space-between;gap:30px;font-size:13px;line-height:1.5}.footer-top>a{padding-bottom:10px;border-bottom:1px solid #ffffff80;align-self:start}.footer-word{font-size:clamp(64px,17.6vw,310px);letter-spacing:-.085em;font-weight:500;line-height:1.1;margin:65px 0 30px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ffffff30;padding-top:25px;font-size:12px}.open-credits{font-size:12px;padding:0}
dialog{border:0;padding:70px 40px 40px;width:min(1100px,94vw);background:var(--paper);color:var(--ink);max-height:90svh;overflow:auto}dialog::backdrop{background:#000b;backdrop-filter:blur(8px)}.close-dialog{position:absolute;right:24px;top:22px;font-size:14px}.spread{display:grid;grid-template-columns:1fr 1fr;min-height:500px}.spread>div{padding:30px 40px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;background:#e6e3dd}.spread span{font-size:12px;line-height:1.5}.spread h2{font:300 60px/.94 FarsightSerif,Georgia,serif;letter-spacing:-.035em}.spread p{font-size:17px;line-height:1.5;max-width:280px}.spread img{width:100%;height:100%;object-fit:cover}.credits-dialog{max-width:650px}.credits-dialog h2{font-size:36px;font-weight:400;margin-bottom:30px}.credits-dialog p{font-size:16px;line-height:1.6;margin:20px 0}.credits-dialog a{text-decoration:underline}
/* The foreground SVG and photograph share the same cover transform. Text passes between them. */
.chapter{height:170svh;position:relative;background:#514b40;scroll-margin-top:0}.chapter-stage{height:100svh;min-height:520px;position:sticky;top:0;color:white;overflow:hidden;isolation:isolate;--scene-scale:1.06;--scene-y:0px}.project-image,.project-foreground,.project-shade{position:absolute;inset:0;width:100%;height:100%}.project-image{object-fit:cover;max-width:none;z-index:1}.project-image,.project-foreground{transform:translateY(var(--scene-y)) scale(var(--scene-scale));transform-origin:center;will-change:transform}.project-foreground{z-index:3;pointer-events:none}.project-shade{z-index:4;pointer-events:none;background:linear-gradient(#0000000a,transparent 40%,transparent 65%,#0007)}.category-title{position:absolute;left:2.2%;right:2.2%;top:12px;z-index:2;display:flex;justify-content:space-between;font:300 12.4vw/.9 FarsightSerif,'Times New Roman',serif;text-transform:uppercase;letter-spacing:-.025em;white-space:nowrap;pointer-events:none}.category-title.mixed{font-size:11.9vw}.category-title>span{display:inline-block;will-change:transform;transform-origin:50% 50%}.category-title .title-space{width:.2em}.chapter-bottom{position:absolute;right:var(--pad);bottom:35px;z-index:5;text-align:right;max-width:50%;will-change:opacity,transform}.chapter-bottom h3{font:300 clamp(34px,3.5vw,60px)/.95 FarsightSerif,Georgia,serif;text-transform:uppercase;letter-spacing:-.02em;margin-bottom:12px}.chapter-bottom p{font-size:12px;margin-bottom:22px}.chapter-bottom a{font-size:14px;text-transform:uppercase;border-bottom:1px solid;padding-bottom:5px}.project-quick-nav{position:fixed;bottom:30px;left:var(--pad);z-index:35;display:flex;gap:8px;color:white;align-items:center}.project-quick-nav>a{display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff65;border-radius:50%;font-size:12px;transition:background .3s,color .3s}.project-quick-nav>a[aria-current=true]{background:var(--paper);color:var(--ink)}.project-quick-nav>a:hover{background:#ffffff40}.project-quick-nav>span{font-size:12px;margin-right:13px}.projects-page{scroll-padding-top:0}.projects-page .header{transition:transform .35s,color .35s}
.collection-head{padding:150px var(--pad) 55px}.collection-head h1{font:300 clamp(62px,11vw,170px)/.95 FarsightSerif,Georgia,serif;letter-spacing:-.045em;margin:35px 0}.collection-head p{font-size:17px;line-height:1.6;max-width:510px}.collection-tabs{display:flex;gap:28px;margin-top:35px;border-bottom:1px solid var(--line);padding-bottom:20px;font-size:14px}.collection-tabs [aria-current=page]{text-decoration:underline;text-underline-offset:6px}.collection-gallery{padding:0 var(--pad) 100px}.collection-hero{width:100%;height:75svh;object-fit:cover}.collection-caption{display:flex;justify-content:space-between;gap:20px;padding:25px 0;font-size:12px}.collection-copy{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:50px 0}.collection-copy h2{font-size:40px;letter-spacing:-.04em;font-weight:400}.collection-copy p{font-size:17px;line-height:1.6;max-width:500px}.collection-copy .concept-note{margin-top:24px;font-size:13px;color:#777}.collection-detail{width:65%;height:65svh;overflow:hidden;margin-left:auto}.collection-detail img{width:100%;height:100%;object-fit:cover;object-position:75% center;transform:scale(1.6)}
.page-transition{position:fixed;inset:0;z-index:90;pointer-events:none;background:var(--paper);transform:translateY(-101%);animation:page-arrive .6s cubic-bezier(.77,0,.18,1) both}.is-leaving .page-transition{animation:none;transform:translateY(0);transition:transform .38s cubic-bezier(.77,0,.18,1)}.cursor-ring{display:none;position:fixed;left:0;top:0;width:54px;height:54px;border:1px solid white;border-radius:50%;pointer-events:none;mix-blend-mode:difference;z-index:100;will-change:transform;opacity:0}.cursor-on .cursor-ring{display:block}.cursor-on .cursor-ring.visible{opacity:1}.cursor-ring.over-link{background:#ffffff12}
@keyframes curtain-open{0%{transform:translateY(0)}100%{transform:translateY(-101%)}}@keyframes image-open{from{transform:scale(1.09)}to{transform:scale(1)}}@keyframes caption-open{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes info-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@keyframes page-arrive{from{transform:translateY(0)}to{transform:translateY(-101%)}}
@media(hover:hover) and (pointer:fine){.cursor-on,.cursor-on a,.cursor-on button,.cursor-on summary{cursor:none}}
@media(max-width:1000px){.header{grid-template-columns:1fr 150px 1fr}.header nav{gap:28px;font-size:12px}.contact-link{padding:10px 12px;gap:10px}.hero-caption>div{gap:25px}.studio-intro{grid-template-columns:1fr 2fr}.book-copy{width:28%}.book-copy p{font-size:18px}.floating-book{width:95vw;left:9%;top:29%}.world-bottom{gap:22px}.city-selector{gap:16px}.city-story{width:270px}}
@media(max-width:700px){
.header{height:78px;display:flex;justify-content:space-between}.header nav{display:none}.brand{font-size:25px;align-items:flex-start}.brand span{font-size:9px;letter-spacing:3.5px}.menu-toggle,.mobile-return{display:block;font-size:14px}.home-hero{min-height:500px}.hero-image{object-position:52% center}.hero-caption{bottom:28px;align-items:flex-end}.hero-caption>div{flex-direction:column;gap:8px;font-size:12px}.hero-caption>div>span:last-child{max-width:160px;line-height:1.4}.hero-caption .pill{font-size:12px;padding:11px 16px}.manifesto{height:215svh}.manifesto-stage{min-height:520px}.manifesto-label{top:110px}.manifesto-message{left:var(--pad);right:var(--pad);font-size:clamp(31px,6.8vw,48px);line-height:1.02;letter-spacing:-.055em}.statement-line{display:block;margin:0 auto;max-width:500px}.manifesto-foot{font-size:12px;bottom:28px;left:var(--pad)}.studio-intro{grid-template-columns:1fr;padding:35px var(--pad) 70px;gap:35px}.studio-copy{max-width:100%;grid-template-columns:1fr;gap:25px}.studio-copy p{font-size:17px}.disciplines{height:165svh}.discipline-stage{min-height:520px}.we-do{font-size:28vw;gap:4vw}.discipline-list>a:not(.pill){font-size:9.5vw;line-height:1.07}.discipline-list>.pill{margin-top:30px}.world{height:170svh}.world-stage{padding-top:100px;min-height:710px}.world-heading{left:var(--pad);top:28%}.world-heading h2{font-size:clamp(38px,9.1vw,65px)}.map-wrap{min-height:310px;height:50%}.map-pin text{font-size:27px}.world-bottom{flex-direction:column;gap:20px}.city-selector{width:100%;justify-content:space-between;gap:10px}.city-selector button{font-size:14px}.city-selector small{font-size:12px}.city-story{width:100%;max-width:420px}.city-story p{font-size:16px}.map-controls button{height:34px;width:34px}.coordinates{font-size:12px}.coordinates span:nth-child(even){display:none}.book{height:160svh}.book-stage{min-height:740px;padding-top:100px}.book-title-one{top:150px;font-size:17vw}.book-title-two{font-size:17vw;bottom:68px}.book-copy{top:32%;width:80%;max-width:290px}.book-copy p{font-size:17px;max-width:280px;margin-bottom:12px}.book-copy>span{font-size:12px}.book-copy .outline{margin-top:13px;padding:10px 15px;font-size:12px}.floating-book{top:49%;left:-5%;width:120vw;max-width:none}.book-caption{font-size:12px;bottom:28px}.representatives{padding-top:65px;padding-bottom:55px}.kicker{font-size:12px;line-height:1.4}.kicker>span:last-child{text-align:right}.rep-list{margin:70px auto 50px}.rep summary{font-size:clamp(29px,9.8vw,43px);justify-content:flex-start;padding:14px 0;gap:10px}.rep time{margin-left:auto;margin-top:0;font-size:12px}.rep small{font-size:12px;left:calc(100% + 12px);top:22px;padding:3px 6px}.rep-info{font-size:14px;gap:20px}.rep-info>span{font-size:12px}.footer-word{font-size:16.8vw;margin:45px 0 25px;letter-spacing:-.08em}.footer-top{font-size:12px}.footer-bottom{font-size:12px;flex-wrap:wrap;line-height:1.5}.open-credits{font-size:12px}footer{padding-top:40px}.book-dialog{padding:65px 15px 20px}.spread{grid-template-columns:1fr}.spread>div{padding:30px;gap:25px}.spread h2{font-size:48px}.spread img{height:260px}.credits-dialog{padding:65px 25px 25px}.chapter{height:165svh}.chapter-stage{min-height:520px}.category-title{top:22px;font-size:12vw;left:3%;right:3%;line-height:1}.category-title.mixed{font-size:11.8vw}.chapter-bottom{bottom:90px;max-width:80%}.chapter-bottom h3{font-size:37px}.chapter-bottom p{font-size:12px;margin-bottom:14px}.chapter-bottom a{font-size:14px}.project-quick-nav{bottom:25px}.project-quick-nav>span{font-size:12px}.collection-head{padding-top:130px}.collection-head h1{font-size:17vw}.collection-tabs{font-size:14px;gap:18px;flex-wrap:wrap}.collection-hero{height:60svh}.collection-caption{flex-direction:column;gap:10px}.collection-copy{grid-template-columns:1fr;gap:22px;padding:30px 0}.collection-copy h2{font-size:34px}.collection-detail{width:100%;height:50svh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none}.manifesto{height:auto}.manifesto-stage{position:relative;height:auto;min-height:0;padding:140px var(--pad) 90px}.manifesto-message{position:relative;inset:auto;transform:none;margin:50px 0}.manifesto-message.second{opacity:1}.manifesto-label{top:75px}.manifesto-foot{display:none}.disciplines{height:auto}.discipline-stage{height:100svh}.we-do{display:none}.chapter{height:115svh}.category-title>span{transform:none!important}.project-foreground{display:none}.cursor-ring{display:none!important}.page-transition,.opening-curtain{display:none}}

.chapter[data-category="mixed"] .project-image,.chapter[data-category="mixed"] .project-foreground{transform:translateY(var(--scene-y)) scale(calc(var(--scene-scale) * 1.24))}
/* Editorial story: the photograph opens first, then yields to the studio's voice. */
html{scroll-behavior:auto}
.studio-story{height:220svh;position:relative}.story-stage{position:sticky;top:0;height:100svh;min-height:620px;overflow:hidden}.story-photo{position:absolute;inset:0;will-change:clip-path,transform}.story-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}.story-panel{position:absolute;inset:0 0 0 47%;padding:115px var(--pad) 45px;background:var(--paper);display:flex;flex-direction:column;justify-content:space-between;will-change:transform}.story-text{position:relative;min-height:290px;margin:auto 0 40px}.story-paragraph{font-size:clamp(23px,2.15vw,39px);line-height:1.04;letter-spacing:-.035em;text-transform:uppercase}.story-paragraph+ .story-paragraph{position:absolute;inset:0}.story-panel .pill{align-self:start}.story-index{position:absolute;bottom:45px;left:var(--pad);color:white;font-size:14px}.story-panel .eyebrow{margin-bottom:45px}
/* A sparse atlas: city labels, vertical leaders and a continuous geographic grid. */
.world{height:230svh}.world-stage{padding-top:85px;min-height:720px;background-image:linear-gradient(90deg,#d8d6d24a 1px,transparent 1px),linear-gradient(#d8d6d24a 1px,transparent 1px);background-size:16.666% 100%,100% 20%}.world-heading h2{font-size:clamp(45px,7.7vw,150px)}.map-wrap{margin:0 calc(-1 * var(--pad));width:calc(100% + var(--pad)*2)}.map-controls{left:var(--pad)}.coordinates{left:var(--pad);right:var(--pad)}.world-map{overflow:hidden}.map-pin text{font-size:23px;letter-spacing:-.65px}.map-pin line{stroke:url(#leader-fade);stroke-width:1}.map-pin .pin-core{fill:var(--ink);stroke:none}.map-pin .pin-glow{fill:none;stroke:#77746e;stroke-width:1;pointer-events:none}.map-pin.active .pin-core,.map-pin:hover .pin-core{r:4}.map-pin.active text,.map-pin:hover text{font-weight:600}.map-pin .pin-hit{fill:transparent;stroke:none}.world-bottom{padding-top:16px;align-items:flex-end}.city-selector{max-width:700px;gap:3px 23px}.city-selector button{font-size:14px}.city-story{min-width:250px;max-width:290px}.world-bottom .city-story p{margin-top:8px}.world-bottom .city-story>span{line-height:1.5}
/* The publication stays within the same paper surface as the atlas. */
.book{background:var(--paper);color:var(--ink);height:190svh;border-top:1px solid var(--line)}.book-stage{min-height:740px}.book-title-one{font-size:clamp(85px,17vw,310px);top:120px;left:1.5%}.book-title-two{font-size:clamp(90px,19vw,350px);right:2%;bottom:18px}.book-copy{top:42%;max-width:340px;width:27%}.book-copy p{font-size:clamp(18px,1.7vw,27px);letter-spacing:-.025em}.book-copy>span{color:#77736f}.book .outline{color:var(--ink);background:#dfddda;border:0;margin-top:20px}.book .outline:hover{background:#cfcac3}.floating-book{mix-blend-mode:multiply;left:25%;top:24%;width:min(75vw,1220px)}.book-caption{color:#77736f}.book-contents{padding:0;list-style:none;margin:22px 0;font-size:12px}.book-contents li{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--line)}
/* Portfolio opens as a gallery, before the immersive collection chapters. */
.portfolio{padding:145px var(--pad) 100px}.portfolio-top{display:flex;align-items:flex-end;justify-content:space-between;gap:35px}.portfolio-top h1{font-size:clamp(53px,8.8vw,150px);font-weight:600;letter-spacing:-.07em;line-height:.95}.portfolio-top p{font-size:12px;line-height:1.4;max-width:160px}.portfolio-filters{display:flex;gap:clamp(20px,4vw,70px);align-items:center;margin:70px 0 36px;padding-bottom:22px;border-bottom:1px solid var(--line)}.portfolio-filters button{font-size:14px;padding:8px 0;text-transform:uppercase;position:relative}.portfolio-filters button::after{content:'';height:1px;position:absolute;bottom:0;left:0;right:0;background:var(--ink);transform:scaleX(0);transition:transform .3s}.portfolio-filters [aria-pressed=true]::after{transform:scaleX(1)}.portfolio-filters .portfolio-reset{margin-left:auto;text-transform:none;color:#77736f}.portfolio-reset span{font-size:12px;vertical-align:super;margin-left:8px}.portfolio-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px 24px}.portfolio-card:first-child{grid-column:1/-1}.portfolio-image{aspect-ratio:1.6;overflow:hidden;background:#dedbd5}.portfolio-card:first-child .portfolio-image{aspect-ratio:2.1}.portfolio-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,.7,.2,1),filter .8s;filter:saturate(.8)}.portfolio-card:hover .portfolio-image img{transform:scale(1.035);filter:saturate(1)}.portfolio-card[data-project-category=mixed] img{transform:scale(1.35);object-position:right center}.portfolio-card[data-project-category=mixed]:hover img{transform:scale(1.4)}.portfolio-caption{display:grid;grid-template-columns:1fr auto;gap:8px 25px;padding-top:20px}.portfolio-caption h2{font-weight:400;font-size:24px;letter-spacing:-.025em}.portfolio-caption>span:not(.portfolio-arrow){font-size:14px;grid-column:1;color:#706d68}.portfolio-arrow{grid-column:2;grid-row:1/3;font-size:27px}.portfolio-note{display:block;font-size:12px;margin-top:12px;color:#77736f}.portfolio-end{display:flex;justify-content:space-between;align-items:center;margin-top:60px;gap:35px}.portfolio-count{font-size:14px}.portfolio-end .line-link{width:min(400px,60%)}.category-title.mixed{font-size:11.1vw}
/* About — portrait, perspective, five rotating chapters, people and moments. */
.about-hero{height:110svh;min-height:650px;position:relative;overflow:hidden;background:#272725;color:white}.about-photo{position:absolute;inset:0;will-change:transform;animation:image-open 1.8s cubic-bezier(.2,.8,.2,1) both}.about-photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:grayscale(1)}.about-hero-shade{position:absolute;inset:0;background:linear-gradient(#0003,transparent 30%,#0002 60%,#000a)}.about-hero h1{position:absolute;left:var(--pad);right:var(--pad);bottom:110px;text-align:center;font-size:clamp(75px,16.8vw,310px);font-weight:600;letter-spacing:-.08em;line-height:.84;animation:caption-open 1.3s .25s both}.about-hero h1>span{display:block}.about-hero h1>span:first-child{font-size:.55em;color:#ffffff9c}.about-hero-caption{position:absolute;bottom:30px;left:var(--pad);right:var(--pad);display:flex;align-items:flex-end;justify-content:space-between;gap:25px;font-size:12px;line-height:1.3}.about-hero-caption>span:nth-child(2){text-align:center}.about-statement{padding:125px var(--pad) 145px}.about-statement h2{font-size:clamp(46px,8.6vw,145px);font-weight:600;letter-spacing:-.065em;line-height:.94;margin:65px 0 60px}.about-intro-copy{display:grid;grid-template-columns:1fr 1fr;gap:35px;max-width:710px;margin-left:auto}.about-intro-copy p{font-size:17px;line-height:1.5}
.reasons{height:410svh;position:relative}.reasons-stage{position:sticky;top:0;height:100svh;min-height:720px;padding:120px var(--pad) 65px;display:grid;grid-template-columns:34% 1fr;gap:4%;overflow:hidden;perspective:1800px}.reasons-heading{display:flex;flex-direction:column;justify-content:center;align-items:start}.reasons-heading h2{font-size:clamp(37px,4.3vw,80px);letter-spacing:-.06em;line-height:.95;font-weight:600;margin:35px 0 50px}.reason-nav{display:flex;gap:9px}.reason-nav button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;font-size:12px;transition:background .3s,color .3s}.reason-nav [aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.reason-deck{height:100%;position:relative;perspective:1400px}.reason-card{position:absolute;inset:0;display:grid;grid-template-columns:1.15fr 1fr;background:#e5e2dd;backface-visibility:hidden;transform-origin:50% 50%;will-change:transform,opacity;overflow:hidden}.reason-media{overflow:hidden;min-height:0}.reason-media img{width:100%;height:100%;object-fit:cover}.reason-copy{display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(25px,2.6vw,50px);gap:24px}.reason-number{font-size:14px;margin-bottom:auto}.reason-copy h3{font-size:clamp(32px,3.15vw,60px);letter-spacing:-.05em;line-height:1;font-weight:500}.reason-copy p{font-size:16px;line-height:1.5}.reason-media.portrait-media img{height:140%;max-width:none;object-position:center;transform:translateY(-15%)}
.team{padding:110px var(--pad) 120px}.section-heading{display:grid;grid-template-columns:1fr 3fr;gap:30px;margin-bottom:70px}.section-heading h2{font-size:clamp(45px,6.2vw,115px);font-weight:600;letter-spacing:-.06em;line-height:.95}.section-heading .eyebrow{padding-top:9px}.founder-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-left:25%;margin-bottom:90px}.founder-photo{height:clamp(390px,46vw,730px);position:relative;overflow:hidden;background:#aaa9a5}.founder-photo img{position:absolute;width:200%;height:160%;max-width:none;object-fit:cover;top:-20%;filter:grayscale(1);transition:filter .7s,transform 1.2s}.founder-photo.dmytro img{left:-80%;object-position:67% 25%}.founder-photo.olga img{left:-19%;object-position:34% 25%}.founder-photo:hover img{filter:grayscale(.3);transform:scale(1.025)}.founder-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px}.founder-caption h3{font-size:22px;font-weight:400}.founder-caption span{font-size:14px}.team-tabs{display:flex;gap:clamp(22px,4vw,70px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}.team-tabs button{font-size:clamp(16px,2vw,28px);letter-spacing:-.025em;color:#8a8781;padding:8px 0}.team-tabs [aria-selected=true]{color:var(--ink)}.team-panel{display:grid;grid-template-columns:1fr 2fr;gap:60px;padding-top:40px;animation:info-in .5s}.team-description h3{font-size:24px;font-weight:400;letter-spacing:-.025em}.team-description p{font-size:16px;line-height:1.5;max-width:240px;margin-top:15px}.team-placeholders{display:grid;grid-template-columns:1fr 1fr;gap:24px}.team-slot{aspect-ratio:4/3;background:#e6e4e0;display:flex;flex-direction:column;justify-content:space-between;padding:25px}.team-slot>span{font-size:12px;letter-spacing:.14em;color:#a09c96}.team-slot>div{display:flex;flex-direction:column;gap:8px;font-size:14px}.team-slot small{font-size:12px;color:#86817b}
.highlights{padding:80px var(--pad) 130px}.highlights .section-heading p{grid-column:2;font-size:16px;line-height:1.5;color:#77736f}.highlight-list{position:relative;margin:45px 0}.highlight-row{position:relative;display:grid;grid-template-columns:70px 1fr 200px 35px;gap:20px;align-items:center;border-top:1px solid var(--line);padding:32px 0;color:#a09d97;transition:color .35s}.highlight-row:last-child{border-bottom:1px solid var(--line)}.highlight-row h3{font-size:clamp(26px,3vw,52px);font-weight:400;letter-spacing:-.045em;line-height:1.05}.highlight-num,.highlight-type{font-size:14px}.highlight-arrow{font-size:26px}.highlight-row:hover,.highlight-row:focus-visible{color:var(--ink);z-index:3}.highlight-image{position:absolute;left:54%;top:50%;width:clamp(190px,24vw,420px);aspect-ratio:1.4;transform:translate(-50%,-45%) rotate(-3deg) scale(.94);opacity:0;pointer-events:none;overflow:hidden;transition:opacity .45s,transform .65s cubic-bezier(.2,.7,.2,1);z-index:2}.highlight-image img{width:100%;height:100%;object-fit:cover}.highlight-row:hover .highlight-image,.highlight-row:focus-visible .highlight-image{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1)}.highlights>.pill{display:flex;width:max-content;margin-left:auto}.about-contact{padding:40px var(--pad) 130px}.about-contact>a{display:block;font-size:clamp(65px,15vw,265px);line-height:.95;font-weight:500;letter-spacing:-.07em;margin-top:40px}.about-contact>a>span{display:block;margin-top:30px;font-size:18px;letter-spacing:0}
@media(max-width:1000px){.story-panel{inset:0 0 0 40%}.story-paragraph{font-size:26px}.reasons-stage{grid-template-columns:30% 1fr;gap:3%}.reason-card{grid-template-columns:1fr}.reason-media{height:45%}.reason-copy{position:absolute;top:45%;bottom:0;left:0;right:0;padding:25px}.reason-copy h3{font-size:35px}.reason-copy p{font-size:16px}.reason-copy{gap:18px}.reason-number{margin-bottom:0}.founder-grid{margin-left:0}.book-copy{width:30%}.book-copy p{font-size:20px}.book-contents{font-size:12px}.floating-book{left:29%;width:88vw;top:29%}}
@media(max-width:700px){.studio-story{height:235svh}.story-stage{min-height:690px}.story-photo{bottom:36%}.story-panel{inset:40% 0 0;padding:25px var(--pad);background:var(--paper)}.story-panel .eyebrow{margin-bottom:25px}.story-text{min-height:200px;margin:0 0 20px}.story-paragraph{font-size:22px;max-width:520px}.story-index{top:30%;bottom:auto}.story-panel .pill{font-size:12px;padding:10px 18px}.world{height:250svh}.world-stage{min-height:800px;padding-bottom:22px}.world-heading h2{font-size:11vw}.world-bottom{gap:12px;align-items:flex-start}.city-selector{justify-content:flex-start;gap:0 17px}.city-selector button{font-size:14px;padding:5px 0}.city-story{max-width:none;min-width:0}.city-story p{font-size:14px}.map-wrap{min-height:350px;flex:1}.map-pin text{font-size:24px}.coordinates{bottom:4px}.map-controls{bottom:27px}.world-map{min-width:670px;width:100%;position:absolute;left:50%;transform:translateX(-50%)}.book{height:170svh}.book-stage{min-height:820px}.book-title-one{top:130px;font-size:18vw;left:var(--pad)}.book-title-two{font-size:27vw;bottom:52px;right:var(--pad)}.book-copy{top:25%;left:var(--pad);width:83%;max-width:none}.book-copy p{font-size:18px;max-width:330px;margin-bottom:10px}.book-contents{max-width:320px;margin:14px 0}.book-contents li{padding:5px 0}.book-copy>span{font-size:12px}.book-copy .outline{margin-top:12px}.floating-book{width:115vw;left:-5%;top:52%}.book-caption{bottom:24px;font-size:12px}.portfolio{padding-top:125px;padding-bottom:65px}.portfolio-top{display:block}.portfolio-top h1{font-size:12.4vw}.portfolio-top p{margin-top:25px;max-width:none}.portfolio-filters{margin-top:38px;gap:15px;flex-wrap:wrap}.portfolio-filters button{font-size:13px}.portfolio-filters .portfolio-reset{margin-left:0}.portfolio-grid{grid-template-columns:1fr;gap:38px}.portfolio-card:first-child{grid-column:auto}.portfolio-card:first-child .portfolio-image,.portfolio-image{aspect-ratio:1.15}.portfolio-caption h2{font-size:23px}.portfolio-end{margin-top:40px}.portfolio-end .line-link{font-size:13px}.category-title.mixed{font-size:10.9vw}.about-hero{height:100svh;min-height:650px}.about-photo img{height:145%;position:absolute;top:-18%;object-position:center 30%}.about-hero h1{font-size:19vw;bottom:125px}.about-hero h1>span:first-child{font-size:.75em}.about-hero-caption{font-size:12px;gap:18px;flex-wrap:wrap}.about-hero-caption>span:nth-child(2){text-align:left;max-width:200px}.about-hero-caption>span:last-child{display:none}.about-statement{padding:80px var(--pad)}.about-statement h2{font-size:11vw;margin:40px 0}.about-intro-copy{grid-template-columns:1fr;gap:25px}.reasons{height:450svh}.reasons-stage{min-height:730px;padding:95px var(--pad) 28px;grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:24px}.reasons-heading{display:grid;grid-template-columns:1fr auto;align-items:end;gap:15px}.reasons-heading .eyebrow{grid-column:1/-1}.reasons-heading h2{font-size:8vw;margin:0}.reason-nav{gap:4px}.reason-nav button{width:27px;height:32px;font-size:12px;border-radius:0;border-width:0 0 1px}.reason-nav [aria-pressed=true]{background:transparent;color:var(--ink);border-color:var(--ink)}.reason-deck{min-height:415px}.reason-card{grid-template-columns:1fr}.reason-media{height:42%}.reason-copy{top:42%;gap:15px;padding:24px}.reason-copy h3{font-size:32px;max-width:380px}.reason-copy p{font-size:16px}.reason-number{font-size:12px}.team{padding:80px var(--pad)}.section-heading{grid-template-columns:1fr;gap:30px;margin-bottom:40px}.section-heading h2{font-size:11vw}.founder-grid{gap:14px;margin-bottom:55px}.founder-photo{height:300px}.founder-caption{display:block;margin-top:15px}.founder-caption h3{font-size:21px;margin-bottom:6px}.founder-caption span{font-size:13px}.founder-photo img{width:240%;height:140%;top:-10%}.founder-photo.dmytro img{left:-105%}.founder-photo.olga img{left:-22%}.team-tabs{gap:15px;flex-wrap:wrap;padding:15px 0}.team-tabs button{font-size:16px}.team-panel{grid-template-columns:1fr;gap:30px}.team-description p{max-width:100%}.team-placeholders{gap:14px}.team-slot{padding:16px;aspect-ratio:3/4}.team-slot>div{font-size:13px}.highlights{padding:40px var(--pad) 80px}.highlights .section-heading p{grid-column:1}.highlight-row{grid-template-columns:28px 1fr 25px;gap:14px;padding:25px 0;color:#77736f}.highlight-row h3{font-size:27px}.highlight-type{grid-column:2;font-size:13px}.highlight-arrow{grid-column:3;grid-row:1}.highlight-num{font-size:12px}.highlight-image{left:57%;width:45vw;opacity:0}.about-contact{padding:30px var(--pad) 80px}.about-contact>a{font-size:17vw}.about-contact>a>span{font-size:16px}}
@media(hover:none){.highlight-row{color:var(--ink)}.highlight-image{position:relative;left:auto;top:auto;width:100%;max-width:none;grid-column:2/-1;opacity:1;transform:none;margin-top:8px}.highlight-row:hover .highlight-image{transform:none}}
@media(prefers-reduced-motion:reduce){.studio-story,.reasons,.world,.book{height:auto}.story-stage{position:relative;height:auto;min-height:0}.story-photo{position:relative;height:55svh}.story-panel{position:relative;inset:auto;padding:45px var(--pad);gap:35px}.story-text{margin:0;min-height:0}.story-paragraph+.story-paragraph{position:relative;margin-top:30px}.story-index{display:none}.world-stage{position:relative;height:auto;min-height:850px}.map-wrap{min-height:500px}.book-stage{position:relative}.reasons-stage{position:relative;height:auto;display:block;padding-top:70px}.reasons-heading{display:block}.reason-nav{display:none}.reasons-heading h2{margin:30px 0}.reason-deck{height:auto}.reason-card{position:relative;inset:auto;min-height:500px;margin-top:25px;transform:none!important;opacity:1!important}.reason-card .reason-media{min-height:250px}.reason-copy{position:relative;inset:auto}.about-hero{height:100svh}}
/* Compact opening gallery, with the three project disciplines immediately visible. */
.portfolio-top{display:block;text-align:center}.portfolio-top h1{font-size:clamp(42px,4.2vw,72px);letter-spacing:-.055em}.portfolio-top p{max-width:none;margin-top:16px;color:#87837e}.portfolio-filters{margin-top:55px}.portfolio-filters button:not(.portfolio-reset){font-size:clamp(17px,2vw,29px);letter-spacing:-.04em}.portfolio-grid{grid-template-columns:repeat(3,1fr);gap:28px}.portfolio-card:first-child{grid-column:auto}.portfolio-card:first-child .portfolio-image,.portfolio-image{aspect-ratio:.8}.map-pin line{stroke:#aaa7a1}.map-pin .pin-hit{pointer-events:all}
@media(max-width:1000px) and (min-width:701px){.portfolio-grid{gap:18px}.portfolio-caption h2{font-size:21px}.portfolio-caption>span:not(.portfolio-arrow){font-size:13px}}
@media(max-width:700px){.portfolio-top h1{font-size:12vw}.portfolio-grid{grid-template-columns:1fr;gap:38px}.portfolio-filters{gap:14px;margin-top:35px}.portfolio-filters button:not(.portfolio-reset){font-size:16px}.portfolio-image,.portfolio-card:first-child .portfolio-image{aspect-ratio:1}.world-map{position:relative;left:auto;transform:none;min-width:0;width:100%}.map-pin text{font-size:42px;letter-spacing:-1.2px}.map-pin line{stroke-width:1.5}}
/* Individual project stories */
.detail-opening{height:155svh;position:relative}.detail-stage{position:sticky;top:0;height:100svh;overflow:hidden}.detail-frame{position:absolute;inset:0;overflow:hidden;transform-origin:center;will-change:transform;--detail-scale:1;transform:scale(var(--detail-scale))}.detail-frame>img{width:100%;height:100%;object-fit:cover;animation:detail-image-in 1.5s cubic-bezier(.22,1,.36,1) both}.detail-gradient{position:absolute;inset:0;background:linear-gradient(#0003,transparent 25%,transparent 60%,#0008);pointer-events:none}.detail-caption{position:absolute;left:var(--pad);right:var(--pad);bottom:45px;display:flex;justify-content:space-between;gap:25px;align-items:flex-end;color:white;text-transform:uppercase}.detail-caption h1{font-size:clamp(24px,3.5vw,64px);font-weight:400;letter-spacing:-.04em;line-height:1.15;max-width:65%}.detail-caption p{font-size:14px;line-height:1.4;text-align:right;max-width:35%}.detail-caption h1,.detail-caption p{overflow:hidden}.detail-caption span{display:block;animation:detail-label-in 1.05s .35s cubic-bezier(.22,1,.36,1) both}.detail-caption p span{animation-delay:.5s}.detail-scroll{position:absolute;right:var(--pad);bottom:110px;color:white;font-size:14px;animation:detail-label-in 1s .6s both}.detail-facts{padding:100px var(--pad) 120px;scroll-margin-top:86px}.detail-facts>.eyebrow{text-align:center;margin-bottom:80px}.detail-facts dl{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}.detail-facts dt{font-size:14px;text-transform:uppercase;margin-bottom:22px;color:#777}.detail-facts dd{font-size:clamp(18px,1.7vw,28px);line-height:1.2;text-transform:uppercase;margin:0;letter-spacing:-.03em}.detail-editorial{padding-bottom:80px}.detail-editorial figure{margin:0;overflow:hidden}.detail-wide>img{width:100%;height:85svh;object-fit:cover}.detail-editorial figcaption{padding:16px var(--pad);font-size:14px;text-transform:uppercase}.detail-story{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:100px var(--pad) 120px}.detail-story h2{font-size:clamp(34px,4vw,66px);font-weight:400;line-height:1;letter-spacing:-.05em;max-width:550px}.detail-story p{font-size:18px;line-height:1.6;max-width:530px}.detail-story .concept-note{font-size:14px;color:#777;margin-top:25px}.detail-pair{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding:0 var(--pad);align-items:start}.detail-pair .detail-crop-right{margin-top:22vh}.detail-crop>img{height:70svh;width:100%;object-fit:cover;max-width:none}.detail-crop-left>img{object-position:15% center}.detail-crop-right>img{object-position:90% center}.detail-pair figcaption{padding-left:0}.detail-next{display:flex;flex-direction:column;align-items:center;gap:30px;padding:120px var(--pad);border-top:1px solid var(--line);text-align:center}.detail-next>span,.detail-back{font-size:14px;text-transform:uppercase}.detail-next h2{font-size:clamp(48px,8vw,130px);font-weight:400;letter-spacing:-.06em;line-height:1;transition:opacity .4s}.detail-next:hover h2{opacity:.55}.detail-back{display:block;text-align:center;padding-bottom:80px}.project-entry{display:block}.detail-next.project-entry{display:flex}.portfolio-card.is-opening .portfolio-image,.project-entry.is-opening{transform:scale(.96);transition:transform .48s cubic-bezier(.22,1,.36,1)}
@keyframes detail-label-in{from{transform:translateY(115%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes detail-image-in{from{transform:scale(1.08)}to{transform:scale(1)}}
@media(max-width:700px){.detail-opening{height:140svh}.detail-caption{bottom:32px;gap:16px}.detail-caption h1{font-size:27px;max-width:58%}.detail-caption p{font-size:14px;max-width:42%}.detail-scroll{bottom:110px}.detail-facts{padding:70px var(--pad) 85px}.detail-facts>.eyebrow{margin-bottom:50px}.detail-facts dl{grid-template-columns:1fr;gap:42px;text-align:center}.detail-facts dt{margin-bottom:12px}.detail-facts dd{font-size:24px}.detail-story{grid-template-columns:1fr;gap:28px;padding:65px var(--pad)}.detail-wide>img{height:65svh}.detail-pair{gap:35px;grid-template-columns:1fr}.detail-pair .detail-crop-right{margin-top:0}.detail-crop>img{height:65svh}.detail-next{padding:80px var(--pad)}}
@media(prefers-reduced-motion:reduce){.detail-opening{height:100svh}.detail-frame{transform:none!important}.detail-stage{position:relative}.detail-caption{opacity:1!important}.detail-scroll{opacity:1!important}}

/* v7 — YODEZEEN-inspired project detail rhythm */
.project-detail{background:var(--paper)}
.detail-opening{height:190svh;background:var(--paper)}
.detail-stage{background:var(--paper)}
.detail-frame{--detail-x:0vw;--detail-top:0svh;--detail-bottom:0svh;inset:var(--detail-top) var(--detail-x) var(--detail-bottom);transform:none;transition:border-radius .25s;box-shadow:0 0 0 1px #00000008;will-change:inset}
.detail-frame>img{height:100%;object-position:center}
.detail-caption{bottom:28px}
.detail-caption h1{font-size:clamp(22px,2.2vw,38px)}
.detail-caption p{font-size:clamp(14px,1.25vw,20px)}
.detail-contact{display:none}
.detail-facts{min-height:190svh;padding:140px var(--pad) 160px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.facts-stack{width:min(100%,980px);display:flex;flex-direction:column;align-items:center}
.facts-heading{display:flex;flex-direction:column;align-items:center;gap:44px;text-transform:uppercase}
.facts-heading>span{font-size:clamp(17px,1.7vw,29px)}
.facts-heading>strong{font-size:clamp(21px,2.35vw,41px);font-weight:400;line-height:1.08;letter-spacing:-.045em}
.building-sketch{position:relative;width:min(46vw,610px);aspect-ratio:1122/1402;margin:70px auto 58px}
.building-sketch img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.sketch-ghost{opacity:.035}
.sketch-ink{clip-path:inset(100% 0 0 0);opacity:0;will-change:clip-path,opacity}
.sketch-placeholder{display:grid;place-items:center;border:1px solid var(--line);font-size:14px;line-height:1.5;text-transform:uppercase;color:#8d8a83}
.facts-meta{display:flex;flex-direction:column;align-items:center;gap:44px;text-transform:uppercase}
.facts-meta p{font-size:clamp(20px,2.1vw,36px);line-height:1.05;letter-spacing:-.04em}
.facts-meta span{display:block}
.facts-meta .coordinates{position:static;display:block;color:var(--ink);font-size:clamp(18px,1.8vw,31px);pointer-events:auto}
.detail-story{display:block;padding:95px var(--pad) 120px}
.detail-story h2{font:inherit;font-size:14px;letter-spacing:0;text-transform:uppercase;margin-bottom:45px}
.detail-story>div{max-width:none}
.detail-story p:first-child{max-width:none;font-size:clamp(29px,3.45vw,66px);line-height:1.02;letter-spacing:-.055em;text-transform:uppercase}
.detail-story .concept-note{max-width:520px;margin:40px 0 0 auto;text-align:left;text-transform:none}

@media(max-width:700px){
  .project-detail .header{height:96px;padding:0 28px;justify-content:flex-start;background:none}
  .project-detail .header .brand{position:absolute;left:50%;transform:translateX(-50%);align-items:center;font-size:24px;color:inherit}
  .project-detail .menu-toggle{order:-1;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#ffffff21;color:transparent;font-size:0}
  .project-detail .menu-toggle::before{content:'☰';color:currentColor;font-size:21px;transform:scaleX(1.15)}
  .project-detail .header:not(.ink) .menu-toggle::before{color:white}
  .project-detail .header.ink .menu-toggle{background:#dfddda}.project-detail .header.ink .menu-toggle::before{color:var(--ink)}
  .detail-contact{position:fixed;z-index:44;right:28px;top:21px;width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#ffffff21;color:white;font-size:26px;transform:rotate(-8deg)}
  .header.ink~.detail-contact{background:#dfddda;color:var(--ink)}
  .detail-opening{height:205svh}
  .detail-frame{will-change:inset}
  .detail-frame>img{object-position:center}
  .detail-caption{left:18px;right:18px;bottom:22px;gap:9px;align-items:flex-end}
  .detail-caption h1{font-size:clamp(18px,5.2vw,26px);max-width:58%}
  .detail-caption p{font-size:clamp(12px,3.5vw,17px);max-width:42%;line-height:1.12}
  .detail-facts{min-height:188svh;padding:95px 24px 120px}
  .facts-heading{gap:42px}
  .facts-heading>span{font-size:21px}
  .facts-heading>strong{font-size:25px;max-width:620px}
  .building-sketch{width:min(82vw,520px);margin:58px auto 48px}
  .facts-meta{gap:39px}
  .facts-meta p{font-size:24px}
  .facts-meta .coordinates{font-size:23px}
  .detail-story{padding:70px 20px 85px}
  .detail-story h2{margin-bottom:34px}
  .detail-story p:first-child{font-size:clamp(28px,8vw,43px);line-height:1.01}
  .detail-story .concept-note{font-size:15px;margin-top:32px}
}

@media(prefers-reduced-motion:reduce){.detail-opening{height:100svh}.detail-frame{inset:0!important}.sketch-ink{clip-path:none!important;opacity:1!important}}

/* v8 — global studio story and timed architectural drawing */
.sketch-ink{clip-path:inset(0 0 0 100%);opacity:1;transition:clip-path 4s cubic-bezier(.2,.72,.18,1)}
.building-sketch.is-drawing .sketch-ink{clip-path:inset(0 0 0 0)}
.global-story{height:340svh;position:relative;background:#1d1d1c}
.global-story-stage{position:sticky;top:0;height:100svh;min-height:620px;overflow:hidden;background:#1d1d1c}
.global-media{position:absolute;inset:0 0 0 42%;overflow:hidden}
.global-visual{position:absolute;inset:0;margin:0;opacity:0;will-change:opacity,transform;transform:scale(1.055)}
.global-visual:first-child{opacity:1}
.global-visual img{width:100%;height:100%;object-fit:cover}
.global-visual::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0007,transparent 35%,#0001)}
.global-copy{position:absolute;inset:0 58% 0 0;z-index:2;background:var(--paper);color:var(--ink);padding:110px var(--pad) 45px;display:flex;flex-direction:column;justify-content:space-between}
.global-copy>.eyebrow{font-size:13px}
.global-chapters{position:relative;flex:1;margin-top:50px}
.global-chapter{position:absolute;inset:50% 0 auto;transform:translateY(-50%);opacity:0;will-change:opacity,transform}
.global-chapter:first-child{opacity:1}
.global-chapter>span{display:block;font-size:13px;margin-bottom:34px;color:#77736e}
.global-chapter h3{font-size:clamp(35px,4.05vw,75px);font-weight:500;line-height:.92;letter-spacing:-.065em}
.global-chapter p{font-size:17px;line-height:1.5;max-width:440px;margin-top:38px}
.global-progress{display:flex;gap:8px}
.global-progress button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;font-size:12px;transition:background .3s,color .3s}
.global-progress button[aria-pressed=true]{background:var(--ink);color:var(--paper)}

@media(max-width:700px){
  .global-story{height:360svh}
  .global-story-stage{min-height:720px;background:var(--paper)}
  .global-media{inset:0 0 48% 0}
  .global-visual::after{background:linear-gradient(0deg,#0006,transparent 45%)}
  .global-copy{inset:52% 0 0;padding:24px var(--pad) 24px}
  .global-copy>.eyebrow{font-size:12px}
  .global-chapters{margin-top:8px}
  .global-chapter{inset:48% 0 auto}
  .global-chapter>span{font-size:12px;margin-bottom:17px}
  .global-chapter h3{font-size:clamp(29px,8.7vw,42px)}
  .global-chapter p{font-size:16px;line-height:1.36;margin-top:18px;max-width:520px}
  .global-progress button{width:35px;height:35px}
}

@media(prefers-reduced-motion:reduce){
  .sketch-ink{clip-path:none!important;transition:none}
  .global-story{height:auto;background:var(--paper)}
  .global-story-stage{position:relative;height:auto;overflow:visible;background:var(--paper)}
  .global-media{display:none}.global-copy{position:relative;inset:auto;padding:80px var(--pad)}
  .global-chapters{margin:45px 0}.global-chapter{position:relative;inset:auto;transform:none!important;opacity:1!important;padding:35px 0;border-top:1px solid var(--line)}
  .global-progress{display:none}
}

/* v9 — softer editorial motion, character flips and directional image entrances */
.statement-line .word{perspective:900px}
.statement-line .char{transform-origin:50% 50%;backface-visibility:hidden;will-change:transform,opacity;color:var(--ink)}
.studio-story,.story-stage{background:var(--paper)}
.story-photo{inset:0 auto 0 0;width:0;overflow:hidden;transform:none!important;will-change:width,clip-path}
.story-photo img{width:47vw;max-width:none;transform-origin:center center;will-change:transform}
.story-panel{left:0;will-change:left,transform}
.motion-media{opacity:0;will-change:transform,opacity,clip-path;transition:transform 1.55s cubic-bezier(.16,1,.3,1),opacity .65s ease,clip-path 1.45s cubic-bezier(.16,1,.3,1)}
.motion-media.motion-corner-left{clip-path:inset(0 100% 100% 0);transform:translate3d(-48px,74px,0) rotate(-2.4deg) scale(.94)}
.motion-media.motion-corner-right{clip-path:inset(0 0 100% 100%);transform:translate3d(48px,76px,0) rotate(2.4deg) scale(.94)}
.motion-media.motion-float{clip-path:inset(7% 4% 9%);transform:translate3d(0,120px,0) rotate(-1deg) scale(.95)}
.motion-media.is-inview{opacity:1;clip-path:inset(0);transform:none}

@media(max-width:700px){
  .story-photo{inset:0 0 36%;width:auto}
  .story-photo img{width:100%;height:100%}
  .story-panel{left:0}
}

@media(prefers-reduced-motion:reduce){
  .statement-line .char,.motion-media{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
  .story-photo{width:auto;clip-path:none!important}.story-photo img{width:100%;transform:none!important}.story-panel{left:auto!important}
}

/* v10 — genuine point-to-point Butterfly line drawing */
.has-vector-sketch .sketch-ghost{opacity:0;transition:opacity .35s linear 4.08s}
.sketch-vector{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.sketch-stroke{fill:none;stroke:var(--ink);stroke-width:1.12;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;will-change:stroke-dashoffset;transition:stroke-dashoffset var(--draw-duration) linear var(--draw-delay)}
.building-sketch.is-drawing .sketch-stroke{stroke-dashoffset:0}
.building-sketch.is-drawing .sketch-ghost{opacity:.04}

@media(prefers-reduced-motion:reduce){
  .sketch-stroke{stroke-dashoffset:0!important;transition:none!important}
  .has-vector-sketch .sketch-ghost{opacity:.04!important;transition:none!important}
}

/* v11 — a readable intro followed by a scroll-driven five-second drawing */
.detail-facts-animated{height:390svh;min-height:0;padding:0;display:block;position:relative}
.detail-facts-animated,.detail-facts-animated button{font-family:Arial,Helvetica,sans-serif}
.detail-facts-animated .facts-stack{position:sticky;top:0;width:100%;height:100svh;min-height:620px;display:block;overflow:hidden}
.detail-facts-animated .facts-heading,.detail-facts-animated .building-sketch,.detail-facts-animated .facts-meta{position:absolute;left:50%;top:50%;margin:0;will-change:opacity,transform}
.detail-facts-animated .facts-heading{width:min(90vw,900px);transform:translate(-50%,-50%);z-index:2}
.detail-facts-animated .building-sketch{width:min(29vw,400px);transform:translate(-50%,-50%) translateY(45px) scale(.94);opacity:0}
.detail-facts-animated .facts-meta{width:min(90vw,700px);transform:translate(-50%,-50%) translateY(38px);opacity:0;z-index:2}
.detail-facts-animated .sketch-ghost{opacity:0;transition:none}
.detail-facts-animated .facts-heading{gap:clamp(28px,3.1vw,44px)}
.detail-facts-animated .facts-heading>span{font-size:14px;letter-spacing:.04em}
.detail-facts-animated .facts-heading>strong{font-size:clamp(22px,2.05vw,35px);font-weight:400;line-height:1.05;letter-spacing:-.04em}
.detail-facts-animated .sketch-vector{transition:opacity .3s linear;clip-path:inset(0 0 calc(100% - var(--sketch-reveal,0%)) 0)}
.detail-facts-animated .sketch-vector[data-timeline="smil"]{clip-path:none}
.detail-facts-animated .sketch-stroke{stroke-width:.92;stroke-opacity:.88;transition:none;animation:none}
.detail-facts-animated .sketch-vector[data-timeline="fallback"] .sketch-stroke{stroke-dashoffset:0}

@media(max-width:700px){
  .detail-facts-animated{height:410svh}
  .detail-facts-animated .facts-stack{min-height:560px}
  .detail-facts-animated .building-sketch{width:min(66vw,315px)}
  .detail-facts-animated .facts-heading{width:calc(100vw - 42px)}
  .detail-facts-animated .facts-meta{width:calc(100vw - 42px)}
  .detail-facts-animated .facts-heading>span{font-size:14px}
  .detail-facts-animated .facts-heading>strong{font-size:24px;max-width:620px}
}

@media(prefers-reduced-motion:reduce){
  .detail-facts-animated{height:auto;padding:100px 24px}
  .detail-facts-animated .facts-stack{position:relative;height:auto;min-height:0;display:flex;overflow:visible}
  .detail-facts-animated .facts-heading,.detail-facts-animated .building-sketch,.detail-facts-animated .facts-meta{position:relative;left:auto;top:auto;transform:none!important;opacity:1!important}
  .detail-facts-animated .building-sketch{width:min(66vw,380px);margin:55px auto}
  .detail-facts-animated .sketch-ghost{opacity:.82!important}
  .detail-facts-animated .sketch-vector{opacity:.65!important}
  .detail-facts-animated .sketch-stroke{animation:none!important;stroke-dashoffset:0!important}
}

/* v11 — room-led, full-screen project gallery */
.room-showcase{height:100svh;min-height:620px;background:#0b0b0a;color:white;position:relative}
.room-stage{position:relative;height:100%;overflow:hidden;padding:22px 22px 104px}
.room-slides{position:absolute;inset:22px 22px 104px;overflow:hidden;background:#151514}
.room-slide{position:absolute;inset:0;margin:0;opacity:0;clip-path:inset(0 0 0 100%);transform:scale(1.045);transition:clip-path 1.05s cubic-bezier(.16,1,.3,1),transform 1.25s cubic-bezier(.16,1,.3,1),opacity .55s ease;z-index:1;pointer-events:none}
.room-slide.is-active{opacity:1;clip-path:inset(0);transform:scale(1);z-index:2;pointer-events:auto}
.room-slide img{width:100%;height:100%;object-fit:cover;object-position:var(--room-position,center)}
.room-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0003,transparent 28%,transparent 64%,#0007);pointer-events:none}
.room-topline{position:absolute;z-index:4;left:42px;right:42px;top:40px;display:flex;justify-content:space-between;font-size:12px;text-transform:uppercase;letter-spacing:.04em;pointer-events:none}
.room-tabs{position:absolute;z-index:4;left:22px;right:22px;bottom:0;height:104px;display:flex;align-items:center;justify-content:center;gap:clamp(28px,5vw,88px);background:#0b0b0a}
.room-tabs button{position:relative;padding:18px 0;color:#777;white-space:nowrap;font-size:clamp(13px,1.1vw,17px);text-transform:uppercase;transition:color .35s}
.room-tabs button span{font-size:10px;margin-right:8px;vertical-align:top}
.room-tabs button::after{content:'';position:absolute;left:0;right:0;bottom:10px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.room-tabs button[aria-selected="true"]{color:white}
.room-tabs button[aria-selected="true"]::after{transform:scaleX(1);transform-origin:left}
.project-detail .detail-contact{transition:opacity .35s,transform .35s,background .35s,color .35s}
.project-detail.room-view .detail-contact,.project-detail.light-view .detail-contact{opacity:0;pointer-events:none;transform:rotate(-8deg) scale(.8)}

@media(max-width:700px){
  .room-showcase{min-height:560px}
  .room-stage{padding:0 0 96px}
  .room-slides{inset:0 0 96px}
  .room-topline{left:18px;right:18px;top:112px}
  .room-tabs{left:0;right:0;height:96px;justify-content:flex-start;gap:30px;padding:0 20px;overflow-x:auto;scrollbar-width:none}
  .room-tabs::-webkit-scrollbar{display:none}
  .room-tabs button{font-size:13px}
}

@media(prefers-reduced-motion:reduce){
  .room-slide{transition:none}.room-slide.is-active{transform:none}
}

/* v12 — scroll-sequenced light study */
.light-study{height:285svh;min-height:0;position:relative;background:#080807;color:#fff}
.light-stage{--night:0;--light-progress:0%;--light-one:0;--light-two:0;--light-three:0;--light-four:0;--light-scale:1.035;position:sticky;top:0;height:100svh;min-height:620px;overflow:hidden;background:#080807}
.light-day,.light-evening{position:absolute;inset:clamp(18px,2.4vw,38px);margin:0;overflow:hidden;background:#171614}
.light-day img,.light-evening img{width:100%;height:100%;object-fit:cover;transform:scale(var(--light-scale));transform-origin:center;will-change:transform,filter,opacity}
.light-day img{filter:brightness(.96) saturate(.98)}
.light-evening{opacity:var(--night);will-change:opacity}
.light-evening img{filter:brightness(.48) contrast(1.12) saturate(.8) sepia(.06)}
.light-tint{position:absolute;inset:0;background:linear-gradient(180deg,#0c17365c 0 43%,#170f0822 70%,#02020433);mix-blend-mode:multiply;opacity:var(--night)}
.light-glow{position:absolute;display:block;pointer-events:none;mix-blend-mode:screen;filter:blur(10px);will-change:opacity,transform;background:radial-gradient(ellipse at center,#ffdca7d9 0,#ffb45f66 20%,#f4942633 42%,transparent 72%)}
.glow-cove{left:26%;top:-3%;width:52%;height:20%;opacity:var(--light-one)}
.glow-floor{left:4%;top:10%;width:24%;height:45%;opacity:var(--light-two)}
.glow-pendant{left:64%;top:4%;width:20%;height:35%;opacity:var(--light-three)}
.glow-fire{right:-1%;top:34%;width:22%;height:39%;opacity:var(--light-four)}
.light-topline{position:absolute;z-index:4;left:calc(var(--pad) + clamp(18px,2.4vw,38px));right:calc(var(--pad) + clamp(18px,2.4vw,38px));top:calc(clamp(18px,2.4vw,38px) + 22px);display:flex;justify-content:space-between;gap:24px;font-size:13px;line-height:1;text-transform:uppercase;letter-spacing:.04em;text-shadow:0 1px 12px #0008}
.light-caption{position:absolute;z-index:4;left:calc(var(--pad) + clamp(18px,2.4vw,38px));right:calc(var(--pad) + clamp(18px,2.4vw,38px));bottom:calc(clamp(18px,2.4vw,38px) + 24px);display:grid;gap:18px;text-shadow:0 1px 14px #0009}
.light-caption h2{display:flex;justify-content:space-between;align-items:flex-end;font-size:clamp(24px,3.9vw,66px);font-weight:400;line-height:.88;letter-spacing:-.055em;text-transform:uppercase}
.light-caption h2 i{font-size:.42em;font-style:normal;font-weight:400;opacity:.75;transform:translateY(-.24em)}
.light-progress{height:1px;background:#ffffff59;overflow:hidden}
.light-progress b{display:block;width:var(--light-progress);height:100%;background:#fff;will-change:width}

@media(max-width:700px){
  .light-study{height:300svh}
  .light-stage{min-height:560px}
  .light-day,.light-evening{inset:0 0 96px}
  .light-day img,.light-evening img{object-position:56% center}
  .light-topline{left:18px;right:18px;top:112px;font-size:12px}
  .light-caption{left:18px;right:18px;bottom:120px;gap:14px}
  .light-caption h2{font-size:clamp(25px,9vw,42px)}
  .glow-floor{left:-14%;width:44%}.glow-pendant{left:62%;width:30%}.glow-fire{right:-14%;width:42%}
}

@media(prefers-reduced-motion:reduce){
  .light-study{height:100svh;min-height:620px}
  .light-stage{position:relative;--night:1;--light-progress:100%;--light-one:1;--light-two:1;--light-three:1;--light-four:1;--light-scale:1}
}

/* v13 — deterministic Butterfly drawing, autonomous light films and a longer book flight */
.detail-facts-animated,.detail-facts-animated button{font-family:inherit}
.detail-facts-animated .facts-heading>span{font-size:clamp(13px,1vw,16px);font-weight:500;letter-spacing:.035em}
.detail-facts-animated .facts-heading>strong{font-size:clamp(23px,2.15vw,38px);font-weight:500;line-height:1.02;letter-spacing:-.05em}
.fact-word{display:inline-block;overflow:hidden;vertical-align:bottom;perspective:600px}
.fact-word-inner{display:inline-block;opacity:0;transform:translateY(108%) rotateX(26deg);transform-origin:50% 100%;will-change:opacity,transform}
.detail-facts-animated .sketch-vector{clip-path:none;opacity:1}
.detail-facts-animated .sketch-stroke{stroke-width:1;stroke-opacity:.94;stroke-dasharray:1;stroke-dashoffset:1;transition:none;animation:none;will-change:stroke-dashoffset}
.detail-facts-animated .sketch-ghost{clip-path:inset(0 0 calc(100% - var(--sketch-reveal,0%)) 0);filter:contrast(1.05);transition:none}

.book{height:265svh}
.book-stage{perspective:1600px;transform-style:preserve-3d}
.floating-book{width:min(68vw,1110px);left:19%;top:18%;transform-origin:50% 55%;transform-style:preserve-3d;filter:drop-shadow(0 32px 24px #28231c1b);backface-visibility:hidden}
.floating-book img{transform:translateZ(0);backface-visibility:hidden}
.book-copy{opacity:0;will-change:opacity,transform}
.book-title-one,.book-title-two{will-change:transform}

.light-study.project-film-wide{height:100svh;min-height:620px;position:relative;background:#080807;color:#fff}
.project-film-stage{position:relative;height:100%;overflow:hidden;background:#080807}
.project-film-stage video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;background:#111}
.project-film-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0005 0,transparent 27%,transparent 61%,#0008 100%);pointer-events:none}
.project-film-wide .light-topline{left:var(--pad);right:var(--pad);top:30px}
.project-film-wide .light-caption{left:var(--pad);right:var(--pad);bottom:30px}
.project-film-wide .light-progress b{width:100%;transform:scaleX(0);transform-origin:left;animation:project-film-progress 8s linear infinite;animation-play-state:paused}
.project-film-wide.is-playing .light-progress b{animation-play-state:running}

.project-light-object{min-height:100svh;padding:clamp(80px,10vw,170px) var(--pad);display:grid;grid-template-columns:minmax(260px,.78fr) minmax(420px,1.22fr);gap:clamp(50px,9vw,155px);align-items:center;background:var(--paper);color:var(--ink)}
.light-object-copy{align-self:center;max-width:570px}
.light-object-copy>span{display:block;font-size:12px;letter-spacing:.05em;margin-bottom:clamp(45px,7vw,110px)}
.light-object-copy h2{font-size:clamp(42px,5.5vw,98px);font-weight:500;line-height:.91;letter-spacing:-.065em;text-transform:uppercase;margin:0 0 38px}
.light-object-copy p{font-size:clamp(16px,1.3vw,21px);line-height:1.55;max-width:440px}
.project-light-object figure{position:relative;width:min(100%,720px);justify-self:end;background:#111;overflow:hidden}
.project-light-object video{display:block;width:100%;height:min(80svh,980px);object-fit:cover;pointer-events:none}
.project-light-object figcaption{position:absolute;left:20px;right:20px;bottom:18px;display:flex;justify-content:space-between;gap:20px;padding:0;color:#fff;font-size:11px;text-transform:uppercase;text-shadow:0 1px 12px #000;z-index:2}

@keyframes project-film-progress{0%{transform:scaleX(0)}100%{transform:scaleX(1)}}

@media(max-width:700px){
  .detail-facts-animated .facts-heading>span{font-size:14px}
  .detail-facts-animated .facts-heading>strong{font-size:clamp(22px,6.3vw,29px);font-weight:500}
  .book{height:240svh}
  .floating-book{width:112vw;left:-11%;top:46%}
  .light-study.project-film-wide{height:100svh;min-height:560px}
  .project-film-stage video{object-position:center}
  .project-film-wide .light-topline{left:18px;right:18px;top:112px}
  .project-film-wide .light-caption{left:18px;right:18px;bottom:30px}
  .project-film-wide .light-caption h2{font-size:clamp(28px,10vw,45px)}
  .project-light-object{min-height:0;padding:95px 20px 85px;grid-template-columns:1fr;gap:52px}
  .light-object-copy>span{margin-bottom:48px}
  .light-object-copy h2{font-size:clamp(40px,12vw,59px);margin-bottom:26px}
  .project-light-object figure{justify-self:stretch;width:100%}
  .project-light-object video{height:auto;aspect-ratio:1122/1402;object-fit:cover}
  .project-light-object figcaption{font-size:10px}
}

@media(prefers-reduced-motion:reduce){
  .fact-word-inner{opacity:1!important;transform:none!important}
  .floating-book{opacity:1!important;transform:rotate(-4deg) scale(.88)!important}
  .book-copy{opacity:1!important;transform:none!important}
  .project-film-wide .light-progress b{animation:none;transform:none}
}

/* Farsight — a quiet editorial introduction. */
.site-intro{position:fixed;inset:0;z-index:160;display:grid;place-items:center;background:var(--paper);color:var(--ink);overflow:hidden;animation:opening-panel 1.05s 5.9s cubic-bezier(.76,0,.24,1) both}
.intro-content{width:100%;text-align:center;padding:0 24px;animation:opening-content .65s 5.7s cubic-bezier(.22,1,.36,1) both}
.intro-wordmark{overflow:hidden;padding:.08em 0}
.intro-brand{font-size:clamp(56px,12.5vw,210px);font-weight:800;line-height:.92;letter-spacing:-.075em;animation:opening-word 1.1s .12s cubic-bezier(.22,1,.36,1) both}
.intro-descriptor{font-size:clamp(20px,3vw,44px);font-weight:400;line-height:1.1;letter-spacing:.24em;margin:26px 0 0;animation:opening-caption .85s .55s cubic-bezier(.22,1,.36,1) both}
.intro-rule{height:1px;width:42px;margin:clamp(42px,6vh,68px) auto 24px;background:var(--ink);animation:opening-rule .8s .9s cubic-bezier(.22,1,.36,1) both}
.intro-slogan{display:flex;justify-content:center;gap:.35em;font-size:clamp(16.8px,1.62vw,25.2px);font-weight:400;letter-spacing:.025em;animation:opening-caption .85s 1s cubic-bezier(.22,1,.36,1) both;perspective:700px}
.intro-emphasis{display:inline-flex;align-items:baseline;transform-origin:left center;animation:opening-emphasis 3s 1.65s cubic-bezier(.4,0,.2,1) both;margin-right:2em}
.intro-dot{color:#d71920;font-weight:900}
.intro-boring{display:inline-block;transform:rotateY(180deg);transform-origin:50% 50%;animation:opening-mirror 3s 1.65s cubic-bezier(.5,0,.35,1) 1 normal both;backface-visibility:visible}
.home-page:not(.intro-skipped) .hero-image{animation-delay:5.85s;animation-duration:2.1s}
.home-page:not(.intro-skipped) .hero-caption{animation-delay:6.2s}
.intro-skipped .site-intro{display:none}
@keyframes opening-panel{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 100% 0);visibility:hidden;pointer-events:none}}
@keyframes opening-content{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-28px)}}
@keyframes opening-word{from{transform:translateY(115%)}to{transform:translateY(0)}}
@keyframes opening-caption{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes opening-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes opening-mirror{from{transform:rotateY(0)}to{transform:rotateY(1260deg)}}
@keyframes opening-emphasis{from{transform:scale(1);font-weight:400}to{transform:scale(1.5);font-weight:800}}

/* A shorter project opening, followed by centered information and a static city map. */
.project-detail .detail-opening{height:150svh;min-height:0}
.project-information{background:#fff;color:var(--ink);text-align:center}
.project-information-intro{min-height:100svh;display:grid;place-items:center;padding:100px var(--pad);overflow:hidden}
.project-information .facts-heading{position:static;transform:none;width:min(100%,1100px);margin:auto;gap:clamp(28px,4vh,48px)}
.project-information .facts-heading>span{font-family:inherit;font-size:14px;font-weight:400;letter-spacing:.1em}
.project-information .facts-heading>strong{font-family:inherit;font-size:clamp(27px,3.7vw,58px);font-weight:500;letter-spacing:-.055em;line-height:1.12}
.project-information .facts-heading>strong:last-child{font-size:clamp(16px,1.4vw,23px);font-weight:400;letter-spacing:-.02em;line-height:1.5}
.project-information .fact-word{padding-bottom:.08em;margin-bottom:-.08em;perspective:none}
.project-information .fact-word-inner{transform:translateY(112%);opacity:1;transition:transform .85s cubic-bezier(.22,1,.36,1);transition-delay:var(--word-delay,0ms)}
.project-information .facts-heading>strong:nth-child(2) .fact-word-inner{transition-delay:calc(.12s + var(--word-delay,0ms))}
.project-information .facts-heading>strong:last-child .fact-word-inner{transition-delay:calc(.28s + var(--word-delay,0ms))}
.project-information-intro.is-visible .fact-word-inner{transform:translateY(0)}
.project-location{width:min(100%,1280px);margin:0 auto;padding:0 var(--pad)}
.project-location>img{width:100%;height:auto;max-height:85svh;object-fit:contain}
.project-location figcaption{display:flex;justify-content:space-between;gap:20px;font-size:12px;line-height:1.5;padding:25px 0;color:#6d6d6b}
.project-location figcaption>a{text-decoration:underline;text-underline-offset:3px}
.project-specifications{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;max-width:1050px;margin:auto;padding:75px var(--pad) 100px;text-transform:uppercase}
.project-specifications p{font-size:clamp(18px,1.65vw,27px);line-height:1.2;letter-spacing:-.03em}
.project-specifications p>span{display:block;margin-bottom:22px;font-size:12px;letter-spacing:.075em;font-weight:400}

/* Project films contain only moving imagery, with no interface or captions. */
.project-loop{position:relative;display:grid;place-items:center;overflow:hidden;background:var(--paper);margin:0;padding:0}
.project-loop video{display:block;pointer-events:none;border:0;max-width:none;object-fit:cover}
.project-loop-wide{height:100svh;min-height:0;background:#111}
.project-loop-wide video{width:100%;height:100%}
.project-loop-portrait{padding:70px 0}
.project-loop-portrait video{width:min(100%,82svh);height:100svh;object-position:center}
.project-loop-tall{height:150svh;min-height:0}
.project-loop-tall video{width:min(100%,124svh);height:150svh;object-position:center}
.project-loop video::-webkit-media-controls{display:none!important}
.detail-pair{row-gap:85px;padding-top:100px}
.detail-pair .detail-crop-left>img,.detail-pair .detail-crop-right>img{object-position:center}
.detail-pair .detail-crop:last-child:nth-child(odd){grid-column:1/-1;width:min(100%,780px);margin:0 auto}
@media(max-width:700px){
  .intro-brand{font-size:15vw}
  .intro-descriptor{font-size:clamp(20px,5.4vw,30px);letter-spacing:.24em;margin-top:20px}
  .project-information-intro{padding:90px 24px}
  .project-information .facts-heading{gap:35px}
  .project-location{padding:0 16px}
  .project-location>img{height:72svh;max-height:620px;object-fit:cover;object-position:52% center}
  .project-location figcaption{display:block;font-size:12px;text-align:center}
  .project-location figcaption>a{display:block;margin-top:10px}
  .project-specifications{gap:35px;grid-template-columns:1fr;padding:45px 24px 75px}
  .project-specifications p>span{margin-bottom:10px}
  .project-loop-portrait{padding:40px 0}
  .project-loop-portrait video{width:100%;height:auto}
  .project-loop-tall,.project-loop-tall video{height:150svh}
  .project-loop-tall video{width:100%;object-position:center}
  .detail-pair{padding-top:60px;row-gap:40px}
}
@media(prefers-reduced-motion:reduce){
  .site-intro{display:none}
  .home-page .hero-image,.home-page .hero-caption{animation:none!important}
  .project-detail .detail-opening{height:100svh}
  .project-information .fact-word-inner{opacity:1!important;transform:none!important;transition:none!important}
}

/* Compact portfolio: the first row is visible immediately. */
.intro-registered{display:inline-block;font-size:.42em;font-weight:500;vertical-align:super;margin-left:.12em;position:relative;top:-.45em;animation:opening-caption .35s 4.65s both}
.projects-page .portfolio{padding:106px var(--pad) 64px}
.projects-page .portfolio-top h1{font-size:clamp(30px,3.2vw,52px)}
.projects-page .portfolio-top p{display:none}
.projects-page .portfolio-filters{margin:25px 0 20px;padding-bottom:12px;gap:clamp(16px,3vw,50px)}
.projects-page .portfolio-filters button:not(.portfolio-reset){font-size:clamp(14px,1.55vw,22px)}
.projects-page .portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 18px}
.projects-page .portfolio-image,.projects-page .portfolio-card:first-child .portfolio-image{aspect-ratio:auto;height:clamp(200px,48svh,520px)}
.projects-page .portfolio-caption{padding-top:14px}
.projects-page .portfolio-caption h2{font-size:clamp(18px,1.7vw,26px)}
.projects-page .portfolio-image img{filter:brightness(.79) saturate(.85);transition:filter .8s ease,transform 1.2s cubic-bezier(.22,1,.36,1)}
.projects-page .portfolio-card:hover img,.projects-page .portfolio-card:focus-visible img{filter:brightness(1.04) saturate(1)}
.project-location>.location-mountains{height:auto;max-height:none;object-fit:contain;width:100%;margin:0 auto 20px;mix-blend-mode:multiply}
/* Soft recesses around raised image planes, never over the films themselves. */
.project-detail{--paper:#eeedeb;background:var(--paper)}
.project-detail .project-information{background:var(--paper)}
.project-detail .project-location>img:not(.location-mountains){mix-blend-mode:multiply}
.project-detail .detail-stage,.project-detail .room-stage{background:linear-gradient(180deg,#eeedeb 0%,#dbd9d6 14%,#d3d1ce 52%,#e2e0dd 88%,#eeedeb 100%)}
.project-detail .detail-frame,.project-detail .room-slide,.project-detail .detail-crop>img{box-shadow:0 18px 42px -12px #25242038,0 2px 6px #25242018}
.project-detail .project-loop{overflow:visible;z-index:1;background:linear-gradient(90deg,#eeedeb,#dddcd9 18%,#dddcd9 82%,#eeedeb)}
.project-detail .project-loop::before,.project-detail .project-loop::after{content:'';position:absolute;left:0;right:0;height:56px;pointer-events:none;z-index:-1}
.project-detail .project-loop::before{bottom:100%;background:linear-gradient(#eeedeb,#d6d4d1)}
.project-detail .project-loop::after{top:100%;background:linear-gradient(#d6d4d1,#eeedeb)}
.project-detail .project-loop video{box-shadow:0 18px 42px -10px #25242040;position:relative}
.project-detail .project-loop-tall{margin:70px 0}
.project-detail .project-loop-sculpture video{width:min(100%,108svh);height:150svh;object-fit:cover}
@media(max-width:700px){
 .projects-page .portfolio{padding-top:96px}
 .projects-page .portfolio-grid{grid-template-columns:1fr;gap:30px}
 .projects-page .portfolio-filters{gap:8px 16px;margin:22px 0 18px;flex-wrap:wrap}
 .projects-page .portfolio-filters button:not(.portfolio-reset){font-size:14px}
 .projects-page .portfolio-image,.projects-page .portfolio-card:first-child .portfolio-image{height:45svh;min-height:180px}
 .projects-page .portfolio-caption h2{font-size:20px}
 .project-location>.location-mountains{height:auto;max-height:none;object-fit:contain;margin-bottom:12px}
 .project-detail .project-loop-sculpture video{width:100%;height:150svh}
}
@media(hover:none){.projects-page .portfolio-image img{filter:brightness(.96) saturate(1)}}
@media(prefers-reduced-motion:reduce){.intro-registered{animation:none}.projects-page .portfolio-image img{transition:none}}

/* Edge-to-edge paired projects, with a smoky hover and rising captions. */
.projects-page .portfolio{padding-left:0;padding-right:0}
.projects-page .portfolio-top,.projects-page .portfolio-filters,.projects-page .portfolio-end{margin-left:var(--pad);margin-right:var(--pad)}
.projects-page .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.projects-page .portfolio-card{position:relative;display:block;overflow:hidden;isolation:isolate}
.projects-page .portfolio-image,.projects-page .portfolio-card:first-child .portfolio-image{height:clamp(240px,58svh,760px);margin:0;background:#333}
.projects-page .portfolio-image img{filter:none;transform:scale(1);transition:filter .8s ease,transform 1.2s cubic-bezier(.22,1,.36,1)}
.projects-page .portfolio-card[data-project-category=mixed] img{transform:scale(1.35)}
.projects-page .portfolio-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#40403e35,#38383770 65%,#1f1f1ee0);opacity:0;transition:opacity .75s;pointer-events:none;z-index:1}
.projects-page .portfolio-card:hover::after,.projects-page .portfolio-card:focus-visible::after{opacity:1}
.projects-page .portfolio-card:hover img,.projects-page .portfolio-card:focus-visible img{filter:saturate(.18) brightness(.85);transform:scale(1.025)}
.projects-page .portfolio-card[data-project-category=mixed]:hover img,.projects-page .portfolio-card[data-project-category=mixed]:focus-visible img{transform:scale(1.375)}
.projects-page .portfolio-caption{position:absolute;z-index:2;left:clamp(18px,3vw,48px);right:clamp(18px,3vw,48px);bottom:30px;padding:0;color:#fff;display:flex;flex-direction:column;gap:9px;overflow:hidden;pointer-events:none}
.projects-page .portfolio-caption h2{font-size:clamp(19px,2.4vw,40px);font-weight:500;text-transform:uppercase;line-height:1.1;opacity:0;transform:translateY(55px);transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .5s}
.projects-page .portfolio-caption>span:not(.portfolio-arrow){font-size:clamp(13px,1.05vw,17px);color:white;opacity:0;transform:translateY(35px);transition:transform .65s .08s cubic-bezier(.22,1,.36,1),opacity .5s .08s;text-transform:uppercase}
.projects-page .portfolio-card:hover .portfolio-caption>*,.projects-page .portfolio-card:focus-visible .portfolio-caption>*{opacity:1;transform:translateY(0)}
.projects-page .portfolio-arrow,.projects-page .portfolio-note{display:none}
.photo-wipe{position:relative;overflow:hidden;background:#c9c7c3;box-shadow:0 18px 42px -12px #25242038}
.photo-wipe>img{width:100%;height:70svh;object-fit:cover;display:block;transform:none!important;clip-path:none!important;opacity:1!important}
.detail-wide>.photo-wipe>img{height:85svh}
.photo-veil{position:absolute;inset:0;pointer-events:none;transform:translateY(0);transition:transform .55s cubic-bezier(.65,0,.35,1)}
.photo-veil-0{background:#575754;z-index:1;transition-delay:.22s}
.photo-veil-1{background:#aaa8a4;z-index:2;transition-delay:.11s}
.photo-veil-2{background:#eeedeb;z-index:3;transition-delay:0s}
.photo-open .photo-veil{transform:translateY(101%)}
@media(max-width:700px){
 .projects-page .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
 .projects-page .portfolio-image,.projects-page .portfolio-card:first-child .portfolio-image{height:42svh;min-height:230px}
 .projects-page .portfolio-caption{left:14px;right:14px;bottom:20px;gap:7px}
 .projects-page .portfolio-caption h2{font-size:clamp(16px,4vw,24px)}
 .projects-page .portfolio-caption>span:not(.portfolio-arrow){font-size:12px;line-height:1.3}
 .photo-wipe>img,.detail-wide>.photo-wipe>img{height:65svh}
}
@media(hover:none){
 .projects-page .portfolio-card::after{opacity:.55}
 .projects-page .portfolio-caption h2,.projects-page .portfolio-caption>span:not(.portfolio-arrow){opacity:1;transform:none}
 .projects-page .portfolio-image img{filter:none}
}
@media(prefers-reduced-motion:reduce){.photo-veil{display:none}.projects-page .portfolio-caption>*{transition:none!important}}

/* Full opening row, then generous separation between paired rows. */
.projects-page .portfolio-grid{row-gap:clamp(48px,8svh,100px);column-gap:0}
.projects-page .portfolio-image,.projects-page .portfolio-card:first-child .portfolio-image{height:var(--project-row-height,calc(100svh - 250px));min-height:260px}
.header nav:last-of-type{padding-right:80px;gap:clamp(20px,3vw,55px)}
.language-menu{position:absolute;right:var(--pad);top:25px;font-size:13px;letter-spacing:.025em;color:inherit;z-index:5;text-transform:none}
.language-menu summary{cursor:pointer;list-style:none;min-width:52px;padding:10px 0;text-align:right}
.language-menu summary::-webkit-details-marker{display:none}
.language-options{position:absolute;right:0;top:44px;width:150px;padding:9px;background:#f2f1ef;color:#282726;box-shadow:0 12px 35px #0002;border:1px solid #ddd9d4}
.language-options button{display:block;width:100%;padding:11px;text-align:left;font-size:14px}
.language-options button:hover,.language-options button:focus-visible{background:#e3e0dc}
.language-options button[aria-pressed=true]{color:#d71920;font-weight:700}
html[lang=zh-Hans]{font-family:Arial,'PingFang SC','Microsoft YaHei',sans-serif}
html:not([lang=en]) .header nav{font-size:12px;gap:24px}
html:not([lang=en]) .manifesto-message{font-size:clamp(30px,4vw,78px)}
html[lang=zh-Hans] .category-title{letter-spacing:0;font-size:12vw}
@media(max-width:900px){
 .header nav:last-of-type{gap:16px;padding-right:65px}
 .header nav{gap:22px}
 .language-menu{right:20px}
}
@media(max-width:700px){
 .language-menu{top:20px;right:20px}
 .project-detail .detail-contact{display:none}
 .header .brand{max-width:calc(100vw - 170px);justify-self:center}
 .projects-page .portfolio-grid{row-gap:48px}
 .projects-page .portfolio-image,.projects-page .portfolio-card:first-child .portfolio-image{height:var(--project-row-height,calc(100svh - 245px));min-height:260px}
 html:not([lang=en]) .projects-page .portfolio-filters{gap:8px 12px}
 html:not([lang=en]) .projects-page .portfolio-filters button{font-size:13px}
}
html:not([lang=en]) .category-title,html:not([lang=en]) .category-title.mixed{font-size:9vw}
html[lang=zh-Hans] .category-title{font-family:inherit;font-size:12vw}

.intro-red-b{color:#d71920}
.room-continue{position:absolute;z-index:8;left:50%;bottom:110px;transform:translateX(-50%);width:52px;height:52px;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .6s;color:#b5b5b5}
.room-continue svg{width:28px;height:36px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.room-showcase.show-continue .room-continue{opacity:1;pointer-events:auto}
.room-showcase.show-continue .room-continue svg{animation:room-beacon 2s ease-in-out infinite}
@keyframes room-beacon{0%,100%{color:#929292;filter:drop-shadow(0 0 0 transparent);transform:translateY(-3px)}50%{color:#fff;filter:drop-shadow(0 0 7px #fff9);transform:translateY(4px)}}
@media(max-width:700px){.room-continue{bottom:102px}}
@media(prefers-reduced-motion:reduce){.room-continue{opacity:1;pointer-events:auto}.room-continue svg{animation:none!important}}

/* Pacific geography and room-led photographic chapters. */
.project-detail{background:#deddd9}
.project-detail .project-information,.project-detail .detail-editorial{background:#deddd9}
.project-location{background:#f6f5f2;padding:clamp(20px,4vw,70px);border-radius:2px}
.project-location .location-mountains{width:100%;height:auto;max-height:300px;object-fit:contain;mix-blend-mode:multiply;margin:0 auto 40px}
.project-location .bc-location{width:100%;height:auto;max-height:none;margin-bottom:70px}
.project-location>img:not(.location-mountains):not(.bc-location){max-width:920px;margin:0 auto;display:block}
.country-outline{fill:#e8e6e1;stroke:#8e8a84;stroke-width:.9;vector-effect:non-scaling-stroke;transition:fill .5s,stroke .5s}
.country-outline.active{fill:#d8d4ce;stroke:#282726}
.world .map-pin text{font-size:17px;letter-spacing:-.3px;paint-order:stroke;stroke:#f2f1ef;stroke-width:5px;stroke-linejoin:round}
.world .map-pin .pin-leader{stroke:#8a8782;stroke-width:.8;fill:none}
.world .map-pin .pin-core{fill:#d71920;stroke:none}
.world .map-pin.active .pin-core{r:5}
.world .map-pin.active text{fill:#141414;font-weight:700}
.world .map-pin.active .pin-leader{stroke:#d71920}
.world .map-pin .pin-glow{stroke:#d71920;fill:none}
.world .world-bottom{align-items:flex-start}.world .city-selector{max-width:750px}
.world .map-wrap{min-height:370px}.world .world-stage{min-height:720px}
.footer-word{font-size:clamp(65px,15vw,260px);line-height:.95}
.footer-bottom{font-size:11px;gap:22px;align-items:center}
.footer-email{margin-left:auto;font-size:clamp(12px,1.15vw,17px);text-transform:none}
.room-gallery{padding:80px var(--pad);background:#d6d4cf}
.room-gallery:nth-of-type(even){background:#cfcdc7}
.gallery-heading{display:flex;align-items:baseline;gap:30px;margin:0 0 35px;padding-top:22px;border-top:1px solid #b3b0a9}
.gallery-heading>span{font-size:12px}.gallery-heading h2{font-size:clamp(28px,3.6vw,64px);font-weight:500;letter-spacing:-.045em}
.room-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2.8vw,50px)}
.gallery-photo{position:relative;overflow:hidden;margin:0;min-width:0}
.gallery-photo.landscape{grid-column:1/-1;aspect-ratio:2.06}
.gallery-photo.portrait{aspect-ratio:.82}
.gallery-photo.portrait:last-child:nth-child(3n+2){grid-column:2}
.gallery-photo>.photo-wipe{height:100%;width:100%;box-shadow:none}
.gallery-photo>.photo-wipe>img,.gallery-photo>img{width:100%;height:104%;object-fit:cover;object-position:center top;transform:none!important;max-width:none}
.gallery-signature{position:absolute;z-index:3;right:0;bottom:0;padding:5px 12px;background:#252422;color:#f5f3ee;font-size:clamp(10px,.85vw,14px);font-weight:600;letter-spacing:-.03em;pointer-events:none}
.gallery-signature>span{color:#e52228}
.room-slide:has(.gallery-signature)>img{height:104%;object-position:center top}
.gallery-photo>.photo-wipe .photo-veil-0{background:#77736c}.gallery-photo>.photo-wipe .photo-veil-1{background:#aaa69d}.gallery-photo>.photo-wipe .photo-veil-2{background:#d6d4cf}
.room-tabs{overflow-x:auto;justify-content:center}
.room-tabs button{flex-shrink:0}
@media(max-width:700px){
 .world .map-pin text{font-size:19px;stroke-width:6px}
 .world .map-wrap{min-height:300px}.world .world-stage{min-height:740px}
 .world .city-selector{gap:0 14px}.world .city-selector button{font-size:12px}
 .project-location{padding:18px 8px}.project-location .location-mountains{margin-bottom:20px}
 .project-location .bc-location{margin-bottom:30px}
 .room-gallery{padding:45px 14px}.room-gallery-grid{gap:12px}
 .gallery-heading{gap:15px;margin-bottom:22px}.gallery-photo.landscape{aspect-ratio:1.45}
 .gallery-photo.portrait{aspect-ratio:.65}.gallery-signature{font-size:8px;padding:3px 6px}
 .room-tabs{justify-content:flex-start;padding-inline:18px}
 .footer-bottom{flex-wrap:wrap;gap:15px}.footer-email{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){.country-outline{transition:none}}

.world .map-pin .pin-country{font-size:11px;letter-spacing:.7px;text-transform:uppercase;font-weight:400}

/* Butterfly: clean imagery and luminous room navigation. */
.room-tabs button{transition:color .35s ease,text-shadow .45s ease,filter .45s ease}
.room-tabs button:hover,.room-tabs button:focus-visible{color:#fff;text-shadow:0 0 7px #fff9,0 0 20px #fff6,0 0 32px #fff3;filter:brightness(1.25)}
.room-tabs button::after{content:'';position:absolute;left:8%;right:8%;bottom:11px;height:1px;background:#fff;opacity:0;box-shadow:0 0 10px 2px #ffffff65;transform:scaleX(.45);transition:opacity .4s,transform .4s}
.room-tabs button:hover::after,.room-tabs button:focus-visible::after{opacity:.8;transform:scaleX(1)}
.room-tabs button[aria-selected=true]{color:#fff;text-shadow:0 0 12px #ffffff45}
.project-detail .room-slide{overflow:hidden}
.project-detail .room-slide>img{height:108%;object-position:center top}
.gallery-signature{display:none!important}
.gallery-photo>.photo-wipe>img,.gallery-photo>img{height:108%;object-position:center top}
.room-gallery-grid>.gallery-film{grid-column:1/-1;width:100%;margin:0 0 25px}
.room-gallery-grid>.gallery-film video{width:100%;height:100svh;object-fit:cover}
@media(prefers-reduced-motion:reduce){.room-tabs button,.room-tabs button::after{transition:none}}

/* A slower reading rhythm and an open book for the studio story. */
:root{--site-font:Arial,Helvetica,sans-serif}
body,button,input,textarea,select,h1,h2,h3,h4,p,a,span,em,strong{font-family:var(--site-font)}
html[lang=zh-Hans]{--site-font:Arial,'PingFang SC','Microsoft YaHei',sans-serif}
.manifesto{height:310svh}
.photo-veil{transition-duration:1.35s;transition-timing-function:cubic-bezier(.22,.61,.36,1)}
.photo-veil-0{transition-delay:.32s}.photo-veil-1{transition-delay:.16s}.photo-veil-2{transition-delay:0s}
.brand-period{color:#d71920;font-weight:inherit}
.about-photo img{width:100%;height:100%;top:0;object-fit:cover;object-position:center}
.team-table{margin:0 0 65px;overflow:hidden}.team-table img{width:100%;height:65svh;object-fit:cover}
.reasons{height:650svh}
.reasons-stage{grid-template-columns:24% 1fr;gap:4%;padding:110px var(--pad) 65px}
.reason-deck{perspective:2200px;isolation:isolate;border-radius:2px 8px 8px 2px;box-shadow:0 30px 45px -25px #24211d65,0 3px 0 #cbc7be,0 6px 0 #eeeae2,0 9px 0 #c5c1b8;background:#f4f0e8}
.reason-deck::after{content:'';position:absolute;z-index:10;top:0;bottom:0;left:calc(50% - 16px);width:32px;background:linear-gradient(90deg,transparent,#201d181c 43%,#201d1840 49%,#fffc 52%,transparent);pointer-events:none}
.reason-card{display:grid;grid-template-columns:1fr 1fr;background:transparent;overflow:visible;perspective:2200px;transform-style:preserve-3d}
.reason-card .reason-media{position:relative;height:100%;min-height:0;overflow:hidden;background:#dad5cb;clip-path:none;transform:none;opacity:1}
.reason-card .reason-media img{height:100%;width:100%;object-fit:cover;transform:none}
.reason-card .reason-copy{position:relative;inset:auto;height:100%;padding:clamp(22px,2.5vw,48px);gap:22px;background:linear-gradient(90deg,#dfd9ce 0,#f5f1e8 9%,#f5f1e8 88%,#ebe6dc);transform-origin:left center;backface-visibility:hidden;box-shadow:8px 5px 18px -10px #211c1966;will-change:transform}
.reason-copy h3{font-size:clamp(25px,2.9vw,49px);letter-spacing:-.045em;line-height:1.05}.reason-copy p{font-size:clamp(16px,1.1vw,19px);line-height:1.5}.reason-number{margin-bottom:auto;font-size:13px}
.paper-sound{margin-top:25px;font-size:14px;padding:10px 0;border-bottom:1px solid #c5c0b6;display:flex;gap:24px}.paper-sound span{color:#777}.paper-sound[aria-pressed=true] span{color:#d71920}
.about-contact .conversation-button{position:relative;overflow:hidden;padding:clamp(30px,5vw,90px);border:1px solid #bab7b0;background:#e2dfd8;border-radius:2px;transition:background .6s,color .6s,box-shadow .6s;letter-spacing:-.05em}
.conversation-button::before{content:'';position:absolute;width:50%;height:250%;left:-70%;top:-75%;background:linear-gradient(90deg,transparent,#fff5,transparent);transform:rotate(25deg);transition:left 1s ease;pointer-events:none}
.about-contact .conversation-title{display:block;font-size:clamp(54px,10vw,175px);line-height:.95}
.about-contact .conversation-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:35px;font-size:clamp(18px,2vw,28px);letter-spacing:-.025em}
.conversation-arrow{display:grid;place-items:center;width:74px;height:74px;border:1px solid #98938b;border-radius:50%;font-size:36px;transition:transform .6s,background .6s,border-color .6s}
.conversation-button:hover,.conversation-button:focus-visible{background:#242322;color:#f6f4ee;box-shadow:0 18px 50px #15151525}
.conversation-button:hover::before{left:120%}.conversation-button:hover .conversation-arrow,.conversation-button:focus-visible .conversation-arrow{transform:rotate(45deg);background:#d71920;border-color:#d71920;color:white}
@media(max-width:900px){.reasons-stage{grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:24px;padding-top:100px}.reasons-heading{display:grid;grid-template-columns:1fr auto;gap:14px}.reasons-heading h2{font-size:6vw;margin:0}.reason-nav{align-self:end}.paper-sound{grid-column:2;margin:0;padding:5px 0}.reasons-heading .eyebrow{grid-column:1/-1}.reason-copy h3{font-size:clamp(22px,4vw,35px)}}
@media(max-width:700px){.manifesto{height:300svh}.reasons{height:650svh}.reasons-stage{min-height:720px;padding-bottom:40px}.reason-deck{min-height:390px}.reason-card .reason-copy{padding:20px 15px;gap:16px}.reason-copy p{font-size:15px;line-height:1.4}.about-photo img{height:100%;top:0;object-position:48% center}.team-table img{height:45svh}.conversation-arrow{width:55px;height:55px;font-size:28px}.paper-sound{font-size:12px}}
@media(prefers-reduced-motion:reduce){.manifesto,.reasons{height:auto}.reason-card{position:relative;min-height:430px;opacity:1!important;margin:25px 0}.reason-copy{transform:none!important;filter:none!important}.reason-deck::after{display:none}.reasons-stage{position:relative;height:auto;display:block}.photo-veil{display:none}.conversation-button,.conversation-arrow{transition:none!important}}

/* Refined portfolio spacing, room invitation and three-column photo reveal. */
.projects-page .portfolio-grid{margin-inline:8px}
.representatives .kicker>span:first-child{font-size:clamp(18px,2vw,28px);font-weight:600;letter-spacing:-.025em;color:var(--ink)}
.gallery-heading{position:relative;transform:none!important;isolation:isolate;z-index:2;clear:both}
.room-gallery-grid{position:relative;isolation:isolate}
.room-continue{height:74px;gap:4px}
.room-continue>span{font-size:12px;text-transform:uppercase;letter-spacing:.15em}
.photo-wipe .photo-veil{inset:0 auto 0 0;width:33.4%;height:100%;transform:none;clip-path:inset(0 0 0 0);transition:clip-path 1.35s cubic-bezier(.22,.61,.36,1);background:#454440}
.photo-wipe .photo-veil-0{left:0;transition-delay:0s}
.photo-wipe .photo-veil-1{left:33.333%;transition-delay:.10s}
.photo-wipe .photo-veil-2{left:66.666%;transition-delay:.20s}
.photo-wipe.photo-open .photo-veil{transform:none;clip-path:inset(0 0 0 100%)}
@media(prefers-reduced-motion:reduce){.photo-wipe .photo-veil{display:none}.room-continue{transition:none}}

.project-detail .gallery-film{overflow:hidden}
.project-detail .gallery-film::before,.project-detail .gallery-film::after{display:none}

.footer-email{text-transform:lowercase;font-variant:normal;text-shadow:0 0 10px #fff9;transition:text-shadow .35s,color .35s}.footer-email:hover,.footer-email:focus-visible{text-shadow:0 0 5px #fff,0 0 16px #fff;color:#111}

/* A complete location composition within one comfortable viewport. */
.project-location{width:min(100%,1040px);padding:16px clamp(12px,2vw,32px)}
.project-location .location-mountains{height:17svh;max-height:150px;width:100%;object-fit:contain;margin:0 auto 12px}
.project-location>img:not(.location-mountains):not(.bc-location){height:54svh;max-height:510px;max-width:760px;width:100%;object-fit:contain;object-position:center}
.project-location figcaption{padding:16px 0}
.footer-word{font-size:clamp(32px,7.5vw,130px);margin:32px 0 20px;line-height:1;letter-spacing:-.065em}
@media(max-width:700px){.project-location .location-mountains{height:15svh;margin-bottom:8px}.project-location>img:not(.location-mountains):not(.bc-location){height:auto;max-height:55svh;object-fit:contain}.project-location figcaption{padding:12px 0}.footer-word{margin:24px 0 18px}}

/* Touch scrolling stays native; the frame rests briefly without a forced scroll lock. */
@media(pointer:coarse) and (prefers-reduced-motion:no-preference){
 .project-detail .project-loop-wide{height:118svh;display:block;overflow:visible}
 .project-detail .project-loop-wide video{position:sticky;top:0;width:100%;height:100svh;display:block}
}
.photo-veil{display:none!important}

/* The introduction docks into the real header wordmark. */
.site-intro,.intro-content{animation:none}
.intro-wordmark{overflow:visible}
.intro-registered{animation:registered-rise .45s 4.65s cubic-bezier(.22,.61,.36,1) both}
@keyframes registered-rise{from{opacity:0;transform:translateY(1.3em)}to{opacity:1;transform:translateY(0)}}
.intro-docking .header .brand{visibility:hidden}
.intro-flight{position:fixed;z-index:170;display:block;white-space:nowrap;transform-origin:0 0;pointer-events:none}
.site-intro.intro-departing{opacity:0;transition:opacity .48s ease;pointer-events:none}
.intro-departing .intro-slogan,.intro-departing .intro-rule,.intro-departing .intro-descriptor{opacity:0;transition:opacity .25s ease;animation:none}
.manifesto-trail{position:absolute;top:72%;left:0;width:100%;height:10px;pointer-events:none;opacity:0}
.manifesto-trail i{position:absolute;left:0;top:4px;width:100%;height:2px;background:linear-gradient(90deg,transparent,#d71920 45%,#d71920);transform:scaleX(0);transform-origin:left}
.manifesto-trail b{position:absolute;top:0;left:0;width:10px;height:10px;border-radius:50%;background:#d71920;box-shadow:0 0 12px #d7192044}
.manifesto-trail.is-crossing{animation:trail-life 1.25s ease both}
.manifesto-trail.is-crossing i{animation:trail-grow 1s cubic-bezier(.4,0,.2,1) both}
.manifesto-trail.is-crossing b{animation:trail-travel 1s cubic-bezier(.4,0,.2,1) both}
@keyframes trail-life{0%{opacity:0}10%,75%{opacity:1}100%{opacity:0}}
@keyframes trail-grow{to{transform:scaleX(1)}}
@keyframes trail-travel{to{left:100%}}
@media(prefers-reduced-motion:reduce){.manifesto-trail,.intro-flight{display:none}.intro-docking .header .brand{visibility:visible}}
/* Settled editorial states: micro-scroll never changes copy geometry. */
.studio-story .story-photo{width:47%;clip-path:inset(0 100% 0 0);transition:clip-path 1.1s cubic-bezier(.22,.61,.36,1)}
.studio-story.story-open .story-photo{clip-path:inset(0)}
.studio-story .story-photo img{transform:none}
.studio-story .story-panel{left:47%;transform:none;will-change:auto}
.story-paragraph{transition:opacity .65s ease,visibility .65s;transform:none!important}
.manifesto-stage,.story-stage{touch-action:pan-y pinch-zoom}
.world-heading{pointer-events:none}
@media(max-width:700px){.studio-story .story-photo{width:100%}.studio-story .story-panel{left:0;transform:none}}
@media(prefers-reduced-motion:reduce){.studio-story .story-photo{width:100%;clip-path:none;transition:none}.studio-story .story-panel{left:auto}.manifesto-stage,.story-stage{touch-action:auto}}
/* Studio chapter: a continuous red thread through light and dark rooms. */
.agency-journey{position:relative;isolation:isolate;background:#f4f3f0}
.agency-thread{position:absolute;z-index:12;left:5vw;top:75px;bottom:30px;width:2px;background:#85858538;pointer-events:none}
.agency-thread-fill{position:absolute;inset:0 0 auto;background:#d71920;width:2px;height:0;box-shadow:0 0 9px #d7192040}
.agency-thread-end{position:absolute;left:50%;bottom:-14px;width:28px;height:28px;border:2px solid #d71920;border-radius:50%;background:#f4f3f0;transform:translateX(-50%);display:grid;place-items:center;transition:background .5s,box-shadow .5s}
.agency-thread-end i{width:6px;height:6px;border-radius:50%;background:#d71920}
.agency-thread-end.is-arrived{background:#d71920;box-shadow:0 0 0 10px #d7192020;animation:agency-pulse 2.4s ease-in-out infinite}
.agency-thread-end.is-arrived i{background:white}
@keyframes agency-pulse{50%{box-shadow:0 0 0 18px #d7192000}}
.agency-journey>.about-statement,.agency-journey>.highlights{padding-left:11vw;padding-right:7vw;background:#f4f3f0;color:#161616}
.agency-journey .global-story-stage,.agency-journey .global-copy{background:#101010;color:#f5f4f0}
.agency-journey .global-chapter p{color:#c6c6c4}.agency-journey .global-chapter>span{color:#b0b0ae}
.agency-journey .global-progress button{color:#aaa;border-color:#555}.agency-journey .global-progress [aria-pressed=true]{color:white;border-color:#d71920}
.agency-journey .reasons-stage{padding-left:11vw;background:#f4f3f0;color:#161616}
body.agency-dark .header{color:white!important;background:transparent!important}
body.agency-dark .header a,body.agency-dark .header button,body.agency-dark .language-menu summary{color:inherit}
body.agency-dark .language-options{color:#222}
.team-lift{position:relative;height:260svh;background:#101010;color:#f5f4f0}
.team-lift-stage{position:sticky;top:0;height:100svh;overflow:hidden;padding:100px 7vw 45px 11vw}
.team-lift-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:30px}
.team-lift-heading h2{font-size:clamp(26px,3.2vw,54px);line-height:1.05;font-weight:500;letter-spacing:-.035em}
.team-elevator{height:65svh;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;gap:15vw;mask-image:linear-gradient(transparent,#000 5%,#000 93%,transparent)}
.team-track{align-self:start;display:flex;flex-direction:column;gap:60px;will-change:transform}
.team-portrait{margin:0}.team-portrait img{width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(1)}
.team-portrait figcaption{padding:18px 0 22px;display:flex;flex-direction:column;gap:7px}.team-portrait figcaption>span{font-size:clamp(20px,2.1vw,36px);letter-spacing:-.025em}.team-portrait small{font-size:14px;color:#aaa}
.team-preview-note{position:absolute;bottom:18px;left:11vw;font-size:12px;color:#949494;letter-spacing:.03em}
/* Letter faces roll in a staggered wave, with equal widths and stable link geometry. */
.talk-wave{display:inline-flex!important;white-space:nowrap;position:relative;perspective:700px;vertical-align:baseline;line-height:1.12;overflow:visible}
.tw-letter{position:relative;display:inline-block;perspective:500px}
.tw-letter i{display:block;font-style:normal;backface-visibility:hidden;transition:transform .72s cubic-bezier(.22,.75,.2,1),opacity .55s;transition-delay:calc(var(--i)*18ms)}
.tw-front{position:relative;transform:translateY(0) rotateY(0);opacity:1}
.tw-back{position:absolute;inset:0;transform:translateY(90%) rotateY(85deg);opacity:0}
.tw-dot{color:#d71920}
.talk-wave:hover .tw-front,.talk-wave:focus-visible .tw-front,a:hover>.talk-wave .tw-front,a:focus-visible>.talk-wave .tw-front{transform:translateY(-90%) rotateY(-85deg);opacity:0}
.talk-wave:hover .tw-back,.talk-wave:focus-visible .tw-back,a:hover>.talk-wave .tw-back,a:focus-visible>.talk-wave .tw-back{transform:translateY(0) rotateY(0);opacity:1}
.contact-link:after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:1px;background:#d71920;transform:scaleX(0);transform-origin:left;transition:transform .65s cubic-bezier(.22,.75,.2,1)}
.contact-link:hover:after,.contact-link:focus-visible:after{transform:scaleX(1)}
.contact-intro{padding:180px 7vw 100px;min-height:100svh;background:#f4f3f0;color:#171717}
.contact-intro>.eyebrow{display:block;margin-bottom:50px}
.contact-intro h1{font-size:clamp(34px,5.8vw,100px);font-weight:450;line-height:1.12;letter-spacing:-.045em;max-width:1400px}
.rotating-places{position:relative;display:block;height:1.22em;overflow:hidden;color:#d71920;margin-top:8px;letter-spacing:-.035em}
.rotating-places>span{position:absolute;inset:0 auto auto 0;transform:translateY(110%);transition:transform .95s cubic-bezier(.76,0,.24,1);white-space:nowrap}
.rotating-places>span.is-current{transform:translateY(0)}.rotating-places>span.is-previous{transform:translateY(-110%)}
.contact-details{display:flex;justify-content:space-between;align-items:end;gap:25px;border-top:1px solid #ccc;margin-top:65px;padding-top:25px}
.contact-details>span{font-size:13px;letter-spacing:.07em}.contact-email{font-size:clamp(19px,2.4vw,38px);letter-spacing:-.025em;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s}.contact-email:hover{border-color:#d71920}
.contact-invitation{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:85px;padding:40px 0;border-top:1px solid #ccc;text-decoration:none}
.contact-invitation .talk-title{font-size:clamp(48px,10vw,150px);font-weight:600;letter-spacing:-.04em}
.talk-arrow{display:grid;place-items:center;width:95px;height:95px;border:1px solid #aaa;border-radius:50%;font-size:45px;transition:transform .65s,background .65s,color .65s,border-color .65s}
.contact-invitation:hover .talk-arrow{transform:rotate(45deg);background:#d71920;border-color:#d71920;color:white}
.world .map-wrap{bottom:8%;}.world-heading h2{font-size:clamp(36px,6.5vw,115px)}
@media(max-width:700px){
 .agency-thread{left:20px;top:45px}.agency-journey>.about-statement,.agency-journey>.highlights{padding-left:52px;padding-right:22px}.agency-journey .reasons-stage{padding-left:52px}
 .team-lift{height:220svh}.team-lift-stage{padding:100px 20px 50px 52px}.team-lift-heading{display:block;margin-bottom:24px}.team-lift-heading h2{font-size:30px;margin-top:15px}.team-elevator{height:59svh;gap:18px}.team-track{gap:28px}.team-portrait img{aspect-ratio:3/4}.team-portrait figcaption{padding:12px 0}.team-portrait figcaption>span{font-size:18px;line-height:1.15}.team-portrait small{font-size:12px}.team-preview-note{left:52px;right:20px;bottom:15px;font-size:11px}
 .contact-intro{padding:135px 24px 65px}.contact-intro>.eyebrow{font-size:12px;margin-bottom:36px}.contact-intro h1{font-size:clamp(30px,8vw,50px)}.contact-details{display:block;margin-top:42px}.contact-email{display:block;width:max-content;max-width:100%;font-size:21px;margin-top:18px}.contact-invitation{margin-top:45px;gap:12px}.contact-invitation .talk-title{font-size:12vw}.talk-arrow{width:52px;height:52px;flex-shrink:0;font-size:26px}
}
@media(prefers-reduced-motion:reduce){
 .tw-letter i,.rotating-places>span{transition:none}.talk-wave .tw-front{transform:none!important;opacity:1!important}.talk-wave .tw-back{display:none}.agency-thread-end.is-arrived{animation:none}.team-lift{height:auto}.team-lift-stage{position:relative;height:auto}.team-elevator{height:auto;overflow:visible;mask-image:none}.team-track{transform:none!important}.team-preview-note{position:static;margin-top:25px}.team-lift-stage{padding-bottom:40px}
}
.header .contact-link.talk-wave{gap:0}
.header .contact-link.talk-wave .tw-letter{font-size:inherit;line-height:inherit}
body.agency-dark .header .contact-link{background:#ffffff20}
/* Consistent project rhythm and legible, fully contained room navigation. */
.projects-page .header{background:#f2f1ef;backdrop-filter:blur(12px)}
.projects-page .portfolio{padding-top:clamp(165px,15svh,210px)}
.projects-page .portfolio-top h1{font-size:clamp(34px,4vw,66px);line-height:1.12}
.projects-page .portfolio-filters{justify-content:center;gap:clamp(35px,7vw,120px);margin-top:34px;padding-bottom:22px}
.projects-page .portfolio-filters button{font-family:inherit;font-weight:500;letter-spacing:-.04em;position:relative;padding:10px 2px;min-height:48px}
.projects-page .portfolio-filters button:not(.portfolio-reset){font-size:clamp(22px,2.3vw,36px)}
.portfolio-filters button[aria-pressed=true]::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#d71920}
.portfolio-filters .tw-letter{font-size:inherit}
.detail-next [data-talk-wave]{display:inline-flex;margin-top:30px}
.detail-next:hover .tw-front{transform:translateY(-115%) rotateY(-85deg);opacity:0}
.detail-next:hover .tw-back{transform:translateY(0) rotateY(0);opacity:1}
.detail-next h2{font-size:clamp(40px,8vw,130px);overflow-wrap:anywhere;line-height:1.08;max-width:90vw;margin-inline:auto}
.project-end-navigation{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(32px,6vw,100px);padding:clamp(36px,5vw,72px) var(--pad);border-top:1px solid var(--line)}
.project-end-navigation .detail-back{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:60px;padding:18px 30px;border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--paper);font-family:inherit;font-size:16px;font-weight:700;line-height:1.2;white-space:nowrap;text-decoration:none;transition:background .25s,color .25s}
.project-end-navigation .detail-back:hover{background:var(--paper);color:var(--ink)}
.project-end-navigation .detail-back:focus-visible{outline:2px solid #d71920;outline-offset:5px}
.project-back-arrow{display:block;flex:none;transition:transform .25s}
.detail-back:hover .project-back-arrow{transform:translateX(-4px)}
.project-end-navigation .detail-next{padding:12px 0;border:0;gap:16px;min-width:0}
.project-end-navigation .detail-next h2{font-size:clamp(34px,4.5vw,72px);max-width:100%}
.project-end-navigation .detail-next [data-talk-wave]{margin-top:0}
@media(max-width:700px){.project-end-navigation{grid-template-columns:1fr;justify-items:center;gap:34px;padding:36px var(--pad) 48px}.project-end-navigation .detail-back{min-height:56px;padding:16px 28px}.project-end-navigation .detail-next{width:100%;padding:0}.project-end-navigation .detail-next h2{font-size:clamp(30px,8vw,48px)}}
@media(prefers-reduced-motion:reduce){.project-end-navigation .detail-back,.project-back-arrow{transition:none}.detail-back:hover .project-back-arrow{transform:none}}
.room-tabs{height:auto;min-height:108px;max-height:32svh;padding:22px 28px;gap:18px 30px;flex-wrap:wrap;justify-content:center;overflow:auto;scrollbar-width:thin;box-sizing:border-box}
.room-tabs a{position:relative;display:inline-flex;align-items:baseline;flex:0 1 auto;min-width:0;max-width:100%;padding:8px 0;font-size:clamp(13px,1.1vw,18px);text-transform:uppercase;color:#b9b9b9;line-height:1.3;transition:color .4s,text-shadow .4s;white-space:normal;text-align:left}
.room-tabs a span{font-size:10px;margin-right:8px}
.room-tabs a:hover,.room-tabs a:focus-visible{color:#fff;text-shadow:0 0 8px #fff9,0 0 22px #fff6}
.room-gallery,.project-loop[id]{scroll-margin-top:105px}
.room-gallery-grid{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;gap:clamp(16px,3vw,50px)}
.room-gallery-grid>.gallery-photo.portrait{grid-column:auto / span 2;aspect-ratio:auto}
.room-gallery-grid>.gallery-photo.portrait:last-child:nth-child(3n+2){grid-column:auto / span 2}
.room-gallery-grid>.gallery-photo.portrait.pair-photo{grid-column:auto / span 3}
.room-gallery-grid>.gallery-photo.portrait.solo-photo{grid-column:2 / span 4}
.room-gallery-grid>.gallery-photo.landscape{grid-column:1/-1;aspect-ratio:auto}
.room-gallery-grid>.gallery-photo>img{width:100%;height:auto;display:block;object-fit:contain}
.project-location.london-map{width:min(100%,1120px);background:transparent;padding:12px 0}
.project-location.london-map>img{max-width:100%;height:auto;max-height:66svh;mix-blend-mode:multiply;mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 95%,transparent);mask-composite:intersect}
.map-source{position:relative;text-align:right;font-size:12px}.map-source summary{cursor:pointer;list-style:none;font-size:19px}.map-source a{display:block;padding:10px;background:#f2f1ef;white-space:nowrap}
.disciplines .we-do{font-size:clamp(60px,13vw,240px);letter-spacing:-.065em}
.disciplines .we-do{z-index:3;color:var(--ink)}
@media(prefers-reduced-motion:reduce){.disciplines .discipline-stage{height:auto;min-height:100svh;padding:100px var(--pad);gap:40px}.disciplines .we-do{position:relative;inset:auto;display:flex}.disciplines .we-do>span{transform:none!important;opacity:1!important}}
.discipline-list>a:not(.pill){font-size:clamp(30px,4.8vw,76px);line-height:1.1}
@media(max-width:700px){
 .projects-page .portfolio{padding-top:130px}.projects-page .portfolio-filters{gap:32px;margin-top:25px}
 .room-tabs{left:10px;right:10px;padding:15px 18px;gap:10px 20px;max-height:34svh;justify-content:flex-start}
 .room-tabs a{font-size:13px;padding:5px 0}
 .room-gallery-grid{gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .room-gallery-grid>.gallery-photo.portrait,.room-gallery-grid>.gallery-photo.portrait:last-child:nth-child(3n+2),.room-gallery-grid>.gallery-photo.portrait.pair-photo{grid-column:auto / span 1}
 .room-gallery-grid>.gallery-photo.portrait.solo-photo{grid-column:1/-1;width:78%;justify-self:center}
 .discipline-list>a:not(.pill){font-size:clamp(24px,7vw,42px)}
}


.gallery-editorial{padding:60px 7vw}.gallery-editorial>p{font-size:clamp(20px,2.4vw,36px);line-height:1.35;max-width:1000px;grid-column:1/-1}

/* London only: enlarge both dimensions without cropping the map. */
.project-location.london-map:not(.toronto-map){width:min(100%,1288px)}
.project-detail .project-location.london-map:not(.toronto-map)>img:not(.location-mountains):not(.bc-location){width:100%;max-width:874px;height:62.1svh;max-height:586.5px;object-fit:contain}

@media(max-width:700px){.project-detail .project-location.london-map:not(.toronto-map)>img:not(.location-mountains):not(.bc-location){height:auto;max-height:63.25svh}}

/* Toronto's wider geographic context remains legible without cropping the coast. */
.project-location.toronto-map{width:min(100%,1200px);margin-inline:auto}
.project-detail .project-location.toronto-map>img:not(.location-mountains):not(.bc-location){width:100%;max-width:1120px;height:auto;max-height:78svh;object-fit:contain}
@media(max-width:700px){.project-location.toronto-map{width:100%}.project-detail .project-location.toronto-map>img:not(.location-mountains):not(.bc-location){max-height:none}}

.room-gallery-grid>.gallery-photo.landscape:first-child{max-height:calc(100svh - 130px)}

/* Opening rhythm: readable header, photographs immediately below the filters. */
.site-intro.intro-departing{transition:opacity 1.2s cubic-bezier(.4,0,.2,1)}
.intro-departing .intro-slogan,.intro-departing .intro-rule,.intro-departing .intro-descriptor{transition:opacity .65s ease}
.projects-page .portfolio{padding-top:112px}
.projects-page .portfolio-top h1{font-size:clamp(32px,3.6vw,54px)}
.projects-page .portfolio-filters{margin:18px 0 20px;padding-bottom:12px}
.projects-page .portfolio-image,.projects-page .portfolio-card:first-child .portfolio-image{min-height:180px}
@media(max-width:700px){.projects-page .portfolio{padding-top:100px}.projects-page .portfolio-filters{margin:14px 0 14px}.projects-page .portfolio-top h1{font-size:32px}}

/* Home means the living scene; the landing point is outside the sticky stage. */
.home-scene-anchor{position:absolute;top:calc(100% - 100svh);left:0;width:1px;height:1px;pointer-events:none}
/* Independent touch targets keep menu, centered wordmark and language apart. */
@media(max-width:700px),(pointer:coarse) and (max-width:1100px){
 .header,.project-detail .header{display:grid;grid-template-columns:64px minmax(0,1fr) 64px;column-gap:8px;height:calc(78px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(12px,env(safe-area-inset-right,0px)) 0 max(12px,env(safe-area-inset-left,0px));align-items:center}
 .header nav{display:none}
 .header .brand,.project-detail .header .brand{position:static;transform:none;grid-column:2;grid-row:1;justify-self:center;align-items:center;text-align:center;max-width:100%;font-size:clamp(23px,6.9vw,29px);white-space:nowrap}
 .header .menu-toggle,.project-detail .header .menu-toggle{position:static;grid-column:1;grid-row:1;order:0;display:flex;align-items:center;justify-content:center;width:64px;min-height:48px;height:auto;padding:0;margin:0;background:transparent;border-radius:0;color:inherit;font-size:14px;white-space:nowrap}
 .header .menu-toggle::before,.project-detail .header .menu-toggle::before{content:none}
 .header .language-menu{position:relative;grid-column:3;grid-row:1;top:auto;right:auto;justify-self:end;width:64px;font-size:14px}
 .header .language-menu summary{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:48px;width:64px;padding:0;text-align:center}
 .header .language-options{top:calc(100% + 8px);right:0}
 .header .mobile-return{display:none}
}

/* Navigation rows must stay stacked even after the letter-wave enhancement. */
.mobile-menu:not([hidden]){display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-top:calc(120px + env(safe-area-inset-top,0px));padding-bottom:max(40px,env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain}
.mobile-menu:not([hidden])>a,.mobile-menu:not([hidden])>a.talk-wave{display:flex;flex:none;width:max-content;max-width:100%;font-size:clamp(28px,7.5vw,54px);line-height:1.35;margin:0;letter-spacing:-.04em}
.mobile-menu:not([hidden])>a.private-link{font-size:clamp(23px,6vw,42px);margin:5px 0}
.menu-open .header{background:#242523;mix-blend-mode:normal;color:#fff}

/* The opening owns vertical touch gestures in both directions. */
@media(pointer:coarse) and (prefers-reduced-motion:no-preference){.home-hero .build-stage{touch-action:pan-x pinch-zoom}}

.city-scroll-cue{display:flex;align-items:center;justify-content:center;gap:12px;width:max-content;max-width:100%;margin:24px auto;color:inherit;font-size:11px;font-weight:500;letter-spacing:.13em;text-decoration:none;padding:10px 15px;border:1px solid #7774;border-radius:999px}
.city-scroll-cue svg{width:22px;height:22px;animation:city-scroll-nudge 2.4s ease-in-out infinite}
.city-scroll-cue:hover{border-color:#d71920}
.world-scroll-cue{position:absolute;z-index:8;bottom:14px;left:50%;transform:translateX(-50%);margin:0;background:#f2f1efdb}
@keyframes city-scroll-nudge{0%,100%{transform:translateY(-2px);opacity:.45}55%{transform:translateY(4px);opacity:1}}
@media(max-width:700px){.world-scroll-cue{bottom:8px;padding:6px 12px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.city-scroll-cue svg{animation:none}}

@media(max-width:900px){.mobile-menu:not([hidden])>a[href="/#representatives"]{display:none!important}.services-faq{touch-action:pan-y;scroll-snap-align:none}}

/* Project reading: native scrolling and complete photographs at every size. */
html.native-project-scroll{scroll-behavior:auto;scroll-padding-top:calc(var(--project-header-height,86px) + 16px)}
.project-detail{--project-media-height:calc(100svh - var(--project-header-height,86px) - 32px)}
.project-detail .room-gallery{scroll-margin-top:calc(var(--project-header-height,86px) + 16px)}
.project-detail .room-gallery-grid{align-items:center}
.project-detail .room-gallery-grid>.gallery-photo{max-height:none;aspect-ratio:auto;background:transparent;box-shadow:none}
.project-detail .gallery-photo>img,.project-detail .gallery-photo>.photo-wipe>img,.project-detail .detail-wide>img,.project-detail .detail-wide>.photo-wipe>img{width:100%;height:auto;max-height:var(--project-media-height);object-fit:contain;object-position:center;transform:none!important}
.project-detail .gallery-photo>.photo-wipe{height:auto;background:transparent;box-shadow:none}
.project-detail .room-showcase{height:var(--project-media-height);min-height:0;margin:24px 0}
.project-detail .room-stage{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;padding:16px;background:var(--paper)}
.project-detail .room-slides{position:relative;inset:auto;grid-row:2;min-height:0;background:transparent}
.project-detail .room-topline{position:static;grid-row:1;color:var(--ink);font-size:12px}
.project-detail .room-slide{box-shadow:none;transform:none!important;clip-path:none}
.project-detail .room-slide>img{height:100%;width:100%;object-fit:contain;object-position:center}
.project-detail .room-slide::after{display:none}
.project-detail .room-tabs{position:relative;inset:auto;grid-row:3;min-height:0;max-height:28svh;width:100%;padding:12px 16px;margin:0;gap:6px 24px;background:transparent;overscroll-behavior:contain}
.project-detail .room-tabs a{color:var(--ink);padding:8px 0}
.project-detail .room-tabs a:hover,.project-detail .room-tabs a:focus-visible{color:#a60e17;text-shadow:none}
.project-detail .room-continue{display:none}
.project-detail .project-loop{height:auto;min-height:0;display:block}
.project-detail .project-loop video{position:relative;top:auto;width:100%;height:auto;max-height:var(--project-media-height);object-fit:contain}
@media(max-width:700px){.project-detail .room-stage{padding:10px;gap:8px}.project-detail .room-tabs{padding:8px 2px;gap:2px 20px}.project-detail .room-tabs a{font-size:12px}.project-detail .room-gallery{padding-block:32px}}
.project-detail:not(.menu-open) .header.ink{background:var(--paper)}
.project-detail.menu-open .header .menu-toggle{background:transparent}
/* A narrow presentation trim keeps legacy footer stamps outside the displayed
   print. The original media stays intact; room geometry is never regenerated. */
img:is([src*="/butterfly-art-wall.webp"],[src*="/butterfly-bath-"],[src*="/butterfly-bedroom.webp"],[src*="/butterfly-guest-bath.webp"],[src*="/butterfly-kitchen-"],[src*="/butterfly-main-sofa.webp"],[src*="/butterfly-sculpture-detail.webp"],[src*="/butterfly-shower.webp"]){clip-path:inset(0 0 2.8% 0)!important}
.footer-map-credit{font-size:11px;line-height:1.5;color:#bcbab6;margin-top:16px}.footer-map-credit a{text-decoration:underline;text-underline-offset:3px}

/* Project covers are one complete photograph with a separate caption. */
.project-detail .detail-opening{height:100svh;min-height:0}
.project-detail .detail-stage{position:relative;height:100%;background:var(--paper)}
.project-detail .detail-frame{inset:0!important;display:flex;flex-direction:column;gap:14px;padding:calc(var(--project-header-height,86px) + 12px) 16px 20px;box-shadow:none;will-change:auto}
.project-detail .detail-frame>img{flex:1 1 0;min-height:0;width:100%;height:0;object-fit:contain;object-position:center;animation:none}
.project-detail .detail-gradient{display:none}
.project-detail .detail-caption{position:static;flex:none;color:var(--ink);opacity:1!important;padding:0 8px;gap:18px}
.project-detail .detail-caption h1{font-size:clamp(22px,2.2vw,34px);line-height:1.15}
.project-detail .detail-caption p{font-size:clamp(12px,1.2vw,17px);line-height:1.4}
@media(max-width:700px){.project-detail .detail-frame{padding-inline:10px;gap:10px;padding-bottom:16px}.project-detail .detail-caption{padding:0 4px;gap:12px}.project-detail .detail-caption h1{font-size:22px}.project-detail .detail-caption p{font-size:12px}}

/* Dark chapter headers keep their own readable surface over moving content. */
body.agency-dark .header{background:#111111ed!important;backdrop-filter:blur(10px)}

/* Farsight Projects — direct business contact */
.footer-phone{white-space:nowrap;display:inline-flex;align-items:center;min-height:44px;font-variant-numeric:tabular-nums}
.contact-details{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(250px,.9fr) minmax(350px,1.2fr);align-items:end;column-gap:clamp(22px,2.6vw,56px);padding-bottom:9px}
.contact-details>span{align-self:end;padding-bottom:.3em;line-height:1.3}
.contact-details .contact-phone{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;margin:0;text-decoration:none;color:inherit}
.contact-phone>span{font-size:12px;letter-spacing:.12em;line-height:1.4;color:#585858}
.contact-phone>strong{font-size:clamp(25px,2.2vw,39px);font-weight:550;line-height:1.18;letter-spacing:-.035em;font-variant-numeric:tabular-nums;white-space:nowrap;transition:color .2s ease}
.contact-details .contact-email{justify-self:end;align-self:end;font-size:clamp(22px,2.2vw,38px);line-height:1.18;white-space:nowrap}
.contact-phone:hover>strong{color:#d71920}
.contact-phone:focus-visible,.footer-phone:focus-visible{outline:2px solid #d71920;outline-offset:6px;border-radius:2px}
@media(max-width:1200px){
 .contact-details{grid-template-columns:minmax(220px,1fr) minmax(0,1.45fr);row-gap:22px}
 .contact-details>span{grid-column:1/-1;padding-bottom:0}
}
@media(max-width:800px){
 .contact-details{grid-template-columns:minmax(0,1fr);row-gap:18px}
 .contact-details>span{grid-column:auto}
 .contact-details .contact-email{justify-self:start;white-space:normal;overflow-wrap:anywhere;font-size:clamp(20px,4vw,27px)}
}
@media(max-width:700px){
 .contact-details{margin-top:42px}
 .contact-details .contact-email{margin-top:0;width:auto;max-width:100%}
 .contact-phone>strong{font-size:clamp(24px,6.5vw,32px)}
}
