I spent years trying to make CSS states predictable