@import url('./tokens/colors.css');
@import url('./tokens/typography.css');
@import url('./tokens/spacing.css');

*, *::before, *::after { box-sizing: border-box; }

html { color-scheme: light; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--surface-page);
  color: var(--text-body);
  font-family: var(--font-body);
  font-size: var(--text-body-md);
  line-height: var(--leading-normal);
  -webkit-font-smoothing: antialiased;
}

button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }

:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 3px;
}

::selection {
  background: var(--red-100);
  color: var(--ink-950);
}

.ds-button:hover:not(:disabled) { background: var(--button-primary-bg-hover) !important; }
.ds-button:active:not(:disabled) { background: var(--button-primary-bg-active) !important; }
.ds-button--dark:hover:not(:disabled) { background: var(--color-action-secondary-hover) !important; }
.ds-button--outline:hover:not(:disabled) { background: var(--red-50) !important; }
.ds-button--ghost:hover:not(:disabled) { background: var(--gray-100) !important; }
.ds-field:hover:not(:disabled) { border-color: var(--field-border-hover) !important; }
.ds-field:focus { border-color: var(--field-border-focus) !important; box-shadow: 0 0 0 3px var(--focus-ring); outline: none; }
.ds-card--interactive:hover { border-color: var(--gray-300) !important; box-shadow: var(--shadow-md) !important; transform: translateY(-2px); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
