:root {
  font-size: 1rem;

  --lk-scalefactor: 1.618;
  --lk-wholestep: var(--lk-scalefactor);
  --lk-halfstep: calc(round(pow(var(--lk-scalefactor), 0.5), 0.001));
  --lk-quarterstep: round(pow(var(--lk-scalefactor), 0.25), 0.001);
  --lk-eighthstep: round(pow(var(--lk-scalefactor), 0.125), 0.001);

  /* spacing / sizing */
  --lk-size-md: 1rem;
  --lk-size-sm: calc(1rem / var(--lk-scalefactor));
  --lk-size-xs: calc(1rem * round(pow(var(--lk-scalefactor), -1), 0.001));
  --lk-size-2xs: calc(1rem * round(pow(var(--lk-scalefactor), -2), 0.001));
  --lk-size-3xs: calc(1rem * round(pow(var(--lk-scalefactor), -3), 0.001));
  --lk-size-lg: calc(1rem * var(--lk-scalefactor));
  --lk-size-xl: calc(1rem * round(pow(var(--lk-scalefactor), 2), 0.001));
  --lk-size-2xl: calc(1rem * round(pow(var(--lk-scalefactor), 3), 0.001));
  --lk-size-3xl: calc(1rem * round(pow(var(--lk-scalefactor), 4), 0.001));
  --lk-size-4xl: calc(1rem * round(pow(var(--lk-scalefactor), 5), 0.001));

  /* typography */
  --display1-font-size: calc(1rem * pow(var(--lk-wholestep), 3));
  --display2-font-size: calc(1rem * pow(var(--lk-wholestep), 2));
  --title1-font-size: calc(1rem * var(--lk-wholestep) * var(--lk-halfstep));
  --title2-font-size: calc(1rem * var(--lk-wholestep));
  --title3-font-size: calc(1rem * var(--lk-halfstep));
  --heading-font-size: calc(1rem * var(--lk-quarterstep));
  --subheading-font-size: calc(1rem / var(--lk-quarterstep));
  --body-font-size: 1rem;
  --callout-font-size: calc(1rem / var(--lk-eighthstep));
  --label-font-size: calc((1rem / var(--lk-quarterstep)) / var(--lk-eighthstep));
  --caption-font-size: calc(1rem / var(--lk-halfstep));
  --capline-font-size: calc(1rem / var(--lk-halfstep));
  --display1-line-height: var(--lk-quarterstep);
  --display2-line-height: var(--lk-halfstep);
  --title1-line-height: var(--lk-halfstep);
  --title2-line-height: var(--lk-halfstep);
  --title3-line-height: var(--lk-halfstep);
  --heading-line-height: var(--lk-halfstep);
  --subheading-line-height: var(--lk-halfstep);
  --body-line-height: var(--lk-wholestep);
  --callout-line-height: var(--lk-halfstep);
  --label-line-height: var(--lk-halfstep);
  --caption-line-height: var(--lk-halfstep);
  --capline-line-height: var(--lk-halfstep);
}
