:root{--bg:#f5f5f3;--ink:#111;--muted:#747471;--line:#d7d7d2;--pad:clamp(24px,3.4vw,64px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400;letter-spacing:-.05em}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #777;outline-offset:6px}.wrap{padding-left:var(--pad);padding-right:var(--pad)}.header{height:98px;display:flex;align-items:center;justify-content:space-between;padding:20px var(--pad);position:sticky;top:0;background:#f5f5f3f5;backdrop-filter:blur(16px);z-index:20;border-bottom:1px solid #1111110b}.brand{width:118px;flex-shrink:0}.brand img{width:100%;height:auto}.desktop-nav{display:flex;gap:36px;margin-left:auto;margin-right:52px;font-weight:600}.desktop-nav a:hover{text-decoration:underline;text-underline-offset:8px}.menu-toggle,.menu-close{border:0;background:none;padding:8px 0}.menu-toggle{display:flex;gap:16px;align-items:center}.menu-toggle span{font-size:28px;line-height:1}.hero{padding-top:38px}.hero-intro{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px}h1{font-size:clamp(40px,4.9vw,90px);line-height:1.04}h1 span{color:#6d6d68}.hero-intro p{font-size:15px;line-height:1.6;padding-bottom:4px;min-width:240px}.hero-film{height:clamp(300px,48svh,650px);position:relative;overflow:hidden;border-radius:0;background:#141716}.hero-film video{width:100%;height:100%;object-fit:cover}.film-overlay{position:absolute;inset:auto 28px 24px;display:flex;justify-content:space-between;align-items:center;color:white;text-shadow:0 1px 20px #000}.film-overlay:before{content:'';position:absolute;inset:-80px -28px -24px;background:linear-gradient(transparent,#0008);z-index:0;pointer-events:none}.film-overlay>*{position:relative}.film-overlay>span{font-size:11px;letter-spacing:.12em}.film-overlay a{display:flex;gap:18px;align-items:center;font-size:15px}.film-overlay img{width:32px;filter:none}.film-tools{display:flex;gap:28px;padding:18px 0 0;font-size:13px}.film-tools button{border:0;background:none;padding:0}.film-tools>span{margin-left:auto;color:var(--muted)}.clients{padding-top:48px;padding-bottom:36px}.section-top{font-size:13px;display:flex;justify-content:space-between;gap:24px;margin-bottom:48px}.section-top>span+span{color:var(--muted)}.clients .section-top{margin-bottom:20px}.client-logos{display:grid;grid-template-columns:repeat(6,1fr);gap:35px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 10px}.client-logos img{height:42px;width:100%;object-fit:contain;filter:grayscale(1);opacity:.6}.section{padding-top:100px;padding-bottom:80px}.section-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:end;margin-bottom:44px}h2{font-size:clamp(42px,5vw,84px);line-height:1.05}.section-heading>p{max-width:420px;color:var(--muted);font-size:18px;line-height:1.6;justify-self:end}.tour-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 20px}.tour-card{display:block}.tour-picture{position:relative;overflow:hidden;border-radius:0;aspect-ratio:1.5;background:#deded9}.tour-picture>img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.65,.3,1)}.tour-card:hover .tour-picture>img{transform:scale(1.045)}.tour-picture:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#0008)}.tour-badge{position:absolute;left:16px;top:16px;color:white;background:#131a1b70;backdrop-filter:blur(10px);border:1px solid #ffffff50;padding:6px 12px;font-size:12px;border-radius:0;z-index:1}.tour-enter{position:absolute;right:18px;bottom:18px;z-index:1;display:flex;gap:10px;align-items:center;color:white;font-size:13px}.tour-enter img{width:24px;filter:none}.tour-caption{padding:14px 2px 0;display:flex;justify-content:space-between;gap:12px;align-items:baseline}.tour-caption h3{font-size:22px;letter-spacing:-.025em}.tour-caption p{font-size:11px;color:var(--muted)}.tour-card:first-child{grid-column:span 2;grid-row:span 2}.tour-card:first-child .tour-picture{aspect-ratio:auto;height:calc(100% - 45px);min-height:380px}.tour-card:first-child .tour-caption h3{font-size:27px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:40px 0 28px}.filters button{border:1px solid var(--line);background:transparent;border-radius:0;padding:12px 20px;font-size:14px}.filters button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.filters sup{font-size:10px;opacity:.5;margin-left:8px}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.work-card{position:relative;display:block;width:100%;border:0;padding:0;overflow:hidden;aspect-ratio:1.22;border-radius:0;background:#deded9;text-align:left}.work-card>img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.work-card:hover>img{transform:scale(1.04)}.work-card:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#0007)}.work-card>span{position:absolute;left:18px;bottom:17px;color:#fff;z-index:1;font-size:13px}.work-card>img.mark{position:absolute;bottom:17px;right:18px;width:23px;height:23px;object-fit:contain;filter:none;z-index:1}.play-symbol{font-size:27px!important;left:50%!important;top:50%;bottom:auto!important;transform:translate(-50%,-50%);text-shadow:0 1px 14px #000}.more{width:100%;display:flex;justify-content:space-between;border:1px solid var(--line);background:transparent;padding:20px 24px;border-radius:0;margin-top:24px;text-align:left}.more:hover{background:#e9e9e4}.more span{font-size:22px;line-height:1}.more[hidden]{display:none}.services{background:#080808;color:#f5f5f3;border-radius:0;margin:30px 12px 0;padding:80px max(28px,calc(var(--pad) - 12px));--muted:#a6a6a0;--line:#3b3b38}.service-layout{display:grid;grid-template-columns:1fr 1.7fr;gap:9%}.service-intro{position:sticky;top:130px;align-self:start}.service-intro p{font-size:16px;line-height:1.7;color:var(--muted);max-width:280px;margin:28px 0}.service-intro>a{font-size:14px;border-bottom:1px solid #777;padding-bottom:7px}.service-list details{padding:30px 0;border-top:1px dashed var(--line)}.service-list summary{list-style:none;display:grid;grid-template-columns:25px 1fr 25px;gap:22px;cursor:pointer}.service-list summary::-webkit-details-marker{display:none}.service-list summary>span{font-size:12px;color:var(--muted);margin-top:8px}.service-list h3{font-size:clamp(25px,2.7vw,42px);line-height:1.15;letter-spacing:-.035em}.service-list b{font-weight:400;font-size:24px;line-height:1.3}.service-list details[open] b{transform:rotate(45deg)}.service-list details>p{color:var(--muted);font-size:17px;line-height:1.7;margin:25px 40px 24px 47px}.service-list details>a{display:inline-block;margin-left:47px;font-size:14px}.about .section-heading{align-items:start}.about-copy{font-size:18px;line-height:1.7}.about-copy>p+p{margin-top:25px;color:var(--muted)}.muted{color:var(--muted)}.about-numbers{display:flex;gap:60px;margin-top:38px}.about-numbers>div{display:flex;flex-direction:column}.about-numbers strong{font-size:48px;font-weight:400;letter-spacing:-.05em}.about-numbers span{font-size:12px;color:var(--muted)}.about-image{position:relative;overflow:hidden;border-radius:0;height:420px;margin-top:60px}.about-image img{width:100%;height:100%;object-fit:cover}.about-image figcaption{position:absolute;bottom:25px;left:28px;font-size:14px;color:white;text-shadow:0 1px 10px #000}.contact{margin:20px 12px 0;border-radius:0;background:#111;color:var(--bg);padding:70px max(28px,calc(var(--pad) - 12px));--muted:#92928b}.contact-heading{display:flex;align-items:center;justify-content:space-between;gap:40px}.contact-heading h2{font-size:clamp(46px,6.5vw,110px)}.contact-icon img{width:120px;filter:none}.contact-bottom{border-top:1px solid #444;margin-top:55px;padding-top:28px;display:flex;justify-content:space-between;gap:30px;align-items:start}.email{font-size:clamp(22px,2.4vw,40px);letter-spacing:-.04em}.contact-bottom p{color:var(--muted);font-size:14px}.brief-link{font-size:14px;padding-top:8px}.architecture-link{display:grid;grid-template-columns:1fr 1.5fr 40px;align-items:center;padding-top:65px;padding-bottom:65px;border-bottom:1px solid var(--line);gap:20px}.architecture-link>span:first-child{font-size:13px;color:var(--muted)}.architecture-link strong{font-weight:400;font-size:clamp(32px,5vw,72px);letter-spacing:-.05em}.architecture-link>span:last-child{font-size:32px}footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:36px;padding-bottom:36px;font-size:12px;color:var(--muted)}footer .brand{width:90px}.menu,.viewer{border:0;max-width:none;max-height:none;background:var(--bg);color:var(--ink);padding:0}.menu::backdrop,.viewer::backdrop{background:#000c;backdrop-filter:blur(8px)}.menu{width:100%;height:100svh;padding:35px var(--pad)}.menu-close{display:block;margin-left:auto}.menu nav{margin:40px auto;max-width:900px}.menu nav a{display:flex;justify-content:space-between;font-size:clamp(34px,5.5vw,80px);letter-spacing:-.045em;line-height:1.5;border-bottom:1px solid var(--line)}.menu small{font-size:14px;letter-spacing:0;align-self:center;color:var(--muted)}.menu-mail{display:block;max-width:900px;margin:auto}.viewer{width:100%;height:100svh;background:#101010;color:#fff;padding:16px 24px}.viewer-top,.viewer-bottom{display:flex;justify-content:space-between;align-items:center;height:48px;font-size:13px;gap:20px}.viewer button{background:none;border:0;color:#fff;padding:10px;font:inherit}.viewer-bottom{justify-content:center;gap:30px}.viewer-bottom button{font-size:28px}#viewer-stage{height:calc(100% - 96px);display:flex;justify-content:center;align-items:center}#viewer-stage img,#viewer-stage video{max-width:100%;max-height:100%;object-fit:contain}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:15px}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1800px){.wrap,.header{padding-left:max(var(--pad),calc((100vw - 1740px)/2));padding-right:max(var(--pad),calc((100vw - 1740px)/2))}}
@media(max-width:1000px){.desktop-nav{gap:20px;margin-right:32px}.hero-intro p{font-size:13px;min-width:210px}.section-heading{gap:40px}.tour-caption{display:block}.tour-caption p{margin-top:4px}.tour-card:first-child .tour-picture{height:calc(100% - 68px)}.contact-bottom{flex-wrap:wrap}.tour-grid{gap:26px 16px}.about-numbers{gap:25px}}
@media(max-width:700px){html{scroll-padding-top:90px}.header{height:78px}.brand{width:100px}.desktop-nav{display:none}.hero{padding-top:24px}.hero-intro{display:block;margin-bottom:26px}h1{font-size:clamp(32px,7.9vw,54px);line-height:1.08;letter-spacing:-.05em}.hero-intro p{margin-top:20px;font-size:14px}.hero-intro p br{display:none}.hero-film{height:300px;border-radius:0}.film-overlay{inset:auto 16px 18px}.film-overlay>span{font-size:8px}.film-overlay a{font-size:12px;gap:8px}.film-overlay img{width:24px}.film-tools{font-size:12px;gap:22px}.film-tools>span{display:none}.clients{padding-top:36px;padding-bottom:10px}.section-top{font-size:12px;margin-bottom:28px}.section-top>span+span{display:none}.client-logos{grid-template-columns:repeat(3,1fr);gap:25px;padding:25px 0}.client-logos img{height:32px}.section{padding-top:64px;padding-bottom:40px}.section-heading{display:block;margin-bottom:30px}h2{font-size:42px}.section-heading>p{font-size:16px;max-width:none;margin-top:24px}.tour-grid{grid-template-columns:repeat(2,1fr);gap:26px 12px}.tour-card:first-child{grid-column:span 2;grid-row:auto}.tour-card:first-child .tour-picture{height:auto;aspect-ratio:1.45;min-height:0}.tour-picture{border-radius:0;aspect-ratio:1.1}.tour-caption h3,.tour-card:first-child .tour-caption h3{font-size:20px}.tour-caption p{font-size:10px}.tour-badge{top:10px;left:10px;font-size:10px;padding:4px 8px}.tour-enter{right:12px;bottom:12px;font-size:0}.tour-enter img{width:24px}.tour-card:first-child .tour-enter{font-size:12px}.filters{gap:8px;margin-top:28px}.filters button{font-size:12px;padding:10px 14px}.filters sup{margin-left:4px}.work-grid{grid-template-columns:repeat(2,1fr);gap:12px}.work-card{aspect-ratio:.93;border-radius:0}.work-card>span{left:12px;bottom:12px;font-size:10px;max-width:100px}.work-card>img.mark{right:10px;bottom:12px;width:18px;height:18px}.more{font-size:14px;padding:18px}.services{margin:20px 8px 0;padding:45px 24px;border-radius:0}.service-layout{display:block}.service-intro{position:static;margin-bottom:44px}.service-intro p{max-width:none}.service-list summary{grid-template-columns:18px 1fr 20px;gap:12px}.service-list h3{font-size:27px}.service-list details>p{font-size:15px;margin:20px 0 20px 30px}.service-list details>a{margin-left:30px}.about-copy{font-size:16px;margin-top:28px}.about-numbers{gap:40px}.about-numbers strong{font-size:42px}.about-numbers span{max-width:125px}.about-image{height:280px;margin-top:32px;border-radius:0}.about-image figcaption{font-size:11px;left:18px}.contact{padding:40px 24px;margin:20px 8px 0;border-radius:0}.contact-heading h2{font-size:39px}.contact-icon{display:none}.contact-bottom{display:block;margin-top:32px}.contact-bottom p{margin:20px 0}.brief-link{display:inline-block;border-bottom:1px solid #777;padding-bottom:6px}.architecture-link{grid-template-columns:1fr 30px;padding-top:40px;padding-bottom:40px;gap:10px}.architecture-link>span:first-child{grid-column:1/-1}.architecture-link strong{font-size:42px}footer{flex-wrap:wrap;gap:24px}footer>span:first-of-type{display:none}footer>.brand{margin-right:auto}footer>a:last-child{width:100%;text-align:right}.viewer{padding:12px}.viewer-top{font-size:11px}.menu nav{margin-top:65px}.menu nav a{font-size:38px;line-height:1.8}.menu-mail{margin-top:35px}}
html[data-motion="reduced"]{scroll-behavior:auto}html[data-motion="reduced"] *,html[data-motion="reduced"] *:before,html[data-motion="reduced"] *:after{transition:none!important;animation:none!important}

/* Featured tour stays panoramic, with architecture in the foreground. */
@media(min-width:701px){.tour-card:first-child{grid-row:auto}.tour-card:first-child .tour-picture{height:auto;min-height:0;aspect-ratio:3.05}}
.tour-card:first-child .tour-picture>img{object-position:center 80%}

/* One spacing rhythm; sharp corners throughout. */
:root{--block-space:36px}
.section{padding-top:var(--block-space);padding-bottom:var(--block-space)}
.clients{padding-top:var(--block-space);padding-bottom:var(--block-space)}
.services,.contact{margin-top:0}
.client-logos img{filter:brightness(0);opacity:.78}
.tour-card:nth-child(4) .tour-picture>img{object-position:center 80%}

.tour-picture>img{object-position:center 75%}

/* Restrained, staggered entrances tied to entering the viewport. */
@media all{
 .scroll-reveal{opacity:0;transform:translate3d(0,36px,0);transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .95s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
 .scroll-reveal.is-revealed,.scroll-reveal:focus-within{opacity:1;transform:translate3d(0,0,0)}
 .tour-card.scroll-reveal .tour-picture,.work-card.scroll-reveal,.about-image.scroll-reveal{clip-path:inset(0 0 14% 0);transition:clip-path 1.05s cubic-bezier(.22,1,.36,1),opacity .75s cubic-bezier(.22,1,.36,1),transform .95s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
 .tour-card.scroll-reveal.is-revealed .tour-picture,.tour-card.scroll-reveal:focus-within .tour-picture,.work-card.scroll-reveal.is-revealed,.work-card.scroll-reveal:focus-within,.about-image.scroll-reveal.is-revealed{clip-path:inset(0)}
 .tour-card.scroll-reveal:not(.is-revealed) .tour-picture>img{transform:scale(1.055)}
}
html[data-motion="reduced"] .scroll-reveal{opacity:1;transform:none;clip-path:none}

.contact-icon{flex-shrink:0;display:block;width:150px;height:150px}.contact-icon canvas{display:block;width:100%;height:100%}@media(max-width:700px){.contact-icon{display:none}}

footer.wrap{display:grid;grid-template-columns:1fr auto 1fr}footer.wrap .copyright{display:block;text-align:center}footer.wrap>a:last-child{justify-self:end;width:auto}footer.wrap .brand{margin:0}@media(max-width:480px){footer.wrap{column-gap:12px;font-size:10px}footer.wrap .brand{width:76px}}

@font-face{font-family:Onest;src:url('fonts/Onest-Variable.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
body{font-family:Onest,Arial,sans-serif}button,input,textarea,select{font:inherit}.desktop-nav{font-weight:700}.hero-intro p{max-width:320px;min-width:0}.hero-film video{cursor:pointer}.hero-film video:focus-visible{outline:2px solid white;outline-offset:-6px}
.contact{position:relative;overflow:hidden;transition:min-height .65s cubic-bezier(.22,1,.36,1)}
.contact-main{width:100%;transition:width .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);position:relative}
.brief-link{border:0;background:none;color:inherit;cursor:pointer;text-align:left;padding:8px 0;font-size:14px;white-space:nowrap}
.contact-panel{position:absolute;top:36px;bottom:36px;right:max(28px,calc(var(--pad) - 12px));width:calc(33.333% - 34px);transform:translateX(calc(100% + 80px));visibility:hidden;opacity:0;transition:transform .7s cubic-bezier(.22,1,.36,1),opacity .5s,visibility 0s .7s}
.contact.is-open{min-height:600px}.contact.is-open .contact-main{width:66.666%;transform:translateX(-8px);padding-right:32px}.contact.is-open .contact-panel{transform:translateX(0);visibility:visible;opacity:1;transition-delay:0s}.contact.is-open .contact-heading{gap:18px}.contact.is-open .contact-heading h2{font-size:clamp(36px,4vw,64px)}.contact.is-open .contact-icon{width:90px;height:90px}.contact.is-open .contact-bottom{display:flex;flex-direction:column;gap:18px}.contact.is-open .email{font-size:clamp(20px,2.3vw,34px)}
.form-heading{display:flex;gap:12px;align-items:start;justify-content:space-between;margin-bottom:24px}.form-heading h3{font-size:25px;line-height:1.2;letter-spacing:-.03em}.form-close{border:0;background:none;color:inherit;font-size:28px;line-height:1;padding:0;min-width:28px;cursor:pointer}
#contact-form{display:grid;gap:21px}#contact-form label{display:grid;gap:8px;font-size:12px;color:#a6a6a0}#contact-form input,#contact-form textarea{width:100%;min-width:0;border:0;border-bottom:1px solid #656560;border-radius:0;background:none;color:#fff;padding:9px 0;font-size:15px;outline-offset:4px}#contact-form textarea{resize:vertical;min-height:85px;max-height:160px}.form-send{background:#f5f5f3;color:#111;border:0;padding:14px 16px;display:block;width:100%;font-size:14px;text-align:left;cursor:pointer}.form-send:disabled{opacity:.5;cursor:wait}.form-feedback{font-size:12px;line-height:1.5;color:#b5b5ae}.form-trap{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:700px){.contact.is-open{min-height:0}.contact.is-open .contact-main{width:100%;transform:none;padding:0}.contact.is-open .contact-heading h2{font-size:39px}.contact-panel{position:relative;top:auto;bottom:auto;right:auto;width:100%;max-height:0;transform:translateY(20px);margin:0;transition:max-height .65s,transform .65s,opacity .5s,visibility 0s .65s}.contact.is-open .contact-panel{max-height:760px;margin-top:30px;padding-top:28px;border-top:1px solid #444;transform:translateY(0)}.hero-intro p{max-width:none}}
html[data-motion="reduced"] :is(.contact,.contact-main,.contact-panel){transition:none!important}

.hero-gallery{position:absolute;inset:0;z-index:1;cursor:pointer;touch-action:pan-y}.hero-gallery canvas{display:block;width:100%;height:100%}.gallery-active>video{visibility:hidden}.hero-gallery:focus-visible{outline:2px solid #fff;outline-offset:-6px}#contact-form input:focus-visible,#contact-form textarea:focus-visible{outline:1px solid white;outline-offset:4px;border-radius:0}

/* Full-bleed film and dark sections, with content aligned to the page gutters. */
.hero.wrap{padding-left:0;padding-right:0}.hero-intro{padding-left:var(--pad);padding-right:var(--pad)}.hero-film{width:100%;margin-left:0;margin-right:0}
.services,.contact{margin-left:0;margin-right:0;padding-left:var(--pad);padding-right:var(--pad)}.contact-panel{right:var(--pad);width:calc(33.333% - var(--pad))}
@media(max-width:700px){.services,.contact{margin-left:0;margin-right:0;padding-left:24px;padding-right:24px}.contact-panel{right:auto;width:100%}}

/* Header mark and a balanced, fully occupied tour grid. */
.header-brick{display:block;width:64px;height:64px;margin-left:24px;margin-right:24px;flex-shrink:0}.header-brick canvas{display:block;width:100%;height:100%}
@media(max-width:700px){.header-brick{width:44px;height:44px;margin-left:18px;margin-right:auto}.menu-toggle{margin-left:auto}}
.client-logos{grid-template-columns:repeat(8,minmax(0,1fr));gap:24px}.client-logos img{width:100%;object-fit:contain;max-height:48px}
@media(max-width:1000px){.client-logos{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:701px){.tour-grid{container-type:inline-size;grid-template-columns:repeat(3,minmax(0,1fr))}.tour-card:last-of-type{grid-column:span 2}.tour-grid .tour-card .tour-picture{height:calc((100cqw - 40px)/4.5);min-height:0;aspect-ratio:auto}}
@media(max-width:700px){.tour-card:last-of-type{grid-column:span 2}.tour-card:last-of-type .tour-picture{aspect-ratio:1.45}}
/* Copy sits in opposite corners of the cinematic frame. */
.hero.wrap{padding-top:0;position:relative}.hero-intro{position:absolute;inset:0;z-index:3;pointer-events:none;margin:0;padding:0!important;display:block;color:#fff}
.hero-intro h1{position:absolute;left:var(--pad);bottom:32px;font-size:clamp(32px,4.5vw,76px);line-height:1.05;max-width:78%;text-shadow:0 2px 28px #0009}.hero-intro h1 span{color:#dddeda}
.hero-intro p{position:absolute;top:30px;right:var(--pad);text-align:right;width:320px;min-width:0;font-size:15px;line-height:1.55;text-shadow:0 1px 12px #000}
.hero-film:after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(0deg,#000b,transparent 42%),linear-gradient(210deg,#0008,transparent 40%)}
@media(max-width:700px){.hero-film{height:440px}.hero-intro h1{font-size:clamp(28px,7.5vw,48px);max-width:calc(100% - 48px);bottom:26px}.hero-intro p{font-size:12px;top:24px;width:245px;margin:0}}
.team-collage{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:48px;overflow:hidden}.team-collage img{width:100%;height:clamp(190px,22vw,360px);object-fit:cover;object-position:center 32%;display:block;filter:grayscale(1)}
@media(max-width:700px){.team-collage{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:28px}.team-collage img{height:clamp(140px,42vw,230px)}}
.architecture-preview{position:fixed;inset:0;width:100%;height:100dvh;border:0;background:var(--bg);z-index:100;transform:translateX(100%);pointer-events:none;visibility:hidden}.architecture-moving{overflow:hidden}.architecture-moving .architecture-preview{visibility:visible}

.team-collage img:last-child{grid-column:span 3;object-position:center 25%}

.portfolio-sections{display:flex;flex-wrap:wrap;gap:14px 26px;margin-top:28px;font-size:13px;color:var(--muted)}.portfolio-sections a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:5px}

/* Global white background, quiet grey brand field; never intercepts input. */
.ws-ripple-field{position:fixed;inset:0;z-index:0;pointer-events:none;display:block}body>main,body>footer{position:relative;z-index:1}
@media(max-width:700px){
 .tour-grid{container-type:inline-size;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
 .tour-grid .tour-card .tour-picture{height:calc((100cqw - 12px)/2/1.1);min-height:0;aspect-ratio:auto}
 .tour-grid .tour-card:first-child .tour-picture,.tour-grid .tour-card:last-of-type .tour-picture{height:calc(100cqw/1.45)}
 .tour-grid .tour-card.scroll-reveal{transform:none;transition:opacity .55s ease;transition-delay:0ms!important}
 .tour-grid .tour-card.scroll-reveal .tour-picture{clip-path:none;transform:none;transition:none}
 .tour-grid .tour-card.scroll-reveal .tour-picture>img{transform:none}
}

@media(max-width:700px){.tour-grid .tour-caption h3{font-size:clamp(16px,4.5vw,20px);overflow-wrap:anywhere;letter-spacing:-.035em}}

@media all{
 .scroll-reveal.reveal-from-top:not(.is-revealed){transform:translateY(-36px)}
 .tour-card.scroll-reveal.reveal-from-top:not(.is-revealed) .tour-picture,.work-card.scroll-reveal.reveal-from-top:not(.is-revealed),.about-image.scroll-reveal.reveal-from-top:not(.is-revealed){clip-path:inset(14% 0 0 0)}
}
@media(max-width:700px){.tour-grid .tour-card.scroll-reveal.reveal-from-top:not(.is-revealed){transform:none}.tour-grid .tour-card.scroll-reveal.reveal-from-top:not(.is-revealed) .tour-picture{clip-path:none}}



/* Shared text edge: mirrors .wrap's centered 1740 px content area at every width. */
:root{--content-inset:max(var(--pad),calc((100vw - 1740px)/2))}
.hero-intro h1{left:var(--content-inset);max-width:min(78%,calc(100% - 2*var(--content-inset)))}
.hero-intro p{right:var(--content-inset);max-width:calc(100% - 2*var(--content-inset))}
@media(max-width:700px){.hero-intro h1{max-width:calc(100% - 2*var(--content-inset))}}

.gallery-enter{position:absolute;right:var(--content-inset);bottom:34px;z-index:4;display:flex;align-items:center;gap:22px;max-width:300px;padding:13px 16px;border:1px solid #ffffff80;background:#10131585;backdrop-filter:blur(12px);color:#fff;font-size:14px;text-align:left}
.gallery-enter:hover{background:#ffffff20}.gallery-enter:disabled{opacity:.6}
body.gallery-walking{overflow:hidden}.gallery-walking .hero-film.is-walking{position:fixed;inset:0;width:100%;height:100dvh;max-height:none;z-index:100;background:#05080b}.hero-film.is-walking:after{display:none}
.is-walking .hero-gallery{touch-action:none;cursor:grab}.is-walking .hero-gallery:active{cursor:grabbing}
.gallery-walk-ui{display:none;position:absolute;inset:0;z-index:5;pointer-events:none;color:#fff}.is-walking .gallery-walk-ui{display:block}
.gallery-walk-ui button{pointer-events:auto;min-width:46px;min-height:46px;border:1px solid #ffffff66;background:#0b1016b8;backdrop-filter:blur(10px);color:white;padding:10px 16px}
.gallery-walk-top{position:absolute;top:max(20px,env(safe-area-inset-top));left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;gap:16px}.gallery-walk-top strong{font-weight:400;font-size:17px}.gallery-walk-bottom{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:24px;right:24px;display:flex;justify-content:space-between;align-items:end;gap:20px}.gallery-walk-help{font-size:13px;color:#d3d7d9;max-width:330px;text-shadow:0 1px 6px black}.gallery-walk-pad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,48px);gap:5px}.gallery-walk-pad button{padding:0;font-size:23px;touch-action:none;user-select:none}.gallery-walk-pad [data-move=forward]{grid-column:2}.gallery-walk-pad [data-move=left]{grid-column:1;grid-row:2}.gallery-walk-pad [data-move=back]{grid-column:2;grid-row:2}.gallery-walk-pad [data-move=right]{grid-column:3;grid-row:2}.gallery-walk-pad button.is-held{background:#ffffff45}
@media(max-width:1000px){.gallery-enter{bottom:24px;font-size:12px;padding:10px 12px;gap:14px}.hero-intro h1{max-width:66%}}
@media(max-width:700px){.gallery-enter{bottom:18px;left:var(--content-inset);right:auto;min-height:42px}.hero-intro h1{bottom:86px;max-width:calc(100% - 2*var(--content-inset))}.gallery-walk-top{top:max(16px,env(safe-area-inset-top));left:16px;right:16px}.gallery-walk-top strong{font-size:14px}.gallery-walk-bottom{left:16px;right:16px}.gallery-walk-help{max-width:155px;font-size:11px}.gallery-walk-ui button{padding:8px 10px}.gallery-walk-pad button{padding:0}}

.gallery-walking main{z-index:40}

@media(max-width:700px){.gallery-walk-top strong{white-space:nowrap}}
@media(max-width:360px){.gallery-walk-top strong{font-size:12px}.gallery-walk-exit{font-size:12px}}

/* Full-bleed backgrounds share the same text column as the white sections. */
.wrap,.header,.services,.contact{padding-left:var(--content-inset);padding-right:var(--content-inset)}
.contact.is-open .contact-main{transform:none}
@media(min-width:701px){.contact-panel{right:var(--content-inset);width:calc((100% - 2 * var(--content-inset)) / 3)}}
@media(max-width:700px){.contact-panel{right:auto;width:100%}}

.contact{--contact-link-size:clamp(22px,2.4vw,40px)}
.contact.is-open{--contact-link-size:clamp(20px,2.3vw,34px)}
.contact .email,.contact .brief-link,.contact.is-open .email{font-size:var(--contact-link-size);font-weight:400;letter-spacing:-.04em;line-height:1.5}
.contact .brief-link{padding:0}

/* Locally hosted reference typefaces, including Cyrillic; SIL Open Font License. */
@font-face{font-family:Unbounded;src:url('fonts/unbounded-Variable.ttf') format('truetype');font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('fonts/montserrat-Variable.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
body{font-family:Montserrat,Arial,sans-serif}h1,h2,h3,.architecture-link strong{font-family:Unbounded,Arial,sans-serif;font-weight:400;letter-spacing:-.045em;overflow-wrap:anywhere}
h1{font-size:clamp(34px,3.8vw,70px);line-height:1.16}h2{font-size:clamp(32px,3.9vw,68px);line-height:1.18}.hero-intro h1{font-size:clamp(30px,3.5vw,66px);line-height:1.16}.tour-caption h3{font-size:clamp(17px,1.55vw,27px);letter-spacing:-.045em}.contact-heading h2{font-size:clamp(32px,4.4vw,76px);line-height:1.17}.architecture-link strong{font-size:clamp(28px,3.8vw,66px)}
.footer-center{display:grid;justify-items:center;gap:6px}.effects-toggle{font:inherit;font-size:12px;border:0;border-bottom:1px solid currentColor;background:none;padding:4px 0;color:var(--muted)}.menu>.effects-toggle{margin-bottom:22px;display:block}
@media(max-width:700px){.hero-intro h1{font-size:clamp(27px,7vw,42px)}h2{font-size:clamp(29px,7.4vw,44px)}.contact-heading h2{font-size:clamp(28px,7.6vw,44px)}.tour-grid .tour-caption h3{font-size:clamp(14px,3.5vw,18px)}.architecture-link strong{font-size:clamp(24px,6vw,36px)}.section-heading{min-width:0}.section-heading>*{min-width:0}}

/* A compact dropdown stays below the visible header instead of taking over the page. */
body:has(#menu[open]):not(:has(#viewer[open])){overflow:auto}
.header{z-index:40}
.menu{position:fixed;inset:var(--menu-top,98px) var(--content-inset) auto auto;margin:0;width:min(520px,calc(100% - 2*var(--content-inset)));height:auto;max-height:calc(100dvh - var(--menu-top,98px) - 16px);overflow-y:auto;padding:18px 28px 26px;z-index:35;border:1px solid var(--line);border-top:0;box-shadow:0 18px 40px #0000000d}
.menu nav{margin:8px 0 20px;max-width:none}.menu nav a{font-family:Unbounded,Arial,sans-serif;font-size:clamp(18px,1.6vw,25px);letter-spacing:-.04em;line-height:1.3;padding:15px 0;gap:16px}.menu small{font-family:Montserrat,Arial,sans-serif;font-size:11px;flex-shrink:0}.menu-close{font-size:12px;padding:4px 0}.menu-mail{font-size:14px;max-width:none;margin:0}.menu>.effects-toggle{margin:0 0 14px}.menu::backdrop{background:none;backdrop-filter:none}
@media(max-width:700px){.menu{inset:var(--menu-top,74px) 0 auto;width:100%;padding:14px var(--content-inset) 22px;border-left:0;border-right:0}.menu nav a{font-size:20px;padding:13px 0}.menu nav{margin:4px 0 18px}}

/* Inline tour cases expand the existing grid row and move subsequent tiles down. */
.tour-card{min-width:0;align-self:start}.tour-trigger{display:block;color:inherit;text-align:left}.tour-trigger:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.tour-card.is-expanded .tour-trigger .tour-picture{outline:1px solid var(--line);outline-offset:-1px}
.tour-details[hidden]{display:none}.tour-details{height:auto}.tour-details-inner{position:relative;padding:30px 0 12px;border-top:1px solid var(--line);margin-top:24px}.tour-details-close{position:absolute;right:0;top:18px;border:0;background:transparent;font-size:30px;line-height:1;width:40px;height:40px;padding:0}.tour-details h4{margin:0 48px 22px 0;font:400 clamp(18px,1.7vw,26px)/1.35 Unbounded,Arial,sans-serif;letter-spacing:-.04em}.tour-details-copy{font-size:15px;line-height:1.75;max-width:760px}.tour-details-copy p{margin:0 0 16px}.tour-details-copy a{text-decoration:underline;text-underline-offset:3px}.tour-details-copy ul{list-style:none;margin:0;padding:0}.tour-details-copy li{position:relative;padding-left:22px;margin-bottom:16px}.tour-details-copy li:before{content:'✦';position:absolute;left:0;font-size:12px}.tour-details-copy strong{font-weight:600}.tour-details-open{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:340px;margin-top:26px;padding:15px 18px;border:1px solid var(--ink);font-size:14px}.tour-details-open:hover{background:var(--ink);color:var(--bg)}
@media(max-width:700px){.tour-details-inner{margin-top:18px;padding-top:24px}.tour-details-copy{font-size:13px;line-height:1.7}.tour-details h4{font-size:17px;overflow-wrap:anywhere}.tour-details-close{top:12px}.tour-details-open{font-size:12px;padding:12px;gap:10px}.tour-details-copy li{padding-left:17px}.tour-details-copy p,.tour-details-copy li{margin-bottom:14px}}

/* The selected tile takes two columns; its case occupies a complete grid row. */
.tour-grid.has-expanded{grid-auto-flow:row dense}.tour-grid.has-expanded>.tour-card{grid-column:span 1}.tour-grid.has-expanded>.tour-card.is-expanded{grid-column:span 2}.tour-grid.has-expanded>.tour-card .tour-picture{height:calc((100cqw - 40px)/4.5);min-height:0;aspect-ratio:auto}.tour-grid>.tour-details{grid-column:1 / -1;min-width:0}.tour-grid>.tour-details .tour-details-inner{margin:0;padding:26px 0 32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.tour-grid>.tour-details .tour-details-copy{max-width:none;columns:2;column-gap:42px;line-height:1.75}.tour-details-copy p,.tour-details-copy li{break-inside:avoid}.tour-grid>.tour-details .tour-details-copy ul{break-inside:auto}.tour-grid>.tour-details .tour-details-open{margin-top:20px}.tour-details h4{margin-bottom:22px}.tour-details-close{top:17px}
@media(min-width:1600px){.tour-grid>.tour-details .tour-details-copy{columns:3;column-gap:44px}}
@media(max-width:700px){.tour-grid.has-expanded>.tour-card .tour-picture{height:calc((100cqw - 12px)/2/1.1)}.tour-grid.has-expanded>.tour-card.is-expanded .tour-picture{height:calc(100cqw/1.6)}.tour-grid>.tour-details .tour-details-copy{columns:auto}.tour-grid>.tour-details .tour-details-inner{padding:22px 0 24px}.tour-details-close{top:12px}}
/* Longer editorial copy gets horizontal room instead of sitting in a narrow sidebar. */
@media(min-width:1100px){.about>.section-heading{grid-template-columns:1fr;gap:32px}.about>.section-heading h2 br{display:none}.about>.section-heading h2{max-width:1250px}.about-copy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px;max-width:none}.about-copy>p+p{margin-top:0}}

/* Shared horizontal tracks for the expanded contact form and the introduction. */
@media(min-width:701px){
 .contact{padding-top:56px;padding-bottom:56px}
 .contact-panel{top:56px;bottom:56px}
 .contact.is-open .contact-main>.section-top,.contact.is-open .form-heading{min-height:54px;margin-bottom:24px}
 .contact.is-open .form-heading{align-items:flex-start}
 .contact.is-open .form-heading h3{font-size:clamp(18px,1.55vw,25px);line-height:1.35;margin:0}
 .contact.is-open .contact-heading{min-height:160px;align-items:center}
 .contact.is-open .contact-bottom{margin-top:0;padding-top:24px;display:grid;grid-template-rows:44px 64px 48px;gap:16px}
 .contact.is-open .contact-bottom p{margin:0;align-self:start}
 .contact.is-open .email,.contact.is-open .brief-link{line-height:1.25;align-self:start}
 .contact.is-open #contact-form{gap:24px}
 .contact.is-open #contact-form label:not(.form-trap){grid-template-rows:18px 42px;gap:8px}
 .contact.is-open #contact-form input{height:42px;line-height:22px}
 .contact.is-open #contact-form label:not(.form-trap):has(textarea){grid-template-rows:18px 90px}
 .contact.is-open #contact-form textarea{height:90px;min-height:90px;resize:none}
 .contact.is-open .form-send{min-height:48px;padding:13px 16px}
 .contact.is-open{min-height:600px}
}

.tour-grid.has-expanded .tour-caption{display:block}.tour-grid.has-expanded .tour-caption h3{font-size:clamp(16px,1.55vw,27px)}.tour-grid.has-expanded .tour-card.is-expanded .tour-caption{display:flex}
@media(min-width:701px){.tour-grid>.tour-details .tour-details-copy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 42px;columns:auto}.tour-grid>.tour-details .tour-details-copy>p{margin:0}.tour-grid>.tour-details .tour-details-copy:has(>p:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.tour-grid>.tour-details .tour-details-copy>p:has(+ul){grid-column:1 / -1}.tour-grid>.tour-details .tour-details-copy>ul{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 42px}.tour-grid>.tour-details .tour-details-copy li{margin:0}}
@media(max-width:700px){.tour-grid.has-expanded .tour-card.is-expanded .tour-caption{display:block}.tour-grid.has-expanded .tour-caption h3{font-size:clamp(14px,3.5vw,18px)}}

@media(min-width:701px){.contact-heading{transition:min-height .7s cubic-bezier(.22,1,.36,1),gap .7s cubic-bezier(.22,1,.36,1)}.contact-heading h2{transition:font-size .7s cubic-bezier(.22,1,.36,1)}.contact-bottom{transition:margin-top .7s cubic-bezier(.22,1,.36,1),padding-top .7s cubic-bezier(.22,1,.36,1),opacity .75s,transform .95s}}

/* Tour names keep the same size for regular, featured and expanded cards. */
.tour-grid{--tour-title-size:clamp(17px,1.55vw,27px)}
.tour-grid .tour-card .tour-caption h3,.tour-grid .tour-card:first-child .tour-caption h3,.tour-grid.has-expanded .tour-card .tour-caption h3{font-size:var(--tour-title-size);font-weight:400;line-height:1.3;letter-spacing:-.045em}
@media(max-width:700px){.tour-grid{--tour-title-size:clamp(14px,3.5vw,18px)}}
