
/* Scroll animations: progressive enhancement, once per element. */
html{overflow-x:clip}
.motion-ready .motion-reveal{opacity:0;transform:translate(var(--motion-x,0px),var(--motion-y,24px));transition:opacity 700ms ease,transform 850ms cubic-bezier(.22,1,.36,1);transition-delay:var(--motion-delay,0ms)}
.motion-ready .motion-reveal.motion-visible{opacity:1;transform:translate(0,0)}
.button,.nav-cta{transition:transform 220ms ease,box-shadow 220ms ease,background 220ms ease}
.button:hover,.nav-cta:hover{transform:translateY(-2px);box-shadow:0 8px 22px #143e2d20}
.service-grid article,.parts-grid article,.team-grid article{transition:box-shadow 250ms ease,border-color 250ms ease}
.service-grid article:hover,.parts-grid article:hover,.team-grid article:hover{box-shadow:0 14px 34px #143e2d15;border-color:#71937e}
.animation-preview-note{background:#143e2d;color:#fff;text-align:center;padding:8px 16px;font-size:12px;letter-spacing:.5px}
@media(max-width:650px){.motion-ready .motion-reveal{transform:translateY(18px);transition-duration:600ms;transition-delay:0ms}}
@media(prefers-reduced-motion:reduce){.motion-ready .motion-reveal{opacity:1;transform:none;transition:none}.button:hover,.nav-cta:hover{transform:none}}
@media print{.motion-ready .motion-reveal{opacity:1;transform:none}.animation-preview-note{display:none}}
