/* Shared tactile feedback for buttons and button-styled links. */
button,
.button {
  -webkit-tap-highlight-color: transparent;
  transition:
    opacity 140ms ease,
    filter 140ms ease,
    transform 80ms ease,
    box-shadow 140ms ease;
}

@media (hover: hover) {
  button:not(:disabled):hover,
  .button:hover {
    opacity: 0.86;
    filter: brightness(0.98);
  }
}

button:not(:disabled):active,
.button:active {
  opacity: 0.76;
  filter: brightness(0.95);
  transform: translateY(1px) scale(0.99);
  box-shadow: inset 0 1px 2px rgba(16, 37, 29, 0.14);
}

button:focus-visible,
.button:focus-visible {
  outline: 3px solid rgba(14, 106, 71, 0.32);
  outline-offset: 2px;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
  filter: none;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  button,
  .button {
    transition: none;
  }
}
