/* One scroll-controlled scene: logo lifts, machine moves, then the page opens. */
.intro-motion .kinetic-hero{min-height:calc(max(800px,100svh) + min(88svh,820px))}
.kinetic-stage{isolation:isolate}

.hero-machine{--machine-base:1.28;z-index:1;transform-origin:100% 60%;transform:translate3d(calc(var(--drive-progress,0)*-14px),calc(var(--drive-progress,0)*-10px),0) scale(calc(var(--machine-base) + var(--drive-progress,0)*.035));will-change:transform}
.kinetic-copy,.kinetic-description{position:relative;z-index:2;transform:translateY(calc(var(--hero-journey,0)*-16px + var(--hero-departure,0)*-35px));opacity:calc(1 - var(--hero-departure,0)*.32)}
.kinetic-copy h1{font-size:clamp(60px,6.35vw,110px)}
.kinetic-copy .eyebrow{animation:intro-type-in .65s backwards}.kinetic-copy h1{animation:intro-type-in .85s .08s backwards}.kinetic-description{animation:intro-type-in .85s .18s backwards}.hero-machine{animation:machine-appear 1.1s .1s backwards}.hero-machine>.excavator-rig{filter:drop-shadow(0 20px 14px #1720162a)}
.kinetic-bottom{position:relative}.kinetic-bottom:before{content:'';position:absolute;left:0;top:-1px;height:2px;width:100%;transform:scaleX(var(--hero-journey,0));transform-origin:left;background:var(--bronze)}
.kinetic-scroll>span{position:relative;overflow:hidden}.kinetic-scroll>span:before{content:'';position:absolute;inset:0;background:#b5a07824;transform:translateY(calc(100% - var(--hero-journey,0)*100%));z-index:-1}
.reading-progress{position:absolute;bottom:-1px;left:0;height:2px;width:100%;background:#b5a078;transform:scaleX(0);transform-origin:left;pointer-events:none}
.trade-strip{display:block;overflow:hidden;padding:28px 0;background:var(--ink);color:#e5e8e0;position:relative}
.trade-track{display:flex;align-items:center;gap:0;width:max-content;animation:trade-flow 34s linear infinite;will-change:transform}.trade-group{display:flex;align-items:center;justify-content:space-between;gap:50px;padding-inline:25px;min-width:100vw;flex-shrink:0}
.trade-group>span{font:700 clamp(34px,4.4vw,68px)/1.2 var(--display);letter-spacing:.015em;white-space:nowrap}.trade-group>i{display:block;font-size:27px;color:#a99a79;opacity:1}
.home-page .projects{clip-path:inset(0 var(--panel-inset,3.5%) round var(--panel-radius,38px));will-change:clip-path}
.intro-motion .service-image:not(.concrete-photo) img,.intro-motion .fresh-photos img,.intro-motion .project-image:not(.contain) img{transform:translate3d(0,var(--photo-drift,0px),0) scale(1.14);transition:filter .35s;will-change:transform}
.intro-motion .service:hover .service-image img,.intro-motion .fresh-photos a:hover img,.intro-motion .project-image:hover img{filter:brightness(1.07)}
.intro-motion .project-image.contain img{transform:none}
.reveal-ready .service.reveal{transform:translateY(65px);transition:opacity .85s,transform .95s cubic-bezier(.18,.75,.22,1)}.reveal-ready .service.reveal.visible{transform:translateY(0)}
.reveal-ready .team-card.reveal{transform:translateY(45px);transition:opacity .8s,transform .9s cubic-bezier(.18,.75,.22,1)}.reveal-ready .team-card.reveal.visible{transform:translateY(0)}
.reveal-ready .service:nth-child(2){transition-delay:.1s}.reveal-ready .service:nth-child(3){transition-delay:.2s}.reveal-ready .service:nth-child(4){transition-delay:.3s}
.fresh-photos a:first-child{transform:translateY(calc(var(--photo-drift,0px)*-.7))}.fresh-photos a:last-child{transform:translateY(calc(var(--photo-drift,0px)*.7))}
@keyframes intro-type-in{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}@keyframes machine-appear{from{opacity:0}to{opacity:1}}
@media(min-width:1600px){.hero-machine{--machine-base:1.2}}
@media(max-width:1180px){.hero-machine{--machine-base:1.16}.kinetic-copy h1{font-size:6.35vw}}
@media(max-width:760px){.intro-motion .kinetic-hero{min-height:0}.hero-machine{--machine-base:1.07;transform-origin:50% 60%;width:calc(100% + 44px);margin:18px 0 28px;transform:translateY(calc(var(--drive-progress,0)*-6px)) scale(calc(var(--machine-base) + var(--drive-progress,0)*.015))}.kinetic-copy h1{font-size:clamp(50px,12vw,83px)}.kinetic-copy,.kinetic-description{transform:none;opacity:1}.trade-strip{padding:22px 0}.trade-group{gap:30px;padding-inline:15px}.trade-group>span{font-size:37px}.trade-group>i{font-size:20px}.home-page .projects{clip-path:inset(0 var(--panel-inset,1.8%) round var(--panel-radius,20px))}.reveal-ready .service:nth-child(n){transition-delay:0s}}
.reduce-motion .kinetic-hero{min-height:0}.reduce-motion .hero-machine{transform:scale(var(--machine-base))}.reduce-motion .kinetic-copy,.reduce-motion .kinetic-description,.reduce-motion .trade-track,.reduce-motion .fresh-photos a{transform:none;opacity:1}.reduce-motion .projects{clip-path:none}.reduce-motion .service-image img,.reduce-motion .fresh-photos img,.reduce-motion .project-image img{transform:none!important}.reduce-motion .kinetic-bottom:before,.reduce-motion .reading-progress{display:none}
@media(prefers-reduced-motion:reduce){.intro-motion .kinetic-hero{min-height:0}.hero-machine{transform:scale(var(--machine-base))}.kinetic-copy,.kinetic-description,.trade-track,.fresh-photos a{transform:none;opacity:1}.home-page .projects{clip-path:none}.intro-motion .service-image img,.intro-motion .fresh-photos img,.intro-motion .project-image img{transform:none!important}.kinetic-bottom:before,.reading-progress{display:none}}

@keyframes trade-flow{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.trade-strip:hover .trade-track{animation-play-state:paused}.reduce-motion .trade-track{animation:none;transform:none}@media(prefers-reduced-motion:reduce){.trade-track{animation:none;transform:none}}

.news{background:#e9ece6;border-top:1px solid var(--line)}
.news-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:30px 36px;align-items:stretch}
.news-card{min-width:0;padding-bottom:24px;border-bottom:1px solid #bfc7bb}
.news-photo{aspect-ratio:16/9;overflow:hidden;background:#d3d9ce}
.news-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 1.15s cubic-bezier(.2,.7,.2,1)}
.news-copy{padding-top:18px}
.news-category{display:flex;align-items:center;gap:10px;font-size:14px;color:#665639;margin-bottom:10px;line-height:1.5}
.news-category:before{content:'';width:22px;height:1px;background:currentColor;flex:none}
.news-card h3{font-size:clamp(22px,1.8vw,29px);line-height:1.22;letter-spacing:-.035em;font-weight:750;text-wrap:balance}
.news-feature{grid-row:span 2;display:grid;position:relative;isolation:isolate;overflow:hidden;padding:0;border:0;background:var(--charcoal);color:#fff}
.news-feature .news-photo{position:absolute;inset:0;aspect-ratio:auto;background:var(--charcoal);z-index:-2}
.news-feature .news-photo img{object-position:54% center}
.news-feature:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 30%,#12191722 45%,#121917d9 76%,#121917fa 100%);pointer-events:none}
.news-feature .news-copy{align-self:end;padding:clamp(28px,3.2vw,56px)}
.news-feature .news-category{color:#e1d4b7;margin-bottom:18px}
.news-feature h3{font-family:var(--display);font-size:clamp(38px,4vw,64px);line-height:1.05;letter-spacing:-.02em;max-width:610px}
.reveal-ready .news-card.reveal{transform:translateY(42px);transition:opacity .8s,transform 1s cubic-bezier(.18,.75,.22,1)}
.reveal-ready .news-card.reveal.visible{transform:translateY(0)}
.reveal-ready .news-card:nth-child(2){transition-delay:.12s}.reveal-ready .news-card:nth-child(3){transition-delay:.24s}
.reveal-ready .news-card:not(.visible) .news-photo img{transform:scale(1.06)}
@media(hover:hover) and (pointer:fine){.news-card:hover .news-photo img{transform:scale(1.035)}}
@media(max-width:1000px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.news-feature{grid-column:1/-1;grid-row:auto;min-height:540px}.news-feature h3{max-width:540px;font-size:clamp(42px,5.8vw,58px)}.news-feature .news-photo img{object-position:center 42%}.news-card:not(.news-feature) h3{font-size:25px}}
@media(max-width:640px){.news-grid{grid-template-columns:1fr;gap:32px}.news-feature{grid-column:auto;min-height:0;display:block}.news-feature .news-photo{position:relative;z-index:auto;aspect-ratio:4/3}.news-feature:after{display:none}.news-feature .news-copy{padding:26px 24px 30px}.news-feature h3{font-size:36px}.news-feature .news-category{margin-bottom:14px}.news-card:not(.news-feature) h3{font-size:25px;max-width:420px}.reveal-ready .news-card:nth-child(n){transition-delay:0s}}
.reduce-motion .news-card .news-photo img{transform:none!important}
@media(prefers-reduced-motion:reduce){.news-card .news-photo img{transform:none!important}.reveal-ready .news-card.reveal{opacity:1;transform:none}}
