
:root{
  --ink:#101210;
  --ink2:#171a16;
  --bone:#f3efe7;
  --bone2:#e5ded3;
  --titanium:#cbc4b9;
  --orange:#b7a27a;
  --orange-deep:#665944;
  --champagne:#d8c7a7;
  --muted:#6f716d;
  --line:rgba(16,18,16,.16);
  --display:"Space Grotesk",sans-serif;
  --body:"Manrope",sans-serif;
  --mono:"IBM Plex Mono",monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;color:var(--ink);background:var(--bone);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}img{display:block;max-width:100%}
.dc-shell{width:min(1380px,calc(100vw - 72px));margin:0 auto}
.dc-display{font-family:var(--display);letter-spacing:-.065em;font-weight:600}
em{font-style:normal;color:var(--orange)}
.dc-dark{background:var(--ink);color:#f7f2ea}.dc-light{background:var(--bone);color:var(--ink)}.dc-titanium{background:#d6cfc4;color:var(--ink)}
.dc-section{padding:112px 0}.dc-section p{color:var(--muted)}
.dc-eyebrow{font:500 8px var(--mono);letter-spacing:.17em;color:var(--champagne)}.dc-eyebrow.dark{color:var(--orange-deep)}
.dc-kicker{display:flex;align-items:center;gap:13px;font:500 8px var(--mono);letter-spacing:.18em;color:#aaa69e}.dc-kicker i{width:48px;height:1px;background:currentColor}
.dc-actions{display:flex;align-items:center;gap:28px}
.dc-button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-height:54px;padding:0 20px;border:1px solid transparent;background:none;font-size:12px;font-weight:700;cursor:pointer;transition:transform .25s,background .25s,color .25s,border-color .25s}
.dc-button b{font-size:18px;font-weight:400;transition:transform .25s}.dc-button:hover b{transform:translate(4px,-4px)}
.dc-button.champagne{background:var(--champagne);color:var(--ink)}.dc-button.champagne:hover{background:#f6d9a6}
.dc-button.dark{background:var(--ink);color:white}.dc-button.dark:hover{background:var(--orange-deep)}
.dc-text-link{display:inline-flex;align-items:center;gap:13px;padding-bottom:4px;border-bottom:1px solid currentColor;font-size:12px;font-weight:700}.dc-text-link b{transition:transform .2s}.dc-text-link:hover b{transform:translateX(4px)}.dc-text-link.light{color:white}
.dc-section-head{display:grid;grid-template-columns:190px 1fr auto;align-items:end;gap:30px;margin-bottom:46px}
.dc-section-head>div{display:flex;align-items:center;gap:12px;font:600 8px var(--mono);letter-spacing:.16em;color:var(--orange-deep)}.dc-section-head>div i{width:34px;height:1px;background:currentColor}
.dc-section-head h2{font-size:clamp(38px,4.4vw,62px);line-height:.94;margin:0}.dc-section-head>a{font-size:11px;font-weight:700;border-bottom:1px solid;padding-bottom:4px}

/* loader, transition, cursor */
.dc-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;align-content:center;gap:22px;background:var(--ink);color:white;transition:opacity .6s,visibility .6s}
.site-ready .dc-loader{opacity:0;visibility:hidden;pointer-events:none}
.dc-loader-logo{display:flex;align-items:center;border:1px solid rgba(255,255,255,.35);font:600 22px var(--display);letter-spacing:.17em}.dc-loader-logo span{padding:12px 18px 12px 22px;background:white;color:var(--ink)}.dc-loader-logo b{padding:12px 17px;font-weight:600}
.dc-loader-track{width:260px;height:1px;background:rgba(255,255,255,.15);overflow:hidden}.dc-loader-track i{display:block;width:35%;height:100%;background:var(--orange);animation:loadline 1.2s ease-in-out infinite}@keyframes loadline{from{transform:translateX(-120%)}to{transform:translateX(380%)}}
.dc-loader small{font:500 7px var(--mono);letter-spacing:.2em;color:#8a877f}
.dc-transition{position:fixed;inset:0;z-index:9900;background:var(--orange);transform:translateY(101%);pointer-events:none;display:grid;place-items:center;transition:transform .52s cubic-bezier(.76,0,.24,1)}
.dc-transition span{font:600 clamp(34px,6vw,82px) var(--display);letter-spacing:-.05em;color:var(--ink);opacity:0;transition:opacity .2s}
body.is-leaving .dc-transition{transform:translateY(0)}body.is-leaving .dc-transition span{opacity:1;transition-delay:.18s}
.dc-scroll-progress{position:fixed;z-index:9800;left:0;top:0;right:0;height:2px;background:transparent}.dc-scroll-progress i{display:block;width:0;height:100%;background:var(--orange)}
.dc-cursor{position:fixed;z-index:9800;left:0;top:0;pointer-events:none;opacity:0;transition:opacity .2s}.dc-cursor i{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--orange);transform:translate(-50%,-50%)}.dc-cursor span{position:absolute;width:38px;height:38px;border:1px solid rgba(233,120,61,.45);border-radius:50%;transform:translate(-50%,-50%);transition:width .2s,height .2s,background .2s}.has-cursor .dc-cursor{opacity:1}.cursor-hover .dc-cursor span{width:58px;height:58px;background:rgba(183,162,122,.06)}

/* header */
.dc-header{position:fixed;z-index:900;left:0;right:0;top:0;background:rgba(12,14,12,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.1);color:white;transition:transform .35s,background .3s}
.dc-header:before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--orange) 0 42%,var(--champagne) 42% 60%,rgba(255,255,255,.2) 60% 100%)}
.dc-header-inner{height:86px;display:grid;grid-template-columns:220px 1fr auto;align-items:center;gap:30px}
.dc-logo{width:205px;display:block}.dc-logo img{width:100%;height:auto!important;object-fit:contain!important;filter:invert(1) brightness(2);aspect-ratio:auto!important}
.dc-nav{justify-self:center;display:flex;gap:32px}.dc-nav a{position:relative;padding:8px 0;font-size:11px;color:#bbb8b0}.dc-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--orange);transition:right .25s}.dc-nav a:hover,.dc-nav a.active{color:white}.dc-nav a:hover:after,.dc-nav a.active:after{right:0}
.dc-header-cta{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:44px;padding:0 16px;background:var(--champagne);color:var(--ink);font-size:10px;font-weight:700}.dc-header-cta b{font-size:16px}
.dc-menu{display:none;background:none;border:0;width:42px;height:42px;position:relative}.dc-menu i{position:absolute;left:8px;right:8px;height:1px;background:white;transition:.25s}.dc-menu i:first-child{top:16px}.dc-menu i:last-child{top:25px}
.dc-mobile-nav{display:none}
.dc-header.scrolled{background:rgba(12,14,12,.97)}

/* footer */
.dc-footer{padding:72px 0 24px;background:#0b0d0b;color:#f4efe7;border-top:1px solid rgba(255,255,255,.1)}
.dc-footer-grid{display:grid;grid-template-columns:1.5fr .7fr .8fr;gap:70px}.dc-footer-brand img{width:245px;height:auto;filter:invert(1) brightness(2)}.dc-footer-brand p{margin:24px 0 0;font-size:13px;color:#8c8982}
.dc-footer-col{display:grid;align-content:start;gap:11px}.dc-footer-col>span{margin-bottom:9px;font:500 7px var(--mono);letter-spacing:.17em;color:var(--champagne)}.dc-footer-col a,.dc-footer-col p{margin:0;font-size:12px;color:#b8b4ac}
.dc-footer-bottom{margin-top:55px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:20px;font:500 7px var(--mono);letter-spacing:.1em;color:#6f6c65}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(30px);filter:blur(5px)}
[data-reveal].is-visible{opacity:1;transform:none;filter:none;transition:opacity .85s cubic-bezier(.2,.8,.2,1) var(--delay,0ms),transform .85s cubic-bezier(.2,.8,.2,1) var(--delay,0ms),filter .85s cubic-bezier(.2,.8,.2,1) var(--delay,0ms)}

/* home hero */
.dc-hero{position:relative;min-height:100svh;padding:140px 0 78px;overflow:hidden;background:var(--ink)}
.dc-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:92px 92px;mask-image:linear-gradient(90deg,black 0 75%,transparent)}
.dc-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.03fr .97fr;gap:80px;align-items:center}
.dc-hero-title{font-size:clamp(56px,6.2vw,96px);line-height:.82;margin:28px 0 0}.dc-hero-title span{display:block}.dc-hero-title .outline{color:transparent;-webkit-text-stroke:1px rgba(247,242,234,.68)}
.dc-hero-text{max-width:650px;margin:34px 0 0;color:#aaa79f;font-size:15px;line-height:1.75}.dc-hero .dc-actions{margin-top:30px}
.dc-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:52px;padding-top:20px;border-top:1px solid rgba(255,255,255,.13);gap:18px}.dc-stats>div{display:flex;gap:12px}.dc-stats strong{font:600 30px/1 var(--display)}.dc-stats span{font:500 7px/1.5 var(--mono);letter-spacing:.13em;color:#7e7b74}
.dc-hero-object{position:relative;min-height:640px;perspective:1200px;transform-style:preserve-3d}.dc-hero-photo{position:absolute;inset:8% 4% 8% 7%;overflow:hidden;clip-path:polygon(0 0,88% 0,100% 12%,100% 100%,12% 100%,0 88%);box-shadow:0 40px 100px rgba(0,0,0,.35)}.dc-hero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.68) contrast(1.05);animation:photoBreath 15s ease-in-out infinite alternate}@keyframes photoBreath{to{transform:scale(1.055) translate(-1%,1%)}}
.dc-floating-plan{position:absolute;left:-2%;top:7%;width:210px;height:270px;padding:17px;background:rgba(243,239,231,.93);color:var(--ink);box-shadow:0 25px 60px rgba(0,0,0,.23);transform:rotate(-5deg)}.dc-floating-plan>span,.dc-floating-sample>span{font:500 7px var(--mono);letter-spacing:.13em;color:var(--orange-deep)}
.plan-grid{height:145px;margin:16px 0;background:linear-gradient(32deg,transparent 49.5%,rgba(16,18,16,.18) 50%,transparent 50.5%),repeating-linear-gradient(0deg,rgba(16,18,16,.1) 0 1px,transparent 1px 23px),repeating-linear-gradient(90deg,rgba(16,18,16,.1) 0 1px,transparent 1px 23px)}
.dc-floating-plan b,.dc-floating-plan i,.dc-floating-plan strong{display:block;font:600 8px var(--mono);font-style:normal;letter-spacing:.12em;margin-top:4px}.dc-floating-plan i{color:var(--orange-deep);margin-left:23px}.dc-floating-plan strong{margin-left:46px}
.dc-floating-sample{position:absolute;right:-1%;bottom:10%;width:142px;height:175px;padding:15px;background:linear-gradient(145deg,#d2b896,#8d6a50);color:white;box-shadow:0 28px 65px rgba(0,0,0,.25);transform:rotate(4deg)}.dc-floating-sample i{display:block;width:55px;height:55px;border-radius:50%;margin:35px auto 27px;background:radial-gradient(circle at 30% 25%,#f4e8d4,#78624f)}.dc-floating-sample b{font:600 15px var(--display)}
.dc-object-outline{position:absolute;inset:4% 0 4% 4%;border:1px solid rgba(235,200,140,.2);clip-path:polygon(0 0,88% 0,100% 12%,100% 100%,12% 100%,0 88%);pointer-events:none}
.dc-hero-marquee{position:absolute;left:0;right:0;bottom:0;height:33px;overflow:hidden;border-top:1px solid rgba(255,255,255,.09);display:flex;align-items:center;color:#66645f;font:500 7px var(--mono);letter-spacing:.17em;white-space:nowrap}.dc-hero-marquee div{animation:marquee 24s linear infinite}@keyframes marquee{to{transform:translateX(-50%)}}

/* common sections */
.dc-intro-grid{display:grid;grid-template-columns:195px 1fr;gap:55px;align-items:start}.dc-side-label{display:flex;align-items:center;gap:10px;font:500 8px var(--mono);letter-spacing:.13em;color:var(--orange-deep)}.dc-side-label span{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line)}.dc-intro-grid .section-title{font-size:clamp(38px,4.3vw,60px);line-height:.96;margin:0;max-width:990px}
.dc-service-list{border-top:1px solid rgba(16,18,16,.16)}.dc-service-list>a{display:grid;grid-template-columns:70px 1.15fr 1fr 30px;gap:22px;align-items:center;min-height:116px;border-bottom:1px solid rgba(16,18,16,.16);transition:background .28s,color .28s,padding .28s}.dc-service-list>a>span{font:500 8px var(--mono);color:var(--orange-deep)}.dc-service-list h3{margin:0;font:600 clamp(24px,2.5vw,38px) var(--display);letter-spacing:-.04em}.dc-service-list p{margin:0;font-size:11px;line-height:1.55;color:#666159}.dc-service-list>a>b{font-size:19px;font-weight:400}.dc-service-list>a:hover{background:var(--ink);color:white;padding:0 16px}.dc-service-list>a:hover p,.dc-service-list>a:hover>span{color:var(--champagne)}.dc-service-list.compact>a{min-height:105px}
.dc-split{display:grid;grid-template-columns:1fr 1fr;gap:74px;align-items:center}.dc-split.reverse>div:first-child{order:2}.dc-image-frame{position:relative;height:590px;overflow:hidden}.dc-image-frame.tall{height:660px}.dc-image-frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.65) contrast(1.04);transition:transform .8s}.dc-image-frame:hover img{transform:scale(1.04)}.dc-image-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.48))}
.dc-image-tech{position:absolute;z-index:2;left:20px;right:20px;bottom:20px;padding:15px;border:1px solid rgba(255,255,255,.22);background:rgba(12,14,12,.6);color:white;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;backdrop-filter:blur(8px)}.dc-image-tech span{font:500 7px var(--mono);letter-spacing:.13em;color:var(--champagne)}.dc-image-tech i{height:1px;background:rgba(255,255,255,.2)}.dc-image-tech b{grid-column:1/-1;font-size:12px}
.dc-copy-block h2{font-size:clamp(39px,4.2vw,60px);line-height:.92;margin:18px 0 22px}.dc-copy-block>p{max-width:580px;color:#aaa69e;font-size:14px;line-height:1.75}.dc-copy-block.light-copy>p{color:#625d56}.dc-mini-steps{margin-top:28px;border-top:1px solid rgba(255,255,255,.14)}.dc-mini-steps>div{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.14)}.dc-mini-steps span{font:500 8px var(--mono);color:var(--champagne)}.dc-mini-steps b{font-size:12px}.dc-mini-steps.light-steps{border-color:rgba(16,18,16,.14)}.dc-mini-steps.light-steps>div{border-color:rgba(16,18,16,.14)}.dc-mini-steps.light-steps span{color:var(--orange-deep)}
.dc-project-intro{max-width:560px;margin:-14px 0 38px 190px;font-size:13px;line-height:1.7}.dc-project-trio{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:340px 340px;gap:14px}.dc-project-trio>a{position:relative;overflow:hidden;background:#ccc}.dc-project-trio .large{grid-row:1/3}.dc-project-trio img{width:100%;height:100%;object-fit:cover;filter:saturate(.72);transition:transform .7s,filter .4s}.dc-project-trio a:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.75))}.dc-project-trio a>div{position:absolute;z-index:2;left:20px;right:20px;bottom:18px;color:white}.dc-project-trio span{font:500 7px var(--mono);color:var(--champagne)}.dc-project-trio h3{font:600 clamp(26px,3vw,46px) var(--display);letter-spacing:-.05em;margin:5px 0 0}.dc-project-trio a:hover img{transform:scale(1.06);filter:saturate(.95)}
.dc-process-lead{max-width:530px;margin:-18px 0 44px 190px;font-size:13px;line-height:1.7}.dc-process-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.dc-process-grid article{min-height:280px;padding:24px;border-right:1px solid var(--line);position:relative}.dc-process-grid article:first-child{padding-left:0}.dc-process-grid article:last-child{border-right:0}.dc-process-grid article>span{font:500 8px var(--mono);color:var(--orange-deep)}.step-icon{width:38px;height:38px;border:1px solid var(--line);display:grid;place-items:center;margin-top:50px;color:var(--orange-deep)}.dc-process-grid h3{font:600 23px/1 var(--display);letter-spacing:-.04em;margin:18px 0 10px}.dc-process-grid p{font-size:11px;line-height:1.65;margin:0}
.dc-cta{padding:100px 0}.dc-cta>div>span{font:500 8px var(--mono);letter-spacing:.18em;color:var(--champagne)}.dc-cta h2{font-size:clamp(46px,5.7vw,80px);line-height:.88;margin:18px 0 36px}

/* page hero */
.dc-page-hero{padding:150px 0 86px;min-height:470px;background:var(--ink);position:relative;overflow:hidden}
.dc-page-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:90px 90px;mask-image:linear-gradient(90deg,black 0 70%,transparent)}
.dc-page-hero>.dc-shell{position:relative}.dc-page-hero-grid{display:grid;grid-template-columns:1.2fr .6fr;gap:70px;align-items:end;margin-top:54px}.dc-page-hero h1{font-size:clamp(54px,6.5vw,88px);line-height:.84;margin:0}.dc-page-hero p{max-width:520px;margin:0 0 10px;color:#aaa69e;font-size:14px;line-height:1.75}
.dc-about-story{display:grid;grid-template-columns:.45fr 1.2fr;gap:80px;align-items:start}.dc-big-stat strong{display:block;font:600 clamp(105px,15vw,230px)/.73 var(--display);letter-spacing:-.1em;color:var(--orange)}.dc-big-stat span{display:block;margin-top:30px;font:500 8px var(--mono);letter-spacing:.15em}.dc-about-story h2{font-size:clamp(38px,4.2vw,58px);line-height:.96;margin:18px 0 0}

/* services */
.svc-hero{padding:160px 0 62px;background:var(--ink)}.svc-hero-grid{display:grid;grid-template-columns:1.1fr .7fr;gap:80px;align-items:end;margin-top:48px}.svc-hero h1{font-size:clamp(58px,7vw,96px);line-height:.76;margin:0}.svc-hero-grid h2{font:600 30px/1 var(--display);letter-spacing:-.04em;margin:0 0 16px}.svc-hero-grid p{color:#a9a69e;font-size:13px;line-height:1.7;max-width:520px}.svc-hero-grid small{display:block;margin-top:20px;font:500 7px var(--mono);letter-spacing:.15em;color:var(--champagne)}
.svc-exploded{padding:12px 0 112px}.svc-engine{position:relative;min-height:760px;border:1px solid rgba(255,255,255,.11);overflow:hidden;background:#121411;perspective:1400px}.svc-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px}.svc-grid:after{content:"";position:absolute;left:50%;top:50%;width:560px;height:560px;transform:translate(-50%,-50%);border:1px solid rgba(235,200,140,.11);border-radius:50%;box-shadow:0 0 0 110px rgba(255,255,255,.01),0 0 0 220px rgba(255,255,255,.008)}
.svc-axis{position:absolute;z-index:1;font:500 6px var(--mono);letter-spacing:.14em;color:#585a54}.svc-axis.x{left:20px;bottom:14px}.svc-axis.y{right:-47px;top:50%;transform:rotate(90deg)}
.svc-tabs{position:absolute;left:28px;top:50%;transform:translateY(-50%);z-index:6;width:330px;display:grid}.svc-tabs button{display:grid;grid-template-columns:34px 1fr 22px;gap:10px;align-items:center;min-height:92px;padding:15px 0;border:0;border-bottom:1px solid rgba(255,255,255,.11);background:transparent;color:white;text-align:left;cursor:pointer;transition:padding .25s,background .25s}.svc-tabs button:first-child{border-top:1px solid rgba(255,255,255,.11)}.svc-tabs button:hover,.svc-tabs button.active{padding-left:14px;padding-right:12px;background:rgba(235,200,140,.08)}.svc-tabs button>span{font:500 7px var(--mono);color:var(--champagne)}.svc-tabs small{font:500 7px var(--mono);letter-spacing:.13em;color:#a29e96}.svc-tabs b{display:block;margin-top:7px;font-size:11px;color:#d1ccc3}.svc-tabs i{font-style:normal;font-size:17px;color:#76736c}.svc-tabs button.active i{color:var(--orange)}
.svc-scene{position:absolute;left:360px;right:360px;top:40px;bottom:40px;z-index:3;perspective:1200px}.svc-camera{position:absolute;inset:0;display:grid;place-items:center;transform-style:preserve-3d;transition:transform .18s ease-out}.svc-stack{position:relative;width:460px;height:360px;transform-style:preserve-3d;transform:rotateX(58deg) rotateZ(-34deg);animation:stackHover 8s ease-in-out infinite}@keyframes stackHover{50%{translate:0 -8px}}
.svc-core{position:absolute;left:50%;top:50%;width:180px;height:135px;transform:translate(-50%,-50%) translateZ(85px) rotateZ(34deg) rotateX(-58deg);display:grid;place-content:center;text-align:center;background:var(--ink);border:1px solid rgba(235,200,140,.35);box-shadow:0 20px 40px rgba(0,0,0,.25);z-index:7}.svc-core span{font:500 6px var(--mono);letter-spacing:.15em;color:var(--champagne)}.svc-core b{font:600 26px/.88 var(--display);letter-spacing:-.05em;margin:8px 0}.svc-core i{font:500 6px var(--mono);font-style:normal;letter-spacing:.13em;color:#79766f}
.svc-layer{position:absolute;left:50%;top:50%;width:390px;height:275px;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.2);box-shadow:0 25px 45px rgba(0,0,0,.22);transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .35s,opacity .35s,box-shadow .35s}.svc-layer img{width:100%;height:100%;object-fit:cover;filter:saturate(.55) contrast(1.08)}.svc-layer:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(16,18,16,.1),rgba(16,18,16,.56))}.svc-layer figcaption{position:absolute;z-index:2;left:14px;right:14px;bottom:12px;display:flex;justify-content:space-between;align-items:flex-end;color:white}.svc-layer figcaption span{font:500 7px var(--mono);color:var(--champagne)}.svc-layer figcaption b{font:600 15px/.9 var(--display);letter-spacing:-.03em;text-align:right}
.layer-general{transform:translate(-50%,-50%) translate3d(-54px,-82px,24px)}.layer-renovation{transform:translate(-50%,-50%) translate3d(40px,-24px,8px)}.layer-stone{transform:translate(-50%,-50%) translate3d(-15px,44px,-10px)}.layer-custom{transform:translate(-50%,-50%) translate3d(66px,102px,-28px)}
.svc-engine[data-active="general-contracting"] .layer-general,.svc-engine[data-active="renovation-building"] .layer-renovation,.svc-engine[data-active="stone-surface"] .layer-stone,.svc-engine[data-active="custom-fabrication"] .layer-custom{filter:brightness(1.15) saturate(1.1);box-shadow:0 42px 75px rgba(183,162,122,.12)}
.svc-engine[data-active="general-contracting"] .layer-general{transform:translate(-50%,-50%) translate3d(-76px,-105px,72px)}.svc-engine[data-active="renovation-building"] .layer-renovation{transform:translate(-50%,-50%) translate3d(62px,-38px,60px)}.svc-engine[data-active="stone-surface"] .layer-stone{transform:translate(-50%,-50%) translate3d(-33px,58px,45px)}.svc-engine[data-active="custom-fabrication"] .layer-custom{transform:translate(-50%,-50%) translate3d(84px,126px,32px)}
.svc-engine[data-active="general-contracting"] .svc-layer:not(.layer-general),.svc-engine[data-active="renovation-building"] .svc-layer:not(.layer-renovation),.svc-engine[data-active="stone-surface"] .svc-layer:not(.layer-stone),.svc-engine[data-active="custom-fabrication"] .svc-layer:not(.layer-custom){opacity:.28;filter:grayscale(.55) brightness(.7)}
.svc-scanline{position:absolute;left:10%;right:10%;height:60px;top:-80px;background:linear-gradient(180deg,transparent,rgba(235,200,140,.11),transparent);transform:skewY(-5deg);animation:scan 5.5s ease-in-out infinite}@keyframes scan{0%,15%{top:-80px}80%,100%{top:110%}}
.svc-info{position:absolute;right:28px;top:50%;transform:translateY(-50%);z-index:6;width:300px}.svc-info-number{font:500 7px var(--mono);letter-spacing:.15em;color:var(--champagne)}.svc-info h2{font-size:44px;line-height:.9;margin:15px 0}.svc-info p{color:#aca89f;font-size:12px;line-height:1.65}.svc-info .dc-button{margin-top:18px}
.svc-scope-list{border-top:1px solid var(--line)}.svc-scope-list button{width:100%;min-height:112px;padding:0;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:60px 1fr 1.1fr 30px;gap:22px;align-items:center;text-align:left;cursor:pointer;transition:padding .25s,background .25s,color .25s}.svc-scope-list>button>span{font:500 8px var(--mono);color:var(--orange-deep)}.svc-scope-list h3{font:600 31px var(--display);letter-spacing:-.04em;margin:0}.svc-scope-list p{font-size:11px;line-height:1.55;margin:0;color:var(--muted)}.svc-scope-list b{font-size:19px;font-weight:400}.svc-scope-list button:hover{padding:0 16px;background:var(--ink);color:white}.svc-scope-list button:hover p,.svc-scope-list button:hover>span{color:var(--champagne)}
/* modal */
.dc-modal[hidden]{display:none}.dc-modal{position:fixed;inset:0;z-index:9500;display:grid;grid-template-columns:1fr min(620px,90vw)}.dc-modal-backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(7px)}.dc-modal-panel{position:relative;background:var(--bone);padding:70px 55px;overflow:auto}.dc-modal-close{position:absolute;right:24px;top:20px;border:1px solid var(--line);background:none;width:42px;height:42px;font-size:25px;cursor:pointer}.dc-modal-meta{display:flex;align-items:center;gap:12px;font:500 8px var(--mono);letter-spacing:.14em;color:var(--orange-deep)}.dc-modal-panel h2{font-size:clamp(48px,5vw,72px);line-height:.9;margin:28px 0 20px}.dc-modal-lead{font-size:15px;line-height:1.75;color:var(--muted)}.dc-modal-scope{margin:38px 0;padding-top:24px;border-top:1px solid var(--line)}.dc-modal-scope>span{font:500 8px var(--mono);letter-spacing:.15em;color:var(--orange-deep)}.dc-modal-scope ul{padding:0;margin:22px 0 0;list-style:none}.dc-modal-scope li{padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}

/* projects page */
.project-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:42px}.project-toolbar>span{font:500 8px var(--mono);letter-spacing:.16em;color:var(--orange-deep)}.project-toolbar>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.filter{border:1px solid var(--line);background:transparent;padding:9px 12px;font-size:10px;cursor:pointer}.filter:hover,.filter.active{background:var(--ink);color:white;border-color:var(--ink)}
.dc-project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:46px 18px}.dc-project-card{position:relative}.dc-project-card:nth-child(4n+1){grid-column:span 1}.dc-project-card .project-media{height:460px;overflow:hidden;position:relative;background:#ccc;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px))}.dc-project-card:nth-child(3n+1) .project-media{height:590px}.dc-project-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.7);transition:transform .7s,filter .4s}.dc-project-card:hover img{transform:scale(1.05);filter:saturate(.95)}.dc-project-card .project-tag{position:absolute;left:14px;top:14px;background:var(--ink);color:white;padding:7px 8px;font:500 7px var(--mono);letter-spacing:.12em}.dc-project-card .project-ref{position:absolute;right:14px;top:14px;color:white;font:500 7px var(--mono);text-shadow:0 1px 7px #000}.dc-project-meta{display:grid;grid-template-columns:1fr auto;gap:20px;margin-top:15px}.dc-project-meta h3{font:600 27px var(--display);letter-spacing:-.04em;margin:0}.dc-project-meta p{margin:5px 0 0;font-size:10px;color:var(--muted)}.dc-project-location{font:500 7px var(--mono);letter-spacing:.08em;color:var(--orange-deep);padding-top:5px;text-align:right}

/* contact */
.dc-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.dc-contact-visual{height:620px;position:relative;overflow:hidden}.dc-contact-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.65)}.dc-contact-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.6))}.dc-contact-visual>div{position:absolute;z-index:2;left:20px;right:20px;bottom:18px;color:white}.dc-contact-visual span{font:500 7px var(--mono);color:var(--champagne);letter-spacing:.15em}.dc-contact-visual b{display:block;margin-top:8px;font-size:12px}
.dc-contact-links>span{font:500 8px var(--mono);letter-spacing:.16em;color:var(--orange-deep)}.dc-contact-links>a:not(.dc-button),.dc-contact-links>div{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:24px 0;border-bottom:1px solid var(--line)}.dc-contact-links small{font:500 7px var(--mono);letter-spacing:.14em;color:var(--muted)}.dc-contact-links strong{grid-column:1;font:600 clamp(28px,3.4vw,52px) var(--display);letter-spacing:-.05em}.dc-contact-links>a>b{grid-column:2;grid-row:1/3;align-self:center;font-size:20px;font-weight:400}.dc-contact-links .dc-button{margin-top:28px}

