@layer components {
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  min-block-size: 2.75rem;
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius-btn);
  background-color: var(--button-bg, var(--color-purple));
  color: var(--color-text-inverse);
  font-size: var(--fs-body);
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.button:hover {
  background-color: var(--button-bg-hover, var(--color-purple-hover));
}

.button--secondary {
  --button-bg: var(--color-teal);
  --button-bg-hover: var(--color-teal-hover);
}

.button__glyph {
  display: inline-block;
  font-size: 1.125rem;
  line-height: 1;
  transition: transform var(--dur-base) var(--ease-spring);
}

@media (prefers-reduced-motion: no-preference) {
  .button:is(:hover, :focus-visible) .button__glyph {
    transform: rotate(90deg);
  }
}

@media (forced-colors: active) {
  .button {
    border: 2px solid ButtonText;
  }
}
}
