Work Text:
The dorm was unusually quiet that night. James, Martin, and Juhoon had all gone out to get food together, leaving only Keonho and Seonghyeon behind.
They ended up in the living room, sprawled on the couch with YouTube playing on the TV. Not their own videos, of course—some random chaotic compilation of babies crashing out.
Keonho was laughing way too hard, head tilted back, the sound filling the whole room. Seonghyeon sat beside him, legs folded up, a small smile tugging at his lips as he glanced sideways at him.
“You laugh like you’re auditioning for a drama,” Seonghyeon muttered, grabbing a throw pillow and tossing it at Keonho.
Keonho caught it with one hand, smirk already forming. “And you laugh like you’re scared the neighbors will complain if you get too loud.”
“I’m normal,” Seonghyeon argued, but his voice wavered slightly when Keonho suddenly shifted closer on the couch, narrowing the space between them.
“Normal?” Keonho raised a brow. “Nah. You’re way too easy to mess with. Look at you—already nervous and I didn’t even say anything yet.”
“I’m not nervous,” Seonghyeon protested, though his ears burned red as he pulled the pillow back into his lap.
Keonho leaned in, resting an elbow on the back of the couch so his face hovered just inches away. “Then why are you hiding behind a pillow like a middle schooler with a crush?”
Seonghyeon rolled his eyes, trying to laugh it off. “You’re so annoying.”
“So what you like it ” Keonho shot back, voice lower now, teasing but edged with something else.
The air shifted. It was subtle, but Seonghyeon felt it—like the space between them had been charged all along, waiting for this exact second. His throat went dry.
He tried to push the pillow up between them, but Keonho caught it easily, tugging it away and tossing it aside. Their knees brushed. Then their thighs.
Seonghyeon’s breath stuttered. “Wait..” His voice was quieter now, stripped of all banter.
Keonho just smirked, watching him squirm for a moment longer before finally letting the playful mask slip, just slightly. “You gonna tell me to back off?”
Silence stretched. Seonghyeon didn’t answer. He just stared, caught somewhere between stubbornness and surrender, his fingers curling against the fabric of the couch.
And then Keonho leaned in, closing the distance—slow, giving Seonghyeon every chance to move away. He didn’t.
Their lips met softly at first, barely more than a brush. But the second Seonghyeon sighed against his mouth, Keonho deepened it, one hand sliding up to the back of his neck, holding him there.
By the time they pulled apart, Seonghyeon’s cheeks were blazing, his hoodie collar pulled slightly out of place, and his heart beating way too fast.
Keonho leaned back just enough to study his face, grin spreading again. “Knew you wouldn’t tell me to back off.”
Seonghyeon groaned, burying his face in his sleeve. “I hate you.”
“No, you don’t,” Keonho said smoothly, smug as ever.
The kiss should have ended there. It should’ve been a quick, teasing thing—something they could laugh about later, brush off like it was nothing. But it didn’t end.
Seonghyeon felt it first—the way Keonho didn’t pull back right away. His hand lingered at the back of Seonghyeon’s neck, thumb grazing his skin in a way that made shivers race down his spine. Their lips stayed just close enough that he could still feel Keonho’s breath ghosting across his mouth, warm and deliberate.
“Still not telling me to back off,” Keonho murmured, voice husky now, amusement threaded with something heavier.
Seonghyeon swallowed hard, caught in the intensity of his gaze. His hands twitched against Keonho’s hoodie, wanting to push him away but tightening instead, clutching lightly at the fabric. He hated how obvious it felt—how much his body betrayed him.
Keonho noticed, of course. He always noticed. His smirk deepened as he leaned in closer, until their foreheads brushed, until Seonghyeon was practically pressed into the couch cushions.
“You’re too easy to read,” Keonho whispered. His free hand slid down, fingertips brushing along Seonghyeon’s knee before resting casually on his thigh. Too casual. Deliberately casual.
Seonghyeon’s breath hitched. He froze, staring at him wide-eyed, every nerve lit up from that simple touch.
“Keonho—” His voice cracked on the name, soft, almost pleading.
“Mm?” Keonho tilted his head, feigning innocence but letting his hand stay right there, heavy and warm against his leg. His thumb moved just slightly, a teasing drag over the fabric of his sweatpants.
Seonghyeon bit the inside of his cheek, desperately trying not to make a sound. His chest rose and fell unevenly, his hoodie sliding further off one shoulder.
The silence between them grew hot, unbearable, the kind that made it impossible to think about anything except how close they were, how easy it would be to fall further.
And just when it felt like the air might snap in half—
The front door clattered open.
“WE’RE BACK!” Martin’s voice carried through the dorm, loud and unbothered.
Seonghyeon jerked back instantly, shoving himself upright on the couch, cheeks flaming. He tugged his hoodie collar higher, avoiding Keonho’s eyes like his life depended on it.
Keonho, though? He leaned back lazily, stretching an arm across the back of the couch, a smug smile tugging at his lips. He didn’t look fazed at all—in fact, he looked almost proud.
Juhoon wandered in first, holding bags of food, followed by James and Martin bickering about fries. James stopped mid-sentence, narrowing his eyes at the sight of Keonho’s shit-eating grin and Seonghyeon’s way-too-red face.
“…what did we miss?” James asked slowly.
“Nothing!” Seonghyeon blurted, way too fast.
Keonho smirked, finally tearing his gaze from him to glance at the others. “Yeah,” he drawled, lips quirking up, “nothing at all.”
But when the others turned their attention back to the food, Keonho leaned in just enough for Seonghyeon to hear, his voice low and taunting:
“You can lie to them all you want. But you and I both know you didn’t want me to stop.”
Seonghyeon’s breath caught, heat rising all over again, and he swore Keonho’s grin would be the end of him.m
The living room quickly turned into chaos once everyone returned. Bags of takeout were dumped onto the coffee table, soda cans cracked open, and Martin immediately claimed the best spot on the couch like a king.
“Yah, move over,” James grumbled, shoving at him until Martin nearly spilled his fries.
Juhoon sighed, already unfolding one of the extra blankets from the closet. “You’re all acting like kids. Again.”
It didn’t take long for them to settle into their usual mess: the TV switched to Netflix, snacks scattered everywhere, and blankets piled across their laps. Seonghyeon found himself wedged between Juhoon and Keonho, the kind of seating arrangement that looked perfectly normal to everyone else. To him, though, it felt like every second was a battle not to give himself away.
Because Keonho hadn’t stopped.
Not completely.
At first it was subtle—the brush of his knee against Seonghyeon’s under the blanket. The kind of casual contact that could easily be ignored. But then his hand shifted, fingers barely grazing along Seonghyeon’s thigh under the shared fabric.
Seonghyeon’s whole body went rigid. He fixed his eyes firmly on the TV, pretending to pay attention to the opening credits of the movie. His hand twitched in his lap, wanting to swat Keonho’s away, but if he moved too much, the others would notice.
Beside him, Keonho stayed maddeningly relaxed, expression neutral as if nothing at all was happening. Only the faint curve at the corner of his mouth betrayed him.
“Pass the fries,” Martin said, reaching blindly across the table.
James smacked his hand away. “You already had half of them.”
“Sharing is caring, bro.”
Juhoon groaned, dragging the blanket higher over his head. “Can you two not fight for one movie night?”
Seonghyeon forced a laugh at their bickering, hoping the sound covered the sharp inhale he made when Keonho’s fingers pressed just a little firmer against his thigh. Heat rushed through him, hidden beneath the blanket, his pulse hammering loud enough that he was sure someone would hear.
He dared a glance sideways, just once. Keonho was leaning back against the couch, one arm thrown casually over the backrest, his face illuminated by the TV’s flicker. He looked so casual it was infuriating. And when their eyes met, he smirked—small, deliberate, like a secret only they shared.
Seonghyeon jerked his gaze away immediately, cheeks burning, his hands fisting in the blanket to keep from reacting.
“Why’s your face so red?” Martin suddenly asked, squinting at him through the dim light.
Seonghyeon stiffened. “It’s not.”
“Yes, it is.” James leaned over to inspect. “Bro, are you sick or something?”
“I’m fine,” Seonghyeon snapped, tugging the blanket higher over his chin. “Just—hot in here.”
Juhoon raised a brow. “We literally just turned the heater on like ten minutes ago—”
“Exactly. Hot.”
The others shrugged and turned back to the screen, buying his excuse easily. But Seonghyeon could feel Keonho’s quiet laugh rumble beside him, the vibration carrying through the couch cushions.
A hand squeezed his thigh once, quick and sure, before retreating. Enough to make him choke on his soda and set it down too quickly.
The movie played on. The dorm filled with the usual noises of their group—Martin’s dramatic commentary, James shushing him, Juhoon sighing at both.
The end credits faded into silence, the TV screen dimming. The only sounds in the dorm now were Martin’s light snores and the soft hum of the heater.
Keonho hadn’t moved his eyes from Seonghyeon once.
Seonghyeon swallowed, his whole body taut under the blanket. “Why are you staring at me like that?” he whispered, his voice breaking just slightly.
Keonho tilted his head, smirk flickering. “You look a bit too good right now.”
The words landed heavy, sinking into Seonghyeon’s chest. He opened his mouth, some shaky denial already forming, but he never got the chance.
Keonho leaned in first.
It wasn’t rushed, wasn’t clumsy—it was deliberate. His hand slid up from the blanket to cup the side of Seonghyeon’s neck, warm and steady, pulling him just close enough. The tip of his nose brushed against Seonghyeon’s, lingering there, a ghost of a touch, like he was giving him every second to back away.
Seonghyeon didn’t move. He couldn’t.
Then, softly—like it had been inevitable all along—Keonho’s lips pressed against his.
It was slow at first, just like the first time. But the moment Seonghyeon exhaled, trembling, and let himself lean in, Keonho deepened it. His thumb brushed under Seonghyeon’s jaw, tilting him up, claiming him more fully now.
Seonghyeon’s hand twitched against the blanket, fisting it tight as if it were the only thing keeping him grounded. The warmth of Keonho’s mouth, the quiet dominance in the way he guided the kiss—it left him dizzy, a rush pounding through his veins.
When they finally broke apart, it wasn’t much. Just enough to breathe. Their foreheads rested together, the air between them hot and fragile.
“Still pretending?” Keonho murmured, voice low, teasing, but edged with something heavier now.
Seonghyeon’s eyes fluttered open, glassy and uncertain, but his answer came out barely above a whisper.
“…No.”
Keonho’s smirk curved again, slower this time, like he’d known all along.
Then Keonho kissed him again, slower this time, but firmer—like he wanted to savor the way Seonghyeon trembled under him. His hand slid from Seonghyeon’s neck down to his shoulder, anchoring him close, keeping him from pulling away even if he wanted to.
Seonghyeon didn’t.
The blanket shifted as he leaned in deeper, almost without realizing, pressing into Keonho’s chest. The weight of the contact sent sparks through him, his pulse racing loud in his ears.
Keonho’s lips pulled back just enough to let out a low chuckle, his forehead resting against Seonghyeon’s. “Knew it,” he whispered, his breath warm against his skin.
Seonghyeon’s hand, still fisted in the blanket, loosened slowly. Almost shyly, it lifted, fingers brushing over Keonho’s hoodie, gripping at the fabric like he needed something to hold onto. His cheeks burned, but his body moved before his head could catch up, shifting forward until he was practically straddling Keonho’s lap under the safety of the blanket.
Keonho’s smirk widened instantly, eyes flicking darker as he looked up at him. “Oh, you’re bold now,” he teased, voice a low drawl that made Seonghyeon’s stomach twist.
“Shut up,” Seonghyeon muttered, though it came out breathless.
“Make me.”
The words were barely out before Seonghyeon leaned in and kissed him again—messier this time, his nerves bleeding into urgency. Keonho met it eagerly, his hands sliding down, firm at Seonghyeon’s waist, guiding him down against him. The pressure, the friction, made Seonghyeon gasp softly into his mouth, breaking the kiss.
“Careful,” Keonho whispered, though the glint in his eye betrayed him. “They’re still right there.”
But his hands didn’t stop moving—one slipping under the back of Seonghyeon’s hoodie, fingers dragging along warm skin. The touch was searing, enough to make Seonghyeon bite his lip hard, trying to stifle the sound that wanted to escape.
“Keonho…” he whispered, his voice strained, unsure if it was a plea for him to stop or to keep going.
Keonho’s thumb pressed into the hollow of his hip, grounding him, before leaning up, lips brushing against his ear. “You don’t sound like you want me to stop.”
Seonghyeon shivered, his head dropping against Keonho’s shoulder, teeth sinking into his lip as his body betrayed him—leaning into the touch, into the heat, into him.
Keonho’s smirk softened into something else as he held him there, hands steady, his lips ghosting along Seonghyeon’s jaw before capturing his mouth once more.
Seonghyeon’s breath hitched as Keonho’s hand pressed firmer at his hip, guiding him in slow, deliberate movements against his lap. The friction was enough to send fire coursing through him, every nerve lit, his thighs tightening around Keonho’s.
He clutched at Keonho’s hoodie with both hands now, fingers digging into the fabric as if he could ground himself that way. His forehead pressed against Keonho’s, lips parted, silent gasps slipping out no matter how hard he tried to bite them back.
“Mm—see?” Keonho whispered, voice a low rumble that vibrated against him. His smirk curved, but his eyes burned darker, more serious now. “Feels better when you stop fighting it.”
“Shut up,” Seonghyeon muttered again, but it broke into something closer to a whimper as Keonho’s hand slid further under his hoodie, palm splayed warm against the bare skin of his waist. The contact made him jolt, his nails curling tighter into Keonho’s chest.
Keonho’s other hand slid down, from his hip to the curve of his thigh, fingers squeezing firmly before tugging him down harder against him. The motion drew a sharp sound from Seonghyeon’s throat, quickly muffled as he buried his face into Keonho’s neck.
“Thought you wanted to keep quiet,” Keonho teased, his lips brushing Seonghyeon’s ear now, sending a shiver through him.
“You’re—” Seonghyeon breathed, his voice ragged, “—you’re impossible.”
Keonho chuckled low, tilting his head so his lips ghosted along Seonghyeon’s jaw, down to his neck.
His teeth grazed skin just below Seonghyeon’s ear, and Seonghyeon’s body tensed, a soft gasp escaping before he could stop it. The sound seemed to fuel Keonho, his hands tightening, grinding him down with slow, devastating precision.
Seonghyeon lifted his head just enough to meet Keonho’s gaze, their breaths colliding, lips a whisper apart. His eyes were glassy, torn between resistance and surrender—but the way his hips shifted down again, instinctively, betrayed him.
Keonho caught it instantly. His smirk softened into something hungrier, thumb brushing under Seonghyeon’s hoodie against the sharp curve of his ribs. “There it is,” he murmured, eyes locked on him. “Knew you wanted this.”
Seonghyeon swallowed hard, his lips trembling with the words he couldn’t seem to say. So instead, he kissed him—hard, desperate, muffling the sound of his own broken breath against Keonho’s mouth.
Keonho grinned into it, kissing back rougher now, his hand sliding higher under the hoodie, fingers grazing dangerously close to his chest as his other hand gripped his thigh tighter, holding him firmly in place.
“Stop teasing me,” Seonghyeon breathed, eyes fluttering shut, lips parting. “I—ugh—can’t…”
“You can,” Keonho murmured against his ear, brushing strands of hair back, lips grazing his temple, jaw, and neck. “You want it as much as I do.”
Seonghyeon’s head fell against his shoulder, breath shallow, heart hammering. He couldn’t deny the magnetic pull, the way his body melted against Keonho’s, shifting in response to the subtle, maddening pressure, the teasing, almost grinding movements.
Keonho’s hands moved with purpose, one along Seonghyeon’s hip, the other tracing the curve of his ribs under the hoodie, each touch drawing small gasps and whispering pleas. “Keonho… stop… I—” he stammered, voice cracking with both resistance and desire.
Keonho only smirked, leaning closer, lips brushing against Seonghyeon’s jaw. “Not until you admit it,” he murmured. “That you can’t stop yourself either.”
Seonghyeon’s fingers tangled in Keonho’s hoodie, tugging slightly, breath hitching. “I—” He couldn’t finish; his body gave him away, pressing closer, tilting just enough to catch Keonho’s gaze. Their eyes met, dark, heated, and the tension coiled between them like a living thing.
Seonghyeon shifted again, instinctively grinding just slightly, hips pressing deeper into Keonho’s lap, the movement almost unconscious. Keonho’s hand tightened slightly at his hip, guiding him, and his other hand moved to rest lightly over Seonghyeon’s stomach, thumbs brushing teasingly.
“You’re impossible,” Keonho murmured, leaning in so their noses brushed, lips just shy of meeting. “I can feel every little reaction you try to hide.”
Seonghyeon gasped, fingers clutching Keonho’s hoodie, heart racing. “Keonho… I—ugh… I can’t…”
“Shhh,” Keonho whispered, voice velvet against his ear. “You don’t have to fight it. Just… feel it.”
