Actions

Work Header

your heart is my home

Summary:

“Seonghyeon saved me. Again.” It was meant to be light. A joke. Something easy.

Juhoon smiled knowingly, then tilted his head, eyes flicking between them. “Honestly? You’d survive nothing without him.”

Keonho laughed, nodding his head in agreement. He was still smiling as he responded, “I would survive… But I would probably be late, starving, and expelled by now.”

Or Seonghyeon and Keonho calling it friendship because that felt safer.

Notes:

welcome to the third fic of my love language series! this fic was a nightmare to write because i wasn’t satisfied with the original outline, so i scrapped all the already-written and started again... it’s not my best work, sorry 🥹 the series isn’t connected except for the overall theme, so feel free to skip this and read martin’s and/or juhoon’s fics instead!

as always, this is just another silly self-indulgent fic! if you don’t like the tags, don’t read it. please remember this is purely fiction. also, this hasn’t been beta read, so please excuse any mistakes. enjoy reading! 💗

(See the end of the work for more notes.)

Work Text:

Keonho slid into his seat with little to no grace, chair legs scraping softly against the classroom floor as the bell rang overhead. He smelled faintly of chlorine and the cheap soap the school showers offered, hair still damp at the nape of his neck, uniform wrinkled from being pulled on in a rush. His backpack thudded against the side of the desk when he dropped it.

He was late. Again.

The classroom was already settling into that low, half-awake hum of pages flipping, someone yawning loudly near the window, and the air conditioner rattling as if it had given up trying. The whiteboard at the front was filled with neat, precise handwriting.

Keonho sighed, rubbing his eyes with the heel of his palm, and reached blindly into his bag. He pouted and dug deeper. His fingers brushed fabric, a pair of goggles, a tangled mess of earphones, yesterday’s math worksheet crumpled at the bottom—but no pencil case.

Before the thought could even fully form in his head, something slid into his line of sight.

A pen. The classic ballpoint one with no designs, the kind most students used.

Beside it was his notebook that was already open to a clean page. At the top, the date was already written neatly in blue ink.

Keonho didn’t look up. He didn’t need to.

“Thanks,” he whispered automatically, voice still rough from getting too little sleep.

Seonghyeon, seated beside him, didn’t turn his head. He was already facing forward, posture straight, both arms resting on his desk. His own notebook mirrored Keonho’s with the same date, same margin spacing, same tidy structure.

“Mhm,” Seonghyeon murmured back, barely audible.

Keonho leaned back in his chair just slightly, pen twirling between his fingers as his shoulders finally dropped out of their tense hunch. He glanced sideways now, finally, catching Seonghyeon’s profile—the calm set of his jaw, the faint shadows under his eyes from staying late at soccer practice, and the way his gaze stayed fixed on the board.

“You’re actually a saint,” Keonho whispered, a smile tugging at his mouth. “I would not be able to survive mornings without you.”

Seonghyeon shrugged. “You would,” he said. Then, after a beat as if he reconsidered his words, added, “Well, maybe.”

Keonho snorted softly, biting down on the laugh before the teacher glanced their way. He scribbled the topic at the top of the page, grateful for the pen’s steady weight, for the date already written, for the quiet sense that things were somehow already taken care of.

He didn’t notice how Seonghyeon’s eyes flicked to him once, just briefly. Nor did he notice the way Seonghyeon checked that Keonho was writing before returning his attention to the board.

To Keonho, this was just how mornings went. To Seonghyeon, it was instinct.

The hallway outside their classroom was already loud by the time the bell rang. All that could be heard were lockers slamming, voices overlapping, and sneakers squeaking against polished tile. The air smelled like deodorant, floor cleaner, and something fried drifting in from the cafeteria down the hall.

Keonho stepped out into it, his backpack slid halfway off one shoulder as he laughed at something Juhoon said, his hair still damp enough to curl at the ends. His shoelace dragged against the floor with every step, the frayed tip flicking dangerously close to being stepped on.

He didn’t notice. But Seonghyeon did.

He noticed the moment Keonho took his third step out of the classroom. Not because he was looking down, but because his brain had quietly learned the rhythm of Keonho’s walk. As ridiculous as it sounded, there was something wrong about it.

Seonghyeon stopped walking. Keonho didn’t. He got about two steps ahead before the gentle tug on his backpack strap registered. He turned, confused, but still had a smile on his face. “What?”

“Wait,” Seonghyeon said.

Keonho blinked as Seonghyeon crouched down in the middle of the hallway like it was the most reasonable place in the world to stop. Then he followed Seonghyeon’s gaze down to his own feet.

“Oh,” he said, dumbly.

The lace was completely undone now, splayed across the floor like it had been waiting to trip him. Seonghyeon was already there on the floor, his fingers were steady as he gathered the loose ends, brushing briefly against the worn edge of Keonho’s sneaker. He worked quickly and efficiently to double-knot the shoelace.

Students streamed around them without slowing. Someone hopped over Seonghyeon’s bent knee. Someone else muttered a quick “sorry” that wasn’t really aimed at anyone. It barely registered. Keonho stood frozen, hands hovering uselessly at his sides.

“You really don’t have to—” he started, out of habit more than anything.

“Yeah, I know,” Seonghyeon said, already tightening the knot.

Keonho shut up and watched instead. He watched the careful way Seonghyeon double-knotted the lace, tugged once more to check it wouldn’t come loose, the way his brow furrowed just slightly in concentration, like this as important as a mathematics exam.

When Seonghyeon stood back up, brushing dust from his knee, Keonho laughed softly. “You’re actually ridiculous.”

Seonghyeon glanced at him, expression neutral. “You’d trip.”

“Eventually,” Keonho admitted easily, grinning. “But it’d be funny.”

“Not to me.”

That made Keonho pause. Just for a second. The weight of his words felt too heavy for the moment.

Behind them, Juhoon had stopped walking entirely. He stared openly, head tilted, eyes flicking between Seonghyeon and Keonho like he was trying to piece together a puzzle with missing instructions.

Martin, who had caught up to them after his own class was dismissed, let out a quiet laugh under his breath. “You two are insane,” Martin said. “You know that, right?”

Keonho turned toward him, confused. “What? He just saved my life.”

“From your own shoelaces?” Martin raised an eyebrow.

“From public humiliation,” Keonho corrected.

Martin snorted. Juhoon didn’t laugh. He was still staring at Seonghyeon, who had already adjusted the strap of Keonho’s backpack without asking, tugging it higher so it wouldn’t slip again. Keonho didn’t even notice.

“Come on,” Seonghyeon said, nodding down the hall. “You’ll be late.”

Keonho brightened instantly. “Oh, right. Yeah.”

They fell into step together without thinking. Seonghyeon walked slightly closer to the lockers, Keonho drifting nearer to the open hallway space. Juhoon lingered behind with Martin, watching them go.

“That’s not normal,” Juhoon said finally.

Martin smiled a little, eyes following the easy way Keonho leaned closer to Seonghyeon as they walked.

“Yeah,” Martin replied. “I don’t think they realise that, though.”

☆☆☆

The cafeteria was loud in that specific, chaotic way that only lunchtime ever managed to create—plastic trays clattering, chairs scraping, voices bouncing off the tiled walls until nothing sounded like a single conversation anymore. The smell of fries, something vaguely meaty, and the sharp tang of disinfectant that never quite managed to cover it up, hit before anything else.

Keonho squinted at the menu board, unsure.

“What is that?” he asked, leaning back to get a better angle, eyes narrowing.

Seonghyeon followed his gaze. “It’s labelled as chicken.”

“That doesn’t look like chicken…”

They shuffled forward with the line, backpacks slung low. Keonho bounced slightly on his heels, restless energy bleeding through exhaustion, fingers drumming against the strap of his bag. His shoulder twinged faintly when he shifted, but he ignored it without thinking too much.

Seonghyeon watched him. “Did you eat breakfast?” he asked casually, eyes flicking back to the menu.

Keonho hummed. “Mhm. Sort of.”

