:root{--ease-out:cubic-bezier(.22,.68,0,1);--muted:#626353}
html{scroll-padding-top:110px;scrollbar-gutter:stable}
[hidden]{display:none!important}
h1,h2,h3{overflow-wrap:break-word}
.page-intro>*,.detail-heading>*,.detail-story>*,.project-description>*,.about-pair>*,.contact>*,.project-grid>*,.form-grid>*{min-width:0}
.icon{width:24px;height:24px;flex:0 0 24px;vertical-align:middle}
.header{position:fixed;transition:transform 320ms var(--ease-out),background-color 300ms,color 300ms;isolation:isolate}
.header.is-solid,.header-interior{background:#4c4c4c;color:var(--paper);height:90px;border-bottom:1px solid #ffffff20}
.header.is-hidden:not(:focus-within){transform:translateY(-105%)}
.header-estimate{display:inline-flex;align-items:center;gap:12px}
.header-estimate .icon{width:18px;height:18px;flex-basis:18px}
.desktop-nav [aria-current=page]{text-decoration:underline;text-underline-offset:5px}
.desktop-nav a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;letter-spacing:.08em;white-space:nowrap}
.header-estimate{min-height:44px;font-size:13px;letter-spacing:.08em;white-space:nowrap}
.brand{--brand-mark-size:44px;display:inline-flex;flex-direction:row;align-items:center;gap:10px;width:max-content;max-width:100%;min-height:44px;font-size:14px;letter-spacing:0;line-height:1.1;text-align:left;text-transform:uppercase}
.brand .brand-mark{display:block;width:var(--brand-mark-size);height:var(--brand-mark-size);flex:0 0 var(--brand-mark-size);object-fit:contain;background:#242322}
.brand .brand-name{display:flex;flex-direction:column;gap:5px;width:112px;min-width:0;margin:0;padding:0;font-size:inherit;font-weight:300;letter-spacing:0;line-height:1.1}
.brand .brand-name strong{display:block;font-size:25px;font-weight:500;letter-spacing:.2em;line-height:1}
.brand .brand-name small{display:block;margin:0;font-size:9.5px;font-weight:300;letter-spacing:.18em;line-height:1.3;white-space:nowrap}
.brand.brand-header{max-width:180px}
.brand.brand-menu{--brand-mark-size:56px;gap:12px;max-width:calc(100% - 50px)}
.brand.brand-menu .brand-name strong{font-size:28px}
.brand.brand-footer{--brand-mark-size:72px;gap:14px}
.brand.brand-footer .brand-name strong{font-size:32px}
.brand.brand-footer .brand-name small{font-size:10px;letter-spacing:.15em}
.hero{overflow:hidden}
.hero-image{height:114%;top:-7%;transform-origin:center}
.title-line{display:block;overflow:clip;padding:.04em 0 .16em;margin-bottom:-.12em}
.title-line>span{display:inline-block}
.text-link{min-height:44px}
.text-link .icon{transition:transform 260ms var(--ease-out)}
.text-link:hover .icon{transform:translate(3px,-3px)}
.hero-foot .icon{width:18px;height:18px;flex-basis:18px}
.contact-direct .icon{width:18px;height:18px;flex-basis:18px}
.footer-bottom>a{display:flex;align-items:center;gap:10px}
.footer-business{display:flex;flex-direction:column;gap:3px}
.contractor-registration{font-size:11px;line-height:1.6}
.footer-bottom .icon{rotate:180deg;width:16px;height:16px;flex-basis:16px}
.close-button{display:grid;place-items:center}
.menu-dialog{overflow-y:auto;overscroll-behavior:contain}
.menu-bottom{max-width:850px;margin:0 auto;display:flex;justify-content:space-between;gap:24px;align-items:end}
.menu-bottom p{font-size:12px;line-height:1.8;color:var(--muted)}
.menu-dialog nav a{transition:transform 220ms var(--ease-out),color 220ms}
.menu-dialog nav a:hover{transform:translateX(8px)}
.mobile-fallback{display:none}
.menu-toggle{visibility:hidden}
.site-ready .menu-toggle{visibility:visible}
.service[data-animating]{overflow:hidden}
.service summary h2,.service summary h3{min-width:0}
.service-symbol{flex-shrink:0}
.service-symbol:after{transition:transform 250ms var(--ease-out)}
.project-photo{overflow:hidden;display:block}
.project-meta>.icon{margin-left:auto;width:20px;height:20px;flex-basis:20px}
.project-meta{display:flex;text-align:left}
.project-meta>span:nth-child(2){min-width:0}
.project-open .icon{margin-left:auto;width:20px;height:20px;flex-basis:20px}
.project-card:focus-visible .project-open{opacity:1;transform:none}
.project-card:focus-visible .project-photo:after{opacity:1}
.project-photo:after{inset:45% 0 0;background:linear-gradient(transparent,#151510d9)}
.project-card .project-photo>img{height:auto;transition:transform 650ms var(--ease-out)}
.section-end-link{display:flex;justify-content:center;margin-top:60px}
.page-intro{padding-top:180px;padding-bottom:85px;display:grid;grid-template-columns:1.35fr 1fr;gap:10%;align-items:end}
.page-intro h1,.detail-heading h1,.project-detail-heading h1{font-family:var(--serif);font-size:clamp(64px,7.5vw,118px);letter-spacing:-.055em;line-height:.94}
.page-intro>p,.detail-heading>p{font-size:15px;line-height:1.9;max-width:420px;color:var(--muted);padding-bottom:6px}
.service-index,.project-index{padding-bottom:110px}
.callout{border-top:1px solid var(--line);padding-top:100px;padding-bottom:100px;display:flex;justify-content:space-between;gap:40px;align-items:center}
.callout h2{font-family:var(--serif);font-size:clamp(55px,6.4vw,96px);line-height:.95;letter-spacing:-.045em}
.callout .text-link{margin-right:8%}
.detail-hero{padding-top:145px}
.back-link{font-size:11px;text-transform:uppercase;letter-spacing:.14em;display:inline-block;border-bottom:1px solid;padding-bottom:3px;margin-bottom:40px}
.detail-heading{display:grid;grid-template-columns:1.3fr 1fr;align-items:end;gap:10%;margin-bottom:60px}
.detail-heading h1{font-size:clamp(60px,7vw,110px);max-width:700px}
.detail-hero-photo{overflow:hidden;max-height:780px;height:65svh;min-height:350px}
.detail-hero-photo img{width:100%;height:100%}
.detail-story{display:grid;grid-template-columns:1fr 1fr;gap:15%;padding-top:90px;padding-bottom:100px}
.detail-story h2,.about-pair h2,.approach-steps h2,.project-description h2{font-family:var(--serif);font-size:clamp(43px,4.6vw,70px);line-height:1.02;letter-spacing:-.04em}
.story-content h3{font-family:var(--serif);font-size:31px;line-height:1.2;margin-bottom:14px}
.story-content p,.about-pair p,.project-description p{color:var(--muted);font-size:14px;line-height:1.9}
.story-content article+article{margin-top:32px}
.service-inclusions{padding-left:18px;margin:30px 0;color:var(--muted);font-size:12px}
.related-project{padding-top:65px;padding-bottom:100px;border-top:1px solid var(--line)}
.related-project .work-heading{display:flex;justify-content:space-between;align-items:end;gap:20px}
.related-project h2{font-family:var(--serif);font-size:60px;line-height:1.05;letter-spacing:-.035em}
.related-project>.project-card{display:block;max-width:800px;margin:0 auto}
.project-detail-heading{padding-top:150px;padding-bottom:60px}
.project-detail-heading h1{max-width:1100px}
.project-facts{display:flex;justify-content:space-between;gap:25px;margin-top:40px;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.project-facts a{display:flex;gap:16px;align-items:center}
.project-facts .icon{width:18px;height:18px;flex-basis:18px}
.project-detail-image{height:75svh;max-height:850px;min-height:360px;overflow:hidden}
.project-detail-image img{height:100%}
.project-description{padding-top:85px;padding-bottom:85px;display:grid;grid-template-columns:1fr 1fr;gap:15%}
.project-description p{max-width:540px}
.comparison-section{padding-bottom:90px}
.comparison-section h2{font-family:var(--serif);font-size:clamp(44px,5vw,70px);line-height:1.05;letter-spacing:-.04em}
.comparison-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}
.comparison-controls button{background:none;padding:10px 20px;border:1px solid var(--line);font-size:12px;min-width:90px;transition:background-color 180ms,color 180ms}
.comparison-controls button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.comparison-controls button{min-height:44px}
.comparison-controls button:hover{border-color:var(--ink)}
.comparison-controls p{font-size:11px;color:var(--muted);text-align:center}
.comparison-line .icon{width:22px;height:22px}
.project-next{border-top:1px solid var(--line);padding-top:40px;padding-bottom:70px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.project-next>span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em}
.about-pair{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center;padding-top:15px;padding-bottom:100px}
.about-pair figure{overflow:hidden}
.about-pair img{aspect-ratio:4/5}
.about-pair p{margin-top:25px}
.about-pair .text-link{margin-top:30px}
.approach-steps{padding-top:85px;padding-bottom:90px;border-top:1px solid var(--line)}
.approach-steps ol{padding:0;list-style:none;margin:55px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:7%}
.approach-steps li{border-top:1px solid var(--line);padding-top:24px}
.approach-steps li>span{font-size:11px;letter-spacing:.1em}
.approach-steps h3{font-family:var(--serif);font-size:32px;line-height:1.1;margin:30px 0 18px}
.approach-steps p{font-size:13px;color:var(--muted)}
.contact-page{padding-top:170px}
.contact-page h1{font-family:var(--serif);font-size:clamp(80px,8.7vw,140px);letter-spacing:-.05em;line-height:.88;margin:22px 0 30px}
.contact-direct a{display:inline-flex;align-items:center;gap:18px;min-height:44px;max-width:100%;overflow-wrap:anywhere}
.estimate-form label{font-size:11px}
.estimate-form input,.estimate-form select,.estimate-form textarea{font-size:16px;line-height:1.5;min-height:48px}
.estimate-form>.form-help,.estimate-form>.form-privacy{font-size:12px;line-height:1.8}
.form-privacy a{text-decoration:underline;text-underline-offset:3px}
.form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-status{margin-top:20px;padding:16px 18px;border:1px solid #969c87;font-size:14px;line-height:1.7}
.form-status[data-state=success]{border-color:#bcc7a3;background:#bcc7a314}
.form-status[data-state=error]{border-color:#e3bcac;background:#e3bcac0c}
.form-status a{text-decoration:underline;text-underline-offset:3px}
.submit-button:disabled{opacity:.7;cursor:wait}
.submit-button .submit-label{font-size:inherit;line-height:1.5}
.footer-top nav a,.footer-bottom a{min-height:44px;display:inline-flex;align-items:center}
.footer-bottom{align-items:center}
.faq-section{padding-top:10px;padding-bottom:100px}
.faq-section>.work-heading{max-width:1000px;margin-left:auto;margin-right:auto}
.faq-section>.work-heading h2{font-family:var(--serif);font-size:clamp(42px,5vw,76px);line-height:1.05;letter-spacing:-.04em}
.faq-list{max-width:1000px;margin:0 auto}
.faq-item summary{padding:27px 0;gap:24px}
.faq-item summary h2,.faq-item summary h3{font-family:var(--serif);font-size:clamp(27px,2.8vw,40px);line-height:1.15;letter-spacing:-.025em;font-weight:300}
.faq-answer{max-width:800px;padding:0 64px 30px 0;color:var(--muted);font-size:15px;line-height:1.9}
.faq-answer p+p{margin-top:16px}
.faq-answer a{text-decoration:underline;text-underline-offset:4px}
.area-groups{padding-top:10px;padding-bottom:90px}
.area-groups h2{font-family:var(--serif);font-size:clamp(38px,4vw,60px);line-height:1.05;letter-spacing:-.035em;margin-bottom:30px}
.area-groups>section+section{margin-top:50px}
.area-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px;text-align:left}
.area-list li{border-top:1px solid var(--line);font-size:15px;padding:13px 0}
.area-list a{display:inline-flex;align-items:center;min-height:44px;width:100%}
.area-list .icon{margin-left:auto;width:20px;height:20px;flex-basis:20px}
.area-list a:hover{text-decoration:underline;text-underline-offset:4px}
.areas>.area-summary{font-size:14px;line-height:2.1;color:var(--muted);max-width:860px;margin:0 auto}
.areas>.area-link{margin-top:26px}
.inbox{max-width:1200px;margin:0 auto;padding:145px 5% 90px}
.inbox h1{font-family:var(--serif);font-size:clamp(42px,5vw,72px);line-height:1.05;letter-spacing:-.035em}
.inbox-header{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:40px}
.inbox-header p{font-size:14px;color:var(--muted);max-width:650px;margin-top:18px}
.inbox-list{display:grid;gap:24px;margin:0;padding:0;list-style:none}
.inbox-item{border:1px solid var(--line);padding:30px;min-width:0}
.inbox-item h2{font-family:var(--serif);font-size:34px;line-height:1.15;letter-spacing:-.025em}
.inbox-meta{display:flex;flex-wrap:wrap;gap:8px 28px;margin:18px 0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.inbox-message{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.9;max-width:850px;margin:24px 0}
.inbox-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:24px}
.inbox button,.inbox-actions a{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 18px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);font-size:12px}
.inbox button:disabled{opacity:.6;cursor:wait}
.inbox a:not(.text-link){text-decoration:underline;text-underline-offset:3px}
.inbox-empty,.inbox-error{padding:25px;border:1px solid var(--line);font-size:15px;line-height:1.8}
.inbox-error{border-color:#956251}
.inbox-status{font-size:12px;color:var(--muted)}
.not-found{min-height:75svh;gap:40px 10%}
.not-found .text-link{justify-self:start}
/* Native page navigation avoids replaying old photo snapshots over new content. */
@media(min-width:701px) and (max-width:1050px){.header-estimate{display:none}.page-intro,.detail-heading{gap:6%;grid-template-columns:1.2fr 1fr}.detail-story,.project-description{gap:8%}}
@media(max-width:900px){
  .desktop-nav{display:none}.wordmark{grid-column:2}.header-right{grid-column:3}
  .mobile-fallback{display:flex;position:absolute;z-index:19;top:114px;width:100%;padding:12px 6%;gap:18px;background:var(--paper);color:var(--ink);justify-content:center;font-size:13px}
  .mobile-fallback a{display:inline-flex;align-items:center;min-height:44px}
  .site-ready .mobile-fallback{display:none}
  html:not(.site-ready) body[data-page=interior] main{padding-top:65px}
}
@media(min-width:701px) and (max-width:900px){.contact{grid-template-columns:1fr;gap:45px}.contact-copy{max-width:620px}.contact-page{padding-top:150px}}
@media(max-width:700px){
  html{scroll-padding-top:100px}
  .header.is-solid,.header-interior{height:80px}.header-estimate{display:none}.hero-image{height:100%;top:0}
  .menu-toggle{width:44px;min-width:44px;align-items:flex-end}
  .hero h1{font-size:clamp(39px,10.7vw,75px)}
  .hero-copy .eyebrow{font-size:10px}.hero .text-link{font-size:11px}.hero-foot{font-size:8px;flex-wrap:wrap;gap:12px}
  .mobile-fallback{display:flex;position:absolute;z-index:19;top:92px;width:100%;padding:12px 6%;gap:18px;background:var(--paper);color:var(--ink);justify-content:center;font-size:11px}
  .site-ready .mobile-fallback{display:none}
  .mobile-fallback a{display:inline-flex;align-items:center;min-height:44px}
  html:not(.site-ready) body[data-page=interior] main{padding-top:65px}
  .eyebrow{font-size:10px}.intro-text,.intro-end>p:nth-child(2),.section-heading>p:last-child,.work-heading>p,.process li p,.contact-copy>p:not(.eyebrow){font-size:14px;line-height:1.9}
  .photo-composition figcaption{font-size:10px}.text-link{font-size:11px;gap:20px}.service-body p{font-size:14px}.service-body ul{font-size:13px}
  .project-meta{font-size:11px;gap:12px}.project-meta small{font-size:11px}.project-open{font-size:10px}.areas>p:last-child{font-size:13px;max-width:440px}
  .contact h2{font-size:clamp(60px,17.5vw,100px)}.contact-direct a{font-size:14px}.estimate-form>p{font-size:14px}.estimate-form label{font-size:11px}
  .footer-top>p{font-size:12px}.footer-top nav{font-size:10px}.footer-bottom{font-size:10px}
  .menu-bottom{flex-direction:column;align-items:start;gap:18px}.menu-dialog nav{margin-top:65px}.menu-dialog nav a{font-size:clamp(43px,12vw,57px)}
  .page-intro{padding-top:135px;padding-bottom:50px;grid-template-columns:1fr;gap:28px}.page-intro h1,.detail-heading h1,.project-detail-heading h1{font-size:clamp(44px,11.6vw,78px)}
  .page-intro>p,.detail-heading>p{font-size:14px;max-width:450px}.service-index,.project-index{padding-bottom:65px}
  .callout{padding-top:65px;padding-bottom:65px;align-items:start;flex-direction:column;gap:30px}.callout h2{font-size:clamp(54px,12vw,76px)}
  .detail-hero{padding-top:120px}.back-link{font-size:10px;margin-bottom:28px}.detail-heading{grid-template-columns:1fr;gap:25px;margin-bottom:35px}
  .detail-hero-photo{height:55svh;min-height:300px;max-height:550px}.detail-story{grid-template-columns:1fr;gap:35px;padding-top:55px;padding-bottom:65px}
  .detail-story h2,.about-pair h2,.approach-steps h2,.project-description h2{font-size:44px}.story-content p,.about-pair p,.project-description p{font-size:14px}
  .related-project{padding-top:50px;padding-bottom:65px}.related-project h2{font-size:44px}.related-project .work-heading{align-items:start;flex-direction:column}
  .project-detail-heading{padding-top:125px;padding-bottom:35px}.project-facts{flex-direction:column;font-size:10px;gap:12px;margin-top:25px}
  .project-detail-image{height:58svh;min-height:350px;max-height:650px}.project-description{grid-template-columns:1fr;gap:25px;padding-top:50px;padding-bottom:45px}
  .comparison-section{padding-bottom:60px}.comparison-controls{gap:10px;flex-wrap:wrap}.comparison-controls p{order:3;flex-basis:100%;font-size:12px}.comparison-label{font-size:10px}
  .project-next{flex-direction:column;align-items:start;gap:20px;padding-top:30px;padding-bottom:40px}.project-next .text-link{max-width:100%}
  .about-pair{grid-template-columns:1fr;gap:45px;padding-bottom:65px}.about-pair img{aspect-ratio:1}.approach-steps{padding-top:60px;padding-bottom:60px}.approach-steps ol{grid-template-columns:1fr;gap:35px;margin-top:35px}.approach-steps h3{margin:18px 0 14px}
  .contact-page{padding-top:130px}.contact-page h1{font-size:clamp(60px,18vw,84px)}.section-end-link{margin-top:35px}
  .faq-section{padding-bottom:60px}.faq-item summary{gap:18px;padding:22px 0}.faq-answer{font-size:14px;padding:0 0 26px}.area-groups{padding-bottom:60px}.area-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.area-list li{font-size:14px}
  .areas>.area-summary{font-size:13px}.inbox{padding:120px 6% 60px}.inbox-header{flex-direction:column;align-items:start;gap:22px}.inbox-item{padding:22px}.inbox-meta{flex-direction:column;gap:8px}.inbox-item h2{font-size:29px}
}
@media(max-width:480px){.form-grid{grid-template-columns:1fr}.footer-top nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 25px}.comparison-controls button{min-width:100px}.menu-dialog{padding-bottom:max(30px,env(safe-area-inset-bottom))}}
@media(max-width:480px){.footer-top>.brand-footer,.footer-top>p{grid-column:1/-1}}
@media(hover:none){.project-open,.project-photo:after{opacity:1}.project-open{transform:none}}
@media(prefers-reduced-motion:reduce){
  .header.is-hidden:not(:focus-within){transform:none}.project-card:hover .project-photo>img,.text-link:hover .icon,.menu-dialog nav a:hover{transform:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}
