/**
 * Global styles.
 * Uses semantic tokens from tokens.css.
 */

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

html {
  font-size: 18px;
  -webkit-font-smoothing: antialiased;
}

body {
  margin: 0;
  font-family: var(--typography-body-font-family);
  font-size: var(--typography-body-font-size);
  font-weight: var(--typography-body-font-weight);
  line-height: var(--typography-body-line-height);
  background-color: var(--color-background-default);
  color: var(--color-text-default);
  overflow-x: hidden;
}

/* Paragraph spacing follows page context — set --paragraph-spacing on parent */
p {
  margin-block: 0;
  margin-block-end: var(--paragraph-spacing, var(--spacing-cozy));
}

p:last-child {
  margin-block-end: 0;
}

/* Visually hidden but available to screen readers */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