“Keonho,” Seonghyeon pressed.

Keonho smiled sideways at him, bright and unbothered. “I had half a banana?”

Seonghyeon sighed quietly, like this was information he’d already expected. He didn’t comment further on it, just continued moving forward with the rest of the line.

When they reached the counter, Keonho still hadn’t decided what to eat. “Uh, maybe the chicken? I don’t know…” he mumbled.

The lunch lady stared at him, unimpressed.

Next to him, Seonghyeon easily ordered his own tray of fries, a burger that looked a lot more edible than the so-called chicken option, and a fruit drink placed neatly in the corner.

Oh. That looked nice. And the drink was one of Keonho’s favourites. He didn’t know Seonghyeon liked it too.

Without a word, Seonghyeon handed his tray to Keonho.

“Wait, what—” he protested weakly, but his hands adjusted automatically, fingers curling around the familiar weight of the lunch tray.

Keonho blinked, dumbfounded, as he watched Seonghyeon order himself an identical one, just with a carton of strawberry milk instead.

They moved to the side, out of the line, trays balanced in their hands. They made their way to their usual table, saving the other two seats for Martin and Juhoon. Keonho dropped into his seat, stretching his legs out, his shoulders sagging the moment he sat down.

Seonghyeon took Keonho’s tray without hesitation, already reaching down to pluck the pickles off the burger and set them aside on a napkin.

“You hate pickles,” he said, voice flat.

Keonho stared at him for a second, then laughed. “What? I don’t hate them.”

“You leave them every time.”

“That’s different.”

Seonghyeon raised an eyebrow but didn’t argue. Instead, he took Keonho’s fruit drink and punctured the top with the straw before placing it next to his tray.

Keonho followed the movement with his eyes, then smiled softly, something warm and easy settling in his chest. “You’re really sweet today.”

“Shut up and eat,” Seonghyeon replied, already lifting two fries into his mouth, though the subtle pink covering his ears betrayed him.

Martin walked over shortly, his eyes flicking from their trays to the missing pickles to the drink now sitting squarely by Keonho’s elbow to the way Seonghyeon had already torn open Keonho’s sauce packet and slid it over.

He sat down slowly, still watching. “That’s crazy,” he muttered, mostly to himself.

Keonho looked up. “What is?”

Martin gestured vaguely between them. “Whatever you two have going on.”

Seonghyeon didn’t even glance up. He just took another bite of his burger, chewing calmly.

Keonho laughed, bright and unbothered. “Oh, yeah. Seonghyeon just handed me his tray like he could read my mind or something.”

“Yeah, sure,” Martin responded, shaking his head. “That, among the many others.”

Keonho shrugged, already biting into his food, clearly satisfied. “He’s weirdly good at that.”

Martin opened his mouth, then closed it without saying a word. He looked at Seonghyeon again—at the way his eyes flicked to Keonho every few seconds, subtle and quick, checking that he was actually eating, that he’d taken a sip of drink, that his shoulders weren’t slumped too far forward.

Martin leaned back in his chair. “Damn, Keonho,” he said finally. “You’re so spoiled.”

Keonho grinned. “I know.”

Seonghyeon glanced at him again, just briefly. “Eat slower, or you might choke,” he warned.

Keonho obeyed without thinking.

Around them, lunch carried on, filled with noise, laughter, and chaos. Juhoon, who eventually joined them, having been held back by his teacher, exchanged a knowing look with Martin. But neither of them said anything as they watched Keonho lean closer to Seonghyeon without noticing.

☆☆☆

The study hall sat in the back corner of the school like it had been forgotten on purpose. The lights were dimmer, the windows smaller, the air heavier with the smell of old books and dust that was so thick it made some people sneeze. It was meant to be a quiet place, but there was always a low murmur of whispers and pen scratches that filled the space anyway.

Keonho was not studying.

He sat slouched over his desk, chin resting in his palm, pen moving aimlessly across the page as he doodled the same looping patterns over and over again. His half-finished homework lay abandoned beneath his notebook. His swim schedule was scribbled messily in the margin, crossed out twice and rewritten with all the recent changes.

He yawned, wide and unguarded, eyes watering a little. Across from him, Seonghyeon worked.

He had his sleeves rolled neatly to his elbows, pen moving steadily, posture straight but relaxed in the way of someone who had learned how to sit through long stretches of stillness. He was focused—not on his own paper, but on both.

He finished the last question on Keonho’s form, checked it once, then flipped back to his own copy and rewrote the entire thing from the top. Same handwriting. Same spacing. Same everything, except for their personal details and the sports they had chosen. Swimming for Keonho. Soccer for Seonghyeon.

Keonho didn’t notice. He was busy shading in the corner of his notebook, eyes drifting toward the clock on the wall. 3:42 PM. Swim practice started at four. His shoulder ached faintly when he leaned too hard on it, but he ignored that, too.

Without looking up, Seonghyeon slid a completed form across the desk. It stopped just under Keonho’s elbow.

Keonho blinked, startled. “Oh. Did we have to do that today?”

“Yes,” Seonghyeon said quietly.

“I was gonna start on it soon…” Keonho added, not convincingly.

“Yeah, yeah, I’m sure you were.”

That made him smile. He straightened a little, taking the paper and carefully slipping it into his bag. “You’re the best.”

Seonghyeon didn’t respond. He was already back to working, eyes scanning his own sheet for any mistakes or forgotten areas, pen moving like nothing else had happened.

Two desks away, Martin had stopped pretending to read. He leaned back in his chair, watching openly now, arms crossed. His gaze flicked between the two boys.

Juhoon, seated beside Martin, leaned over and whispered, “Does he do that often?”

Martin huffed a quiet laugh. “You have no idea.”

Keonho stretched, arms raised overhead in a lazy arc. His shoulder protested, sharp and brief. He winced before he could stop himself.

Seonghyeon’s eyes shot up immediately. “You okay?”

“Yeah,” Keonho said automatically. Too fast to be casual. “Just tired.”

Seonghyeon held his gaze for a second longer than necessary. Then he nodded and reached into his bag. He pulled out a jelly packet—Keonho’s favourite flavour—and placed it in front of the younger one.

Keonho stared at it, then gasped softly after recognising the brand. “Did you bring that for me?”

Seonghyeon paused, like the question genuinely caught him off guard. “Yeah, I always have one in my bag for you.”

Keonho’s chest warmed at that, something soft and familiar blooming there. He picked it up without thinking, taking a bite as he went back to his doodling.

Seonghyeon finished off his form too, tidying up his things. “Okay, I’m done. Let’s go,” he said, already standing up.

“Where are we going? I have swimming practice soon,” Keonho asked, confused.

The older one stared at him for a moment before responding, “Yeah, I know. I’ll walk you there.”

Keonho furrowed his brow. “But don’t you have soccer training now? That’s in the opposite direction.”

“I have something to get from the locker rooms anyway, so we can walk together,” Seonghyeon replied, as they walked out of the study hall.

They walked side-by-side, Seonghyeon nodding as Keonho talked about anything and everything that came to his mind. Seonghyeon watched him walk into the designated area for the swim team, a small smile tugging on his face as Keonho waved goodbye with his usual grin.

Seonghyeon, in fact, did not have something to get from the locker rooms.

☆☆☆

The pool was loud in a different way than the rest of the school. Everything echoed—splashes ricocheting off tiled walls, whistles slicing through the humid air, voices warped and distant under the high ceiling. The smell of chlorine clung to everything, sharp enough to sting the back of the throat. It soaked into skin, into hair, into the fabric of towels and hoodies left piled on the benches.

Keonho loved it here.

He cut through the water cleanly, arms moving in smooth, familiar arcs, breath timed perfectly to the rhythm he’d drilled into his body over years of early mornings. Freestyle felt like second nature—pull, kick, breathe, repeat—his mind finally quieting as his body took over.

He pushed off the wall harder than usual. His shoulder protested immediately.

