Near-Miss
The PC bang smelled like heat and sugar.
Not the comforting sugar of a bakery–something cheaper, powdered, clinging to the air from instant coffee packets torn open with impatient fingers. The place was crowded even past midnight, the way Seoul always had pockets of wakefulness that refused to be shamed into sleep. Rows of computers glowed in the dim, blue-white light, casting sharp angles across faces that never looked up.
Yerin liked it for the same reason she hated it.
It made people anonymous.
A thousand screens, a thousand lives, and everyone pretending the world outside didn’t exist.
She sat in a corner booth near the back, where the overhead lights flickered slightly and the hum of machines became a steady, soothing roar. Her hair was tucked into a beanie, her coat zipped up even though the room was warm, as if layers could hide her from what she was about to do.
Across from her, Joonho sat with his back angled toward the aisle, the habitual posture of someone who didn’t enjoy being surprised. His sleeves were rolled just enough to show his wrists; his hands moved with quiet precision as he logged into a fresh session on the PC. No flourish. No wasted motion.
Yerin had chosen this place.
Not because she wanted nostalgia for her university days. Not because she wanted to watch him in blue light.
Because her apartment felt contaminated.
Because the word pretty still burned in her phone like a fingertip pressed to skin.
Because if she was being watched, then she wanted a crowd between her and the watchers.
And because she’d received a message that had turned her fear into a single sharp line.
Rin.
PC방. 홍대 쪽 (PC-bang. Hongdae jjok). (PC-bang. Hongdae-side.) – PC bang, Hongdae area.
지금. 혼자 오지 마 (jigeum. honja oji ma). – Now. Don’t come alone.
Yerin had stared at it for a full minute, chest tight.
Don’t come alone.
A warning that sounded like control.
Or care.
Or both.
She’d forwarded it to Joonho without comment.
His reply had been one word.
가요 (gayo). (Let’s go.)
Now they were here.
Yerin adjusted the headset on her ears–not gaming headphones, but a cheap pair she’d brought for privacy. She didn’t want to be overheard. She didn’t want her own breath to become another person’s entertainment.
She opened a blank browser window and typed like her fingers had been waiting all day.
Not “Cipher.”
Not “K-PR.”
Not “Choi Taesung.”
She began with what always worked.
Patterns.
Timestamps.
Language.
The shape of a ghost.
Her screen filled with a timeline of Cipher’s posts–archived screenshots, duplicated by fan accounts before they could be deleted. She’d built her own file system, one that didn’t rely on platforms that could be pressured into erasing history.
On the other monitor–borrowed, because PC bangs were built for speed–she mapped connections between every time Cipher posted a “dating leak” and every time a bigger payload dropped afterward.
The internet called him a leaker.
Yerin called him an arsonist.
Start a fire.
Then slip the real message out while everyone screamed.
Her jaw tightened.
She should hate him.
She did.
But hate was beginning to blur with something more dangerous.
Curiosity.
And underneath that… the sickening recognition that he knew how to get attention for crimes no one wanted to see.
Her phone buzzed in her pocket.
She didn’t look.
She didn’t want the vibrations to guide her like a leash.
Still–Joonho’s gaze flicked once, subtle, as if he’d felt the movement in her posture.
He didn’t ask.
He waited.
That waiting made her want to scream.
Instead, she clicked into her own secured workspace.
A private server.
A set of scripts she’d written back when she still believed she’d return to a newsroom someday.
She wasn’t a hacker.
But she knew enough to be dangerous in the right direction.
The goal tonight was simple.
Not to unmask Cipher fully.
Not yet.
Just to catch a thread.
Something he couldn’t control.
A slip.
A trace.
Rin had promised one.
A message popped up on her screen.
Rin.
이거 따라가 (igeo ttaraga). – Follow this.
서버 경로 (seobeo gyeongno): [a string of letters and numbers]
내가 준 건 ‘문’이야 (naega jun geon ‘mun’-iya). – What I gave you is a ‘door.’
열면, 바로 보여 (yeolmyeon, baro boyeo). – If you open it, you’ll see right away.
Door.
Again.
Yerin’s stomach tightened.
She copied the string into her tools.
Her fingers moved fast, heart beating hard.
She glanced at Joonho.
He was watching his own screen, not hers.
Good.
Or so she told herself.
She didn’t want him inside this.
Not because she trusted him.
Because she didn’t trust what she might become if he tried to stop her.
A progress bar appeared.
Loading.
Her breath caught.
If Rin was lying, this could be nothing.
If Rin was a plant, this could be bait.
If Rin was real…
Her pulse hammered.
The bar reached eighty percent.
Then ninety.
Then–
A list populated.
Server logs.
A map of connection pings.
And a time stamp that matched a Cipher drop from two nights ago.
Yerin’s chest tightened so sharply she felt it in her throat.
She scrolled.
Her eyes flicked over data in a rhythm that felt like prayer.
There.
A familiar handle.
Not @CIPHER.
Something adjacent.
A shadow account.
An intermediary.
The kind of account that existed only to pass messages, only to move files.
Yerin’s mouth went dry.
She clicked.
A second list opened.
More pings.
More timestamps.
Then a partial IP.
She stared.
Partial was enough.
Partial meant she could triangulate.
Her fingers flew.
She opened a geo-IP tool.
Fed it the partial.
Built a probability range.
She was close.
So close her skin felt too tight.
Joonho’s chair creaked.
Yerin froze.
He hadn’t moved much. He rarely did without purpose.
She forced herself not to look at him.
Don’t betray excitement.
Don’t show her hand.
The screen flashed.
Results.
A cluster.
Not a precise address.
But a region.
Gangnam.
Her breath caught.
Gangnam.
K-PR Strategy.
Taesung.
Joonho.
Her throat tightened.
Her mind raced.
Could the IP be a corporate server?
Could it be routed through a PR firm’s security architecture?
Could it be bait to make her blame Taesung–so she’d stop looking elsewhere?
Or–
Yerin’s stomach dipped.
Or Cipher was closer to Taesung than she’d imagined.
Her fingers trembled.
She forced them still.
She copied the range.
She was about to run the next script–one that would narrow the cluster further–when Joonho spoke.
“Stop,” he said.
One word.
Not loud.
But it sliced through the PC bang hum like a knife.
Yerin’s head snapped up.
“What?”
Joonho’s gaze was on her screen now.
Not the content.
The behavior.
The speed.
The way she’d leaned in, breath held.
“You’re tunneling,” he said.
Yerin’s pulse jumped.
“I’m working.”
Joonho’s jaw tightened slightly.
“You’re spiraling,” he corrected.
The same word he’d used before.
Yerin’s anger flared.
“I said I don’t–”
“You do,” he cut in.
Not cruel.
Just certain.
Yerin’s nails dug into her palm.
“This is the closest I’ve been,” she hissed.
Joonho’s gaze stayed steady.
“Closest to what?”
Yerin swallowed.
“To him,” she said.
Joonho’s eyes sharpened.
“And what happens when you catch him?”
The question landed hard.
Yerin stared.
Her mouth opened.
Closed.
She hadn’t let herself imagine it.
The reveal.
The public explosion.
The satisfaction.
And the collateral.
Idols dragged back into headlines.
Fans weaponized.
Executives hiding behind someone else’s chaos.
Yerin’s throat tightened.
“I expose him,” she said finally.
Joonho’s gaze didn’t soften.
“And then?”
Yerin’s anger rose.
“Why do you care?” she snapped.
Joonho’s voice stayed calm.
“Because I’m here,” he replied.
The phrase again.
Here.
Not with Taesung.
With her.
Yerin’s stomach twisted.
“You’re afraid I’ll get hurt,” she said, voice sharp.
Joonho paused.
Then nodded.
“Yes,” he said.
One word.
It should have been reassuring.
It made her furious.
“Don’t,” she spat.
“Don’t what?”
“Don’t act like you care,” she said. “This is a contract.”
Joonho’s gaze held hers.
“It started that way,” he said.
Yerin’s breath caught.
The sentence hung between them, unfinished.
It started that way.
Meaning it didn’t feel like that now.
Meaning she wasn’t the only one who felt the air rearrange when he left.
Her anger faltered.
She hated herself for it.
She looked back at her screen.
The cluster still glowed.
Gangnam.
Close.
She could run the script.
She could push.
But Joonho’s presence had shifted something in her–like he’d placed a hand on the back of her neck, steadying her before she ran off a cliff.
She swallowed.
“I’m not stopping,” she said.
Joonho’s gaze stayed steady.
“I’m not asking you to stop,” he replied.
Yerin blinked.
Then why–
Joonho leaned slightly closer, voice lowering.
“Change approach,” he said.
Yerin’s eyes narrowed.
“What approach?”
“Your script,” he said. “It’s loud.”
Loud.
Like her.
Yerin’s jaw tightened.
“It’s effective.”
“It’s detectable,” Joonho corrected.
He gestured toward her screen.
“You’re using a pattern he can see.”
He.
Yerin’s stomach dipped.
“You talk like you know him,” she said.
Joonho didn’t flinch.
“I know his kind,” he replied.
Yerin’s throat tightened.
“What does that mean?”
Joonho’s gaze shifted, subtle.
“People who don’t leave prints,” he said.
Yerin stared.
Her pulse hammered.
He was giving her advice.
Real advice.
The kind that would help her catch Cipher.
Why would he help?
Unless he wasn’t Cipher.
Or unless he was–
and he wanted to guide her toward something else.
A misdirection.
A dead end.
Yerin’s fingers tightened.
“Fine,” she said, voice clipped. “How?”
Joonho exhaled once, as if relieved she’d asked.
“Don’t narrow from location,” he said. “Narrow from behavior.”
Yerin frowned.
“Behavior?”
Joonho nodded.
“Latency,” he said. “Packet timing. The way data moves. That’s harder to fake.”
Yerin stared.
That was… good.
Better than what she was doing.
She hated that too.
“Show me,” she said.
Two words.
Not polite.
Not grateful.
Joonho didn’t react.
He rolled his chair slightly closer–careful to keep a gap, careful not to invade. His screen tilted toward hers.
“Copy this,” he said.
He typed a line of code into a notepad file and slid it over.
Yerin scanned it.
Clean.
Minimal.
No comments.
No flourish.
Just function.
Her stomach tightened.
Cipher wrote like that.
She forced her fingers to move.
Copied.
Pasted.
Ran.
The script executed.
A new output populated.
It took the cluster and broke it into smaller clusters.
Not by place.
By rhythm.
Yerin’s breath caught.
One cluster stood out.
A set of pings that matched Cipher’s posting windows.
She clicked.
The partial IP changed.
The range narrowed.
Not Gangnam.
Not K-PR.
A different district.
Mapo.
Hongdae.
Her stomach dropped.
The PC bang.
Yerin froze.
Her eyes lifted slowly.
Joonho’s gaze was on the screen.
Calm.
Too calm.
Her pulse hammered.
“Mapo,” she whispered.
Joonho didn’t react.
“Yes,” he said.
Yerin’s throat went dry.
“So he’s here,” she whispered.
Joonho’s gaze flicked to her face.
“Maybe,” he said.
Yerin’s breath came shallow.
Her heart pounded so loudly she wondered if the gamers around them could hear it.
Maybe Cipher was using public networks.
Maybe he was hiding in crowds.
Maybe he’d chosen this PC bang to throw her off.
Or maybe–
Yerin’s skin prickled.
Maybe Rin had brought her here on purpose.
She grabbed her phone.
Opened Rin’s chat.
Her fingers hovered over the keyboard.
Then she paused.
If Rin was watching, then any message might be another leash.
Yerin looked at Joonho.
“You knew,” she said.
Her voice was low.
The PC bang hum swallowed it.
Joonho’s gaze held hers.
“Knew what?”
“That your method would point here,” she said.
Joonho didn’t deny.
“I suspected,” he replied.
The word again.
Suspected.
Yerin’s chest tightened.
“You moved me,” she whispered.
Joonho’s eyes sharpened.
“Moved you?”
“You took me off Gangnam,” she said. “You pushed me into Mapo.”
Joonho’s jaw tightened.
“Because Gangnam was bait,” he said.
Yerin stared.
“Bait for what?”
Joonho’s gaze flicked around the room, then back.
“For you to accuse the wrong person,” he said.
Wrong person.
Yerin’s stomach dropped.
“Taesung,” she whispered.
Joonho’s gaze held hers.
“Taesung is dangerous,” he said. “But he isn’t the only one.”
The sentence was careful.
Not exoneration.
Not accusation.
Just… redaction.
Yerin’s pulse hammered.
“You’re protecting him,” she said.
Joonho’s gaze sharpened.
“No,” he replied.
One word.
Then, quieter:
“I’m protecting you.”
Yerin’s chest tightened.
Her anger rose, hot and shaky.
“You protect me by lying?” she hissed.
Joonho’s jaw tightened.
“I protected you by moving you,” he said.
Yerin’s eyes stung.
Not from tears.
From the frustration of being handled.
The same thing she hated about Taesung.
Control.
She leaned back in her chair, chest heaving.
“You’re the same,” she whispered.
Joonho’s eyes flickered.
Not hurt.
Something else.
Like a wound being pressed.
“I’m not,” he said.
Yerin laughed once, bitter.
“You decide what I see,” she said. “You decide when I stop. You decide what matters.”
Joonho’s voice dropped.
“I decide what keeps you alive,” he said.
The words were quiet.
But the steel in them made Yerin’s breath catch.
Alive.
As if she was already halfway to not being.
Yerin swallowed.
She looked away, blinking hard.
Her screen still showed the narrowed cluster.
Mapo.
Hongdae.
Her head felt full of static.
Joonho spoke again, calmer.
“You want to catch him,” he said.
Yerin’s jaw tightened.
“Yes.”
“And you think tonight is the night,” he continued.
Yerin’s throat tightened.
“Yes.”
Joonho’s gaze held hers.
“Then don’t announce it with your footsteps,” he said.
Yerin froze.
“What?”
Joonho nodded toward her screen.
“You’re running scripts in a public place,” he said. “If he’s here, he’ll feel it.”
Yerin’s stomach dropped.
Her fingers flew to abort the script.
Too late.
A new line appeared in the output.
Connection reset.
Her breath caught.
Her chest tightened.
The door had closed.
Yerin stared.
She had been there.
Fingertips on the edge.
And now the ghost had slipped away.
Her mouth went dry.
“Damn it,” she whispered.
Joonho’s jaw tightened.
He didn’t look triumphant.
He looked… guilty.
The guilt was so small it would’ve been invisible on anyone else.
But Yerin had become good at reading micro-movements.
She saw it.
“You warned him,” she said.
Her voice was a thread.
Joonho’s eyes snapped to her.
“No,” he said.
The denial was immediate.
Too immediate.
Yerin’s stomach twisted.
“You did,” she whispered.
Joonho’s jaw tightened.
“I didn’t,” he repeated.
Yerin’s hands shook.
“Then why does it always happen when you’re near me?” she demanded, voice trembling. “Every time I get close, the door shuts.”
Joonho’s gaze held hers.
His face stayed calm.
But his eyes–
His eyes looked tired.
Like someone watching a mistake happen in slow motion.
“Because you’re predictable,” he said.
The words hit hard.
Yerin’s chest tightened.
“I’m not–”
“You are,” he cut in.
Not cruel.
Just honest.
“When you’re close, you push,” he said. “You post. You react. You flare. He watches the flare.”
Yerin stared.
Her throat tightened.
“And you,” she whispered. “You watch too.”
Joonho didn’t deny.
“Yes,” he said.
One word.
A confession that wasn’t confession.
Yerin’s eyes burned.
She stood abruptly.
Her chair scraped against the floor.
A few heads turned.
Joonho’s hand lifted slightly, not touching, a silent plea to be quiet.
Yerin didn’t care.
She grabbed her coat.
“I’m leaving,” she said.
Joonho stood too.
“Wait,” he said.
Yerin’s eyes flashed.
“No.”
She walked.
The aisle felt too narrow.
The PC bang’s blue light felt suffocating.
She pushed through the door into the street.
Cold air hit her face like a slap.
She breathed it in, chest heaving.
Hongdae at night was loud in a different way–street performers singing into cheap microphones, couples laughing, groups of students spilling out of bars, neon signs buzzing.
Life.
Normal.
Her phone buzzed.
Rin.
봤지? (bwatji?) – You saw it, right?
Yerin’s stomach clenched.
Saw what.
The door.
The slip.
The near-catch.
Yerin’s fingers trembled.
Her reply came fast.
What are you doing?
The response arrived instantly.
너 테스트 중 (neo teseuteu jung). – I’m testing you.
Testing.
Like she was a trainee.
Like she was bait.
Yerin’s blood ran cold.
She looked up.
Across the street, a person stood under a sign’s glow, face hidden by a cap.
A phone lifted.
Yerin’s breath caught.
She stepped backward.
Her heel hit the curb.
A hand caught her elbow.
Warm.
Firm.
Joonho.
“Move,” he said.
One word.
Yerin didn’t argue.
He guided her into a narrow side street, away from the bright main road, where shadows gathered between buildings.
Yerin’s heart hammered.
“Let go,” she hissed.
Joonho released immediately.
“Sorry,” he said.
Then, lower:
“Someone’s filming.”
Yerin’s throat tightened.
“I know,” she snapped.
Joonho’s gaze scanned the alley mouth.
His phone was in his hand now.
He typed one line.
Fast.
Then he slipped it away.
Yerin’s stomach clenched.
“What did you just do?”
Joonho’s gaze met hers.
“Called a car,” he said.
Yerin’s eyes narrowed.
“You’re lying.”
Joonho didn’t flinch.
“Car,” he repeated.
Yerin’s chest tightened.
She didn’t know what to believe.
She couldn’t tell if he was protecting her from a stalker–or protecting himself from being caught.
A black sedan turned into the alley seconds later.
Too fast.
Too perfect.
Joonho opened the door.
“Get in,” he said.
Yerin hesitated.
Her pride screamed.
Her fear was louder.
She got in.
The car pulled away.
Yerin stared out the window, watching Hongdae blur.
Joonho sat beside her this time, not in front.
Close.
Too close.
The heat from his body reached her through their coats.
She hated that she noticed.
She hated that she wanted to lean away and couldn’t.
Her phone buzzed again.
Rin.
그 남자 조심 (geu namja josim). – Be careful of that man.
Yerin laughed once, sharp.
“Of course,” she whispered.
Joonho’s gaze flicked.
“What?”
Yerin shoved her phone screen toward him.
Joonho read it.
His jaw tightened.
Then, quietly:
“Rin isn’t on your side,” he said.
Yerin’s eyes narrowed.
“And you are?”
The question came out raw.
Joonho’s gaze held hers.
For a beat, the car’s hum filled the space.
Then he spoke.
“I’m on the side of keeping you alive,” he said.
Alive again.
The word made Yerin’s throat tighten.
She looked away.
Her eyes burned.
Not tears.
Anger.
Shame.
The sick feeling of needing someone she didn’t trust.
The car turned onto her street.
They arrived at her building.
Joonho got out first, scanned the lobby.
Yerin followed, heart still racing.
They rode the elevator up in silence.
On the eighth floor, Yerin unlocked her door with shaking fingers.
Inside, her apartment smelled like stale air and her own fear.
Joonho stepped in and moved straight to her router.
He checked the lights.
Then her laptop.
Yerin watched him.
A question sat in her throat like a stone.
Did you warn him.
Did you run.
Are you the ghost.
Joonho didn’t look at her.
He sat at her table and opened his own laptop.
Typed.
Fast.
Yerin’s stomach twisted.
Then she heard it.
A soft alert.
Not from his laptop.
From hers.
She froze.
Her laptop screen–still asleep–lit up.
A notification.
New device signed into your cloud storage.
Yerin’s breath caught.
Her hands went cold.
She hadn’t signed in.
Her mouth went dry.
“Joonho,” she whispered.
He looked up.
His eyes sharpened immediately.
“What?”
Yerin pointed.
He stood in a single smooth motion, came around the table, eyes on her screen.
His jaw tightened.
“Someone’s in,” he said.
Yerin’s throat tightened.
“In my files,” she whispered.
Joonho’s voice went low.
“Don’t touch anything,” he said.
Yerin’s fingers curled.
“I have to–”
“Don’t,” he cut in.
One word.
Steel.
Yerin froze.
Joonho’s hands moved fast.
He disconnected her laptop from the network.
Then he plugged a small device into a port–something she hadn’t seen him carry.
He began pulling logs.
Yerin’s heart hammered.
Her draft posts.
Her archive.
Her Cipher files.
Her notes.
All of it–
Exposed.
Her stomach churned.
“Who is it?” she whispered.
Joonho’s gaze stayed on the code.
“I don’t know yet,” he said.
His voice stayed calm.
But his hands moved faster than before.
Yerin watched him.
The competence.
The tools.
The speed.
This wasn’t a man assigned for optics.
This was someone who lived in war.
Her breath came shallow.
“Is it Rin?” she asked.
Joonho’s jaw tightened.
“Maybe,” he said.
Yerin swallowed.
“Is it Cipher?”
Joonho’s hands paused.
Just for half a beat.
Then resumed.
“No,” he said.
One word.
Too quick.
Yerin’s stomach dropped.
She stared.
Joonho didn’t look up.
He kept typing.
Yerin’s phone buzzed.
A Cipher notification.
She didn’t open it.
She couldn’t.
Her whole body felt like it was braced for impact.
Joonho’s voice came quieter.
“Yerin,” he said.
She flinched at her name.
“What?”
Joonho finally looked at her.
His eyes were steady.
But something in them was… torn.
Like he was standing on the edge of a choice.
“You were close tonight,” he said.
Yerin’s throat tightened.
“So?”
Joonho’s jaw tightened.
“So they pushed back,” he said.
They.
Not he.
Yerin swallowed.
“You’re telling me,” she whispered, “to stop.”
Joonho shook his head once.
“No,” he said. “I’m telling you to change.”
Change.
Method.
Approach.
The word echoed the dangerous thing he’d said before.
We change it.
Yerin’s breath caught.
“Why do you keep saying ‘change’?” she demanded.
Joonho’s gaze held hers.
Because the old way breaks people, she wanted him to say.
Because the lever hurts.
Because the system wins.
Because–
Joonho looked down.
He spoke quietly.
“Because you matter,” he said.
Five words.
No extra.
No cushion.
It landed like a weight in her chest.
Yerin stared.
Her throat burned.
She didn’t know what to do with that sentence.
She didn’t know if it was truth.
Or strategy.
Or both.
Joonho looked back at his screen.
His voice returned to calm.
“Go wash your face,” he said. “Drink water. I’ll handle this.”
Yerin’s anger flared again.
“You don’t handle my life,” she snapped.
Joonho’s gaze lifted.
“I’m not trying to,” he said.
A beat.
Then, softer:
“I’m trying to keep it.”
Yerin’s breath caught.
Keep it.
Not control it.
Not own it.
Keep it.
She swallowed hard.
Her body moved before her pride could stop it.
She went to the sink.
Splashed cold water on her wrists.
Then her face.
Her reflection in the mirror looked pale, eyes too bright.
Behind her, the sound of Joonho’s typing continued.
Fast.
Precise.
Like a heartbeat.
Yerin turned off the tap.
She stared at her wet hands.
Tonight, she’d almost caught the ghost.
And the ghost–or someone close to it–had reached into her files in response.
A punishment.
A warning.
A promise.
Her phone vibrated again.
She glanced.
Another notification.
This time, not Cipher.
A system alert.
Your password was changed. If this wasn’t you, tap here.
Yerin’s stomach dropped.
She stumbled back into the room.
“Joonho–”
He looked up.
His eyes sharpened.
“Show me,” he said.
Yerin shoved the phone toward him.
He scanned it.
His jaw tightened.
“Okay,” he said.
The word sounded like a vow.
He took her phone–only after his gaze asked permission.
Yerin didn’t stop him.
He moved fast.
Reset.
Revoke.
Lock.
His fingers flew.
Yerin watched, heart hammering.
In the corner of her laptop screen, a log line appeared.
A username.
A location.
A device fingerprint.
Not a name.
But a pattern.
Yerin’s breath caught.
Because the device fingerprint wasn’t random.
It matched an earlier ping.
A rhythm.
A cadence.
Mapo.
Hongdae.
The PC bang.
Yerin’s chest tightened.
Someone from that room had followed her home.
Or someone had never left her.
Joonho’s gaze flicked to her face.
He saw the change.
“What?” he asked.
Yerin’s voice came out thin.
“It’s from there,” she whispered.
Joonho’s jaw tightened.
“Yes,” he said.
One word.
Not surprised.
Yerin’s stomach dropped.
“You knew,” she whispered.
Joonho’s gaze held hers.
“I suspected,” he repeated.
The word felt like a knife now.
Suspected.
Suspected and still brought her.
Yerin’s throat tightened.
“You used me,” she whispered.
Joonho’s eyes sharpened.
“No,” he said.
Yerin shook her head.
“You brought me into a room where he could touch me,” she said, voice shaking. “You told me to change approach. You–”
Joonho stepped closer.
Not touching.
Just closer.
His voice was low.
“I brought you into a room where you wouldn’t be alone,” he said.
Yerin’s breath caught.
The sentence was simple.
But it hit her like truth.
Because her apartment had been the worst place.
Because being in a crowd had been safer.
And yet the crowd had teeth.
Yerin swallowed.
Her eyes burned.
“I hate this,” she whispered.
Joonho’s gaze softened–barely.
“I know,” he said.
Two words.
Then, quieter:
“Sleep,” he added.
The same word.
The same echo.
Yerin’s chest tightened.
She stared at him.
“Stop saying that,” she whispered.
Joonho’s jaw tightened.
“Then do it,” he replied.
One word less than tenderness.
Still care.
Yerin’s breath caught.
Outside her window, neon flickered.
A siren wailed somewhere far away.
The city sounded indifferent.
Joonho’s hands returned to the keyboard.
His voice stayed calm.
“I’ll stay,” he said.
Yerin’s throat tightened.
“Here?”
Joonho nodded.
“Here,” he said.
No nearby.
No distance.
A boundary shifting.
Because tonight, someone had entered her life through her files.
And boundaries–like locks–only mattered if someone respected them.
Yerin swallowed.
She walked to her bed, coat still on, and sat down without taking her shoes off.
Her body trembled with exhaustion.
She stared at the ceiling.
Her mind replayed the near-miss.
The door closing.
Rin’s message: testing you.
The phone lifted across the street.
The hack attempt.
And Joonho’s face when he said: because you matter.
She didn’t know if she believed him.
But her body had reacted like it wanted to.
On the table, her phone buzzed again.
Cipher.
Yerin didn’t move.
Joonho’s chair creaked softly.
He reached over and opened the notification–careful to tilt the screen away from her, as if respecting that this was her war.
Then his breathing changed.
A fraction.
Yerin’s eyes flicked.
“What?” she whispered.
Joonho didn’t answer at once.
When he did, his voice was quiet.
“He posted,” he said.
Yerin’s throat tightened.
“What did he say?”
Joonho hesitated–just long enough to feel like a choice.
Then he read it.
조금만 더 (jogeumman deo). – Just a little more.
Yerin’s breath caught.
Just a little more.
A promise.
Or a threat.
Or both.
She closed her eyes.
In her mind, the words weren’t on a screen.
They were in her ear.
Close.
Private.
Like someone leaning in behind a mask.
Just a little more.
Yerin’s fingers curled into her blanket.
And in the dim glow of her apartment, with Joonho’s typing continuing like a quiet heartbeat, she understood the cruelest part of all.
She had gotten close enough for the ghost to notice.
And now, it was choosing how to notice her back.