It started with whispers.
The kind that travel faster than fact
a smirk here, a glance there, people turning their heads just a little too late when Ryan walked by.
He noticed it in the lecture hall first.
Two girls near the back, looking at him and giggling. A guy leaning in to his friend and muttering something behind a cupped hand.
He told himself it was nothing.
That people always stared.
That it didn’t mean anything.
But deep down, Ryan already knew.
Because fear had a sound.
And it sounded exactly like silence after laughter.
He found out the truth two hours later.
Chris was waiting for him in their dorm room, holding his phone out like it was covered in blood.
“Ryan,” Chris said. “You need to see this.”
Ryan took the phone.
It was a message board.
Anonymous. Cruel. Exactly the kind of digital trash pile people used to chew up someone’s name without consequence.
There were three posts about him.
All posted within the last twelve hours.
All with photos.
One was of him walking on campus.
Another was him and Daniel — standing too close, looking too soft.
And the third…
It was from last semester. A private photo. Shirtless. Taken in his old apartment mirror. A photo he’d sent to Jake during the weeks when things still felt like love.
Now it was cropped, edited, and posted with the caption:
“He likes to act broken. Just wait till he starts begging.”
Ryan dropped the phone.
Chris was already swearing. “Who the hell posted this? Do you think it was?”
“Yes.” Ryan’s voice was too quiet.
Chris grabbed his arm. “Ryan”
“I’m fine.”
“You’re not”
“I said I’m fine!”
The room went still.
Ryan picked the phone up off the ground, handed it back, and walked out.
He didn’t go to Daniel.
Not at first.
Not because he didn’t trust him
but because he did.
And he didn’t want Daniel to see him like this.
Humiliated. Exposed. Vulnerable in a way that made him feel small again, like the version of himself Jake had spent months creating the one who flinched when someone raised their voice, who apologized for needing anything at all.
But he forgot one thing.
Daniel noticed everything.
It was barely an hour later when Daniel found him in the library.
Not reading. Not even pretending.
Just sitting at a back table with his hood up, staring down at an open book he hadn’t turned in thirty minutes.
Daniel sat down across from him slowly. Said nothing. Didn’t demand answers.
Just waited.
Ryan didn’t lift his head.
“They posted it,” he said quietly. “The picture. The one I sent him.”
Daniel’s voice was gentle, but firm. “I saw.”
“You did?”
“Chris sent me the link.”
Ryan laughed bitterly. “Of course he did.”
“You shouldn’t have had to find out that way.”
“I should’ve known it was coming.”
“Ryan”
“I gave him that photo. Willingly. I told him he could have all of me. And he did. And now everyone else does, too.”
Daniel leaned forward, hands folded like he was holding himself back from reaching out.
“You trusted someone. That’s not a weakness.”
“It was with him.”
“No.” Daniel’s voice sharpened. “What he did was abuse. What you did was try to love someone who didn’t deserve it.”
Ryan’s throat ached. “It still feels like my fault.”
“I know,” Daniel said. “But it isn’t.”
They sat in silence. Thick, unbreathable silence.
Then Daniel said, quietly, “Come with me.”
They didn’t talk on the way to the campus security office.
Daniel walked beside him like a shield. Not touching, but always close. Always steady. When Ryan hesitated at the door, Daniel didn’t push. Just looked at him and waited.
Ryan took a breath.
Then stepped inside.
The report took an hour.
They documented everything: the photo, the posts, the threat messages, even the handwritten note. Daniel spoke when Ryan’s voice faltered. Ryan took over when Daniel’s anger started to show. They moved together like gears one steady, the other holding tension.
By the end of it, Ryan was shaking.
The officer said they’d open a case. That the photos had been pulled down. That there would be an investigation.
Ryan barely heard him.
But he felt Daniel’s hand not holding, not pulling, just there brushing his wrist as they left.
And that was what kept him upright.
Later, in Daniel’s apartment again, Ryan sat on the edge of the bed, hands in his lap.
He hadn’t said a word in fifteen minutes.
Daniel stood across the room, pacing slowly.
Then he stopped. Looked over. And asked the question Ryan hadn’t expected.
“Can I hit him?”
Ryan blinked. “What?”
“Jake. Can I hit him?”
Ryan’s mouth twitched. “You’re not serious.”
“I’m very serious.”
“You want to protect me with your fists?”
“No,” Daniel said. “I want to protect you with a legal restraining order, campus policy, and federal cybercrime law. But if that doesn’t work, then yes fists.”
Ryan laughed. And it hurt, but not in the bad way.
It hurt because it let something in that he hadn’t let in for weeks.
Light.
Care.
Real safety.
“I don’t want you to fix me,” Ryan said softly.
“I don’t want to fix you,” Daniel said. “I just want to hold what’s left while you rebuild.”
Ryan looked up at him.
And for the first time, he didn’t hold back.
He stood, crossed the room, and kissed him.
It wasn’t explosive. It wasn’t perfect.
But it was real.
Daniel froze for a second caught between restraint and instinct.
Then he kissed him back.
And Ryan realized he hadn’t just survived something.
He was starting something new.
The hallway felt like it stretched forever quiet, sterile, wrong.Ryan’s breath caught in his throat as he slammed the door shut and backed away from it, locking every bolt with trembling hands. His phone was still on the floor, screen cracked from the fall. His mind screamed call for help, but his body wouldn’t move. Not fast enough.Another sound.The soft tread of footsteps outside.Slow.Deliberate.Ryan grabbed the nearest object a heavy bookend from the shelf and clutched it like a weapon. He didn’t care how ridiculous it looked. He wasn’t going down without fighting.A shadow passed the gap beneath the door.Then silence.UntilTap. Tap. Tap.Knuckles, knocking gently. As if this was normal. As if Adrien was just a friend visiting in the middle of the night.“Ryan,” Adrien’s voice called softly through the door. “Don’t be afraid.”Ryan didn’t respond. He backed deeper into the apartment, heart slamming against his ribs.“I know you’re mad. I know you’re scared. But you let thi
Ryan didn’t scream. Not out loud.But inside, he was shaking apart.Chris and Daniel tore through the room the second he called out, the note trembling in his hand. Daniel read it once, then twice, his expression hardening. Chris checked the window, the vents, the closets every shadow but there was nothing. No open latch. No movement.No Adrien.Just the chill of violation in the air.“He was in here,” Ryan whispered, voice barely holding. “He stood right here. And we didn’t hear a thing.”Chris crouched beside him. “We checked everything. That window’s locked from the inside. He must’vehe must’ve found another way in. Or someone’s helping him.”Daniel stood silent, scanning the room like it could confess. His jaw clenched. “It’s not just obsession anymore. This is a game to him. He wants us to feel powerless.”Ryan looked down at the photo again his own sleeping face. Peaceful. Exposed. Vulnerable in a way that made his skin crawl now. “I don’t know what he wants from me anymore.”
The apartment went silent after midnight.But none of them slept.Daniel sat on the edge of the bed, assembling a portable surveillance system he borrowed from a contact at the university’s journalism department under the table, unofficial tech. Chris paced near the window, eyes fixed on the opposite high rise, scanning each balcony, each flicker of movement.Ryan sat curled on the couch, arms wrapped around his knees, the glow of the city washing over his pale skin. He hadn’t spoken since the photo arrived. He was too aware of his own breath, his heartbeat, the gaze he could feel crawling over his skin like a thousand tiny needles.“I’m done hiding,” Daniel said. “We set a trap, but this time it’s on our terms. He wants to believe he’s the only one playing the game.”Chris nodded, voice low. “So we’ll give him a show.”Daniel glanced over at Ryan. “You okay to do this?”Ryan’s throat felt dry. But he nodded. “If I don’t fight back now, he’ll never stop.”Chris sat beside him. “We’ll
By morning, the rose was still on the porch frozen with dew, its petals curled like silent screams.Ryan stood at the threshold, staring at it. Behind him, Daniel and Chris argued in low, tense voices.“He’s escalating,” Chris said. “This isn’t just mind games anymore. He’s testing how far he can push before we crack.”“We should’ve gone to the police again last night,” Daniel muttered.“They won’t care. Not until Adrien actually does something irreversible. And by then ” Chris stopped himself, glanced toward Ryan.Ryan didn’t speak. He crouched down, picked up the rose. The stem pricked his finger, sharp enough to draw blood. A single bead welled up.He looked at it. Then at the torn page beneath the flower.This time, the message was written in crimson ink.Or blood.“Don’t you see? I’m the only one who sees the real you, Ryan. The version that even you try to forget.”Chris came up behind him and snatched the note away. “That’s enough.”Daniel grabbed a trash bag. “Burn everything
Daniel ripped the journal page off the basement wall with trembling fingers. The blade clattered to the floor, the sound metallic and final.Ryan stared at the message, every word carved into his chest like a threat.“Every story needs an ending. I’m coming to write yours myself.”Daniel’s jaw tightened as he crumpled the page in his fist. “He was here, Ryan. He was in the house.”“No no, that’s not possible,” Ryan whispered. “We locked the doors. The windows. The alarm”“He bypassed all of it,” Daniel snapped, fury in his eyes. “This isn’t just obsession anymore. This is stalking. This is war.”Ryan turned away, trying to breathe. His lungs refused to work properly. His vision swam.Upstairs, the cabin creaked again louder this time.They weren’t alone.Daniel moved instantly, pressing Ryan back against the wall, shielding him. He reached for the knife that had been used to pin the page, hand steady, movements sharp.Then footsteps above.Heavy. Measured. Deliberate.Not Chris.Danie
The sky looked deceptively calm that morning.Pale blue, a few scattered clouds, birds chirping like nothing had happened as if the world hadn’t tilted sideways under Ryan’s feet the night before. He stood outside the cabin with a blanket wrapped around his shoulders, the chill in the air brushing against his skin like fingers he hadn’t given permission to touch.Adrien had found a way to reach him again.The photo had been like a slap. Not just because it exposed something Ryan had only ever dared to think in private, but because it proved Adrien still had access. Still knew how to strike where it hurt most.Behind him, the cabin door opened.Chris stepped out barefoot, hair tousled, hoodie zipped halfway, holding two mugs of coffee. He offered one to Ryan wordlessly.“Thanks,” Ryan murmured.They stood in silence. Birds. Wind. A branch creaking high above.Then Chris said, “I’ve been thinking.”“Yeah?”“If he still has your journal, and he’s still close enough to send you pictures…