Place: A small seaside town on the Costa Brava, Spain
Time: Towards the end of the summer, in the early 1990s
Act I: Gaspar
Gaspar, a young Mexican poet, works as a night watchman at the Stella Maris campsite. His boss, Remo Moran, a successful Chilean businessman, orders him to evict two female vagrants, Caridad and Carmen, who have been staying there for free.
Gaspar is reluctant, particularly as he has grown attached to Caridad, but he obeys Remo in order to keep his job. The pair, especially Carmen, a former opera singer, initially resist their eviction but then decide to leave.
As time passes Gaspar continues to think about Caridad. He goes to look for her and finds Carmen, whom he follows through a dreamlike fiesta until he spots her arguing with a presumed lover - Rookie. He then notices Caridad in the crowd, and follows her to the Palacio Benvingut, a dilapidated mansion on the outskirts of town.
Inside the mansion, he discovers a secret ice rink, where a beautiful young figure skater, Nuria, is skating, watched by an older man, Enric. Gaspar sees Caridad in the shadows, holding a knife.
Act II: Remo
A jump back in time, to follow events from Remo's point of view.
Remo is tasked by Enric, the town's head of social services, with removing all vagrants from his campsite. He ignores the order and devotes his energy instead to Nuria, the skater, who has recently become his girlfriend.
The initial passion of Remo and Nuria's relationship has been marred by the thwarting of her career prospects: her funding has been cut and she has nowhere to train.
The couple takes a romantic swim but run into Enric on the beach. Remo sees that Enric is jealous of his relationship with Nuria and decides to fulfil his order about the vagrants in order to dispel Enric's anger. Carmen and Caridad are evicted from the campsite.
Nuria begins to spend less and less time with Remo. Unable to find her, he turns to drink. In a seafront bar one evening, he meets Carmen and Rookie. Carmen entertains the patrons with her singing and hints that she has information with which she might blackmail Enric.
Gaspar arrives at Remo's room and tells him he's found Nuria, at the Palacio Benvingut. Remo rushes there, discovers the skating rink, and makes a gruesome discovery: the body of Carmen, stabbed to death on the ice.
Act III: Enric
A jump back to the beginning again, to see things from Enric's perspective.
With the local elections looming, Pilar, the town's socialist mayor, tasks Enric with ridding the area of vagrants.
Enric is obsessed with Nuria. After finding out about the loss of her funding, he has embezzled a large amount of public money and built her a secret ice rink in the Palacio Benvingut. He hopes that this grand gesture will make her fall in love with him. He goes with her to the ice rink every afternoon and watches her train. He dreams that he himself can figure skate.
When Enric runs into Remo and Nuria together on the beach, his hopes of romance are dashed. Carmen and Caridad are evicted from the campsite.
Nuria falls over while training. She senses Enric's jealousy and assures him her relationship with Remo is just about sex. Enric goes out onto the ice and attempts to dance for her but is startled by a noise in the shadows.
Carmen visits Enric in his office. She and Caridad stumbled upon the secret ice rink while searching for a new place to stay and Carmen now hopes to blackmail Enric in return for her silence. Enric gives Carmen some money and she goes, warning Enric she wants more.
At a pre-election disco Pilar welcomes the guests. Nuria accidentally reveals the existence of the ice rink to Pilar. Enric attempts to maintain his composure by dancing with Nuria but is obliged to admit that he has embezzled funds when Pilar confronts him. Remo arrives with the police, who arrest Enric for Carmen's murder. Enric protests his innocence as he is escorted away.
Coda
Gaspar finds Caridad on the ice, clutching a bloody knife. Caridad swears she didn't murder Carmen. The pair make plans to flee to Mexico.
Nuria visits Enric in prison. He has been convicted of embezzlement and sentenced to two years. Nuria promises to wait for him.
Remo meets Rookie on the beach. The identity of the murderer is revealed.