Kai stared at Lina’s message until the words felt heavier than they should have.
Can we talk after class?
His thumb hovered over the keyboard without touching it. Around him, Professor Narin was still talking about Shadow Cores, trauma responses, and government classifications, but the lecture had faded into a low, distant noise. Kai only saw the message. Five words on a cracked phone screen, small enough to fit on one line and heavy enough to pull his whole day out of shape.
Another message appeared before he could answer.
Please. Not with everyone around.
He knew he should ignore it. A smarter person would have turned the phone face down and made her explain herself later. A prouder person would have made her wait, especially after the way she had stepped out of Riven’s car that morning with Kai’s bracelet shining on her wrist.
Kai was not smart or proud when it came to Lina.
He typed one word.
Where?
The reply came almost at once.
Old parking building. 7 PM.
Kai frowned at the screen.
The old parking building stood behind the east dorms, half-forgotten at the edge of campus where the clean paths ended and the service roads began. Part of it had been closed the year before after a minor Shadow Beast incident nearby. Nobody had died, at least not according to the official notice, but the university had put up warning tape and told students not to go there after dark. During the day, people still parked on the lower floors when the main lots filled up. At night, most avoided it without needing to be told.
Kai typed back.
Why there?
No answer came.
Class ended twenty minutes later. Kai packed slowly, waiting for Lina to walk through the door or send another message, waiting for some ordinary explanation to appear and make the morning less ugly. Maybe she had been pressured. Maybe Riven had offered her a ride and she had not known how to refuse. Maybe the bracelet meant nothing.
He hated himself for making excuses before she had even asked for them.
When he stepped into the hallway, Riven was waiting near the lockers.
Alone this time.
Kai kept walking.
Riven moved into his path with the lazy confidence of someone who had never been forced to step aside for anyone. “Going somewhere?”
Kai looked at him. “Move.”
Riven did not. He stood there with one shoulder against the lockers, clean shoes planted on the polished floor, his face arranged into something almost gentle. “You know, I almost feel bad for you.”
Kai said nothing.
“She didn’t want to hurt you,” Riven said. “That’s what she told me.”
Kai’s jaw tightened.
“She said you’re kind. Reliable. Hardworking.” Riven tilted his head, studying him with a small smile. “That’s what people say when they don’t want you.”
Heat crawled up Kai’s neck, sharp and humiliating. “Move.”
Riven stepped closer. Not enough to start a fight, just enough to make it clear he could. “You should thank me. I saved her from a very small life.”
For one second, Kai’s hand moved.
Not far. Just enough.
Riven saw it, and the smile finally left his face.
“Careful,” he said softly. “People like you don’t get second chances.”
Kai held his stare for a long moment. There were things he wanted to say, ugly things that had been sitting under his tongue all morning, but he knew how this would end. Riven would smile. Someone would record. The poor scholarship kid would look angry and unstable, and Riven Holt would walk away clean.
So Kai stepped around him.
Behind him, Riven said, “Seven o’clock, right?”
Kai stopped.
The hallway seemed to cool around him. Students moved past on both sides, laughing, talking, opening lockers, but the sounds came from far away.
Riven laughed under his breath. “Don’t look so shocked. She tells me things.”
Kai turned back. “What did you do?”
“Me?” Riven touched his chest. “Nothing.”
“What did you do?”
For the first time, something sharp broke through Riven’s perfect expression. Not anger, not exactly. Something closer to fear wearing anger’s face.
“I reminded her that not everyone can protect her.”
Kai stared at him.
There was something beneath those words, something Riven had not meant to show. Fear, maybe. Or guilt. Then it disappeared behind that clean smile again.
“Some people are born under the light, Kai.” Riven’s eyes moved over his old shoes, his faded backpack, the torn edge of his sleeve. “Some people are just shadows.”
Kai did not remember leaving the hallway. He only remembered his own breathing, hard and uneven, too loud inside his chest.
For the rest of the afternoon, time moved strangely. He went to his next class and heard almost nothing. Words passed over him without settling. Assignments. Attendance. Group project. Deadline. People laughed around him. Chairs scraped against the floor. Someone behind him whispered about dinner plans. Someone else complained that the Beast Alert app had glitched again because it had sent a yellow warning near the river.
Kai kept looking at his phone.
No new messages from Lina.
Not one.
By sunset, clouds had gathered over the city. Veyra City looked different under a dark sky. The glass towers lost their shine, alleys stretched longer between buildings, and neon signs buzzed awake one by one like tired insects. The air felt wet and charged, the kind of air that came before a storm or something worse.
Kai reached the entrance of the old parking building at 6:58 PM.
He should not have come. Every sensible part of him knew that, but he had never been good at walking away from the people who could hurt him most. He stood outside for a few seconds, looking up at the concrete floors stacked above him, then stepped inside.
The place smelled of dust, oil, and old rainwater. His footsteps echoed between the pillars, each sound coming back thinner than it should have. Most of the ceiling lights were dead. The few that still worked flickered weakly, throwing pale strips of light across the floor. In one corner, old warning tape hung loose and faded.
RESTRICTED AREA.
DO NOT ENTER AFTER DARK.
Someone had torn half of it down.
Kai looked at the sign for a few seconds, then walked past it.
“Lina?” he called.
No answer.
He checked his phone.
No new messages.
A sound came from the second floor.
Not a voice.
A scrape.
Kai looked up. “Lina?”
The lights flickered once. Then again. Then the whole building went dark.
Kai stood still.
Somewhere above him, something breathed.
Slow.
Wet.
Hungry.
His first thought was stupid.
Maybe it was a stray dog.
His second thought was worse.
Maybe it was not.
He reached for his phone and turned on the flashlight. The white beam cut through the dark, shaking slightly in his hand. The parking building looked different now. During the day, it was only old concrete and empty spaces. At night, every pillar looked like it was hiding something, and every corner seemed deeper than it should have been.
Kai took one step back.
His phone buzzed.
He almost dropped it.
A message appeared on the screen.
Lina:
I’m sorry.
Kai stared at the words until his fingers went cold.
Another message came.
I didn’t know it would go this far.
“Kai.”
The voice came from above, small and shaking.
Lina.
Kai moved before he could think. He ran toward the ramp, his shoes slapping against the damp concrete. “Lina!”
“Don’t come up!” she shouted.
That stopped him.
Her voice broke on the last word.
Kai stood halfway up the ramp, breathing hard. “What’s going on?”
No answer.
Then another voice spoke from the darkness above.
Not Lina.
“Still came anyway.”
Riven.
Kai’s grip tightened around his phone. He climbed the rest of the ramp, slower now, and the second floor opened in front of him, wide and dark except for the weak cone of light shaking from his hand.
Several cars had been abandoned there under layers of dust. Some had broken windows. One near the wall had its hood bent upward, as if something had tried to peel it open.
Lina stood near the far side of the floor.
Her hands were shaking.
Riven stood beside her, but he was not smiling now.
That was the first thing Kai noticed.
The second was the blood on Riven’s sleeve.
Not much.
Just enough.
Kai stopped. “What happened?”
Lina looked at him like she wanted him to hate her. Maybe that would have been easier than forgiveness. “Kai, I’m sorry.”
Riven’s jaw tightened. “I told you not to call him.”
“You said you just wanted to scare him,” Lina said.
“I said a lot of things.”
Kai looked between them. “What did you do?”
Riven wiped at his sleeve with his other hand, but the blood only smeared. “There was supposed to be a small residue pocket here. That’s all.”
Kai did not understand. “What?”
“A weak one,” Riven snapped. “Barely active. My father’s people use places like this for private tests.”
Lina shook her head. “You said no one would get hurt.”
“I said it was controlled.”
The air seemed to leave Kai’s chest.
Private tests.
Residue pocket.
Controlled.
Professor Narin’s words from class came back to him, no longer clean and harmless on a classroom screen.
Do not touch black residue.
Shadow Beast energy.
Contact. Collapse. Return.
Kai lifted the phone higher. The flashlight moved across the floor, catching dust, concrete, old tire marks, and something dark near the far wall.
At first, he thought the stains were oil.
Then one of them moved.
A black patch spread across the concrete, thin and shiny, like a shadow that had melted into liquid. It pulsed once.
Kai took a step back. “What is that?”
Riven did not answer.
Lina did, barely above a whisper. “Shadow residue.”
The black patch pulsed again, and this time the floor around it cracked.
Somewhere in the dark, the wet breathing grew louder.
Kai looked at Riven. “You brought her here?”
Riven’s face twisted. “She wanted to talk to you. I only told her this place would be private.”
“You knew.”
“I thought it was safe.”
“You knew.”
Riven stepped forward, his fear turning ugly because there was nowhere else for it to go. “Don’t act like you understand anything. You think the world is fair because you follow rules and show up late with cheap bread in your mouth? My family funds half the research that keeps people alive.”
Kai stared at him.
Riven was talking too fast now, like the words were the only thing holding him together.
“You think the Association finds safe zones by praying?” Riven said. His voice had gone thin at the edges. “You think Cores just appear because people suffer beautifully? Residue has to be tested. Exposure has to be measured. Someone has to do the ugly work.”
“You used this place to make Awakened?”
Riven went quiet.
That silence answered him.
Lina covered her mouth.
Kai felt sick. “You were going to use me.”
“No,” Lina said quickly. “Kai, I didn’t know.”
Riven looked away.
Kai saw it.
That tiny movement.
That small betrayal inside the bigger one.
His voice dropped. “You were going to use me.”
Riven’s expression hardened. “You were never in real danger.”
The floor split open behind him.
A sound came out of the c***k.
Not a roar yet.
A breath.
Deep.
Wet.
Waiting.
Everyone froze.
The black residue pulled itself upward from the floor. It gathered like smoke at first, then thickened, folding into the shape of something with arms too long for its body.
Lina made a small sound.
Riven stepped back.
For the first time since Kai had known him, Riven looked young. Not rich. Not untouchable. Just scared.
The thing lifted its head.
There was no face.
Only a mouth too wide and too full of teeth.
Kai’s phone began to scream.
The Beast Alert app flashed red across the screen.
DANGER.
SHADOW BEAST DETECTED.
EVACUATE IMMEDIATELY.
The alarm echoed through the empty parking building.
Too late.
The Shadow Beast turned toward the sound.
Toward Kai.
His legs would not move. He had seen Shadow Beasts on screens before, in warning videos, shaky news clips, and classroom slides with clean labels and neat explanations.
None of those had a smell.
None of those had breath.
None of those looked at him like they already knew how he would taste.
Lina grabbed Riven’s arm. “We have to run.”
Riven grabbed her wrist as if he meant to pull her with him.
Then the beast lunged.
He panicked.
He shoved Lina aside and ran.
Kai saw it happen with terrible clarity. He saw Lina hit the ground. He saw Riven sprint toward the stairwell without looking back. He saw the beast turn toward the easier prey.
Toward Lina.
The alarm, the dark, Riven’s footsteps—everything fell away except Lina on the ground and the claw reaching for her.
“Lina!”
Kai ran.
He did not think about fear, or Riven, or Shadow Cores, or Professor Narin’s careful words. He only saw Lina trying to crawl away as the monster reached for her.
Kai threw himself between them.
The beast’s arm hit him like a car.
Pain exploded through his side. The world spun once, hard and bright, before his back slammed into a concrete pillar with enough force to drive the air from his lungs. His phone flew from his hand and skidded across the floor, the red warning still flashing.
Lina screamed his name.
Kai tried to stand.
His body refused.
The beast dragged one long claw across the floor as it moved toward him.
Scrape.
Scrape.
Scrape.
Kai coughed, and blood spotted the concrete beneath his mouth. Above him, the ceiling lights flickered back on for one second.
In that pale flash, he saw his own shadow stretch across the floor.
Longer than it should have been.
Then the lights went out again.
The beast opened its mouth.
Kai heard Lina crying somewhere behind it. He heard Riven’s footsteps disappearing down the stairs. And in the dark, beneath the sound of his own broken breathing, he heard something else.
A whisper.
Not from the beast.
Not from Lina.
From below him.
From his shadow.
Wake up.