@font-face{font-family:Cabin Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/cabin-vietnamese-wght-normal.Ccotw_Ab.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cabin Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/cabin-latin-ext-wght-normal.CiC-id32.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cabin Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/cabin-latin-wght-normal.DZW_uTKI.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#e9eae5;--ink:#182720;--forest:#293a34;--copper:#8e624e;--muted:#4b5750;--rule:#bcc3b9;--pad:3.9vw;--font:"Cabin Variable",sans-serif;color:var(--ink);background:var(--paper);font-family:var(--font);font-synthesis:none;scroll-behavior:smooth;scrollbar-color:var(--copper) var(--paper)}*{box-sizing:border-box}body{margin:0}::selection{background:var(--forest);color:var(--paper)}a{color:inherit;text-underline-offset:.22em}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--copper);outline-offset:5px}button:disabled{cursor:wait;opacity:.65}img{max-width:100%;height:auto;display:block}figure,p,h1,h2,h3{margin:0}h1,h2,h3{text-wrap:balance;font-weight:400}h1{letter-spacing:-.035em;font-size:clamp(3.5rem,5.75vw,6rem);line-height:1.03}h2{letter-spacing:-.03em;font-size:clamp(2.4rem,3.6vw,4rem);line-height:1.08}p{max-width:65ch;font-size:1.2rem;line-height:1.5}p+p{margin-top:1rem}[hidden]{display:none!important}.section-pad{padding-left:var(--pad);padding-right:var(--pad)}.sr-only,.skip-link:not(:focus){clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{z-index:20;background:var(--forest);color:#fff;padding:16px;position:fixed;top:12px;left:12px}.button{background:var(--forest);color:#fff;border:1px solid #0000;justify-content:center;align-items:center;min-height:48px;padding:14px 30px;text-decoration:none;transition:background .18s ease-out;display:inline-flex}.button:hover{background:#42594c}.site-header{height:7.94vw;min-height:108px;padding:1.3vw var(--pad) 0;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.brand{flex-shrink:0;width:13vw;min-width:168px;height:6.9vw;min-height:88px;display:block;position:relative;overflow:hidden}.brand img{width:100%;max-width:none;height:auto;top:calc(-.58 * var(--logo-width));position:absolute}.brand{--logo-width:max(168px,13vw);width:var(--logo-width);height:calc(var(--logo-width) * .61)}.site-header nav{align-items:center;gap:2.8vw;padding-top:5px;font-size:clamp(1rem,1.1vw,1.2rem);display:flex}.site-header nav>a:not(.button){padding:12px 0;text-decoration:none}.site-header nav>a:not(.button):hover{text-decoration:underline}.hero{min-height:31.5vw;margin:0 var(--pad);position:relative}.hero-copy{z-index:3;width:38%;padding-top:3vw;position:relative}.hero-copy h1{max-width:9.7em}.hero-copy p{margin-top:1.45vw;font-size:clamp(1.25rem,1.86vw,1.9rem);line-height:1.25}.hero-cta{min-height:4.4vw;margin-top:2.3vw;padding:18px 44px;font-size:clamp(1.1rem,1.5vw,1.5rem)}.hero-images{height:100%;position:absolute;top:0;left:38.85%;right:0}.hero-images figure{position:absolute}.hero-images img{object-fit:cover;width:100%;height:100%}.hero-stone{z-index:2;outline:7px solid var(--paper);width:65.5%;height:24.2vw;top:0;left:0}.hero-brick{z-index:1;width:41.85%;height:29.3vw;top:4vw;right:0}.hero-images figcaption,.placeholder-project figcaption{color:#fff;letter-spacing:.12em;text-transform:uppercase;background:#182720db;max-width:100%;padding:10px 15px;font-size:.72rem;position:absolute;bottom:0;left:0}.city-band{background:var(--forest);color:#fff;min-height:6.7vw;padding:23px var(--pad);letter-spacing:.01em;align-items:center;gap:1.05rem;font-size:clamp(1.3rem,2.25vw,2.35rem);display:flex}.portfolio{grid-template-columns:27.7% 1fr;gap:2%;padding-top:24px;padding-bottom:100px;display:grid}.portfolio-intro{padding:45px 30px 0 42px}.portfolio-intro p{max-width:27ch;color:var(--muted);margin-top:26px;font-size:1rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:22px;display:grid}.placeholder-project{aspect-ratio:1.92;position:relative;overflow:hidden}.placeholder-project img,.project-image img{object-fit:cover;width:100%;height:100%}.project-link{text-decoration:none}.project-image{overflow:hidden}.project-image img{height:auto;transition:transform .4s cubic-bezier(.16,1,.3,1)}.project-link:hover img{transform:scale(1.035)}.project-link h3{margin-top:18px;font-size:1.6rem}.project-link p{color:var(--muted);margin-top:5px;font-size:1rem}.project-link:hover h3{text-underline-offset:.18em;text-decoration:underline}.filters{flex-wrap:wrap;gap:8px;margin-bottom:22px;display:flex}.filters button{border:1px solid var(--forest);color:var(--forest);background:0 0;min-height:44px;padding:10px 18px}.filters button[aria-pressed=true]{background:var(--forest);color:#fff}.about,.service-area,.contact,.services{grid-template-columns:1fr 1fr;gap:10%;padding-top:85px;padding-bottom:85px;display:grid}.about{border-top:1px solid var(--rule)}.about h2{max-width:13ch}.about p,.service-area p,.contact p{max-width:48ch}.text-link{margin-top:26px;font-size:1.15rem;display:inline-block}.text-link span{margin-left:12px}.service-area{background:#dde0d6}.contact{background:var(--forest);color:#fff}.contact h2{max-width:16ch}.contact p{color:#e0e5dd;margin-top:24px}.contact-action{align-self:center}.contact-action p:first-child{margin-top:0}.contact-note{font-size:1.6rem}.light-button{color:var(--forest);background:var(--paper);margin-top:24px}.light-button:hover{background:#fff}.contact-details{overflow-wrap:anywhere;flex-direction:column;gap:16px;margin-top:24px;font-size:clamp(1.2rem,2vw,2rem);display:flex}.contact-details a:focus-visible{outline-color:#d1b4a0}#contact-challenge{margin-top:24px}.site-footer{padding:36px var(--pad);color:var(--muted);justify-content:space-between;gap:30px;font-size:.95rem;display:flex}.site-footer>a{color:var(--ink);text-decoration:none}.service-list a{border-top:1px solid var(--rule);grid-template-columns:1fr auto;gap:10px;padding:24px 0;text-decoration:none;display:grid}.service-list h3{font-size:1.7rem}.service-list p{grid-column:1;font-size:1.1rem}.service-list span{grid-area:1/2}.service-list a:hover h3{text-decoration:underline}.detail{padding-top:50px;padding-bottom:80px}.detail header{max-width:950px;margin:60px 0}.detail header p{margin-top:24px}.detail-cover{max-width:1100px;margin-inline:auto}.detail-cover img{object-fit:contain;width:100%;height:auto;max-height:1100px}.prose{max-width:72ch;margin:50px auto;font-size:1.2rem;line-height:1.6}.prose>*+*{margin-top:24px}.gallery{grid-template-columns:1fr 1fr;gap:30px;display:grid}.gallery figcaption{color:var(--muted);margin-top:12px}.not-found{padding-top:100px;padding-bottom:140px}.not-found p{margin:32px 0}.not-found .button{margin-top:10px}@media (width>=1800px){:root{--pad:max(60px,calc((100vw - 1660px)/2))}.site-header{height:144px;padding-top:24px}.brand{--logo-width:220px;width:220px;height:134px}.hero{min-height:570px}.hero-copy{padding-top:52px}.hero-copy p{margin-top:25px}.hero-cta{margin-top:34px}.hero-stone{height:437px}.hero-brick{height:528px;top:75px}.city-band{min-height:120px}}@media (width<=1100px) and (width>=761px){.site-header{height:112px}.hero-copy{width:39%;padding-top:20px}.hero-copy h1{font-size:5.65vw}.hero-copy p{margin-top:18px;font-size:1.9vw}.hero-cta{margin-top:20px;padding:14px 22px;font-size:1rem}.hero{min-height:36vw}.hero-stone{height:27vw}.hero-brick{height:34vw}.portfolio-intro{padding:24px 8px 0 0}.portfolio-intro h2{font-size:3.8vw}.portfolio{padding-bottom:65px}.site-header nav{gap:22px}.site-header .nav-contact{padding:12px 18px}.placeholder-project figcaption{letter-spacing:.07em;padding:8px;font-size:.6rem}}@media (width<=760px){:root{--pad:24px}.site-header{align-items:flex-start;gap:16px;height:104px;min-height:0;padding-top:14px}.brand{--logo-width:150px;width:150px;min-width:150px;height:92px;min-height:92px}.site-header nav{gap:20px;padding-top:15px;font-size:1rem}.nav-area,.site-header .nav-contact{display:none}.hero{margin:0 var(--pad);min-height:0}.hero-copy{width:100%;padding-top:24px}.hero-copy h1{max-width:10ch;font-size:clamp(3rem,8.5vw,4.3rem)}.hero-copy p{max-width:32ch;margin-top:24px;font-size:1.3rem;line-height:1.4}.hero-cta{min-height:54px;margin-top:28px;padding:16px 28px;font-size:1.12rem}.hero-images{height:390px;margin-top:42px;position:relative;left:auto;right:auto}.hero-stone{outline-width:5px;width:78%;height:240px}.hero-brick{width:44%;height:280px;top:80px}.hero-images figcaption{letter-spacing:.05em;padding:8px 10px;font-size:.59rem}.city-band{flex-wrap:wrap;gap:8px;min-height:90px;padding-top:20px;padding-bottom:20px;font-size:1.18rem}.portfolio{padding-top:44px;padding-bottom:55px;display:block}.portfolio-intro{padding:0 0 28px}.portfolio-intro h2 br{display:none}.portfolio-intro p{max-width:48ch;margin-top:20px}.project-grid{gap:20px}.placeholder-project{aspect-ratio:.95}.placeholder-project figcaption{letter-spacing:.03em;padding:9px;font-size:.6rem}.about,.service-area,.contact,.services{grid-template-columns:1fr;gap:30px;padding-top:55px;padding-bottom:55px}.about h2{max-width:16ch}h2{font-size:2.6rem}.contact h2 br,.service-area h2 br{display:none}.contact h2{max-width:16ch}.site-footer{flex-direction:column;gap:14px;padding-top:30px;padding-bottom:30px}.gallery{grid-template-columns:1fr}.detail{padding-top:20px}.detail header{margin:40px 0}.detail h1,.not-found h1{font-size:3rem}.not-found{padding-top:70px;padding-bottom:90px}.contact-details,.project-link h3{font-size:1.35rem}.service-list h3{font-size:1.45rem}}@media (width<=370px){:root{--pad:18px}.nav-about{display:none}.hero-copy h1{font-size:2.9rem}.hero-images{height:340px}.hero-stone{height:210px}.hero-brick{height:240px}.city-band{gap:7px;font-size:1.05rem}.project-grid{grid-template-columns:1fr}.placeholder-project{aspect-ratio:1.6}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.enquiry-form{width:100%}.enquiry-fields{grid-template-columns:1fr 1fr;gap:22px 20px;display:grid}.enquiry-fields label{font-size:1rem;line-height:1.4;display:block}.enquiry-fields label span{color:#c6d0c8}.enquiry-fields input,.enquiry-fields textarea{background:var(--paper);width:100%;color:var(--ink);font:inherit;border:1px solid #a4b1a7;border-radius:0;min-height:48px;margin-top:8px;padding:12px 14px;line-height:1.45;display:block}.enquiry-fields textarea{resize:vertical;min-height:160px}.enquiry-fields input:focus-visible,.enquiry-fields textarea:focus-visible{outline-offset:3px;outline:3px solid #d1b4a0}.enquiry-message{grid-column:1/-1}.contact .form-note{margin-top:18px;font-size:.9rem}.enquiry-form .light-button{margin-top:20px}.contact #enquiry-status:empty{display:none}.contact-details{margin-top:34px;font-size:clamp(1.2rem,1.9vw,1.85rem)}.contact-action:has(.enquiry-form){align-self:start}#enquiry-challenge{margin-top:20px}@media (width<=480px){.enquiry-fields{grid-template-columns:1fr}.enquiry-form .light-button{width:100%}}@media (width<=760px){.site-header .nav-about{display:none}}.breadcrumbs ol{flex-wrap:wrap;gap:10px;margin:0;padding:0;font-size:1rem;line-height:1.6;list-style:none;display:flex}.breadcrumbs li+li:before{content:"/";color:var(--muted);margin-right:10px}.breadcrumbs a{color:var(--ink)}.related-projects{max-width:1200px;margin:64px auto 0}.related-projects h2{margin-bottom:28px;font-size:clamp(2rem,3vw,3rem)}.related-project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;display:grid}.related-project-grid img{aspect-ratio:4/3;object-fit:cover;width:100%}.related-project-grid h3{margin-top:18px;font-size:1.5rem}.related-project-grid p{margin-top:12px;font-size:1rem}.related-project-action{color:#794c37;margin-top:16px;text-decoration:underline;display:inline-block}.related-services{max-width:72ch;margin:40px auto 0}.related-services h2{margin-bottom:16px;font-size:2rem}.related-services ul{padding-left:22px}.related-services li{margin-top:12px}.contact .contact-fallback{font-size:.95rem}.site-footer{flex-wrap:wrap}.prose h2{font-size:clamp(1.7rem,2.5vw,2.5rem);line-height:1.2}.prose h3{font-size:1.45rem}.prose ul,.prose ol{padding-left:24px}.prose li+li{margin-top:10px}.project-link .comparison-link-note,.project-link .interior-project-action{color:#794c37}@media (width<=1100px){.site-header nav{gap:18px}.site-header .nav-about{display:none}.related-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.site-header nav{gap:12px;font-size:.9rem}.related-project-grid{grid-template-columns:1fr}.breadcrumbs{margin-top:12px}.hero-copy h1{max-width:13ch;font-size:clamp(2.8rem,8vw,4rem)}}@media (width<=370px){.brand{--logo-width:120px;min-width:120px;height:74px;min-height:74px}.site-header{gap:10px}.site-header nav{gap:10px;font-size:.85rem}}.reviews{border-top:1px solid var(--rule);grid-template-columns:1fr 1.5fr;gap:8%;padding-top:64px;padding-bottom:64px;display:grid}.reviews h2{margin-bottom:24px;font-size:clamp(2rem,3vw,3rem)}.reviews>div>p{font-size:1rem}.review-list{gap:30px;display:grid}.review-list blockquote{margin:0}.review-list blockquote p{font-size:1.25rem;line-height:1.55}.review-list figcaption{color:var(--muted);margin-top:14px;font-size:.95rem}@media (width<=760px){.reviews{grid-template-columns:1fr;gap:32px;padding-top:48px;padding-bottom:48px}}.hero{padding-bottom:32px}@media (width>=761px){.hero-copy h1{font-size:clamp(2.8rem,4vw,4.5rem)}}
