:root{--paper:#f6f3ed;--ink:#242020;--dark:#191919;--gold:#c3a16a;--line:#d7cfc1;--display:'Cormorant Garamond',Georgia,serif;--body:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--display);font-weight:400}h1,h2{letter-spacing:-.035em;line-height:1}p{line-height:1.7}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{cursor:default}em{font-weight:400}.eyebrow{font-size:.75rem;letter-spacing:.14em;line-height:1.7}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:15px}.skip:focus{top:20px}.portfolio-header{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:0 4.5%;padding:20px 0;border-bottom:1px solid var(--line)}.brand img{width:210px;height:auto}.portfolio-header nav{display:flex;gap:32px;align-items:center;font-size:.875rem}.portfolio-header nav a{padding:12px 0}.portfolio-header [aria-current]{border-bottom:1px solid var(--gold)}.visit-link{margin-left:30px}.visit-link span{margin-left:20px}.portfolio-close{background:var(--dark);color:var(--paper);padding:100px 6%;text-align:center}.portfolio-close .eyebrow{color:var(--gold)}.portfolio-close h2{font-size:clamp(3.5rem,7vw,8rem);margin:30px auto 45px;max-width:1100px}.portfolio-close h2 em{color:var(--gold)}.close-cta{display:flex;justify-content:space-between;align-items:center;gap:40px;width:fit-content;max-width:100%;margin:0 auto;border:1px solid #8a7b64;padding:20px 28px;font-size:1rem;transition:background .25s}.close-cta:hover{background:#34302b}.email{display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere;margin:30px auto 0;font-size:.875rem;color:#cbc5ba}footer{background:var(--dark);color:#cbc5ba;border-top:1px solid #ffffff25;display:flex;justify-content:space-between;gap:20px;padding:30px 4.5%;font-size:.875rem}footer p{font-size:.875rem}.portfolio-intro{padding:55px 6% 0}.portfolio-intro h1{font-size:clamp(3.6rem,7.2vw,8rem);line-height:1.04;margin:28px 0 40px;max-width:1250px}.portfolio-intro h1 em{color:#78614a}.chapter-nav{display:flex;gap:36px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;font-size:.875rem}.chapter-nav a{padding:5px 0}.chapter{padding:90px 6%;scroll-margin-top:10px}.chapter-heading{display:grid;grid-template-columns:1fr 2fr;gap:30px;align-items:start;margin-bottom:38px}.chapter-heading h2{font-size:clamp(3rem,5vw,5.5rem)}.chapter-heading .eyebrow{padding-top:10px;color:#766b5c}:is(.photo-open,.story-photo){display:block;position:relative}:is(.photo-open,.story-photo) img{width:100%;height:auto}.primary-project>:is(.photo-open,.story-photo){max-width:1050px;margin:auto}.project-caption{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:24px}.project-caption h3,.project-row h3{font-size:2.1rem;line-height:1.15}.project-caption p,.project-row p{font-size:.875rem;color:#746b61;margin-top:8px}.project-link{display:flex;align-items:center;gap:28px;justify-content:space-between;border-bottom:1px solid var(--gold);padding:15px 0;font-size:.875rem;flex-shrink:0}.project-link span{font-size:.75rem;color:#746b61}.project-link b{font-weight:400;margin-left:12px;font-size:1rem}.more-projects{margin-top:40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.more-projects>summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px 0;font-size:1rem;cursor:pointer;list-style:none}.more-projects>summary::-webkit-details-marker{display:none}.more-projects>summary span{font-size:1.5rem;font-weight:400}.more-projects[open]>summary span{transform:rotate(45deg)}summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.project-row{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:25px 0;border-top:1px solid var(--line)}.project-row h3{font-size:1.75rem}.craft-chapter{background:#eae5dc}.glass-stage{position:relative}.glass-view{margin-bottom:28px}.glass-view img{aspect-ratio:20/9;object-fit:contain}.glass-view figcaption{font-size:.875rem;color:#6d645a;padding-top:14px;line-height:1.5}.glass-stage.is-animated .glass-view{margin:0}.glass-stage.is-animated .glass-view:nth-child(2){position:absolute;inset:0;pointer-events:none}.glass-stage.is-animated{overflow:hidden}.glass-stage.is-animated .glass-view:nth-child(2).is-active{pointer-events:auto}.supporting-projects{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin-top:65px}.supporting-projects>article>:is(.photo-open,.story-photo){height:340px;background:#e4dfd6;display:grid;place-items:center}.supporting-projects>article>:is(.photo-open,.story-photo) img{width:100%;height:100%;object-fit:contain;min-height:0}.supporting-projects .project-caption{display:block}.supporting-projects .project-link{max-width:320px;margin-top:10px}.vent-detail{display:grid;grid-template-columns:minmax(0,240px) 1fr;gap:40px;align-items:center;padding:10px 0 35px;max-width:850px}.vent-detail h3{font-size:2.3rem;margin:12px 0}.vent-detail p:not(.eyebrow){font-size:1rem;color:#746b61}.vent-detail .project-link{max-width:320px;margin-top:15px}.vent-photo{display:block;position:relative}.wall-cleanup{position:absolute;inset:0;width:100%;height:100%;clip-path:polygon(31% 0,100% 0,100% 57%);pointer-events:none}.wall-cleanup[hidden]{display:none}.section-note{max-width:590px;margin:0 0 35px auto;color:#746b61}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:35px;max-width:920px;margin:auto}.comparison img{width:100%;height:auto}.comparison figcaption{margin-top:16px}.comparison figcaption .eyebrow{color:#78614a}.comparison figcaption p{font-family:var(--display);font-size:1.8rem;line-height:1.2;margin-top:8px}.sanding-caption{display:flex;justify-content:space-between;align-items:center;gap:35px;max-width:920px;margin:35px auto 0}.sanding-caption>p{max-width:400px;font-size:.9375rem;color:#746b61}.nojs-photos{padding:30px 6%}dialog{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;padding:20px 4%;border:0;background:#151515;color:var(--paper);margin:0;overscroll-behavior:contain}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:#151515}.viewer-top,.viewer-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;flex-shrink:0}.viewer-top p,.viewer-bottom span{font-size:.875rem;color:#ccc4b7}#viewer-project{font-family:var(--display);font-size:1.6rem;line-height:1.2;margin-bottom:6px}.viewer-close{border:1px solid #716b60;background:none;color:var(--paper);padding:12px 20px;min-height:44px;font-size:.875rem}.viewer-stage{display:grid;grid-template-columns:50px minmax(0,1fr) 50px;gap:20px;flex:1;min-height:0;align-items:center;padding:20px 0}.viewer-image-area{display:grid;place-items:center;min-width:0;min-height:0;height:100%;overflow:hidden}.viewer-frame{position:relative;max-width:100%;max-height:100%;aspect-ratio:var(--photo-ratio,1.5);width:min(100%,calc((100dvh - 200px) * var(--photo-ratio,1.5)))}.viewer-frame>img{display:block;width:100%;height:auto}.viewer-frame>.wall-cleanup{height:100%}.viewer-stage button{background:transparent;border:1px solid #716b60;border-radius:50%;color:var(--paper);width:48px;height:48px;font-size:1.3rem}.viewer-bottom{padding-top:8px}.viewer-bottom p{font-family:var(--display);font-size:1.5rem;line-height:1.2}.viewer-bottom span{white-space:nowrap}body.viewer-open{overflow:hidden}
@media(max-width:1000px){.portfolio-header nav{gap:20px}.visit-link{margin-left:0}.project-caption{align-items:start;flex-direction:column;gap:5px}.chapter-heading{grid-template-columns:1fr 2fr}.chapter-nav{gap:20px}.supporting-projects{gap:25px}.supporting-projects>article>:is(.photo-open,.story-photo){height:280px}.sanding-caption{flex-direction:column;align-items:start;gap:15px}.project-link{flex-shrink:1}}
@media(max-width:760px){.portfolio-header{flex-wrap:wrap;gap:12px;padding:16px 0}.brand img{width:175px}.portfolio-header nav{width:100%;justify-content:space-between;gap:12px}.portfolio-header nav a{font-size:.875rem}.portfolio-header .visit-link span{margin-left:4px}.portfolio-intro{padding:35px 5% 0}.portfolio-intro h1{font-size:clamp(3rem,10vw,4.6rem);margin:24px 0 30px}.chapter-nav{flex-direction:column;gap:8px;padding:15px 0}.chapter{padding:55px 5%}.chapter-heading{display:block;margin-bottom:25px}.chapter-heading h2{font-size:3.2rem;margin-top:18px}.chapter-heading .eyebrow{padding:0}.project-caption h3{font-size:2rem}.project-link{width:100%;max-width:360px;gap:15px}.supporting-projects{grid-template-columns:1fr;gap:40px;margin-top:45px}.supporting-projects>article>:is(.photo-open,.story-photo){height:auto}.supporting-projects>article>:is(.photo-open,.story-photo) img{height:auto}.project-row{display:block}.project-row .project-link{margin-top:10px}.vent-detail{grid-template-columns:1fr;gap:20px}.vent-detail>:is(.photo-open,.story-photo){max-width:220px}.comparison{gap:18px}.comparison figcaption p{font-size:1.4rem}.section-note{font-size:.9375rem}.portfolio-close{padding:60px 5%}.portfolio-close h2{font-size:3.5rem}footer{flex-wrap:wrap}.viewer-stage{grid-template-columns:38px minmax(0,1fr) 38px;gap:5px}.viewer-stage button{width:36px;height:44px;border-radius:0}.viewer-bottom span{display:none}.viewer-bottom p{font-size:1.25rem}.viewer-top{gap:10px}#viewer-project{font-size:1.35rem}.viewer-close{padding:10px 14px}dialog{padding:16px 10px}.viewer-frame{width:min(100%,calc((100dvh - 240px) * var(--photo-ratio,1.5)))}}
@media(max-width:420px){.comparison{grid-template-columns:1fr;gap:30px}.portfolio-close h2{font-size:3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

.is-animated .glass-view figcaption{display:none}.glass-caption{font-size:.875rem;color:#6d645a;padding-top:14px;line-height:1.5;min-height:2.8em}
/* Homeowner-facing projects: visible cover, plain description, one gallery. */
.home-projects{display:grid;gap:70px}.home-project>.project-cover{display:block}.home-project .project-cover img{display:block;width:100%;height:auto;opacity:1;visibility:visible}.home-project .project-caption .eyebrow{margin:0 0 10px}.home-project .project-caption h3{font-size:2.2rem}.stair-project{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:65px;max-width:1020px;margin:auto}.stair-project>.project-cover{max-width:440px;justify-self:center}.stair-project .project-caption{display:block;padding:0}.stair-project .project-link{margin-top:25px}.viewer-top{position:sticky;top:0;z-index:2;background:#151515;padding-bottom:15px;align-items:flex-start}.viewer-close{white-space:nowrap;flex-shrink:0}.viewer-close span{font-size:1.3rem;margin-left:12px}.viewer-stage{display:flex;justify-content:center;min-height:120px}.viewer-image-area{width:100%}.viewer-bottom{background:#151515;position:sticky;bottom:0;z-index:2;padding:15px 0 0;align-items:center}.viewer-navigation{display:flex;gap:12px;flex-shrink:0}.viewer-navigation button{padding:12px 18px;min-height:44px;border:1px solid #8b8172;background:none;color:var(--paper);font-size:.875rem}.viewer-navigation button:disabled{opacity:.3;cursor:default}dialog[open]{overflow:auto}.viewer-frame{width:min(100%,calc((100dvh - 240px) * var(--photo-ratio,1.5)))}
@media(max-width:760px){.home-projects{gap:45px}.stair-project{grid-template-columns:1fr;gap:24px;max-width:500px}.stair-project>.project-cover{max-width:360px}.home-project .project-caption h3{font-size:2rem}.viewer-top{flex-wrap:wrap;gap:12px}.viewer-close{order:-1}.viewer-bottom{display:block}.viewer-navigation{justify-content:space-between;margin-top:14px}.viewer-navigation button{flex:1}.viewer-frame{width:min(100%,calc((100dvh - 320px) * var(--photo-ratio,1.5)))}.viewer-stage{min-height:100px}#viewer-project{font-size:1.3rem}}
.interior-scenes{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin-top:70px;align-items:start}.scene-card>:is(.photo-open,.story-photo){display:block}.scene-card img{display:block;width:100%;height:auto}.scene-card .project-caption{display:block}.scene-card .project-link{margin-top:12px;max-width:330px}.interior-scenes .scene-card:nth-child(2){padding-top:18%}.home-projects{grid-template-columns:1fr 1fr;align-items:start;gap:45px}.home-projects .stair-project{display:block;max-width:none;margin:0}.home-projects .stair-project>.project-cover{max-width:none}.home-projects .stair-project .project-caption{padding-top:24px}.home-projects .scene-card .project-caption h3{font-size:2.2rem}.viewer-navigation[hidden]{display:none}
@media(max-width:760px){.interior-scenes,.home-projects{grid-template-columns:1fr;gap:45px}.interior-scenes{margin-top:45px}.interior-scenes .scene-card:nth-child(2){padding-top:0}.home-projects .stair-project>.project-cover{max-width:440px}.home-projects .scene-card>:is(.photo-open,.story-photo){max-width:440px}}

.bayshore-project{margin-top:80px;scroll-margin-top:30px}.bayshore-project>:is(.photo-open,.story-photo){max-width:1100px;margin:auto}.bayshore-project .project-caption p{max-width:580px}.bayshore-project .eyebrow{margin:0 0 10px}.bayshore-project h3{font-size:clamp(2.4rem,4vw,4rem)}@media(max-width:760px){.bayshore-project{margin-top:50px}}

/* A single project keeps its cover and description together. */
.interior-scenes:has(>.scene-card:only-child){display:block;max-width:850px;margin:70px auto 0}
.home-projects:has(>.stair-project:only-child){display:block}
.home-projects .stair-project:only-child{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:center;max-width:1020px;margin:auto}
.home-projects .stair-project:only-child>.project-cover{max-width:440px}
@media(max-width:760px){.home-projects .stair-project:only-child{grid-template-columns:1fr;gap:24px}.interior-scenes:has(>.scene-card:only-child){margin-top:45px}}

.project-menu{position:relative;font-size:.875rem;border:0}
.project-menu summary{display:flex;gap:14px;align-items:center;cursor:pointer;list-style:none;min-height:44px;padding:10px 0}
.project-menu summary::-webkit-details-marker{display:none}
.project-menu summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.portfolio-header .project-menu nav{position:absolute;top:100%;right:0;z-index:20;display:flex;flex-direction:column;align-items:stretch;gap:0;min-width:290px;background:var(--paper);border:1px solid var(--line);padding:10px 18px;box-shadow:0 12px 30px #24202015}
.portfolio-header .project-menu nav a{padding:12px 4px;border-bottom:1px solid var(--line);line-height:1.5}
.project-menu nav a:last-child{border:0}
.project-menu nav a:hover{color:#78614a;background:#eae5dc}
#southlands,#modern-kitchen,#richmond{scroll-margin-top:30px}
@media(max-width:760px){.portfolio-header>nav{flex-wrap:wrap}.portfolio-header .project-menu nav{width:min(290px,88vw);min-width:0;right:0}.portfolio-header .visit-link{margin-left:auto}}

@media(max-width:760px){.portfolio-header{position:relative}.project-menu{position:static}.portfolio-header .project-menu nav{left:0;right:0;width:100%;min-width:0}}

.construction-gallery{border-top:1px solid var(--line);padding-top:24px}.construction-gallery>summary{cursor:pointer;min-height:48px;font-size:1rem}.construction-gallery article{margin-top:24px}.project-caption>div{min-width:0}@media(max-width:760px){.project-caption{flex-wrap:wrap;gap:16px}.project-link{max-width:100%;flex-wrap:wrap;gap:12px}.viewer-top>div{min-width:0}.viewer-frame{margin-inline:auto}}

.lions-bay-project>.project-caption{padding-top:0}.lions-bay-project .construction-gallery{margin-top:25px}.lions-bay-project .construction-gallery>:is(.photo-open,.story-photo){margin-top:20px}.lions-bay-project .project-caption p:not(.eyebrow){max-width:540px}

/* Preserve the landscape photo ratio when a cover links to a project page. */
.craft-project>.project-cover{display:block;min-width:0}.craft-project>.project-cover img{display:block;width:100%;height:auto;max-height:650px;object-fit:contain}
.lions-bay-project{display:block;max-width:850px;width:100%;margin-inline:auto;padding-top:35px;border-top:1px solid var(--line)}.lions-bay-project .construction-gallery{margin-top:24px}.lions-bay-project .construction-gallery>:is(.photo-open,.story-photo){max-width:540px}.lions-bay-project .builder-reference{margin-top:28px}.lions-bay-project .builder-reference .project-link{display:inline-flex;gap:24px;margin-top:0;font-size:.875rem}.lions-bay-project summary{display:list-item;list-style:disclosure-closed;padding-block:12px}.lions-bay-project details[open]>summary{list-style:disclosure-open}

/* A distinct, full-width destination for the Lions Bay project menu. */
#lions-bay.craft-project{display:block;max-width:none;width:100%;margin:20px 0 0;padding:55px 0 15px;border-top:1px solid #b8ab97;scroll-margin-top:20px}
#lions-bay .project-caption{max-width:850px}#lions-bay h3{font-size:clamp(2.5rem,4vw,4rem)}#lions-bay .construction-gallery{max-width:850px}#lions-bay:focus{outline:none}
@media(max-width:900px){#lions-bay.craft-project{padding-top:30px;margin-top:10px;scroll-margin-top:12px}}

#interiors .interior-scenes{grid-template-columns:minmax(0,1fr);max-width:1400px;margin-inline:auto;gap:65px}#interiors .interior-scenes .scene-card:nth-child(2){padding-top:0}

#westport{scroll-margin-top:110px}.lions-bay-project .project-link{margin-top:24px}

/* Selected homes lead; supporting projects retain full photo proportions. */
#interiors>#horseshoe-bay{margin-top:80px;scroll-margin-top:30px}.supporting-homes .interior-scenes{grid-template-columns:minmax(0,1fr);margin-top:0;gap:65px}.supporting-homes .interior-scenes .scene-card:nth-child(2){padding-top:0}.supporting-homes #lions-bay{margin-top:65px}@media(max-width:760px){#interiors>#horseshoe-bay{margin-top:50px}.supporting-homes .interior-scenes{gap:45px}}

/* Let the opening three homes lead with large, uncropped photographs. */
#interiors>.primary-project>:is(.photo-open,.story-photo),#interiors>.bayshore-project>:is(.photo-open,.story-photo),#interiors>.signature-project>.project-cover{display:block;width:100%;max-width:none;margin:0}
#interiors>.signature-project>.project-cover img{display:block;width:100%;height:auto;max-height:none}
#interiors>.signature-project .project-caption p{max-width:580px}
#interiors>.signature-project .eyebrow{margin:0 0 10px}

/* Trim only the leftmost 4% of the ocean photograph to exclude the temporary pole. */
#interiors>#horseshoe-bay>.horseshoe-ocean-crop{aspect-ratio:32/15;overflow:hidden}
#interiors>#horseshoe-bay>.horseshoe-ocean-crop img{width:100%;height:100%;object-fit:cover;object-position:right center}
