Because it's fun, and it's a good way to practice your skills and gain new ones. They may not have a practical application, but if code is your hobby, it doesn't really matter. I love seeing the crazy CSS stuff people come up with. CSS isn't just meant for layouts, although obviously that's one of the things it does, it does so much more than that. CSS makes applications pleasant to interact with, if done correctly. You can have the smoothest running application ever, but if your UI/UX is not pleasant to interact with, people aren't going to want to interact with it.