body {
  background: var(--site-bg-outer);
  color: var(--color-text);
  font-family: var(--font-family-body);
  font-size: var(--text-m);
  line-height: var(--line-height-body);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--color-heading);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-heading);
  line-height: var(--line-height-heading-tight);
  text-wrap: balance;
}

h1 {
  font-size: var(--heading-1);
  line-height: var(--line-height-heading-tight);
}

h2 {
  font-size: var(--heading-2);
  line-height: var(--line-height-heading-tight);
}

h3 {
  font-size: var(--heading-3);
  line-height: var(--line-height-heading);
}

h4 {
  font-size: var(--heading-4);
  line-height: var(--line-height-heading);
}

h5 {
  font-size: var(--heading-5);
  line-height: var(--line-height-heading);
}

h6 {
  font-size: var(--heading-6);
  line-height: var(--line-height-heading);
}

.text-2xl,
.text-xl {
  line-height: var(--line-height-body-tight);
}

a {
  color: var(--color-link);
  transition: color var(--transition-standard);
}

a:hover,
a:focus-visible {
  color: var(--color-link-hover);
}

::selection {
  background: var(--color-selection-bg);
  color: var(--color-selection-text);
}

a::selection {
  background: var(--color-selection-bg-link);
}

.h1 {
  font-size: var(--heading-1);
}

.h2 {
  font-size: var(--heading-2);
}

.h3 {
  font-size: var(--heading-3);
}

.h4 {
  font-size: var(--heading-4);
}

.h5 {
  font-size: var(--heading-5);
}

.h6 {
  font-size: var(--heading-6);
}

.text-2xs {
  font-size: var(--text-2xs);
}

.text-xs {
  font-size: var(--text-xs);
}

.text-s {
  font-size: var(--text-s);
}

.text-m {
  font-size: var(--text-m);
}

.text-l {
  font-size: var(--text-l);
}

.text-xl {
  font-size: var(--text-xl);
}

.text-2xl {
  font-size: var(--text-2xl);
}

.has-text-2xs-font-size {
  font-size: var(--text-2xs) !important;
}

.has-text-xs-font-size {
  font-size: var(--text-xs) !important;
}

.has-text-s-font-size {
  font-size: var(--text-s) !important;
}

.has-text-m-font-size {
  font-size: var(--text-m) !important;
}

.has-text-l-font-size {
  font-size: var(--text-l) !important;
}

.has-text-xl-font-size {
  font-size: var(--text-xl) !important;
  line-height: var(--line-height-body-tight);
}

.has-text-2xl-font-size {
  font-size: var(--text-2xl) !important;
  line-height: var(--line-height-body-tight);
}

.has-primary-500-color {
  color: var(--color-primary-500) !important;
}

.has-primary-700-color {
  color: var(--color-primary-700) !important;
}

.has-text-color {
  color: var(--color-text) !important;
}

.has-text-muted-color {
  color: var(--color-text-muted) !important;
}

.has-heading-color {
  color: var(--color-heading) !important;
}

.has-surface-color {
  color: var(--color-surface) !important;
}

.has-surface-alt-color {
  color: var(--color-surface-alt) !important;
}

.has-neutral-100-color {
  color: var(--color-neutral-100) !important;
}

.has-primary-soft-background-color {
  background-color: var(--color-primary-100) !important;
}

.has-primary-500-background-color {
  background-color: var(--color-primary-500) !important;
}

.has-primary-700-background-color {
  background-color: var(--color-primary-700) !important;
}

.has-surface-background-color {
  background-color: var(--color-surface) !important;
}

.has-surface-alt-background-color {
  background-color: var(--color-surface-alt) !important;
}

.has-neutral-100-background-color {
  background-color: var(--color-neutral-100) !important;
}
