@layer components {
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    cursor: pointer;
  }
  .btn--full { width: 100%; }

  .btn--amber,
  .btn--surface {
    --xf-btn-depth: var(--xf-depth-md);
    --xf-btn-travel: 0px;
    padding: var(--space-md) 1.625rem;
    border: var(--xf-border);
    border-radius: var(--xf-radius-sm);
    box-shadow: calc(var(--xf-btn-depth) - var(--xf-btn-travel)) calc(var(--xf-btn-depth) - var(--xf-btn-travel)) 0 var(--xf-ink);
    color: var(--xf-ink);
    font-family: var(--xf-font-display);
    font-size: var(--text-lg);
    font-weight: 800;
    line-height: var(--leading-tight);
    text-align: center;
    white-space: normal;
    transform: translate(var(--xf-btn-travel), var(--xf-btn-travel));
    transition: transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
  }
  .btn--amber { background: var(--xf-amber); }
  .btn--surface { background: var(--xf-surface); }
  .btn--amber:hover, .btn--surface:hover { --xf-btn-travel: -1px; }
  .btn--amber:active, .btn--surface:active { --xf-btn-travel: 3px; }
  .btn--amber:focus-visible, .btn--surface:focus-visible { outline: var(--xf-focus-ring); outline-offset: var(--xf-focus-offset); }

  .btn--amber.btn--sm,
  .btn--surface.btn--sm {
    --xf-btn-depth: var(--xf-depth-sm);
    min-height: 2.75rem;
    padding: 0.625rem var(--space-md);
    font-family: var(--xf-font-body);
    font-size: 0.9375rem;
    font-weight: 600;
  }
  .btn--amber.btn--sm:active, .btn--surface.btn--sm:active { --xf-btn-travel: 2px; }

  .btn--amber:disabled, .btn--amber[aria-disabled="true"],
  .btn--surface:disabled, .btn--surface[aria-disabled="true"] {
    border-style: dashed;
    border-color: var(--xf-line-muted);
    background: transparent;
    box-shadow: none;
    color: var(--xf-ink-muted);
    cursor: not-allowed;
    transform: none;
    transition: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .btn--amber, .btn--surface { transition: none; }
  }
}
