button, summary { cursor: pointer; }
button { min-height: 44px; transition: filter .15s, transform .15s; }
button:hover:not(:disabled), summary:hover { filter: brightness(.95); }
button:active:not(:disabled), summary:active { transform: scale(.98); }
button:focus-visible, summary:focus-visible, a:focus-visible { outline: 3px solid #60a5fa; outline-offset: 3px; }
button:disabled { cursor: not-allowed; opacity: .55; }
button[aria-busy="true"] { cursor: wait; opacity: .65; }
button[data-cta][aria-busy="true"]::after { content: '…'; margin-left: 8px; }