It wasn’t a dramatic, sharp snap. It was just a wrongness—an ache that bloomed deep and hot beneath the muscle as his arm stretched forward again. Keonho frowned mid-stroke but didn’t make an effort to slow down. He adjusted instead, compensating without thinking, letting his other arm do a little more work.

Just a little further, he told himself. Practice will be done soon.

By the time practice ended, his shoulder felt heavy. Like someone had tied weights to just one side of his body.

“Good work today,” the coach called out as the swimmers climbed out, water dropping off them in rivulets. “Stretch properly. Don’t slack.”

Keonho nodded along with everyone else, grabbing his towel and slinging it around his neck. His arm shook faintly as he reached for his bag, but he ignored that, too, going to change out of his wet swimsuit.

Seonghyeon was waiting outside. He always was.

Soccer practice had ended earlier, grass stains still marking his knees, hair damp with sweat. He leaned against the railing with his arms crossed, posture relaxed, but his eyes were scanning the crowd automatically.

He spotted Keonho immediately.

“Hey,” Keonho called, bright as ever. “You’re early.”

Seonghyeon didn’t answer right away. His gaze flicked to the way his towel was looped awkwardly, favouring one side.

“Are you feeling okay?” he asked instead.

Keonho waved him off with his good arm. “Yeah. Just tired.”

That was when Seonghyeon noticed the slight hitch when Keonho adjusted his bag strap, the way his smile stayed fixed a fraction too long, the way Keonho avoided rolling his shoulder like he usually did after practice.

Seonghyeon stepped forward without comment and reached for Keonho’s bag.

“Hey—” Keonho laughed softly, surprised, “No need, I’ve got it.”

“It’s fine,” Seonghyeon said, already lifting it without waiting for permission. “I’ll carry it.”

Keonho hesitated for half a second, then let go. Relief slid through him so easily it scared him a little. He flexed his fingers instead, pretending nothing was wrong.

They walked out together, the evening air cool against Keonho’s damp skin. The sun was beginning to dip, casting long shadows across the pavement.

At the door, Seonghyeon reached out and pushed it open before Keonho could.

“Wow,” Keonho teased lightly. “Humanity isn’t dead.”

Seonghyeon glanced at him and rolled his eyes. “Don’t be stupid.”

Keonho laughed, but it faded quickly when his shoulder throbbed again.

They slowed their pace without discussing it. Seonghyeon adjusted instinctively, steps shortening until they matched Keonho’s. When Keonho drifted closer, Seonghyeon shifted so their shoulders nearly touched, but he was careful not to bump the injured one.

“You’re quieter,” Seonghyeon said after a while.

Keonho hummed in response, gaze fixed on the pavement ahead of them. “Am I?”

“Yeah.”

Keonho thought about it for a moment, lips pursed. “Practice was hard today.”

Seonghyeon nodded. He let a few steps pass before asking, carefully, “Which shoulder?”

Keonho stopped walking. He turned, startled, blinking at Seonghyeon. “What?”

Seonghyeon didn’t look smug or accusatory. He never did. His expression was calm, but threaded with something sharper underneath. Concern. “Which one hurts?” he repeated.

Keonho opened his mouth to deny it automatically. The words were already forming—I’m fine, it’s nothing—but they stalled when their eyes met. Seonghyeon was watching him too closely and would see through the lie straight away.

Keonho sighed, shoulders sagging a fraction. “Left,” he admitted. He smiled, a little sheepish. “It’s really nothing. I probably just overdid a stroke.”

Seonghyeon’s lips pressed into a thin line. “Did you tell your coach?”

Keonho shook his head immediately. “No. It’s really not a big deal.”

Seonghyeon didn’t argue. “Okay,” he said quietly. “But we’re icing it when we get home.”

Keonho blinked. “We?”

Seonghyeon paused for half a second, then shrugged like the answer should’ve been obvious. “I have ice packs at home.”

Something warm unfurled in Keonho’s chest. He smiled without thinking, soft and unguarded. “Have I ever told you that you’re the best? Because you are.”

Seonghyeon didn’t reply. He was too busy watching the way Keonho instinctively cradled his injured shoulder now that it had been named, too busy cataloguing the signs he’d learned to notice long before Keonho ever did.

To Keonho, this was just Seonghyeon being Seonghyeon. To Seonghyeon, it was the quiet fear of knowing Keonho would always push himself too far, followed by the incomprehensible instinctive need to be the one who caught him when he did.

☆☆☆

They took the same route every day. Out the side gate, past the small convenience store with the flickering sign, down the narrow street that curved gently toward the residential blocks. It wasn’t the fastest way home, but it was much quieter with fewer cars and more space to breathe.

Seonghyeon walked on the roadside automatically. He didn’t really have to think about it. He just adjusted the moment they stepped off the curb, drifting half a step outward so Keonho stayed closer to the sidewalk. Keonho noticed, but accepted it, knowing Seonghyeon wouldn’t let him argue even if he wanted to.

He walked with his hands tucked into the sleeves of his hoodie, shoulders hunched slightly as he breathed in the cool air. His injured shoulder ached dull and persistent, not enough to stop him, but enough for him to reach over every now and then to steady it with his other arm.

For a while, they didn’t talk. The streetlights flickered on one by one, orange pools of light stretching across the pavement. Somewhere down the road, a dog barked. The day felt like it was finally winding down and getting ready for the night to take over. Keonho broke the silence first.

“Coach said we might have a meet next week,” he said. “Friday, maybe.”

Seonghyeon hummed. “You’ll be tired.”

Keonho laughed quietly. “I’m always tired.”

“I know.”

Keonho glanced sideways at him, amused. “You sound proud.”

“I’m not,” Seonghyeon said, but there was no bite to it. “You tend to skip meals.”

Keonho winced. “I don’t skip them. I just… forget sometimes.”

Seonghyeon didn’t answer. He reached into his bag while they walked, fingers finding what he needed by memory alone. The soft crinkle of packaging broke the quiet. He held out a granola bar.

Keonho stopped. He stared at the granola bar in Seonghyeon’s hand, then up at his face. “You’re actually unbelievable.”

“And you’re actually hungry,” Seonghyeon replied.

Keonho took it without arguing, peeling it open and taking a bite as they resumed walking. He chewed slowly, relief easing into his body with each step.

Seonghyeon’s house was quiet when they arrived. His parents were still out working, so it was just the two of them. They both kicked off their shoes by the door before heading to the kitchen, where the faint hum of the refrigerator filled the space.

“Sit,” Seonghyeon said, pointing to one of the stools at the counter.

Keonho perched on the stool obediently, watching as Seonghyeon returned with an ice pack wrapped in a thin towel.

“Can you take your hoodie off?”

Keonho tried, wincing faintly as he attempted to slip his left arm through. When it caught, Seonghyeon moved immediately, helping him ease it off without hurting Keonho.

Seonghyeon’s touch was careful, as if he were handling a precious glass that could be shattered if he added too much pressure. He adjusted the ice, watching Keonho’s face more than the injury, monitoring his every breath and searching for any flicker of discomfort.

“Too cold?” he asked.

Keonho shook his head. “It’s fine.”

Seonghyeon frowned, not entirely satisfied with the vague answer. “Tell me if it’s not.”

Keonho swallowed. “Okay.”

They sat like that for a while, quiet, as Keonho’s body slowly relaxed, the ache dulled, and the weight of the day finally caught up to him.

Keonho smiled weakly, tired but genuine, his eyes slightly shiny. “Thank you, Hyeon.”

Seonghyeon looked at him, at the trust Keonho had in him to let him take care of him. Something in Seonghyeon’s chest twisted—tight and aching and warm all at once. “Anytime,” he said softly.

Neither of them questioned the fact that Seonghyeon walked him home, even though Keonho’s house was just down the block and he was perfectly capable of getting there himself. Because this was just their normal. Tomorrow, they would do it all again.

☆☆☆

The library was too quiet in a way that made everything feel louder than it should’ve been. Keonho realised something was wrong when his phone buzzed softly in his pocket. He pulled it out beneath the desk, screen dimmed low, expecting something unimportant—Martin sending a meme, maybe Juhoon asking to hang out.

