/* ================================================================
 * sf-tokens.css — Single source of truth for design tokens.
 *
 * Imported by: portal/portal.css, demo_ui.css, ui.legal-page.css
 * Aim: replace duplicated :root blocks across landing/portal pages.
 *
 * KEEP THIS FILE BRAND-ONLY. Component-specific tokens live with
 * the component.
 * ================================================================ */

:root {
  /* Brand */
  --brand: #0f172a;
  --brand-ink: #ffffff;
  --accent: #2563eb;
  --accent-2: #8b5cf6;

  /* Surfaces & ink */
  --bg: #ffffff;
  --fg: #1e293b;
  --muted: #64748b;
  --border: #e2e8f0;
  --surface: #ffffff;
  --surface-2: #f8fafc;
  --surface-3: #f1f5f9;

  /* Status */
  --ok: #16a34a;
  --ok-bg: #f0fdf4;
  --warn: #f59e0b;
  --warn-bg: #fffbeb;
  --err: #dc2626;
  --err-bg: #fef2f2;
  --info: #2563eb;
  --info-bg: #eff6ff;

  /* Geometry */
  --radius: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --shadow: 0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px 0 rgba(0,0,0,0.06);
  --shadow-lg: 0 10px 30px rgba(15,23,42,0.10);

  /* Typography */
  --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
               "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

/* Honor reduced motion globally for components that animate */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
