/* Shared sweep; the real content, hit target and state remain on the control. */
.sweep-button {
  position: var(--sweep-position, relative);
  isolation: isolate;
}
.sweep-button > .cta-wipe {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: inherit;
  align-items: center;
  justify-content: var(--sweep-align, center);
  gap: inherit;
  padding: inherit;
  margin: 0;
  border: 0;
  border-radius: inherit;
  font: inherit;
  letter-spacing: inherit;
  white-space: inherit;
  background: var(--sweep-fill);
  color: var(--sweep-ink);
  clip-path: inset(0 100% 0 0);
  transition: clip-path 420ms cubic-bezier(.22,1,.36,1);
  pointer-events: none;
}
.sweep-button > .cta-wipe img { filter: var(--sweep-image-filter, none); }
.sweep-button > .cta-wipe > :is(svg, img) { width: var(--sweep-icon-width, 16px); height: var(--sweep-icon-height, 16px); flex: 0 0 auto; }
.sweep-button > .cta-wipe svg [stroke]:not([stroke="none"]) { stroke: currentColor; }
.sweep-button:focus-visible > .cta-wipe,
.sweep-button:active > .cta-wipe { clip-path: inset(0); }
.sweep-button:not([aria-selected="true"]):not([aria-pressed="true"]):not(.is-active):not(.is-selected):is(:hover, :focus-visible, :active) {
  background: var(--sweep-base-background) !important;
  color: var(--sweep-base-ink) !important;
  transform: none;
}
.sweep-button:is([aria-selected="true"], [aria-pressed="true"], .is-active, .is-selected) > .cta-wipe {
  color: inherit;
  background: color-mix(in srgb, currentColor 12%, transparent);
}
.sweep-button:is(:hover, :focus-visible, :active) > img { transform: none; }
@media (hover: hover) and (pointer: fine) {
  .sweep-button:hover > .cta-wipe { clip-path: inset(0); }
}
.sweep-button:is(:disabled, [aria-disabled="true"]:not([data-email-pending-link])) > .cta-wipe {
  clip-path: inset(0 100% 0 0) !important;
  transition: none;
}
@media (prefers-reduced-motion: reduce) {
  .sweep-button > .cta-wipe { transition: none; }
}
