/*! @crucible/design-system 0.1.0 (e95a491) — built 2026-05-26T04:32:08.542Z */
/* ─── Base styles: fonts + page defaults ──────────────────────────────────────
   Loaded by both consumers. The @font-face block self-hosts Geist Variable +
   Geist Mono Variable from this package's fonts/ directory. The html/body and
   focus-visible rules below match what previously lived in
   apps/web/src/app/globals.css so visual identity is preserved. ─────────── */

@font-face {
  font-family: 'Geist';
  src: url('./fonts/Geist-Variable.woff2') format('woff2-variations'),
       url('./fonts/Geist-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Geist Mono';
  src: url('./fonts/GeistMono-Variable.woff2') format('woff2-variations'),
       url('./fonts/GeistMono-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

html {
  background-color: var(--color-bg);
  color: var(--color-text-primary);
  font-family: var(--font-sans, ui-sans-serif, system-ui, sans-serif);
  -webkit-font-smoothing: antialiased;
}

body {
  min-height: 100vh;
}

/* Focus ring — 2px accent at 40% opacity (BRAND.md § Borders and corners) */
*:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-accent) 40%, transparent);
  outline-offset: 2px;
}
