/*
 * Reset + background — hand-ported from `faircamp-front/src/styles/global.css`.
 * The prototype's fixed film-grain overlay is a cosmetic flourish `docs/phase-5a.md`
 * marks as best-effort/not required, and is left out here.
 */
* {
  box-sizing: border-box;
}

/* `hidden` must actually hide: an author `display` declaration outranks the UA
   stylesheet's `[hidden] { display: none }` whatever the specificity, so any
   class that sets `display` silently defeats the attribute without this. */
[hidden] {
  display: none !important;
}

body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-ink);
  padding: 0 0 90px;
}

/* Placeholders use `--color-muted-2`, not a dimmer grey: fields sit on
   `--color-surface`, where the next tier down reaches only 2.77:1 — below AA,
   and placeholders are the hint text people squint at most. (An even dimmer
   `--color-muted-3` used to exist for this and was dropped for that reason.)
   See `tests/visual/test_contrast.py`. */
input::placeholder,
textarea::placeholder {
  color: var(--color-muted-2);
}
