/* motion layer */
.mv-bar{position:fixed;left:0;right:0;top:0;height:4px;z-index:80;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--grass),var(--hivis));pointer-events:none}
.top{transition:box-shadow .3s,background .3s}.top.scrolled{box-shadow:0 10px 30px -12px rgba(0,0,0,.55)}.top.scrolled .wrap{padding-block:6px}.top .wrap{transition:padding .3s}
.mv-leaves{position:fixed;inset:0;width:100%;height:100%;z-index:45;pointer-events:none}
/* hero headline letters */
.hero h1 .w{display:inline-block;white-space:nowrap}
.hero h1 .ch{display:inline-block;transform:translateY(105%) rotate(8deg);opacity:0;animation:chIn .9s cubic-bezier(.2,1.4,.4,1) forwards;animation-delay:calc(.25s + var(--i)*45ms)}
.hero h1 .clip{display:inline-block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em;vertical-align:bottom}
@keyframes chIn{to{transform:none;opacity:1}}
.hero h1 em .ch{text-shadow:0 0 0 transparent;animation:chIn .9s cubic-bezier(.2,1.4,.4,1) forwards,glow 3.6s ease-in-out 2s infinite;animation-delay:calc(.25s + var(--i)*45ms),calc(2s + var(--i)*80ms)}
@keyframes glow{0%,100%{text-shadow:0 0 0 rgba(255,122,26,0)}50%{text-shadow:0 0 28px rgba(255,122,26,.55)}}
.hero-copy>*:not(h1){animation:upIn .8s cubic-bezier(.2,.9,.3,1) both}
.hero-copy>.eyebrow{animation-delay:.1s}.hero-copy>.lede{animation-delay:.75s}.hero-copy>.cta-row{animation-delay:.9s}.hero-copy>.trust{animation-delay:1.02s}.hero-copy>.hero-rating{animation-delay:1.12s}.hero-copy>.mow-hint{animation-delay:1.22s}
@keyframes upIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
/* badge: spin-in, ring text, tilt */
.stack{perspective:900px}
.stack .tilt{width:100%;display:grid;place-items:center;transform-style:preserve-3d;transition:transform .25s ease-out;animation:badgeIn 1.3s cubic-bezier(.2,1.5,.4,1) .5s both}
@keyframes badgeIn{from{opacity:0;transform:scale(.3) rotate(-200deg)}to{opacity:1;transform:none}}
.mv-ring{position:absolute;inset:-4%;width:108%;height:108%;animation:spin 28s linear infinite;pointer-events:none}
.mv-ring text{font:800 15px/1 var(--display);letter-spacing:.32em;fill:#f4f8f0;text-transform:uppercase}
.mv-ring .dot{fill:var(--hivis)}
@keyframes spin{to{transform:rotate(360deg)}}
.stack .badge{transform:translateZ(40px)}
/* shine + magnetic buttons */
.btn-go{position:relative;overflow:hidden;isolation:isolate}
.btn-go::after{content:"";position:absolute;inset:-2px;z-index:-1;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-120%);animation:shine 4.5s ease-in-out infinite}
@keyframes shine{0%,62%{transform:translateX(-120%)}82%,100%{transform:translateX(120%)}}
.btn.mag{transition:transform .18s ease-out,background .15s,border-color .15s}
/* stats band */
.mv-stats{background:var(--pine-deep);color:var(--on-pine);border-bottom:2px solid var(--pine-deep)}
.mv-stats .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding-block:clamp(28px,4vw,44px)}
@media (max-width:760px){.mv-stats .wrap{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:26px}}
.mv-stat{display:grid;gap:6px;padding-inline:clamp(10px,2vw,24px);border-left:1px solid rgba(255,255,255,.12)}
.mv-stat:first-child{border-left:0}@media (max-width:760px){.mv-stat:nth-child(3){border-left:0}}
.mv-stat b{font:900 clamp(2.8rem,6vw,4.6rem)/.9 var(--display);color:var(--hivis);font-variant-numeric:tabular-nums}
.mv-stat span{font:500 .78rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--on-pine-muted)}
/* giant scrolling words */
.mv-words{overflow:hidden;padding-block:clamp(36px,6vw,70px);background:var(--bg);display:grid;gap:6px;border-bottom:1px solid var(--line)}
.mv-row{display:flex;gap:.5em;white-space:nowrap;font:900 clamp(3.6rem,11vw,9rem)/.9 var(--display);text-transform:uppercase;will-change:transform}
.mv-row span{color:transparent;-webkit-text-stroke:2px var(--pine)}
.mv-row span.fill{color:var(--hivis);-webkit-text-stroke:0}
:root[data-theme="dark"] .mv-row span{-webkit-text-stroke-color:var(--grass)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mv-row span{-webkit-text-stroke-color:var(--grass)}}
/* cards: tilt + spotlight */
.svc{transform-style:preserve-3d;will-change:transform}
.svc::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(255,122,26,.22),transparent 60%)}
.svc:hover::after{opacity:1}
.ph,.ba-card .ba{transition:transform .35s cubic-bezier(.2,.9,.3,1),box-shadow .35s}
.ph:hover{transform:translateY(-6px) rotate(-.6deg);box-shadow:0 26px 40px -22px rgba(0,0,0,.55)}
/* reveals */
.mv-on .mv{opacity:0;transform:translateY(46px) scale(.97);transition:opacity .7s ease,transform .8s cubic-bezier(.2,.9,.3,1);transition-delay:var(--d,0s)}
.mv-on .mv.in{opacity:1;transform:none}
.mv-on .mv-l{opacity:0;transform:translateX(-60px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.9,.3,1)}
.mv-on .mv-l.in{opacity:1;transform:none}
.wheel svg{transition:transform 1.4s cubic-bezier(.2,1.2,.3,1)}
.mv-on .wheel:not(.in) svg{transform:rotate(-120deg) scale(.7)}
.three .num{display:inline-block}
.mv-on .three .num{transform:scale(.4) rotate(-20deg);opacity:0;transition:transform 1s cubic-bezier(.2,1.6,.4,1),opacity .5s}
.mv-on .three.in .num{transform:none;opacity:1}
@media (prefers-reduced-motion:reduce){.hero h1 .ch,.hero-copy>*,.stack .tilt{animation:none!important;opacity:1!important;transform:none!important}.mv-ring,.btn-go::after{animation:none!important}.mv-leaves{display:none}}
