Provide API to lower non-functional psuedoclasses
It may be simpler, though less featureful1, to implement interactive psuedoclasses as if they were psuedoelements. That way when the style tree has been interacted, we can retrieve the altered styles rather than reapply the full stylesheet.
Many other psuedoclasses are equivalent to other selectors, especially if the caller doesn't implement certain interactions.
As such there should be a StyleSheet decorator that can be configure to perform these tasks.