
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:108px}body{margin:0;background:#fff;color:#132638;font:16px/1.7 "Helvetica Neue",Arial,sans-serif}a{color:inherit;text-underline-offset:5px}img{display:block;width:100%;object-fit:cover}button{font:inherit}header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid #e1e6eb}.nav{max-width:1440px;margin:auto;padding:16px 5%;display:flex;align-items:center;justify-content:space-between;gap:30px}.logo{width:135px;height:63px;object-fit:contain}nav{display:flex;gap:27px;flex-wrap:wrap}nav a{text-decoration:none;font-size:14px;font-weight:500}.button{display:inline-flex;align-items:center;justify-content:center;padding:15px 25px;background:#244f83;border:1px solid transparent;color:#fff;text-decoration:none;line-height:1.3;font-size:14px;font-weight:600;letter-spacing:.015em;transition:background .25s,transform .25s}.button:hover{background:#183d6b;transform:translateY(-2px)}.button.light{background:#fff;color:#173555}.wrap{max-width:1370px;margin:auto;padding:100px 6%}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.19em;text-transform:uppercase;color:#48698b}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(42px,4.9vw,74px);line-height:1.08;letter-spacing:-.045em;margin:25px 0}h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(33px,3.65vw,54px);line-height:1.15;letter-spacing:-.035em;margin:18px 0 35px}em{font-weight:400;color:#6889a6}h3{font-weight:500;font-size:23px;line-height:1.35}p{max-width:670px;margin-bottom:20px}.small{font-size:14px;color:#607183}.actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap;margin-top:28px}.hero{display:grid;grid-template-columns:46% 54%;background:#10283e;color:white;min-height:650px}.hero .copy{padding:75px 12%;align-self:center}.hero .eyebrow{color:#b7cde0}.hero img{height:100%;max-height:780px}.hero h1 span{color:#b6cbe0}.hero .small{color:#b5c6d5}.trust{max-width:1370px;margin:auto;display:flex;justify-content:space-between;gap:30px;padding:33px 6%;border-bottom:1px solid #dbe2e8;font-size:14px}.trust span{border-left:1px solid #7293ae;padding-left:18px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.card{padding:28px;border:1px solid #dbe2e8;text-decoration:none;background:#fff;transition:background .3s}.card .number{color:#6889a6;font-size:12px;letter-spacing:.13em}.card p{color:#596d7e}.card:hover{background:#f0f5f9}#services .grid{grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #ced9e2;border-bottom:1px solid #ced9e2}#services .card{border:0;border-right:1px solid #ced9e2;padding:35px 27px}#services .card:last-child{border-right:0}#services .card h3{margin-top:30px;min-height:64px}#services .card strong{font-size:14px;color:#244f83}.blue{background:#10283e;color:#fff}.blue .eyebrow{color:#a4bfd6}.blue em{color:#b8cedf}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.split img{height:560px}.gallery{gap:35px}.gallery figure{margin:0}.gallery img{height:470px;transition:transform .6s}.gallery figure{overflow:hidden}.gallery figcaption{padding:22px 0;border-bottom:1px solid #cfdbe4}.gallery h3{font-size:21px;margin-bottom:7px}.gallery p{font-size:14px;color:#607183;margin:0}.transformation{display:grid;grid-template-columns:1fr 1.25fr;gap:70px;background:#eff4f8;max-width:none;padding-inline:max(6%,calc((100vw - 1206px)/2))}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:15px}.comparison figure{margin:0}.comparison img{height:480px}.comparison figcaption{font-size:12px;text-transform:uppercase;letter-spacing:.16em;padding-top:13px}.towns{display:flex;gap:12px;flex-wrap:wrap}.towns span{border-bottom:1px solid #b9c9d7;padding:9px 14px;font-size:14px}details{padding:23px 0;border-bottom:1px solid #ced9e2}summary{font-size:18px;font-weight:500;cursor:pointer}details p{margin:18px 0 0}footer{padding:50px 6%;background:#081b2d;color:#c1d0dc;font-size:14px}.service-links{max-width:1206px;margin:0 auto 35px;line-height:2}.footer-inner{max-width:1206px;margin:auto;display:flex;justify-content:space-between;gap:40px}.contact{font-family:Georgia,serif;font-size:clamp(27px,3.5vw,46px);text-decoration:none}.legal{max-width:1000px}.legal h2{font-family:inherit;font-size:26px;margin-top:45px}.legal p{max-width:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #e7ae50;outline-offset:5px}
/* Full-screen visual narrative */
.home header{position:absolute;top:0;width:100%;background:linear-gradient(180deg,rgba(7,20,31,.8),transparent);border:0;color:#fff}.home .nav{max-width:none;padding:23px 5%}.home .logo{background:#fff;padding:6px;width:140px;height:70px}.home header .button{background:transparent;border-color:#b5c8d6}.home .cinematic{position:relative;display:block;min-height:780px;height:calc(100svh - 15px);max-height:1100px;overflow:hidden;background:#152c3d}.hero-scenes,.hero-shade{position:absolute;inset:0}.cinematic .scene{position:absolute;inset:0;height:100%;max-height:none;opacity:0;transform:scale(1.035);transition:opacity 1.5s ease,transform 7s linear;object-position:65% 55%;filter:saturate(.7)}.cinematic .scene.active{opacity:1;transform:scale(1)}.hero-shade{background:linear-gradient(90deg,rgba(7,22,36,.88) 0%,rgba(7,22,36,.62) 38%,rgba(7,22,36,.10) 75%),linear-gradient(0deg,rgba(7,22,36,.82),transparent 40%)}.cinematic .copy{position:relative;z-index:2;padding:190px 6% 190px;max-width:1100px}.cinematic h1{font-size:clamp(52px,6.2vw,94px);letter-spacing:-.05em;line-height:1.05;margin:30px 0;max-width:850px}.cinematic h1 em{color:#c1d7e8}.cinematic .eyebrow{color:#b6cedf}.hero-intro{font-size:18px;color:#e1ebf2;line-height:1.8}.cinematic .button{background:#f1f6fa;color:#17344c}.cinematic .button:hover{background:#dbe7f0}.text-link{font-size:14px;text-decoration:none;border-bottom:1px solid #a8bdcd;padding-bottom:5px}.scene-navigation{position:absolute;z-index:3;left:6%;right:6%;bottom:33px;display:grid;grid-template-columns:1fr auto;column-gap:40px}.scene-tabs{display:flex;gap:35px;max-width:950px}.scene-tab{background:none;border:0;border-top:1px solid #8597a4;color:#d7e2eb;text-align:left;padding:18px 0 8px;flex:1;cursor:pointer;font-size:14px;position:relative}.scene-tab span{display:block;color:#b1c6d6;font-size:12px;letter-spacing:.13em;margin-bottom:4px}.scene-tab.selected{border-top:2px solid #eef6fc;padding-top:17px;color:#fff}.motion-toggle{color:#fff;border:1px solid #8195a5;background:rgba(7,22,36,.2);padding:8px 14px;font-size:12px;align-self:center;cursor:pointer}.scene-caption{grid-column:1/-1;font-size:12px;color:#c1d0dd;margin:14px 0 0;letter-spacing:.05em}.reveal{transition:opacity .7s ease,transform .7s ease}.motion-ready .reveal{opacity:0;transform:translateY(24px)}.motion-ready .reveal.visible{opacity:1;transform:none}
@media(min-width:1100px){.gallery figure:nth-child(2){padding-top:65px}.gallery figure:nth-child(3){padding-top:130px}}
@media(max-width:1100px){nav{gap:16px}#services .grid{grid-template-columns:repeat(2,1fr)}#services .card{border-bottom:1px solid #ced9e2}.cinematic .copy{padding-top:170px}.cinematic h1{font-size:76px}.split{gap:40px}.scene-tabs{gap:20px}}
@media(max-width:800px){.nav{flex-wrap:wrap;padding:12px 6%;gap:12px}.logo{width:115px;height:52px}nav{order:3;width:100%;gap:8px 17px}nav a{font-size:13px}.nav>.button{font-size:12px;padding:12px 13px}.wrap{padding:65px 6%}.hero,.split,.transformation{grid-template-columns:1fr}.hero .copy{padding:55px 6%}.hero img{height:420px}.grid{grid-template-columns:1fr}.trust{flex-wrap:wrap;gap:18px}.split{gap:35px}.split img{height:430px}#services .grid{grid-template-columns:1fr}#services .card{border-right:0}#services .card h3{min-height:0;margin-top:18px}.gallery img{height:430px}.gallery{gap:35px}.comparison img{height:330px}.transformation{gap:30px}.footer-inner{flex-direction:column;gap:25px}.home .nav{padding:17px 6%}.home .logo{height:55px;width:115px}.home .cinematic{min-height:820px;height:100svh;max-height:1000px}.cinematic .copy{padding:190px 6% 200px}.cinematic h1{font-size:clamp(46px,9vw,70px);margin:28px 0}.hero-intro{font-size:16px}.cinematic .scene{height:100%;object-position:60% 50%}.hero-shade{background:linear-gradient(90deg,rgba(7,22,36,.8),rgba(7,22,36,.25)),linear-gradient(0deg,rgba(7,22,36,.95),transparent 55%)}.scene-navigation{bottom:25px;column-gap:15px}.scene-tabs{gap:12px}.scene-tab{font-size:12px}.motion-toggle{grid-row:2;grid-column:2;margin-top:15px;font-size:12px;max-width:120px}.scene-caption{grid-column:1;grid-row:2;margin-top:20px;font-size:12px}.cinematic .actions{gap:22px}.cinematic .eyebrow{font-size:11px;letter-spacing:.13em}.text-link{font-size:13px}.reveal{transition:none}}
@media(max-width:380px){.cinematic h1{font-size:42px}.home .cinematic{min-height:850px}.scene-tab{font-size:12px}.comparison img{height:280px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.cinematic .scene{transform:none}.motion-ready .reveal{opacity:1;transform:none}}

/* A fixed room with transparent fixtures in one shared coordinate system. */
.build-stage{position:absolute;inset:0;overflow:hidden;background:#152c3d}.room-canvas{position:absolute;right:0;top:0;height:100%;aspect-ratio:4/5}.cinematic .build-layer{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:fill;filter:none}.build-item{opacity:0;transform:translateY(-5px);transition:opacity .45s ease,transform .7s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.build-item.vanity{transform:translateY(8px)}.build-item.mirror{transform:translateY(-8px)}.build-item.installed{opacity:1;transform:none}.build-reset .build-item{transition:none}.cinematic .hero-shade{background:linear-gradient(90deg,rgba(7,22,36,.95),rgba(7,22,36,.8) 28%,rgba(7,22,36,.25) 55%,transparent 83%),linear-gradient(0deg,rgba(7,22,36,.9),transparent 30%)}.cinematic .copy{max-width:1000px}.build-progress{max-width:650px;display:grid;grid-template-columns:85px 1fr;align-items:center;gap:10px}.build-count{font-size:12px;letter-spacing:.12em;color:#b4c9d9}.build-label{font-size:14px}.build-track{grid-column:1/-1;height:2px;background:#5c7386;margin-top:12px}.build-track span{display:block;height:100%;background:#dceaf5;transition:width .35s}.build-actions{display:flex;gap:12px;align-items:center}.build-replay{background:none;border:0;border-bottom:1px solid #96acbd;color:white;font-size:12px;padding:8px 0;cursor:pointer}.logo,.home .logo{background:transparent;padding:0;filter:none;mix-blend-mode:normal;width:140px;height:75px}.home .nav>a:first-child{display:block;background:transparent}.home header{background:linear-gradient(180deg,rgba(7,20,31,.8),transparent)}
@media(max-width:800px){.room-canvas{height:78%;right:50%;top:120px;transform:translateX(50%)}.cinematic .hero-shade{background:linear-gradient(180deg,rgba(7,22,36,.9),rgba(7,22,36,.55) 35%,rgba(7,22,36,.15) 65%,rgba(7,22,36,.9))}.build-navigation{grid-template-columns:1fr;gap:16px;bottom:22px}.build-actions{grid-column:1;grid-row:2}.build-navigation .motion-toggle{grid-column:auto;grid-row:auto;margin:0;max-width:none}.build-navigation .scene-caption{grid-row:3;margin:0}.build-progress{grid-template-columns:75px 1fr;gap:5px}.build-label{font-size:13px}.home .logo{width:115px;height:60px}.cinematic .copy{padding-bottom:225px}}
@media(prefers-reduced-motion:reduce){.build-item,.build-track span{transition:none}}

.build-item.faucet-left,.build-item.faucet-right{transform:translateX(3px)}.build-item.faucet-left.installed,.build-item.faucet-right.installed{transform:none}

/* Ceramic pieces descend straight onto the countertop; the room stays fixed. */
.build-item.basin-left,.build-item.basin-right{transform:translateY(-18px);transition:opacity .2s ease,transform .65s cubic-bezier(.2,.65,.3,1);z-index:2}.build-item.basin-left.installed,.build-item.basin-right.installed{transform:translateY(0)}.build-item.vanity{z-index:1}.fixture-finish{opacity:0;z-index:3;transition:opacity .2s ease}.fixture-finish.installed{opacity:1}.build-reset .build-item,.build-reset .fixture-finish{transition:none}
@media(prefers-reduced-motion:reduce){.build-item.basin-left,.build-item.basin-right,.fixture-finish{transition:none}}

.cinematic h1{font-size:clamp(44px,5.3vw,80px)}
@media(max-width:800px){.cinematic h1{font-size:clamp(38px,8vw,62px)}}

/* One continuous assembly clock: pause freezes fixtures and camera together. */
.room-canvas{transform:scale(var(--camera-scale,1.025));transform-origin:65% 60%}
.cinematic .build-item{transition:none;will-change:transform,opacity}
.build-item.faucet-left,.build-item.faucet-right{z-index:3}.build-item.mirror{z-index:4}
.build-track span{transition:none}.build-count,.motion-toggle,.build-replay,.scene-caption{font-size:14px}
@media(max-width:800px){.room-canvas{transform:translateX(50%) scale(var(--camera-scale,1.025))}.build-navigation .motion-toggle,.build-label{font-size:14px}}
@media(prefers-reduced-motion:reduce){.room-canvas{--camera-scale:1!important}}

.urgent-note{margin-top:16px!important}.urgent-grid{grid-template-columns:repeat(4,1fr)}.urgent-grid h3{font-size:22px}.urgent-process p{color:#d4e0ea}.urgent-call{position:fixed;bottom:20px;right:24px;z-index:40;background:#244f83;color:white;border:1px solid #a9bed2;box-shadow:0 8px 30px #081b2d33;text-decoration:none;padding:13px 20px;font-size:14px;font-weight:600}.urgent-home{padding-block:70px}.urgent-hero h1{font-size:clamp(40px,4vw,66px)}@media(max-width:1000px){.urgent-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.urgent-grid{grid-template-columns:1fr}.urgent-call{left:16px;right:16px;bottom:12px;text-align:center}footer{padding-bottom:95px}.urgent-hero img{height:330px}.urgent-home{padding-block:50px}}