Instead, it was an email notification.

Subject: History Project Submission - Missing File

His stomach dropped. Keonho opened it, heart thudding harder with every line.

Hi Keonho,

I noticed your individual portion of the group project wasn’t attached to the submission. Please send it as soon as possible.

Kind regards,
Mr Park

Keonho stared at the screen, panic creeping up his throat. This couldn’t be happening. He’d done it. He remembered doing it—late, half-asleep, shoulder aching, files open everywhere. He must’ve forgotten to upload it or attached the wrong version.

“Oh my god,” he whispered, dragging a hand down his face.

Across the table, Seonghyeon looked up. “What’s wrong?” he asked quietly.

“I—” Keonho swallowed. “I think I forgot to submit my part of the history project.”

Seonghyeon froze. “When was it due?”

“Last night.”

Seonghyeon nodded. “Okay.”

That was all he said. Seonghyeon stood up from his chair and came over to Keonho’s side of the table, opening his laptop. Keonho hovered uselessly beside him, fingers tapping anxiously against his thigh.

“I’m so stupid,” Keonho muttered, pouting. “I swear I finished it, I just—”

“I’ll check,” Seonghyeon said gently.

Keonho shut up and watched as Seonghyeon’s fingers flew across the keyboard with efficiency. He pulled up the shared drive, checked the timestamps from last night, and compared versions of the documents. He pursed his lips when he realised what had happened.

“Keonho, you saved it locally,” he said. “Not to the assigned folder.”

Keonho groaned, dropping his head onto his folded arms. “Kill me.”

“I won’t kill you,” Seonghyeon replied. “But I can try to help you fix it.”

He switched tabs, opening up Keonho’s emails. Keonho watched, dazed, as Seonghyeon typed, his tone polite and apologetic without placing blame. He attached the missing file, added a note about technical issues, and requested understanding. Then he hit send.

“There,” Seonghyeon said quietly, closing the laptop.

Keonho lifted his head slowly. “You didn’t have to do that, but I owe you. Seriously.”

Seonghyeon met his eyes and shrugged. “You don’t owe me anything. It’s fine.”

Later, in the cafeteria, the group clustered around their usual table. Martin and Juhoon had reached before them, occupying the seats that left them with no choice but to sit on separate sides instead of next to each other like they normally would have.

Once Keonho sat down, Juhoon nudged him with his elbow. “Did you fix it?”

Keonho grinned. “Yeah. Crisis averted.”

“How?” Juhoon asked.

“Seonghyeon saved me. Again.” It was meant to be light. A joke. Something easy.

Juhoon smiled knowingly, then tilted his head, eyes flicking between them. “Honestly? You’d survive nothing without him.”

Keonho laughed, nodding his head in agreement.

Across the table, Seonghyeon stiffened at the sound that echoed through his ears. It wasn’t entirely visible, at least not enough for most people to notice. Just a subtle tightening through his shoulders, like someone had pulled a thread too suddenly. He swallowed as he watched Keonho giggle at whatever Juhoon had said.

Martin, sitting beside Seonghyeon, didn’t laugh. He leaned back in his chair, eyes narrowed thoughtfully, gaze fixed on Seonghyeon now. He watched the way Seonghyeon’s hands curled slightly in his lap and the way his eyes dropped to the table instead of Keonho’s face.

Keonho didn’t see any of that. He was still smiling as he responded, “I would survive… But I would probably be late, starving, and expelled by now.”

Juhoon snorted. “Exactly.”

Seonghyeon stood, the legs of his chair scraping back and cutting through the air. “I’ve got practice,” he said, voice flat.

Keonho looked up, surprised. “Already?”

“Coach wanted us to be there early.”

“Oh. Okay.” Keonho smiled. “I’ll see you later?”

Seonghyeon hesitated. Just long enough for Martin to notice.

“Yeah,” he said finally. “Later.” Seonghyeon left without waiting, his backpack slung over one shoulder.

Martin watched him go. Then he looked back at Keonho, still laughing, still unaware, and shook his head faintly.

“That clearly wasn’t a joke,” Martin murmured.

Keonho didn’t hear him. But something had shifted, and Seonghyeon felt it the moment he stepped outside of the cafeteria. The first crack in something he’d been pretending didn’t have a name.

☆☆☆

The concrete stairwell near the gym always had a faint odour of rubber and dust. It was tucked just far enough from the main halls that most students didn’t bother cutting through it. Voices from the soccer field below drifted up through the open slit of windows, shouts and whistles rising and falling like distant waves.

Seonghyeon sat on the steps with his soccer bag at his feet. He hadn’t meant to stop here. He’d walked out of the cafeteria on autopilot, feet carrying him where they always did when his head felt too full.

Then he checked his phone. No messages. He told himself that meant nothing, that he didn’t care.

Footsteps echoed from above. Martin appeared at the top of the stairs, slowing when he saw Seonghyeon sitting there. He took in the scene in one glance—the bag, the stillness, the way Seonghyeon’s shoulders were drawn too tight.

“Skipping practice?” Martin asked lightly.

Seonghyeon shook his head. “I have a few minutes before my team starts.”

Martin nodded and descended a few steps, stopping a short distance away. He leaned back against the railing, arms crossed, gaze fixed not on Seonghyeon’s face—but on his hands. On how they kept fidgeting, restless.

For a moment, neither of them spoke. Then Martin said it, so casually that Seonghyeon barely blinked before he registered the words.

“You know you’re in love with him, right?”

Seonghyeon let out a short laugh immediately—too fast, too sharp, too thin. “I don’t know what you’re talking about.”

Martin didn’t react. He just watched him, eyes brimming with concern.

“Seonghyeon… You don’t do this for anyone else,” Martin said.

The laughter died in Seonghyeon’s throat.

Martin pushed off the railing and stepped down one stair, voice steady. “You don’t watch anyone else eat to make sure they finish.”

Another step.

“You don’t memorise anyone else’s schedule better than your own.”

Another step.

“You don’t fix anyone else’s life like it’s your job to provide them with comfort.”

Silence flooded the stairwell. The distant sound of a whistle blew sharply outside. Someone cheered. The world kept moving. But Seonghyeon didn’t.

He stared at the concrete step in front of him, jaw tight, breath shallow. His mind scrambled for the explanations he’d been using for years.

Keonho needs help. I’m responsible. That’s what best friends do.

Martin crouched down so they were eye level now, voice softer, but somehow that made it even worse.

“You should be able to stop if it’s not love,” he said. “But you can’t.”

Something in Seonghyeon broke. His chest felt too tight, as if he had been running without realising how long it had been. He swallowed hard.

“He’s my best friend,” Seonghyeon said, the words coming out almost panicked. “I—he trusts me. I can’t—”

Martin nodded. “Yeah.” Then, quieter, he added, “That’s why you’re probably terrified.”

The word love sat between them now. Heavy. Dangerous. If it was love, it meant something. It meant Keonho didn’t—couldn’t know. It meant Seonghyeon couldn’t keep pretending this was harmless. It meant every small thing suddenly mattered.

Seonghyeon pressed his palms into his knees, grounding himself. “If he finds out,” he said slowly, “everything changes.”

Martin didn’t argue.

“But if I keep going like this,” Seonghyeon continued, voice barely above a whisper, “It will only get worse.”

He pictured it—his world narrowing until it was just Keonho. His needs. His moods. His injuries. His smile.

He didn’t know how to want less.

Martin straightened, furrowing his brows. “So what are you going to do?”

Seonghyeon closed his eyes. The answer came to him immediately. The only one that felt safe.

“Distance will help. I’ll pull back,” he said.

Martin’s expression softened, worried but knowing. “Seonghyeon, you don’t have to do that. You could tell him how you feel.”

“No, I can’t,” Seonghyeon admitted. “I already know he doesn’t feel the same.”

He stood, slinging his bag over his shoulder. The weight felt heavier than before.

Martin watched him go down the steps, then said quietly, “Just don’t pretend that it won’t hurt him too.”

