I don't know how you'd have a sparkly background, but I do know how to change the background of a link to a colour. Try this:
(set: $link to 'link')
$link
(mouseover-replace: $link)[(background: red)[(link: 'link')[I am a link.]]]
There's probably a nicer way to do it, but basically, set $link (or whatever you want to call the variable) to what you want to call the link. Then put in the same name when there actually is a name. Example:
(set: $link to 'Eat')
$link
(mouseover-replace: $link)[(background: red)[(link: 'Eat')[You eat the food.]]]
However, this would also make the text inside the link have the red background colour. If you don't want the text to have the background (which you probably don't), use this:
(set: $link to 'link')
$link
(mouseover-replace: $link)[(background: red)[(link: 'link')[(set: $text to 'I am text without a background :)')]]]
(live: 0.01s)[(if: $text is 0)[](else:)[$text]]
What this does is tells it what the text is. However, before you click the link, the variable $text will be 0, so this only displays the variable if there's something to display. Otherwise, you'd just the number 0 sitting at the bottom of your passage. Also, the text wouldn't just appear, because once a passage has loaded it doesn't keep reloading in case there's been a change, so the (live:) macro keeps reloading it every 0.0001 seconds, so it would seem instant to the player.
Again, there's probably a nicer way to do it, because this is the ugliest bit of code I've seen in my life, but it should work. Also, as I said, I don't know how you'd do a sparkly background, so sorry that this isn't really a perfect answer.