Receipt Season
The first time the leak hit, the city was already awake in the way Seoul never admitted to being.
Not the tourist-awake–café queues, couples in matching coats, the curated softness of morning. This was the other wakefulness: the underlight. Neon bleeding through mist. Convenience stores humming like tiny lighthouses. Delivery scooters cutting alleys where the streetlamps couldn’t reach. The kind of hour when the subway had stopped but the internet hadn’t.
Ha Yerin’s apartment was a box stacked inside another box, a studio on the eighth floor of an old building that smelled faintly of fried oil and detergent. The hallway outside her door carried the breath of other lives–someone’s kimchi fermenting in a plastic tub, someone’s late-night shower, someone’s television muttering a drama line she couldn’t make out.
Inside, the only light came from three screens and the bruised glow of the city through her blinds.
Yerin sat with her knees tucked onto her chair, one foot dangling, the other pressed into the cushion like she needed the contact to keep herself from floating off. Her hair–still damp from a shower she’d taken hours ago–had dried into soft waves that fell forward whenever she leaned in. The room was cold enough that her fingertips felt slightly numb, but she didn’t turn on the heater.
Heat made her sleepy.
And tonight, sleep would make her late.
Her laptop showed a draft post with a title she hadn’t committed to yet. Her monitor held a folder labeled CIPHER–screenshots, timestamps, a spreadsheet with color-coded patterns she’d begun to see in his drops: the way he spaced his lines, the way he avoided certain slang, the way he never used emojis the way normal people did.
Normal people.
Her phone vibrated once.
Then again.
Then it began to vibrate like a heartbeat that had slipped out of a chest and found its way onto her table.
Yerin didn’t pick it up immediately. She watched the screen light the edge of her coffee cup–cold coffee, because she’d been too focused to drink it earlier. The lock screen notifications stacked so quickly they blurred into one column of panic.
VANTA.
DATING.
LEAK.
CIPHER.
Her stomach tightened in a familiar way, like a door being shut.
She reached for her phone.
Twitter–no, X, the name nobody used out loud without rolling their eyes–was already on fire. The trending bar was a list of names that hadn’t asked to be there.
#VANTA_JAEHYUK
#WHO_IS_SHE
#CIPHER_IS_REAL
And then, like a blade laid carefully on a table:
#SEOUlAFTERDARK
Her handle.
Her brand.
Her fault, if anyone wanted to say it that way.
Yerin opened the account she hated opening and still checked with religious devotion.
@CIPHER
A black profile picture. No bio. No pinned post. No personality.
Just the drop.
A single image first: a grainy photo of an idol in a black cap leaving a café at night, a woman beside him with her face pixelated. The angle was unflattering on purpose, like it wanted the world to recognize him by the curve of his jaw and the way he held the door.
Underneath it, a caption that looked almost… polite.
실수는 아니겠지. (silsuneun anigessji) – This won’t be a mistake, right.
The romanization sat in her head as if he’d whispered it. The translation followed like a slap.
Yerin swallowed.
The comments were already a storm.
He’s dating??
Fake.
Kill the leaker.
Protect him.
Dox Cipher.
Her fingers hovered over the screen, then scrolled.
Because Cipher never dropped only one thing.
That was the part most people didn’t notice. The fandom saw the headline, the photo, the scandal–then they screamed into the night and called it a day. But Cipher’s patterns had taught Yerin something.
He liked to let the fire start.
Then, while everyone stared at the flames, he slipped the real thing through the cracks.
Two minutes later, the second post landed.
A PDF.
A screenshot of an internal agency email.
A spreadsheet of contract terms that made Yerin’s skin prickle.
And one line that wasn’t a leak so much as a confession:
이건 연애가 아니야. 보호야. (igeon yeonaega aniya. boho-ya) – This isn’t dating. It’s protection.
The fandom didn’t know what to do with that.
They were busy tearing apart the pixelated woman’s posture, guessing her height, freezing frames of the idol’s hand on the café door.
Yerin, though, stared at the PDF.
Her reporter brain clicked into place like a lock opening.
Because the PDF wasn’t about dating.
It was about money.
About a shell company that owned half the agency’s “training services.” About illegal deductions taken from trainees’ stipends. About NDAs signed by minors with no guardian present. About a lawsuit that had been buried under the weight of one apology letter.
And at the bottom–there it was.
A signature.
Not an idol’s.
An executive’s.
Choi Taesung.
Yerin felt her breath stop.
She had seen that name before.
Not on headlines.
On the margins.
In the kind of documents that didn’t circulate unless someone had paid for silence.
Her phone rang. An unknown number.
She let it ring out. She didn’t trust calls at two in the morning.
Her laptop chimed.
A login attempt notification.
Then another.
Then another.
Someone was trying to get into her email.
Yerin’s pulse sharpened into something metallic.
She clicked into her security dashboard, fingers moving faster than her thoughts. The attempts weren’t sloppy. They weren’t from the same IP, weren’t from a bot farm that didn’t care if it got caught.
They were… careful.
Distributed.
Like a hand testing every window in a building.
Her breath came shallow.
She’d been threatened before. Legal threats, mostly. “Defamation” emails dressed in polite Korean, always ending with a line that tried to sound like concern.
좋은 선택을 하시길 바랍니다. (joeun seontaeg-eul hasigil baramnida) – We hope you make a good choice.
But this was different.
This was someone reaching for her.
Her door was locked. Her curtains were drawn. Her life was contained in eight floors of cheap cement and a keypad that beeped too loudly.
Still, she found herself glancing toward the window.
As if someone could be watching through the rain.
Sora’s name hovered in her contacts. Her best friend would pick up, even now. Sora always picked up.
But Yerin didn’t call.
Not yet.
She opened her notes app, created a new post draft, and typed a headline in Korean, then deleted it, then typed it in English.
CIPHER’S LATEST DROP: DATING LEAKS AS A WEAPON
Her fingers shook. She hated that.
She forced herself to keep typing anyway.
Because anger was easier than fear.
And tonight, she had plenty of anger.
She wrote about the harm. About the way idols became public property the second someone decided they were. About fans who preached “love” while sharpening knives in comment sections. About executives who hid behind the same narrative whenever it suited them.
She wrote:
Dating leaks aren’t justice. They’re violence-by-public.
Then she paused.
The PDF sat open on her second monitor, the numbers and signatures staring back like teeth.
Violence-by-public.
And yet…
If Cipher hadn’t used the dating leak as bait, would anyone have looked at the contract fraud?
Would the fandom have cared about a trainee’s stipend?
Would the press have picked up a buried lawsuit?
Yerin’s jaw tightened.
No.
They wouldn’t.
That was the ugliness of it.
The internet only cared when it was entertained.
And Cipher knew that.
Her phone buzzed again.
This time, it wasn’t a notification.
It was a message request.
A new account, no profile picture.
Rin.
She stared at the name.
It wasn’t a name. It was a label. Something you could throw away.
The message was short.
너, 위험해. (neo wiheomhae) – You’re in danger.
Yerin’s throat went dry.
She typed back without thinking.
Who are you?
The reply came instantly.
친구 아니야. (chingu aniya) – Not your friend.
Yerin’s fingers hovered.
Her laptop chimed again.
A new login attempt.
Then her phone screen went dark for a second–just a flicker, like a breath held.
And when it came back, another message appeared.
Not from Rin.
From a number she didn’t recognize.
하 기자님. (ha gija-nim) – Reporter Ha.
Her chest tightened. She hadn’t been called that in months. Not since she’d walked out of the agency newsroom with her resignation letter and a reputation that people pretended not to talk about.
Another line followed.
만나야겠네요. (mannaya-gessneyo) – We should meet.
Yerin stared at the screen.
Her heart beat once.
Twice.
She forced her breathing to slow.
This could be a threat.
This could be a trap.
Or this could be the thing she’d been waiting for–a crack in the wall.
She looked back at Cipher’s post.
The first line.
실수는 아니겠지. (silsuneun anigessji) – This won’t be a mistake, right.
Yerin’s lips pressed together.
“I’m not making one,” she whispered to the empty room.
Then she copied the unknown number into a new contact.
She didn’t give it a name.
Just a label.
PR.
Because in her world, that was what monsters wore when they wanted to look clean.
Her cursor blinked on the post draft.
She typed one more sentence.
If Cipher thinks he can hide behind chaos, he hasn’t met me.
Outside, a siren wailed somewhere far away, its sound dampened by rain.
Yerin hovered over “Post.”
And in the instant before she clicked, she felt something else–a quiet pressure at the back of her neck, like the city itself leaning in.
As if someone, somewhere, was watching her decide.
She clicked.
The post went live.
And in the dark glass of her window, her own reflection looked back at her–tired eyes, set jaw–like someone who didn’t realize she’d just stepped onto a stage.
Not for a story.
For a war.