Seonghyeon paused at the door. He didn’t turn around.

“I know,” he said. “But I’d rather distance myself and keep my best friend than have him be scared of being around me.”

As Seonghyeon stepped back into the noise of the school, something fundamental had changed. He had finally named it. All those acts he had done unconsciously for Keonho. Love.

☆☆☆

It didn’t happen all at once. That was the worst part. It started small enough that Keonho didn’t clock it as anything other than a slightly off day.

Keonho noticed it first during a class he shared with Seonghyeon. He reached into his bag and froze. No pencil case. Again.

He blinked at the empty pocket, then glanced sideways automatically, already expecting the familiar slide of blue plastic into his field of vision. But nothing happened.

Seonghyeon was sitting beside him like always, posture straight, eyes on the board. His own pen moved steadily across his notebook.

Keonho waited a beat longer than necessary. Then he cleared his throat. “Uh, do you have an extra pen?”

Seonghyeon paused for a fraction too long. Then he reached into his bag, pulled one out, and handed it over.

“Yeah,” he said. “Here.”

Keonho smiled, relieved. “Thanks.”

But something felt… off. The date wasn’t written at the top of his page. The pen wasn’t already waiting. Seonghyeon hadn’t even looked at his notebook to check.

Whatever, Keonho told himself. I probably just beat him to it.

They were leaving after the last period together, the hallway washed in late-afternoon light, lockers slamming as people passed. Keonho rolled his shoulder experimentally, wincing when the ache flared again. He adjusted his bag strap, fingers fumbling with the twisted fabric.

Seonghyeon was there—walking beside him, expression neutral, eyes forward—but his hands stayed at his sides. He didn’t reach out. Didn’t slow down when Keonho lagged just slightly.

Keonho shrugged it off. He’s probably tired, he thought. Big practice today.

At the doors, Keonho pushed them open himself. It felt oddly heavier than usual. He laughed it off under his breath. Outside, the air was cool, and the sky was painted faintly orange at the edges. They started down their usual route.

Seonghyeon didn’t move to the roadside. He stayed exactly where he was. Keonho noticed that. It was like walking into a room where the furniture’s been shifted an inch to the left. They walked a few steps in silence.

“You okay?” Keonho asked, casually

“Yeah,” Seonghyeon said immediately. Too fast. “Why?”

“No reason,” Keonho replied, smiling. “You’re just quiet.”

“I’m always quiet.”

Keonho laughed. “Okay, fair.”

They kept walking. Seonghyeon had drifted half a step away. Keonho frowned, then forced a grin, trying to cover the strange twist in his chest.

No extra pens slid across desks. When Keonho reached into his bag and came up empty, Seonghyeon didn’t wordlessly fix it. Instead, he watched and waited until Keonho asked him or let Keonho borrow from someone else.

No reminders were murmured under his breath. Keonho missed deadlines. He forgot important forms and ran late more often. Seonghyeon noticed every single time. He just didn’t intervene.

No bag carried. Keonho adjusted the weight himself, wincing when it tugged at his shoulder. Seonghyeon walked beside him, hands empty, gaze fixed straight ahead.

No automatic slowing. When Keonho lagged, Seonghyeon didn’t match his pace. No walking together unless asked. Sometimes Keonho asked, “Wait up?” And Seonghyeon always did. But only then.

The space between them grew, not wide, but hollow. Like something essential had been removed, and neither of them knew where it had gone.

Keonho started feeling it in places he couldn’t name. In the way his mornings felt heavier. In how loud the silence was on their walks home. How tired he felt, even when he had slept.

He didn’t know what he’d lost. Everything in his life was still the same—same people, same daily occurrences, same everything. He only knew that something that used to hold him together had disappeared.

And Seonghyeon… Seonghyeon did everything it took not to reach back out, clenching his fists and looking away when Keonho asked someone else for something or winced when his shoulder hurt. Because loving Keonho had never been the hard part. Stopping was.

☆☆☆

The surroundings of the swimming pool buzzed with noise—cheers echoing off tiled walls, the loud peal of whistles, the constant churn of water slicing against lanes. Banners from different schools hung overhead, the colours all blurring together beneath the bright lights.

Keonho stood behind his block, shoulders rolled forward as he stretched, teeth clenched. The ache had been there since warm-ups. It wasn’t unbearable, just a deep, persistent throb in his left shoulder that flared every time he rotated it too far. He flexed his fingers, rolled the joint once more, and forced his expression neutral.

This wasn’t training. This was a swim meet.

He glanced instinctively toward the stands. Parents, students, teammates clustered in school jackets. Many faces he recognised, and some he didn’t. His eyes swept the rows quickly, automatically, then stopped.

Keonho swallowed. Seonghyeon wasn’t there. Of course, he wasn’t. He had practice. Keonho had known that. He’d smiled about it, even joked earlier, waved him off like it meant nothing. Still, something in his chest tightened painfully. He looked away before he could linger on the thought.

“Final heat,” the announcer called. “Swimmers, take your positions.”

Keonho stepped up onto the block. The roar of the crowd faded into a dull hum as he crouched, fingers gripping the edge, breath slow and measured. The ache pulsed again, sharper now, but he locked it down, focused on the water below.

I need to win this.

The whistle blew. He dove. The impact of water swallowed him whole, cool and familiar, body slicing cleanly into the lane. His first strokes were strong, muscle memory carrying him forward with ease. The rhythm settled quickly—pull, breathe, kick—his body moving on instinct.

By the first flip turn, he was already ahead. By the second, his shoulder screamed.

Every pull sent a jolt of pain down his arm, deep and electric, like something inside him was protesting violently. His stroke faltered for half a second, and he corrected immediately, gritting his teeth as he compensated with his legs.

Don’t slow down.

He could hear the crowd now, muffled through water and adrenaline. He could sense the other swimmers around him, feel the pressure of competition closing in. His shoulder burned. Then throbbed. Then went numb in a way that terrified him far more than pain ever could.

It was the final lap when that sharp, wrenching pull stole his breath mid-stroke. His arm faltered, dragging uselessly for a moment before he forced it forward again, muscles screaming in protest. His vision blurred. Still, he didn’t stop. He kicked harder, lungs on fire, legs churning as he drove himself toward the wall with everything he had left.

He touched first.

For a moment, there was nothing. Then the noise hit him all at once—cheers exploding from the stands, teammates shouting his name, the announcer’s voice cutting through the chaos.

“Lane four, Ahn Keonho, takes the win!”

Keonho barely registered it. He clung to the edge of the pool, chest heaving, water dripping from his hair as pain finally caught up to him in full. His left arm trembled violently, fingers going slack as he tried to lift it and failed.

His breath hitched. He hauled himself out using one arm, legs wobbling as his feet met the tile. Applause thundered around him, but it felt distant, unreal, like it was happening in another room entirely. Someone pressed a medal into his hand. Someone clapped him on the back.

Keonho smiled automatically—bright and practised—then the world tilted. His shoulder gave out completely. He gasped, pain tearing through him as his hand flew to his arm, body curling inward instinctively. The noise dimmed again, swallowed by the rush of blood in his ears.

“Keonho!” James, their medic, ran up to him, steady hands gripping his elbow before he could sink to the ground. He guided Keonho toward the closest bench, movements careful and efficient, eyes filled with concern.

“Sit down. Slowly.”

Keonho obeyed, biting down hard to keep the sound in his throat. The medal slid from his fingers, clinking softly against the tile.

James crouched in front of him, gaze flicking briefly to the shoulder Keonho was clutching protectively. “When did it start hurting?”

Keonho laughed weakly, breathless. “Earlier.”

James’s jaw tightened. “You should’ve stopped.”

“I won,” Keonho said faintly, as if that explained everything.

James didn’t argue. He grabbed a towel, draped it around Keonho’s shoulders, then pressed an ice pack gently into his hand. “Hold that. Don’t move.”

Keonho listened, curling around the ache, teeth sinking into his lip as the cold seeped in. His body trembled now, adrenaline bleeding away and leaving only pain and exhaustion behind.

