Luna Nia Muriithi, a 26-year-old psychology professor and therapist, has been secretly suffering from bulimia for three years after her ex-boyfriend Calvin destroyed her self-image with relentless verbal abuse. She hides her eating disorder behind oversized clothes and a mask while living a double life as "Dark Angel," a viral TikTok dancer with glowing tattoos who performs in outfits she'd never wear in public.
When her best friend Rielle confesses she's been trapped in an abusive relationship with Caspian, a mob gang leader, Luna exacts brutal vigilante justice—assaulting him with a dildo, whipping him, and chasing him down with her car. This attracts the attention of Luna's parents, who hire Alaric Amani De Luca as her bodyguard. Alaric is Luna's former university professor who disappeared four years ago after his parents were attacked, leading him and his brother Atticus to wage a bloody revenge campaign across the Italian mafia underworld.
Alaric has been in love with Luna for years, and Luna begins testing whether he's disgusted by her body or attracted to her—stripping naked in front of him, pleasuring herself while moaning his name (which he hears through the door), and asking him to massage her bare back. Meanwhile, Luna, Rielle, and their surgeon friend Darcy continue their vigilante work, rescuing abuse victims and punishing perpetrators when the law fails.
As sexual tension escalates between Luna and Alaric, her eating disorder spirals out of control. Her body has been conditioned to reject food automatically after three years of purging. Despite Alaric's careful monitoring and her friends' growing concern, Luna collapses from severe malnutrition and refeeding syndrome. She wakes up in the hospital surrounded by her devastated family and is finally forced to confess her three-year battle with bulimia.
The story explores themes of trauma recovery, reclaiming sexual agency after abuse, the complexity of vigilante justice, found family, and the painful journey toward healing when you're the person everyone expects to have all the answers.