:root : is a global pseudo class, it has the highest specificity and use cases, you store vars you'd like to reuse.
:html : has less specificity compare to root, it's also use for settiing default stylings etc, the most uimportant use cases i think it is useful for is font size to allow the usage of rem and em