Rain spattered against the library windows, blurring the brick courtyard beyond. Ryan Carter leaned against the sill, watching the rivulets trace uneven paths down the glass.
The hush among the stacks usually soothed him, but today it only amplified the tight coil in his chest.
He hadn’t seen Adrien Fairchild since their tense hallway standoff. In theory, that should have brought relief an opportunity to put the dangerous obsession behind him. Instead, emptiness had settled in his bones, reminding him that the past never truly leaves you.
A soft click behind him made Ryan whirl around. Chris, his roommate, stepped into the reading alcove, dripping from the rain.
“You made it clear you’re staying late,” Chris said, shaking water from his hair. “I thought you might want company.”
Ryan forced a half smile. “Thanks.”
Chris dropped his backpack onto the floor and sat on the edge of a nearby table. “Who was that guy you texted about?”
Ryan stared at the window. “Adrien. He’s complicated.”
Chris frowned. “Do you want to talk about it?”
Ryan ran a hand through his wet hair. “Why does it feel like he’s always two steps ahead?”
Chris nodded slowly. “He’s rich, yes, but that alone doesn’t make him dangerous.
It’s the way he watches you. Like you’re a prize he’s determined to catch.”
Ryan pulled his phone from his pocket and showed Chris the latest messages anonymous number, cryptic compliments, veiled threats. Chris’s jaw tightened as he read.
“You shouldn’t have to deal with this alone,” Chris said quietly. “If he comes around again, you let me know. I’ll walk you to class, to the café wherever.”
Ryan felt a surge of gratitude. “Thanks, man.”
Chris stood and clapped him on the shoulder. “Always.”
The next afternoon, Ryan walked into the student union with Chris by his side.
The campus was alive with chatter after class, but Ryan’s gaze kept darting to entrances and corners, looking for Adrien’s familiar silhouette.
As they reached the coffee kiosk, Ryan’s phone buzzed. He glanced down: Unknown: I like the way you hold your coffee.
His heart thudded. Chris noticed the change.
“He’s here,” Ryan murmured, backing away.
Chris turned. On the other side of the kiosk, Adrien stood with that unsettling calm.
He took a slow sip of his latte and smiled.
“Ryan,” Adrien called, voice smooth. “Fancy seeing you here.”
Ryan’s palms went cold. “Leave me alone.”
Adrien’s smile deepened. “I can’t. I won’t.”
Chris stepped forward. “Back off.”
Adrien’s eyes flicked to Chris, then back to Ryan. “Nice of you to bring a bodyguard.” He took a deliberate step closer. “But I know you don’t need one. You just… appreciate it.”
Ryan’s chest tightened. “You’re twisted.”
Adrien shrugged. “I’m devoted.”
Chris clenched his fists. “That’s enough.” He dropped his voice. “Walk away, Adrien.”
Adrien lifted an eyebrow but held his ground. “Or what?”
Chris’s face hardened. “Or I’ll make sure all your classmates know exactly how you behave.”
Adrien’s lips curved into a slow, dangerous smile. “I look forward to seeing you try.”
On those words, he turned and walked away smooth, unhurried, as if he owned every tile of that building.
Chris exhaled loudly. “I hate that he gets to threaten you.”
Ryan shook his head, scarred by how quickly Adrien’s presence unbalanced him. “I need to end this.”
Chris nodded. “Tell Daniel. He can help.”
That evening, while Chris was cooking ramen in their cramped kitchen, Ryan fumbled with his phone to text Daniel, whose number he’d memorized but rarely used since they’d reconnected. Within minutes, Daniel’s reply came:
Daniel: I’m here.
Ryan headed out into the drizzle and found Daniel waiting under the eaves of the dorm entrance, umbrella up and expression concerned.
“Chris filled me in,” Daniel said without preamble. “Adrien isn’t going to stop.”
Ryan nodded, voice barely above a whisper. “He thinks he owns me.”
Daniel’s jaw clenched. “No one owns you. Not even Adrien.”
They walked together toward the campus security office, sharing updates.
By the time they arrived, rain had soaked Daniel’s shoulders. He pounded on the glass door.
A security officer let them in, eyebrows raised at Daniel’s intensity.
“I need to file a stalking report,” Daniel said. “My friend is being targeted.”
Ryan stepped forward, trembling but resolute, and laid the printed messages on the desk.
The officer took them seriously. Notes were made. Photographs of the rose and the library encounter were scheduled. Daniel provided a statement that included every unsettling detail.
As they left, Daniel slipped an arm around Ryan’s shoulders. “We did it. You’re not alone in this.”
Ryan rested his head against Daniel’s side, the first real comfort he’d felt since Adrien’s obsession began.
Back in the quiet of his room, Ryan stared at the ceiling. Chris had gone to bed. Daniel lingered by the door.
“Thank you,” Ryan whispered.
Daniel came forward and sat on the edge of the bed. “We’ll get you safe again. I promise.”
Ryan closed his eyes. The rain’s patter on the window sounded like applause a reminder that he’d spoken his truth, and now others would stand with him.
He finally felt less empty.
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…