Work Text:
The stadium was loud in the way that made Jun’s head buzz.
Shoes squeaked nonstop, someone was yelling instructions that nobody seemed to be listening to, and the air felt thick with sweat and competition and way too much adrenaline. Jun sat on the bench, towel draped over his shoulders, pretending to watch the game while actually doing something far more important.
Watching the scoreboard.
Watching Dylan.
His team was winning. Comfortably. Embarrassingly.
Jun leaned back, stretching his legs out, feeling smug settle nicely in his chest. He let his eyes wander, slow, intentional until they landed on Dylan standing across the court with his arms crossed, jaw tight, gaze locked on the players like he could will them into doing better.
Cute.
Jun didn’t even think before opening his mouth. He rarely did.
“You know,” he said, loud enough to carry but lazy enough to sound casual, “for a second I thought your team might actually pull it together.”
Dylan didn’t turn. Not yet. But Jun saw it—the way his shoulders stiffened, just slightly.
Jun smiled to himself and kept going.
“Guess not.”
Finally, Dylan looked over.
That glare could’ve shattered glass.
Jun met it easily, tipping his head to the side like he was amused, like this wasn’t exactly the reaction he’d been fishing for. There was something satisfying about knowing he could get under Dylan’s skin this fast. Like pressing on a bruise just to prove it was still there.
Dylan said something back, sharp, clipped—but Jun barely registered the words. What he noticed was the tension in Dylan’s hands, fingers curling and uncurling like he was holding himself back.
Jun laughed under his breath. “Relax. It’s just a game.”
It absolutely wasn’t. They both knew that.
Behind them, Nano had abandoned all pretense of caring about basketball.
He leaned closer to Pepper, eyes wide. “This feels illegal to watch.”
Pepper grinned. “This feels historic.”
Thame, lounging a row up, was watching like it was his favorite show. “One of them’s going to snap,” he said cheerfully. “The question is how.”
Po, arms crossed, unimpressed. “Jun deserves whatever’s coming.”
Jun, meanwhile, stood up, tugging his jersey straight, still riding the high of winning and Dylan’s attention. He took a step closer, invading space without asking for permission, feeding off the way Dylan’s eyes followed the movement automatically.
“You look stressed,” Jun said. “Losing does that, I guess.”
That was the moment.
Dylan moved.
Not fast, not explosive—controlled, deliberate. Close enough that Jun had to tilt his head back to keep eye contact. The noise of the gym blurred into something distant, like the world had decided to give them privacy even though it absolutely shouldn’t have.
Dylan grabbed Jun’s wrist.
Jun’s breath hitched before he could stop it.
Not from fear. From the awareness of it. From how warm Dylan’s hand was, how firm, how intentional. Jun didn’t pull away. His pulse jumped anyway.
For half a second, neither of them spoke.
Jun swallowed and smiled, softer this time, like he was letting something slip. “Careful,” he murmured. “People might think you’re obsessed with me.”
Dylan leaned in, voice low, dangerous. “Keep pushing,” he said, “and you won’t like what happens.”
Jun should’ve backed off.
Instead, he stepped closer.
“Try me.”
From the bleachers, Nano was whisper-yelling. Pepper was fully losing it. Thame looked delighted. Po looked like he was about to file a complaint with the universe.
The whistle blew shrill and abrupt—and everything snapped back into place.
Dylan let go immediately, stepping back like he hadn’t just crossed a line. Jun adjusted his sleeve, heart still racing, grin firmly in place like armor.
They stared at each other across the space between them.
The game went on.
But whatever this was?
It had already started.
They got subbed in at the same time.
Of course they did.
Jun rolled his shoulders as he stepped onto the court, bouncing lightly on his toes, adrenaline already buzzing through him. The noise hit harder down here, the crowd closer, louder, like it was breathing right against his skin. He adjusted the hem of his jersey and looked up.
Dylan was already looking at him.
Not glaring this time.
Something tighter. Focused. Like Jun was the only thing on the court that mattered.
Jun felt it settle in his chest, warm and dangerous. He smirked anyway.
The ball went up.
The game snapped into motion fast—too fast to think. Bodies collided, sneakers squealed, arms shot up, and Jun felt alive in the way only competition ever made him feel. Dylan was everywhere. Blocking his shots. Cutting him off. Matching him step for step like they were tethered together by something invisible and unforgiving.
Every time Jun drove toward the basket, Dylan was there.
Every time Dylan pivoted, Jun was already moving.
Their hands brushed once—just a graze as they both reached for the ball—but it sent a jolt straight up Jun’s arm. He sucked in a breath, fingers curling reflexively like he wanted to grab onto something and not let go.
Dylan noticed.
Jun knew because Dylan’s eyes flicked down. Just for a second. Then back up.
Spicy stares. Heated. Charged.
Like the court was too small to hold whatever this was.
By the time the whistle blew for a five-minute break, Jun’s chest was heaving and his head was buzzing not just from the game. He wiped sweat from his neck with his towel and glanced over.
Dylan had his hands on his knees, breathing hard.
Jun couldn’t stop looking.
Then the screen above the court flickered.
“KISS CAM” flashed across it in obnoxiously bright letters.
The crowd lost it.
Jun barely registered it until the camera zoomed in and landed squarely on Po and Thame sitting in the bleachers.
Oh.
The stadium exploded.
Cheers, screams, chants, people losing their minds like this was the highlight of the entire event. Thame froze for half a second, eyes wide, then laughed, covering his face. Po shook his head, smiling fondly, before leaning in and pressing a quick, easy kiss to Thame’s lips.
The place went absolutely feral.
Jun glanced over instinctively.
Dylan wasn’t watching the screen.
He was staring straight at Jun.
Like he’d forgotten where he was. Like the noise didn’t exist. Like the only thing he could hear was his own heartbeat—loud, uneven, completely betraying him.
Jun’s breath caught.
Dylan swallowed hard. Jun could see it. His throat bobbing, chest rising too fast, eyes dark and soft in a way Jun had never seen before. Not angry. Not competitive.
Just… exposed.
Jun felt something twist low in his stomach.
The kiss cam moved on. The crowd settled.
But Dylan didn’t look away.
Jun did something reckless.
He always did.
Ignoring the chaos around them, Jun slipped past a couple of players, past the edge of the court, straight toward Dylan. The space between them closed too fast, too intimate for how public this was.
Jun leaned in, close enough that Dylan could feel his breath against his ear.
His voice was low. Teasing. Dangerous.
“You wish it was us, right, Dyl?”
Dylan’s heart slammed so hard it felt like it might give him away.
He didn’t answer.
didn't need to.
Because Jun pulled back just enough to see it all written on his face..and smiled like he’d just won something far bigger than the game.
The whistle blew again.
They went back to their positions.
But Dylan’s hands were shaking now.
And Jun?
Jun had never been more focused in his life.
By the time they were subbed out again, Jun’s legs felt like jelly and his chest still hadn’t settled.
He dropped onto the bleachers with a bottle of water, head tipped back, staring at the ceiling like it might give him answers. Sweat clung to his hairline, his jersey sticking uncomfortably to his skin. The game kept going on below them shouting, whistles, points scored and lost. but it all felt… distant.
Dylan sat two seats away.
Too far. Too close.
Jun could feel him without looking. The quiet tension, the way Dylan kept shifting like he couldn’t get comfortable, like his body was still stuck in motion even though the game had forced him to stop.
Neither of them spoke.
They didn’t need to.
Jun took a sip of water, then finally glanced sideways.
Dylan was watching the court, elbows on his knees, fingers laced together so tightly his knuckles had gone pale. His jaw was clenched again, but this time it wasn’t anger. It was something messier. Something unresolved.
Jun swallowed.
The gym roared as someone scored. People jumped up, clapping, screaming names. Somewhere nearby, Nano was pacing. Pepper had his phone out, probably filming everything. Po and Thame were sitting together again, close, whispering like they knew they were about to witness history.
And then
The screen changed.
Bright. Flashy. Impossible to ignore.
KISS CAM
A ripple went through the crowd first. That anticipatory gasp, that collective ohhh before anything even happened.
Jun frowned slightly and looked up.
So did Dylan.
The camera panned lazily over the bleachers, two girls shrieking and hiding their faces, a couple who immediately leaned in to kiss as the crowd cheered, a pair of trainees who turned red and waved awkwardly.
Jun relaxed a little.
Not them.
Then the camera stopped.
Zoomed.
Locked in.
Right on Jun and Dylan.
For half a second, the gym went dead silent.
Then it exploded.
Screams. Cheers. Whistles. Someone shouting “OH MY GOD” like their life depended on it.
Jun felt his heart slam so hard it knocked the air out of his lungs.
He froze.
Beside him, Dylan went completely still.
Mars collectively lost their minds.
Nano’s mouth fell open. Pepper grabbed his arm so hard it probably hurt. Thame’s eyes went wide, hand flying to his face. Po leaned forward, disbelief written all over him.
Jun’s thoughts scattered.
This wasn’t part of the plan. There was no plan. This was a nightmare. Or a dream. Or a really cruel joke by the universe.
The screen above them was merciless.
Their faces. Huge. Unavoidable.
Jun glanced sideways slowly.
Dylan was staring straight ahead, chest rising too fast, eyes blown wide like he couldn’t quite process what was happening. His ears were red. His hands were shaking.
Jun felt something deep in his chest soften.
The crowd started chanting.
“KISS! KISS! KISS!”
Jun laughed under his breath ,not because it was funny, but because if he didn’t, he might actually combust.
He leaned closer, just enough that their shoulders brushed.
“You okay?” he murmured, so quietly no one else could hear.
Dylan turned his head.
Their eyes met.
Up close, everything else disappeared. The noise blurred. The screen didn’t matter. The questions hanging in the air didn’t matter.
Just this.
Jun’s heart was racing, but his voice came out steady, gentle in a way he didn’t usually allow himself to be. “We don’t have to,” he said.
Dylan searched his face like he was looking for permission. Or courage. Or both.
The chanting grew louder.
Mars was holding their breath.
Dylan exhaled shakily.
Then—slow, careful—he nodded.
Jun’s breath hitched.
He didn’t rush it.
He lifted his hand, fingers brushing Dylan’s knuckles, giving him one last chance to pull away. Dylan didn’t. Instead, his fingers curled back, holding on.
Jun leaned in.
But the kiss never landed on his lips
Jun leaned in to kiss Dylan's forehead
The kiss was soft. Barely there. More of a promise than anything else.
But it was real.
The stadium lost its mind.
Jun pulled back just enough to rest his forehead against Dylan’s, smiling despite the chaos, despite the questions, despite the fact that nothing would ever be the same after this.
Dylan laughed breathlessly, eyes bright, overwhelmed, alive.
Somewhere behind them, Nano screamed.
Pepper was crying. Thame was yelling “OH MY GOD.” Po just shook his head, stunned and smiling all at once.
The stadium lost its mind.
It wasn’t just cheering anymore, it was screaming, chanting, stomping feet so hard the bleachers shook beneath them. Dylan barely registered it. All he could feel was the ghost of warmth on his forehead, like Jun’s lips had left something behind that refused to fade.
His breath caught.
Hard.
Like his lungs had forgotten how to work.
Jun pulled back, smiling faintly, forehead still almost touching Dylan’s for half a second longer than necessary, long enough to ruin him completely. Dylan stared at the floor because if he looked up, he knew he’d break.
His hands were sweating.
Actually sweating.
He wiped them on his shorts without thinking, heart pounding so loudly it felt like it might spill out of his chest and hit the court. The noise around him kept climbing, people yelling their names, Mars losing their collective sanity, phones out everywhere but inside Dylan’s head, everything was worse.
Too loud.
Too fast.
Too much.
He stood up abruptly.
Someone called his name, maybe Nano, maybe the coach, maybe Jun but Dylan didn’t stop. Didn’t look back. His body moved on instinct alone, feet carrying him away from the bleachers, away from the court, away from the screen that still felt like it was burning his face into it.
He ran.
Past staff. Past doors. Down the hallway that smelled like disinfectant and rubber mats and familiar comfort. His chest hurt now, breaths shallow and uneven, vision blurring at the edges like he was underwater.
The MARS changing room door slammed shut behind him.
Silence.
Well—relative silence. The muffled roar of the stadium still leaked through the walls, but it was distant now, manageable. Dylan braced his hands on the bench, head dropping forward as he tried to breathe properly.
In.
Out.
Again.
His forehead still felt warm.
He groaned softly, dragging a hand through his hair, pacing the length of the room like a trapped animal. His thoughts were a mess Jun’s smile, Jun’s voice, Jun leaning in like that kiss meant something. Like it wasn’t a joke. Like it wasn’t for the crowd.
Like it was just for him.
“What am I doing,” Dylan whispered, more to himself than anything.
His phone buzzed in his pocket.
Once.
Twice.
Again.
He didn’t check it.
Instead, he sank down onto the bench, elbows on his knees, burying his face in his hands. His heart was still racing, palms slick, throat tight like he was on the edge of something big and terrifying and inevitable.
He wasn’t ready.
He didn’t know how to be.
Out there, the game went on without him. Points were scored. Whistles blew. Life continued like nothing monumental had just happened.
But for Dylan?
Everything had shifted.
And the worst part?
Even as he sat there, trying to calm down, trying to make sense of it all.
All he could think was Jun.
Jun realised Dylan was gone because the space beside him felt wrong.
Too empty. Too quiet.
At first, he thought Dylan had just gone to get water or talk to a coach or something normal, something explainable. Jun kept his eyes on the court, forced his breathing steady, told himself not to spiral like an idiot.
But then a minute passed.
Then another.
The game kept moving. The crowd kept roaring. Someone bumped Jun’s knee as they ran past the bench and apologised without really looking at him.
Dylan didn’t come back.
Jun’s smile faded slowly, like it was melting off his face without his permission. He scanned the bleachers again, heart starting to beat a little faster now.
No Dylan.
Jun swallowed.
He stood up.
“Hey,” Pepper said immediately, grabbing his wrist. “Where are you going?”
Jun barely looked at him. “Bathroom.”
Pepper squinted. “That was a forehead kiss, not a murder. Relax.”
Jun didn’t laugh.
That’s when Pepper let go.
Jun slipped past the bench, moving faster now, eyes darting around the sidelines, half-expecting to spot Dylan hiding somewhere obvious, hunched over his phone or pacing.
Nothing.
The unease in Jun’s chest turned sharp.
He cut through the corridor that led backstage, ignoring a staff member calling after him. The noise of the stadium faded with every step, replaced by the echo of his own sneakers against the floor.
“Dylan?” he called quietly.
No answer.
Jun broke into a jog.
His thoughts were a mess now
I pushed too far, I shouldn’t have done that, what if he hates me for it, what if I embarrassed him, what if—
He stopped short in front of the MARS changing room.
The door was shut.
Jun hesitated.
For the first time all day, he felt something dangerously close to fear.
He knocked.
“Dyl?” His voice came out softer than he meant it to. “It’s me.”
Silence.
Jun’s chest tightened. He knocked again, this time pressing his forehead briefly against the door like that might somehow reach Dylan through it.
“I didn’t mean to freak you out,” Jun said quickly, words tumbling over each other. “I swear. If you want me to disappear, I will. I just please say something.”
A pause.
Then movement.
Jun straightened instantly.
The door creaked open just a little.
Dylan was there, eyes red, hair a mess, breathing still uneven like he’d been fighting himself in here for a while.
Jun’s heart broke a little.
“Oh,” Jun breathed. “There you are.”
Relief flooded him so fast his knees almost went weak.
He didn’t step in. Didn’t touch. Just stayed right where he was, hands shoved into his pockets like he was afraid they might do something stupid again.
“I panicked,” Jun admitted quietly, eyes flicking over Dylan’s face, checking for signs he’d crossed a line he couldn’t cross. “You ran off and I thought… I don’t know what I thought.”
He laughed softly, shaky. “I’m really bad at reading the room when it matters.”
He looked at Dylan then, really looked.
“I’m sorry,” Jun said. “For the cam. For the kiss. For making it public when it should’ve been… yours.”
His voice dropped.
“You don’t owe me anything.”
The hallway was quiet.
All Jun could do now was wait.
They didn’t go back out.
Jun didn’t even suggest it.
The door closed quietly behind them, the lock clicking into place like the world outside had been put on mute. The roar of the stadium still leaked through the walls, muffled and distant, like thunder heard from underwater.
For a while, they just stood there.
Too close to ignore each other. Too scared to move.
Dylan slid down first, back against the lockers, knees pulled up, head tipped back like he was trying not to drown in his own thoughts. Jun followed slowly, sitting beside him, close enough that their shoulders brushed when Dylan shifted.
Neither of them pulled away.
The silence stretched. Not awkward. Just heavy.
Jun picked at the tape on his fingers, eyes fixed on the floor. “They’re probably losing their minds out there,” he said quietly, trying to sound normal.
Dylan let out a weak huff of a laugh. “Let them.”
Jun glanced at him then.
Dylan wasn’t shaking anymore. His breathing had slowed. But his eyes …god, his eyes were still full. Overwhelmed. Honest in a way Jun wasn’t used to seeing.
“I ran because I was scared,” Dylan said suddenly.
Jun stilled.
“Not of the crowd,” Dylan continued. “Not of the kiss cam. I’ve been on stages my whole life. I know how to deal with noise.”
He swallowed. Hard.
“I was scared because it was you.”
Jun’s chest tightened.
Dylan turned to face him fully now, knees brushing Jun’s thigh. His hands were trembling again, but he didn’t hide them this time.
“I don’t know when it happened,” Dylan said. “Somewhere between fighting with you and wanting you to look at me the way you do when you’re winning. Somewhere between hating how close you get and missing you when you don’t.”
Jun felt tears prick behind his eyes.
“I thought I was imagining it,” Dylan whispered. “So I kept pushing it down. Pretending it was nothing. Pretending it didn’t matter.”
He laughed softly, broken. “But then you kissed my forehead like it meant something. Like you weren’t laughing at me.”
Jun shook his head, voice barely there. “I would never.”
Dylan’s eyes softened completely.
“I know,” he said. “That’s why I’m here.”
Before Jun could think before he could panic or joke or deflect …Dylan leaned in.
The kiss was hesitant. CarefulLike he was asking permission with every millimeter he closed. When their lips finally met, it wasn’t rushed or hungry. It was warm. Real. Anchoring.
Jun froze.
Then he broke.
A soft, quiet sound left his throat as tears spilled over, all the fear and wanting and what if I lose this crashing into him at once. Dylan pulled back instantly, panicked.
“Hey…Jun, I—did I—”
Jun shook his head violently and grabbed Dylan’s jersey, pressing his forehead into Dylan’s shoulder like it was the only safe place left in the world.
“No,” Jun whispered, voice cracking. “Don’t stop. Please don’t stop.”
Dylan wrapped his arms around him without hesitation.
Jun cried then. Fully. Ugly and honest and relieved. His shoulders shook as everything he’d been holding back finally let go—the years of pretending this was just teasing, just rivalry, just noise.
Dylan held him like it was instinct. Like this was where Jun had always belonged.
“I love you,” Dylan said quietly, into Jun’s hair. No big speech. No drama. Just the truth.
Jun pulled back just enough to look at him, eyes red, lashes wet, smiling through tears like an idiot.
“You’re so unfair,” Jun said softly.
Dylan smiled back, just as wrecked. “I know.”
Jun learned this time.
He kissed Dylan like he was answering something that had been asked a long time ago. Like he was saying yes, finally, I’m here. Dylan kissed him back, hands warm and steady, grounding him.
Outside, the final whistle blew.
The game ended.
They didn’t hear it.
They stayed there, hidden away from the noise, holding each other like they’d found something fragile and precious—and like neither of them was ever letting go again.
