@font-face{font-family:Instrument;src:url(/assets/instrument-sans.ttf)format("truetype");font-weight:400;font-display:swap}:root{color:#0f0f0f;font-synthesis:none;--paper:#f5f4f0;--ink:#0f0f0f;--olive:#525c2f;--muted:#5f5f5f;--line:#d8d6cb;--gutter:clamp(24px,4.45vw,80px);background:#f5f4f0;font-family:Instrument,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:6px;outline:2px solid #7a8452}button:disabled{cursor:wait}p,h1,h2{margin:0;font-weight:400}button,a{touch-action:manipulation}::selection{color:#fff;background:#525c2f}.skip-link{background:var(--ink);color:#fff;z-index:100;padding:14px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}.opening{height:190svh;min-height:1420px;position:relative}.hero{background:var(--paper);height:100svh;min-height:720px;max-height:1200px;position:sticky;top:0;overflow:hidden}.header{left:var(--gutter);right:var(--gutter);border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;height:8%;display:flex;position:absolute;top:3.3%}.wordmark{letter-spacing:-.07em;font-size:42px;line-height:1.1}.header nav{align-items:center;gap:36px;height:54px;font-size:14px;display:flex}.header nav a,.header nav button,.text-link{position:relative}.header nav a:after,.header nav button:after,.text-link:after{content:"";transform-origin:100%;background:currentColor;width:100%;height:1px;transition:transform .35s;position:absolute;bottom:-5px;left:0;transform:scaleX(0)}.header nav a:hover:after,.header nav button:hover:after,.text-link:hover:after{transform-origin:0;transform:scaleX(1)}.eyebrow{top:16.2%;left:var(--gutter);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px;position:absolute}h1{left:calc(var(--gutter) - 6px);z-index:2;letter-spacing:-.06em;pointer-events:none;font-size:clamp(76px,7.78vw,144px);line-height:1.1;position:absolute;top:21.3%}.title-line{white-space:nowrap;margin-bottom:-.09em;padding:0 .05em .09em 0;display:block;overflow:hidden}.letter{will-change:transform;display:inline-block}.architecture{isolation:isolate;width:57.2%;height:71.7%;position:absolute;top:15.2%;left:41%}.scene-fallback,#scene{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}#scene canvas{opacity:0;width:100%;height:100%;transition:opacity .8s;display:block}.scene-ready #scene canvas{opacity:1}.scene-ready .scene-fallback{opacity:0;transition:opacity .6s}.intro{left:var(--gutter);z-index:3;flex-direction:column;align-items:flex-start;gap:28px;display:flex;position:absolute;top:54.8%}.intro p{color:var(--muted);font-size:21px;line-height:30px}.primary{color:#fff;background:var(--olive);text-align:left;justify-content:space-between;align-items:center;gap:20px;width:254px;min-height:56px;padding:16px 20px;font-size:14px;transition:background .3s,transform .3s;display:flex;position:relative;overflow:hidden}.primary:hover{background:var(--ink)}.primary:active{transform:translateY(1px)}.primary .arrow{font-size:22px;line-height:1;transition:transform .4s}.primary:hover .arrow{transform:translate(3px,-3px)}.text-link{font-size:14px;line-height:1.6}.scene-caption{text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;font-size:11px;display:flex;position:absolute;top:88.5%;left:54.2%}.caption-number:after{content:" —"}.scene-caption button{border:1px solid #0000;border-radius:50%;width:32px;height:32px;margin-left:8px;font-size:14px}.scene-caption button:hover{border-color:var(--line)}.hero-footer{left:var(--gutter);right:var(--gutter);border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:21px;font-size:13px;display:flex;position:absolute;bottom:2.8%}.hero-footer>span{text-transform:uppercase;color:var(--muted);font-size:11px}.hero-footer a span{transition:transform .3s;display:inline-block}.hero-footer a:hover span{transform:translateY(4px)}.scroll-track{background:0 0;width:100%;height:2px;position:absolute;bottom:0}.scroll-track span{background:var(--olive);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.approach{background:var(--ink);min-height:900px;color:var(--paper);padding:60px var(--gutter) 0;position:relative;overflow:hidden}.section-label{text-transform:uppercase;color:var(--line);letter-spacing:.02em;font-size:12px;line-height:1.5}.approach h2{letter-spacing:-.04em;z-index:1;margin-top:42px;font-size:clamp(42px,4.86vw,84px);line-height:1.1;position:relative}.approach-copy{color:var(--line);z-index:1;margin-top:35px;font-size:18px;line-height:28px;position:relative}.aligned{object-fit:contain;width:41.3%;height:530px;position:absolute;top:68px;right:4%}.process{z-index:1;gap:56px;margin-top:190px;display:flex;position:relative}.process-step{text-align:left;opacity:.5;font-size:28px;transition:opacity .3s}.process-step span{margin-bottom:16px;font-size:12px;display:block}.process-step:hover,.process-step.active{opacity:1}.process-step.active span{color:#b9c28c}#process-detail{color:var(--line);max-width:540px;min-height:65px;margin-top:28px;font-size:16px;line-height:1.6}.closing{border-top:1px solid #33332e;justify-content:space-between;align-items:center;gap:24px;margin-top:60px;padding:28px 0;display:flex}.closing>span{color:#b3b3b3;font-size:11px}.closing .wordmark{font-size:32px}dialog{background:var(--paper);width:min(460px,100% - 32px);max-height:calc(100svh - 40px);color:var(--ink);border:0;margin:auto;padding:42px;overflow:auto}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f0f0f73}dialog[open]{animation:.4s cubic-bezier(.16,1,.3,1) dialog-in}@keyframes dialog-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.close{width:40px;height:40px;color:var(--muted);font-size:30px;position:absolute;top:12px;right:16px}dialog .section-label{color:var(--olive);margin-bottom:38px;font-size:11px}dialog h2{letter-spacing:-.035em;font-size:36px;line-height:1.12}.dialog-copy{color:var(--muted);margin-top:24px;font-size:15px;line-height:1.5}.field{margin-top:24px;position:relative}.field label{color:var(--muted);font-size:13px;display:block}.field input{border:0;border-bottom:1px solid var(--line);width:100%;height:32px;color:var(--ink);outline-offset:3px;background:0 0;border-radius:0;padding:4px 0;display:block}.field:focus-within label{color:var(--olive)}.field input[aria-invalid=true]{border-color:#9a3225}.error{color:#9a3225;margin-top:4px;font-size:12px;line-height:1.4;display:block}.error:empty{display:none}form .primary,.confirmation .primary{width:100%;margin-top:30px}.form-note{color:var(--muted);margin-top:20px;font-size:11px;line-height:1.5}.confirmation[hidden],.form-view[hidden]{display:none}.projects-dialog{width:min(920px,100% - 32px);padding:48px}.projects-dialog h2{font-size:46px}.projects-dialog .section-label{margin-bottom:24px}.studies{grid-template-columns:1fr 1fr;gap:24px;margin-top:32px;display:grid}.study{text-align:left}.study-image{aspect-ratio:1.2;background:#e6e4da;display:block;overflow:hidden}.study-image.olive{background:#636e42}.study-image img{object-fit:contain;width:100%;height:100%;transition:transform .7s cubic-bezier(.16,1,.3,1)}.study:hover img{transform:scale(1.06)}.study-title{border-bottom:1px solid var(--line);justify-content:space-between;padding:16px 0;font-size:17px;display:flex}.study.selected .study-title{border-color:var(--olive)}.study-detail{max-width:620px;min-height:48px;color:var(--muted);margin-top:24px;font-size:15px;line-height:1.6}.projects-dialog .return{margin-top:24px}@media (width>=1800px){.hero{max-height:none}.aligned{height:650px}.approach{min-height:1000px}}@media (width<=1000px) and (width>=701px){h1{font-size:8vw}.header nav{gap:22px}.intro p{font-size:18px;line-height:27px}.architecture{width:57%;left:43%}.scene-caption{font-size:9px;left:52%}.process{gap:32px}.approach h2{font-size:5vw}.approach-copy{max-width:48%;font-size:16px}}@media (width<=700px){.opening{height:calc(1000px + 50svh);min-height:0}.hero{height:1000px;min-height:0;max-height:none;top:min(0px,100svh - 1000px)}.header{align-items:flex-start;height:68px;top:28px}.wordmark{font-size:42px}.header nav{height:42px;font-size:14px}.header nav .desktop-link{display:none}.eyebrow{letter-spacing:.065em;white-space:nowrap;font-size:10px;top:116px}h1{top:154px;left:calc(var(--gutter) - 2px);letter-spacing:-.06em;font-size:clamp(50px,16.4vw,92px);line-height:1.04}.architecture{width:105%;height:360px;top:286px;left:-2.5%}.intro{gap:26px;top:656px}.intro p{font-size:21px;line-height:30px}.scene-caption{left:var(--gutter);gap:5px;font-size:9px;top:884px}.scene-caption button{margin-left:0}.hero-footer{padding-top:20px;font-size:13px;bottom:28px}.hero-footer>span{display:none}.approach{min-height:0;padding-top:50px}.approach h2{margin-top:30px;font-size:clamp(38px,10vw,64px)}.approach-copy{margin-top:34px;font-size:17px;line-height:27px}.aligned{width:calc(100% + 36px);height:350px;margin:24px -18px 0;position:relative;top:auto;right:auto}.process{justify-content:space-between;gap:24px;margin-top:32px}.process-step{font-size:22px}.process-step span{font-size:11px}#process-detail{min-height:90px;font-size:15px}.closing{flex-wrap:wrap;margin-top:35px}.closing>span{width:100%}.closing .text-link{font-size:13px}.projects-dialog{padding:36px 24px}.projects-dialog h2{font-size:34px}.studies{grid-template-columns:1fr;gap:22px}.study-image{aspect-ratio:1.6}.study-title{font-size:17px}.study-detail{min-height:90px}dialog{padding:38px 24px}dialog h2{font-size:34px}.wide-break{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.opening{height:auto;min-height:0}.hero{position:relative;top:0}.letter{opacity:1!important;transform:none!important}.scroll-track{display:none}}:root{--stage-bg:#f5f4f0;--stage-muted:#5f5f5f;--stage-line:#d8d6cb;background:var(--stage-bg)}html,body{overscroll-behavior:none;height:100%;overflow:hidden}main{background:var(--stage-bg);outline:none;height:100dvh;overflow:hidden}.opening{height:100dvh;min-height:0;position:fixed;inset:0}.hero{background:0 0;height:100%;min-height:0;max-height:none;position:absolute;inset:0;overflow:hidden}.header{z-index:20;border-color:var(--stage-line);height:8%;top:3.3%}.eyebrow{color:var(--stage-muted);top:16%}h1{perspective:1000px;z-index:5;font-size:clamp(56px,7.3vw,132px);top:24%}.title-line{overflow:visible}.letter{transform-origin:50%;backface-visibility:hidden;white-space:pre}.architecture{z-index:2;pointer-events:none;width:59%;height:72%;top:15%;left:41%}.intro{z-index:6;gap:22px;top:59%}.intro p{color:var(--stage-muted)}.scene-caption{color:var(--stage-muted);z-index:7;letter-spacing:.04em;font-size:10px;top:auto;bottom:11%;left:54%}.hero-footer{z-index:20;border-color:var(--stage-line);gap:24px;bottom:3%}.hero-footer>span{color:var(--stage-muted)}.hero-footer>a{margin-left:auto}.scroll-track{z-index:30}.scroll-track span{background:#8d986b}.experience-progress{accent-color:#8d986b;cursor:ew-resize;width:90px;height:18px;margin:0}.approach{pointer-events:none;z-index:6;background:0 0;height:100dvh;min-height:0;padding:0;position:fixed;inset:0;overflow:hidden}.approach>.section-label{top:16%;left:var(--gutter);color:var(--stage-muted);position:absolute}.approach h2{left:var(--gutter);letter-spacing:-.055em;perspective:1000px;margin:0;font-size:clamp(40px,4.6vw,84px);line-height:1.13;position:absolute;top:24%}.approach-copy{left:var(--gutter);color:#c4c9bb;margin:0;font-size:17px;line-height:1.5;position:absolute;top:46%}.aligned{display:none}.process{left:var(--gutter);gap:32px;margin:0;position:absolute;top:61%}.process-step{font-size:21px}.process-step span{margin-bottom:12px;font-size:10px}#process-detail{left:var(--gutter);color:#c4c9bb;width:35%;max-width:360px;margin:0;font-size:14px;position:absolute;top:72%}.closing{left:var(--gutter);border:0;margin:0;padding:0;position:absolute;bottom:11%}.closing>.wordmark,.closing>span{display:none}.closing .text-link{font-size:14px}.approach:not([inert]) button,.approach:not([inert]) a{pointer-events:auto}dialog{z-index:100;overscroll-behavior:contain}@media (width<=1000px) and (width>=701px){.intro p{font-size:17px;line-height:25px}.approach-copy{font-size:14px}.process{gap:22px}.process-step{font-size:18px}.scene-caption{font-size:8px;left:52%}#process-detail{font-size:13px}}@media (width<=700px){.header{height:54px;top:20px}.wordmark{font-size:34px}.header nav{height:34px;font-size:12px}.eyebrow,.approach>.section-label{letter-spacing:.05em;font-size:8px;top:94px}h1{font-size:clamp(44px,14.8vw,74px);line-height:1.04;top:126px}.architecture{width:100%;height:43%;top:29%;left:0}.intro{gap:12px;top:auto;bottom:15%}.intro p{font-size:14px;line-height:20px}.intro .primary{width:224px;min-height:43px;padding:11px 14px;font-size:12px}.intro .text-link{font-size:12px}.scene-caption{gap:4px;font-size:7px;bottom:8.5%;left:auto;right:24px}.scene-caption button{width:28px;height:28px}.hero-footer{gap:14px;padding-top:14px;font-size:11px;bottom:20px}.hero-footer>a{margin-left:0}.experience-progress{width:64px;margin-left:auto}.approach h2{font-size:clamp(32px,9.6vw,48px);line-height:1.09;top:126px}.approach-copy{font-size:12px;line-height:18px;top:auto;bottom:27%}.process{justify-content:flex-start;gap:26px;top:auto;bottom:19%}.process-step{font-size:17px}.process-step span{margin-bottom:6px;font-size:8px}#process-detail{width:calc(100% - 48px);max-width:340px;min-height:0;font-size:11px;line-height:16px;top:auto;bottom:12%}.closing{bottom:8%;left:24px}.closing .text-link{font-size:11px}.approach~.scene-caption{display:none}}@media (height<=740px) and (width>=701px){.intro{gap:14px;top:57%}.intro p{font-size:17px;line-height:23px}.primary{min-height:46px}h1{font-size:6.5vw}.approach h2{font-size:4vw}.scene-caption{bottom:12%}.approach-copy{top:45%}.process{top:58%}#process-detail{font-size:12px;top:70%}.closing{bottom:10%}}@media (height<=700px) and (width<=700px){.header{height:44px;top:12px}.eyebrow,.approach>.section-label{top:72px}h1,.approach h2{top:94px}.architecture{height:39%;top:27%}.intro{gap:8px;bottom:16%}.intro p{font-size:12px;line-height:16px}.intro .primary{min-height:36px;padding:8px 12px}.scene-caption{bottom:8.5%}.approach-copy{bottom:29%}.process{bottom:21%}#process-detail{bottom:13%}.closing{bottom:8.5%}}@media (prefers-reduced-motion:reduce){.hero{position:absolute;top:0}.opening{height:100dvh}.letter{filter:none!important}.scroll-track{display:block}}@media (width<=360px){.scene-caption>span{display:none}}.scene-fallback{opacity:0}.fallback-ready:not(.scene-ready) .scene-fallback{opacity:1}.scene-caption{left:auto;right:var(--gutter);bottom:10%}.hero-footer{justify-content:flex-end}.process-step{padding-top:8px}.arrival{pointer-events:all}.arrival[aria-hidden=true]{pointer-events:none}@media (width<=700px){.scene-caption{bottom:8%;right:20px}.hero-footer>a{margin-left:0}.hero-footer{justify-content:flex-start}}.projects-empty{height:clamp(180px,32svh,360px)}