The crowd was still cheering. His teammates were celebrating.

Keonho stared down at the ice pack, chest tight for reasons that had nothing to do with the race.

Seonghyeon would’ve seen it. He would’ve noticed the second Keonho’s stroke changed. He would’ve known something was wrong before Keonho himself admitted it. He would’ve been there at the edge of the pool, voice calm but unyielding, telling him to stop. To sit down. To ice it. To rest.

The realisation settled heavily in his chest. Keonho blinked hard, swallowing past the sudden sting behind his eyes.

James squeezed his other shoulder gently. “We’ll get you checked out,” he said. “You did well. But you’re done for today.”

Keonho nodded. He had won the race. And yet, sitting there with his shoulder throbbing and Seonghyeon nowhere in sight, it felt like he had lost anyway.

☆☆☆

Seonghyeon didn’t even remember leaving the field. One second, he was jogging drills, lungs burning, coach barking instructions that barely registered—and the next, someone was shouting his name from the sidelines, voice sharp with urgency.

“Seonghyeon!”

He turned, breath catching. A junior from the swim team stood there, eyes wide.

“Keonho’s racing right now,” he blurted. “It’s the final heat.”

Seonghyeon’s chest tightened instantly.

“I thought you should know,” the kid added, then hesitated. “He, uh, looked hurt.”

That was all it took. Seonghyeon tore his shin guards off with shaking hands, barely registering his coach’s voice calling after him. He didn’t stop to explain or think. He ran.

The swimming pool was on the other side of their school, and his legs screamed in protest as he sprinted across the concrete. His cleats slapped unevenly against the ground, breath ripping in and out of his lungs as one thought repeated over and over in his head.

Left shoulder. He said it was the left one.

He burst through the doors just as the crowd exploded. The sound hit him like a wall—cheering, shouting, whistles echoing off tile. Chlorine burned his nose. He skidded to a stop at the top of the bleachers, eyes scanning frantically, and then they locked onto lane four.

Keonho was pulling himself out of the pool.

Relief flared sharp and immediate—he’s okay, he finished, he’s—then Keonho’s body folded.

Seonghyeon felt it like a punch straight to the chest.

He took the steps two at a time, heart pounding so hard it hurt. By the time he reached the deck, Keonho was already being guided to the bench, a towel draped around his shoulders. James was there. James’s hands were steady, practised, already pressing an ice pack into Keonho’s trembling grip. He spoke low and calm, blocking the worst of the noise with his body.

Seonghyeon stopped short. He hovered just out of reach, suddenly hyper-aware of himself—mud-streaked socks, grass stains on his uniform, chest still heaving from the run. He watched, helpless, as James adjusted the towel, murmured something that made Keonho nod weakly.

He’s being taken care of.

The thought came unbidden, sharp and confusing. This was what he’d told himself he wanted, wasn’t it? For Keonho not to rely on him so completely. For someone else to step in. So why did his chest feel like it was caving in?

Seonghyeon froze as Keonho even laughed once—breathless, strained—but he managed to smile anyway.

“Hey,” James said to Keonho. “Focus on breathing, okay?”

Keonho nodded, obedient, shoulders curling inward as pain finally caught up with him. He didn’t reach for Seonghyeon. Keonho didn’t even see him.

Seonghyeon’s hands clenched uselessly at his sides. This was exactly what Martin had meant. You should be able to stop if it’s not love. He’d told himself he would pull back. That distance was necessary. That this ache, this instinct to drop everything and run, was dangerous.

And yet, the moment Keonho had been hurt, his body had moved without permission.

Seonghyeon took a step forward, then stopped himself. He turned before Keonho spotted him, before his resolve could crack completely. The noise of the centre swallowed him again as he walked away, every step feeling heavier than the last.

By the time he reached the doors, his hands were shaking. He leaned briefly against the wall, eyes shut, breath uneven. He had been right there. And still, he’d chosen to step back.

As Seonghyeon headed back down to the oval to the soccer training he had ditched without thought, the image burned into his mind—not Keonho winning, not the medal, not the cheers—but Keonho sitting on the bench, shoulder injured, trusting someone else to take care of him.

This was the cost of naming it. This was what distance looked like. And not for the first time, Seonghyeon wasn’t sure he was strong enough to keep it up.

☆☆☆

The cafeteria was loud, chaotic, and warm, the perfect storm for half-eaten lunches, overlapping conversations, and the smell of fried food that clung to everything. It was a few days after Keonho had recovered from the swim meet, having been advised by James to take some time off to avoid straining his shoulder.

Keonho sat between Juhoon and Martin, leaning back slightly on his chair, giggling at some joke Juhoon had told about their physical education teacher tripping over a cone.

It wasn’t even a full laugh—just those soft, little bursts of giggles he made when something was genuinely funny. His eyes crinkled, smile on display, shoulders bouncing lightly with the sound.

Seonghyeon, sitting diagonally across him, looked up immediately. It wasn’t casual in the slightest bit. He should’ve gotten whiplash from how fast he turned to focus on Keonho, eyes narrowing slightly. His fingers paused mid-motion from picking at his lunch. Every muscle in his body stiffened, just for that half-second.

Keonho noticed it. He didn’t understand it at the time. Just knew that something felt incredibly wrong. Seonghyeon’s gaze had never burned into him like that before.

Juhoon continued, oblivious, and Keonho laughed again—this time soft, nervous, and hoping the tension wasn’t obvious.

Seonghyeon stood, grabbed his tray, mumbled something vague about practice, and walked out.

And suddenly the air around Keonho felt too big, too cold, too empty.

He opened his mouth to call after him, but stopped, unsure if Seonghyeon would even hear him.

Martin, who had been watching quietly, finally lost his patience. He leaned forward, elbows on the table, voice low but sharp.

“Keonho,” he said.

Keonho looked up, blinking. “Yes?”

Martin didn’t bother with pleasantries. He cut straight to the truth, eyes never leaving Keonho’s face.

“You know that boy,” Martin started, jerking his thumb toward the space Seonghyeon had occupied. “He nearly snaps his neck every time you laugh. I’ve seen it with my own two eyes. Every time you giggle, every little squeaky laugh of yours, he’s checking. Checking if you’re okay, checking who’s making you laugh, checking everything.”

Keonho’s stomach twisted. “What—No, I don’t… I didn’t notice.”

Martin leaned back, shaking his head, exasperated. “Of course you didn’t. You’re oblivious, and he’s completely messed up in the head about you. And he’s pretending he isn’t. You’re lucky you don’t see the green in his eyes when someone else talks to you.”

Keonho’s throat tightened. His chest felt tight and strange. “I—I don’t understand…”

Martin sighed and leaned closer, lowering his voice, almost tender now. “You think you’re just friends, right? You’re not. Not even close. He’s… terrified of himself. Terrified of you. And you, you’re like the Sun he can’t afford to look at for too long without losing himself.”

Keonho froze. The cafeteria noise continued around him. Laughter, tray clatters, the faint hum of the air conditioning system. But it all felt muted now, distant, because his heart had just caught in his throat.

Seonghyeon was gone. And in his absence, after being hit fact by fact by Martin’s words, Keonho noticed everything he’d been taking for granted. The careful walks, lunches, perfectly timed snacks and ice packs—the way Seonghyeon’s world had somehow revolved around him without ever saying a word.

“Martin…” Keonho whispered, voice small. “He does all that… for me?”

Martin nodded, softening. “Every damn day. And you didn’t even notice.”

Keonho’s fingers twitched against his tray. A strange ache settled over him. It wasn’t physical pain like his shoulder. No, it was emotional weight. Hollow and heavy.

He didn’t know how to fix it. He didn’t know how to reach Seonghyeon or if he even should.

All he knew was that the cafeteria felt impossibly loud now, the noise ringing uncomfortably in his ears. And for the first time, the quiet devotion he’d always overlooked as comfort hit him in the face like a brick.

☆☆☆

