/* Physical travel on press. Native click activates on release. */
:root body .button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;transform-origin:center;transition:box-shadow .16s,transform .12s,filter .16s}
:root body .button.is-pressed{animation:none;transform:translateY(3px) scale(.975);filter:brightness(.94);box-shadow:inset 0 2px 5px #1d176550,inset 0 1px 0 #ffffff25,0 1px 0 #1d176540,0 2px 5px #20196820;transition:transform .09s ease-out,box-shadow .09s,filter .09s}
:root body .button.is-rebounding{animation:cta-rebound .36s cubic-bezier(.2,.75,.3,1) both}
@keyframes cta-rebound{0%{transform:translateY(3px) scale(.975)}45%{transform:translateY(-3px) scale(1.012)}75%{transform:translateY(1px) scale(.997)}100%{transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){:root body .button.is-pressed{transform:none;transition:none}:root body .button.is-rebounding{animation:none;transform:none}}

/* Hold position on hover; travel only when deliberately pressed. */
:root body .button:hover{transform:none}
:root body .button.is-pressed,:root body .button.is-pressed:hover{transform:translateY(3px) scale(.975)}
:root body .button.is-rebounding,:root body .button.is-rebounding:hover{animation:cta-release .18s ease-out both}
@keyframes cta-release{from{transform:translateY(3px) scale(.975)}to{transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){:root body .button.is-pressed,:root body .button.is-pressed:hover{transform:none}:root body .button.is-rebounding,:root body .button.is-rebounding:hover{animation:none}}
