Bent/Curved Spine and Trouble Swimming

Hello all! About a week or two ago I noticed my betta fish somehow lost most of his fin length and his back was curved pretty much overnight. I have nothing sharp in the tank and use a shrimp filter with a sponge on the output to lower the flow so I don't know how he could have injured himself. He still has a great appetite and likes to play with me when I come up to the tank, but otherwise stays at the top of the tank almost all day since he struggles to swim so much.

Is there anything I can do or does anyone have an idea of what's going on with him? :(

Tank info in comments.