SHighlightedButton[theme='primary-highlighted'] {
  color: var(--intergalactic-text-primary-invert, #ffffff);
  background-image: linear-gradient(90deg,
  var(--intergalactic-violet-500, #8649e1),
  var(--intergalactic-blue-500, #006dca),
  var(--intergalactic-violet-400, #ab6cfe),
  var(--intergalactic-blue-400, #008ff8));
  background-position-x: 99%;
  background-size: 300%;
  transition: background-position-x 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);

  &:hover {
    color: var(--intergalactic-text-primary-invert, #ffffff);
    background-position-x: 1%;
  }

  &:active,
  &[active] {
    color: var(--intergalactic-text-primary-invert, #ffffff);
    background-image: var(--intergalactic-control-primary-feature-highlight-active, linear-gradient(90deg, #5925ab, #044792));
    background-size: 100%;
  }

  &:focus-visible {
    outline: none;
  }
}

SHighlightedButton[theme='secondary-highlighted'] {
  color: var(--intergalactic-icon-primary-feature-highlight, #8649e1);

  background:
    var(--intergalactic-control-secondary-feature-highlight, linear-gradient(90deg, #f9f2ff, #e9f7ff)) padding-box,
    var(--intergalactic-border-feature-highlight-secondary, linear-gradient(90deg, #dcb8ff, #8ecdff)) border-box;
  background-origin: border-box;
  background-clip: padding-box, border-box;

  & SText {
    background-color: var(--intergalactic-icon-primary-feature-highlight, #8649e1);
    background-image: var(--intergalactic-text-feature-highlight, linear-gradient(90deg, #8649e1, #006dca));
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }

  &:hover {
    background:
      var(--intergalactic-control-secondary-feature-highlight-hover, linear-gradient(90deg, #f2e4ff, #d6edfe)) padding-box,
      var(--intergalactic-border-feature-highlight-secondary, linear-gradient(90deg, #dcb8ff, #8ecdff)) border-box;

    color: var(--intergalactic-icon-primary-feature-highlight-hover-active, #6B3AB4);

    & SText {
      background-color: var(--intergalactic-icon-primary-feature-highlight-hover-active, #6B3AB4);
      background-image: var(--intergalactic-text-feature-highlight-hover-active, linear-gradient(90deg, #421983, #002b5f));
    }
  }

  &:active,
  &[active] {
    background:
      var(--intergalactic-control-secondary-feature-highlight-active, linear-gradient(90deg, #edd9ff, #c4e5fe)) padding-box,
      var(--intergalactic-border-feature-highlight-secondary, linear-gradient(90deg, #dcb8ff, #8ecdff)) border-box;

    color: var(--intergalactic-icon-primary-feature-highlight-hover-active, #6B3AB4);

    & SText {
      background-color: var(--intergalactic-icon-primary-feature-highlight-hover-active, #6B3AB4);
      background-image: var(--intergalactic-text-feature-highlight-hover-active, linear-gradient(90deg, #421983, #002b5f));
    }
  }

  &:focus-visible {
    outline: none;
  }
}

SHighlightedButton {
  position: relative;
  /* isolation: isolate; */

  &::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    margin: -5px;
    padding: 2px;
    border-radius: calc(var(--intergalactic-control-rounded, 6px) + 3px);

    background-image: var(--intergalactic-keyboard-focus-feature-highlight-outline, linear-gradient(90deg, #ab6cfe, #008ff8));

    mask: linear-gradient(0deg, #fff, #fff) content-box, linear-gradient(0deg, #fff, #fff);
    mask-composite: exclude;

    opacity: 0;
    transform: scale(0.96);

    transition:
      opacity calc(var(--intergalactic-duration-extra-fast, 100) * 1ms) ease-in-out,
      transform calc(var(--intergalactic-duration-extra-fast, 100) * 1ms) ease-in-out;
  }

  &[neighborLocation='left']::before {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }

  &[neighborLocation='right']::before {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }

  &[neighborLocation='both']::before {
    border-radius: 0;
  }
}

SHighlightedButton:focus-visible::before {
  opacity: 1;
  transform: scale(1);
}

/* Firefox fallback */
@supports not (-webkit-mask-composite: xor) {
  SHighlightedButton:focus-visible {
    outline: none;
    box-shadow:
      0 0 0 2px #ffffff,
      0 0 0 4px #7078FC;
  }

  SHighlightedButton:focus-visible::before {
    display: none;
  }
}
