Chapter Text
-
I. The Court War Begins
The late afternoon sun wasn’t even that hot, yet Seonghyeon already felt his temper rising as soon as he stepped onto the court.
He’d been looking forward to this moment all day—the quiet thump of the basketball, the satisfying swish of a perfect shot, the rhythm that calmed his mind.
Instead …
Cones. Everywhere.
Neatly aligned. Strategically placed. A bright orange invasion.
Right in the middle of his sacred space.
And of course, the culprit stood in the middle of them, flicking a soccer ball up and down with casual perfection.
Keonho.
The soccer club’s golden boy.
The reason Seonghyeon’s blood pressure had increased since last semester.
And apparently … the reason he couldn’t practice in peace.
Seonghyeon stopped just at the edge of the court, narrowing his eyes. “You’ve got to be kidding me.”
Keonho looked up, sweat glinting on his neck, hair pushed back with a thin band that somehow made him look even more annoyingly athletic.
“Oh. It’s you,” he said. “The human traffic cone.”
Seonghyeon blinked. “What?”
“You’re always standing in my way,” Keonho said simply, tapping the ball with his heel.
Seonghyeon’s eyebrow twitched. “This is literally a basketball court. How am I the one in your way?”
“I said what I said.”
That was the thing about Keonho—his voice never rose, never snapped.
He irritated people purely through his sheer, calm audacity.
Seonghyeon stepped forward. “You’re using the court.”
“I am.”
“Why?”
Keonho tilted his head, thoughtful. “Because I’m practicing.”
“On a basketball court.”
“Yes.”
“You’re unbelievable.”
Keonho shrugged, picking up one of his cones. “Look, the soccer field is muddy from last night’s rain. Unless you want me slipping and dying in front of you—”
“Tempting.”
“Wow.” Keonho clutched his chest dramatically. “I didn’t know you cared so much.”
“I don’t!”
His voice cracked at the end, which only made Keonho grin like he’d won something.
Seonghyeon inhaled through his nose, rolling his shoulders.
Okay. Fine. He could ignore him. He would practice on the far side and pretend the other athlete didn’t exist.
He bounced the ball. Once. Twice.
THUD.
A soccer ball rolled across the space and hit his foot.
Seonghyeon stared down at it. “You’ve got to be kidding me again.”
Keonho jogged over, not looking the slightest bit sorry. “Sorry—my bad.”
“You said that too fast.”
“I’m very efficient,” Keonho replied, taking back the ball.
“You’re very annoying.”
“I get that a lot.”
“No. Only from me.”
“Ooh,” Keonho teased, smirk forming. “So I’m special.”
Seonghyeon nearly choked on his own breath.
“I—NO—That’s not what I—”
“It’s okay,” Keonho said with a shrug. “Most people tend to like me.”
“Well, I don’t.”
“Mm. Denial stage.”
“I’M NOT—”
A whistle sounded from across the field.
A group of underclassmen passing by slowed down, whispering to each other.
“Basketball and soccer guy are fighting again …”
“They’re worse than my parents …”
“Do you think they’ll punch each other one day?”
“No, I think they'll kiss first.”
Seonghyeon and Keonho both turned sharply.
The first-years sprinted away like their lives depended on it.
“Ignore them,” Seonghyeon muttered, cheeks warm.
Keonho smirked. “They have interesting predictions.”
“Shut up.”
But the moment’s heat stayed—unspoken, subtle.
“So,” Seonghyeon said, clearing his throat. “We’re sharing.”
Keonho raised a brow. “And who decided that?”
“Me.”
“I don’t take orders from basketball heads.”
Seonghyeon crouched down, grabbed a piece of chalk from his bag (because he always marked drills), and drew a thick line across the middle of the court.
Keonho watched, amused. “You’re serious?”
“Dead serious.”
He stood, dusting his hands. “Left side is yours. Right side is mine. Don’t—”
THUNK.
The soccer ball hit his shoulder again.
Seonghyeon slowly, slowly turned his head. “You. Did. Not.”
Keonho blinked innocently. “Oops. Slipped.”
“That didn’t slip. You aimed.”
“I always aim. It’s literally my sport.”
Seonghyeon let out a noise of pure frustration. “You know what? Fine. Fine. Let’s play.”
Keonho’s eyes glinted. “Play what?”
“A challenge. First one to cross the line—loses.”
“And the winner gets the full court,” Keonho guessed.
“Exactly.”
Keonho smirked, rolling the ball under his foot. “You’re on, basketball boy.”
“Bring it, soccer brat.”
And so the competition began.
Every drill. Every shot. Every sprint. Every bounce.
They weren’t just practicing.
They were watching each other. Studying each other. Matching energy for energy.
More than rivals. More than enemies.
Somewhere between a long-range shot and Keonho’s perfect dribble, Seonghyeon felt a strange, dangerous thrill run up his spine.
And when their eyes locked across the chalk line—
Sharp. Heated. Charged.
It felt like the real beginning of something neither of them could undo.
The court had never been this loud.
Not because of other students. Not because of practice noise.
But because two idiots were determined to pretend they weren’t watching each other while absolutely watching each other.
Seonghyeon wiped his forehead with the back of his hand, fingers trembling with adrenaline as he lined up another three-point shot.
Behind him, he could hear Keonho’s footsteps—quick, sharp taps against the ground, the ball flicking between his feet like it had a mind of its own.
He told himself he wasn’t listening. He was extremely listening.
The shot left his fingers—clean, smooth—
swish.
He heard Keonho scoff.
“Oh? That was actually decent.”
“Decent?” Seonghyeon spun around. “That was perfect.”
Keonho juggled the soccer ball on his thigh, not even giving him the satisfaction of a full glance. “For a basketball player.”
“You—” Seonghyeon stepped forward, foot crossing the chalk line without thinking—
PIIIIP!!!
A referee whistle. Except not from any referee.
From Keonho, who had somehow pulled a tiny whistle from his pocket.
“What—WHY DO YOU HAVE THAT?”
“Line violation,” Keonho announced, pointing at Seonghyeon’s foot. “Point to me.”
“That’s not how this works!”
“I make the rules,” Keonho said calmly, blowing the whistle again.
Seonghyeon wanted to throw his ball at him.
He wanted to shove him.
He wanted to—
—no, not that.
Definitely not whatever his brain just attempted to conjure.
“Fine,” he growled. “If we’re making rules—no unnecessary noise.”
Keonho blinked innocently and whistled louder.
“I’m going to lose my mind.”
“You already have.”
Before Seonghyeon could snap back, a breeze rolled through—cooling the heat on his neck, carrying the sound of sneakers and cleats and the quiet muffled laughter from a group of first-years hiding behind the bleachers to watch “the show.”
They were whispering again.
“Bet they’re gonna yell.”
“No, they’re gonna fight.”
“Nah bro, look at the way they’re staring. They’re gonna—”
“GET OUT OF HERE!” Seonghyeon yelled.
The first-years screamed and ran.
Keonho chuckled under his breath.
“What’s funny?”
“Nothing,” he said, tapping his ball. “You’re just dramatic.”
“And you’re just—annoying.”
“Mm. You say that a lot.”
“Because it’s true!”
Keonho smirked. “Then why do you keep coming here even when I’m here?”
“I—BECAUSE—” He sputtered, looking for any excuse that didn’t sound completely pathetic. “Because I’m not scared of you.”
“You should be.”
Their eyes locked again.
Not the usual irritated glance.
Something sharper. Deeper.
A tension that wasn’t just anger—something hotter curling under it.
Seonghyeon swallowed.
He needed to move. Do something.
Anything to break this stupid moment that felt too … charged.
So he dribbled backward.
“Okay. Challenge time for real,” he declared. “You score from there, I’ll go closer. First one to get three points wins.”
“And full court control?”
“Exactly.”
Keonho’s competitive grin arrived instantly—bright, cocky, and lethal.
“You’re on, basketball boy.”
“Let’s see that confidence after you lose, soccer brat.”
They started.
And gods—it escalated fast.
Keonho kicked a perfect corner shot.
The ball curved beautifully.
Point: Keonho.
Seonghyeon took a deep breath, lined up his shot, exhaled—
Swish.
Point: Seonghyeon.
The rhythm built. They moved faster.
Shots turned sharper. Trash talk turned hotter.
“You’re slow today, old man.”
“I’m literally one months older than you—”
“Exactly. Ancient.”
“Oh you’re DEAD.”
They collided once—shoulder to shoulder—
the force sending a shock up Seonghyeon’s arm.
He stepped back, heart thudding.
“Watch it,” he muttered.
Keonho didn’t move away.
He stayed close. A little too close.
“You crossed the line again,” Keonho said softly.
“So did you.”
Their chests brushed.
Neither stepped back.
The air between them stretched—thin and electric.
For a moment …
For a heartbeat …
It didn’t feel like rivalry.
Or annoyance.
Or sport.
It felt like—
Thunder cracked in the distance.
They both blinked, stepping apart at the exact same time.
“Tsk.”
“Agh.”
“Whatever.”
“Whatever.”
The sky rumbled again.
Seonghyeon looked up. “Great. Rain.”
“We’re not done,” Keonho said.
“Then hurry up.”
They set up for the last round.
Thunder rolled again. Wind picking up. Rain ready to fall.
And just before they took their final shots—
A single drop hit the center of the chalk line.
Then another. Then a thousand.
The rainstorm hit fast.
But neither of them stopped.
Both of them shooting. Both scoring.
Both refusing to lose to the other.
Water drenched their hair, their clothes sticking to their skin, breath coming out in uneven bursts.
A final shot. A final kick.
Two balls soared through the rain at the same time—
And just as they landed—
BOOM.
Lightning.
The court went dark for a second.
And both balls hit their targets perfectly.
A tie.
“Of course,” Seonghyeon muttered.
“Figures,” Keonho said with a smirk, rain sliding down his face. “We’re too evenly matched.”
Seonghyeon glared. Keonho stared back.
Rain pounding around them.
Breaths heavy. Clothes clinging. Touching distance.
The rivalry wasn’t just intense—
It was dangerous now.
Because something else was starting to grow beneath it.
And neither of them could admit it.
Not yet.
II. The Thunder That Breaks the Walls
The rain didn’t just fall. It poured.
The kind of downpour that blurred the edges of the world, turning the court into a slick, echoing puddle of sounds—dripping nets, bouncing rain on asphalt, the quiet thump of two exhausted hearts.
Seonghyeon pushed his wet bangs out of his eyes, blinking through the haze. “So … it’s a tie.”
Keonho stood a few meters away, drenched to the bone, white shirt clinging dangerously to every muscle he refused to admit he trained for aesthetics.
“Seems like it,” Keonho said, kicking at the puddle under his cleats.
“You could just agree that I would’ve won if it didn’t rain.”
“Funny,” Keonho said, tilting his head. “I was thinking the same thing about you.”
Seonghyeon blinked. “Huh?”
“I think you would’ve won.”
“W—what?”
Keonho shrugged. “Your shooting was cleaner today.”
Seonghyeon felt his brain glitch for a full second.
Did … Did Keonho Ahn from the soccer club just give him a compliment??
“No take-backs,” Seonghyeon blurted.
“I’m not taking anything back.”
“Good.”
“Good.”
Silence.
Rain.
Eyes lingering too long again.
This was stupid.
This was dangerous.
This was—
A sudden shiver crawled up Seonghyeon’s spine.
He rubbed his arms. “I’m freezing.”
Keonho exhaled, annoyed but not annoyed, the kind of tone that said this idiot is impossible except he said it like he was used to it.
“There’s a shelter by the equipment room,” Keonho said. “Come on.”
Seonghyeon hesitated.
Go into a tiny, cramped shelter with his rival, while both of them were soaked and weirdly quiet?
“Fine,” he muttered.
The shelter space was barely a room—just enough for a bench, a water dispenser, and hooks for equipment bags.
When they ducked inside, the sound of the storm dulled to a steady roar against the metal roof.
Seonghyeon squeezed water from his shirt with a wince. “My whole bag is soaked.”
“Mine too,” Keonho sighed.
They stood there, dripping, awkwardly avoiding each other’s eyes.
Then— Keonho reached into his bag and took out a small towel.
“Here.”
“No, it’s okay.”
“You’re shaking.”
“No, I’m fine.”
“You look like a wet cat.”
“—give it to me.”
Seonghyeon snatched the towel with a glare, but his ears were red.
He started patting his hair dry.
Keonho watched him for a moment, then leaned back against the wall, arms crossed.
“You’re stubborn,” Keonho said.
“You’re bossy.”
“You’re loud.”
“You’re worse.”
“But …” Keonho smirked, eyes low.
“You’re fun to compete with.”
The towel slipped from Seonghyeon’s hand.
“I—I’m what?”
“Fun,” Keonho repeated. “You push me. I like it.”
Seonghyeon felt his heart stutter.
He looked away quickly, pretending to focus on drying his arms.
“Well, you’re … also …”
He swallowed. “Annoying.”
Keonho laughed. “I’ll take it.”
Thunder rumbled. The shelter shook faintly.
Keonho’s voice dropped without warning. “Hey.”
Seonghyeon’s head snapped up. “What?”
“You should change your shirt.”
“Why—”
“You’re going to get sick if you stay in that.”
Seonghyeon looked down.
His shirt was practically see-through now, skin cold and goosebumped.
He muttered, “I … didn’t bring a spare today.”
Keonho paused.
Then—
He pulled off his own jersey.
Just like that. No hesitation. No shame.
Just toned abs, tanned skin, muscles sculpted from endless drills.
And then he held out the dry shirt underneath.
“Here,” Keonho said quietly. “Wear mine.”
Seonghyeon forgot how to breathe. “Wha—why??”
“Because you’re shaking,” Keonho said, voice flat but eyes softer than they should be. “And because I’m not carrying you to the nurse’s office if you collapse.”
“I’m not going to—”
“You will.”
“Will not.”
“You literally shivered five seconds ago.”
Seonghyeon scowled. Keonho raised an eyebrow.
“Take it,” he said.
Seonghyeon snatched it with a glare, cheeks burning. “Thanks.”
“Mm.”
He turned away so Seonghyeon could change.
But he was smiling slightly—
the kind of smile that meant he’d gotten under Seonghyeon’s skin again.
And maybe …
maybe Seonghyeon didn’t hate it as much as he pretended to.
The storm grew heavier.
The metal roof above the shelter rattled with every drop, the sharp thuds echoing in the small space. The air smelled like rain and wet asphalt, thick and cold enough to make goosebumps rise on Seonghyeon’s arms—even after changing into Keonho’s dry shirt.
He had the oversized jersey pulled up to his chin like a blanket, trying not to shake again.
Keonho pretended not to notice.
At first.
But then—
A bolt of lightning struck somewhere close.
CRACK—BOOM!
It was loud. Too loud.
Enough to make the whole shelter vibrate.
And Seonghyeon— jumped.
Not a little flinch. Not a twitch.
He full-on jolted backwards like something hit him, breath catching, hands gripping the edge of the bench.
Keonho’s eyes widened. “You okay?”
“I—yeah. Yeah, obviously.”
Seonghyeon’s voice cracked embarrassingly on the last word.
Keonho stared at him for a long second.
Another rumble rolled through the sky.
This time, Seonghyeon didn’t jump outward— he froze.
Shoulders tight. Eyes fixed on the ground like he was bracing for impact.
“You’re scared of thunder?” Keonho asked softly, not teasing for once.
“No.”
Another BOOM.
Seonghyeon flinched so hard he nearly dropped the towel.
Keonho lifted a brow. “You were saying?”
“S-Shut up.”
But it came out weak. Small.
Not like the loud, confident Seonghyeon he usually knew.
A softer lightning crackled.
A softer boom followed.
And Seonghyeon’s fingers clenched into fists, nails digging into his palms.
Not dramatic. Not exaggerated.
Just scared.
Keonho stepped closer.
Slowly. Carefully.
“Hey.” He reached out, not touching him yet. “Look at me.”
Seonghyeon shook his head, hiding his face behind his sleeves. “No, you’re gonna laugh—”
“Why would I laugh?”
“Because it’s stupid.”
Another thunderclap—loud, sharp, right above them.
This time, Seonghyeon couldn’t pretend he wasn’t terrified.
He shot up from the bench by instinct—
straight into Keonho’s chest.
He froze.
Keonho froze.
Seonghyeon realized too late that he’d basically thrown himself into the one person he argued with every day.
His hands were fisting the front of Keonho’s shirt.
And he hadn’t let go.
Keonho looked down. “Oh.”
Seonghyeon flushed red. “Don’t. Say. Anything.”
“I wasn’t going to,” Keonho said quietly.
He brought his arms up—slowly, as if giving Seonghyeon a chance to pull away.
Seonghyeon didn’t.
So Keonho wrapped them gently around him.
Not tight. Not teasing.
Just warm. Steady. Grounding.
The thunder rolled again, but this time—
Seonghyeon didn’t jolt.
He exhaled shakily into Keonho’s shoulder.
“This is so embarrassing” he mumbled.
“It’s not,” Keonho said, his voice low near Seonghyeon’s ear. “You’re fine.”
“I’m not—”
“You’re fine,” Keonho repeated, firmer this time. “I’ve got you.”
The words landed heavier than they had any right to.
Keonho’s hand moved up, brushing through the damp strands of Seonghyeon’s hair, smoothing it back slowly. His thumb grazed his temple in a careful, comforting circle.
Seonghyeon shivered—
but not from the cold.
The storm roared again. The lights flickered.
Instinctively, Seonghyeon pressed closer, fingers curling tighter into Keonho’s shirt.
“You really are scared” Keonho murmured.
“Don’t make fun of me,” Seonghyeon muttered, voice muffled.
“I’m not.” Keonho’s grip tightened just a little.
“I’ll stay right here until it stops.”
That made Seonghyeon’s breath hitch.
“Why?” he whispered.
Keonho didn’t hesitate. “Because it’s you.”
The storm outside raged on—
but inside the tiny shelter, everything felt strangely warm.
And for the first time that day …
Seonghyeon wasn’t thinking about rivalry.
Or competition. Or the stupid chalk line.
Only the steady heartbeat against his cheek.
Only the warmth of arms that shouldn’t feel this safe.
Only the quiet truth settling between them—
Something was changing.
And neither of them could pretend not to feel it anymore.
The thunder had already rolled far into the distance, leaving only the light patter of rain dripping from the court’s metal roof. But Seonghyeon was still tense—shoulders tight, fingers curled, breath a little uneven.
Keonho noticed immediately. Of course he did.
He pretended he wasn’t staring, fiddling with his water bottle cap like it suddenly required deep engineering knowledge. But every few seconds his eyes flicked back to the basketball boy sitting on the bench.
Seonghyeon hadn’t said anything since he’d practically jumped into him during the thunderclap. He looked … embarrassed. And small. Which was weird, because nothing about Seonghyeon was small. Not his presence, not his voice, not his height.
Keonho cleared his throat. “You, uh … you good?”
Smooth. Very smooth. He cringed internally.
Seonghyeon looked up, caught off guard.
His ears were pink. “Yeah. Just—”
He waved a hand vaguely at the sky. “Thunder.”
Keonho nodded slowly, like he knew that already but was trying to look casual about it. “Oh. Yeah. No big deal.”
Silence.
Seonghyeon shifted, rubbing the back of his neck. “Don’t … tell the guys.”
Keonho blinked. “Why would I?”
“I dunno,” Seonghyeon muttered, eyes fixed on the floor. “You’d probably love making fun of me with your team.”
Keonho scoffed. “I’m not that much of an asshole.”
Seonghyeon glanced up, surprised.
Their eyes met just a second too long.
Keonho looked away first.
Another soft rumble of distant thunder rolled, and Seonghyeon’s shoulders twitched.
Not a jump—just a reflex. But Keonho noticed, because of course he did.
“Hey,” he said, softer this time.
“You’re really not scared anymore, right? I mean, we’re inside.”
Seonghyeon hesitated.
The honesty slipped out before pride could catch it. “A little.”
Keonho’s chest tightened.
He didn’t know why.
His voice came out quieter than he meant. “You can … sit closer, if you want.”
Seonghyeon froze. “Why?”
Keonho looked away again—at the court, at anywhere that wasn’t those brown eyes. “Just. In case it gets loud again.”
Seonghyeon stared at him, like he was trying to figure out whether this was a joke.
It wasn’t.
They sat there in a strangely thick silence until—slowly, hesitantly—
Seonghyeon scooted about three inches closer on the bench.
Not touching. Not even close. But closer.
Keonho’s heart did something stupid.
Something he absolutely refused to acknowledge.
“Better?” he asked, voice steady even though he felt anything but.
“Yeah.” It was soft. Real.
The rain outside eased into a quiet drizzle.
The tension between them did not.
Keonho cleared his throat again, suddenly too aware of how warm the air felt.
“Uh. We should … head back soon. Before your team freaks out and assumes I murdered you or something.”
Seonghyeon let out a small laugh—tiny, but genuine. “Yeah. They’d probably believe it.”
The awkwardness shifted then—not gone, but warmer.
Like something had cracked open just a bit.
They stood. Not touching. But closer than before.
As they walked out of the court, Keonho kept pace just half a step closer to Seonghyeon than he normally would’ve.
Just in case another thunderclap struck.
Not that he’d ever admit that.
Not yet.
III. Forced to Play Nice
The sky had cleared by the next afternoon, but the air was still thick and sticky—humid in that way that made tempers rise fast.
Perfect weather for disaster.
Seonghyeon arrived at the outdoor court early, dribbling his ball with the kind of focus that usually meant he was trying very hard not to think about something.
That something being last night. And thunder. And Keonho. Especially Keonho.
He tried not to look toward the field. He failed.
There he was—Keonho, hair still damp from a quick shower, jogging across the field while barking something at his teammates. Too loud. Too bright. Too confident.
Too distracting.
Seonghyeon clicked his tongue, scolding himself.
Look away. Don’t you dare—
“Yah, Seonghyeon!”
Coach’s voice slammed into him before the embarrassment could. “Come here for a second.”
Seonghyeon jogged over, ball under his arm. “Yeah?”
The basketball coach stood with the soccer coach, both of them wearing identical exhausted expressions, like two parents at the verge of grounding their kids for eternity.
Uh oh.
“We heard about the scheduling problem,” Soccer Coach said.
“And the arguing,” Basketball Coach added.
“And the shouting.”
“And the chalk line across the court.”
Seonghyeon winced. “That was … a joke?”
Both coaches stared with zero amusement.
“Anyway,” Soccer Coach continued, “here’s what’s going to happen. For the next two weeks, both teams will train here at the same time.”
“What—”
“But coach—”
Seonghyeon and Keonho’s voices overlapped from across the court.
Basketball Coach raised a hand, shutting them both up.
“You will take turns using the space. And to make sure it works …” He gestured between them.
“You two are in charge of coordinating the schedule.”
Silence. Horrified, slow-burning silence.
Keonho looked like someone had told him the sky was falling.
Seonghyeon looked like he might just walk into the nearest tree and never return.
“We will NOT work together,” Seonghyeon blurted.
“We will ABSOLUTELY not work together,” Keonho echoed.
The coaches didn’t care.
“Too late,” Soccer Coach said. “You’re both loud. You’re both stubborn. You both think you’re right. Perfect match.”
Perfect match.
Both boys turned red at the same time—for different reasons.
Basketball Coach pointed toward the court bench. “Sit. Talk. Figure it out. If we hear shouting, we’re adding another week.”
The coaches walked away.
Seonghyeon and Keonho stared at each other from across the court. It felt like a showdown scene in a drama. Except one of them still remembered the way the other had trembled at thunder.
Keonho shoved his hands in his pockets. “Let’s get this over with.”
Seonghyeon nodded stiffly. “Fine.”
They sat on opposite ends of the bench—an entire universe of awkwardness between them.
For a moment, neither spoke.
Finally, Seonghyeon cleared his throat. “So … time slots.”
“Yeah.”
They stared straight ahead.
“… You can take the first half,” Seonghyeon said suddenly.
Keonho blinked. “Why?”
“You’re faster at warm-ups. You’ll finish early.”
“Oh.” A beat. “Okay.”
Another pause.
Keonho kicked at the ground lightly. “Uh. Thanks.”
Seonghyeon shrugged, trying to look like he didn’t care.
He cared. Too much. He didn’t know why.
They sat in silence again, but it felt different this time. Less like a war.
More like … two boys awkwardly circling something neither could name yet.
Finally Keonho muttered, almost too quiet. “Yesterday … you know. With the thunder.” He hesitated. “You were brave.”
Seonghyeon’s head snapped toward him. “What? No I wasn’t—”
“You stayed,” Keonho said softly. “Even though you were scared.”
That shut Seonghyeon up fast.
He looked away, face warm. “Thanks.”
“Don’t mention it.”
Then—
as if realizing how soft he’d just been—
Keonho cleared his throat violently and sat up straight.
“A-Anyway! The schedule! Right! We should—uh—”
“Yeah. Yeah.”
They bent over the notebook together, shoulders brushing for the first time.
Both froze.
Neither moved away.
Not for a long moment.
Not until one of the soccer boys yelled from the field, “KEONHO! STOP FLIRTING AND GET BACK HERE!”
Keonho nearly threw the notebook into the sun.
“I'M. NOT. FLIRTING!!” he yelled back, voice cracking in pure mortification.
Seonghyeon laughed—bright and real.
And for the first time …
Keonho didn’t hate the sound.
He liked it a little too much.
Keonho practically combusted after his teammate’s shout.
He slapped the notebook shut so fast it made a sharp thwap.
“We’re done,” he said.
“We’re totally done. This is enough. More than enough.”
“You didn’t even write down the Thursday slot,” Seonghyeon pointed out, trying and failing to hide his grin.
“We’ll— figure it out later!”
Keonho stood up so quickly the bench squeaked under him.
“Separate! We should train separately! Like normal humans.”
“Uh-huh.”
Seonghyeon leaned back lazily, arms crossed, enjoying himself way too much.
“You’re kinda red.”
“I’m not—!” Keonho covered his face with both hands.
“THIS IS THE WORST.”
But it didn’t sound convincing. Not even to him.
He forced himself to lower his hands, trying to breathe like a calm and rational athlete. Except he wasn’t calm. Or rational. Or anything even close.
“Look,” he said, voice lower now, still flustered, “can we just act normal?”
Seonghyeon blinked up at him, feigning innocence.
“Normal like enemies? Or normal like … yesterday?”
Keonho’s jaw tightened. “Yesterday was—”
He swallowed. “Different.”
Different. Too soft. Too close. Too revealing.
A silence settled between them—not uncomfortable, but charged.
Like they were both waiting for the other to name something neither of them knew how to name.
Seonghyeon finally stood too, brushing off his shorts.
“Fine,” he said. “Let’s be normal.”
“Good.”
“Normal.”
“Exactly.”
They stared at each other.
Both very much not normal.
Keonho reached for the notebook at the same time Seonghyeon did.
Their fingers brushed.
Just barely. Just enough.
Both froze.
Keonho’s breath caught.
Seonghyeon’s eyes widened the tiniest bit.
Neither moved.
The notebook dangled between them like some cursed object binding their fates.
Keonho felt his pulse kick up—fast, loud, annoying.
Seonghyeon cleared his throat softly, looking away first.
“Uh. You can … take it.”
“No, you— you take it.”
“It’s literally your team’s schedule.”
“But you’re better at writing.”
“We both know that’s a lie.”
“Still—”
“Just— you—”
They ended up both holding it again.
This time, their hands didn’t accidentally touch.
They pressed together, palm to palm, because neither let go.
Slow inhale. Slow exhale.
Something dangerous in the air.
Something they both refused to acknowledge.
Until—
A soccer ball flew past them and slammed into the fence with a loud clang.
They jumped apart so fast the bench rattled again.
From the field, one of Keonho’s teammates shouted, “BRO STOP HOLDING HANDS AND COME BACK!”
Keonho wheezed in pure humiliation.
“We weren’t—!” He spun toward Seonghyeon, desperate.
“We weren’t, right?? Tell them we weren’t!”
Seonghyeon shrugged, eyes sparkling with mischief. “… I mean, technically—”
“SEONGHYEON PLEASE.”
The basketball boy finally cracked and laughed, warm and bright and absolutely unfair.
“Relax, Keonho. I know we weren’t.”
“THANK YOU.”
“… But it’s fun watching you panic.”
Keonho glared, cheeks burning. “You’re the worst.”
Seonghyeon smiled. “You didn’t think that yesterday.”
That shut Keonho up immediately.
Words fumbled in his throat, stuck between denial and something softer.
He gave up completely and marched toward his team, shouting over his shoulder. “We’re talking after practice!”
Seonghyeon called back, “Sure! About Thursday, right?”
“… YEAH. ABOUT THURSDAY.”
(Not really about Thursday.)
Later. After practice they met again by the bench—sweaty, tired, out of breath.
The sky was a deep blue now, dusk settling in.
Seonghyeon was the first to break the silence. “You okay?”
Keonho nodded. “Your laugh is annoying.”
“So you think it’s funny?”
“No.”
Lie.
They both knew it.
Then Seonghyeon shifted, rubbing the back of his neck. “So … we’re really doing this. Working together.”
Keonho exhaled slowly. “Yeah.”
“And we’re not … fighting?”
“Not yet,” Keonho said, but his voice was softer. “Maybe not as much.”
A small smile tugged at Seonghyeon’s lips.
“Well. Guess we’re stuck with each other.”
Keonho didn’t say anything for a long moment.
Then, quietly, “… Could be worse.”
Seonghyeon looked at him. Really looked.
And something gentle flickered there.
“Yeah,” he said.
“Could be a lot worse.”
Their eyes lingered longer than they should have.
Another almost-moment.
Another thing neither dared to touch.
Not yet.
IV. Collision Course
The coaches claimed it was a “friendly mixed scrimmage.”
Everyone else knew it was a horrible idea.
To “improve cooperation between clubs,” they mixed the soccer boys and basketball boys into two teams—half and half. It was chaotic from the start.
Balls flying everywhere. Different rules.
Different pacing. Zero coordination.
So naturally, Seonghyeon and Keonho ended up on the same team.
Of course.
It started badly.
Keonho barked, “Pass left!”
Seonghyeon shouted, “That’s literally the wrong direction!”
They tripped. Argued.
Stepped on each other’s shoes.
But somewhere around the ten-minute mark …
Something clicked.
A basketball-style screen from Seonghyeon blocked an opponent—
Keonho darted forward like lightning, stole the ball clean, and sprinted.
Everyone froze for half a second.
Did that actually just work?
“Again,” Seonghyeon muttered.
And they did.
And it kept working.
Every time they clashed into the same space, they adjusted.
Every shove became a redirect. Every glare became a silent signal.
At some point, someone on the sidelines whispered, “Why are they … good together?”
They were. Annoyingly good.
Keonho sprinted up the side.
A defender cut him off—
Seonghyeon stepped in, body angled just right.
Keonho slipped past effortlessly.
They shared a quick glance.
Not a glare. Not mockery.
Something sharper.
Something like—
I see you.
I’ve got you.
It was dangerous.
Keonho looked away first, ears red.
It happened fast.
Opposing player made a hard push—
Keonho received the ball—
Seonghyeon moved to support—
Feet tangled—
Bodies collided—
And Seonghyeon’s ankle twisted harshly when he landed.
He crumpled instantly.
“Seonghyeon?” Keonho’s voice broke before he even reached him.
No answer.
Just a sharp, quiet hiss of pain as Seonghyeon clutched his ankle.
Keonho dropped to his knees beside him so fast he nearly skidded on the grass.
“Hey—hey, look at me.”
His hands hovered uselessly, panicked, shaking.
“Seonghyeon. Talk. Say something.”
Seonghyeon gritted his teeth. “It’s— I’m fine.”
“You’re not fine.” Keonho’s voice cracked.
That alone made Seonghyeon look up in surprise.
“Keonho—”
“Don’t move,” Keonho snapped, louder than intended.
Then softer, almost trembling. “Please. Just … don’t move.”
Everyone watched.
The coaches jogged over—but Keonho was already there, already holding him steady, already more frantic than anyone else.
Soccer teammates exchanged looks.
Basketball teammates whispered.
Oh. Oh.
There it is.
They got Seonghyeon to the bench.
Keonho stuck so close it was like he’d been glued there.
He hovered, knelt, paced, returned, sat, stood—absolute mess.
“Does it hurt a lot?” Stupid question.
Seonghyeon was literally wincing.
“No, I twisted it for fun,” Seonghyeon muttered.
Despite the pain, he chuckled weakly when Keonho panicked.
“I’m kidding. It’s not broken.”
“That’s not funny.”
“It’s a little funny.”
Keonho glared at him with so much worry it looked like anger. “Why do you always act tough when you’re not?”
He grabbed the ice pack from the coach before anyone else could. “And why am I the one freaking out more than you?”
Seonghyeon blinked at him. “You’re … freaking out?”
“YES,” Keonho hissed, pressing the ice gently to his ankle.
“You nearly— I thought— just—” He shut his eyes, breathing hard.
“Don’t do that again.”
The world went quiet.
Seonghyeon stared at him—at the furrowed brows, the tight jaw, the hands that were shaking just slightly.
“You care?” His voice was soft. Too soft.
Keonho froze.
“… I’m not heartless,” he muttered.
“That’s not what I asked.”
Silence.
The kind that hangs heavy.
Humid. Charged. Dangerous.
Finally, Keonho spoke, voice barely above a whisper. “Of course I care.”
The sentence hung in the air like a confession.
Seonghyeon’s breath hitched.
“… Keonho.”
“Yes.”
“You’re holding my foot.”
Keonho startled so hard he almost dropped the ice pack.
“SORRY—! I— I was just— you weren’t— I mean— your ankle—”
Seonghyeon laughed, even while wincing. “Keonho. Relax. I’m not making fun of you.”
Keonho looked away, ears blazing. “You better not be. I’m … seriously worried.”
Something warm flickered between them.
Not explosive. Not dramatic.
Just real.
And terrifying.
Seonghyeon tried standing on his own.
It lasted exactly 0.4 seconds.
He hissed, ankle giving a sharp throb, and immediately grabbed the bench.
Keonho was at his side so fast he practically teleported.
“Hey—hey, don’t.”
He slid an arm around Seonghyeon’s waist, steadying him. “Just … don’t be stubborn.”
“I’m not stubborn,” Seonghyeon argued.
“You literally tried to walk on a dying ankle.”
“It’s not dying.”
“It’s dying.”
“It’s not—”
“I said it’s dying.”
Their faces were close. Too close.
Breath mixing. Sweat glistening on both their necks.
Seonghyeon swallowed. “Fine. Maybe you’re right.”
Keonho blinked. “Did you just say I’m right?”
“Don’t get used to it.”
Keonho’s ears turned pink.
It wasn’t a long walk—ten minutes from the school to the bus stop—but with Seonghyeon barely able to put weight on his ankle, it stretched forever.
Not that either of them complained.
Keonho kept one arm tight around Seonghyeon’s waist, steadying him.
Seonghyeon leaned more of his weight than planned.
Every few steps their hips bumped.
Every few seconds Keonho asked, “Okay?”
And every time Seonghyeon said, “I’m fine,” even though his face said ouch.
“You walk weird,” Keonho muttered at one point.
“I’m injured, Keonho.”
“… Right.”
They walked in silence for a while until Seonghyeon spoke, voice softer, “Thanks. For helping.”
Keonho’s grip tightened unconsciously. “You don’t have to thank me.”
“I do.”
“You really don’t.”
“I want to.”
Keonho nearly tripped over his own feet. “Don’t— Don’t say stuff like that so casually.”
“Why?” Seonghyeon tilted his head.
Too close. Too pretty. Too dangerous.
“It’s confusing,” Keonho muttered.
“For who?”
“… For me.”
Seonghyeon’s heart did something stupid.
He hid it with a chuckle. “You’re dramatic.”
“You’re heavy.”
“You’re tiny.”
“I’M NOT TINY.”
“Okay, okay, you’re ... average.”
“I HATE YOU.”
“No you don’t.”
Keonho didn’t respond.
He didn’t deny it either.
Just as they turned the corner toward the bus stop, a group of soccer boys spotted them.
Oh no.
“Ohhhhh??? What’s this?”
“Keonho hyung, why are you holding him like that?”
Keonho immediately tried to drop Seonghyeon.
“NO— don’t you dare let go!” Seonghyeon yelped, clutching his shoulder tighter.
“AHA!” Another teammate pointed.
“Hyung, you’re BLUSHING.”
“I’M NOT.” Keonho looked like he wanted to crawl into the nearest sewer.
“It’s okay, hyung,” someone else chimed.
“We support you. Secret boyfriend? Secret marriage? Slow-burn romance?”
“SHUT UP,” Keonho yelled, voice cracking beautifully.
The basketball boys showed up next.
Not better. Not at all.
“WOAHHHH,” one of them said.
“Seonghyeon, you got injured just to be carried home by your enemy?”
“He’s not carrying me!”
(He was very much carrying him.)
“Looks like you guys are FRIENDS now,” another added.
“NO WE’RE NOT,” both boys blurted in perfect synchronization.
That made everyone scream louder.
“Sureeeee,” someone snorted.
“Keep telling yourselves that.”
“Keonho hyung, don’t propose too early okay? At least wait until nationals.”
“GUYS— PLEASE—” Keonho looked like he might die on the sidewalk.
Seonghyeon? He was laughing.
Through pain, through embarrassment—
He was laughing.
His cheeks were warm, his eyes soft in a way he didn’t even try to hide.
“Relax,” he murmured to Keonho once the teammates finally walked off. “They’re just joking.”
“They’re embarrassing us.”
“Yeah,” Seonghyeon said with a shy smile,
“but maybe … not entirely wrong.”
Keonho froze. “What do you mean?”
Seonghyeon looked away, voice low. “I don’t hate you as much as I thought.”
Keonho’s heart stopped working for a concerning amount of time.
He exhaled shakily. “… Same.”
They stood there—close, warm, breath mixing—long enough that the bus driver honked at them.
And even then, neither stepped away first.
V. Late-night Texting
Seonghyeon should’ve been asleep.
His ankle was wrapped, iced, elevated—doctor-approved.
But the moment he was alone in his room, lights off, the silence settled in heavy.
And of course his mind went straight to one person.
He checked his phone. No new messages.
He didn’t know why that disappointed him.
He told himself he wasn’t waiting for Keonho to text first.
He could totally text first. If he wanted.
He didn’t want. Except he really did.
After 20 minutes of silent pacing, he finally typed:
Seonghyeon : You get home safe?
He stared at the screen. Regretted it.
Considered throwing his phone off the balcony.
Then—
Keonho : Yeah. You?
Seonghyeon : Resting. My ankle hates me.
Keonho : It hated you before you twisted it.
Seonghyeon : Are you calling me clumsy?
Keonho : No. I’m calling you reckless.
Seonghyeon : So you WERE worried.
Three dots popped up instantly.
Disappeared. Reappeared.
Keonho : I wasn’t worried. I was VERY worried.
Seonghyeon smiled into his pillow like an idiot.
Seonghyeon : I’m fine now.
Keonho : You’re absolutely not fine. Does it still hurt?
Seonghyeon : Only when I walk.
Keonho : SO IT HURTS ALL THE TIME???
Seonghyeon laughed—quiet, warm.
Seonghyeon : Stop panicking.
Keonho : I’m not panicking.
Keonho : … But don’t move too much.
Keonho : Actually don’t move at all.
Seonghyeon : I have to breathe, Keonho.
Keonho : Okay but like. Carefully.
Seonghyeon bit his lip to hide another smile.
This was dangerous. Too soft.
Too sweet. Too real.
A pause.
Then:
Keonho : … Does it help if someone’s there?
Seonghyeon’s breath caught.
Seonghyeon : You offering?
The typing bubble popped up instantly.
Keonho : Yes.
Keonho : If you want me to.
Seonghyeon’s heart skipped.
Seonghyeon : … Come over.
Fifteen minutes later, a quiet knock sounded at the door.
When Seonghyeon opened it on one foot, Keonho was standing there—breathing a little fast like he’d sprinted the whole way, hoodie pushed back, hair messy, eyes bright with worry.
“You didn’t have to come,” Seonghyeon whispered.
“You said to come,” Keonho shot back, cheeks pink. “I wasn’t gonna say no.”
Seonghyeon stepped aside.
Keonho walked in carefully, like he was afraid of breaking something. Or maybe someone.
They ended up in his room—dim, warm, soft shadows everywhere.
Keonho’s eyes scanned the ankle immediately.
“Show me.”
His voice was firm, but gentle in a way that made something in Seonghyeon melt.
“It’s not that bad,” Seonghyeon argued.
“You always say that and it’s always a lie.”
Seonghyeon snorted. “Okay, mom.”
“Shut up.”
But he still knelt in front of him, hands warm as he rechecked the bandage.
He was careful. Careful in a way Seonghyeon wasn’t used to receiving.
“You’re too gentle,” Seonghyeon murmured before he could stop himself.
“I don’t want to hurt you.”
“You won’t.”
Keonho looked up at him then—
and the air shifted.
Slow. Warm.
Tight with emotion neither wanted to name.
“You really scared me today,” Keonho admitted quietly.
Seonghyeon blinked. “You didn’t have to be.”
“I couldn’t help it.”
Soft silence. Too soft.
They sat on the edge of the bed, close enough that their knees brushed. Neither moved.
Seonghyeon leaned back against the wall, tired but content.
Keonho sat beside him, shoulders stiff with leftover worry.
“You should rest,” Keonho murmured.
“Stay a little?” The words slipped out before Seonghyeon could stop them.
Keonho froze. Then nodded once. “Yeah. Okay.”
He stayed.
They talked quietly about nothing,
School gossip. Team drama.
Who cheated in practice games.
Which teammate should never be allowed near a kitchen.
At some point, Seonghyeon’s head tipped onto Keonho’s shoulder.
He didn’t realize until Keonho whispered, “… Are you comfortable?”
He jerked up to apologize—
but Keonho’s hand gently pushed him back down.
“It’s fine,” he murmured. “You can.”
So Seonghyeon did.
He let his head rest right there, on Keonho’s shoulder—
safe, warm, fitting too perfectly.
Keonho’s breath grew uneven.
“Your hair smells nice,” he blurted softly.
Then immediately panicked. “I MEAN— not like— I wasn’t sniffing you— I just— it’s right here and—”
Seonghyeon laughed into his hoodie. “You’re cute.”
Keonho froze. Completely.
“… Don’t say things like that,” he whispered.
“Why not?”
“Because I don’t know what to do with it.”
Seonghyeon’s smile faded into something gentler. “Then I’ll go slow.”
Keonho swallowed hard. “Okay.”
Just one word.
Quiet. Shaky. Honest.
They stayed like that until Seonghyeon drifted off—
and Keonho stayed awake, watching him breathe softly, guarding him like instincts he didn’t understand.
He left only after Seonghyeon’s mom knocked to check on him.
Before he slipped out the door, he whispered, “Goodnight, Seonghyeon.”
And maybe—just maybe—
he brushed his fingers lightly over Seonghyeon’s hair before leaving.
VI. The Storm Rolls In
Coach banned Seonghyeon from stepping foot in the gym. “Rest day. If I catch you near a basketball, I’ll tape you to a chair.”
So he sat outside on the bleachers—ankle wrapped, hoodie pulled up, annoyed but obedient.
The soccer team finished earlier that day, and of course Keonho spotted him instantly.
“Why’re you sitting like a depressed grandpa?” Keonho asked, dropping his bag next to him.
“It’s called resting,” Seonghyeon muttered.
“No, resting is relaxing. You’re sulking.”
“Shut up.”
“I won’t.”
They ended up spending the afternoon together without really planning it;
- Sharing a bag of chips
- Complaining about school
- Arguing over which sport required more stamina
- Laughing too loud
- Bumping shoulders on purpose but pretending it was an accident.
At one point, Seonghyeon leaned back, ankle propped up on Keonho’s bag.
Keonho didn’t complain. He just adjusted the strap so it wouldn’t dig into him.
It was easy. Too easy.
Around late afternoon, the sky darkened—quiet at first, like a warning.
They were still sitting side by side, closer than necessary, knees brushing every now and then.
A low rumble rolled across the field.
Seonghyeon stiffened.
He didn’t move. Didn’t speak.
But he went completely still in a way Keonho immediately noticed.
“You okay?” Keonho asked quietly.
“Yeah,” Seonghyeon lied.
Another thunder boom—louder this time.
Seonghyeon’s breath hitched.
His fingers twitched against his thigh.
Keonho saw it.
He didn’t push. He didn’t ask.
He simply shifted his hand closer—
not touching, just there.
An offering.
But Seonghyeon hesitated.
His chest was tight. His throat dry.
And yet …
his hand moved on its own—
soft, shaky—
finding Keonho’s fingers.
He didn’t hold. Just brushed.
Keonho froze for a heartbeat.
Then, so gently it almost hurt, he turned his hand palm-up and let Seonghyeon take it properly.
Warm. Solid. Safe.
Seonghyeon gripped him—tight.
Keonho’s thumb brushed once across his knuckles.
“I’ve got you,” he whispered.
Another thunder crack split the sky.
Seonghyeon flinched hard, leaning instinctively closer.
Keonho shifted, letting their shoulders press together fully.
“You’re scared of storms,” he murmured—not a question, not teasing. Just truth.
“Don’t tell anyone,” Seonghyeon muttered, voice tight.
“Never.”
The rain started—soft at first, then pouring.
Everyone else ran for shelter.
But the two of them stayed under the half-covered bleachers, tucked into the corner where the sound was loud but not overwhelming.
Seonghyeon leaned into him, fingers still gripping tight.
Keonho held back just as firmly.
“You don’t have to hide it from me,” Keonho added.
Seonghyeon swallowed. “I know.”
With the storm raging, they naturally shifted.
Seonghyeon sat sideways, leaning into Keonho’s chest now because that angle somehow made it easier to breathe.
Keonho wrapped an arm around his back—slowly, carefully, waiting for permission.
Seonghyeon didn’t object. He leaned in more.
“You’re shaking,” Keonho whispered.
“Shut up,” Seonghyeon whispered back.
But his voice cracked halfway, ruining the effect.
Keonho hugged him just a little tighter. “Hey look at me.”
Seonghyeon did.
Big mistake.
Keonho’s eyes were soft. Too soft.
Like he would fight the whole storm for him if he could.
“You’re safe,” he said.
And the thing was—
Seonghyeon believed him.
The thunder cracked again, and Seonghyeon buried his face in Keonho’s hoodie.
Keonho’s heart nearly stopped.
He pressed his chin carefully at top of Seonghyeon head, cheeks burning.
“You’re okay,” he whispered again.
For a long time, they stayed like that—
breathing together, holding on, letting the storm pass.
No one saw. No one knew.
And when the thunder faded, Seonghyeon slowly loosened his grip.
But Keonho didn’t let go until he was sure the shaking had stopped.
Only then did Seonghyeon whisper, “… Thank you.”
Keonho’s voice was barely audible. “Anytime.”
VII. Everyone Can See It Except Them
The next morning, Seonghyeon walked into school with a slight limp.
Not dramatic. Not painful.
But noticeable if you cared.
And apparently, Keonho cared a lot, because the second he entered the hallway and saw it—
“Why’re you walking like that?” Keonho demanded from behind him.
Seonghyeon jolted. “You scared me—what are you—”
“Did it get worse?” Keonho moved closer, eyes locked on the ankle like it had personally offended him.
“It’s fine—”
“You say that about everything,” Keonho snapped. “Sit down for a second.”
“We’re in the hallway—”
“SIT.”
Seonghyeon blinked.
Then, because Keonho was looking at him with that I’m-going-to-carry-you-if-you-don’t-do-as-I-say expression, he lowered himself onto one of the benches.
Keonho crouched down immediately, checking the wrap with gentle fingers.
Some girl passing by actually gasped.
Someone else whispered, “Are they … dating?”
Seonghyeon’s ears turned red. “Keonho—people are staring—”
“Let them,” Keonho muttered, adjusting the wrap carefully. “This is too loose. Who did this?”
“… Me.”
“Obviously.”
“HEY.”
Keonho didn’t stop fussing.
Practice that afternoon was chaos.
It started with Basketball Team Captain squinting suspiciously as Seonghyeon walked by.
Then he spotted Keonho trailing behind like a personal shadow.
“What’s with you two?” The Captain finally asked.
“Nothing,” Seonghyeon said too fast.
“Everything,” mumbled a soccer teammate next to him.
They both glared at their teams.
But that didn’t stop the comments.
Basketball teammate #1:
“I swear Seonghyeon is glowing.”
Soccer teammate #2:
“Keonho threatened to fight thunder yesterday, I saw it.”
Basketball teammate #3:
“Why is he opening his water bottle for him???”
Soccer teammate #1:
“We tried to talk to Keonho and he hissed.”
Everyone:
“They’re weird.”
But it hit peak drama when the two teams had to share the field again.
Someone kicked a stray soccer ball.
It rolled toward Seonghyeon.
Not fast. Not dangerous.
Just rolling.
And Keonho—
stepped in front of him
like the ball was a grenade
and shoved it away with his foot
glaring at it like it insulted his family.
Everyone went silent.
“… Bro,” a soccer player whispered, “it’s literally just a ball.”
Keonho scowled. “It was coming at him.”
“At two kilometers per hour.”
“STILL.”
Seonghyeon stared at him.
“… Are you okay?”
“No,” Keonho muttered. “You’re injured.”
“That has nothing to do with the ball.”
“It could’ve hit you.”
“It was rolling.”
“It could’ve rolled HARDER.”
Silence.
Basketball Team Captain Haneul leaned toward a soccer captain and whispered loudly, “They’re definitely dating.”
During practice break, Seonghyeon sat down to re-tie his shoe.
When he bent down, he hissed slightly—barely.
Almost silent.
But Keonho heard it from twenty feet away.
He was in front of him in three seconds.
“What happened?”
“What hurt?”
“Did you twist it again?”
“KEONHO.” Seonghyeon grabbed his wrist.
“I just stretched too fast.”
“Oh.”
Keonho froze when he realized everyone was watching.
Like—EVERYONE.
Both teams. Coaches.
Haneul crossed his arms. “Keonho,” he said, “you okay?”
“Why wouldn’t I be okay?” Keonho snapped.
“Because you sprinted across the field like he was being attacked.”
“He COULD have been!”
“By shoelaces?”
“YES—NO—SHUT UP—THAT’S NOT THE POINT—”
The soccer team burst into laughter.
Basketball players too.
Seonghyeon covered his face.
“Can you please stop being dramatic?” he groaned.
“I’m not dramatic,” Keonho huffed. “… I’m cautious.”
“About … my shoelaces?”
“You don’t understand, okay?!” Keonho blurted, cheeks turning red.
“They could’ve pulled wrong, or you could accidentally twist your ankle again, or you could—”
Seonghyeon blinked at him.
“Wait,” he said slowly, “are you actually worried?”
Keonho stopped talking.
Dead stop.
Silence.
The entire field leaned in.
Then—
“… Yeah,” Keonho admitted quietly.
“I am.”
Dead silence.
Then the soccer captain yelled, “OKAY SO WE’RE ALL SEEING THIS, RIGHT??”
Embarrassed, flustered, and absolutely done with everyone, Keonho grabbed Seonghyeon’s wrist and dragged him behind the bleachers.
“Why’d you say it like that?” Seonghyeon asked softly.
Keonho rubbed the back of his neck. “I didn’t mean to. It just came out.”
“… You worry about me that much?”
Keonho avoided eye contact. “Maybe.”
Seonghyeon stepped closer, “Keonho.”
Reluctantly, he looked up.
And damn—
the way Seonghyeon was staring at him???
Soft. Warm. Grateful.
“Thank you,” he said quietly.
“For what?” Keonho whispered.
“For caring.”
Keonho’s throat tightened. “You make it really hard not to.”
They stood there—
too close, too warm, too something—
until practice restarted and saved them from the almost-moment neither was ready for.
VIII. The Spark That Sets Him Off
It started harmlessly.
A new transfer student—
tall, friendly, annoyingly handsome—
joined the basketball club as a trial member.
He introduced himself with a smile too bright for the gym lights.
“Hi. I’m Jaewon.”
“Hi,” Seonghyeon replied politely. Too politely.
Because Jaewon’s eyes lit up like he’d found treasure.
“You’re Seonghyeon, right? I watched your game videos before I transferred. You’re amazing.”
“Oh—uh—thanks.”
Jaewon stepped closer. Too close.
“I’d love to train with you sometime. Maybe one-on-one? Outside practice?”
“… Sure?” (It came out more confused than agreeing.)
Across the gym, someone dropped their water bottle.
CLATTER—
Every head turned.
Keonho stood there, jaw tight, expression thunderous.
He did not pick the bottle back up.
He just glared at Jaewon like he wanted to kick a soccer ball straight into his soul.
During break
Jaewon : “So where do you usually eat lunch? Maybe we could—”
Seonghyeon: “Uh—”
And then A hand wrapped around Seonghyeon’s wrist.
Firm. Warm. Possessive.
“We need to talk,” Keonho said flatly.
He didn’t wait for permission.
He pulled Seonghyeon away—
again—
this time with steps a LOT faster than necessary.
They ended up behind the sports storage room, hidden from everyone.
“Keonho—what is your problem?”
“My problem?” Keonho snapped.
He ran a hand through his hair, frustrated and flushed.
“He was flirting with you.”
Seonghyeon blinked. “… What?”
“DON’T pretend you didn’t see it—he was practically—practically sparkling at you.”
“Sparkling?” Seonghyeon snorted. “That’s not—”
“This isn’t funny!”
Keonho moved closer, voice tight.
“He asked you for one-on-one practice. He was staring at you like he wanted your jersey and your phone number and—and I don’t like it.”
Seonghyeon’s breath caught. “Why?” he whispered.
Keonho froze like he hadn’t expected the question.
“Because …” His voice lowered.
“… I don’t like other people getting close to you.”
“That’s not a reason.”
“It is to me.”
They were too close now.
Shoulders brushing. Breaths mixing.
The hallway felt smaller. The air felt thicker.
“Keonho,” Seonghyeon murmured, “you’re being … weird.”
“I know.”
“You’re acting like—”
“Like what?” Keonho demanded softly.
Silence.
“Like you care,” Seonghyeon said finally.
Keonho swallowed hard. “Maybe I do.”
Seonghyeon’s pulse jumped. “Say it clearly.”
The wind outside rattled the window.
Keonho leaned in—
so close Seonghyeon felt his breath against his cheek.
“I care,” he whispered. “Too much.”
The moment stretched—
thin, fragile, electric.
If either of them leaned forward one centimeter—
just one— they would kiss.
But then—
A loud bang.
Someone opened the gym door nearby.
They sprang apart like startled cats.
Practice continued.
They avoided looking at each other.
Until a stray ball rolled toward Seonghyeon again (WHY does this always happen?).
He stepped back but stumbled on his injured ankle.
He would’ve fallen—
—but Keonho caught him instantly.
One arm around his waist. The other holding his back.
Bodies pressed together. Too close. Too warm. Too everything.
“Careful,” Keonho breathed.
Their faces were centimeters apart.
Again.
Seonghyeon clutched his hoodie. “Stop catching me like that.”
“I’m not letting you fall.”
“Ever?”
“Not if I can help it.”
Their eyes locked.
Someone wolf-whistled in the background.
They did not move.
Not for several seconds.
Not until Seonghyeon whispered, “… You’re making this really hard.”
Keonho’s voice dropped. “What?”
“Not … liking you.”
Keonho blinked—
once, twice—
like the words hit him straight in the chest.
“Then don’t try so hard.”
And he slowly, reluctantly, let go.
Both of them breathless.
Both pretending they weren’t shaking.
IX. The Storm Breaks First
It starts on a normal afternoon—
basketball practice just ended, and Seonghyeon is sitting on the bench re-lacing his shoes.
Jaewon sits beside him.
“Your ankle’s getting better, right?” Jaewon asks, voice soft.
“Yeah,” Seonghyeon answers. “Mostly.”
“That’s good. Hey … if you ever need help training again, I could—”
“NO.”
Both turn.
Keonho stands a few meters away, jaw clenched, hair slightly damp from soccer practice.
He walks over.
Not fast. But with a purpose that makes the air snap.
Jaewon blinks. “Uh … hi?”
Keonho ignores him completely.
He looks at Seonghyeon.
“You ready to go?”
“We didn’t even plan to go home together,” Seonghyeon says.
“We are now.”
Jaewon frowns. “… Are you two … something?”
“No,” Seonghyeon starts.
“Yes,” Keonho says at the exact same time.
Silence hits like a bomb.
“KEONHO—” Seonghyeon’s eyes widen.
Jaewon’s eyebrows shoot up. “Oh. I—I didn’t realize you guys were—”
“We’re not,” Seonghyeon insists.
“We could be,” Keonho mutters.
“WHAT—”
Jaewon stands awkwardly. “I’ll … go. Sorry.”
He leaves quickly.
The moment he’s gone, Seonghyeon rounds on Keonho.
“What was THAT?”
“What?” Keonho says, defensive.
“You basically chased him away!”
“He was flirting again.”
“He was TALKING.”
“He was smiling too much.”
“That’s his face!”
“Well I hate his face!”
“You’re being ridiculous!”
“I’m being HONEST!”
They’re breathing hard.
Angry. Frustrated.
Too many feelings with nowhere to go.
Then Seonghyeon says it, “You’re acting like you own me.”
Keonho’s expression twists—hurt, sharp, unguarded.
“… Maybe,” he says quietly, “I just don’t want to lose you.”
Seonghyeon’s breath catches. “What are you talking about? You’re not losing me.”
“You don’t know that.”
“Keonho, I’m right here—”
But Keonho shakes his head, steps back.
“I need … a minute.” And he walks away.
For the first time, he’s the one retreating.
That night, the sky cracks open with thunder.
Not like before—
louder, sharper, like the clouds themselves are angry.
Seonghyeon sits on his bed, staring at his phone.
No messages from Keonho.
It’s only been a few hours.
But it feels like something is wrong.
Thunder booms again. The lights flicker.
And finally—
finally—
knock. knock. knock.
Seonghyeon’s heart stops.
He opens the door.
Keonho stands there—
hoodie soaked from rain, hair dripping, breathing uneven.
Not angry anymore. Not guarded. Just raw.
“I—” His voice breaks.
“I didn’t know where else to go.”
Seonghyeon steps aside without thinking.
Keonho walks in.
Not confidently. Not casually.
More like someone whose walls finally cracked.
When thunder cracks again, Keonho flinches.
Actually flinches.
Seonghyeon stares. “… You’re scared of storms?”
“No,” Keonho mutters.
Another thunder. He jumps.
“… Okay maybe a little,” he admits, voice small.
It’s strangely adorable.
And heartbreaking.
For once—
he is the one trembling.
Seonghyeon takes a slow step closer. “You should’ve told me,” he whispers.
“You already have enough to worry about,” Keonho murmurs.
“You’re not a burden.”
Another step. “You never are.”
The storm roars. Keonho’s breath shakes.
And Seonghyeon … reaches out.
Not hesitant. Not accidental. Not trembling.
He cups the side of Keonho’s jaw gently, thumb brushing his cheek.
“Come here,” he says softly.
Keonho doesn’t move.
He collapses—
straight into Seonghyeon’s arms.
Arms wrap around his waist.
Forehead pressed to his shoulder.
Breathing uneven against his neck.
“I’m sorry,” Keonho whispers.
“I shouldn’t have yelled. I just— I get jealous, and I hate it, and I don’t want you to—”
“Shh,” Seonghyeon murmurs, stroking his hair. “You’re okay.”
“It’s so loud,” Keonho admits, shaking. “I hate thunderstorms.”
“I know,” Seonghyeon whispers. “You’re safe.”
He holds him tighter as another thunder crack shatters the sky.
And for the first time—
Keonho is the one seeking shelter in him.
They sit on the bed—
Keonho between Seonghyeon’s legs, back pressed to his chest, arms wrapped around his waist.
Thunder outside. Warmth inside.
Keonho finally whispers, “When I saw him talking to you, I panicked.”
“Why?”
“Because you’re … important.”
Seonghyeon’s heart skips.
“You are too,” he whispers into Keonho’s shoulder.
“No,” Keonho says softly. “Not like you.”
Silence. But not the painful kind.
The heavy, almost-confessional kind.
The kind that says: we’re getting close to something we can’t undo.
Another thunder.
This time, Keonho leans back into him instead of away.
Seonghyeon holds him tighter.
“You don’t have to be scared alone,” he whispers.
“Promise?” Keonho murmurs.
“Promise.”
X. The Almost-Date That They Pretend Isn’t a Date
It starts on a Saturday afternoon, when the coaches officially announce everyone gets a full rest day. No drills, no scrimmages, no pressure. Just … time.
Keonho doesn’t expect anything. Maybe sleeping. Maybe scrolling. Maybe kicking a ball into his wall until his neighbors yell.
Then his phone buzzes.
Seonghyeon
Do you want to … I mean, are you free?
Like—no practice.
So. Maybe.
We could … walk? Or something?
I feel like going out.
Keonho just stares.
Walk. Walk??
He wants to hang out?
Keonho replies way too fast.
Sure. Where?
And that’s how they end up meeting at a small convenience store near school—neutral territory, no basketball courts to argue about, no soccer field to fight over.
Seonghyeon is already waiting outside, hands in pockets, hoodie on, hair slightly messy like he rushed to come.
And his smile …
it’s small but real.
“Hey,” he says quietly. “You came.”
Keonho’s chest does something stupid. “You asked.”
They start walking. No destination. Just soft footsteps on pavement as the afternoon light turns warm and golden.
At first, there’s silence—awkward, unsure, but … gentle.
Then Seonghyeon speaks. “You, uh … didn’t have to come so quickly. I thought you’d be busy.”
Keonho snorts. “Doing what? Dating the soccer ball?”
“Honestly? Yeah.”
“Okay, fair.”
They laugh. The tension breaks like sunlight through clouds.
They walk through small streets, sharing snacks they bought at the convenience store. (Seonghyeon tries to act like he isn’t paying attention when Keonho hands him the last bite of bread … but he absolutely is).
They talk about stupid things—teachers, weird teammates, the awful vending machine coffee. But every time their shoulders brush, something sparks.
And Keonho notices things he shouldn’t;
The way Seonghyeon’s eyes curve when he’s genuinely amused.
The way he walks slightly slower than usual, more relaxed.
The way his fingers twitch when the wind picks up—as if fighting an instinct to reach for someone.
When the sun starts dipping lower, they stop at a quiet park bench. Just them. No one else.
And for a moment … the world is soft.
“So …” Keonho says, nudging him lightly. “Why me? For today.”
“I dunno.” Seonghyeon plays with his sleeve.
“You feel … easy to be around lately.”
Lately.
Not always. Just recently.
Keonho’s heart actually trips.
Before he can reply, a soccer group from a nearby field shouts loudly, cheering someone’s goal. The noise makes Seonghyeon jump slightly.
Keonho notices instantly. “You okay?”
“Yeah, yeah, just—” Seonghyeon clears his throat. “Old habit. I get jumpy with sudden loud noise.”
Keonho doesn’t say thunder but he’s thinking it.
And then … Seonghyeon does something unexpected.
He shifts slightly closer.
Close enough for their knees to touch.
Close enough that Keonho forgets how to breathe.
“I like this,” Seonghyeon says softly. “Hanging out, I mean. With you.”
Keonho’s brain?
Fully melting.
“… yeah,” he manages. “Me too.”
Their eyes meet.
Linger. Hold.
It feels like the world is leaning them forward.
Like the universe is quietly whispering: go on, you idiots.
Then—
A voice yells from behind them. “YAH!? Are those— ARE THOSE OUR STAR ATHLETES ON A DATE?!”
It’s one of the soccer guys.
Loud. Annoying. Too observant.
Keonho nearly chokes. “WE’RE NOT— IT’S NOT— SHUT UP!”
Seonghyeon’s ears turn completely red.
The teasing doesn’t stop.
It only gets louder—
“KEONHO HYUNG, DID YOU FINALLY GET HIM?”
“SEONGHYEON, I THOUGHT YOU ONLY HAD EYES FOR THE HOOPS!?”
“SAVE SOME OF THAT CHEMISTRY FOR THE MIXED GAME NEXT WEEK!”
The boys on the bench want to disappear.
Keonho buries his face in his hands.
Seonghyeon hides behind his hoodie.
But between the embarrassment …
Their shoulders stay touching.
Neither pulls away.
And when the teammates finally leave, they both start laughing. Quiet at first. Then uncontrollable. And when they look at each other again…
The moment is still there.
Softer. Warmer. Growing.
The teasing finally fades as the soccer guys jog away, but the heat in Seonghyeon’s cheeks doesn’t.
He keeps the hood pulled over half his face like it’s his last line of defense.
Keonho keeps pretending he isn’t watching him struggle to hide a smile.
Once the noise dies down, silence falls again.
But this time, it’s not awkward.
It’s … full.
Like something unspoken is hanging between them, warm and fragile.
“Sorry about that,” Keonho mutters, still embarrassed. “They’re idiots.”
“They’re your teammates,” Seonghyeon points out.
“Exactly. Idiots.”
That makes Seonghyeon laugh again — a soft, breathy sound he usually never lets out around people. It makes something in Keonho’s chest twist.
The kind of twist that feels … dangerous.
Like he's stepping into territory he can’t back out of.
They sit there for a bit.
Watching the sky turn lavender.
Listening to the branches rustle when a breeze passes.
Then—
Seonghyeon leans back against the bench, head tilted up.
And without thinking, without realizing, one of his knees nudges gently against Keonho’s thigh. He doesn’t pull back.
Keonho freezes.
Not because he’s uncomfortable.
Because he likes it.
Way too much.
“You okay?” Seonghyeon asks when he notices the sudden stillness.
Keonho nods too fast. “Yeah. Just— thinking.”
“What about?”
You. Us.
Whatever this is turning into.
He bites it back.
“Nothing important,” he lies badly.
Seonghyeon watches him for a second.
There’s something soft in his gaze.
Something knowing.
“You’re a bad liar,” he says quietly.
Keonho feels every nerve in his body light up.
“And you’re annoyingly observant,” he shoots back.
But there’s no bite to it.
Just … fondness.
And maybe something else.
They end up leaving the park when the sky darkens and tiny drops of drizzle start falling. Not quite rain — just a warning.
They walk slowly, side by side.
Every time thunder grumbles far in the distance, Seonghyeon flinches almost invisibly.
Almost.
But Keonho notices. He always does.
At one point, Seonghyeon’s hand brushes against his. Not intentional.
Just clumsy, reactionary— but his fingers twitch.
Keonho swallows hard and pretends he didn’t feel it.
Seonghyeon stuffs his hands in his pockets, shoulders tensing ever so slightly whenever the sky rumbles again.
“You sure you’re fine?” Keonho asks softly.
A beat.
Then Seonghyeon admits, in a voice barely above a whisper:
“It’s … easier when someone’s with me.”
Keonho feels the air leave his lungs.
He doesn’t dare say it out loud, but the thought hits him like a ball to the chest, Then stay with me more.
They stop under a store awning when the drizzle turns into real rain.
The street lights turn on one by one, painting golden reflections onto the wet pavement. Cars splash by. The world looks soft and blurry.
They stand close—closer than necessary.
“So …” Keonho mumbles, hands shoved into his pockets to hide his nerves, “this wasn’t terrible, right?”
“Terrible?” Seonghyeon raises an eyebrow. “It was … nice.”
He kicks the toe of his shoe lightly, like he’s embarrassed to admit it.
Keonho stares. At the curve of his smile.
At the way the rainlight catches on his lashes.
He blurts out before he can stop himself. “We should … do it again.”
Seonghyeon’s head snaps up. “You want to?”
Keonho swallows. “Yeah. I mean— only if you—”
“I do.”
Two words.
Soft but certain.
And suddenly the rain isn’t cold anymore.
The world feels warm. New. Slightly terrifying.
But in the best way.
Thunder cracks faintly in the distance and Seonghyeon instinctively steps closer—not touching him, but close enough that the space between them disappears.
Keonho doesn’t move away.
He just says, quietly. “Come on. I’ll walk you home. The rain’s only gonna get worse.”
Seonghyeon nods, looking almost relieved.
And they start walking again, shoulders brushing, steps matching, breathing in sync.
Not a date. Not a confession.
But something.
Something with weight and warmth and hope.
Something that feels like the beginning of whatever happens next.
The rain gets a little heavier, so they walk faster—but not fast enough to lose the quiet comfort between them. Every so often, their arms brush, and neither of them bothers pretending they don’t notice anymore.
The streetlights glow warm against the wet pavement, and the only sounds are their footsteps and the soft patter of rain.
At one point, a louder rumble of thunder echoes somewhere far off.
It’s not even close
—but Seonghyeon still flinches.
Not big. Not dramatic.
Just a quick tightening of his shoulders, like he’s swallowing the instinct to panic.
Keonho notices immediately.
Without thinking, he reaches out and lightly touches Seonghyeon’s wrist. Barely there.
“You okay?”
Soft. Not teasing. Not dramatic. Just … there.
Seonghyeon doesn’t pull away.
If anything—
he leans a little closer.
“Yeah,” he mutters, eyes lowered. “Just … don’t like it.”
“I know,” Keonho says. “I got you.”
The words come out before he can think.
But he doesn’t regret them.
And the way Seonghyeon looks at him—
a quick, startled, too-soft glance—
makes something warm bloom in his chest.
They reach Seonghyeon’s neighborhood.
Quieter. Dimmer. The rain gentler here.
When they stop in front of his gate, both of them hesitate.
Not ready to end it.
Not ready to break the moment.
“Thanks,” Seonghyeon says, stuffing his hands into his hoodie pocket, but he’s fidgeting—thumb rubbing the fabric, toe tapping lightly. “For … you know. Walking with me.”
“Anytime,” Keonho replies. And he means it. Too much.
There’s a pause. A long one.
The kind that feels like standing on the edge of something new, something scary, something painfully, beautifully possible.
Keonho clears his throat. “So … today wasn’t bad, right?”
“Not bad?” Seonghyeon gives a tiny laugh, looking down at the wet ground before he lifts his eyes back up. “It was … good.”
Lightning flashes faintly behind the clouds—no thunder, just light.
But it makes Seonghyeon instinctively step half a pace closer.
He’s not touching him. Not asking.
Just close.
Close enough that Keonho can feel the warmth from his hoodie.
Close enough that his heartbeat stutters.
And then—
very quietly, like he’s afraid to ruin anything—
Seonghyeon says, “I’m glad it was you today.”
Keonho stops breathing.
Seonghyeon seems to realize what he just said.
His ears go crimson.
He looks away immediately, mumbling, “Forget I said that—”
“No,” Keonho interrupts. “I won’t.”
They stand there. Rain soft around them.
The world small and gentle for just a moment.
Their eyes meet—
not by accident this time.
Held. Warm. Searching.
Not a confession. Not a kiss.
But very, very close.
“Get home safe,” Seonghyeon says, voice soft in a way he never uses with anyone else.
“You too,” Keonho answers.
But neither of them moves.
It takes another full second—
maybe two—
before they reluctantly pull away.
Seonghyeon walks backward toward his door, still looking at him, hoodie damp at the edges, hair dripping a little from the rain.
And Keonho stands at the gate, watching him until the door closes.
When it does, he lets out a breath he didn’t realize he was holding.
Inside the house, leaning against the door, Seonghyeon does the same.
Both of them smiling like idiots.
Like boys who finally realize they’re in trouble.
The good kind.
-