The stadium smelled of grass, sweat, and the faint hint of rain that had passed earlier that morning. The bleachers were packed with students, families, and friends, waving handmade signs, voices blending into a constant roar that vibrated through the soles of Keonho’s shoes.

Keonho perched near the front, clutching the edge of the metal railing. His swim team hoodie felt heavy on his skin, though he didn’t know why. His shoulder ached faintly from earlier practice, but it wasn’t that. It wasn’t physical. It was the emptiness that was consuming him. The hollow space he’d felt for the past few days was amplified by the noise of cheering crowds.

Seonghyeon had ignored him completely after that day. He would avoid him in the hallways, would sit with others during lunch, stop answering his texts, and even swap seats during the classes they shared.

On the field, Seonghyeon moved awkwardly. He was normally so controlled and coordinated, so precise with his movements, but now he misjudged passes, missed simple opportunities. His footwork, usually seamless, stumbled in tiny, frustrating ways.

The coach yelled from the sidelines, frustration burning. “Eom Seonghyeon! Eyes up! Move! Focus!”

The team, normally led perfectly by Seonghyeon, responded with fragmented coordination. Midfield passes faltered, opportunities slipped through fingers, and for the first time all season, the other team started leading in goals.

Keonho’s stomach churned. He leaned forward instinctively, teeth clenched, wanting to fix it, wanting to do something, anything, but there was nothing he could do. He wasn’t on the field. He couldn’t run, couldn’t shout, couldn’t help Seonghyeon the way he always had helped Keonho.

Juhoon’s elbow jabbed him in the ribs. “Hey,” he whispered, leaning closer. “You should be down there.”

Keonho blinked. “What? Me?”

“Yeah, you,” Juhoon said. “Down there. On the field. You would help him focus.”

Keonho frowned, confusion twisting in his expression. “I… I can’t. I mean—he wouldn’t even want to see me after all that, would he?”

Juhoon shook his head. “It doesn’t matter. You would be the one he’s waiting for. Don’t think too much about it. Just go.”

The words landed, strange and urgent. Keonho’s chest tightened. Waiting for me? His mind jumped to all the mornings, the walks, the snacks, the little invisible threads that had always tied him to Seonghyeon. Was this what Martin meant?

The whistle blew sharply across the field, pulling him from thought. Seonghyeon struggled with another pass, jaw tight, hands clenched, the pressure from the crowd pressing in.

This time, Keonho didn’t hesitate. He grabbed the cheering sign he had made and started down the stairs from the bleachers, weaving through the crowd. Every step felt heavier than the last. He didn’t even know what he was going to do, only that he had to be there for Seonghyeon.

The roar of the crowd faded behind him. All Keonho could think about was the rhythm he and Seonghyeon had always shared—the quiet support, the automatic care that had gone unnoticed until now.

He reached the sidelines just as another player easily intercepted the ball from Seonghyeon.

Without thinking, Keonho shouted, “Eom Seonghyeon!”

The words cracked through the chaos, like a single, impossible tether in the storm of shouts and whistles.

Seonghyeon froze. His head snapped toward the sidelines.

And in that instant, everything clicked for Keonho.

The missed passes. The frustration. The hollow ache that Keonho had felt for days. The absence that had felt impossible to name.

It wasn’t just friendship. It had never been just friendship.

☆☆☆

The stadium buzzed around him, a cacophony of voices, whistles, and clanging metal bleachers, but Seonghyeon barely registered any of it. His legs moved, his feet kicked, his muscles responded, but his mind wasn’t on the game.

It was on Keonho.

He’d thought maybe the swimmer would be watching from the stands, holding a sign, a quiet cheer—but there was nothing. The absence gnawed at him, sharp and bitter, in the pit of his stomach. He tried to focus, tried to run, pass, and defend. But every time he glanced toward the bleachers, all he saw was empty space.

His ankle twisted just slightly during a bad tackle, but he barely felt it. All he could see, all he could think about, was that Keonho might not come at all.

Keonho, whose shoulder had been hurting last week… Keonho, who pushed himself too hard… Keonho, who he should have been protecting… Keonho, who probably hated him and never wanted to see him again.

Each pass he missed felt heavier. Every misstep and every slip of concentration was magnified by that empty space. He could feel the coach’s frustration, hear the teammates’ quiet sighs, but the sound didn’t reach him fully. His thoughts kept spiralling.

He’s not here… What if he’s hurt? Alone? Upset?

The ball skidded past his foot again. Another teammate called for a pass he couldn’t execute. Frustration, guilt, panic—every emotion rolled over him at once. His vision blurred with fatigue and something close to longing.

And then, like a lifeline thrown into a storm, he saw movement at the edge of the field.

Keonho.

Seonghyeon couldn’t have missed it. He had seen the younger one’s swim team hoodie enough times to be able to explain the design in his sleep.

Keonho stood there, waving a sign with bright, uneven marker strokes that read, “GO SEONGHYEON!” with a messy red heart drawn next to his name.

Time seemed to slow. The roar of the crowd faded into a dull hum. His teammates continued their scramble, the ball skittering across the grass, the coach shouting, but Seonghyeon couldn’t focus on any of it.

All he could see was Keonho.

Keonho’s eyes found his immediately, bright and shining, full of worry and hope and something unspoken that pressed directly against Seonghyeon’s chest.

The ache he had ignored, the pull he had tried to bury, hit him full force. His heart thudded painfully. Every step he had taken away from Keonho, every hesitation, every attempt at “just being responsible,” now felt unbearable. Seonghyeon exhaled sharply, almost in relief.

Something unlocked. The ball came to him at midfield. If it had been a minute sooner, he would have hesitated, second-guessed himself, and stumbled under pressure. But not now.

He moved like he had a reason to win. His passes were sharp. His footwork was precise. His eyes scanned the field and, without consciously thinking, kept flicking to the sidelines, to Keonho, to the sign, to that tether of trust and love he had always taken for granted.

A teammate passed, and Seonghyeon didn’t miss. He sprinted, received, turned, and scored—a perfect strike past the goalkeeper. The crowd erupted. Seonghyeon didn’t hear it. He didn’t feel it. He only saw Keonho, jumping slightly, cheering, hands raised, grin wide and unrestrained.

His chest expanded. Breath came easier. Everything that had been tangled—the fear, the jealousy, the silent longing—somehow untangled in one perfect, bright, excruciating moment.

The next play came fast. The ball was loose. Another teammate fumbled. Seonghyeon moved instinctively, intercepting, pushing, passing, and leading. Every motion was precise, every decision sharp, every heartbeat focused.

He glanced again at Keonho. The younger one’s legs brushed the railing, fingers gripping the edges, lips parted in a cheer.

And then it hit Seonghyeon fully. This, right here, right now, is what he had been missing. Not the game. Not the wins. Not even the routine of watching out for someone. Keonho.

He had been playing poorly, not because he wasn’t capable. Not because he didn’t care. Because a part of him, the most essential part, had been empty. And Keonho’s presence filled it.

Seonghyeon had scored for the final time, seconds before the time ran out, and the whistle slowed. He was faintly aware that his team had won. The crowd erupted, voices deafening, but Seonghyeon didn’t hear them. He only heard the small, perfect sound of Keonho cheering his name.

It wasn’t the sweet taste of victory that filled him first. It was Keonho—his Keonho, his best friend, the person who naturally became his everything, the one who had shown up for him when it mattered most.

Because without him, everything had been falling apart. With him, everything clicked. His mind flashed back to the red, messy heart Keonho had drawn on his sign. Yeah, to Seonghyeon, that was love.

He was still standing at midfield, chest heaving, pulse thrumming like it would burst from his ribs. The game, the final, the goal—none of it mattered the way it should have. None of it mattered like Keonho.

The swimmer was running down the sidelines, dodging other students and staff, face flushed, eyes wide and shining, holding that lopsided handmade sign. His shoulder was tense, yet he didn’t slow. Not even when he nearly tripped on the edge of the grass.

“Keonho!” Seonghyeon called instinctively, his voice louder than he’d meant.

