We don't want to set a changing font-size in the root (html selector) because that affects what 1rem is downstream. My understanding is that the root should have 1rem = 16px unless the user modifies their browser settings. We should hold this constant and modify font-size dynamically for <p>, <h1>, etc. because they won't all necessarily scale together linearly. This should make the math simpler.
Subsequent diffs will fix things for each element.