fluid-type.css
1:root {
2  --font-width-min: 320;
3  --font-width-max: 1500;
4  --font-size-min: 17;
5  --font-size-max: 20;
6  --font-ratio-min: 1.2;
7  --font-ratio-max: 1.33;
8}
9/* equal to something like clamp(1.125rem, 1.0815rem + 0.2174vi, 1.25rem); */
10:where(h1,h2,h3,h4,h5,h6) {
11  --fluid-min: calc(
12    var(--font-size-min) * pow(var(--font-ratio-min), var(--font-level, 0))
13  );
14  --fluid-max: calc(
15    var(--font-size-max) * pow(var(--font-ratio-max), var(--font-level, 0))
16  );
17  --fluid-preferred: calc(
18    (var(--fluid-max) - var(--fluid-min)) /
19      (var(--font-width-max) - var(--font-width-min))
20  );
21  --fluid-type: clamp(
22    (var(--fluid-min) / 16) * 1rem,
23    ((var(--fluid-min) / 16) * 1rem) -
24      (((var(--fluid-preferred) * var(--font-width-min)) / 16) * 1rem) +
25      (var(--fluid-preferred) * var(--variable-unit, 100vi)),
26    (var(--fluid-max) / 16) * 1rem
27  );
28  font-size: var(--fluid-type);
29}

Math courtesy of "CSS-only fluid modular type scales" | Utopia.fyi.

pow()
12012015.4118