Keonho looked up instantly, a grin breaking across his face as he jogged the last few steps. He stopped a few feet away, the sign now crumpled in one hand, the other dropping to his knee as he caught his breath.

“You… you’re here,” Seonghyeon said, voice cracking despite himself. His usual calm, measured tone had disappeared entirely.

Keonho smiled, breathless, cheeks pink. “Of course, I wanted to see you. I knew how important this final was for you—”

Seonghyeon shook his head, cutting him off softly. “I thought you wouldn’t.”

Keonho’s smile faltered for the briefest second, worry flashing. “I—I wasn’t sure if I could or if you even wanted me here.”

Seonghyeon stepped forward without thinking, closing the last few feet between them. He didn’t touch him yet, just looked at Keonho, taking in the sight of him fully. “It doesn’t matter,” Seonghyeon whispered. “You’re here now. That’s all that matters.”

Keonho’s eyes widened. He swallowed. The tension in his shoulders, the ache in his arm, the exhaustion from practice—it all melted from his thoughts.

Seonghyeon’s hands finally found Keonho’s, gripping gently, almost desperately. Warm, steady, grounding. The sign slipped from Keonho’s hands, but neither of them noticed. The world narrowed to just Keonho, the boy he had been silently caring for, and the quiet love he could no longer pretend didn’t eat at him every day.

“Hyeon,” Keonho breathed, voice shaky. “You were so amazing out there. I don’t even know what happened, but it was like a switch flicked in those last few minutes—”

Seonghyeon laughed softly, a sound of relief, exhaustion, and disbelief all at once. “Because you were there,” he said simply. “Because I could see you.”

Keonho’s hands tightened slightly. “Oh… I’m so sorry, Seonghyeon, I—I didn’t realise everything until it was all too late and I… I missed you so much,” he admitted, small and honest, his voice trembling a little.

Seonghyeon’s chest ached. He leaned closer, forehead brushing Keonho’s. “I’ve always been here,” he whispered. “Every time. Every little thing. And I… I couldn’t stop myself from thinking about you or from caring about you. I was so scared that you didn’t feel the same.”

Keonho’s eyes glimmered, tears threatening to spill. “Hyeon, I don’t know how I didn’t notice it before, but you’re like my home,” he said, voice cracking at the end.

“When you stopped, it was like everything fell apart. I didn’t know that was… that was love. But I know now. And I don’t want to live without it, without you.”

Seonghyeon's eyes mirrored Keonho’s with that same moisture brimming in his lashes. He exhaled, relief flooding him like a tide. He brushed a thumb across Keonho’s cheek, careful. “You won’t have to. Never again. I promise.”

For a long moment, they just stood there, forehead to forehead, hands entwined, hearts echoing each other’s rhythm. The stadium noise returned slowly, distant, unimportant. The world could wait.

Then Keonho smiled through the tears, small and mischievous. “Next time, don’t almost snap your neck every time I laugh, okay?”

Seonghyeon chuckled, low and warm. “Now that, I can’t promise,” he teased, resting his forehead against Keonho’s again.

It was soft, quiet, and perfect. And for the first time in weeks, everything felt complete.

☆☆☆

The stadium noise faded behind them as the team shuffled into the locker room. The air smelled of grass, sweat, and a tang of disinfectant. Seonghyeon’s uniform was damp with sweat, his socks soaked, and his ankle—he’d ignored it on the field, but now it was obvious. Swollen slightly, purple at the edges, tender.

Keonho’s heart almost stopped beating when his eyes landed on it.

He didn’t even notice the noise of the locker room or the chatter of the soccer team. All he could see was Seonghyeon, usually so controlled, so composed, standing there like someone who had been holding in pain for way too long.

“Hyeon…” Keonho’s voice cracked, small and broken, and he stumbled forward. His hands trembled as he reached down to touch the injured ankle, afraid to bruise it more, but almost in disbelief, like he couldn’t believe his own eyes.

Seonghyeon’s hand went automatically to stop him. “Keonho—”

“No!” Keonho interrupted, his vision blurring as tears started to roll down his face. His voice broke as he knelt beside him, hands ghosting over the ankle, eyes wide and glossy after hearing Seonghyeon quietly hiss in pain. “Your ankle… You idiot, you were in pain all this time, and you didn’t tell me?”

Seonghyeon froze, silent, staring at him. His usual calm, controlled demeanour faltered under Keonho’s raw panic.

Keonho’s hands shook as he adjusted the angle, careful not to hurt him further. The tears came freely now. Hot, uncontrolled, but Keonho didn’t care. They streamed down his cheeks as he sniffled, letting the whirlwind of emotions tumble out.

Seonghyeon finally reached down, gently gripping Keonho’s wrists. “Keonho,” he said, voice tight, almost breaking too. “I’m fine, really. I swear, I barely noticed the pain until now.”

Keonho shook his head and went over to Seonghyeon’s coach to grab the ice packs, a small towel, and a bottle of water. His hands trembled as he knelt in front of Seonghyeon, placing the ice gently against the injured ankle.

“Don’t move, Hyeon,” Keonho whispered, his voice shaking. “I don’t want to hurt you.”

Seonghyeon’s chest ached—not from the injury, but from the way Keonho’s eyes were wide, full of concern, brimming with emotion. Every little movement, every small, careful touch, made his heart pound painfully. It was a kind of ache that burned and soothed at the same time, a quiet desperation mingled with relief.

“I still can’t believe you’re really here,” Seonghyeon said softly, voice thick with emotion. “Even with your shoulder, even after everything, you still came.”

Keonho’s lips quivered as he nodded, pressing the ice pack slightly more firmly.

Seonghyeon’s gaze softened, and the hollow tension in his chest that had been coiled loosened. Every time Keonho adjusted the ice, every brush of his delicate fingers against Seonghyeon’s ankle sent shivers up his spine. It wasn’t just care—it was love. Pure, unspoken, quiet love that had been there all along.

He swallowed. “Keonho.”

Keonho looked up, worried. “Yes?”

Seonghyeon exhaled slowly, gathering courage that had been held at bay for too long. He reached out, gently gripping Keonho’s wrist, then interlocking their hands. “Keonho… I love you.”

The words hung in the air, soft and trembling, but absolute. Keonho froze, chest tightening, eyes shimmering with tears and disbelief. Then, with a shaky laugh that was half sob, he whispered back, “I love you too, Seonghyeon.”

The world contracted until there was nothing but the two of them. Seonghyeon stood slowly, still supporting his ankle, and helped Keonho up. Their foreheads pressed together for a long moment, breaths mingling, hearts hammering in perfect sync.

Seonghyeon cupped Keonho’s face with trembling hands, tracing the line of his jaw, memorising the feel of him. Keonho leaned in, tilting his head slightly, and the first contact of their lips was soft, slow, careful.

It started gently as a tentative brush, testing, discovering, but quickly deepened as the weeks of unspoken longing, quiet devotion, and tiny acts of love poured into that single kiss.

Keonho’s hands threaded into Seonghyeon’s hair at the nape of his neck. Seonghyeon’s hands rested on Keonho’s waist, pulling him impossibly closer, though still careful of the shoulder and ankle. Every heartbeat, every tremor, every shiver of touch amplified the sweetness of the moment.

They broke apart just slightly, both catching their breaths with their foreheads resting together.

“I should’ve said it sooner,” Seonghyeon murmured, voice soft, a little husky. “I was scared of losing this, and scared of losing you.”

Keonho smiled through his tears, voice muffled. “You didn’t lose me, and you never will.”

Seonghyeon kissed him again, slower this time, deliberately, tasting the sweetness of his lips, the slight saltiness of his tears, and every silent moment of care that had built between them. Keonho responded with the same urgency, the same softness, and in that small, quiet locker room, the world seemed to slow around them.

And for the first time, both of them felt completely, perfectly, and undeniably home.

Notes:

thank you for reading, i hope you liked it! 🥹 all kudos and comments are very much appreciated btw! 💗

feel free to come yap with me on revospring or twitter.

Series this work belongs to: