$t: (
  display1: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-display1-font-weight),
    line-height: var(--llm-typography-display1-line-height),
    letter-spacing: var(--llm-typography-display1-letter-spacing),
    font-size: clampUnit(var(--llm-typography-display1-font-size-min), var(--llm-typography-display1-font-size-max), var(--llm-scale)),
  ),
  display2: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-display2-font-weight),
    line-height: var(--llm-typography-display2-line-height),
    letter-spacing: var(--llm-typography-display2-letter-spacing),
    font-size: clampUnit(var(--llm-typography-display2-font-size-min), var(--llm-typography-display2-font-size-max), var(--llm-scale)),
  ),
  display3: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-display3-font-weight),
    line-height: var(--llm-typography-display3-line-height),
    letter-spacing: var(--llm-typography-display3-letter-spacing),
    font-size: clampUnit(var(--llm-typography-display3-font-size-min), var(--llm-typography-display3-font-size-max), var(--llm-scale)),
  ),
  display4: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-display4-font-weight),
    line-height: var(--llm-typography-display4-line-height),
    letter-spacing: var(--llm-typography-display4-letter-spacing),
    font-size: clampUnit(var(--llm-typography-display4-font-size-min), var(--llm-typography-display4-font-size-max), var(--llm-scale)),
  ),
  display5: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-display5-font-weight),
    line-height: var(--llm-typography-display5-line-height),
    letter-spacing: var(--llm-typography-display5-letter-spacing),
    font-size: clampUnit(var(--llm-typography-display5-font-size-min), var(--llm-typography-display5-font-size-max), var(--llm-scale)),
  ),
  display6: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-display6-font-weight),
    line-height: var(--llm-typography-display6-line-height),
    letter-spacing: var(--llm-typography-display6-letter-spacing),
    font-size: clampUnit(var(--llm-typography-display6-font-size-min), var(--llm-typography-display6-font-size-max), var(--llm-scale)),
  ),
  heading1: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-heading1-font-weight),
    line-height: var(--llm-typography-heading1-line-height),
    letter-spacing: var(--llm-typography-heading1-letter-spacing),
    font-size: clampUnit(var(--llm-typography-heading1-font-size-min), var(--llm-typography-heading1-font-size-max), var(--llm-scale)),
  ),
  heading2: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-heading2-font-weight),
    line-height: var(--llm-typography-heading2-line-height),
    letter-spacing: var(--llm-typography-heading2-letter-spacing),
    font-size: clampUnit(var(--llm-typography-heading2-font-size-min), var(--llm-typography-heading2-font-size-max), var(--llm-scale)),
  ),
  body1: (font-family: var(--llm-font-secondary),
    font-weight: var(--llm-typography-body1-font-weight),
    line-height: var(--llm-typography-body1-line-height),
    letter-spacing: var(--llm-typography-body1-letter-spacing),
    font-size: clampUnit(var(--llm-typography-body1-font-size-min), var(--llm-typography-body1-font-size-max), var(--llm-scale)),
  ),
  body2: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-body2-font-weight),
    line-height: var(--llm-typography-body2-line-height),
    letter-spacing: var(--llm-typography-body2-letter-spacing),
    font-size: clampUnit(var(--llm-typography-body2-font-size-min), var(--llm-typography-body2-font-size-max), var(--llm-scale)),
  ),
  body3: (font-family: var(--llm-font-secondary),
    font-weight: var(--llm-typography-body3-font-weight),
    line-height: var(--llm-typography-body3-line-height),
    letter-spacing: var(--llm-typography-body3-letter-spacing),
    font-size: clampUnit(var(--llm-typography-body3-font-size-min), var(--llm-typography-body3-font-size-max), var(--llm-scale)),
  ),
  body4: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-body4-font-weight),
    line-height: var(--llm-typography-body4-line-height),
    letter-spacing: var(--llm-typography-body4-letter-spacing),
    font-size: clampUnit(var(--llm-typography-body4-font-size-min), var(--llm-typography-body4-font-size-max), var(--llm-scale)),
  ),
  body5: (font-family: var(--llm-font-secondary),
    font-weight: var(--llm-typography-body5-font-weight),
    line-height: var(--llm-typography-body5-line-height),
    letter-spacing: var(--llm-typography-body5-letter-spacing),
    font-size: clampUnit(var(--llm-typography-body5-font-size-min), var(--llm-typography-body5-font-size-max), var(--llm-scale)),
  ),
  label1: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-label1-font-weight),
    line-height: var(--llm-typography-label1-line-height),
    letter-spacing: var(--llm-typography-label1-letter-spacing),
    font-size: clampUnit(var(--llm-typography-label1-font-size-min), var(--llm-typography-label1-font-size-max), var(--llm-scale)),
  ),
  cta1: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-cta1-font-weight),
    line-height: var(--llm-typography-cta1-line-height),
    letter-spacing: var(--llm-typography-cta1-letter-spacing),
    font-size: clampUnit(var(--llm-typography-cta1-font-size-min), var(--llm-typography-cta1-font-size-max), var(--llm-scale)),
    text-transform: uppercase,
  ),
  cta2: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-cta2-font-weight),
    line-height: var(--llm-typography-cta2-line-height),
    letter-spacing: var(--llm-typography-cta2-letter-spacing),
    font-size: clampUnit(var(--llm-typography-cta2-font-size-min), var(--llm-typography-cta2-font-size-max), var(--llm-scale)),
  ),
  cta3: (font-family: var(--llm-font-primary),
    font-weight: var(--llm-typography-cta3-font-weight),
    line-height: var(--llm-typography-cta3-line-height),
    letter-spacing: var(--llm-typography-cta3-letter-spacing),
    font-size: clampUnit(var(--llm-typography-cta3-font-size-min), var(--llm-typography-cta3-font-size-max), var(--llm-scale)),
    font-style: normal,
  ),
  cta4: (font-family: var(--llm-font-secondary),
    font-weight: var(--llm-typography-cta4-font-weight),
    line-height: var(--llm-typography-cta4-line-height),
    letter-spacing: var(--llm-typography-cta4-letter-spacing),
    font-size: clampUnit(var(--llm-typography-cta4-font-size-min), var(--llm-typography-cta4-font-size-max), var(--llm-scale)),
    font-style: normal,
  ),
);

@mixin text($style) {
  line-height: 1;

  @each $key, $attr in map-get($t, #{$style}) {
    #{$key}: #{$attr};
  }
}

@mixin typography() {
  @each $key, $attr in $t {
    .llm .-llm-t-#{$key} {
      @include text(#{$key});
    }
  }
}
