@Edent
I think styling links based on their destination is seldom useful and have some accessibility challenges.

The external link example is missing `::after` but it would add the name of the Unicode character, "Northeast arrow with variation selector 16," to those links, pretty annoying for a screen reader user.

All major browsers now support alternative text in `content` but that's new so a fallback is called for.

a[href]:not([href^=https://shkspr.mobi" I])::after {
   content: "(external)";
   content: "↗️" / "(external)";
}

https://caniuse.com/mdn-css_properties_content_alt_text