/* Shared design tokens + base reset for saloon.fyi.
   Loaded by both the landing page (index.html) and every generated legal page
   (build.mjs). Single source of truth — page-specific styles stay inline. */

:root {
  --bg: #08080a;
  --fg: #f4f3ee;
  --fg-2: rgba(244, 243, 238, 0.86);
  --fg-3: rgba(244, 243, 238, 0.66);
  --fg-4: rgba(244, 243, 238, 0.42);
  --line: rgba(244, 243, 238, 0.14);
  --accent: #3a5bff;
  --accent-soft: #b8c8ff;
  --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
  --font-serif: "Instrument Serif", ui-serif, Georgia, serif;
}

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

/* Improve line rag and discourage short last lines. The hard guarantee against
   single-word orphans is the widont pass (runtime on index, build-time on legal);
   this is the progressive-enhancement layer on top. */
p { text-wrap: pretty; }

html { scroll-behavior: smooth; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 50;
  opacity: 0.05;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/></svg>");
}
