/* POLARIS — base reset + .ds-* utility classes.
   Foundational helpers that map the type/colour roles to ready-to-use classes. */

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

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--foreground);
  background: var(--background);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Type roles */
.ds-display {
  font-weight: var(--weight-extrabold);
  font-size: var(--text-display);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-display);
  text-wrap: balance;
}
.ds-h1 { font-weight: var(--weight-bold); font-size: var(--text-h1); line-height: var(--leading-snug); letter-spacing: var(--tracking-h1); }
.ds-h2 { font-weight: var(--weight-bold); font-size: var(--text-h2); line-height: var(--leading-snug); letter-spacing: var(--tracking-h2); }
.ds-h3 { font-weight: var(--weight-bold); font-size: var(--text-h3); line-height: 1.3; }
.ds-h4 { font-weight: var(--weight-semibold); font-size: var(--text-h4); line-height: 1.35; }
.ds-body { font-weight: var(--weight-regular); font-size: var(--text-body); line-height: var(--leading-body); }
.ds-lead { font-weight: var(--weight-regular); font-size: var(--text-lead); line-height: var(--leading-lead); color: var(--muted-foreground); }
.ds-caption { font-size: var(--text-caption); color: var(--muted-foreground); }
.ds-eyebrow {
  font-weight: var(--weight-bold);
  font-size: var(--text-eyebrow);
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--primary);
}
.ds-stat {
  font-weight: var(--weight-extrabold);
  font-size: var(--text-stat);
  line-height: 1;
  letter-spacing: var(--tracking-stat);
  color: var(--primary);
}
.ds-mono { font-family: var(--font-mono); }

/* Colour helpers */
.ds-text-primary { color: var(--primary); }
.ds-text-muted { color: var(--muted-foreground); }
.ds-bg-secondary { background: var(--secondary); }
.ds-bg-primary { background: var(--primary); color: var(--on-primary); }

/* Layout helpers */
.ds-container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--space-6); }
.ds-container-wide { width: 100%; max-width: var(--container-wide); margin-inline: auto; padding-inline: var(--space-6); }
.ds-container-narrow { width: 100%; max-width: var(--container-narrow); margin-inline: auto; padding-inline: var(--space-6); }
.ds-section { padding-block: var(--section-y); }

/* Focus ring */
.ds-focus:focus-visible { outline: none; box-shadow: var(--ring-shadow); }
