@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=Manrope:wght@400;500;600;700&display=swap');
:root{--ink:#252724;--paper:#e6e6df;--line:rgba(37,39,36,.24);--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif;--zoom:1;--pan-x:0%;--pan-y:0%;--veil:0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:14px;background:#a7a8a3;line-height:1.7}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:6px}img{display:block;max-width:100%;object-fit:cover}button{border:0;background:none}p{margin:0 0 1.3em}h1,h2,h3{margin:0;font-weight:400}h2{font:400 clamp(55px,6.2vw,100px)/.98 var(--serif);letter-spacing:-.045em}h2 em{font-weight:400}h3{font-weight:500}::selection{background:#333a32;color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:20px;z-index:200;background:var(--paper);padding:12px}.skip:focus{top:20px}.wall-scene{position:fixed;inset:0;z-index:-2;overflow:hidden;background:#a5a7a3}.wall-camera{width:100%;height:100%;transform:translate3d(var(--pan-x),var(--pan-y),0) scale(var(--zoom));transform-origin:38% 48%;will-change:transform}.wall-camera video{width:100%;height:100%;object-fit:cover}.wall-veil{position:absolute;inset:0;background:#eeeee7;opacity:var(--veil);pointer-events:none}.hero{height:150svh;min-height:850px}.site-header{height:92px;padding:0 5vw 0 calc(5vw + 62px);display:flex;align-items:center;justify-content:space-between;gap:30px;position:fixed;inset:0 0 auto;z-index:30;background:rgba(226,227,220,.9);border-bottom:1px solid var(--line);backdrop-filter:blur(14px);opacity:0;transform:translateY(-100%);transition:opacity .4s,transform .4s}.site-header.shown{opacity:1;transform:none}.wordmark{font-size:15px;letter-spacing:.16em;line-height:1.6}.wordmark span{display:block;font-size:7px;letter-spacing:.19em}.site-header nav{display:flex;gap:35px;font-size:12px}.site-header nav a:last-child{border-bottom:1px solid}.site-header nav span{margin-left:20px}.menu-toggle{display:none}#brand{position:fixed;left:50%;top:50svh;width:clamp(190px,24vw,355px);aspect-ratio:1;transform:translate(-50%,-50%);z-index:40;perspective:1000px;filter:drop-shadow(12px 20px 14px rgba(0,0,0,.19));will-change:top,left,width}.logo-object{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}.logo-object img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0;backface-visibility:visible}.logo-object img.depth{filter:brightness(.36)}.logo-object img.front{transform:translateZ(6px)}.section{padding:90px 7vw 120px;position:relative}.section-top{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:20px 0 64px}.eyebrow{font-size:9px;letter-spacing:.2em;font-weight:600}.intro{display:grid;grid-template-columns:1.35fr 1fr;gap:10%;align-items:end;margin-bottom:100px}.intro-copy{max-width:380px}.intro-copy>p:first-child{font-size:21px;line-height:1.5}.muted{opacity:.72}.text-link{display:inline-flex;gap:35px;padding:12px 0;border-bottom:1px solid;font-size:12px}.text-link span{font-size:20px;line-height:1}.service-row{display:grid;grid-template-columns:45px 1.15fr 1fr 150px;gap:30px;align-items:center;border-top:1px solid var(--line);padding:28px 0}.service-row:last-child{border-bottom:1px solid var(--line)}.small-number{font-size:10px;align-self:start;padding-top:8px}.service-row h3{font:400 30px/1.15 var(--serif)}.service-row p{font-size:12px;max-width:300px;margin:0}.service-row img{width:150px;height:105px;filter:saturate(.75)}.portfolio{background:#292a29;color:#e2e2d9;--line:#ffffff30}.heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:50px}.heading-row p{font-size:12px;line-height:1.8}.filters{display:flex;gap:26px;margin:60px 0 35px;flex-wrap:wrap}.filters button{padding:0 0 9px;color:#c0c2b8;font-size:12px;border-bottom:1px solid transparent}.filters button[aria-pressed=true]{border-color:#e2e2d9;color:#fff}.filters sup{margin-left:9px;font-size:8px}.project-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:6vw;row-gap:50px}.project-card{padding:0;text-align:left;width:100%;color:inherit}.project-card:nth-child(even){margin-top:100px}.project-card[hidden]{display:none}.project-image{overflow:hidden;background:#393e36;aspect-ratio:4/4.6;position:relative}.project-image img{width:100%;height:100%;transition:transform .8s;filter:saturate(.78)}.project-card:hover img{transform:scale(1.04)}.project-image>span{position:absolute;right:20px;bottom:20px;background:#e6e6dd;color:#222;width:45px;height:45px;display:grid;place-items:center;border-radius:50%;font-size:23px}.project-meta{display:flex;justify-content:space-between;gap:20px;margin-top:20px}.project-meta h3{font:400 29px var(--serif)}.project-meta small{font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding-top:8px}.instagram-link{margin-top:75px}.colors{padding-top:100px}.color-layout{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.color-layout h2{margin-bottom:40px}.color-layout p{max-width:365px;font-size:13px}.swatch-showcase>img{width:100%;height:490px;object-position:center 47%}.color-caption{display:flex;justify-content:space-between;margin:18px 0 25px}.color-caption span:first-child{font:28px var(--serif)}.color-caption span:last-child{font-size:10px}.swatches{display:flex;gap:18px}.swatches button{height:38px;width:38px;border-radius:50%;background:var(--swatch);border:4px solid transparent;box-shadow:0 0 0 1px #5553}.swatches button[aria-pressed=true]{outline:1px solid var(--ink);outline-offset:5px}.swatch-showcase small{display:block;font-size:9px;margin-top:24px}.about{background:#d9dbd9}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.about-layout>img{width:100%;height:660px}.about-layout h2{margin:30px 0}.about-layout p{font-size:13px;max-width:370px}.about-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:40px;padding-top:20px;font-size:10px;letter-spacing:.08em}.process h2{margin-bottom:80px}.process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:25px}.process-grid article{border-top:1px solid var(--line);padding-top:22px}.process-grid article>span{font:italic 42px var(--serif);opacity:.65}.process-grid h3{font:28px var(--serif);margin:45px 0 18px}.process-grid p{font-size:12px}.benefits{background:rgba(224,226,224,.84)}.benefit-layout{display:grid;grid-template-columns:1fr 1fr;gap:10%}.benefit-list article{display:flex;gap:28px;border-top:1px solid var(--line);padding:25px 0}.benefit-list article>span{font-size:10px;padding-top:7px}.benefit-list h3{font:28px/1.2 var(--serif);margin-bottom:15px}.benefit-list p{font-size:12px;max-width:370px;margin:0}.contact{padding-top:120px;padding-bottom:120px;background:rgba(229,230,229,.42)}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%}.contact h2{font-size:clamp(50px,5.4vw,85px);margin-bottom:40px}.contact-layout>div>p{font-size:15px}.contact-main{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid;max-width:350px;font-size:16px;padding:25px 0;margin:25px 0}.contact-main span{font-size:25px}.contact-details{display:flex;flex-direction:column;gap:12px;font-size:12px}.form-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.form-heading h3{font:28px var(--serif)}.form-heading span{font-size:9px}form{background:rgba(234,235,233,.9);padding:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px 22px}label{display:block;font-size:10px;letter-spacing:.025em}input,textarea,select{border:none;border-bottom:1px solid #25272460;border-radius:0;background:transparent;outline:none;width:100%;padding:13px 0;font-size:12px;min-height:45px}input:focus,select:focus,textarea:focus{border-bottom:2px solid #252724}textarea{resize:vertical}select{max-width:100%}.full{grid-column:1/-1}.field-hint{font-size:9px;margin:-10px 0 0;opacity:.7}.upload{border:1px dashed #25272450;padding:15px}.upload input{border:0;font-size:10px}.upload>span{display:block;font-size:9px;opacity:.7}.form-note{font-size:10px;opacity:.75;margin-top:20px}.submit-button{background:#282d27;color:#f1f1e8;display:flex;justify-content:space-between;align-items:center;width:100%;padding:17px 20px;font-size:12px}.submit-button:hover{background:#424b3e}.email-button{font-size:10px;padding:15px 0 0;text-decoration:underline;text-underline-offset:4px}.email-button:not([hidden])+ .email-button{margin-left:15px}#form-status{font-size:11px;color:#404f38}footer{background:#252625;color:#daddd1;padding:65px 7vw 35px;position:relative}.footer-brand{font-size:clamp(35px,8.4vw,130px);font-weight:400;letter-spacing:.04em;line-height:1.2}footer>div{margin-top:40px;display:flex;gap:25px;justify-content:space-between;border-top:1px solid #fff3;padding-top:25px;font-size:8px;letter-spacing:.1em}footer button{color:inherit;font-size:9px;padding:0}.back-top{position:absolute;right:7vw;top:55px;font-size:26px}dialog{padding:0;border:0;background:#e5e6dd;color:var(--ink);width:min(1060px,94vw);max-height:90svh;overflow:auto}dialog::backdrop{background:#121711dd;backdrop-filter:blur(8px)}dialog[open]{display:grid;grid-template-columns:1.2fr 1fr}#close-dialog{position:absolute;right:12px;top:12px;z-index:3;border-radius:50%;width:36px;height:36px;background:#e6e6dd;font-size:20px}.dialog-image{position:relative;background:#292a29;min-height:400px}.dialog-image img{width:100%;height:75svh;object-fit:contain}.dialog-image button{position:absolute;bottom:20px;background:#e6e6dd;width:40px;height:40px;border-radius:50%;font-size:20px}#prev-photo{left:20px}#next-photo{right:20px}.dialog-copy{padding:70px 40px 40px;align-self:center}.dialog-copy h2{font-size:50px;margin:25px 0}.dialog-copy p{font-size:13px}#dialog-counter{display:block;font-size:10px;margin:25px 0}#mobile-menu{position:fixed;inset:78px 0 auto;background:#e5e7de;padding:30px;z-index:35;border-bottom:1px solid var(--line)}#mobile-menu:not([hidden]){display:flex;flex-direction:column;gap:16px;font:28px var(--serif)}
@media(min-width:1500px){.section{padding-left:max(7vw,calc((100vw - 1380px)/2));padding-right:max(7vw,calc((100vw - 1380px)/2))}}
@media(max-width:800px){body{font-size:13px}.hero{min-height:0;height:150svh}.section{padding:65px 6vw 75px}.section-top{padding-bottom:38px}.section-top .eyebrow:last-child{display:none}.eyebrow{font-size:8px}h2{font-size:60px}.site-header{height:78px;padding:0 6vw 0 calc(6vw + 52px)}.wordmark{font-size:11px}.wordmark span{font-size:5px}.site-header nav{display:none}.menu-toggle{display:flex;gap:15px;align-items:center;font-size:11px}.menu-toggle span{font-size:22px}.intro{grid-template-columns:1fr;gap:35px;margin-bottom:50px}.intro-copy{max-width:440px}.intro-copy>p:first-child{font-size:19px}.service-row{grid-template-columns:22px 1fr 95px;gap:12px;padding:25px 0}.service-row h3{font-size:25px}.service-row p{grid-column:2/3;font-size:11px}.service-row img{grid-column:3;grid-row:1/3;width:95px;height:125px}.heading-row{display:block}.heading-row p{margin-top:25px}.filters{gap:20px;margin-top:35px}.filters button{font-size:10px}.project-grid{gap:30px 20px}.project-card:nth-child(even){margin-top:60px}.project-meta{display:block;margin-top:13px}.project-meta h3{font-size:24px}.project-meta small{font-size:8px;display:block}.project-image{aspect-ratio:3/4}.project-image>span{width:28px;height:28px;right:10px;bottom:10px;font-size:17px}.color-layout,.about-layout,.benefit-layout,.contact-layout{grid-template-columns:1fr;gap:45px}.color-layout p{max-width:100%}.swatch-showcase>img{height:440px}.about-layout>img{height:420px}.about-layout h2{font-size:65px}.about-layout p{max-width:100%}.process h2{margin-bottom:45px}.process-grid{grid-template-columns:1fr;gap:0}.process-grid article{display:grid;grid-template-columns:35px 1fr;column-gap:25px;padding:22px 0}.process-grid article>span{font-size:30px;grid-row:1/3}.process-grid h3{margin:0 0 8px;font-size:28px}.process-grid p{grid-column:2;margin:0}.benefit-layout{gap:45px}.contact h2{font-size:61px}form{padding:25px 20px}.contact-layout{gap:50px}footer{padding:45px 6vw 30px}footer>div{flex-direction:column;gap:14px;margin-top:30px}.back-top{top:36px}.footer-brand{font-size:9.2vw}.dialog-copy{padding:30px}.dialog-copy h2{font-size:40px}dialog[open]{grid-template-columns:1fr}.dialog-image{min-height:0}.dialog-image img{height:52svh}}
@media(max-width:380px){h2{font-size:51px}.form-grid{grid-template-columns:1fr}.full{grid-column:1}.project-grid{gap:30px 15px}.filters{gap:14px}.service-row h3{font-size:21px}.form-heading{gap:10px}.form-heading h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.wall-camera{will-change:auto}.logo-object{will-change:auto}}

@media(max-width:800px){input,select,textarea{font-size:16px}.filters button{min-height:44px}.swatches button{width:44px;height:44px}.menu-toggle{min-height:44px}.email-button{min-height:44px}#close-dialog{width:44px;height:44px}}

/* Vector arrows stay monochrome on every device, including iOS. */
.arrow-icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em;flex-shrink:0;pointer-events:none}

/* Keep the wall in its own stacking context and show a real image until video paints. */
body{isolation:isolate}
.wall-camera{position:relative;background:url('/assets/wall-opening.jpg') center/cover no-repeat}
.wall-fallback,.wall-camera video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wall-camera video{opacity:0}
.wall-camera video.is-playing{opacity:1}
/* Mobile dialogs use natural block flow so the image cannot shrink its row over the copy. */
@media(max-width:800px){
 dialog[open]{display:block;max-height:90svh;overflow-y:auto;-webkit-overflow-scrolling:touch}
 .dialog-image{height:48svh;min-height:0;overflow:hidden}
 .dialog-image img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain}
 .dialog-copy{position:relative;padding:32px 26px 36px;background:#e5e6dd}
 .dialog-copy h2{font-size:36px;line-height:1.1;margin:20px 0}
}

/* The poster, fallback, and video share exactly the same color treatment. */
.wall-camera{filter:saturate(0)}
