A brief explanation of the difference between CSS pseudo classes and pseudo elements. Pseudo classes style elements based on their state (e.g., :checked, :disabled) and always refer to existing DOM elements. Pseudo elements, on the other hand, style things that aren't actual elements — such as parts of elements (::first-letter, ::selection) or generated content (::before, ::after).