/* Hover feedback on public pages and the dashboard, with group and project settings excluded. */
@media (hover: hover) and (pointer: fine) {
  body:has(> main:is(.home-main-page, .pricing-page, .faq-page, .contact-page, .legal-page, .dashboard-page)) :is(button, .btn, .home-button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"]):not(.dash-group-head *):not(.dash-project-settings):not(:disabled):not(.disabled):not([aria-disabled="true"]):hover:not(:focus-visible) {
    /* Keep the same soft shadow across page-specific button styles. */
    box-shadow: 0 4px 12px rgb(17 18 15 / 14%) !important;
  }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  body:has(> main:is(.home-main-page, .pricing-page, .faq-page, .contact-page, .legal-page, .dashboard-page)) :is(button, .btn, .home-button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"]):not(.dash-group-head *):not(.dash-project-settings):not(:disabled):not(.disabled):not([aria-disabled="true"]):hover:not(:active) {
    animation: lod-button-bounce 380ms ease-out;
  }
}

/* Translate independently so existing transforms and positioning stay intact. */
@keyframes lod-button-bounce {
  0%, 100% {
    translate: 0 0;
  }
  35% {
    translate: 0 -3px;
  }
  65% {
    translate: 0 0.5px;
  }
  82% {
    translate: 0 -1px;
  }
}
