html {
  color: var(--ui-color-text);
  background: var(--ui-color-canvas);
  font-family: "Geist Variable", Geist, "Helvetica Neue", Arial, sans-serif;
}

body {
  color: var(--ui-color-text);
  background: var(--ui-color-canvas);
}

::selection {
  color: var(--ui-color-inverse);
  background: var(--ui-color-inverse-surface);
}

strong,
b {
  font-weight: 500;
}

.ui-type {
  margin: 0;
  color: inherit;
}

/* Figma Head: only H1 / H2. Native h3–h6 map to Subhead Sh XL → Sh S. */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-family: inherit;
  color: inherit;
}

/* Head/H1 — Geist Regular 72/96/-5 */
h1,
.ui-type-h1,
.ui-type-heading-display {
  font-size: var(--ui-type-display);
  font-weight: 400;
  line-height: 0.96;
  letter-spacing: -0.05em;
}

/* Head/H2 — Geist Regular 48/96/-5 */
h2,
.ui-type-h2,
.ui-type-heading-page {
  font-size: var(--ui-type-page);
  font-weight: 400;
  line-height: 0.96;
  letter-spacing: -0.05em;
}

/* Subhead/Sh * — Geist Medium 120% */
h3,
h4,
h5,
h6,
.ui-type-sh-xl,
.ui-type-sh-l,
.ui-type-sh-m,
.ui-type-sh-s,
.ui-type-sh-xs,
.ui-type-section-large,
.ui-type-section-l,
.ui-type-section-medium,
.ui-type-section-small,
.ui-type-section-xsmall {
  font-weight: 500;
  line-height: 1.2;
}

/* Subhead/Sh XL — 28/120/-2 */
h3,
h1.ui-type-sh-xl,
h2.ui-type-sh-xl,
.ui-type-sh-xl,
.ui-type-section-large {
  font-size: var(--ui-type-large);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

/* Subhead/Sh L — 22/120/-2 */
h4,
.ui-type-sh-l,
.ui-type-section-l {
  font-size: var(--ui-type-l);
  letter-spacing: -0.02em;
}

/* Subhead/Sh M — 16/120/-1 */
h5,
.ui-type-sh-m,
.ui-type-section-medium {
  font-size: var(--ui-type-medium);
  letter-spacing: -0.01em;
}

/* Subhead/Sh S — 14/120/-1 */
h6,
.ui-type-sh-s,
.ui-type-section-small {
  font-size: var(--ui-type-small);
  letter-spacing: -0.01em;
}

/* Subhead/Sh XS — 12/120/0 */
.ui-type-sh-xs,
.ui-type-section-xsmall {
  font-size: var(--ui-type-xsmall);
  letter-spacing: 0;
}

/* Body/* and Links/* — Geist Regular, lh 120% */
.ui-type-body-xl,
.ui-type-body-large,
.ui-type-body-l,
.ui-type-body-m,
.ui-type-body-medium,
.ui-type-body-s,
.ui-type-body-small,
.ui-type-body-xs,
.ui-type-body-xsmall,
.ui-type-body-xxs,
.ui-type-body-xxsmall,
.ui-type-link-xl,
.ui-type-link-large,
.ui-type-link-l,
.ui-type-link-m,
.ui-type-link-medium,
.ui-type-link-s,
.ui-type-link-small,
.ui-type-link-xs,
.ui-type-link-xsmall {
  font-weight: 400;
  line-height: 1.2;
}

/* Body XL / Link XL — 28/120/-4 */
.ui-type-body-xl,
.ui-type-body-large,
.ui-type-link-xl,
.ui-type-link-large {
  font-size: var(--ui-type-large);
  letter-spacing: -0.04em;
}

/* Body L / Link L — 22/120/-3 */
.ui-type-body-l,
.ui-type-link-l {
  font-size: var(--ui-type-l);
  letter-spacing: -0.03em;
}

/* Body M / Link M — 16/120/-2 */
.ui-type-body-m,
.ui-type-body-medium,
.ui-type-link-m,
.ui-type-link-medium {
  font-size: var(--ui-type-medium);
  letter-spacing: -0.02em;
}

/* Body S / Link S — 14/120/-2 */
.ui-type-body-s,
.ui-type-body-small,
.ui-type-link-s,
.ui-type-link-small {
  font-size: var(--ui-type-small);
  letter-spacing: -0.02em;
}

/* Body XS / Link XS — 12/120/-1 */
.ui-type-body-xs,
.ui-type-body-xsmall,
.ui-type-link-xs,
.ui-type-link-xsmall {
  font-size: var(--ui-type-xsmall);
  letter-spacing: -0.01em;
}

/* Body XXS — 10/120/0 */
.ui-type-body-xxs,
.ui-type-body-xxsmall {
  font-size: var(--ui-type-xxsmall);
  letter-spacing: 0;
}

/* Paragraph/Par * — Geist Regular, looser leading */
.ui-type-par-l,
.ui-type-paragraph-large,
.ui-type-par-m,
.ui-type-paragraph-medium,
.ui-type-par-s,
.ui-type-paragraph-small,
.ui-type-par-xs,
.ui-type-paragraph-xsmall {
  font-weight: 400;
}

/* Paragraph/Par L — 22/160/-2 */
.ui-type-par-l,
.ui-type-paragraph-large {
  font-size: var(--ui-type-l);
  line-height: 1.6;
  letter-spacing: -0.02em;
}

/* Paragraph/Par M — 16/150/-1 */
.ui-type-par-m,
.ui-type-paragraph-medium {
  font-size: var(--ui-type-medium);
  line-height: 1.5;
  letter-spacing: -0.01em;
}

/* Paragraph/Par S — 14/150/-1 */
.ui-type-par-s,
.ui-type-paragraph-small {
  font-size: var(--ui-type-small);
  line-height: 1.5;
  letter-spacing: -0.01em;
}

/* Paragraph/Par XS — 12/150/0 */
.ui-type-par-xs,
.ui-type-paragraph-xsmall {
  font-size: var(--ui-type-xsmall);
  line-height: 1.5;
  letter-spacing: 0;
}

/* Strikethrough/St * — Geist Regular 120%, tracking tighter than Body */
.ui-type-st-xl,
.ui-type-st-l,
.ui-type-st-m,
.ui-type-st-s,
.ui-type-st-xs {
  font-weight: 400;
  line-height: 1.2;
  text-decoration: line-through;
}

.ui-type-st-xl {
  font-size: var(--ui-type-large);
  letter-spacing: -0.02em;
}

.ui-type-st-l {
  font-size: var(--ui-type-l);
  letter-spacing: -0.02em;
}

.ui-type-st-m {
  font-size: var(--ui-type-medium);
  letter-spacing: -0.01em;
}

.ui-type-st-s {
  font-size: var(--ui-type-small);
  letter-spacing: -0.01em;
}

.ui-type-st-xs {
  font-size: var(--ui-type-xsmall);
  letter-spacing: 0;
}

.ui-type-link-xl,
.ui-type-link-large,
.ui-type-link-l,
.ui-type-link-m,
.ui-type-link-medium,
.ui-type-link-s,
.ui-type-link-small,
.ui-type-link-xs,
.ui-type-link-xsmall {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.14em;
}
