/* The original palette, typefaces and components, with a cinematic motion layer. */
.trowel-cursor{position:fixed;top:0;left:0;width:52px;height:52px;z-index:10000;pointer-events:none;visibility:hidden;will-change:transform}
.trowel-cursor img{display:block;width:52px;height:52px;transform-origin:3.3px 50.4px;filter:drop-shadow(1px 2px 2px #0008);transition:transform .16s ease}
@media(hover:hover) and (pointer:fine){body.trowel-cursor-active,body.trowel-cursor-active *{cursor:none!important}.trowel-cursor-active .trowel-cursor{visibility:visible}.trowel-cursor.is-interactive img{transform:rotate(-9deg) scale(1.1)}.trowel-cursor.is-pressed img{transform:rotate(8deg) scale(.9)}}
@media(prefers-reduced-motion:reduce){.trowel-cursor img{transition:none}.trowel-cursor.is-interactive img,.trowel-cursor.is-pressed img{transform:none}}
.reading-progress{position:fixed;inset:0 auto auto 0;width:100%;height:2px;background:var(--gold);transform:scaleX(var(--page-progress,0));transform-origin:left;z-index:60;pointer-events:none}
.hero-journey{position:relative;background:var(--navy)}
.experience-ready .hero-journey{height:210svh}
.experience-ready .hero{position:sticky;top:0;height:100svh;min-height:740px;max-height:none}
.hero{isolation:isolate;grid-template-columns:43% 57%;padding-top:62px;background-size:32px 32px}
.hero:after{z-index:-1;background:radial-gradient(ellipse at 72% 39%,#45698538,transparent 55%)}
.hero-atmosphere{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 77% 20%,#d4b8790d,transparent 43%),radial-gradient(ellipse at 52% 85%,#385f7a20,transparent 50%)}
.hero-atmosphere:after{content:'';position:absolute;width:800px;height:800px;border-radius:50%;background:radial-gradient(circle,#7b8e9830,transparent 65%);right:-180px;top:-120px;transform:translate3d(calc(var(--pointer-x,0)*-20px),calc(var(--pointer-y,0)*-20px),0)}
.hero-watermark{position:absolute;bottom:80px;left:3.5%;font-family:var(--heading);font-weight:700;font-size:17vw;line-height:1;letter-spacing:-.075em;color:transparent;-webkit-text-stroke:1px #d4b87916;white-space:nowrap;pointer-events:none;z-index:-1;transform:translateX(calc(var(--journey-progress,0)*-70px))}
.hero-content{z-index:4;padding-bottom:12px;transform:translate3d(0,calc(var(--journey-progress,0)*-20px),0)}
.hero h1{font-size:clamp(70px,7.1vw,116px);line-height:1.025;letter-spacing:-.068em;margin-bottom:27px}
.title-line{display:block;overflow:hidden;padding-bottom:.10em;margin-bottom:-.10em;white-space:nowrap}
.title-line>span{display:inline-block;transform-origin:0 100%}
.hero .eyebrow{font-size:11px;letter-spacing:.15em}
.experience-ready .title-line>span{animation:title-arrive 1.15s cubic-bezier(.16,1,.3,1) both}
.experience-ready .title-line:nth-child(2)>span{animation-delay:.12s}
.experience-ready .title-line:nth-child(3)>span{animation-delay:.24s}
.experience-ready .hero-content>.eyebrow,.experience-ready .hero-description,.experience-ready .hero-content>.button,.experience-ready .hero-secondary{animation:soft-arrive 1.1s .35s both}
.hero-description{max-width:370px}
.button{overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),background .25s;will-change:transform}
.button:after{content:'';position:absolute;inset:-80% -30%;background:linear-gradient(105deg,transparent 35%,#ffffff50 50%,transparent 65%);transform:translateX(-110%);transition:transform .7s;pointer-events:none}
.button:hover:after{transform:translateX(110%)}
.button>span{transition:transform .25s}.button:hover>span{transform:translate(3px,-3px)}
.blueprint{opacity:.13;right:-55px;top:-75px;width:1150px;transform:rotate(calc(-14deg + var(--journey-progress,0)*12deg)) scale(calc(1 + var(--journey-progress,0)*.12));transform-origin:60% 50%;z-index:-1}
.blueprint svg{stroke-dasharray:1600;stroke-dashoffset:calc((1 - var(--journey-progress,0))*450)}
.drawing-code{font-size:10px;opacity:.65}
.model-area{margin:-5px -55px 0 -25px;perspective:1000px;z-index:2}
.house-scene{inset:-62px -62px 30px -60px;z-index:2}
.house-scene canvas{transition:opacity 1.5s}
.model-topline{left:65px;top:10px;right:70px;z-index:3;font-size:10px}
.model-state{font-size:9px}
.model-annotation{z-index:4;font-size:10px;color:var(--gold-light)}
.annotation-roof{left:3%;top:27%;transform:translateY(calc(var(--journey-progress,0)*-25px))}
.annotation-base{right:6%;bottom:29%}
.model-annotation i{position:relative;width:60px}.model-annotation i:after{content:'';position:absolute;right:0;top:-2px;width:4px;height:4px;border-radius:50%;background:var(--gold)}
.model-orbit{position:absolute;pointer-events:none;border:1px solid #c1ad7224;border-radius:50%;width:83%;height:68%;left:9%;top:16%;transform:rotate(-27deg);z-index:0}
.orbit-inner{inset:21% auto auto 4%;width:92%;height:58%;border-style:dashed;border-color:#a7bac21a;transform:rotate(27deg)}
.orbit-outer:before,.orbit-outer:after{content:'';position:absolute;width:5px;height:5px;border:1px solid var(--gold);background:var(--navy);top:19%;left:11%}.orbit-outer:after{left:auto;top:auto;right:11%;bottom:19%}
.scene-crosshair{position:absolute;top:21%;left:13%;font:32px monospace;font-weight:200;color:#d4b87950;z-index:0}
.floating-tool{position:absolute;width:clamp(150px,17vw,280px);height:auto;right:-35px;top:-50px;pointer-events:none;z-index:5;transform:translate3d(calc(var(--pointer-x,0)*20px),calc(var(--pointer-y,0)*15px + var(--journey-progress,0)*-65px),0) rotate(-13deg)}
.floating-tool img{width:100%;height:auto;filter:drop-shadow(12px 24px 20px #00000040);animation:tool-float 7s ease-in-out infinite}
.tool-note{position:absolute;left:1%;bottom:-2px;font-family:Georgia,serif;font-style:italic;line-height:1.2;font-size:18px;color:var(--gold);transform:rotate(5deg);max-width:160px}
.model-bottomline{z-index:6;margin:0 65px 18px 55px;gap:14px}
.model-controls{z-index:6;background:#0b172be0;border-radius:50px;padding:5px;border-color:#b5a47f60;box-shadow:0 16px 35px #00000026;backdrop-filter:blur(20px);margin-bottom:4px}
.view-button{border-radius:30px;padding:13px 20px;font-size:12px}
.rotate-button{margin-right:5px;width:42px;height:35px}
.hero-foot{height:75px;z-index:8;gap:18px;left:4.8%;right:4.8%;font-size:10px;background:linear-gradient(transparent,#101c3070)}
.hero-foot>a{max-width:270px;line-height:1.5;letter-spacing:.10em}
.scene-chapters{display:flex;align-items:center;gap:22px}
.chapter{position:relative;color:#687a92;font-size:11px;letter-spacing:0;transition:color .4s;padding:12px 0}
.chapter b{font:10px monospace;margin-right:8px;color:#56677e}.chapter.active,.chapter.active b{color:var(--gold-light)}
.chapter:after{content:'';position:absolute;bottom:5px;height:1px;background:var(--gold);left:0;width:100%;transform:scaleX(0);transform-origin:left;transition:transform .5s}.chapter.active:after{transform:scaleX(1)}
.motion-toggle{display:flex;align-items:center;gap:8px;background:none;font-size:11px;color:#a1acbc;padding:10px 0}.motion-toggle:hover{color:var(--gold)}.motion-symbol{font-size:17px;color:var(--gold)}
.service-ribbon{position:relative;z-index:3;gap:0;padding:0;min-height:77px;overflow:hidden}
.ribbon-track{display:flex;width:max-content;animation:ribbon-travel 34s linear infinite}.ribbon-group{display:flex;align-items:center;gap:35px;padding:24px 18px;font-size:16px;flex-shrink:0}.ribbon-group i{margin:0 10px}.service-ribbon:hover .ribbon-track{animation-play-state:paused}
.about{position:relative;overflow:hidden;border-radius:0 0 32px 32px;z-index:2}.about:after{content:'+';position:absolute;right:3%;top:90px;color:#a58a5425;font:80px monospace;line-height:1;pointer-events:none}.about h2{font-size:clamp(43px,4.5vw,72px)}
.services{position:relative;overflow:hidden;padding-top:110px}.services-heading{position:relative;z-index:2}.services>.services-heading{padding-right:23%;min-height:175px;align-items:flex-start;flex-direction:column;gap:22px;margin-bottom:38px}
.construction-still{position:absolute;right:4%;top:106px;width:clamp(240px,29vw,460px);z-index:1;pointer-events:none;transform:translate3d(0,calc(var(--section-shift,0)*25px),0) rotate(-8deg)}
.construction-still img{display:block;width:100%;height:auto;filter:drop-shadow(18px 30px 25px #00000040)}
.service-list{position:relative;z-index:2}.service-item summary{transition:padding .4s,background .4s}.service-item summary:hover{padding-left:16px;background:#d4b87906}.service-item .item-number{color:var(--gold);transition:transform .4s}.service-item h3{font-size:clamp(24px,2.8vw,44px);line-height:1.2;transition:color .25s,transform .4s}.service-plus{transition:background .4s,color .4s,transform .4s}.service-item[open] .service-plus{background:var(--gold);color:var(--navy);border-color:var(--gold)}.service-detail{animation:detail-reveal .5s ease-out}
.materials{position:relative;display:block;min-height:780px;height:95svh;max-height:1000px;overflow:hidden;background:var(--deep);color:var(--white)}
.material-image{position:absolute;inset:0;min-height:0;overflow:hidden}.material-image img{height:116%;top:-8%;filter:brightness(.73);transform:translate3d(0,calc(var(--material-shift,0)*5%),0) scale(1.025)}
.materials:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#09132108 20%,#09132175 55%,#091321ee 100%),linear-gradient(0deg,#09132170,transparent 35%);pointer-events:none}
.material-copy{position:absolute;right:0;top:50%;width:46%;padding:50px 7% 50px 4%;transform:translateY(-50%);z-index:2}.material-copy h2{font-size:clamp(43px,4.7vw,76px);line-height:1.07}.material-copy h2 em{color:var(--gold-light)}.material-copy .eyebrow{color:var(--gold);font-size:11px;line-height:1.7}.material-copy p:not(.eyebrow){color:#d0d0c9;font-size:16px;max-width:390px}.material-signature{color:var(--gold-light);font-size:23px}.image-caption{z-index:3;bottom:28px;left:4.8%;font-size:11px;background:#101c3080}
.method{position:relative;overflow:hidden}.method:after{content:'TR';position:absolute;right:-20px;bottom:-80px;font:700 380px var(--heading);letter-spacing:-.08em;color:transparent;-webkit-text-stroke:1px #d4b8790b;pointer-events:none}
.steps{position:relative;gap:24px;z-index:1}.steps:before{content:'';position:absolute;left:0;top:94px;right:0;height:1px;background:linear-gradient(90deg,var(--gold) calc(var(--method-progress,0)*100%),var(--line) 0);z-index:0}.step-num{position:relative;border:0;color:var(--gold);-webkit-text-stroke:0;font-size:64px;padding-bottom:28px}.step-num:after{content:'';position:absolute;left:0;bottom:-1px;height:7px;width:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 6px var(--deep)}.steps article{transition:transform .5s}.steps article:hover{transform:translateY(-7px)}.steps h3{font-size:22px}.steps p{font-size:16px}
.project{padding-top:130px;padding-bottom:135px}.project h2{font-size:clamp(50px,7vw,108px)}.project .eyebrow{font-size:11px}.project-cross{right:3%;bottom:20%;font-size:200px;color:#d4b8790d;transform:rotate(calc(var(--project-shift,0)*90deg))}.project:before{content:'';position:absolute;left:7%;top:20%;width:230px;height:230px;border:1px solid #d4b8791a;border-radius:50%;pointer-events:none;transform:scale(calc(1 + var(--project-shift,0)*.2))}.project>*:not(.project-cross){position:relative;z-index:1}
.revealable{transition:opacity .85s cubic-bezier(.2,.65,.3,1),transform .85s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
.revealable.reveal-pending{opacity:0;transform:translateY(32px)}
.motion-paused .ribbon-track,.motion-paused .floating-tool img{animation-play-state:paused}
.motion-paused .hero-atmosphere:after,.motion-paused .hero-watermark,.motion-paused .hero-content,.motion-paused .blueprint,.motion-paused .floating-tool,.motion-paused .construction-still,.motion-paused .material-image img,.motion-paused .project-cross{transform:none}
.motion-paused .revealable.reveal-pending{opacity:1;transform:none}
@keyframes title-arrive{from{transform:translateY(115%) rotate(4deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}
@keyframes soft-arrive{from{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes tool-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-15px) rotate(4deg)}}
@keyframes ribbon-travel{to{transform:translateX(-50%)}}
@keyframes detail-reveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.model-area{margin-right:-20px}.floating-tool{right:0;top:-10px}.house-scene{inset:-60px -40px 10px -60px}}
@media(max-width:1100px){.hero{padding-top:54px;grid-template-columns:45% 55%}.hero h1{font-size:7.3vw}.model-area{margin-left:-35px;margin-right:-32px}.house-scene{inset:-10px -45px 25px -45px}.floating-tool{width:190px;top:-23px;right:-20px}.tool-note{font-size:15px;bottom:0}.model-topline{left:50px;right:35px}.model-topline>span:first-child{max-width:160px}.model-state{display:none}.annotation-roof{top:27%;left:8%;font-size:9px}.annotation-base{right:6%;bottom:30%;font-size:9px}.model-bottomline{margin-left:25px;margin-right:25px;font-size:10px}.drag-hint,.explode-button{font-size:10px}.view-button{padding:12px 15px}.scene-chapters{gap:12px}.chapter{font-size:10px}.chapter b{margin-right:5px}.hero-foot>a{max-width:210px;font-size:9px}.motion-toggle{font-size:10px}.services>.services-heading{padding-right:30%;min-height:180px}.construction-still{width:32vw;top:135px;right:1%}.material-copy{width:48%;padding-right:6%;padding-left:1%}.material-copy h2{font-size:5.4vw}.material-copy .eyebrow{font-size:10px}.steps:before{top:83px}.step-num{font-size:54px}.steps h3{font-size:19px}.steps p{font-size:16px}.step-label{font-size:10px}}
@media(max-width:760px){.experience-ready .hero-journey{height:auto}.experience-ready .hero{position:relative;height:auto;min-height:0;max-height:none}.hero{padding:42px 6% 111px;display:flex}.hero-content{padding:0;transform:none}.hero h1{font-size:clamp(55px,12.7vw,88px);line-height:1.05;margin-bottom:25px}.hero .eyebrow{font-size:10px;letter-spacing:.12em}.hero-description{max-width:310px}.hero-description br{display:none}.model-area{height:410px;min-height:410px;margin:56px -13px 0}.house-scene{inset:-5px -10px 24px -10px}.floating-tool{width:155px;top:-93px;right:-10px;transform:rotate(-7deg)}.tool-note{font-size:13px;left:-30px;bottom:25px}.model-topline{left:13px;top:0;right:12px;font-size:8px}.model-state{display:block;font-size:7px}.model-topline>span:first-child{max-width:none}.model-annotation{font-size:8px}.annotation-roof{top:26%;left:0}.annotation-base{right:0;bottom:31%}.model-annotation i{width:22px}.model-bottomline{margin:0 10px 13px}.view-button{font-size:11px;padding:10px 12px}.rotate-button{width:33px}.model-controls{margin-bottom:0}.scene-crosshair{font-size:24px;top:15%}.model-orbit{height:57%;top:17%}.orbit-inner{top:24%;height:49%}.blueprint{top:300px;right:-330px;width:900px;opacity:.1}.hero-watermark{font-size:21vw;bottom:125px;left:3%}.drawing-code{display:none}.hero-foot{height:90px;align-items:flex-start;padding-top:17px;flex-wrap:wrap;gap:8px}.hero-foot>a{font-size:8px;max-width:225px}.motion-toggle{font-size:10px;padding:3px 0}.motion-label{display:none}.scene-chapters{order:3;width:100%;justify-content:center;gap:24px;margin-top:-5px}.chapter{font-size:10px;padding:6px 0}.chapter:after{bottom:1px}.service-ribbon{min-height:68px}.ribbon-group{font-size:14px;padding:19px 18px;gap:25px}.ribbon-group i{font-size:19px}.about{border-radius:0 0 22px 22px}.about h2{font-size:43px}.about:after{right:4%;top:60px;font-size:50px}.services{padding-top:67px}.services>.services-heading{padding-right:0;min-height:0;margin-bottom:190px;gap:21px}.construction-still{top:265px;width:245px;right:2%}.service-item summary{gap:14px;padding:26px 0}.service-item h3{font-size:23px}.service-item summary:hover{padding-left:7px}.service-detail{padding-left:28px}.materials{min-height:780px;height:100svh;max-height:950px}.material-image img{height:110%;top:-5%;object-position:34% 50%;filter:brightness(.78)}.materials:after{background:linear-gradient(0deg,#091321f2 0%,#091321bd 30%,#09132120 78%)}.material-copy{width:100%;top:auto;bottom:42px;transform:none;padding:0 7%;}.material-copy h2{font-size:clamp(39px,10vw,54px);max-width:420px;margin-bottom:22px}.material-copy h2 br:nth-of-type(1){display:none}.material-copy p:not(.eyebrow){font-size:16px;max-width:390px;margin-bottom:20px}.material-copy .eyebrow{font-size:10px;max-width:290px;margin-bottom:22px}.material-signature{font-size:21px}.image-caption{bottom:14px;left:6%;font-size:9px;padding:5px 0;background:none}.steps{grid-template-columns:1fr;gap:33px;margin-top:40px;padding-left:25px}.steps:before{top:0;left:0;width:1px;height:100%;background:linear-gradient(var(--gold) calc(var(--method-progress,0)*100%),var(--line) 0)}.step-num{font-size:49px;margin:0 0 16px;padding:0}.step-num:after{left:-28px;top:25px;bottom:auto;width:7px;height:7px}.steps h3{font-size:23px}.steps p{font-size:16px;max-width:430px}.steps article:hover{transform:none}.step-label{font-size:11px}.project{padding:80px 6% 90px}.project h2{font-size:clamp(43px,10.6vw,64px)}.project .eyebrow{font-size:10px}.project:before{width:140px;height:140px;left:-75px;top:15%}.project-cross{font-size:140px;right:-40px;bottom:10%}.revealable.reveal-pending{transform:translateY(22px)}}
@media(prefers-reduced-motion:reduce){.experience-ready .hero-journey{height:auto}.experience-ready .hero{position:relative;height:auto;min-height:740px}.title-line>span,.hero-content>*{animation:none!important}.revealable.reveal-pending{opacity:1;transform:none}.ribbon-track,.floating-tool img{animation:none!important}.ribbon-track{width:100%;overflow:auto}.ribbon-group[aria-hidden]{display:none}.hero-atmosphere:after,.hero-content,.hero-watermark,.blueprint,.floating-tool,.construction-still,.material-image img,.project-cross{transform:none}.button{transition:none}.steps article:hover{transform:none}@media(max-width:760px){.experience-ready .hero{min-height:0}}}
.webgl-unavailable .hero-journey{height:auto}.webgl-unavailable .hero{position:relative}.motion-toggle:disabled{cursor:default;opacity:.7}
@media(max-height:760px) and (min-width:761px){.experience-ready .hero{min-height:650px;padding-top:40px;padding-bottom:105px}.hero h1{font-size:clamp(65px,6.5vw,95px)}.hero-content{padding-bottom:0}.hero .eyebrow{margin-bottom:21px}.hero-description{font-size:16px;margin-bottom:23px}.hero-secondary{margin-top:18px}.hero .button{padding-top:16px;padding-bottom:16px}.floating-tool{top:-22px;width:190px}.tool-note{font-size:15px}.model-topline{top:0}.house-scene{top:-30px}.model-bottomline{margin-bottom:13px}}
