Qué resuelve cada selector funcional
Usa cada uno con intención: agrupar, resetear especificidad o excluir.
:is() simplifica listas repetidas. En lugar de escribir header a, main a, footer a, puedes escribir :is(header, main, footer) a.
:where() tiene especificidad 0, ideal para estilos base que no deben competir con clases de componentes.
:not() evita ramas duplicadas cuando quieres aplicar una regla general excepto unos pocos casos.
:is(): agrupa sin repetir prefijos.:where(): base fácil de sobrescribir.:not(): exclusión explícita y mantenible.