Styles from the pseudo-element using the same variable --c that we’re also using as the value for the color property on the parent are applied not just on the pseudo-element, but also on the parent. This should not happen (and it doesn’t in Chrome and Firefox).

Also, changing the --c variable when the radio input is checked doesn’t change the styles depending on it on the pseudo-element (where it should), though it does on the parent (where it shouldn’t):

input:checked + label { --c: #e83 }

Recording of what happens in Edge (above) vs. what happens in Chrome (below):

Suggesting a root cause

Help make the web just work! Identifying a root cause helps us resolve issues more quickly. If you have a theory for the root cause or have identified and reduced a reproducible bug, include a description and any relevant code or URLs in your comment and mark it as a root cause suggestion. Our engineers will take a look and update the bug with the results of our investigation.