@font-face{font-family:Manrope;src:url('assets/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{--ink:#14232c;--paper:#f7f6f2;--mist:#e9eeea;--copper:#ac653d;--line:#d4ded8;--header:86px;--footer:64px;--gutter:clamp(24px,6vw,110px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-snap-type:y proximity;scroll-padding:0}body{margin:0;color:var(--ink);background:var(--paper);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #d5a079;outline-offset:5px}h1,h2,h3,p,figure{margin:0}button{color:inherit}img{max-width:100%;display:block}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:15px}.skip-link:focus{top:12px}.site-header{position:fixed;inset:0 0 auto;z-index:40;height:var(--header);display:flex;align-items:center;gap:30px;padding:0 var(--gutter);background:var(--ink);color:white}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;font-size:23px;font-weight:800;letter-spacing:-1px;line-height:1.2}.brand svg{width:37px;height:42px;fill:none;stroke:#d7ac8c;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.brand-location{display:block;font-size:9px;font-weight:400;letter-spacing:1px;margin-top:5px;color:#bfcecf}.desktop-nav{display:flex;margin-left:auto;gap:26px;font-size:11px}.desktop-nav a{padding:10px 0;color:#dae4e4}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:#e3ad87}.header-phone{display:flex;align-items:center;gap:20px;border:1px solid #65787e;padding:13px 15px;font-size:11px;white-space:nowrap}.menu-toggle{display:none}.mobile-menu{position:absolute;top:var(--header);left:0;right:0;background:var(--ink);padding:15px var(--gutter) 25px}.mobile-menu a{display:block;padding:14px 0;border-bottom:1px solid #ffffff25;font-size:14px}.screen{position:relative;min-height:100svh;scroll-snap-align:start;padding:calc(var(--header) + 42px) var(--gutter) calc(var(--footer) + 42px);display:flex;align-items:center}.screen-inner{width:100%;max-width:1440px;margin:auto}.screen h2{font-size:clamp(36px,4vw,62px);line-height:1.12;font-weight:800;letter-spacing:-.055em}.eyebrow{font-size:11px;font-weight:650;color:var(--copper);margin-bottom:24px}.body-copy{font-size:14px;line-height:1.85;color:#52676d;max-width:460px;margin-top:24px}.button{border:0;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--copper);color:#fff;padding:18px 24px;font-size:12px;font-weight:700;min-height:48px}.button:hover{background:#935330}.text-link{display:inline-flex;align-items:center;gap:28px;font-size:12px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:8px;margin-top:27px}.quiet-note{font-size:10px;line-height:1.7;color:#607477;max-width:400px}.hero{color:white;background:var(--ink)}.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{background:linear-gradient(90deg,#10232dbf 0%,#10232d75 42%,#10232d06 85%)}.hero-content{position:relative;padding:25px 0}.hero .eyebrow{color:#d5e1df;margin-bottom:25px}.hero h1{font-size:clamp(54px,6.3vw,96px);line-height:1.05;font-weight:800;letter-spacing:-.064em}.hero-description{font-size:15px;line-height:1.8;color:#e0e6e4;margin:26px 0 28px}.hero-secondary{display:flex;align-items:center;gap:21px;width:max-content;font-size:11px;margin-top:23px;color:#e5e8e4}.hero-location{font-size:10px;display:flex;align-items:center;gap:9px;margin-top:45px;color:#ccd9d7}.location-dot{width:6px;height:6px;border:1px solid #dba87f;border-radius:50%}.image-disclosure{position:absolute;right:var(--gutter);bottom:calc(var(--footer) + 22px);font-size:9px;color:#fff}.split{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.feature-image{height:clamp(430px,66svh,720px);position:relative;overflow:hidden}.feature-image img{height:100%;width:100%;object-fit:cover}.feature-image:after{content:'';position:absolute;inset:70% 0 0;background:linear-gradient(transparent,#14232cc7)}.feature-image figcaption{position:absolute;bottom:24px;left:25px;right:25px;color:white;z-index:1;font-size:12px}.feature-image figcaption span{display:block;font-size:9px;color:#e1e7e6;margin-top:6px}.service-lines{margin:26px 0 15px;border-top:1px solid var(--line)}.service-lines>div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px;font-weight:600}.service-lines>div>span:last-child{color:var(--copper)}.tonal{background:var(--mist)}.project-layout{display:grid;grid-template-columns:.85fr 1.3fr;gap:6%;align-items:center}.project-layout h2{font-size:clamp(36px,3.5vw,56px)}.project-select{display:flex;gap:8px;margin-top:28px;flex-wrap:wrap}.project-select button{background:transparent;border:1px solid #a5b6b1;padding:11px 16px;font-size:11px;min-height:44px}.project-select .selected{background:var(--ink);border-color:var(--ink);color:white}.project-description{font-size:12px;line-height:1.75;margin:20px 0;color:#435e62;min-height:44px}.project-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px}.project-pair img{height:clamp(330px,54svh,630px);width:100%;object-fit:cover}.project-pair figcaption{display:flex;flex-direction:column;gap:5px;margin-top:15px;font-size:12px;font-weight:700}.project-pair figcaption span:last-child{font-size:10px;color:#5c7174;font-weight:400}.dark{background:var(--ink);color:white}.dark .eyebrow{color:#d4a07c}.dark .body-copy{color:#c1d0d1}.faq-list{border-top:1px solid #ffffff30}.faq-list details{border-bottom:1px solid #ffffff30;padding:21px 0}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:14px;font-weight:600;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:23px;font-weight:300;color:#d8a27b}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list p{font-size:12px;line-height:1.8;color:#becfd0;padding:15px 30px 0 0}.contact{background:#ac6942;color:#fff}.contact .eyebrow{color:#ffddc2}.contact .body-copy{color:#fff1e7}.contact-layout{display:grid;grid-template-columns:1fr 1.12fr;gap:6%;align-items:center;position:relative}.contact-links{margin:29px 0 20px;max-width:370px}.contact-links>a{display:block;border-top:1px solid #ffffff4d;padding:15px 0}.contact-links small{font-size:10px;color:#ffdfc9;display:block;margin-bottom:6px}.contact-links>a>span{display:flex;justify-content:space-between;gap:20px;font-size:19px;letter-spacing:-.035em;overflow-wrap:anywhere}.contact address{font-size:11px;font-style:normal}.address-note{font-size:10px;color:#ffe4d1;margin-top:7px}.request-card{padding:32px;background:var(--paper);color:var(--ink)}.form-heading{display:flex;align-items:flex-start;gap:20px;justify-content:space-between}.request-card h3{font-size:24px;line-height:1.25;letter-spacing:-1px;font-weight:800;max-width:320px}.demo-badge{border:1px solid #b7c7bc;color:#526b60;font-size:9px;padding:4px 7px;flex-shrink:0}.form-help{font-size:11px;line-height:1.7;color:#5b6d70;margin:14px 0 22px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:17px}.request-card label{font-size:10px;font-weight:650;display:block;min-width:0}.request-card input,.request-card select,.request-card textarea{display:block;width:100%;margin-top:7px;border:1px solid #b8c6bf;background:white;border-radius:0;padding:11px 10px;min-height:42px;font-size:12px;color:var(--ink);min-width:0}.request-card textarea{resize:vertical;min-height:80px;max-height:170px}.form-button{background:var(--ink);width:100%;margin-top:20px;font-size:11px;padding:15px 18px}.form-button:hover{background:#2b4851}.form-note{font-size:9px;color:#5b6d70;margin-top:12px}.demo-footer{grid-column:1/-1;color:#ffe5d3;font-size:9px;margin-top:0}.request-card dl{margin:22px 0}.request-card dl>div{padding:10px 0;border-top:1px solid var(--line)}.request-card dt{font-size:9px;color:#52676d;margin-bottom:4px}.request-card dd{font-size:12px;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.chapter-controls{position:fixed;inset:auto 0 0;height:var(--footer);z-index:40;display:flex;align-items:center;gap:35px;padding:0 var(--gutter);background:var(--paper);border-top:1px solid var(--line)}.chapter-status{display:flex;align-items:center;gap:25px;font-size:10px;min-width:215px}.chapter-status b{font-weight:700}.total{color:#7d8c8d;margin-left:5px}#chapter-label{color:#4f666a}.progress-track{height:2px;background:#d9e0db;flex:1}.progress-track span{display:block;height:100%;background:var(--copper);width:20%;transition:width .25s}.concept-label{font-size:9px;color:#687a7b}.page-buttons{display:flex;gap:8px}.page-buttons button{display:flex;align-items:center;justify-content:center;gap:16px;border:1px solid #b7c6bf;background:transparent;font-size:15px;min-width:37px;height:36px;padding:0 12px}.page-buttons button>span{font-size:10px}.page-buttons button:disabled{opacity:.3}.page-buttons button:hover:not(:disabled){background:#e3e9e5}
@media(min-width:1500px){.hero-description{font-size:17px}.body-copy{font-size:16px}.desktop-nav{font-size:13px}.service-lines>div{font-size:15px}}
@media(max-width:1100px){.desktop-nav{gap:18px}.header-phone{display:none}.split{gap:6%}.request-card{padding:25px}.project-layout{grid-template-columns:.9fr 1.1fr;gap:5%}.project-pair{gap:10px}.project-pair img{height:48svh}.screen h2{font-size:43px}.contact-links>a>span{font-size:17px}}
@media(max-width:760px){:root{--header:72px;--footer:58px;--gutter:24px}.brand{font-size:21px}.brand-location{font-size:8px}.brand svg{width:32px}.desktop-nav{display:none}.menu-toggle{margin-left:auto;width:43px;height:42px;display:flex;flex-direction:column;justify-content:center;gap:7px;border:1px solid #65787e;background:transparent;padding:11px}.menu-toggle span{display:block;width:100%;height:1px;background:white}.screen{padding-top:calc(var(--header) + 33px);padding-bottom:calc(var(--footer) + 33px)}.screen h2{font-size:38px}.hero h1{font-size:clamp(46px,11.5vw,76px)}.hero-content{padding:15px 0}.hero .eyebrow{font-size:10px;max-width:250px;line-height:1.6}.hero-description{font-size:13px}.hero-photo{object-position:58% center}.hero-shade{background:linear-gradient(90deg,#10232ddd,#10232d55)}.hero-location{margin-top:35px}.hero .button{padding:16px 20px;font-size:11px;gap:25px}.hero-secondary{font-size:10px}.image-disclosure{font-size:8px;bottom:calc(var(--footer) + 16px)}.split,.project-layout,.contact-layout{grid-template-columns:1fr;gap:30px}.body-copy{font-size:13px;margin-top:20px}.eyebrow{font-size:10px;margin-bottom:17px}.feature-image{height:330px}.service-lines{margin-top:22px}.service-lines>div{font-size:12px}.quiet-note{font-size:10px}.text-link{margin-top:22px;font-size:11px}.project-pair img{height:310px}.project-pair figcaption{font-size:11px}.project-pair figcaption span:last-child{font-size:9px}.project-select{margin-top:20px}.project-description{margin:16px 0;min-height:0}.faq-list details{padding:17px 0}.faq-list summary{font-size:13px}.faq-list p{font-size:12px}.contact .body-copy{margin-top:18px}.contact-links{margin-top:23px}.contact-links>a>span{font-size:19px}.request-card{padding:24px}.request-card h3{font-size:23px}.form-row{gap:12px}.request-card input,.request-card select,.request-card textarea{font-size:16px}.request-card select{font-size:13px;min-height:44px}.demo-footer{font-size:9px;line-height:1.7}.chapter-controls{gap:12px}.chapter-status{min-width:0;flex:1;gap:16px;font-size:9px}.progress-track,.concept-label{display:none}.page-buttons button{min-width:38px;height:38px;padding:0 10px}.page-buttons button>span{display:none}}
@media(max-width:600px){.form-row{grid-template-columns:1fr;gap:17px}}
@media(max-width:370px){:root{--gutter:18px}.project-pair img{height:250px}.request-card{padding:20px}.hero h1{font-size:44px}}
@media(max-height:740px) and (min-width:761px){.screen{padding-top:calc(var(--header) + 28px);padding-bottom:calc(var(--footer) + 28px)}.screen h2{font-size:39px}.hero h1{font-size:65px}.hero-content{padding:0}.hero-description{margin:20px 0;font-size:13px}.hero-location{margin-top:24px}.eyebrow{margin-bottom:17px}.body-copy{font-size:12px;margin-top:18px}.feature-image{height:480px}.service-lines>div{padding:12px 0}.request-card{padding:25px}.form-help{margin:10px 0 17px}.request-card h3{font-size:22px}.form-row{margin-bottom:12px}.contact-layout{gap:4%}.contact-links{margin-top:20px}.demo-footer{margin-top:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.progress-track span{transition:none}}
/* Keep the outer document on whole chapters; long content scrolls within one chapter. */
html{scroll-snap-type:y mandatory}
html.chapter-animating{scroll-snap-type:none;scroll-behavior:auto}
.screen{height:100dvh;min-height:100dvh;overflow:hidden;scroll-snap-stop:always}
.screen-inner{max-height:100%;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin}
.hero-content{overflow-y:auto}
/* The Before photo is a full-size door moving right over a stationary After photo. */
.comparison-stage{position:relative;height:clamp(330px,59dvh,630px);overflow:hidden;background:var(--ink);isolation:isolate}
.comparison-layer{position:absolute;inset:0;width:100%;height:100%}
.comparison-layer img{width:100%;height:100%;object-fit:cover;object-position:center}
.before-door{z-index:1;will-change:transform;background:var(--ink)}
.comparison-label{position:absolute;top:18px;left:18px;padding:9px 14px;background:#14232ce8;color:white;font-size:11px;letter-spacing:.12em;font-weight:700;pointer-events:none}
.door-edge{position:absolute;top:0;bottom:0;left:0;width:2px;background:#f7f6f2;box-shadow:-5px 0 18px #14232c55;pointer-events:none}
.project-comparison figcaption{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:15px;font-size:12px;font-weight:700}
#reveal-toggle{display:inline-flex;align-items:center;gap:9px;background:transparent;border:1px solid #a5b6b1;padding:10px 12px;min-height:44px;font-size:10px;color:var(--ink);white-space:nowrap}
#reveal-toggle:hover{background:#dce4de}
.comparison-note{margin-top:9px}
@media(max-width:760px){.comparison-stage{height:370px}.project-comparison figcaption{font-size:11px;gap:10px}}
@media(max-width:370px){.comparison-stage{height:310px}.project-comparison figcaption{align-items:flex-start;flex-direction:column;gap:6px}}
/* Mobile has one native scrolling surface: no inner scroll traps or gesture interception. */
@media(max-width:760px),(hover:none) and (pointer:coarse){
  html{scroll-snap-type:y mandatory;scroll-behavior:auto}
  html.chapter-animating{scroll-snap-type:none}
  .screen{height:auto;min-height:100svh;overflow:visible;scroll-snap-stop:always}
  .screen-inner,.hero-content{max-height:none;overflow:visible;overscroll-behavior-y:auto}
  .page-buttons button{height:44px;min-width:44px}
  .page-buttons #next>span{display:inline}
  .mobile-nav-hint #next:not(:disabled){animation:mobile-navigation-cue 1.15s ease-in-out .7s 5}
  @keyframes mobile-navigation-cue{
    0%,100%{background:transparent;border-color:#b7c6bf;box-shadow:0 0 0 0 #ac653d00}
    45%{background:#ead8c9;border-color:#ac653d;box-shadow:0 0 0 5px #ac653d18}
  }
}
@media(max-width:760px){
  .hero{align-items:flex-start}
  .hero-content{margin-top:0;padding-top:15px;padding-bottom:200px}
  .hero-photo{object-position:center bottom}
  .hero-shade{background:linear-gradient(180deg,#10232d30 0%,#10232d15 50%,#10232d00 75%)}
  .hero-location{margin-top:24px}
  .mobile-menu{max-height:calc(100svh - var(--header) - var(--footer));overflow-y:auto}
}
@media(prefers-reduced-motion:reduce){
  .mobile-nav-hint #next:not(:disabled){animation:none}
}
/* Size the desktop frame to the portrait photos instead of letterboxing a wide frame. */
@media(min-width:761px){
  .project-comparison{width:min(100%,clamp(247.5px,44.25dvh,472.5px));max-width:100%;justify-self:center;min-width:0}
  .comparison-stage{height:clamp(330px,59dvh,630px)}
  .comparison-layer img{object-fit:cover}
  .project-comparison figcaption{flex-wrap:wrap}
}
.project-select .floor-hint:not(.selected){animation:floor-project-cue 1.15s ease-in-out .4s 5}
@keyframes floor-project-cue{
  0%,100%{background:transparent;border-color:#a5b6b1;box-shadow:0 0 0 0 #ac653d00}
  45%{background:#ead8c9;border-color:#ac653d;box-shadow:0 0 0 5px #ac653d18}
}
@media(prefers-reduced-motion:reduce){
  .project-select .floor-hint:not(.selected){animation:none}
}
