@font-face{font-family:Switzer;src:url('assets/switzer-variable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--ink:#1d1d1b;--olive:#6c6c60;--yellow:#fec02f;--line:#d7d7d7;--blue:#3469a4;--gutter:4.7vw;--header:108px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:#fff;color:var(--ink);font-family:Switzer,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:6px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:350}::selection{background:var(--yellow);color:var(--ink)}.skip{position:fixed;z-index:100;left:20px;top:-70px;background:var(--yellow);padding:15px}.skip:focus{top:12px}.header{position:fixed;z-index:30;inset:0 0 auto;display:flex;align-items:center;gap:52px;padding:23px var(--gutter);height:var(--header);transition:background .25s,border-color .25s;border-bottom:1px solid transparent}.header.is-scrolled{background:rgba(255,255,255,.96);border-color:#eaeae6}.brand{width:140px;display:block;flex-shrink:0}.brand img{object-fit:contain}.desktop-nav{display:flex;gap:40px;margin-left:auto;align-items:center;font-size:14px}.desktop-nav a{position:relative;padding-block:10px}.desktop-nav a:after{content:'';position:absolute;bottom:4px;left:0;width:0;height:1px;background:var(--ink);transition:width .2s}.desktop-nav a:hover:after{width:100%}.contact-arrow{background:var(--yellow);width:49px;height:49px;display:grid;place-items:center;font-size:31px;font-weight:250;transition:background .2s}.contact-arrow:hover{background:#ffce62}.menu-toggle,.mobile-nav{display:none}.journey{height:370svh;position:relative}.hero{height:100svh;min-height:650px;position:sticky;top:0;overflow:hidden}.artwork,.image-frame,.built,.paper-grid,.copy-wash{position:absolute;inset:0}.artwork{overflow:hidden;background:white}.image-frame{transform:scale(.84);transform-origin:69% 84%;will-change:transform}.image-frame img{object-position:69% 50%}.blueprint{opacity:1}.built{clip-path:inset(100% 0 0);will-change:clip-path}.paper-grid{opacity:.3;background-image:linear-gradient(#3469a40d 1px,transparent 1px),linear-gradient(90deg,#3469a40d 1px,transparent 1px);background-size:62px 62px;pointer-events:none}.copy-wash{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 24%,rgba(255,255,255,.70) 38%,rgba(255,255,255,0) 62%);pointer-events:none}.hero-copy{position:absolute;top:25%;left:var(--gutter);width:55%;z-index:2}.eyebrow,.small-label{font-size:10px;font-weight:450;letter-spacing:.19em;line-height:1.6}.hero-copy .eyebrow{margin-bottom:22px}.hero h1{font-size:clamp(66px,7.8vw,132px);font-weight:250;line-height:.99;letter-spacing:-.067em}.hero-subtitle{font-size:clamp(18px,1.7vw,28px);font-weight:300;letter-spacing:-.03em;margin-top:23px}.text-link{display:inline-flex;align-items:center;gap:25px;font-size:10px;letter-spacing:.12em;font-weight:500;line-height:1.5}.text-link>span{font-size:27px;font-weight:250;letter-spacing:0;transition:transform .2s}.text-link:hover>span{transform:translate(4px,-2px)}.hero-link{margin-top:34px}.scroll-invitation{position:absolute;z-index:2;left:var(--gutter);bottom:120px;display:flex;flex-direction:column;gap:10px;font-size:8px;letter-spacing:.2em}.scroll-invitation>span:first-child{font-size:44px;font-weight:200;line-height:1}.drawing-caption{position:absolute;right:var(--gutter);bottom:135px;display:flex;flex-direction:column;align-items:flex-end;gap:7px;font-size:8px;letter-spacing:.18em;color:#375c81;opacity:.75}.hero-bottom{position:absolute;bottom:0;inset-inline:var(--gutter);height:87px;border-top:1px solid #1d1d1b55;display:flex;align-items:center;gap:30px;z-index:3}.hero-bottom:before{content:'';position:absolute;inset:0 calc(-1 * var(--gutter));background:rgba(255,255,255,.92);z-index:-1}.project-location{display:flex;flex-direction:column;gap:7px;font-size:8px;letter-spacing:.16em}.project-location>span:last-child{color:var(--olive);font-size:7px}.process{position:relative;width:360px;display:flex;justify-content:space-between;margin-left:auto;padding-top:17px}.process-line{position:absolute;left:15px;right:15px;top:8px;height:1px;background:#1d1d1b44;overflow:hidden}.process-line>span{display:block;height:100%;width:0;background:var(--ink)}.stage{border:0;background:none;padding:9px 0 0;position:relative;font-size:7px;letter-spacing:.19em;min-width:45px;transition:color .2s}.stage i{position:absolute;top:-12px;left:50%;width:5px;height:5px;border-radius:50%;background:#94948e;transform:translateX(-50%)}.stage.is-active i{background:var(--yellow);width:11px;height:11px;top:-15px}.stage.is-active{font-weight:650}.percent{font-size:9px;font-variant-numeric:tabular-nums;min-width:27px;text-align:right}.section{padding-inline:var(--gutter)}.studio{padding-top:104px;padding-bottom:104px}.section-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:46px}.small-label{color:var(--olive);font-size:8px}.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.studio h2,.projects h2,.expertise h2{font-size:clamp(38px,4.6vw,76px);line-height:1.04;letter-spacing:-.052em}.studio .lede{font-size:23px;font-weight:350;line-height:1.35;letter-spacing:-.02em;margin:35px 0 20px}.studio-copy>p:not(.lede){font-size:14px;line-height:1.8;color:var(--olive);max-width:390px}.studio-copy .text-link{margin-top:28px}.studio-image{padding-top:6px;display:flex;flex-direction:column}.studio-image img{aspect-ratio:1.06;max-height:560px}.studio-image figcaption,.interior-image figcaption{display:flex;justify-content:space-between;gap:12px;font-size:8px;letter-spacing:.13em;padding-top:15px;color:var(--olive)}.projects{padding-block:80px 100px;background:#f5f5f2}.projects .section-top{margin-bottom:32px}.project-grid{display:grid;grid-template-columns:1.07fr 1fr;gap:7.5vw;margin-top:62px}.project-offset{padding-top:140px}.project-photo{position:relative;overflow:hidden}.project-photo img{aspect-ratio:.8;transition:transform .7s}.project-featured .project-photo img{aspect-ratio:.74}.project:hover img{transform:scale(1.025)}.project-arrow{position:absolute;right:0;bottom:0;background:white;width:50px;height:50px;display:grid;place-items:center;font-size:26px;font-weight:250}.project-meta{display:flex;justify-content:space-between;gap:20px;align-items:baseline;margin-top:18px}.project-meta h3{font-size:22px;letter-spacing:-.025em}.project-meta>span{font-size:7px;letter-spacing:.1em;color:var(--olive)}.project-note{max-width:320px;font-size:16px;line-height:1.6;color:var(--olive);margin-top:38px}.expertise{padding-top:100px;padding-bottom:100px}.expertise-heading{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:start}.expertise-heading>.eyebrow{padding-top:10px}.service-list{margin-top:65px}.service-list>a{display:grid;grid-template-columns:50px 1fr 1fr 35px;gap:25px;align-items:center;min-height:110px;border-top:1px solid var(--line);transition:background .2s}.service-list>a:last-child{border-bottom:1px solid var(--line)}.service-list>a:hover{background:#fec02f15}.service-number{font-size:9px;color:var(--olive)}.service-list h3{font-size:31px;letter-spacing:-.03em}.service-detail{font-size:12px;color:var(--olive)}.service-list a>span:last-child{font-size:27px;font-weight:250}.interior-image{margin-top:85px}.interior-image img{aspect-ratio:2.4;object-position:center 57%}.contact{background:var(--ink);color:white;padding-block:80px 47px}.contact>.eyebrow{color:#bfbfb5}.contact-title{display:flex;align-items:center;justify-content:space-between;margin-top:34px;padding-bottom:60px}.contact-title h2{font-size:clamp(64px,8vw,135px);letter-spacing:-.055em;line-height:1.02;font-weight:300}.contact-title>span{font-size:9vw;font-weight:200;color:var(--yellow);transition:transform .3s}.contact-title:hover>span{transform:translate(8px,-8px)}.contact-bottom{border-top:1px solid #ffffff38;display:flex;justify-content:space-between;align-items:center;gap:25px;padding-top:26px}.contact-bottom>a:first-child{font-size:15px;font-weight:300}.contact-bottom .text-link{font-size:9px}.footer{padding-top:55px;padding-bottom:24px}.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:35px;align-items:start}.footer-top>div>p:last-child{font-size:12px;line-height:1.6;margin-top:14px;color:var(--olive)}.footer-top .eyebrow{font-size:8px}.back-top{font-size:32px;font-weight:200}.footer-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;border-top:1px solid var(--line);padding-top:22px;margin-top:48px;font-size:7px;letter-spacing:.06em;line-height:1.8;color:var(--olive)}.footer-bottom p:last-child{text-align:right}.footer-bottom a{color:var(--ink)}
@media(min-width:1700px){:root{--gutter:max(5vw,calc((100vw - 1650px)/2))}.hero-copy{width:900px}.hero{min-height:760px}}
@media(max-width:900px){:root{--gutter:5vw;--header:90px}.header{gap:28px}.brand{width:115px}.desktop-nav{gap:25px}.contact-arrow{width:42px;height:42px}.hero-copy{top:29%;width:63%}.hero h1{font-size:8.8vw}.hero-subtitle{font-size:19px}.studio-grid{gap:6vw}.studio h2,.projects h2,.expertise h2{font-size:43px}.studio .lede{font-size:21px}.project-meta{display:block}.project-meta>span{display:block;margin-top:8px}.project-offset{padding-top:90px}.service-list>a{grid-template-columns:30px 1fr 1fr 25px;gap:12px}.service-list h3{font-size:26px}.service-detail{font-size:11px}}
@media(max-width:600px){:root{--header:80px;--gutter:6vw}html{scroll-padding-top:95px}.header{padding-block:16px;gap:15px}.header .brand{width:99px}.desktop-nav{display:none}.contact-arrow{margin-left:auto;width:37px;height:37px;font-size:26px}.menu-toggle{display:flex;align-items:center;gap:15px;border:0;background:none;padding:10px 0 10px 7px;font-size:11px}.menu-toggle span{font-size:22px;font-weight:250}.mobile-nav:not([hidden]){display:flex;position:absolute;inset:80px 0 auto;flex-direction:column;background:white;padding:20px var(--gutter) 30px;border-bottom:1px solid var(--line);gap:23px;font-size:22px}.journey{height:330svh}.hero{min-height:650px}.hero-copy{top:14%;width:88%}.hero h1{font-size:clamp(56px,14vw,85px);line-height:1.02}.hero-copy .eyebrow{font-size:8px;margin-bottom:18px}.hero-subtitle{font-size:17px;margin-top:18px;max-width:200px;line-height:1.5}.hero-link{margin-top:23px;font-size:8px;gap:20px}.image-frame{inset:30% -45% 94px -65%;transform-origin:69% 84%}.image-frame img{object-fit:contain;object-position:69% center}.copy-wash{background:linear-gradient(180deg,#fff 0%,#fff 24%,rgba(255,255,255,.7) 29%,transparent 34%),linear-gradient(90deg,rgba(255,255,255,.8),transparent 70%)}.scroll-invitation{bottom:124px;font-size:6px;gap:5px}.scroll-invitation>span:first-child{font-size:33px}.drawing-caption{bottom:126px;font-size:6px;gap:5px}.hero-bottom{height:94px;gap:14px;flex-wrap:wrap;align-content:center}.project-location{width:100%;flex-direction:row;justify-content:space-between;gap:8px;font-size:7px}.project-location>span:last-child{font-size:6px}.process{width:calc(100% - 45px);margin-left:0;margin-top:4px}.stage{font-size:6px}.percent{margin-top:16px;font-size:8px}.studio{padding-block:65px}.section-top{margin-bottom:31px}.eyebrow{font-size:8px}.small-label{font-size:6px}.studio-grid{grid-template-columns:1fr;gap:35px}.studio h2,.projects h2,.expertise h2{font-size:42px}.studio .lede{margin-top:25px}.studio-copy>p:not(.lede){font-size:13px;max-width:100%}.studio-image img{aspect-ratio:1.08}.projects{padding-block:55px}.projects .section-top>.text-link{font-size:7px;gap:13px}.project-grid{grid-template-columns:1fr;gap:40px;margin-top:35px}.project-offset{padding-top:0}.project-featured .project-photo img{aspect-ratio:.85}.project-offset .project-photo img{aspect-ratio:.92}.project-meta{display:flex}.project-meta h3{font-size:20px}.project-meta>span{margin-top:0;font-size:6px}.project-note{font-size:14px;margin-top:23px}.expertise{padding-block:60px}.expertise-heading{grid-template-columns:1fr;gap:22px}.service-list{margin-top:32px}.service-list>a{grid-template-columns:22px 1fr 25px;min-height:100px;gap:12px;position:relative;align-content:center;padding-block:22px}.service-list h3{font-size:25px}.service-detail{grid-column:2;grid-row:2;font-size:10px;margin-top:4px}.service-list a>span:last-child{grid-column:3;grid-row:1 / span 2}.interior-image{margin-top:45px}.interior-image img{aspect-ratio:1.1}.studio-image figcaption,.interior-image figcaption{font-size:6px}.contact{padding-block:50px 35px}.contact-title{margin-top:28px;padding-bottom:35px}.contact-title h2{font-size:15vw}.contact-title>span{font-size:14vw}.contact-bottom{align-items:start;flex-direction:column;gap:17px;padding-top:25px}.contact-bottom>a:first-child{font-size:12px}.contact-bottom .text-link{font-size:8px}.footer{padding-top:40px}.footer-top{grid-template-columns:1fr 1fr;gap:35px 20px}.footer-top .brand{grid-column:1}.footer-top>div{grid-row:2}.back-top{grid-column:2;grid-row:1;justify-self:end}.footer-top>div>p:last-child{font-size:10px}.footer-bottom{flex-direction:column;align-items:start;gap:12px;font-size:6px;margin-top:30px}.footer-bottom p:last-child{text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.journey{height:100svh;min-height:650px}.image-frame{transform:none!important}.built{clip-path:inset(0)!important}.blueprint,.paper-grid{opacity:0!important}}
/* The second hero revision draws the tower itself, on registered 3D faces. */
.journey{height:420svh}.blueprint{position:absolute;inset:0;opacity:0}.built{clip-path:none;opacity:1;will-change:opacity}.animation-ready .built{opacity:0}.tower-drawing{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.tower-drawing path{fill:none;stroke:#2f65a9;stroke-width:.88;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.tower-drawing .drawing-foundation{stroke-width:1;opacity:.75}.tower-drawing .drawing-grid{stroke-width:.65;opacity:.32}.tower-drawing .drawing-guide{stroke-width:.55;opacity:.09}.tower-drawing .drawing-column{stroke-width:1.1;opacity:.7}.tower-drawing .drawing-detail{opacity:.78}.tower-drawing .drawing-side{stroke:#4c7dbb;opacity:.68}.tower-drawing .drawing-context{stroke:#487cb7;stroke-width:.65;opacity:.28}
@media(max-width:600px){.journey{height:380svh}.tower-drawing .drawing-detail{stroke-width:.72}.tower-drawing .drawing-column{stroke-width:.9}}
@media(prefers-reduced-motion:reduce){.journey{height:100svh;min-height:650px}.tower-drawing{display:none}.built{opacity:1!important}}
.tower-drawing .drawing-envelope{stroke-width:.8;opacity:.22}.tower-drawing .drawing-slab{stroke-width:.8;opacity:.62}
.drawing-base-layer{opacity:0}.tower-drawing .drawing-base{stroke-dasharray:none!important;stroke-dashoffset:0!important;opacity:.65}.tower-drawing .drawing-context.drawing-base{opacity:.22}
/* Keep the complete original panorama visible from the very first paint. */
.blueprint{opacity:1}.built{opacity:0}.image-frame{backface-visibility:hidden;transform:perspective(2400px) rotateY(-20deg)}.tower-drawing .drawing-context{stroke-width:.72;opacity:.55}
