/* Shared by the main site and the calculator iframe documents.
   A gesture surface can opt out with data-press-feedback="off" on itself or
   an ancestor. Button-like links can opt in with data-press-feedback="on".
   Only opacity changes: card transforms, layout and native events stay intact. */
@layer base {
  :where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], summary, [data-press-feedback="on"]):not(:where([data-press-feedback="off"], [data-press-feedback="off"] *, [data-turtle-walk] *)) {
    transition: opacity 100ms ease-out;
    -webkit-tap-highlight-color: rgba(129, 95, 55, 0.16);
  }

  :where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], summary, [data-press-feedback="on"]):not(:disabled):not(:where([aria-disabled="true"], [aria-disabled="true"] *, [data-press-feedback="off"], [data-press-feedback="off"] *, [data-turtle-walk] *)):focus-visible:active {
    opacity: 0.68;
    transition-duration: 0s;
  }

  :where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], summary, [data-press-feedback="on"]):not(:where([data-press-feedback="off"], [data-press-feedback="off"] *, [data-turtle-walk] *)):focus-visible {
    outline: 2px solid #946b3d;
    outline-offset: 3px;
  }

  @media (prefers-reduced-motion: reduce) {
    :where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], summary, [data-press-feedback="on"]):not(:where([data-press-feedback="off"], [data-press-feedback="off"] *, [data-turtle-walk] *)) {
      transition-duration: 0s;
    }
  }
}

/* Pointer feedback is explicit so a scroll/drag/cancel can release it even
   while the browser still considers the element :active. Enter/Space use the
   native keyboard state above. Do not inherit a component's slow transition. */
[data-press-active]:not(:disabled):not(:where([aria-disabled="true"], [aria-disabled="true"] *, [data-press-feedback="off"], [data-press-feedback="off"] *, [data-turtle-walk] *)) {
  opacity: 0.68;
  transition-duration: 0s;
}
