/* Whale button interactions · universal hover/press, 2026-11-05.
   Applied after page styles; no decorative shadows or layout reflow. */
@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
  :is(button:not(:disabled):not([aria-disabled="true"]),
      a.btn:not([aria-disabled="true"]),
      a.support-action:not([aria-disabled="true"]),
      a.download-link:not([aria-disabled="true"])){
    transition:transform .29s cubic-bezier(.22,1,.36,1),
               background-color .2s ease,border-color .2s ease,
               color .2s ease,opacity .2s ease!important;
    transform:translate3d(0,0,0)!important;
    will-change:auto;
  }
  :is(button:not(:disabled):not([aria-disabled="true"]),
      a.btn:not([aria-disabled="true"]),
      a.support-action:not([aria-disabled="true"]),
      a.download-link:not([aria-disabled="true"])):hover{
    transform:translate3d(0,-3px,0) scale(1.012)!important;
  }
  :is(button:not(:disabled):not([aria-disabled="true"]),
      a.btn:not([aria-disabled="true"]),
      a.support-action:not([aria-disabled="true"]),
      a.download-link:not([aria-disabled="true"])):active{
    transform:translate3d(0,0,0) scale(.985)!important;
    transition-duration:.12s!important;
  }
  /* Animated directional indicators inside buttons. */
  :is(button,a.btn) > span[aria-hidden="true"]{
    display:inline-block;
    transition:transform .29s cubic-bezier(.22,1,.36,1);
  }
  :is(button,a.btn):hover > span[aria-hidden="true"]{
    transform:translateX(4px);
  }
}
/* Never animate disabled controls or when users request reduced motion. */
@media (prefers-reduced-motion:reduce){
  :is(button,a.btn,a.support-action){transition-duration:0s!important}
}
