Narrow viewport
320 px · base 16
Every text size is a clamp() between the narrowest and widest viewport. Headings tighten on small screens, breathe on large ones — no breakpoints, no JS. Pair a sans with a serif italic for emphasis, and you're done.
Two inputs, two outputs. Change --min-scale from 1.125 to 1.2 and the entire system retunes. No find-and-replace, no migration, no audit.
A complete, responsive type scale wired into your app — headings, body, captions — exported with the rest of the system.