:where(.btn,button,input:is([type=button],[type=submit],[type=reset])),
:where(input[type=file])::-webkit-file-upload-button,
:where(input[type=file])::file-selector-button {
  --_text: var(--link);
  --_size: initial;
  --_bg: #fff;
  --_border: var(--link);
  --_ink-shadow: 0;
  --_icon-size: var(--size-relative-7);
  --_icon-color: var(--link);
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  align-items: center;
  background: var(--_bg);
  border: var(--border-size-1) solid var(--_border);
  border-radius: var(--radius-2);
  box-shadow: var(--shadow-2);
  color: var(--_text);
  display: inline-flex;
  font-size: var(--_size);
  font-weight: var(--font-weight-5);
  gap: var(--size-2);
  justify-content: center;
  padding-block: .75ch;
  padding-inline: var(--size-relative-6);
  text-align: center;
  text-shadow: var(--_ink-shadow);
  transition: border-color .5s var(--ease-3);
  user-select: none;

  &.sm {
    padding-block: var(--size-1);
    padding-inline: var(--size-2);
  }

  &.lg {
    --_size: var(--font-size-3);
    padding-block: var(--size-3);
    padding-inline: var(--size-6);
  }
}

:where(.btn,button,input:is([type=button],[type=submit],[type=reset])) > :where(svg) {
  block-size: var(--_icon-size);
  filter: drop-shadow(var(--_ink-shadow));
  flex-shrink: 0;
  inline-size: var(--_icon-size);
}

:where(.btn,button,input:is([type=button],[type=submit],[type=reset])) > :where(svg>*) {
  stroke: var(--_icon-color);
  stroke-width: var(--border-size-2);
}

:where(.btn:is(a)) {
  text-decoration: none;
  margin: 0;
  display: inline-flex;
}

:where([type=submit], formbutton:not([type],[disabled]), .btn.primary, button.primary) {
  --_bg: var(--link);
  --_border: var(--link);
  --_text: var(--surface-1);
  --_ink-shadow: 0 1px 0 var(--link);
}

:where(input[type=file]) {
  align-self: flex-start;
  border: var(--border-size-1) solid var(--surface-2);
  border-radius: var(--radius-2);
  box-shadow: var(--inner-shadow-4);
  color: var(--text-2);
  cursor: auto;
  max-inline-size: 100%;
  padding: 0;
}

:where(input[type=file])::-webkit-file-upload-button,:where(input[type=file])::file-selector-button {
  cursor: pointer;margin-inline-end: var(--size-relative-6);
}