/* form */
.dc-quote-layout{display:grid;grid-template-columns:.58fr 1fr;gap:80px;align-items:start}.dc-quote-aside{position:sticky;top:125px}.dc-quote-aside>span{font:500 8px var(--mono);letter-spacing:.16em;color:var(--orange-deep)}.dc-quote-aside h2{font-size:clamp(36px,4vw,54px);line-height:.94;margin:20px 0}.dc-quote-aside p{font-size:12px;line-height:1.7}.quote-progress{margin-top:30px;height:3px;background:#d8d2c8;position:relative}.quote-progress i{display:block;width:0;height:100%;background:var(--orange);transition:width .3s}.quote-progress span{position:absolute;right:0;top:10px;font:500 7px var(--mono)}
.dc-form fieldset{border:0;border-top:1px solid var(--line);padding:26px 0 42px;margin:0}.dc-form legend{padding:0;display:flex;gap:16px;align-items:center;font:600 23px var(--display);letter-spacing:-.03em}.dc-form legend span{font:500 8px var(--mono);color:var(--orange-deep)}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:24px}.choice-grid input{position:absolute;opacity:0}.choice-grid label span{display:flex;align-items:center;min-height:56px;padding:0 14px;border:1px solid var(--line);font-size:11px;cursor:pointer;transition:.2s}.choice-grid input:checked+span{background:var(--ink);color:white;border-color:var(--ink);box-shadow:inset 3px 0 var(--orange)}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:24px}.field-grid label{display:grid;gap:8px}.field-grid label>span{font:500 8px var(--mono);letter-spacing:.1em;color:var(--muted)}.field-grid input,.field-grid select,.field-grid textarea{width:100%;border:1px solid var(--line);background:#faf7f0;padding:14px;color:var(--ink);outline:none}.field-grid textarea{resize:vertical}.field-grid input:focus,.field-grid select:focus,.field-grid textarea:focus{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange)}.span-2{grid-column:span 2}.form-actions{display:flex;align-items:center;gap:24px;padding-top:10px}

/* responsive */
@media(max-width:1120px){
  .dc-nav{gap:20px}.dc-header-inner{grid-template-columns:195px 1fr auto}.dc-logo{width:180px}
  .dc-hero-grid{grid-template-columns:1fr .88fr;gap:45px}.dc-hero-object{min-height:570px}
  .svc-tabs{width:270px}.svc-scene{left:295px;right:300px}.svc-info{width:255px}.svc-layer{width:340px;height:240px}.svc-stack{width:400px;height:320px}
}
@media(max-width:900px){
  .dc-shell{width:min(100% - 38px,1380px)}
  .dc-nav,.dc-header-cta{display:none}.dc-header-inner{grid-template-columns:1fr auto;height:76px}.dc-menu{display:block}.dc-logo{width:185px}
  .dc-mobile-nav{position:fixed;left:0;right:0;top:76px;bottom:0;background:var(--ink);padding:38px 20px;display:grid;align-content:start;gap:0;transform:translateY(-120%);opacity:0;pointer-events:none;transition:.4s;z-index:-1}.menu-open .dc-mobile-nav{transform:none;opacity:1;pointer-events:auto}.dc-mobile-nav a{padding:18px 0;border-bottom:1px solid rgba(255,255,255,.1);font:600 28px var(--display);color:white}.dc-mobile-nav .mobile-consult{margin-top:22px;padding:15px;background:var(--champagne);color:var(--ink);font-size:14px;border:0}
  .menu-open .dc-menu i:first-child{top:21px;transform:rotate(45deg)}.menu-open .dc-menu i:last-child{top:21px;transform:rotate(-45deg)}
  .dc-cursor{display:none}
  .dc-hero{padding-top:120px}.dc-hero-grid{grid-template-columns:1fr}.dc-hero-object{max-width:720px;width:100%;min-height:620px}
  .dc-intro-grid,.dc-split,.dc-about-story,.dc-contact-grid,.dc-quote-layout{grid-template-columns:1fr}.dc-split.reverse>div:first-child{order:initial}
  .dc-section-head{grid-template-columns:1fr;gap:18px}.dc-project-intro,.dc-process-lead{margin-left:0}
  .dc-service-list>a{grid-template-columns:48px 1fr 28px}.dc-service-list p{display:none}
  .dc-project-trio{grid-template-columns:1fr;grid-template-rows:500px 300px 300px}.dc-project-trio .large{grid-row:auto}
  .dc-process-grid{grid-template-columns:1fr 1fr}
  .dc-page-hero-grid,.svc-hero-grid{grid-template-columns:1fr}.dc-page-hero-grid{gap:28px}.svc-hero-grid{gap:28px}
  .svc-engine{min-height:auto;padding:18px;display:grid;grid-template-columns:1fr;gap:18px}.svc-grid,.svc-axis,.svc-scanline{display:none}.svc-tabs{position:relative;left:auto;top:auto;transform:none;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.svc-tabs button{border:1px solid rgba(255,255,255,.12)!important;padding:13px!important}.svc-scene{position:relative;left:auto;right:auto;top:auto;bottom:auto;height:560px}.svc-info{position:relative;right:auto;top:auto;transform:none;width:100%;padding:20px 4px}
  .dc-project-grid{grid-template-columns:1fr}.dc-project-card .project-media,.dc-project-card:nth-child(3n+1) .project-media{height:520px}
  .dc-quote-aside{position:relative;top:auto}
}
@media(max-width:620px){
  .dc-section{padding:78px 0}.dc-hero-title{font-size:clamp(58px,18vw,88px)}.dc-hero-object{min-height:480px}.dc-floating-plan{width:145px;height:195px}.plan-grid{height:90px}.dc-floating-sample{width:100px;height:130px}.dc-floating-sample i{width:38px;height:38px;margin:22px auto}
  .dc-actions,.form-actions{align-items:stretch;flex-direction:column}.dc-button{width:100%}
  .dc-stats{grid-template-columns:1fr}
  .dc-image-frame,.dc-image-frame.tall,.dc-contact-visual{height:430px}
  .dc-process-grid{grid-template-columns:1fr}.dc-process-grid article{border-right:0;border-bottom:1px solid var(--line);min-height:auto;padding:24px 0}.step-icon{margin-top:28px}
  .dc-page-hero{padding-top:130px;min-height:440px}.dc-page-hero h1{font-size:clamp(58px,17vw,86px)}
  .svc-hero{padding-top:130px}.svc-hero h1{font-size:clamp(70px,21vw,106px)}.svc-tabs{grid-template-columns:1fr}.svc-scene{height:455px}.svc-stack{transform:scale(.73) rotateX(58deg) rotateZ(-34deg)}
  .svc-scope-list button{grid-template-columns:38px 1fr 25px;padding:20px 0}.svc-scope-list button p{display:none}.svc-scope-list h3{font-size:24px}
  .dc-modal{grid-template-columns:1fr}.dc-modal-backdrop{display:none}.dc-modal-panel{padding:65px 25px}
  .project-toolbar{display:grid}.project-toolbar>div{justify-content:flex-start}.dc-project-card .project-media,.dc-project-card:nth-child(3n+1) .project-media{height:400px}
  .choice-grid,.field-grid{grid-template-columns:1fr}.span-2{grid-column:auto}
  .dc-footer-grid{grid-template-columns:1fr;gap:35px}.dc-footer-bottom{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1!important;transform:none!important;filter:none!important}
  .dc-loader{display:none}
}


/* ================================================================
   V17 REFINEMENT — LESS NOISE / MORE SPACE / CLEANER MOTION
   ================================================================ */

/* Header: more breathing room and a smaller mark */
.dc-header-inner{
  height:104px;
  grid-template-columns:190px minmax(0,1fr) 190px;
  gap:42px;
}
.dc-logo{width:174px}
.dc-nav{justify-self:end;gap:42px;margin-right:18px}
.dc-nav a{font-size:11px;letter-spacing:.015em;padding:10px 0}
.dc-header-cta{min-width:190px;min-height:48px;padding:0 17px;font-size:10px}
.dc-page-hero,.svc-hero{padding-top:178px}
.dc-hero{padding-top:155px}

/* Loader: assemble the actual brand mark, then wipe away */
.dc-loader{background:#0b0d0b;gap:0;transition:opacity .55s ease,visibility .55s ease}
.dc-loader-stage{position:relative;width:min(520px,72vw);height:210px;display:grid;place-items:center;overflow:hidden}
.dc-loader-logo-wrap{width:min(350px,62vw);overflow:hidden;clip-path:inset(0 50% 0 50%);animation:dcLogoReveal .95s cubic-bezier(.76,0,.24,1) .08s forwards}
.dc-loader-logo-wrap img{width:100%;height:auto;filter:invert(1) brightness(2);object-fit:contain}
.dc-loader-progress{position:absolute;left:14%;right:14%;bottom:31px;height:1px;background:rgba(255,255,255,.12);overflow:hidden}
.dc-loader-progress i{display:block;width:100%;height:100%;background:var(--orange);transform:translateX(-100%);animation:dcProgress 1.05s cubic-bezier(.76,0,.24,1) .12s forwards}
.loader-rule{position:absolute;height:1px;background:rgba(255,255,255,.22);width:0;animation:dcRule .8s ease .18s forwards}
.loader-rule.top{top:22px;left:0}.loader-rule.bottom{bottom:18px;right:0}
@keyframes dcLogoReveal{to{clip-path:inset(0 0 0 0)}}
@keyframes dcProgress{to{transform:translateX(0)}}
@keyframes dcRule{to{width:100%}}

/* Home hero: image only — no decorative cards or pseudo material samples */
.dc-hero-grid{grid-template-columns:1.02fr .98fr;gap:100px}
.dc-hero-object{min-height:640px}
.dc-hero-photo{inset:5% 3% 5% 3%;clip-path:polygon(0 0,91% 0,100% 9%,100% 100%,9% 100%,0 91%)}
.dc-hero-photo:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 0 18px rgba(17,19,16,.03);pointer-events:none}
.dc-object-outline{inset:1% 0 1% 0;border-color:rgba(235,200,140,.18);clip-path:polygon(0 0,91% 0,100% 9%,100% 100%,9% 100%,0 91%)}
.dc-hero-index{position:absolute;right:12px;bottom:2px;font:500 7px var(--mono);letter-spacing:.14em;color:#747168}
.dc-proof-line{display:flex;align-items:center;gap:13px;margin-top:42px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);width:max-content}
.dc-proof-line strong{font:600 30px/1 var(--display)}
.dc-proof-line span{font-size:11px;color:#8e8a82}
.dc-kicker{gap:0}.dc-kicker i{display:none}
.dc-image-tech.minimal{display:block;padding:13px 15px}.dc-image-tech.minimal b{font:600 8px var(--mono);letter-spacing:.14em;color:#fff}

/* Less visual/textual noise */
.dc-footer-bottom{justify-content:flex-start}
.svc-hero-grid>div:last-child h2,.svc-hero-grid>div:last-child small{display:none}
.svc-tabs button{min-height:76px}
.svc-tabs b{display:none}
.svc-core i{display:none}
.svc-core{height:122px}
.dc-service-list>a{min-height:105px}

/* standard pointer only */
a,button,label,.filter{cursor:pointer}

@media(max-width:1120px){
  .dc-header-inner{grid-template-columns:175px minmax(0,1fr) 175px;gap:25px}
  .dc-logo{width:160px}.dc-nav{gap:26px;margin-right:6px}.dc-header-cta{min-width:175px}
  .dc-hero-grid{gap:55px}
}
@media(max-width:900px){
  .dc-header-inner{height:82px;grid-template-columns:1fr auto}.dc-logo{width:168px}.dc-page-hero,.svc-hero{padding-top:142px}.dc-hero{padding-top:130px}
  .dc-hero-grid{grid-template-columns:1fr}.dc-hero-object{min-height:560px}
}
@media(max-width:620px){
  .dc-loader-stage{height:180px}.dc-hero-object{min-height:430px}.dc-proof-line{margin-top:30px}
}


/* The original .svc-core 3D transform is intentionally overridden. */
.svc-scene{
  overflow:visible;
}
.svc-camera{
  z-index:3;
}
.svc-scanline{
  z-index:4;
  pointer-events:none;
}
@media(max-width:900px){
  .svc-core-fixed{
    width:190px;
    height:142px!important;
  }
  .svc-core-fixed b{font-size:27px}
}
@media(max-width:620px){
  .svc-core-fixed{
    width:165px;
    height:126px!important;
  }
  .svc-core-fixed b{font-size:23px}
}
@media(prefers-reduced-motion:reduce){
  .svc-core-fixed{animation:none!important}
}


/* ================================================================
   V17.2 SERVICES REFINEMENT
   "WHAT WE OFFER" moved to the top so the exploded project system
   can remain visually open and unobstructed.
   ================================================================ */
.svc-engine{
  padding-top:118px;
}
.svc-engine-heading{
  position:absolute;
  top:30px;
  left:50%;
  z-index:18;
  transform:translateX(-50%);
  width:min(520px,52%);
  text-align:center;
  pointer-events:none;
}
.svc-engine-heading>span{
  display:block;
  margin-bottom:10px;
  font:500 7px var(--mono);
  letter-spacing:.18em;
  color:var(--champagne);
}
.svc-engine-heading>div{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:18px;
}
.svc-engine-heading b{
  font:600 clamp(28px,2.5vw,42px)/1 var(--display);
  letter-spacing:-.055em;
  color:#fff;
  white-space:nowrap;
}
.svc-engine-heading i{
  height:1px;
  background:linear-gradient(90deg,rgba(235,200,140,.55),rgba(235,200,140,0));
}

.svc-scene{
  top:118px;
  bottom:30px;
}
.svc-tabs{
  top:54%;
}
.svc-info{
  top:54%;
}
.svc-grid:after{
  top:56%;
  width:500px;
  height:500px;
}

/* Keep the exploded assembly cleaner without a central card. */
.svc-stack{
  scale:.94;
}
.svc-layer{
  border-color:rgba(255,255,255,.13);
}
.svc-engine[data-active="general-contracting"] .layer-general,
.svc-engine[data-active="renovation-building"] .layer-renovation,
.svc-engine[data-active="stone-surface"] .layer-stone,
.svc-engine[data-active="custom-fabrication"] .layer-custom{
  box-shadow:0 30px 58px rgba(183,162,122,.09);
}

@media(max-width:900px){
  .svc-engine{
    padding-top:20px;
  }
  .svc-engine-heading{
    position:relative;
    top:auto;
    left:auto;
    transform:none;
    width:100%;
    text-align:left;
    margin-bottom:6px;
  }
  .svc-engine-heading>div{
    grid-template-columns:auto 1fr;
  }
  .svc-engine-heading b{
    font-size:28px;
  }
  .svc-scene{
    top:auto;
    bottom:auto;
  }
  .svc-tabs,
  .svc-info{
    top:auto;
  }
}

@media(max-width:620px){
  .svc-engine-heading b{
    font-size:24px;
  }
}


/* ==========================================================
   V18 — restrained palette + cleaner scale
   ========================================================== */
:root{
}
.dc-dark em,
.dc-page-hero em,
.svc-hero em,
.dc-cta em{color:var(--champagne)}

.dc-service-intro{
  max-width:640px;
  margin:-14px 0 34px 190px;
  color:#60635f;
  font-size:13px;
  line-height:1.72;
}

.dc-hero-title{max-width:760px}
.dc-page-hero-grid{margin-top:42px}
.dc-page-hero p{max-width:500px}
.svc-hero{padding-top:145px;padding-bottom:50px}
.svc-hero-grid{margin-top:38px}
.svc-hero-grid p{max-width:560px}

.svc-engine-heading{
  top:26px;
  width:min(450px,48%);
}
.svc-engine-heading b{
  font-size:clamp(24px,2vw,34px);
  letter-spacing:-.04em;
}

/* Less decorative noise in the service visual. */
.svc-scanline{
  opacity:.38;
}
.svc-grid{
  opacity:.72;
}
.svc-grid:after{
  box-shadow:none;
  border-color:rgba(216,199,167,.09);
}

/* Stronger, cleaner hover states without loud colour fills. */
.dc-service-list>a:hover,
.svc-scope-list button:hover{
  background:#171a16;
}
.dc-service-list>a:hover>span,
.dc-service-list>a:hover p,
.svc-scope-list button:hover>span,
.svc-scope-list button:hover p{
  color:var(--champagne);
}

.dc-button.champagne{
  background:var(--champagne);
}
.dc-button.champagne:hover{
  background:#e4d6bc;
}
.dc-header-cta{
  background:var(--champagne);
}
.dc-header:before{
  background:linear-gradient(90deg,var(--champagne) 0 32%,rgba(255,255,255,.14) 32% 100%);
}

/* A subtle architectural edge detail used consistently on visual panels. */
.dc-image-frame,
.dc-contact-visual,
.dc-project-trio>a,
.dc-project-card .project-media{
  position:relative;
}
.dc-image-frame:before,
.dc-contact-visual:before,
.dc-project-trio>a:before,
.dc-project-card .project-media:before{
  content:"";
  position:absolute;
  z-index:4;
  width:18px;
  height:18px;
  top:12px;
  right:12px;
  border-top:1px solid rgba(216,199,167,.8);
  border-right:1px solid rgba(216,199,167,.8);
  pointer-events:none;
}

/* Section navigator — functional, not decorative. */
.dc-section-rail{
  position:fixed;
  right:17px;
  top:50%;
  transform:translateY(-50%);
  z-index:700;
  display:grid;
  gap:9px;
}
.dc-section-rail button{
  position:relative;
  width:8px;
  height:8px;
  padding:0;
  border:1px solid rgba(216,199,167,.5);
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  transition:transform .2s,background .2s,border-color .2s;
}
.dc-section-rail button:after{
  content:attr(data-index);
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  opacity:0;
  color:#8c887f;
  font:500 7px var(--mono);
  letter-spacing:.12em;
  transition:opacity .2s;
}
.dc-section-rail button:hover:after{opacity:1}
.dc-section-rail button.active{
  background:var(--champagne);
  border-color:var(--champagne);
  transform:scale(1.25);
}

/* Slightly more interactive process tiles. */
.dc-process-grid article{
  transition:background .25s,transform .25s;
}
.dc-process-grid article:hover{
  background:rgba(102,112,108,.06);
  transform:translateY(-5px);
}
.dc-process-grid article:hover .step-icon{
  border-color:var(--ink);
  color:var(--ink);
  transform:rotate(7deg);
}
.step-icon{transition:transform .25s,border-color .25s,color .25s}

/* Interactive image planes: subtle only. */
.dc-tilt-soft{
  transform-style:preserve-3d;
  transition:transform .18s ease-out;
  will-change:transform;
}

@media(max-width:900px){
  .dc-section-rail{display:none}
  .dc-service-intro{margin-left:0}
}
@media(max-width:620px){
  .dc-hero-title{font-size:clamp(50px,14vw,72px)}
  .dc-page-hero h1{font-size:clamp(48px,13vw,70px)}
  .svc-hero h1{font-size:clamp(52px,15vw,76px)}
}


/* ================================================================
   V19 — CLEANUP & CONSISTENCY PASS
   ================================================================ */

/* One accent system: no olive/slate headline colour. */
:root{
  --accent:#b7a27a;
  --accent-dark:#685c47;
}
em,
.dc-dark em,
.dc-page-hero em,
.svc-hero em,
.dc-cta em{
  color:inherit !important;
}

/* Loader — logo only. */
.dc-loader{
  background:#0c0e0c;
  display:grid;
  place-items:center;
  gap:0;
}
.dc-loader-logo-wrap{
  position:relative;
  width:clamp(210px,24vw,340px);
  overflow:hidden;
  padding:12px;
  animation:loaderFloat 1.25s cubic-bezier(.2,.8,.2,1) both;
}
.dc-loader-logo-wrap:before{
  content:"";
  position:absolute;
  inset:0;
  background:#0c0e0c;
  transform:translateX(0);
  animation:loaderReveal 1.05s cubic-bezier(.76,0,.24,1) .12s forwards;
  z-index:2;
}
.dc-loader-logo-wrap:after{
  content:"";
  position:absolute;
  left:12px;right:12px;bottom:5px;height:1px;
  background:var(--accent);
  transform:scaleX(0);transform-origin:left;
  animation:loaderLine 1.1s cubic-bezier(.2,.8,.2,1) .18s forwards;
}
.dc-loader-logo-wrap img{
  width:100%;height:auto;filter:invert(1) brightness(2);
  transform:scale(.96);opacity:.8;
  animation:loaderLogo 1.1s ease .08s forwards;
}
@keyframes loaderReveal{to{transform:translateX(105%)}}
@keyframes loaderLine{50%{transform:scaleX(1);transform-origin:left}100%{transform:scaleX(0);transform-origin:right}}
@keyframes loaderLogo{to{transform:scale(1);opacity:1}}
@keyframes loaderFloat{0%{transform:translateY(8px)}100%{transform:translateY(0)}}

/* Keep accent in controls/labels only, not large text. */
.dc-side-label,.dc-section-head>div,.dc-eyebrow.dark,.dc-modal-meta,.dc-contact-panel-head>span,
.project-toolbar>span,.dc-service-list>a>span,.svc-scope-list>button>span,
.dc-process-grid article>span,.dc-kicker,.dc-footer-contact a:hover{
  color:var(--accent-dark);
}
.dc-dark .dc-kicker,.svc-hero .dc-kicker,.dc-page-hero .dc-kicker,.dc-cta>div>span{
  color:#aaa69e;
}

/* Process icons — proper line icons. */
.step-icon{
  color:var(--accent-dark);
  border-color:rgba(104,92,71,.28);
}
.step-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.dc-process-grid article:hover .step-icon{color:var(--ink);border-color:var(--ink);transform:translateY(-2px)}

/* Footer — compact, balanced, logo kept in proportion. */
.dc-footer{padding:50px 0 20px;background:#0b0d0b}
.dc-footer-main{display:grid;grid-template-columns:minmax(230px,1.25fr) .65fr 1fr;gap:70px;align-items:start}
.dc-footer-brand img{width:180px;height:auto!important;object-fit:contain!important;filter:invert(1) brightness(2)}
.dc-footer-brand p{margin:17px 0 0;color:#85827b;font-size:11px}
.dc-footer-nav{display:grid;gap:9px}.dc-footer-nav a,.dc-footer-contact a{font-size:11px;color:#aaa69e;transition:color .2s}.dc-footer-nav a:hover,.dc-footer-contact a:hover{color:#fff}
.dc-footer-contact{display:grid;justify-items:end;gap:10px;text-align:right}
.dc-footer-bottom{margin-top:34px;padding-top:16px;font-size:7px}

/* Contact — more editorial and less like a giant form directory. */
.dc-contact-section{padding-top:88px;padding-bottom:100px}
.dc-contact-board{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(520px,1.2fr);min-height:620px;border:1px solid var(--line);background:#ece7de}
.dc-contact-photo{position:relative;overflow:hidden;min-height:620px}
.dc-contact-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.48) contrast(1.03)}
.dc-contact-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(10,12,10,.55))}
.dc-contact-photo>span{position:absolute;z-index:2;left:20px;bottom:18px;color:white;font:500 7px var(--mono);letter-spacing:.15em}
.dc-contact-panel{padding:58px 58px 48px;background:var(--bone);display:flex;flex-direction:column}
.dc-contact-panel-head{margin-bottom:26px}.dc-contact-panel-head>span{font:600 8px var(--mono);letter-spacing:.16em}.dc-contact-panel-head h2{font-size:clamp(38px,4.2vw,58px);line-height:.95;margin:15px 0 0}
.dc-contact-item{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:22px 0;border-top:1px solid var(--line);transition:padding .25s,background .25s}
.dc-contact-item:last-of-type{border-bottom:1px solid var(--line)}
.dc-contact-item small{font:500 7px var(--mono);letter-spacing:.14em;color:#77736c}
.dc-contact-item strong{grid-column:1;font:600 clamp(24px,3.1vw,43px)/1 var(--display);letter-spacing:-.045em}
.dc-contact-item>b{grid-column:2;grid-row:1/3;align-self:center;font-size:18px;font-weight:400}
.dc-contact-item:not(.static):hover{padding-left:10px;padding-right:10px;background:#ebe5db}
.dc-contact-consult{margin-top:auto;align-self:flex-start}

/* Section dots quieter. */
.dc-section-rail{right:20px}.dc-section-rail button{border-color:rgba(183,162,122,.35)}.dc-section-rail button.active{background:var(--accent);border-color:var(--accent)}

/* Reduce over-large display text a little further. */
.dc-section-head h2{font-size:clamp(34px,3.8vw,54px)}
.dc-copy-block h2{font-size:clamp(36px,3.9vw,55px)}
.dc-page-hero h1{font-size:clamp(48px,5.5vw,76px)}
.svc-hero h1{font-size:clamp(50px,6vw,82px)}
.dc-cta h2{font-size:clamp(43px,5vw,70px)}

@media(max-width:900px){
  .dc-footer-main{grid-template-columns:1fr 1fr;gap:32px}.dc-footer-brand{grid-column:1/-1}.dc-footer-contact{justify-items:start;text-align:left}
  .dc-contact-board{grid-template-columns:1fr}.dc-contact-photo{min-height:430px}.dc-contact-panel{padding:38px 30px}
}
@media(max-width:620px){
  .dc-footer-main{grid-template-columns:1fr}.dc-footer-brand{grid-column:auto}.dc-footer-contact{justify-items:start}
  .dc-contact-photo{min-height:330px}.dc-contact-board{min-height:auto}.dc-contact-panel{padding:30px 20px}
}


/* ================================================================
   V20 — Loader + Footer Character Pass
   ================================================================ */

/* ------------------------------------------------
   LOGO-ONLY LOADER
   ------------------------------------------------ */
.dc-loader{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  background:#0b0d0b;
  overflow:hidden;
  transition:
    opacity .58s cubic-bezier(.2,.8,.2,1),
    visibility .58s cubic-bezier(.2,.8,.2,1);
}
.site-ready .dc-loader{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.dc-loader-mark{
  position:relative;
  width:min(430px,72vw);
  aspect-ratio:350 / 126;
  display:grid;
  place-items:center;
}
.dc-loader-logo-wrap{
  position:relative;
  z-index:3;
  width:86%;
  opacity:0;
  transform:scale(.965);
  clip-path:inset(0 50% 0 50%);
  animation:
    dcV20LogoReveal .72s cubic-bezier(.76,0,.24,1) .08s forwards,
    dcV20LogoSettle .35s ease .73s forwards;
}
.dc-loader-logo-wrap img{
  display:block;
  width:100%;
  height:auto!important;
  object-fit:contain!important;
  filter:invert(1) brightness(2);
}
.dc-loader-frame{
  position:absolute;
  z-index:1;
  inset:2% 1%;
  pointer-events:none;
}
.dc-loader-frame:before,
.dc-loader-frame:after{
  content:"";
  position:absolute;
  background:rgba(255,255,255,.42);
}
.dc-loader-frame:before{
  left:0;
  top:0;
  width:0;
  height:1px;
  animation:dcV20FrameH .6s cubic-bezier(.76,0,.24,1) .12s forwards;
}
.dc-loader-frame:after{
  right:0;
  bottom:0;
  width:0;
  height:1px;
  animation:dcV20FrameH .6s cubic-bezier(.76,0,.24,1) .24s forwards;
}
.dc-loader-mark:before,
.dc-loader-mark:after{
  content:"";
  position:absolute;
  z-index:1;
  width:1px;
  height:0;
  background:rgba(255,255,255,.24);
}
.dc-loader-mark:before{
  left:1%;
  top:2%;
  animation:dcV20FrameV .42s cubic-bezier(.76,0,.24,1) .55s forwards;
}
.dc-loader-mark:after{
  right:1%;
  bottom:2%;
  animation:dcV20FrameV .42s cubic-bezier(.76,0,.24,1) .55s forwards;
}
.dc-loader-sweep{
  position:absolute;
  z-index:4;
  top:0;
  bottom:0;
  width:68px;
  left:-90px;
  opacity:.42;
  transform:skewX(-12deg);
  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.20),
    transparent
  );
  animation:dcV20Sweep .68s cubic-bezier(.4,0,.2,1) .48s forwards;
  pointer-events:none;
}
@keyframes dcV20LogoReveal{
  to{opacity:1;clip-path:inset(0 0 0 0)}
}
@keyframes dcV20LogoSettle{
  to{transform:scale(1)}
}
@keyframes dcV20FrameH{
  to{width:100%}
}
@keyframes dcV20FrameV{
  to{height:96%}
}
@keyframes dcV20Sweep{
  to{left:calc(100% + 30px)}
}

/* ------------------------------------------------
   FOOTER — LARGE, STRUCTURED, BRANDED
   ------------------------------------------------ */
.dc-footer-v20{
  position:relative;
  overflow:hidden;
  padding:0 0 22px;
  background:#0a0c0a;
  color:#f5f1ea;
  border-top:1px solid rgba(255,255,255,.10);
}
.dc-footer-grid-bg{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.34;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:76px 76px;
  mask-image:linear-gradient(180deg,#000 0%,transparent 82%);
}
.dc-footer-v20:after{
  content:"";
  position:absolute;
  right:-90px;
  top:80px;
  width:330px;
  height:330px;
  border:1px solid rgba(216,199,167,.13);
  border-radius:50%;
  pointer-events:none;
}
.dc-footer-callout{
  position:relative;
  z-index:2;
  min-height:330px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  align-items:center;
  gap:70px;
  padding-top:54px;
  padding-bottom:54px;
}
.dc-footer-callout-copy>span{
  font:500 7px var(--mono);
  letter-spacing:.18em;
  color:var(--champagne);
}
.dc-footer-callout h2{
  max-width:900px;
  margin:18px 0 0;
  font:600 clamp(44px,5.7vw,82px)/.89 var(--display);
  letter-spacing:-.068em;
}
.dc-footer-callout h2 em{
  color:#b9b5ac;
}
.dc-footer-quote{
  position:relative;
  min-height:184px;
  padding:24px;
  display:grid;
  align-content:space-between;
  background:var(--champagne);
  color:var(--ink);
  border:1px solid rgba(255,255,255,.14);
  clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%);
  transition:
    transform .3s cubic-bezier(.2,.8,.2,1),
    background .25s ease;
}
.dc-footer-quote:before{
  content:"";
  position:absolute;
  right:0;
  top:0;
  width:24px;
  height:24px;
  border-left:1px solid rgba(10,12,10,.28);
  border-bottom:1px solid rgba(10,12,10,.28);
}
.dc-footer-quote small{
  font:600 7px var(--mono);
  letter-spacing:.15em;
}
.dc-footer-quote strong{
  max-width:210px;
  font:600 28px/.95 var(--display);
  letter-spacing:-.045em;
}
.dc-footer-quote b{
  position:absolute;
  right:23px;
  bottom:20px;
  font-size:27px;
  font-weight:400;
  transition:transform .25s ease;
}
.dc-footer-quote:hover{
  transform:translateY(-8px);
  background:#e7d7ba;
}
.dc-footer-quote:hover b{
  transform:translate(5px,-5px);
}
.dc-footer-rule{
  position:relative;
  z-index:2;
}
.dc-footer-rule i{
  display:block;
  width:100%;
  height:1px;
  background:rgba(255,255,255,.14);
}
.dc-footer-rule i:after{
  content:"";
  display:block;
  width:92px;
  height:1px;
  background:var(--champagne);
}
.dc-footer-body{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(320px,1.45fr) .65fr 1fr;
  gap:72px;
  padding-top:46px;
  padding-bottom:42px;
}
.dc-footer-signature{
  align-self:start;
}
.dc-footer-signature a{
  display:block;
  width:min(350px,100%);
}
.dc-footer-signature img{
  display:block;
  width:100%;
  height:auto!important;
  object-fit:contain!important;
  aspect-ratio:auto!important;
  filter:invert(1) brightness(2);
  opacity:.96;
}
.dc-footer-nav-v20,
.dc-footer-contact-v20{
  display:grid;
  align-content:start;
}
.dc-footer-nav-v20>span,
.dc-footer-contact-v20>span{
  margin-bottom:19px;
  font:500 7px var(--mono);
  letter-spacing:.17em;
  color:#77746e;
}
.dc-footer-nav-v20>a{
  position:relative;
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:38px;
  border-bottom:1px solid rgba(255,255,255,.09);
  color:#c5c1ba;
  font-size:11px;
  transition:color .2s,padding .2s;
}
.dc-footer-nav-v20>a:first-of-type{
  border-top:1px solid rgba(255,255,255,.09);
}
.dc-footer-nav-v20>a b{
  font-size:13px;
  font-weight:400;
  opacity:.45;
  transition:transform .2s,opacity .2s;
}
.dc-footer-nav-v20>a:hover{
  color:#fff;
  padding-left:7px;
}
.dc-footer-nav-v20>a:hover b{
  opacity:1;
  transform:translate(3px,-3px);
}
.dc-footer-contact-v20>a{
  display:grid;
  gap:7px;
  padding:15px 0;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.dc-footer-contact-v20>a:first-of-type{
  border-top:1px solid rgba(255,255,255,.09);
}
.dc-footer-contact-v20 small{
  font:500 7px var(--mono);
  letter-spacing:.14em;
  color:#77746e;
}
.dc-footer-contact-v20 strong{
  font:500 clamp(17px,1.65vw,24px) var(--display);
  letter-spacing:-.035em;
  color:#f2eee7;
  transition:color .2s;
}
.dc-footer-contact-v20 a:hover strong{
  color:var(--champagne);
}
.dc-footer-bottom-v20{
  position:relative;
  z-index:2;
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding-top:17px;
  border-top:1px solid rgba(255,255,255,.09);
  color:#66635e;
  font:500 7px var(--mono);
  letter-spacing:.1em;
}

@media(max-width:900px){
  .dc-footer-callout{
    grid-template-columns:1fr;
    gap:28px;
  }
  .dc-footer-quote{
    min-height:130px;
  }
  .dc-footer-body{
    grid-template-columns:1fr 1fr;
    gap:42px;
  }
  .dc-footer-signature{
    grid-column:1/-1;
  }
  .dc-footer-signature a{
    width:290px;
  }
}
@media(max-width:620px){
  .dc-loader-mark{
    width:min(330px,82vw);
  }
  .dc-footer-callout{
    min-height:auto;
    padding-top:58px;
    padding-bottom:42px;
  }
  .dc-footer-callout h2{
    font-size:clamp(40px,12vw,58px);
  }
  .dc-footer-body{
    grid-template-columns:1fr;
    gap:34px;
  }
  .dc-footer-signature{
    grid-column:auto;
  }
  .dc-footer-bottom-v20{
    flex-direction:column;
    gap:7px;
  }
}
@media(prefers-reduced-motion:reduce){
  .dc-loader-logo-wrap{
    opacity:1!important;
    transform:none!important;
    clip-path:none!important;
    animation:none!important;
  }
  .dc-loader-frame,
  .dc-loader-sweep{
    display:none!important;
  }
}


/* ================================================================
   V21 — remove CTA repetition + engineering easter eggs
   ================================================================ */
.dc-easter{
  position:absolute;z-index:5;pointer-events:none;user-select:none;
  font:500 6px var(--mono);letter-spacing:.12em;color:rgba(102,89,68,.48)
}
.dc-datum{display:flex;align-items:center;gap:7px}
.dc-datum i{width:18px;height:18px;border:1px solid currentColor;border-radius:50%;position:relative}
.dc-datum i:before,.dc-datum i:after{content:"";position:absolute;background:currentColor}
.dc-datum i:before{width:22px;height:1px;left:-3px;top:8px}
.dc-datum i:after{height:22px;width:1px;top:-3px;left:8px}
.dc-datum-home{right:3.2%;top:20%;color:rgba(216,199,167,.42)}
.dc-scale-home{right:3.3%;bottom:14%;color:rgba(216,199,167,.34)}
.dc-regmark{right:24px;top:26px;width:22px;height:22px}
.dc-regmark i,.dc-regmark b{position:absolute;display:block;background:rgba(102,89,68,.36)}
.dc-regmark i{left:10px;top:0;width:1px;height:22px}.dc-regmark b{left:0;top:10px;width:22px;height:1px}
.dc-regmark:after{content:"";position:absolute;inset:6px;border:1px solid rgba(102,89,68,.35);border-radius:50%}
.dc-dimension{display:flex;align-items:center;gap:8px;transform:rotate(90deg)}
.dc-dimension-about{right:-10px;top:44%}
.dc-dimension i{display:block;width:58px;height:1px;background:currentColor;position:relative}
.dc-dimension i:before,.dc-dimension i:after{content:"";position:absolute;top:-3px;width:1px;height:7px;background:currentColor}
.dc-dimension i:before{left:0}.dc-dimension i:after{right:0}
.svc-techmarks{inset:0;z-index:7}
.svc-techmarks .techmark{position:absolute;color:rgba(216,199,167,.35)}
.tm-a{left:37%;top:12%}.tm-b{right:29%;top:17%}.tm-c{left:43%;bottom:12%}.tm-d{right:25%;bottom:14%}
.svc-techmarks .techmark:after{content:"";display:inline-block;width:18px;height:1px;margin-left:7px;vertical-align:middle;background:currentColor}
.dc-coordinates-projects{right:28px;top:28px}
.dc-asbuilt-contact{right:28px;top:28px;padding:6px 8px;border:1px solid rgba(102,89,68,.22);transform:rotate(2deg)}
.dc-tolerance-quote{right:28px;top:28px}
.dc-footer-stamp{position:absolute;z-index:2;right:24px;bottom:58px;transform:rotate(-90deg);transform-origin:right bottom;color:#4e4c47;font:500 6px var(--mono);letter-spacing:.16em;pointer-events:none}
.dc-footer-quote:after{content:"";position:absolute;left:24px;bottom:18px;width:0;height:1px;background:rgba(10,12,10,.42);transition:width .35s cubic-bezier(.2,.8,.2,1)}
.dc-footer-quote:hover:after{width:58px}
main > section:last-child{border-bottom:1px solid rgba(16,18,16,.10)}
main > .dc-dark:last-child{border-bottom-color:rgba(255,255,255,.10)}
@media(max-width:900px){.dc-easter,.dc-footer-stamp{display:none}}


/* V21.1 QUOTE FOOTER
   The consultation page already contains the conversion form, so the
   site-wide quotation callout is intentionally hidden there. */
body[data-current="quote"] .dc-footer-v20{
  padding-top:42px;
}
body[data-current="quote"] .dc-footer-rule{
  margin-top:0;
}
