Frost thickens at the corners of her eyes. The mirror to my left splits into two, a half-beat out of sync. The upper ledge hushes because multiplying bodies impresses people who don’t watch feet. Dust gives weight. One set grinds granules. The others drift.
I drag a heat thread at ankle height, thin enough to ripple air without showing off. The fakes wobble. The real stance pins. She clocks the tell a beat late. I go where the real feet live.
We shoulder in. Bone answers bone with a clean, unforgiving thud. She angles a palm strike under my ribs and clips the wrap. Breath stutters; I take the hit and return a shoulder into her collarbone. We bounce apart with nothing pretty to show for it.
She slides a slick under my back foot and tries to pry my stance open. I step through instead of back and heel-punt her blade wrist. The knife wobbles. She saves it with a cold pulse through the grip that lights white pain across my palm. My fingers keep the hold because that is what they are for.
We reset at eight paces. Sweat runs down my spine. One bicep complains. The rib she clipped will bruise. Good. That means I showed up.
She drops a new problem. Ice seeds scatter underfoot—lentil small, invisible until you lunge and your toe rolls. I trim my steps, keep my center low. She favors her right when she forgets to perform. I put that in a pocket.
She needs noise. “You’re tidy,” she says, breath thin. “Adorable.”
“You’re leaking,” I answer, eyes on her off-elbow. “Embarrassing.”
She jerks that elbow and telegraphs the next cut. I ride it, deflect, and rap her knuckles. Frost splits at the ring. The ring is wrong in a lab and wrong here. She flinches and covers it with a snarl.
She grows three more mirrors and lays a fan of glass toward my ankles. I ride the left edge. One bites high on my forearm and opens a line that will look dramatic later and is mostly annoying now. It meets the elbow leak and makes a mess. I leave it. The blade stays clean.
We circle. The ledge goes animal-quiet. Even Ash shuts up. I count once because my pulse tried to sprint without permission. Two short. One long. Heat sits low where I can use it, not in my throat where it will wreck my decisions.
She moves first—fast, ugly—spear for my shoulder, secondary cut lined up to sting my thigh if I get lazy. I am not lazy. I knock the spear, step off-line, and hand her back her cut with interest. The edge kisses along her upper arm deep enough to ask if she wants the rest. She does.
She throws a frost wall to buy space and laces it with hairline cracks that will break under my weight. That trick is not new. I refuse to test it. I use the visual as cover, step right behind it, drag Pyrelight’s spine through dust, and lift heat just enoughto shear shimmer. The illusion to the left jerks. The real body braces. I commit there.
We close tighter. Her blade kisses my braid. Hair will survive. Her knee flicks for my thigh. I catch with mine and pay her back lower. She sucks air between her teeth, tries to hide it behind a laugh that lands brittle.
She aims past me, talking to the rim. “He wrote a winter piece,” she says, eyes cutting to where Caelum stands still as a promise. “He wrote it for me.”
I do not look. “He wrote it because he can breathe again.”
Something mean and true skates across her face. She checks the rim for rescue. The crowd does not move. I take the half-second gift, step into her guard, hook her wrist with mine, set my heel against her back foot. Her blade leaves her palm for a quarter breath. She snatches it back with a flash of ice that burns my knuckles. I clip her temple with Pyrelight’s butt as exchange. The sound is flat and ugly. Her pupils blow and reset.
We break again. Dust sticks to sweat along my arms. Every nerve in my ribs files a complaint for later. I can hold two truths at once: pain gets a note, and I still win the next exchange.
She shifts her weight wrong and fixes it for pride, not balance. The rim noise dips. She is out of script.
She drops the mask. “You took him,” she screams, voice cracking. “You took Caelum from me.”
There it is. The rot under the gloss. She brought a grudge instead of a plan.
Anger surges up my throat. It wants to light the arena like a bonfire. I let it reach my hands, not my eyes. It fuels choices. It does not make them. Two short. One long. Fire stays where I put it.
“Bring your best,” I say low enough that the rim does not own the line. “Words do not leave marks.”
She flings a glass sheet with a clean soprano. I turn Pyrelight’s flat and run heat along the spine until the shards lose their teeth a breath before impact. A few bite anyway. One kisses a rib where her palm strike already made a claim. Pain writes itself down. I will pay the bill later.
I decide this ends now.
Two steps draw her toward center. One back gives her the taste of chase she thinks she loves. She takes it. I raise temperature by degrees, no flare, nothing that starves the oxygen into panic. Heat pools under my sternum, threads down my arms, and sits in my hands. The blade answers without theatrics. Cassandra’s breath catches and recalibrates because she is trained enough to notice air shifting.
I lift my hands to shoulder height. A fire ring rises around her at arm’s length, narrow and clean. It does not touch her skin. It does not need to. It interrupts wind. It steals the easy tradebetween in and out. Every time she turns she meets the line and cannot cross without paying flesh I am not asking for.
Sweat beads at her hairline. Frost skitters along her fingers and dies from the heat banked at the circle. She tries to spike cold under the ring. I move the gap with her, a fraction at a time, keeping the pressure steady. This is controlled deprivation, not a spectacle. My breath stays even. Two short. One long. The ring hums at the height of my chest because that is where I hold it.
Her eyes cut to Caelum again like a habit she cannot kill. No one steps in. Old rules keep their teeth. She looks back and finally understands I am not giving her the grand gesture she can rewrite later.
I drop the ring.