button {
  position: relative;
  display: inline-flex;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 48px;
  padding-right: 16px;
  padding-left: 16px;
  list-style: none;
  cursor: pointer;
  user-select: none;
  transition: box-shadow .15s,transform .15s;
  text-align: left;
  white-space: nowrap;
  text-decoration: none;
  color: #fff;
  border: 0;
  border-radius: 6px;
  background-image: radial-gradient(100% 100% at 100% 0, #5adaff 0, $blue 100%);
  box-shadow: rgba(45, 35, 66, .4) 0 2px 4px,rgba(45, 35, 66, .3) 0 7px 13px -3px,rgba(58, 65, 111, .5) 0 -3px 0 inset;
  font-size: 18px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: 0.05rem;
  appearance: none;
  touch-action: manipulation;
  will-change: box-shadow,transform;
}

button:focus-visible {
  box-shadow: darken($blue, 10%) 0 0 0 1.5px inset, rgba(45, 35, 66, .4) 0 2px 4px, rgba(45, 35, 66, .3) 0 7px 13px -3px, darken($blue, 10%) 0 -3px 0 inset;
}

button:hover {
  transform: translateY(-2px);
  box-shadow: rgba(45, 35, 66, .4) 0 4px 8px, rgba(45, 35, 66, .3) 0 7px 13px -3px, darken($blue, 10%) 0 -3px 0 inset;
}

button:active {
  transform: translateY(2px);
  box-shadow: darken($blue, 10%) 0 3px 7px inset;
}
