@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--paper:#f2efe9;--ink:#252922;--muted:#62655d;--line:#d0cec6;--forest:#303d34;--clay:#ae6244;--white:#fff;--serif:Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--clay);outline-offset:6px}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;line-height:1.05;letter-spacing:-.045em}h2{font-size:clamp(2.5rem,4.1vw,4.3rem)}em{font-weight:400}p{line-height:1.75}.eyebrow{font-size:.78rem;letter-spacing:.13em;font-weight:550}.skip{position:fixed;left:20px;top:-80px;z-index:100;padding:12px 20px;background:var(--ink);color:var(--paper)}.skip:focus{top:10px}.header{height:100px;padding:0 4.2%;display:flex;align-items:center;justify-content:space-between;gap:32px;position:relative;z-index:20;background:var(--paper);border-bottom:1px solid transparent}.brand{display:flex;align-items:center;gap:19px}.wordmark{font-family:'Manrope',Arial,sans-serif;font-size:66px;font-weight:800;line-height:1;letter-spacing:-.09em;display:block;padding-right:4px}.brand-dot{color:var(--clay)}.brand-caption{font-size:12px;line-height:1.6;letter-spacing:.12em;font-weight:650;padding-left:20px;border-left:1px solid #b9bcb3}.desktop-nav{display:flex;gap:34px;font-size:14px;font-weight:500}.desktop-nav a{position:relative}.desktop-nav a:after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .2s}.desktop-nav a:hover:after{transform:scaleX(1)}.header-contact{display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--ink);padding:8px 0;font-size:14px;font-weight:550}.header-contact span{font-size:23px;font-weight:400}.menu-toggle{display:none}.mobile-nav[hidden]{display:none}.hero{margin:0 24px;min-height:650px;height:calc(100svh - 128px);max-height:940px;position:relative;background:#3c4a43;color:var(--white);overflow:hidden}.hero-image{position:absolute;inset:0;object-position:center 55%;animation:hero-reveal 1.2s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,17,12,.19) 0%,rgba(8,17,12,.08) 25%,rgba(8,17,12,.48) 65%,rgba(8,17,12,.74) 100%)}.hero-top{position:absolute;top:37px;left:3.1%;right:3.1%;display:flex;justify-content:space-between;align-items:center}.hero-index{font-size:13px;letter-spacing:.1em}.hero-content{position:absolute;bottom:48px;left:4.6%;right:4.6%}.hero h1{font-size:clamp(4rem,7.6vw,8.3rem);line-height:1.03;max-width:1050px;text-shadow:0 2px 18px #17231733;animation:enter .8s ease-out both}.hero h1 em{color:#ece9dc}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:28px;gap:30px}.hero p{font-size:16px;line-height:1.7;color:#f0f0e9}.hero-link{display:flex;align-items:center;gap:55px;border-bottom:1px solid #fff8;padding-bottom:13px;font-size:14px}.hero-link span{font-size:26px;transition:transform .2s}.hero-link:hover span{transform:translateY(4px)}.discipline-bar{margin:0 6.4%;display:flex;gap:32px;align-items:center;justify-content:center;min-height:100px;border-bottom:1px solid var(--line);font-size:14px;letter-spacing:.03em;color:var(--muted)}.discipline-bar i{display:block;width:4px;height:4px;border-radius:50%;background:var(--clay)}.section-space{padding:110px 6.4%}.services{display:grid;grid-template-columns:1fr 1.1fr;gap:10%}.section-label{display:block;margin-bottom:28px;color:var(--muted)}.section-intro p{max-width:390px;margin-top:28px;color:var(--muted)}.text-link{display:inline-flex;align-items:center;gap:28px;font-size:14px;font-weight:550;margin-top:28px;padding-bottom:7px;border-bottom:1px solid var(--ink)}.text-link span{font-size:21px}.service-list{padding-top:38px}details{border-bottom:1px solid var(--line)}details:first-child{border-top:1px solid var(--line)}summary{cursor:pointer;display:flex;align-items:center;gap:20px;padding:28px 0;list-style:none;font-size:clamp(1.2rem,1.8vw,1.65rem);font-weight:450;line-height:1.4}summary::-webkit-details-marker{display:none}.service-number{font-size:12px;color:var(--muted);align-self:center;margin-right:10px}.expand{width:17px;height:17px;position:relative;margin-left:auto;flex-shrink:0}.expand:before,.expand:after{content:'';display:block;position:absolute;width:16px;height:1px;background:var(--ink);top:8px;left:0}.expand:after{transform:rotate(90deg);transition:transform .2s}details[open] .expand:after{transform:rotate(0)}.detail-body{padding:0 25px 30px 44px;color:var(--muted);font-size:15px}.service-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.service-tags span{font-size:12px;border:1px solid var(--line);padding:4px 10px;border-radius:2px}.workshop{display:grid;grid-template-columns:1.12fr 1fr;margin:0 24px;background:var(--forest);color:var(--paper)}.workshop-photo{position:relative;min-height:670px;overflow:hidden}.workshop-photo img{object-position:22% center;position:absolute;transform:scale(1.12);filter:saturate(.78)}.photo-caption{position:absolute;bottom:0;left:0;right:0;padding:50px 30px 25px;background:linear-gradient(transparent,#14201bb8);display:flex;justify-content:space-between;gap:15px;font-size:12px;letter-spacing:.13em}.workshop-copy{padding:65px 13% 55px;display:flex;flex-direction:column;align-items:flex-start}.workshop-copy>.eyebrow{color:#c2cabe;margin-bottom:38px}.workshop h2{font-size:clamp(2.7rem,4.3vw,4.8rem)}.workshop-copy p{margin-top:26px;color:#d0d6cc;font-size:15px;max-width:400px}.workshop-copy p+p{margin-top:17px}.workshop-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #8b988956;padding-top:25px;margin-top:45px;width:100%;gap:20px}.workshop-foot>span{font-size:13px;line-height:1.6;color:#d0d6cc}.circle-link{width:54px;height:54px;display:grid;place-items:center;border:1px solid #a6b09e;border-radius:50%;font-size:25px;transition:background .2s,color .2s}.circle-link:hover{background:var(--paper);color:var(--forest)}.about{display:grid;grid-template-columns:1fr 1fr;gap:11%;padding-top:125px;padding-bottom:90px}.about-body{padding-top:44px}.about-body .large-copy{font-size:22px;line-height:1.5;margin-bottom:25px}.about-body>p:not(.large-copy){font-size:15px;color:var(--muted);max-width:450px;margin-top:16px}.signature{display:flex;align-items:center;gap:22px;margin-top:35px}.signature>.wordmark{font-size:47px;color:var(--clay)}.signature>span:last-child{font-size:12px;line-height:1.6;letter-spacing:.13em;color:var(--muted)}.process{margin:0 6.4% 115px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:35px 0}.process article{padding:0 32px;border-right:1px solid var(--line)}.process article:first-child{padding-left:0}.process article:last-child{border-right:0}.process article>span{font-size:12px;letter-spacing:.1em;color:var(--muted)}.process h3{font-size:18px;font-weight:500;margin-top:15px}.process p{font-size:14px;color:var(--muted);margin-top:10px;max-width:300px}.contact{display:grid;grid-template-columns:1.15fr 1fr;background:var(--forest);color:var(--paper);gap:12%;padding-top:90px;padding-bottom:95px}.contact-head>.eyebrow{display:block;color:#bdc7b8;margin-bottom:27px}.contact h2{font-size:clamp(3.2rem,5.1vw,5.4rem)}.contact-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;padding:16px 22px;border:1px solid #bcc6b3;margin-top:34px;font-size:14px;transition:background .2s,color .2s}.contact-cta:hover{background:var(--paper);color:var(--forest)}.contact-cta span{font-size:22px}.contact-details{padding-top:5px;display:flex;flex-direction:column;gap:43px}.contact-details .eyebrow{font-size:12px;color:#bdc7b8;display:block;margin-bottom:16px}.phone{display:block;font-size:clamp(1.7rem,2.6vw,2.7rem);letter-spacing:-.03em;line-height:1.3}.email{display:inline-block;font-size:17px;color:#d3dbce;margin-top:8px;border-bottom:1px solid transparent}.email:hover{border-color:currentColor}address{font-style:normal;line-height:1.9;font-size:15px;color:#e1e7dd}.map-link{display:inline-flex;gap:22px;font-size:13px;margin-top:14px;border-bottom:1px solid #b8c4b07a;padding-bottom:4px}footer{display:flex;align-items:center;justify-content:space-between;padding:24px 6.4%;gap:20px}.footer-brand{font-family:'Manrope',Arial,sans-serif;font-size:46px;line-height:1;font-weight:800;letter-spacing:-.09em}.footer-brand:hover{color:var(--clay)}footer>span{font-size:12px;color:var(--muted)}.back-top{display:flex;gap:20px;font-size:12px}.back-top span{font-size:19px;line-height:1}
@keyframes enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-reveal{from{transform:scale(1.035)}to{transform:scale(1)}}
@media(min-width:1700px){body{max-width:2000px;margin:auto}.hero h1{font-size:8.5rem}}
@media(max-width:1100px){.header{padding:0 4%;gap:20px}.desktop-nav{gap:22px}.brand-caption{display:none}.hero{height:78svh;min-height:590px}.hero h1{font-size:clamp(4rem,8.5vw,6.5rem)}.section-space{padding:85px 6%}.services{gap:7%}.workshop-copy{padding:55px 10%}.workshop-photo{min-height:630px}.about{gap:7%}.process{margin-bottom:85px}.contact{gap:7%}.contact h2{font-size:4rem}}
@media(max-width:760px){html{scroll-padding-top:20px}.header{height:82px;padding:0 23px;gap:15px}.wordmark{font-size:56px}.header-contact{font-size:12px;gap:10px;margin-left:auto;padding:4px 0}.header-contact span{font-size:21px}.desktop-nav{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;align-items:center;width:42px;height:44px;background:transparent;border:0;cursor:pointer;padding:8px;margin-left:5px}.menu-toggle span{width:23px;height:1px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.mobile-nav{position:fixed;top:82px;left:0;right:0;bottom:0;background:var(--paper);z-index:19;padding:35px 8%;display:flex;flex-direction:column;align-items:flex-start;gap:22px;overflow:auto}.mobile-nav a{font-family:var(--serif);font-size:36px;border-bottom:1px solid var(--line);padding-bottom:12px;width:100%}.hero{margin:0 12px;height:calc(88svh - 82px);min-height:570px;max-height:850px}.hero-image{object-position:57% center}.hero-top{top:24px;left:24px;right:24px}.hero .eyebrow{font-size:12px;letter-spacing:.12em}.hero-index{font-size:12px}.hero-content{left:25px;right:25px;bottom:30px}.hero h1{font-size:clamp(2.7rem,9.3vw,4.3rem);letter-spacing:-.05em;line-height:1.07}.hero-bottom{display:block;margin-top:22px}.hero p{font-size:14px}.hero-link{margin-top:28px;max-width:180px;gap:30px;justify-content:space-between;font-size:13px;padding-bottom:7px}.hero-shade{background:linear-gradient(180deg,#0c1b1629 20%,#0c1b1666 45%,#0c1b16d6 100%)}.discipline-bar{margin:0 24px;gap:13px;justify-content:space-between;min-height:90px;font-size:12px;letter-spacing:0;line-height:1.5}.discipline-bar i{width:3px;height:3px;flex-shrink:0}.discipline-bar span{text-align:center}.section-space{padding:66px 25px}.services{display:block}.section-label{margin-bottom:23px}.section-intro h2{font-size:clamp(2.45rem,8vw,3.5rem)}.section-intro p{font-size:15px;max-width:100%;margin-top:22px}.text-link{font-size:13px;margin-top:23px}.service-list{padding-top:45px}summary{padding:23px 0;gap:12px;font-size:20px}.service-number{margin-right:6px}.detail-body{padding-left:33px;font-size:14px;padding-right:0;padding-bottom:26px}.workshop{margin:0 12px;grid-template-columns:1fr}.workshop-photo{min-height:440px}.workshop-photo img{object-position:25% center;transform:scale(1)}.photo-caption{padding:40px 22px 20px;font-size:12px}.workshop-copy{padding:42px 27px}.workshop-copy>.eyebrow{font-size:12px;margin-bottom:28px}.workshop h2{font-size:3.1rem}.workshop-copy p{font-size:14px}.workshop-foot{margin-top:30px;padding-top:20px}.about{display:block;padding-bottom:55px}.about-heading h2{font-size:clamp(2.4rem,8vw,3.5rem)}.about-body{padding-top:32px}.about-body .large-copy{font-size:20px}.about-body>p:not(.large-copy){font-size:14px}.signature{margin-top:25px}.process{margin:0 25px 65px;display:block;padding:0}.process article,.process article:first-child,.process article:last-child{border-right:0;padding:25px 0;border-bottom:1px solid var(--line)}.process article:last-child{border-bottom:0}.process h3{font-size:19px;margin-top:9px}.process p{max-width:100%;font-size:14px;margin-top:7px}.contact{display:block;padding:58px 27px}.contact h2{font-size:3.2rem}.contact-head>.eyebrow{font-size:12px;margin-bottom:25px}.contact-cta{margin-top:27px;font-size:13px;padding:13px 18px;gap:45px}.contact-details{margin-top:47px;padding-top:35px;border-top:1px solid #91a38d66;gap:28px}.phone{font-size:29px}.contact-details .eyebrow{margin-bottom:12px}.email{font-size:16px}address{font-size:14px}footer{padding:24px;display:grid;grid-template-columns:1fr auto;gap:17px}.footer-brand{font-size:42px}footer>span{grid-column:1/-1;grid-row:2;font-size:12px}.back-top{font-size:12px;gap:12px}}
@media(max-width:360px){.header{padding:0 16px}.header-contact{font-size:12px}.hero-content{left:20px;right:20px}.hero h1{font-size:2.5rem}.hero-top{left:20px;right:20px}.hero .eyebrow{font-size:12px}.hero-index{display:none}.hero p br{display:none}.discipline-bar{gap:8px}summary{font-size:18px}.contact h2{font-size:2.7rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Readable text across desktop and touch layouts. */
p,.detail-body,.workshop-copy p,.about-body>p:not(.large-copy),.section-intro p,.hero p,.process p,address,.service-list .detail-body{font-size:16px}

.projects{padding-bottom:0}.projects-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:45px}.projects-head>p{color:var(--muted);padding-bottom:5px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.project-image{display:block;width:100%;height:auto;aspect-ratio:4/5;position:relative;overflow:hidden;padding:0;border:0;background:#dfddd4;cursor:pointer}.project-image img{transition:transform .5s ease}.project-image:hover img{transform:scale(1.035)}.image-open{position:absolute;bottom:18px;right:18px;display:grid;place-items:center;width:40px;height:40px;background:var(--paper);color:var(--ink);font-size:22px}.project-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px}.project-meta h3{font-size:21px;font-weight:500;letter-spacing:-.025em}.project-meta>span{font-size:12px;color:var(--muted)}.project>p{font-size:14px;color:var(--muted);margin-top:4px}.project:nth-child(2){padding-top:65px}.projects+.services{padding-top:120px}#project-dialog{padding:0;border:0;background:#1e241f;color:#f2efe9;width:min(1000px,94vw);height:min(92svh,1100px);max-height:94svh;overflow:hidden}#project-dialog::backdrop{background:#0c140ce8}#project-dialog>img{height:calc(100% - 105px);width:100%;object-fit:contain;background:#111812}.dialog-close{position:absolute;top:15px;right:15px;display:grid;place-items:center;z-index:1;width:44px;height:44px;border:1px solid #c7d1c266;background:#273429;color:#fff;cursor:pointer;font-size:23px}.dialog-caption{height:105px;padding:18px 25px}.dialog-caption h2{font:500 23px var(--sans);letter-spacing:-.02em}.dialog-caption p{font-size:14px;color:#bfc8b9;margin-top:6px}body:has(#project-dialog[open]){overflow:hidden}
@media(max-width:1100px){.desktop-nav{gap:20px}.project-grid{gap:20px}.project-meta h3{font-size:19px}.project:nth-child(2){padding-top:40px}}
@media(max-width:760px){.projects-head{display:block;margin-bottom:30px}.projects-head>p{margin-top:22px}.projects-head h2{font-size:3rem}.project-grid{grid-template-columns:1fr;gap:35px}.project:nth-child(2){padding-top:0}.project-image{aspect-ratio:4/4.4}.project-meta{margin-top:15px}.project-meta h3{font-size:23px}.project>p{font-size:14px}.projects{padding-bottom:0}.projects+.services{padding-top:75px}.dialog-caption{padding:15px 20px}.dialog-caption h2{font-size:20px}.dialog-caption p{font-size:12px}#project-dialog{width:94vw;height:85svh}}
