/* uFound — scroll & interaction motion (Webflow-style) */
:root{--ease:cubic-bezier(.2,.7,.2,1)}

/* page progress */
.page-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--forest-700),var(--signal));z-index:130;pointer-events:none}

/* header: hide on scroll down, return on scroll up */
.nav{transition:transform .45s var(--ease)}
.nav.is-hidden{transform:translateY(-130%)}

/* image handling: fade-in, parallax, hover zoom, clip reveal */
.media img{position:relative;will-change:translate;scale:var(--sc,1)}
.js .media img{opacity:0;transition:opacity .9s ease,scale 1.1s var(--ease)}
.js .media img.loaded{opacity:1}
.parallax img{--sc:1.14;translate:0 var(--py,0px)}
.hover-card:hover .parallax img,.article-teaser:hover .parallax img,.panel:hover .parallax img{--sc:1.2}
.hover-card:hover .media img,.article-teaser:hover .media img,.panel:hover .media img{transform:none}
.js .media.clip{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease)}
.js .media.clip.media-in{clip-path:inset(0 0 0 0)}
.js .media.clip.media-done{clip-path:none}

/* hero scroll-linked */
.hero{--hp:0;transform-origin:50% 0;transform:scale(calc(1 - var(--hp)*.055));border-radius:0 0 calc(40px + var(--hp)*34px) calc(40px + var(--hp)*34px);will-change:transform}
.hero-bg{will-change:translate}
.hero-in{will-change:opacity,translate}

/* word-by-word heading reveal */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.wi{display:inline-block}
.js .wsplit .wi{transform:translateY(112%);transition:transform 1s var(--ease);transition-delay:calc(var(--i)*55ms)}
.js .wsplit.in .wi{transform:none}
.hero h1.wsplit{animation:none!important;opacity:1!important}

/* staggered reveal delays */
.js [data-reveal]{transition-delay:var(--d,0s)}

/* industries ticker */
.ticker{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);padding:4px 0}
.ticker-track{display:flex;gap:12px;width:max-content;animation:ticker 46s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker .tag{padding:14px 26px;font-size:16px;font-weight:500;white-space:nowrap}
@keyframes ticker{to{transform:translateX(-50%)}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* cursor spotlight on cards */
.service-card,.why-card,.panel,.related-card,.article-teaser{position:relative}
.service-card::after,.why-card::after,.panel::after,.related-card::after,.article-teaser::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(183,240,138,.16),transparent 60%);z-index:3}
.service-card:hover::after,.why-card:hover::after,.panel:hover::after,.related-card:hover::after,.article-teaser:hover::after{opacity:1}
.panel-light::after{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(27,97,74,.08),transparent 60%)}
.btn{translate:var(--mx-t,0) var(--my-t,0);transition:transform .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease,translate .3s var(--ease)}

/* footer wordmark */
.footer-mark{font-size:clamp(96px,24vw,360px);line-height:.78;font-weight:700;letter-spacing:-.07em;text-align:center;margin:clamp(20px,3vw,40px) 0 -.05em;color:transparent;background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.02) 85%);-webkit-background-clip:text;background-clip:text;user-select:none;translate:0 calc((1 - var(--fm,1))*40%);opacity:calc(.3 + var(--fm,1)*.7);overflow:hidden;white-space:nowrap}
footer{overflow:hidden}
footer .footer-bottom{margin-top:48px}

/* sticky mobile CTA */
.sticky-cta{display:none}
@media(max-width:640px){
  .sticky-cta{display:inline-flex;position:fixed;left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:85;min-height:54px;box-shadow:0 18px 40px -12px rgba(8,39,31,.55);transform:translateY(160%);transition:transform .5s var(--ease)}
  .sticky-cta.show{transform:none}
}

/* form polish */
.field input:user-invalid,.field textarea:user-invalid{border-color:#b3261e;box-shadow:0 0 0 4px rgba(179,38,30,.12)}
.field label[data-req]::after{content:" *";color:var(--forest-700)}

@media(prefers-reduced-motion:reduce){
  .hero{transform:none!important;border-radius:0 0 40px 40px!important}
  .js .wsplit .wi{transform:none!important}
  .js .media.clip{clip-path:none!important}
  .js .media img{opacity:1!important}
  .parallax img{translate:none!important;--sc:1.02}
  .ticker-track{animation:none;flex-wrap:wrap;width:auto}
  .ticker{-webkit-mask-image:none;mask-image:none}
  .nav.is-hidden{transform:none}
}
.panel-light .panel-media{max-height:460px}

/* stats band (count-up) */
.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(8px,2vw,24px);border-radius:var(--card);background:linear-gradient(160deg,var(--forest-800),var(--forest-950) 70%);position:relative;overflow:hidden;color:#fff}
.stats::before{content:"";position:absolute;right:-120px;top:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(183,240,138,.2),transparent 70%);pointer-events:none}
.stat{position:relative;padding:clamp(28px,3.4vw,48px) clamp(22px,2.6vw,36px);display:flex;flex-direction:column;gap:14px}
.stat+.stat{border-left:1px solid rgba(255,255,255,.14)}
.stat-num{font-size:clamp(46px,6vw,84px);line-height:1;font-weight:600;letter-spacing:-.045em;color:var(--signal);font-variant-numeric:tabular-nums}
.stat-label{color:var(--on-dark);font-size:clamp(14px,1.2vw,17px);line-height:1.4;max-width:22ch}
@media(max-width:900px){
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){border-left:0}
  .stat:nth-child(n+3){border-top:1px solid rgba(255,255,255,.14)}
}
@media(max-width:420px){.stat-num{font-size:44px}.stat{padding:24px 18px}}
