/* Shared contact-button feedback. Translation stays deliberately within 3px. */
a.motion-button{--mx:0px;--my:0px;--button-scale:1;transform:translate(var(--mx),var(--my)) scale(var(--button-scale));transition:transform 520ms cubic-bezier(.22,1,.36,1),background 180ms,box-shadow 180ms;transform-origin:center;touch-action:manipulation}
a.motion-button .button-arrow{display:inline-block;font-size:.9em;transform:rotate(0deg);transition:transform 650ms cubic-bezier(.22,1,.36,1);transform-origin:center}
@media(hover:hover) and (pointer:fine){a.motion-button:hover{--button-scale:1.012;transform:translate(var(--mx),var(--my)) scale(var(--button-scale))}a.motion-button:hover .button-arrow{transform:rotate(45deg)}}
a.motion-button:active,a.motion-button.is-pressed{--button-scale:.987;transform:translate(var(--mx),var(--my)) scale(var(--button-scale));transition-duration:240ms}
a.motion-button:focus-visible .button-arrow{transform:rotate(45deg)}
@media(prefers-reduced-motion:reduce){a.motion-button,a.motion-button:hover,a.motion-button:active,a.motion-button.is-pressed{transform:none;transition:none}a.motion-button .button-arrow{transition:none}}

@media(hover:hover) and (pointer:fine){a.motion-button.is-tracking:not(:active):not(.is-pressed){transition-duration:420ms,180ms,180ms}}
