:root{--cream:#f4f1eb;--white:#fbfaf7;--ink:#1d2930;--slate:#53636b;--line:#cfd4d1;--yellow:#d8a63d;--blue:#dfe7e7;--serif:'Libre Baskerville',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--mono:'IBM Plex Mono',monospace;--ease:cubic-bezier(.23,1,.32,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.55}img{display:block;width:100%;object-fit:cover}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.masthead{background:var(--white);padding:0 5.5vw;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topline{height:31px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font:10px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--slate)}.brandrow{height:96px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font:500 13px/1.05 var(--sans);letter-spacing:.02em}.brand small{font:10px var(--mono);color:var(--slate)}.brand-mark{display:grid;place-items:center;width:41px;height:41px;border:1px solid var(--ink);font:500 12px var(--mono);letter-spacing:-.1em}.brand-note{font:13px var(--serif);color:var(--slate);line-height:1.35;margin-left:18%}.estimate-link{font:11px var(--mono);text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:7px}.estimate-link b,.plain-link b{color:var(--yellow);margin-left:10px;font-size:16px}nav{display:flex;justify-content:center;gap:3.3rem;height:44px;align-items:center;font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em}nav a{transition:color .2s ease}nav a:hover,.contact-info>a:hover{color:var(--yellow)}.hero{background:var(--white);padding:7vw 9vw 8vw;display:grid;grid-template-columns:37% 63%;grid-template-rows:auto auto;position:relative}.hero-copy{padding:2vw 4vw 0 0}.section-tag{font:10px var(--mono);text-transform:uppercase;letter-spacing:.09em;color:var(--slate);margin:0 0 1.8rem}.hero h1,.intro h2,.services h2,.why h2,.process h2,.gallery h2,.contact h2,.band-cta h2{font:400 clamp(48px,6vw,92px)/1.08 var(--serif);letter-spacing:-.055em;margin:0}.hero h1 i,.intro h2 i,.services h2 i,.why h2 i,.process h2 i,.gallery h2 i,.contact h2 i,.band-cta h2 i{color:var(--yellow);font-style:italic}.hero-text{font-size:17px;line-height:1.45;max-width:340px;margin:2rem 0}.hero-buttons{display:flex;flex-direction:column;align-items:flex-start;gap:1.4rem}.btn{display:inline-flex;gap:18px;align-items:center;border:0;padding:16px 20px;font:10px var(--mono);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:transform .2s var(--ease),background .2s ease}.btn:hover{transform:translateY(-3px)}.btn span{font-size:16px}.btn-ink{background:var(--ink);color:var(--white)}.btn-yellow{background:var(--yellow);color:var(--ink)}.underlink,.plain-link{font:10px var(--mono);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--ink);padding-bottom:8px}.hero-photo{margin:0;grid-column:2;grid-row:1/3;position:relative;height:clamp(450px,56vw,670px);border:12px solid var(--cream);overflow:hidden}.hero-photo img{height:100%;transition:transform 1s var(--ease)}.hero-photo:hover img{transform:scale(1.035)}.hero-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:18px 20px;color:var(--white);background:linear-gradient(transparent,rgba(0,0,0,.65));display:flex;justify-content:space-between;font:10px var(--mono);text-transform:uppercase}.hero-stamp{position:absolute;right:3vw;bottom:4vw;border:1px solid var(--yellow);color:var(--yellow);padding:10px 12px;font:10px/1.1 var(--mono);text-align:center}.hero-stamp b{font-size:15px}.intro,.services,.process,.gallery,.reviews,.contact{padding:9vw 12vw}.intro{background:var(--blue)}.intro-grid{display:grid;grid-template-columns:53% 33%;gap:14%;margin-bottom:7vw}.intro-title h2{font-size:clamp(44px,5.5vw,78px)}.intro-copy{padding-top:1rem}.lead{font:21px/1.45 var(--serif);margin:0 0 1.5rem}.intro-copy p:not(.lead){color:var(--slate);font-size:14px;margin-bottom:2rem}.plain-link{display:inline-block}.intro-foot{border-top:1px solid var(--slate);padding-top:13px;display:grid;grid-template-columns:8% 1fr 8% 1fr 8% 1fr;font:11px var(--mono);text-transform:uppercase;align-items:center}.intro-foot span{color:var(--yellow)}.intro-foot p{margin:0}.services{background:var(--cream)}.services-head,.gallery-head{display:grid;grid-template-columns:57% 27%;gap:12%;align-items:end;margin-bottom:5rem}.services-head p,.gallery-head p{font-size:14px;color:var(--slate);margin:0}.service-list{border-top:1px solid var(--ink)}.service-row{display:grid;grid-template-columns:8% 28% 1fr 30px;gap:2rem;align-items:center;border-bottom:1px solid var(--line);padding:24px 0;transition:padding .25s var(--ease),background .25s ease}.service-row:hover{padding-left:14px;background:rgba(255,255,255,.35)}.service-row>span,.service-row>b{font:11px var(--mono);color:var(--yellow)}.service-row h3{font:400 clamp(20px,2.5vw,31px) var(--serif);margin:0}.service-row p{font-size:13px;color:var(--slate);max-width:360px;margin:0}.service-row>b{font-size:20px;text-align:right}.why{display:grid;grid-template-columns:50% 50%;background:var(--white);min-height:630px}.why-image{margin:0;position:relative;overflow:hidden}.why-image img{height:100%;min-height:500px}.why-image span{position:absolute;top:20px;left:25px;color:var(--white);font:10px var(--mono);text-transform:uppercase}.why-copy{padding:10vw 10vw 7vw}.why-copy h2{font-size:clamp(45px,5vw,74px);margin-bottom:2.2rem}.why-copy>p:not(.section-tag){color:var(--slate);font-size:15px;max-width:410px}.why-copy ul{list-style:none;padding:0;border-top:1px solid var(--line);margin-top:2.8rem;max-width:420px}.why-copy li{border-bottom:1px solid var(--line);padding:12px 0;font:12px var(--mono)}.why-copy li span{color:var(--yellow);font-size:18px;margin-right:14px}.process{background:var(--ink);color:var(--white)}.process .section-tag{color:#aebabe}.process h2{margin-bottom:5rem}.process-line{display:grid;grid-template-columns:repeat(4,1fr);gap:2.5rem;border-top:1px solid #617078}.step{padding-top:20px;position:relative}.step:before{content:'';position:absolute;top:-5px;left:0;width:9px;height:9px;background:var(--yellow);border-radius:50%}.step strong{font:11px var(--mono);color:var(--yellow)}.step h3{font:400 28px var(--serif);margin:2.5rem 0 1rem}.step p{font-size:13px;color:#b5c0c3;max-width:190px}.gallery{background:var(--white);overflow:hidden}.gallery-rail{display:flex;align-items:flex-start;gap:20px;width:max-content}.project{margin:0;position:relative;overflow:hidden;background:var(--blue)}.project img{transition:transform .8s var(--ease)}.project:hover img{transform:scale(1.04)}.project figcaption{padding:12px 0;font:10px var(--mono);text-transform:uppercase;color:var(--slate)}.project figcaption b{color:var(--yellow);margin-right:10px}.project-large{width:390px}.project-large img{height:460px}.project-mid{width:300px;margin-top:78px}.project-mid img{height:340px}.project-small{width:230px;margin-top:22px}.project-small img{height:260px}.reviews{background:var(--cream)}.review-card{background:var(--blue);padding:5vw 7vw;position:relative;min-height:340px}.quote{position:absolute;top:25px;left:35px;font:100px/1 var(--serif);color:var(--yellow)}blockquote{font:400 clamp(25px,3.6vw,49px)/1.25 var(--serif);max-width:800px;margin:0 0 3rem;padding-top:3rem;letter-spacing:-.035em}.review-by{display:flex;gap:1rem;flex-direction:column;font:10px var(--mono);text-transform:uppercase;color:var(--slate)}.review-by b{color:var(--ink)}.review-controls{position:absolute;right:35px;bottom:25px;font:11px var(--mono);color:var(--yellow)}.review-controls span{color:var(--slate);margin:0 8px}.review-note{font:10px var(--mono);color:var(--slate);margin-top:16px}.band-cta{background:var(--yellow);padding:7vw 12vw;display:flex;justify-content:space-between;align-items:end;gap:2rem}.band-cta .section-tag{color:#7b5c22}.band-cta h2{font-size:clamp(43px,5.5vw,76px)}.contact{background:var(--cream)}.contact-grid{display:grid;grid-template-columns:36% 51%;gap:13%;margin-bottom:7vw}.contact-info h2{font-size:clamp(44px,5.2vw,74px);margin-bottom:2rem}.contact-info>p{font-size:14px;color:var(--slate);max-width:310px}.contact-info address{font:12px/1.75 var(--mono);font-style:normal;margin:2.5rem 0 1rem}.contact-info>a{display:block;font:11px var(--mono);margin:7px 0}.form-panel{background:var(--white);padding:2.8rem}.form-panel>p{font:22px var(--serif);margin:0 0 2rem}form{display:grid;grid-template-columns:1fr 1fr;gap:23px 18px}label{font:10px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--slate)}label small{color:#aebabe;text-transform:none}input,textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);padding:11px 0;color:var(--ink);outline:0;resize:vertical}input:focus,textarea:focus{border-color:var(--yellow)}.full,#form-success{grid-column:span 2}form button{justify-self:start;margin-top:4px}#form-success{display:none;background:#e0eadf;color:#34553b;padding:15px;font:11px var(--mono)}.error-message{font:11px var(--sans);text-transform:none;letter-spacing:0;color:#a44f32;margin-top:5px}.map-wrap{border-top:1px solid var(--line);padding-top:16px;display:grid;grid-template-columns:32% 1fr;gap:5%}.map-wrap>div span{font:10px var(--mono);text-transform:uppercase;color:var(--slate)}.map-wrap h3{font:400 24px var(--serif);margin:1rem 0}.map-wrap iframe{width:100%;height:240px;border:0;filter:grayscale(.9)}footer{background:#182329;color:var(--white);padding:5vw 8vw 1.5vw;display:grid;grid-template-columns:35% 1fr;gap:5rem}.footer-brand p{color:#aab6b8;font-size:13px;max-width:250px;margin-top:1.5rem}.footer-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.footer-columns div{display:flex;flex-direction:column;gap:10px;font:11px var(--mono)}.footer-columns b{font-size:10px;color:var(--yellow);text-transform:uppercase;margin-bottom:8px}.footer-columns span{color:#aab6b8}.footer-bottom{grid-column:span 2;border-top:1px solid #48575d;padding-top:13px;display:flex;justify-content:space-between;color:#829095;font:10px var(--mono);text-transform:uppercase}.reveal{opacity:0;transform:translateY(18px);transition:opacity .75s var(--ease),transform .75s var(--ease)}.reveal.visible{opacity:1;transform:none}@media(max-width:850px){.brand-note{display:none}.hero{grid-template-columns:1fr;padding:12vw 7vw}.hero-copy{padding:0 0 3rem}.hero-photo{grid-column:1;grid-row:2;height:60vh}.hero-stamp{right:5vw;bottom:3vw}.intro,.services,.process,.gallery,.reviews,.contact{padding:14vw 7vw}.intro-grid,.services-head,.gallery-head,.contact-grid{grid-template-columns:1fr;gap:2rem}.intro-foot{grid-template-columns:10% 1fr;gap:9px}.intro-foot span:nth-of-type(2),.intro-foot span:nth-of-type(3){margin-top:14px}.why{grid-template-columns:1fr}.why-image img{min-height:360px;height:55vw}.why-copy{padding:14vw 7vw}.process-line{grid-template-columns:repeat(2,1fr);gap:3rem}.band-cta{padding:12vw 7vw}.map-wrap{grid-template-columns:1fr;gap:1rem}footer{grid-template-columns:1fr;padding:12vw 7vw 2rem}.footer-bottom{grid-column:span 1;display:block}.footer-bottom span{display:block;margin-top:8px}}@media(max-width:560px){.topline{font-size:8px}.topline a{display:none}.brandrow{height:78px}.estimate-link{font-size:9px}.masthead nav{gap:1.3rem;overflow:auto;justify-content:flex-start;white-space:nowrap;height:42px}.hero h1{font-size:64px}.hero-photo{height:420px;border-width:7px}.hero-photo figcaption{display:block}.hero-photo figcaption span{display:block;margin:4px}.intro h2,.services h2,.why h2,.process h2,.gallery h2,.contact h2{font-size:51px}.intro-foot{font-size:10px}.service-row{grid-template-columns:12% 1fr 20px;gap:1rem}.service-row p{grid-column:2/4}.service-row h3{font-size:20px}.process-line{grid-template-columns:1fr}.step p{max-width:100%}.gallery-rail{gap:14px}.project-large{width:280px}.project-large img{height:350px}.project-mid{width:230px;margin-top:45px}.project-mid img{height:270px}.project-small{width:190px}.project-small img{height:220px}.form-panel{padding:1.8rem 1.3rem}form{grid-template-columns:1fr}.full,#form-success{grid-column:span 1}.form-panel .btn{width:100%}.footer-columns{grid-template-columns:1fr 1fr}.footer-columns div:last-child{grid-column:span 2}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.btn,.hero-photo img,.project img{transition:none}}
