Work Text:
Geonwoo doesn’t believe in love at first sight.
Lust, sure! A passing attraction that flares bright and burns out within a week, maybe two if he’s bored enough to entertain it. Nothing worth remembering, though.
That belief crumbles into dust the moment he pushes open the door to his favourite café and sees a new barista behind the counter.
It doesn’t strike him all at once. There’s no dramatic pause or cinematic moment where the world slows. The barista looks up from the register, meets Geonwoo’s eyes, and smiles like he's genuinely pleased to see him, and the world tilts on its axis.
Geonwoo has never been religious, but there’s something divine about that smile, something that makes his heart feel like it’s free-falling off a cliff.
His hand tightens around the strap of his bag, and his steps falter, just barely enough that he has to correct himself mid-walk like he’s forgotten how gravity works. Geonwoo tries to convince himself that it’s nothing but a friendly customer service smile until he reaches the counter.
It doesn’t help that Xinlong—as stated boldly on his apron—is obnoxiously pretty. Up close, he has big brown, almond-shaped eyes, soft waves of hair that refuse to stay neatly in place, and a dimple on the left side of his face that feels like a personal attack. Xinlong looks like someone who gets away with things; he could definitely smile his way out of a felony and have people apologising for suspecting him in the first place.
Geonwoo feels like the fucking Titanic, the moment before impact.
“Hey. What can I get ya?” Xinlong says, pointing to the menu board, a smile still plastered across his face.
The rich timbre of Xinlong’s voice sinks low and smooth, the collision knocking a chunk of ice loose in Geonwoo’s gut and sending cold straight through his bloodstream. His brain instantly stutters like it’s buffering.
In a fugue state of mind, Geonwoo manages to order his usual: 20% boba, 30 % milk, 50% sugar, and Xinlong grins like it's the highlight of his day.
For months, that becomes the routine.
Geonwoo frequents the cafe too often, staying way longer than a regular customer should, and somehow becomes casual friends with Xinlong.
They most of the time have small talks during his visits, and Geonwoo responds in a way that is just a little too carefully thought out. He laughs at Xinlong's terrible jokes, memorises the cadence of his voice, the way he leans his weight onto one hip when the café is slow, and all of the visible quirks that make him even more charming.
But he doesn’t do anything about it. He just exists in his tragic little routine of quiet pining, letting himself drown in the fantasy of something that isn’t even real because he's such a loser and can't even be bold enough to ask for Xinlong's number, much less a date.
Then the incident happens.
It’s a normal Tuesday, and Geonwoo is mentally prepared. He's rehearsed his order in his head, planned his responses, and built an emotional firewall against Xinlong’s dangerous charm.
All of that shatters the moment he steps inside and sees Xinlong wearing glasses.
Geonwoo's brain blue-screens.
Not figuratively. Fully. Like someone yanked the plug mid-thought.
He takes one step too far, misjudges the space, and slams straight into a chair. The impact rattles sharply up his shin, and he hisses under his breath as he stumbles.
Pain flares, and Geonwoo's dignity evaporates.
But that’s not important. What’s important is that Xinlong looks up, clearly noting Geonwoo's distress.
“Oh, hey,” he says, eyes crinkling behind his lenses before his mouth curves into a grin. “You okay?”
Geonwoo is not okay, but he refuses to show weakness. So, he just straightens up like the chair attack was a planned manoeuvre, nods stiffly, and pretends that the throbbing pain in his leg is a figment of his imagination.
Xinlong looks unconvinced, but mercifully doesn’t push it. “The usual?”
Geonwoo tries to answer but fails spectacularly.
There’s something about the way Xinlong is watching him, glasses slipping down his nose, lips quirking in amusement, that makes forming a basic sentence suddenly feel impossible. His brain latches onto the first thing that comes to mind, a statement so deeply stupid that the moment it leaves Geonwoo's mouth, he wishes for divine intervention.
“You look like someone who reads.”
Xinlong blinks at him, slowly tilting his head while at it. “Because I’m wearing glasses?”
Geonwoo’s soul folds in on itself, and he wishes for the floor to open up and swallow him.
Xinlong, the menace, laughs. It comes out warm and entirely too fond, like he's genuinely entertained, and Geonwoo is some kind of adorable idiot instead of an absolute disaster.
“That’s kinda cute,” he says.
Geonwoo stops functioning at a molecular level.
Somehow, by the grace of whatever god has decided to torment him, it doesn’t end there. Xinlong, apparently emboldened by the complete devastation of Geonwoo’s dignity, pulls out his phone.
“You seem cool,” he says casually. “Can I get your number?”
Geonwoo blacks out.
When he comes back online, his fingers are moving on autopilot, tapping his number into Xinlong’s phone with the efficiency of someone completing a sacred ritual. Xinlong saves the contact with a smiley face emoji, and Geonwoo stares at it like he’s just been handed a winning lottery ticket.
He leaves the café floating, replaying every second in his head, analysing every detail, every shift in Xinlong’s expression, and every syllable that might have held some deeper meaning.
.
.
Days pass, and there’s no text.
It sours Geonwoo's mood enough that he convinces himself he doesn’t care, and Xinlong probably collects the number of every good-looking guy that patronises the cafe. He's not special, it was just a friendly gesture at most, and if Geonwoo checks his phone more often than usual—well, that's his business.
Then, out of nowhere, a text arrives while he's in the middle of his routine brooding.
Unknown Number:
Hi, what’s up? I’m planning to cook some spicy malatang with egg shrimp sushi on the side for dinner. Would you like to join me? We could watch Netflix and chill afterwards.
Geonwoo stares at his phone.
The fuck?
A random number, texting him out of nowhere? Offering food? And not just any food—his favourite food?
Geonwoo narrows his eyes. This isn’t some basic, low-effort scheme; this is a scam. A well-researched, highly targeted scam, and he's so sure that his phone has been hacked.
In a rush, he screenshots the message and posts it to Twitter to his over 100 thousand followers.
“First scam text that’s almost gotten me 😂😂😂.”
The replies flood in immediately, people laughing at the absurdity and warning him not to fall for it.
Geonwoo takes it a step further and replies to the number, feeling smug in his own cleverness: Fucking scammer! 😝
He'll definitely need to report this to the store he purchased the phone from and see if he'll be given a new device since his warranty is still valid.
A new message pops up from the same number.
Unknown number: Wdym scammer??? You didn’t save my number???
Geonwoo laughs loudly, a full, genuine snort escaping him before he can help it. Wdym scammer???? You didn’t save my number??? He mocks with a theatrical face, echoing the message out loud.
The sheer audacity! What kind of a scammer fights back? The commitment is almost admirable.
He shakes his head, still grinning as he rushes to Twitter again with a screenshot of the growing conversation, quotes the initial tweet and captions it: “Nice try, idiot!"
More notifications flood in—laughing replies, people saying they'd totally fall for the scam, others debating whether the mention of malatang and sushi would be enough to break them.
Then, his phone vibrates again.
But this time, it’s a DM. From an account with the handle: @xin2short, and a display name Xinlong with a 🐉 emoji.
Geonwoo’s smirk falters, and his gut tells him something is wrong. Deeply and fundamentally wrong.
With a creeping sense of dread, he taps it open and is met with a cluster of angry texts, all in capital letters:
🐉Xinlong (@xin2short): EXCUSE ME??
🐉Xinlong (@xin2short): WTF DO YOU MEAN NICE TRY IDIOT.
🐉Xinlong (@xin2short): DID YOU JUST PUBLICISE ME AS A SCAMMER?
🐉Xinlong (@xin2short): I LITERALLY GOT YOUR NUMBER FROM YOU. WITH YOUR OWN HANDS.
🐉Xinlong (@xin2short): HELLO???
🐉Xinlong (@xin2short): ANSWER ME!!!
Geonwoo opens the account page, checks the profile picture, and his heart skips two beats as realisation hits him like a delayed crash.
Xinlong. Xinlong. The very real, very human, very pretty café boy that Geonwoo has been shamelessly pining after for months. The one who smiled at him like he was something interesting, the one who laughed at his stupid attempt at flirting instead of making fun of him, the one who had, against all odds, actually asked for his number.
And Geonwoo, who had been floating on air for days thinking about it, replaying the moment in his head like a delusional fool, totally forgot that Xinlong actually gave him his number in return, and he actually! never! saved! it!
His stomach drops out of his body, skin running cold.
The random, unknown number that texted him? The one he publicly exposed as a scam in front of a hundred thousand people? The one he mocked and accused of trying to con him into a fake dinner date?
It was Xinlong all along!
Geonwoo’s soul leaves his body at the speed of light.
His first instinct is to block Xinlong and never speak to him again. Maybe delete Twitter, throw his phone into the ocean, legally change his name, travel to a new country, and start life over.
His hand hovers over the block button, then he blocks!
Then he unblocks immediately because what the hell is he doing?!?!!
Instead, he does the only logical thing—starts typing in a frantic rush to apologise and salvage things.
🍞 Geonwoo: WAIT.
🍞 Geonwoo: I'm sorry!!!
🍞 Geonwoo: I CAN EXPLAIN.
The little typing bubble appears immediately. Geonwoo watches it like it’s a countdown to his execution.
🐉 Xinlong: oh I’d LOVE to hear it.
Geonwoo considers running out of his apartment and throwing himself into an oncoming vehicle.
🍞 Geonwoo: okay okay, so listen. This is gonna sound bad, but
🐉 Xinlong: IT ALREADY SOUNDS BAD.
🍞 Geonwoo: no but listen
🍞 Geonwoo: what if
🍞 Geonwoo: hypothetically speaking
🍞 Geonwoo: I got cursed.
🐉 Xinlong: …what? 😕
🍞 Geonwoo: listen. hear me out.
🍞 Geonwoo: what if a vengeful spirit erased my memory at the exact moment you gave me your number?
🍞 Geonwoo: like boom 💥 number gone. brain empty.
🍞 Geonwoo: and suddenly, I have no recollection of our entire interaction.
🐉 Xinlong: HYPOTHETICALLY????
🐉 Xinlong: YOU’RE ACTUALLY INSANE.
🍞 Geonwoo: NO BUT I'M TRYING TO EXPLAIN.
🐉 Xinlong: EXPLAIN WHAT??? HOW YOU PUT ME ON BLAST FOR SCAMMING YOU WHEN YOU WERE THE ONE WHO GAVE ME YOUR NUMBER???
🍞 Geonwoo: okay but in my defence…
🐉 Xinlong: OH THIS SHOULD BE GOOD.
🍞 Geonwoo: in my defence.
🍞 Geonwoo: I’M STUPID.
🐉 Xinlong: OH WOW, REALLY??? NEVER WOULD’VE GUESSED.
🍞 Geonwoo: listen it was a random number??? texting me about dinner??? you realize how suspicious that is, right?
🐉 Xinlong: Geonwoo, you met me in person. You flirted with me.
🐉 Xinlong: BADLY, MIGHT I ADD 🥹
🐉 Xinlong: AND THEN YOU. PERSONALLY. ENTERED. YOUR NUMBER. INTO. MY. PHONE.
🍞 Geonwoo: …okay, that part sounds fake.
🐉 Xinlong: IT HAPPENED FOUR DAYS AGO.
🍞 Geonwoo: nah idk man! sounds like propaganda.
🐉 Xinlong: Geonwoo… 🤬
🍞 Geonwoo: okay okay, I GET IT. I’M AN IDIOT. YOU DON’T NEED TO YELL.
🍞 Geonwoo: also wait. hold on. pause.
🍞 Geonwoo: how did you even know my favourite meal???
🐉 Xinlong: …are you joking?
🍞 Geonwoo: NO SERIOUSLY HOW DID YOU KNOW.
🐉 Xinlong: Geonwoo.
🐉 Xinlong: do you want to take a wild guess?
🍞 Geonwoo: is it… because of fate…
🐉 Xinlong: OH MY GOD 😩
🐉 Xinlong: NO.
🐉 Xinlong: IT’S BECAUSE YOU NEVER SHUT UP ABOUT IT ON TWITTER.
🍞 Geonwoo: …
🍞 Geonwoo: Oh.
🍞 Geonwoo: wait
🍞 Geonwoo: HOLD ON
🍞 Geonwoo: HOW DO YOU KNOW WHAT I POST ON TWITTER
🐉 Xinlong: OH MY GOD YOU’RE ACTUALLY DENSE.
🐉 Xinlong: CHECK WHO YOU FOLLOW, GENIUS.
🍞 Geonwoo: oh my god.
🍞 Geonwoo: OH MY GOD.
🍞 Geonwoo: WE’VE BEEN MUTUALS THIS WHOLE TIME???
🐉 Xinlong: YES.
🐉 Xinlong: and the way I found out you actually didn't save my number was because I saw your tweet calling me a scammer.
🍞 Geonwoo: …
🍞 Geonwoo: wow
🍞 Geonwoo: that’s crazy
🍞 Geonwoo: small world
🐉 Xinlong: i am going to throw you into the sun.
🍞 Geonwoo: Okay, wait let me fix this.
🍞 Geonwoo: can i still come over?
🐉 Xinlong: …
🐉 Xinlong: oh now you wanna come over, huh?
🐉 Xinlong: now that you know I’m not a scammer.
🍞 Geonwoo: YES PLEASE I’VE BEEN THROUGH A LOT.
🐉 Xinlong: YOU HAVE BEEN THROUGH NOTHING.
🐉 Xinlong: I’M THE ONE WHO GOT PUBLICLY ACCUSED OF BEING A CRIMINAL.
🍞 Geonwoo: OKAY BUT THINK ABOUT IT.
🍞 Geonwoo: WHAT’S A BETTER APOLOGY THAN LETTING ME EAT YOUR FOOD?
🐉 Xinlong: oh my god.
🍞 Geonwoo: PLEASE, I’M BEGGING YOU. I’M ON MY KNEES.
🐉 Xinlong: YOU HAVE NO SHAME.
🍞 Geonwoo: I REALLY DON’T.
🐉 Xinlong: …
🐉 Xinlong: fine. come over.
🐉 Xinlong: but first, take down that heinous tweet, or I'll actually poison your next boba order.
🍞 Geonwoo: understood.
🍞 Geonwoo: can’t wait for our date. 🕺
🐉 Xinlong: WHO SAID IT WAS A DATE? 😏
🍞 Geonwoo: oh so now you’re scamming me for real?
🐉 Xinlong: I’M GOING TO BLOCK YOU.
🍞 Geonwoo: ok wait before you block me, give me your address and time
🐉 Xinlong: are you really going to come?
🍞 Geonwoo: YES ARE YOU KIDDING ME I AM ALREADY PUTTING MY SHOES ON
🐉 Xinlong: Jesus
🐉 Xinlong: alright, sending it now. don’t be late.
🍞 Geonwoo: sir yes sir 🫡
🐉 Xinlong: and bring wine.
🍞 Geonwoo: SO IT IS A DATE
🐉 Xinlong: STOP TYPING AND JUST SHOW UP.
🍞 Geonwoo: see you soon, scammer 💙
Geonwoo stomps his foot like a main character in a rom-com, followed by a muffled squeal into his hands as he stands and spins in place, a full-body manifestation of unbridled glee.
Little hearts float around his head, like the entire world has conspired to give him the best possible outcome after being the dumbest person alive.
He’s going on a date with Xinlong, his café crush, and the boy he accidentally called a scammer in front of thousands of people.
The joy falters just slightly.
“Oh,” Geonwoo says aloud, the sound brittle. “Right.”
He lunges for his phone and rushes to Twitter, deleting the original tweet so fast his fingers cramp. Then, he immediately fires off a new one.
“UPDATE: IT WAS NOT A SCAM. I AM JUST AN IDIOT. ANYWAY, I’M GOING ON A DATE. GOODBYE.”
Within seconds, his notifications explode.
Geonwoo barely skims them, catching fragments. People are screaming via emojis, and others are demanding updates. Someone calls him brave, another person calls him stupid. A few other handles threaten to block him if he doesn’t live-tweet the date.
He snorts, dropping the phone onto his bed, flopping down beside it. The mattress bounces, and his legs kick up into the air, heels thumping against the wall before he curls onto his side, laughing into his pillow like he’s seventeen again and everything feels brand new and impossibly big.
His face hurts from smiling, but he doesn’t care because he bagged his crush. Even if he got him by being catastrophically, publicly foolish.
If this is the cost of happiness, Geonwoo thinks, burying his face deeper into the pillow, he’ll pay it every time.
Then belatedly, a new, much more terrifying problem presents itself.
What does he wear to the date??
