Work Text:
All it was was a sleepover. It was no big deal, they had just became friends that year. Sophomore year of highschool and it had only taken them five months to become close. They were so comfortable with each other that neither of the best friends commented on the physical affection that was constantly played. They played with each other’s hair, laid in each other’s laps, and even sometimes cuddled (but that was more rare; usually it was just an arm around the other, they were never actually tangled up). It wasn’t odd for them at all.
Until Karl had felt this odd rise in his chest when they touched. When they bumped knees, when their fingers brushed unintentionally, when he could feel Sapnap’s fingers run along his scalp. Well, he had always felt it, but when he was describing the feeling to Quackity, a new thought was dug up.
“Not to be, like, weird, but I don’t usually feel like that when that happens,” Quackity had said honestly. He didn’t always joke when it was just the two of them. He had a softer, kind side to the personality he played around big groups of people. He genuinely was a caring guy and a great friend behind the scenes.
“Wait, really?” The thought had never occurred to Karl.
“Yeah. I mean, I’m happy when my friends hug me and stuff, but what you’re describing sounds like something… I don’t know how to put this… bigger?”
…
Karl had thought about it all afternoon, a different sort of feeling settling itself into his stomach. It was a small little pile of something, but he just couldn’t figure it out, and it was making him feel sick in a different way. He’d never experienced this before.
He sort of knew he was gay. He wasn’t completely “out” yet though, since his parents were not supportive. He didn’t even think to risk it with Sapnap or Quackity, or even say it out loud anywhere. He couldn’t risk it. He just simply couldn’t risk it.
They were terrible parents, to say the least. They were so bad to the point where he didn’t like his name as much anymore. The way they used it when they yelled at him made him want to puke. It was no surprise that he had asked his close friends to use it less and less because of this fact. For some reason, hearing it made his hands shake, as if he was about to get yelled at the same way his parents had done. This happened even when the person’s tone of voice was nice. It was weird in his mind, to say the least.
His mind was still running wild about Sapnap. It didn’t really make sense to him. Sure, in the back of his mind, just a little tiny voice, he knew what it was. But he couldn’t admit it to himself, wouldn’t admit it to himself. He wants things the way they are. He felt safe and secure with the present.
But it was so hard to ignore the butterflies dancing in his stomach when he opened the door to let Sapnap in for a sleepover.
Of course it was just his luck that he had invited Sapnap over yesterday, prior to his semi-crisis. He wouldn’t have given the offer if it meant that he could stay awake the whole night and battle his demons by himself. That was the way he usually handled his problems. Stay awake all night and think about it until the thought dissolved into a state of nonexistence, where he drifted to sleep against his will. This happened more than he’d like to admit.
Yet he couldn’t, not with Sapnap here. To be honest, he’d never let anyone, not even Sapnap, see that side of him. It’s how he handled things- privately- and he’d like to keep it that way.
“Come on in,” Karl says, a small shake in his voice.
“Hey, what’s up?” Sapnap greets, tracking some dirt into the house. Karl doesn’t say anything, and barely even cares. He’d just clean it up later.
“Nothing much, to be honest.” Except his mind has been racing for the last few hours.
“Are your parents home?” Sapnap asks, a soft undertone in his voice.
“No, we’re home alone right now. My dad might be home a little later, but my mom will probably be home after we’re asleep, if I’m being honest.”
Sapnap nods in understanding.
“Hey, take your shoes off and then we can hang out in my room? Or whatever you want’s fine with me?”
“Yeah that sounds good. Can we play Val?” Sapnap asks as he slips off his shoes, paying attention to Karl. Some dirt falls off the bottom as they slide off his feet.
“Sap you know I’m terrible at Val.” Sapnap begins to say something but Karl cuts him off, “Of course we can play, nimrod.”
Sapnap retracts whatever he was going to say and smiles, readjusting his backpack. For the first time since he’s walked in the door, Karl observes him. He’s got a small-ish, fuzzy blanket draped over his arm, where he’s holding a long pillow, almost like a body pillow. Usually he brings a normal size one, or none at all, knowing Karl would provide him with absolutely anything that he needed, even if he had to go to the store to get it for him.
“New pillow?” Karl asks.
Without direction, they both start up the stairs to Karl’s room. Sometimes they sleep in the basement, but lately they’ve migrated to his room. Very gradually they worked up the courage to sleep in the same bed, after one night Sapnap had a terrible day and all he could do was sniffle. Karl just let him lay his head on his chest, saying nothing, and they fell asleep like that. Karl was in pajamas when he arrived at his door unexpectedly, sniffling on the doorstep, but Sapnap still had his normal clothes on. He was so exhausted that he just fell asleep in Karl’s hold.
“Yeah, I sleep better with it. I don’t know why.”
“An upgrade, I see,” Karl mindlessly comments, gently opening the squeaky door and letting Sapnap in. Sapnap shuffles in and drops his bag, pillow, and extra blanket on the floor in one place.
“Val?” Karl asks, already moving to start up the computer. Sapnap nods with excitement and goes and grabs the fold-out chair from his closet. How they play usually is they switch turns every game, one sitting at the keyboard and one sitting on the side. But today, with this weight on his chest and the butterflies in his stomach, he just wants to sit on the sidelines.
When he goes to sit in it, Karl speaks up. “Hey, do you wanna play today? I kind of just want to watch, I’m not very good at it anyways.”
“Oh! Yeah, sure, I mean, that’s cool. You can play if you want though,” Sapnap reassures, switching his seat and booting up the game already. His hands move quickly on the keyboard from years prior to being on one all the time. Almost everytime Karl calls him, he’s on the computer or playing a game of some sort. He has the best hand-eye coordination Karl’s ever seen, and it makes his heart skip to think about his hands, the way they almost glide over the keys, how they bend and reach with ea-
“Hey, do you want me to switch to my account?” Sapnap asks over his shoulder. Karl realizes he’s been frozen in place, letting his thoughts consume him. It takes him a second to even process what Sapnap spoke.
“Oh. Um, no that’s fine, unless you want to.” He surveys the room for a blanket, as it was always chilly in his room. It hits him that he has no throw blankets, and the optimal option would be Sapnaps.
Karl hears the faint sound of keyboard keys clicking. “Yeah, it seems like a tedious process. I’m just gonna leave it, I think.”
“Okay. Hey, can I borrow your blanket? I’m, um, I’m cold.” Normally, it wouldn’t matter. If it was any other day, he’d probably just take it without saying anything. He knows Sapnap would let him anyway.
“Yeah, of course, duh? You know you don’t have to ask,” Sapnap says, like it’s obvious. And it is, Karl knows this. But it’s just simple words of affirmation, yet it makes Karl’s heart soar. What was happening to him?
He bends down to grab the fuzzy blanket from the pile of Sapnap’s junk. He hears the game playing from behind him, and Sapnap’s voice hitches just barely. Karl thinks that if he were anyone else, he wouldn’t have heard it. He turns around and takes his seat in the surprisingly-comfortable plastic chair. He sits for a minute, then moves the chair closer to Sapnap’s. Before he can think about it for too long, leans over so his hair is just ghosting Sapnap’s shirt. Less than a centimeter and he would be laying on him. And it was driving him crazy-- god, he was pathetic.
In a hushed, reluctant voice, Sapnap says, “You can lay, um, there, if you want.” He makes a noise that almost sounds like he choked on his own spit. “I don’t mind.” The words come out even quieter.
Karl doesn’t trust himself to open his mouth with the way his heart is beating right now, so with gentle movements, he lays his head down on Sapnap’s bicep. Neither of them say anything, but Karl can feel his muscles slightly flex everytime he shoots a gun, every time he makes movements with his wrists-- basically everything Sapnap does. But Karl doesn’t mind, and he doesn’t comment on it.
Watching Sapnap play was strangely exactly what Karl needed tonight. He was watching less of the game and more of the actual human, but he would never admit it out loud. Why in the honk was watching Sapnap play a video game attractive? He’s watched him a million times before, why was it different this time?
Everytime Sapnap would swear a little under his breath getting killed, everytime he praised himself when he got a kill, and even when he raged so hard that it startled Karl, and then he would turn to his side and throw an apologetic look at him. It was all so stupidly endearing.
He felt overwhelmed in his own mind. Like there was so much knocking on the walls of his skull at once, and it was a lot at once. The feeling was indescribable. It genuinely confused him.
The feeling swarmed in his lungs and his stomach. He could breathe, but it felt weighted. His entire body felt cloudy. He pulled the blanket up closer to his nose, covering the bottom half of his face with the blanket.
It smelled just like Sapnap.
Karl’s heart fluttered with the realization, and kept the bit close to his nose while Sapnap dominated in his current game of Valorant. It only took him a little longer to win the entire game, celebrating in a subtle way in order to not shake Karl.
Instead of queuing for another lobby, Sapnap pauses the game and leans back in his chair, seemingly thinking about something.
“Hey, Karl?” Sapnap eventually whispers, his voice slightly cracking at the silence of his words.
His name made his heart involuntarily skip a beat. Usually he asked people to avoid saying his name, and he’s told Sapnap this, but he can’t seem to make himself correct him. Only Sapnap saying his voice made him feel good. At this point, Sapnap was the only one who made him like his name. It sounded more like his when he said it, and not just some kid that his parents yelled at. It was weird, and it was, to say the least, different. He ignored the feeling that was building up in his stomach, and tried (and failed) to keep his eyes off of Sapnap’s.Turning his head to peek up at Sapnap, “Yeah?” he whispered back at a similar volume.
“I’m, uh, I’m actually kind of tired. Do you want to like, lay down or- or watch a-”
Karl cuts him off, stopping him before he says anything stupid. “Yeah, I’m sleepy, too,” is what he hears fall out of his mouth.
“So…” Sapnap starts with uncertainty.
“Yeah, come on,” Karl says, a sleepy layer settling itself in his throat. He raises himself from Sapnap’s arm and gets off the chair, shuffling to go plop himself on his bed. He doesn’t pay attention to where he ends up, he just lets himself fall on the mattress.
He hears the light click of the computer turning off, then the creak of the gaming chair, and then socks on his carpet. As his face is plunged into his sheets, he can’t see what’s going on, but he notices the mattress crease under the weight of Sapnap climbing onto it, and he feels him climb over Karl to lay next to him on the other side.
“Give me some blanket,” Sapnap grumbles, slightly tugging at the fabric on Karl’s back.
Karl can’t refuse. He repositions himself to lay flat next to Sapnap, turning his head to look at him sideways. Sapnap’s already facing him when he turns around about 3 feet away from him.
It’s before Karl can overthink about it when he spreads his arm up and invites Sapnap under the blanket, closer. His heart is exploding with butterflies and his mind is racing, but he can’t seem to mind. His entire being still feels foggy in a way, and he can’t seem to shake it. He releases a silent breath of relief he didn’t even realize he was holding when Sapnap scoots himself closer to Karl. He gently lowered his arm over Sapnap, flicking the blanket over his shoulder. He doesn’t dare let his arm linger over his torso, so he retracts it and places it back by his side, underneath the covers. Sapnap shifts onto his back, and Karl repeats the action.
After a small, comfortable silence, Sapnap speaks.
“I just realized I said your name earlier,” he whispers. “Sorry about that.”
Karl shrugs against the sheets and softly says, “You know, I don’t mind it when you say it.”
“You don’t?” He sounds surprised.
“No, I don’t. I don’t think I could explain why, either.”
“But you flinch everytime someone says your name,” Sapnap points out gently. Karl’s heart drops slightly as he realizes how right Sapnap is.
“It’s so difficult to even wrap my head around,” Karl admits in a breath.
“That sounds more like a general statement.” They’re still whispering. “What do you mean?”
In a quick, uneasy decision, he decides to lay his heart on the line.
“Like, all night, I’ve had this, I don’t know. Foggy feeling? Like, my head feels… cloudy, and I don’t know what it is.” He takes a breath before continuing, “Like you say my name and I don’t hate it. I don’t hate it at all, actually, it actually sounded… kind of nice?”
“Elaborate?” his tone is gentle, leaving room for Karl to back out.
But he doesn’t. “My name… I mean, you know this. It’s always been kind of, like, sensitive for me, but when you say it… I don’t know how to describe it. It sounds more… it sounds more like my name, almost. I-I know that makes like, zero sense but--”
“No, I think I get it.”
Karl lets himself smile and take a deep breath, ready to go all-in. “Like you make my name sound better. It feels more like mine when you say it. Like, the reason I hate people saying my name in the first place is because they use it aggressively, and you know how sensitive I am, how much that hurts me, but when you say it it sounds… god, I don’t know how to describe it.”
Sapnap waits patiently, letting Karl figure it out. He’s sure Sapnap can see the gears turning in his head, trying to find the right word.
“Gentle,” is what he says first, then: “softer.”
Sapnap turns his face to look at Karl and nods. His eyes are tuned in, and Karl can tell he has Sapnap’s undivided attention.
“So why’s your head cloudy?”
“Why do you feel more like home than my biological parents?”
The words slip off his tongue. He didn’t mean to admit it, but all the wires connected in his head and it just fell out. But his chest feels lighter. Sapnap’s speechless, and Karl almost is, too. He doesn’t know what to say next, to clear the air of tension that’s spreading over them. And apparently, it’s weighing the blanket down, too, because he can’t seem to get himself to move.
As if on cue, it starts raining, pattering on the window and making beautiful noises on the roof. Karl loves the rain, and he will admit that having it rain right now might be the most perfect thing that’s ever happened to him.
Pathetically, he ends up mumbling, “My head’s less cloudy now.” He finally turns to meet Sapnap’s gaze, and he expects the worst, but Sapnap’s looking at him with this face that Karl’s never seen before, not on him. His gaze is polite and his expression almost looks lovestruck in a way, and it leaves Karl breathless. His lips are slightly parted and Karl can’t stop his mind from-- how did he never realize Sapnap’s beauty until now? When did his face become so…
...kissable?
Every reasonable thought he’s ever had falls out of his mind and is replaced with a voice that speaks for him, saying, “It wouldn’t… um… be weird if, like, I don’t know… um….” He gathers his breath and forces it out of him. “Can I kiss you?” He cringes at himself as Sapnap’s eyes widen a bit. “I-I mean, of course if you--”
But Sapnap’s already on his elbows, leaning over with Karl’s face in his hands, and Karl goes speechless. At least he doesn’t have to worry about anything stupid falling out of his mouth, because a beat later Sapnap kisses his stupidity out of him.
It’s everything Karl’s ever dreamed of. It’s stupid, that he hadn’t had made this realization before. It all made sense now, though. How his gaze made Karl shut up, how his movements made Karl’s heart skip a beat… it was so familiar, yet he was so far away from the simple truth until now.
Sapnap’s lips were so soft, Karl almost would have never imagined. As seconds pass by, he can feel small cuts on the insides of them, tasting the flavor of Sapnap’s mouth. And it’s all so perfect that Karl couldn’t put it into words.
His body felt so clear, everything finally felt right. With Sapnap’s hair beneath his grasp, with Sapnap’s lips on his, everything was so perfect. Karl finally felt the clarity that he had been longing for the whole night. Why did it take him so long to admit he was in love with his best friend?
He was in love with his best friend.
The thought had been in the back of his head for ages, but he chose to ignore it. But now that he’s thought it out loud, with clarity, to himself, everything felt different. He was in love with Sapnap. It made him freeze, and Sapnap noticed it.
He pulled back less than an inch and asked, “Karl?” so lightly, as if he was treading water. His heart soared with a newfound confidence.
“I think I love you.”
For some reason, he didn’t feel the same adrenaline as he did when he had confessed. This was more of a statement, something he could never come back from. Which actually didn’t bother him, because he knew that Sapnap--
“I… I love you, too, you idiot,” Sapnap said, his voice raspy and perfect.
Karl smiled into the inevitable kiss that followed. He was definitely at home.
