I'm not sure if this is the actual cause of the problem, but you're putting the STYLE tag in the wrong place. It should be between the tags <head></head>:
HTML Code:
<html>
<head>
<title>title</title>
<style>...</style>
whatever else you have here, like scripts
</head>
<body>
....
</body>
</html>
-----
EDIT 1: Also, I don't think you can have more than one tag <style> with the same type in one page. If they have the same type, as it is in your case, you can put everything in one tag.
EDIT 2: Another thing that is actually the cause of the problem - You're including the image through the tag <img> and then using backgrounds to change it. Instead, if you don't want to use JavaScript, just use backgrounds and NOT the tag <img>. Images that you include using <img> don't change with hover. And I don't think there's another way of achieving what you want by using just CSS if not the way I explained.
Bookmarks