@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{--paper:#f2f1ed;--ink:#222722;--line:#d7d8d1;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;width:100%;height:auto}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #cbaa70;outline-offset:5px}.skip{position:fixed;top:-100px;left:15px;background:var(--paper);padding:12px;z-index:30}.skip:focus{top:15px}.site-header{height:117px;position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:25px 3.6%;gap:30px;color:white;background:linear-gradient(#0006,transparent)}.brand{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-weight:800;font-size:35px;line-height:.8;letter-spacing:-.5px;position:relative}.brand span{position:absolute;left:125px;top:4px;font:8px/1.7 var(--sans);letter-spacing:1.5px;width:115px;border-left:1px solid #ffffff70;padding-left:19px}.site-header nav{display:flex;gap:33px;font-size:11px;margin-left:150px}.site-header nav a{padding:8px 0}.inquire{font-size:11px;border-bottom:1px solid #ffffff80;padding:9px 0}.inquire span{font-size:18px;margin-left:22px}.menu-toggle{display:none}.cover{position:relative;height:100svh;min-height:680px;max-height:1300px;isolation:isolate;overflow:hidden;color:#fff;scroll-margin-top:0}.cover-image{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;z-index:-3}.exterior .cover-image{object-position:50% 52%}.interior .cover-image{object-position:50% 68%}.commercial .cover-image{object-position:50% 50%}.cover-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#0002 0%,transparent 35%,#10161112 48%,#101611a6 100%)}.interior .cover-shade{background:linear-gradient(180deg,#0001,transparent 40%,#1d20192b 60%,#1d20199c)}.cover-label{position:absolute;bottom:15.5%;left:5.1%;max-width:82%}.eyebrow{font-size:9px;font-weight:500;letter-spacing:1.6px;line-height:1.7;margin:0}h1,.cover h2{font-size:clamp(62px,7.3vw,122px);font-weight:450;letter-spacing:-.057em;line-height:.98;margin:21px 0 28px}.cover-link{display:inline-flex;align-items:center;gap:58px;font-size:11px;border-bottom:1px solid #ffffff8a;padding-bottom:11px}.cover-link span{font-size:19px}.cover-bottom{position:absolute;left:5.1%;right:5.1%;bottom:28px;display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.3px;border-top:1px solid #ffffff50;padding-top:20px;gap:25px}.cover-bottom a span{font-size:18px;margin-left:20px}.section-index{position:absolute;right:3.6%;top:50%;display:flex;flex-direction:column;gap:23px;font-size:9px;color:#ffffff85}.section-index a{padding-left:13px;border-left:1px solid #ffffff50}.section-index .current{color:white;border-left:2px solid white}.collection{padding:65px 5.1% 78px}.collection-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-bottom:35px}.collection-heading h2{font-size:25px;font-weight:450;letter-spacing:-.9px;margin:0;max-width:340px}.collection-heading p{font-size:11px;line-height:1.8;margin:0;color:#70766e}.collection-heading .eyebrow{font-size:8px;padding-top:5px;color:#70766e}.two-up{display:grid;grid-template-columns:1fr 1fr;gap:25px}.three-up{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.image-button{display:block;width:100%;padding:0;border:0;background:#d9dcd2;position:relative;cursor:pointer;overflow:hidden}.two-up img{height:390px;object-fit:cover}.three-up img{height:345px;object-fit:cover}.three-up .kitchen-thumb{object-position:50% 70%}.image-arrow{position:absolute;right:16px;bottom:16px;display:grid;place-items:center;width:36px;height:36px;background:#f2f1ed;color:var(--ink);font-size:19px}.caption{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:17px}.caption h3{font-size:13px;font-weight:500;margin:0;letter-spacing:-.2px}.caption>span{font-size:7px;letter-spacing:.9px;color:#747a70;text-align:right}.studio{padding:74px 5.1% 90px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:5%}.studio .eyebrow{font-size:8px;max-width:180px}.studio h2{font-size:33px;letter-spacing:-1.3px;line-height:1.15;font-weight:450;margin:0}.studio>div p{font-size:12px;line-height:1.9;color:#70766e;margin:0 0 22px}.inline-link{display:inline-flex;gap:35px;align-items:center;font-size:11px;border-bottom:1px solid #92998b;padding-bottom:8px}.inline-link span{font-size:18px}.contact{background:#202820;color:#f2f1ed;padding:65px 5.1% 35px}.contact-title{font-size:clamp(43px,6vw,97px);font-weight:450;letter-spacing:-.05em;line-height:1.06;display:block;position:relative;padding:35px 110px 60px 0}.contact-title>span{position:absolute;right:0;top:35px;font-size:80px;font-weight:400}.contact-details{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff30;padding-top:25px}.contact-details>a{font-size:16px}.contact-details>span{font-size:8px;letter-spacing:1.3px;color:#aeb8a7}footer{display:flex;justify-content:space-between;padding:22px 5.1%;font-size:9px;color:#73796f}dialog{border:0;width:min(1100px,94vw);max-height:93svh;background:var(--paper);padding:30px;color:var(--ink);overscroll-behavior:contain}dialog::backdrop{background:#101811d9;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.dialog-top button{background:transparent;border:1px solid var(--line);padding:10px 15px;cursor:pointer;font-size:11px}dialog h2{font-size:40px;font-weight:450;letter-spacing:-1.5px;margin:25px 0 15px}dialog>p{font-size:13px;line-height:1.8;max-width:650px;color:#70766e}#dialog-gallery{display:grid;gap:20px;margin-top:25px}#dialog-gallery img{max-height:80svh;object-fit:contain;background:#e7e8e1}.dialog-cta{margin-top:30px}[hidden]{display:none!important}
@media(min-width:1800px){.two-up img{height:530px}.three-up img{height:480px}}@media(max-width:1000px){.brand span{display:none}.site-header nav{margin-left:0;gap:24px}.two-up img{height:300px}.three-up img{height:270px}.collection-heading{gap:25px}.collection-heading h2{font-size:22px}.collection-heading p{max-width:190px}.studio{grid-template-columns:1fr 1.5fr;gap:30px}.studio>div{grid-column:2}.caption{display:block}.caption>span{display:block;margin-top:7px;text-align:left}}
@media(max-width:650px){html{scroll-padding-top:20px}.site-header{height:95px;padding:24px 6%;align-items:flex-start}.brand{font-size:30px}.site-header nav,.inquire{display:none}.menu-toggle{display:block;border:0;background:transparent;color:#fff;font-size:11px;padding:5px 0}.menu-toggle span{font-size:19px;margin-left:14px;vertical-align:-1px}#mobile-menu{position:absolute;top:83px;left:6%;right:6%;padding:22px;background:#202820;z-index:20;color:white}#mobile-menu a{display:block;padding:12px 0;font-size:16px;border-bottom:1px solid #ffffff25}.cover{min-height:620px;max-height:none}.exterior .cover-image{object-position:48% 50%}.interior .cover-image{object-position:46% 60%}.commercial .cover-image{object-position:34% 50%}.cover-label{left:6%;bottom:19%;max-width:88%}h1,.cover h2{font-size:clamp(48px,12vw,76px);letter-spacing:-.06em;margin:18px 0 24px}.eyebrow{font-size:7px;letter-spacing:1.25px}.cover-link{font-size:10px;gap:40px}.cover-bottom{left:6%;right:6%;bottom:22px;padding-top:18px;font-size:6px;letter-spacing:1px;align-items:flex-end}.cover-bottom>span{max-width:160px;line-height:1.8}.cover-bottom a{max-width:145px;text-align:right;font-size:6px;line-height:1.8}.cover-bottom a span{margin-left:8px;font-size:16px}.section-index{right:6%;top:auto;bottom:40%;gap:15px;font-size:8px}.collection{padding:38px 6% 43px}.collection-heading{display:block;margin-bottom:23px}.collection-heading h2{font-size:24px;max-width:290px}.collection-heading p{font-size:11px;margin:14px 0 18px;max-width:none}.collection-heading .eyebrow{font-size:7px}.two-up,.three-up{grid-template-columns:1fr;gap:27px}.two-up img{height:auto;aspect-ratio:1.28;object-fit:cover}.three-up img{height:auto;aspect-ratio:1.15;object-fit:cover}.three-up article:nth-child(2) img{object-position:center 55%}.caption{display:flex;align-items:baseline;gap:15px;padding-top:13px}.caption h3{font-size:12px}.caption>span{font-size:6px;letter-spacing:.6px;text-align:right;max-width:145px;margin-top:0}.image-arrow{width:32px;height:32px;right:12px;bottom:12px;font-size:17px}.studio{padding:43px 6% 48px;display:block}.studio h2{font-size:33px;margin:23px 0}.studio>div p{max-width:360px;font-size:12px}.contact{padding:40px 6% 28px}.contact-title{font-size:40px;letter-spacing:-1.8px;padding:30px 30px 45px 0}.contact-title>span{font-size:37px;top:32px;right:0}.contact-details{display:block;padding-top:21px}.contact-details>a{font-size:14px}.contact-details>span{display:block;font-size:6px;margin-top:18px;letter-spacing:1px}footer{font-size:8px;padding:21px 6%}dialog{padding:20px}dialog h2{font-size:31px}.dialog-top .eyebrow{font-size:7px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Unified architectural wordmark. */
.site-header{height:142px;align-items:center;background:linear-gradient(180deg,#111a1766,transparent)}
.brand{font-family:Georgia,'Times New Roman',serif;font-size:72px;font-weight:400;letter-spacing:-4.5px;line-height:.95;white-space:nowrap;text-shadow:0 2px 18px #14201755}

.brand span{position:static;display:block;width:auto;border:0;padding:0;margin-top:15px;font:8px/1.4 var(--sans);letter-spacing:3.1px;text-shadow:0 1px 8px #0009}
.site-header nav{margin-left:0}
@media(max-width:1000px){.brand{font-size:59px;letter-spacing:-3.7px}.brand span{display:block;font-size:7px;letter-spacing:2.2px}.site-header{gap:22px}.site-header nav{gap:22px}}
@media(max-width:650px){.site-header{height:112px;align-items:flex-start;padding-top:24px}.brand{font-size:47px;letter-spacing:-3px}.brand span{font-size:6px;letter-spacing:1.8px;margin-top:10px}.menu-toggle{margin-top:9px}#mobile-menu{top:108px}}

/* Unified FITCH CG wordmark. */
.brand{letter-spacing:-4px}
@media(max-width:1000px){.brand{letter-spacing:-3.2px}}
@media(max-width:650px){.brand{letter-spacing:-2.6px}}

/* Full-cover shading without a panel boundary or repeating edge. */
.cover-shade{border:0;outline:0;box-shadow:none;background-repeat:no-repeat;background-size:100% 100%}

.cover-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 52%;z-index:-2;opacity:0;pointer-events:none}.cover-video.is-playing{opacity:1}.cover-shade{z-index:-1}.motion-toggle{position:absolute;right:5.1%;bottom:105px;z-index:2;color:white;background:#16201766;border:1px solid #ffffff60;padding:10px 13px;font:10px var(--sans);cursor:pointer}.exterior .section-index{z-index:1}@media(max-width:650px){.cover-video{object-position:48% 50%}.motion-toggle{right:6%;bottom:115px;font-size:9px}}

.interior .cover-video{object-position:50% 68%}#dialog-gallery video{width:100%;max-height:80svh;background:#172017;display:block}@media(max-width:650px){.interior .cover-video{object-position:46% 60%}}


/* Readable navigation across desktop and compact screens. */
.site-header nav,.site-header .inquire{font-size:clamp(16px,.9vw,24px);font-weight:500;line-height:1.5;text-shadow:0 1px 10px #0008}
.site-header nav{gap:clamp(26px,1.6vw,48px)}
.site-header nav a{padding:12px 0}
.site-header .inquire span{font-size:1.3em;margin-left:18px}
.brand span{font-size:clamp(10px,.5vw,14px);letter-spacing:.24em}
@media(max-width:1000px){
 .site-header nav,.site-header .inquire{display:none}
 .menu-toggle{display:block;border:0;background:transparent;color:#fff;font-size:16px;padding:10px 0;cursor:pointer}
 .menu-toggle span{font-size:22px;margin-left:14px;vertical-align:-1px}
 #mobile-menu{position:absolute;top:125px;left:6%;right:6%;padding:22px;background:#202820;z-index:20;color:#fff}
 #mobile-menu a{display:block;padding:12px 0;font-size:18px;border-bottom:1px solid #ffffff25}
 .brand span{font-size:10px;letter-spacing:.18em}
}
@media(max-width:650px){
 .brand span{font-size:9px;letter-spacing:.16em}
 .menu-toggle{margin-top:7px;font-size:16px}
 #mobile-menu{top:112px}
}
/* Spatial F identity: scalable one-color mark and spaced wordmark. */
.brand.brand-spatial{display:inline-flex;align-items:center;gap:20px;flex-shrink:0;font-family:var(--sans);font-size:inherit;letter-spacing:normal;line-height:1;color:#fff;text-shadow:0 1px 12px #0005}
.brand-spatial .brand-mark{display:block;width:clamp(64px,4.3vw,100px);height:auto;flex-shrink:0;filter:drop-shadow(0 1px 8px #0002)}
.brand-spatial .brand-copy{display:flex;flex-direction:column;gap:14px}
.brand.brand-spatial .brand-name{display:block;position:static;margin:0;padding:0;width:auto;border:0;font:500 clamp(26px,1.8vw,44px)/1.1 var(--sans);letter-spacing:.14em;white-space:nowrap}
.brand.brand-spatial .brand-tagline{display:block;position:static;margin:0;padding:0;width:auto;border:0;font:500 clamp(9px,.43vw,12px)/1.4 var(--sans);letter-spacing:.2em;white-space:nowrap}
@media(max-width:1200px){.brand.brand-spatial{gap:14px}.brand-spatial .brand-copy{gap:11px}.brand.brand-spatial .brand-name{font-size:26px}.brand.brand-spatial .brand-tagline{font-size:8px;letter-spacing:.16em}}
@media(max-width:650px){.brand.brand-spatial{gap:12px}.brand-spatial .brand-mark{width:51px}.brand-spatial .brand-copy{gap:9px}.brand.brand-spatial .brand-name{font-size:22px;letter-spacing:.12em}.brand.brand-spatial .brand-tagline{font-size:6.5px;letter-spacing:.12em}}
@media(max-width:360px){.brand-spatial .brand-mark{width:43px}.brand.brand-spatial .brand-name{font-size:19px}.brand.brand-spatial .brand-tagline{font-size:6px}}
/* Four selected exteriors: preserve full architectural compositions. */
#exterior-work .two-up{row-gap:38px;align-items:start}#exterior-work .two-up img{width:100%;height:auto;aspect-ratio:auto}#exterior-work .caption h3{font-size:clamp(14px,.8vw,19px)}

/* Dedicated exterior index and full project views. */

/* Compact four-project exterior teaser row. */
#exterior-work .two-up{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:start}
#exterior-work .two-up img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .35s ease}
#exterior-work .image-button:hover img{transform:scale(1.035)}
#exterior-work .image-button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
#exterior-work .caption{display:block;padding-top:14px}
#exterior-work .caption h3{font-size:clamp(14px,.85vw,19px)}
#exterior-work .caption>span{display:block;font-size:9px;line-height:1.5;letter-spacing:.08em;text-align:left;margin-top:7px}
#exterior-work .image-arrow{width:30px;height:30px;right:12px;bottom:12px;font-size:17px}
@media(max-width:1000px){#exterior-work .two-up{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}}
@media(max-width:650px){#exterior-work .two-up{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}#exterior-work .caption h3{font-size:14px}#exterior-work .caption>span{font-size:8px}#exterior-work .image-arrow{width:26px;height:26px;right:8px;bottom:8px;font-size:15px}}
@media(prefers-reduced-motion:reduce){#exterior-work .two-up img{transition:none}#exterior-work .image-button:hover img{transform:none}}
/* Dedicated exterior index and full project views. */

#exterior-title a{display:inline-block}#exterior-title a:hover{opacity:.85}#exterior-title a:focus-visible{outline:2px solid #fff;outline-offset:10px}.project-images figure{scroll-margin-top:25px}

/* Dedicated exterior index and full project views. */

/* Compact four-project interior teaser row. */
#interior-work .interior-teasers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:start}
#interior-work .interior-teasers img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .35s ease}
#interior-work .image-button:hover img{transform:scale(1.035)}
#interior-work .image-button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
#interior-work .caption{display:block;padding-top:14px}#interior-work .caption h3{font-size:clamp(14px,.85vw,19px)}
#interior-work .caption>span{display:block;font-size:9px;line-height:1.5;letter-spacing:.08em;text-align:left;margin-top:7px}
#interior-work .image-arrow{width:30px;height:30px;right:12px;bottom:12px;font-size:17px}
@media(max-width:1000px){#interior-work .interior-teasers{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}}
@media(max-width:650px){#interior-work .interior-teasers{gap:24px 14px}#interior-work .caption h3{font-size:14px}#interior-work .caption>span{font-size:8px}#interior-work .image-arrow{width:26px;height:26px;right:8px;bottom:8px;font-size:15px}}
@media(prefers-reduced-motion:reduce){#interior-work .interior-teasers img{transition:none}#interior-work .image-button:hover img{transform:none}}

/* Dedicated exterior index and full project views. */
.inner-page .site-header{position:relative;background:#202820;height:150px}.inner-page #mobile-menu{top:140px}.portfolio-main{padding:55px 5.1% 70px}.portfolio-heading{margin:0 0 45px}.portfolio-heading h1{font-size:clamp(40px,5vw,80px);line-height:1.08;margin:18px 0 22px}.portfolio-heading>p:last-child{font-size:17px;color:#60685e;line-height:1.6}.exterior-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 28px;align-items:start}.exterior-grid .image-button img{width:100%;height:auto}.exterior-grid .caption h2{font-size:clamp(17px,1.15vw,25px);font-weight:500;margin:0}.exterior-grid .caption>span{font-size:10px}.back-link{display:inline-block;font-size:15px;margin-bottom:35px;border-bottom:1px solid #a8aea1;padding-bottom:8px}.project-images{display:grid;gap:32px}.project-images figure{margin:0}.project-images img{display:block;width:100%;height:auto}.project-images video{width:100%;max-height:90svh;background:#172017}.project-navigation{display:flex;justify-content:space-between;gap:25px;padding:40px 0 0;font-size:16px}.inner-page footer{font-size:13px;border-top:1px solid var(--line)}
@media(max-width:650px){.inner-page .site-header{height:112px}.inner-page #mobile-menu{top:112px}.portfolio-main{padding:35px 6% 45px}.exterior-grid{grid-template-columns:1fr;gap:32px}.portfolio-heading{margin-bottom:30px}.portfolio-heading h1{font-size:42px}.project-images{gap:20px}.project-navigation{font-size:14px;flex-wrap:wrap}.exterior-grid .caption{display:block}.exterior-grid .caption>span{display:block;margin-top:8px;text-align:left}}

/* Commercial teaser row matches the selected interiors. */

#environment-work .environment-teasers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:start}
#environment-work .environment-teasers img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .35s ease}
#environment-work .image-button:hover img{transform:scale(1.035)}
#environment-work .image-button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
#environment-work .caption{display:block;padding-top:14px}#environment-work .caption h3{font-size:clamp(14px,.85vw,19px)}
#environment-work .caption>span{display:block;font-size:9px;line-height:1.5;letter-spacing:.08em;text-align:left;margin-top:7px}
#environment-work .image-arrow{width:30px;height:30px;right:12px;bottom:12px;font-size:17px}
@media(max-width:1000px){#environment-work .environment-teasers{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}}
@media(max-width:650px){#environment-work .environment-teasers{gap:24px 14px}#environment-work .caption h3{font-size:14px}#environment-work .caption>span{font-size:8px}#environment-work .image-arrow{width:26px;height:26px;right:8px;bottom:8px;font-size:15px}}

#environment-title a{display:inline-block}#environment-title a:hover{opacity:.85}@media(prefers-reduced-motion:reduce){#environment-work .environment-teasers img{transition:none}#environment-work .image-button:hover img{transform:none}}

/* Consistent gallery image frames. */
.collection .image-button,.exterior-grid .image-button{aspect-ratio:16/9}
.collection .image-button img,.exterior-grid .image-button img{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;object-position:center}
.project-images figure>a{display:block;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--paper)}
.project-images figure>a img{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;object-position:center}

/* Clear homepage labels and gallery navigation. */
.cover-label>.eyebrow{font-size:clamp(13px,1vw,17px);font-weight:600;letter-spacing:1.8px}
.cover .cover-link{font-size:clamp(18px,1.3vw,23px);font-weight:500;padding:12px 0 14px;gap:55px;border-bottom-width:2px}
.cover .cover-link span{font-size:28px}
.cover-bottom{font-size:clamp(12px,.9vw,16px);letter-spacing:1px;padding-top:24px}
.cover-bottom a{font-weight:600;padding:10px 0}
.cover .motion-toggle{font-size:15px;padding:14px 20px;background:#162017b3;border-color:#ffffffa0;min-height:48px}
#interior-title a{display:inline-block}#interior-title a:hover{opacity:.85}
.collection .collection-heading p{font-size:clamp(16px,1.1vw,20px);color:#50594e;line-height:1.65}
.collection .collection-heading>.eyebrow{font-size:clamp(12px,.85vw,15px);font-weight:600;color:#50594e}
.collection .caption h3{font-size:clamp(18px,1.35vw,24px);font-weight:500}
.collection .caption>span{font-size:clamp(11px,.75vw,13px);color:#555e51;line-height:1.5}
@media(max-width:650px){.cover-label>.eyebrow{font-size:12px}.cover-bottom{font-size:11px;gap:15px}.cover .motion-toggle{font-size:13px;bottom:125px}.collection .collection-heading{flex-wrap:wrap}.collection .collection-heading p{font-size:16px}.collection .caption{align-items:flex-start;flex-direction:column}.collection .caption>span{text-align:left}}

/* Product gallery and expanded navigation. */
.product-coming-soon{border-top:1px solid var(--line);padding:45px 0 100px;font-size:20px;color:#60685e}.site-header nav{gap:clamp(18px,2vw,33px)}

/* Product animation introduction. */
.cover.product{background:#171a18;min-height:680px}
.product .cover-video{object-fit:contain;object-position:70% center}
.product .cover-shade{background:linear-gradient(90deg,#101411b3,transparent 70%),linear-gradient(0deg,#10141199,transparent 35%)}
#product-title a{display:inline-block}#product-title a:hover{opacity:.85}
@media(max-width:650px){.cover.product{min-height:640px}.product .cover-video{object-position:center 25%}.product .cover-label{bottom:18%}}

/* Seamless black product animation backdrop. */
.cover.product,.product .cover-video{background:#000}.product .cover-shade{background:none}

.exterior-grid .image-button video{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;background:#000}

/* Bathroom renovation story and comparison. */
.project-story{max-width:850px;margin:48px 0;font-size:18px;line-height:1.8;color:#50594e}.project-story h2,.bathroom-comparison h2{font-size:clamp(26px,3vw,42px);font-weight:450;letter-spacing:-1px;color:var(--ink)}
.bathroom-comparison{margin-top:55px}.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.comparison-grid figure{margin:0}.comparison-grid a{display:block;background:#e7e8e1}.comparison-grid img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain}.comparison-grid figcaption,.bathroom-images figcaption{font-size:15px;font-weight:500;padding-top:14px}.bathroom-images figure>a{aspect-ratio:auto}.bathroom-images figure>a img{height:auto;aspect-ratio:auto;object-fit:contain;max-height:1000px}
@media(max-width:650px){.comparison-grid{grid-template-columns:1fr;gap:30px}.project-story{font-size:16px}}

/* Equal bathroom comparison crops. */
.bathroom-comparison .comparison-grid a{aspect-ratio:1/1;overflow:hidden}
.bathroom-comparison .comparison-grid img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center}
.bathroom-comparison .comparison-grid figure:first-child img{object-position:50% 62%}

/* Day and night reveal. */
.light-reveal{--split:50%;position:relative;width:min(100%,1000px);margin:0 auto;aspect-ratio:1489/1664;overflow:hidden;background:#171a18;touch-action:pan-y}
.light-reveal>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}
.light-reveal .reveal-night{clip-path:inset(0 calc(100% - var(--split)) 0 0)}
.reveal-divider{position:absolute;left:var(--split);top:0;bottom:0;width:2px;background:white;transform:translateX(-50%);pointer-events:none}
.reveal-divider:after{content:'↔';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#f2f1ed;color:#222722;font-size:28px;box-shadow:0 2px 14px #0005}
.light-reveal input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.light-reveal:focus-within{outline:3px solid #cbaa70;outline-offset:5px}
.reveal-label{position:absolute;top:20px;background:#101411b3;color:white;padding:9px 14px;font-size:13px;letter-spacing:1px;pointer-events:none}.reveal-label.night{left:20px}.reveal-label.day{right:20px}
.reveal-help{text-align:center;font-size:15px;color:#60685e;margin:20px 0 35px}.reveal-originals{display:flex;justify-content:center;gap:30px;font-size:15px;text-decoration:underline}

/* Preserve complete originals inside every project gallery. */
.portfolio-main .project-images figure>a{display:block;width:100%;height:auto;aspect-ratio:auto;overflow:visible}
.portfolio-main .project-images figure>a img,.portfolio-main .project-images>figure>img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
#dialog-gallery img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}

/* Fit project previews to the viewport; links retain original files. */
.portfolio-main .project-images figure>a{display:flex;justify-content:center;align-items:center;width:100%;height:auto;aspect-ratio:auto;overflow:visible;cursor:zoom-in}
.portfolio-main .project-images figure>a img,.portfolio-main .project-images>figure>img{display:block;width:auto;height:auto;max-width:100%;max-height:85svh;aspect-ratio:auto;object-fit:contain;margin-inline:auto}

/* Complete responsive image previews; original files remain linked. */
.portfolio-main .project-images figure>a img{width:auto;height:auto;max-width:100%;max-height:85svh;object-fit:contain}

/* About and contact pages. */
.about-layout,.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(35px,6vw,100px);align-items:start}.about-photo{width:100%;max-height:850px;object-fit:contain}.about-copy{font-size:18px;line-height:1.85;color:#50594e}.about-copy p:first-child{margin-top:0}.about-copy h2{font-size:30px;line-height:1.25;color:var(--ink);font-weight:450}.about-facts{border-top:1px solid var(--line);padding-top:22px;font-size:14px;letter-spacing:.5px}.contact-intro{font-size:18px;line-height:1.8;color:#50594e}.contact-intro a{text-decoration:underline}.inquiry-form{background:#e9e9e2;padding:clamp(24px,3vw,48px)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.inquiry-form label{display:block;font-size:14px;font-weight:500;margin-bottom:22px}.inquiry-form input,.inquiry-form select,.inquiry-form textarea{display:block;width:100%;margin-top:9px;padding:13px 14px;border:1px solid #bfc3b8;border-radius:0;background:#fafaf7;color:var(--ink);font:16px var(--sans)}.inquiry-form textarea{resize:vertical;min-height:180px}.inquiry-form :focus-visible{outline:2px solid #65765c;outline-offset:3px}.form-submit{background:#202820;color:#fff;border:0;padding:17px 26px;font:16px var(--sans);cursor:pointer}.form-note{font-size:13px;line-height:1.6;color:#60685e}.form-status{font-size:14px;line-height:1.6}.site-header nav{margin-left:20px;gap:clamp(14px,1.5vw,28px)}
@media(max-width:1100px){.site-header nav{gap:14px;font-size:14px}.site-header{gap:18px}}
@media(max-width:800px){.about-layout,.contact-layout{grid-template-columns:1fr}.about-photo{max-height:650px}.form-row{grid-template-columns:1fr;gap:0}.about-copy{font-size:17px}}

/* Mobile QA: readable labels, short-screen menus, and touch targets. */
.portfolio-heading>.eyebrow{font-size:12px;line-height:1.7}
@media(max-width:1000px){#mobile-menu{max-height:calc(100svh - 150px);overflow-y:auto;overscroll-behavior:contain}.menu-toggle{min-width:80px;min-height:44px}}
@media(max-width:650px){
.cover-bottom a{font-size:11px;min-height:44px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.cover-bottom>span{font-size:11px}.cover-bottom a span{margin-left:0;flex-shrink:0}
.cover .motion-toggle{min-height:44px;bottom:118px}.cover-label{bottom:calc(19% + 28px)}.cover.product .cover-label{bottom:calc(18% + 28px)}
.cover h2{font-size:clamp(38px,11.5vw,64px)}.cover-label>.eyebrow{font-size:11px;letter-spacing:1px}
.project-navigation a,.back-link,.reveal-originals a{min-height:44px;display:inline-flex;align-items:center}.project-navigation,.reveal-originals{flex-wrap:wrap}
.portfolio-heading h1{font-size:clamp(32px,9vw,42px);overflow-wrap:break-word}.about-layout>*,.contact-layout>*,.form-row>*{min-width:0}.inquiry-form input,.inquiry-form select,.inquiry-form textarea{min-height:48px;font-size:16px}
footer{font-size:12px;gap:18px;flex-wrap:wrap}#mobile-menu{max-height:calc(100svh - 135px)}
}
@media(max-width:360px){.cover .cover-link{font-size:17px;gap:25px}.cover-bottom{gap:15px}.cover-bottom a{max-width:140px}}

/* Accessible project sharing. */
.share-bar{margin:0 auto;padding:24px 4.7%;border-top:1px solid #d5d5cc;display:flex;align-items:center;gap:18px;flex-wrap:wrap;color:#242c23;background:#f2f1eb}.share-label{font-size:11px;letter-spacing:1.5px}.share-actions{display:flex;gap:8px;flex-wrap:wrap}.share-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #b7bbae;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.share-icon[hidden]{display:none}.share-icon svg{width:19px;height:19px}.share-icon:hover{background:#242c23;color:#fff}.share-icon:focus-visible{outline:3px solid #56694e;outline-offset:3px}.share-status{font-size:13px;line-height:1.5}.share-copy-field{width:100%;padding:12px;font-size:16px;border:1px solid #b7bbae}@media(max-width:650px){.share-bar{padding:22px 6%;gap:12px}.share-status{flex-basis:100%}}

/* The whole image remains tappable; the corner mark is only a visual hint. */
@media (max-width: 650px) {
  .image-button .image-arrow { width:24px;height:24px;right:8px;bottom:8px;font-size:14px;line-height:1;pointer-events:none; }
  #exterior-work .image-button .image-arrow,
  #interior-work .image-button .image-arrow,
  #environment-work .image-button .image-arrow { width:20px;height:20px;right:6px;bottom:6px;font-size:12px; }
}
.image-viewer { width:100vw;max-width:none;height:100svh;max-height:none;margin:0;padding:16px;border:0;background:#131713;color:#fff; }
.image-viewer[open] { display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px; }
.image-viewer::backdrop { background:#131713; }
.image-viewer-toolbar,.image-viewer-navigation { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.image-viewer button { min-height:44px;padding:8px 14px;border:1px solid #ffffff70;background:transparent;color:#fff;border-radius:3px;font:14px var(--sans);cursor:pointer; }
.image-viewer button:focus-visible { outline:2px solid #e5cfac;outline-offset:3px; }
.image-viewer-count { margin-right:auto;font-size:13px; }
.image-viewer-stage { min-width:0;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;overscroll-behavior:contain; }
.image-viewer-stage img { width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain; }
.image-viewer.is-zoomed .image-viewer-stage { display:block; }
.image-viewer.is-zoomed .image-viewer-stage img { max-width:none;max-height:none;width:auto;height:auto; }
.image-viewer-status { font-size:13px;text-align:center; }
@media (max-width:650px) { .image-viewer { padding: max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));gap:8px; }.image-viewer button { padding:8px 10px;font-size:12px; }.image-viewer-toolbar,.image-viewer-navigation { gap:8px; } }

/* Mobile portfolio framing: unobstructed thumbnails and left-focused Places cover. */
@media(max-width:650px){.image-button .image-arrow{display:none!important}.commercial .cover-video,.commercial .cover-image{object-position:25% 50%}}
