Custom List Counters
CSS counters let you create fully custom numbering schemes without JavaScript. You define a counter with counter-reset on a parent element, increment it with counter-increment on each item, and display it with content: counter(name) in a ::before pseudo-element.
Nested Counters
For nested numbering like "1.1, 1.2, 2.1" you use multiple counters simultaneously. Each level resets its own counter when a new parent item starts. The counters() function (plural) concatenates all ancestor counter values with a separator you specify, making "1.2.3" style numbering straightforward to implement.