@fpendovskiThe main difference between the two is specificity. :where() always has 0 specificity meaning that it could be easily overridden by another CSS rule, while :is() takes the specificity of its most specific selector.
This makes it easier to make a better plan for reusing CSS rules and reducing the amount of CSS needed to be written to achieve the wanted design.
A good use case for the :where() selector this would be creating a base styling for your application (buttons, lists, anchor tags, etc.) that could easily be overridden for specific cases.