/* ============================================================================
 * core/reset.css — minimal reset and html/body base
 * ============================================================================
 * Depends on: tokens.css (must be loaded first)
 * Authoritative source: ForceX_Typography_and_CSS_Catalog_Spec.md
 *
 * Intentionally minimal. We do NOT use a heavy reset like normalize.css —
 * the design system covers every component explicitly.
 * ========================================================================== */

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

/* Prevent any element from exceeding viewport width */
img, video, iframe, table { max-width: 100%; }

html {
  overflow-x: clip;
}
@media (min-width: 768px) {
  html {
    scrollbar-gutter: stable;
  }
  html, body {
    min-height: 100vh;
  }
}

html, body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--text-md);
  line-height: var(--leading-relaxed);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a { color: var(--accent-lt); text-decoration: none; }
a:hover { text-decoration: underline; }
