Is "heartfelt" reserved for sad moments, or can it be used for happy ones?

"Heartfelt" can be used to express positive feelings:

Her joy was truly heartfelt!

You have our heartfelt thanks.

But it is most commonly associated with sorrow or grief. When in doubt, choose a different word.