Work Text:
“Dude, we need to have a serious talk.”
Sapnap’s head snaps up from his phone where it sits on his desk at the intrusion, huffing out a laugh as his best friend’s dramatic statement is punctuated with the slam of a door.
“Dude, I regret giving you my spare key,” Sapnap retorts, having to hold back more laughter when Dream rolls his eyes but maintains a stern expression, frustration contorting his features amusingly and being difficult to take seriously after over a decade of friendship. Sapnap knows if this were actually a serious problem Dream would be much less cartoonishly animated about it.
“You,” Dream throws his backpack down onto Sapnap’s bed with much more force than is necessary, “you need an intervention.”
Shaking his head at the melodrama before him, Sapnap decided to indulge this, “Why do I need an intervention, Dream?”
Dream, who by all means treats Sapnap’s dorm like it’s his own, kicks off his shoes by the door, ignorant of whether or not they land on the mat. He then whirls around to face Sapnap’s desk in the corner where the younger boy is slouched back in his chair, phone flat on top of his notebook making it apparent just how well his “studying” was going even before being interrupted.
“We need to discuss the fact that the gas station cashier just asked me if I was hanging out with Karl. Because I was buying white Monster.” Dream’s voice rises and falls dramatically as he flops down onto Sapnap’s bed with much grandeur, “and when I said ‘wow, Karl must come here often’ she said, and I quote, ‘his roommate actually buys this for him all the time, it’s sweet’”.
To his own horror, Sapnap feels his cheeks redden before he can even attempt a snarky response, which he knew wouldn’t go unnoticed by his horrendously observant best friend.
“Okay, and? I’m a good roommate?” He managed to defend himself, but Dream’s theatrical anger had been toned down to a more honest knowing smile as he sits up and watches Sapnap’s reaction almost inquisitively. Sapnap already dreaded the older boy’s response, mentally preparing for the accusation on his tongue before the words had a chance to form.
“Why the fuck have you talked to the cashier about Karl so much that she knows him by name and that he’s who you’re buying white Monster for, dude, do you even know her?”
And Sapnap wants to shrug off Dream’s supposed intervention carelessly and insist he’s overthinking this, but the humiliation clawing its way up his throat and preventing him from being able to force an easygoing laugh is already proving the point Dream hasn’t even directly made yet.
“I don’t really know her, she just always happens to be working when I go, so she must remember me”, is all he can manage to say.
Dream heaves out a lengthy sigh, however this time it feels less dramatic and much more sincere, his frustration leaning more sympathetic now, which was somehow more difficult to stomach.
“Sapnap, how often do you find yourself talking to strangers about Karl?” Dream finally asks, blunt and lacking all of his earlier bravado.
“Who cares if I talk about Karl a lot?” he defensively rushes out, attempting to sound unbothered but realizing Dream has known him far too long not to see through his act, “we’re roommates, we spend like, all our free time together, obviously he’s in a lot of my stories. I can’t help it”, he adds when he can see from his best friend’s exasperated tight-lipped grimace that he’s been unsuccessful in justifying his actions.
“I know lots of people with roommates, Sap, I can’t say any of them are quite as obviously infatuated as you are.”
Dream’s tone remains far too lighthearted given the implications of what he’s stating as if it’s an unquestionable fact, and Sapnap feels his longest friend’s eyes follow him as he glances down at his locked phone, no longer able to meet the older boy’s gaze.
“I’m not infatuated, where the fuck did you get that from?”
“Sapnap.”
Sapnap wishes with the burning passion of a thousand suns that his best friend was anyone other than Dream, or that he’d never grown so close to Dream that he could be seen through so effortlessly. He knows, immediately, that there’s nothing he can say. Even if Dream is ultimately wrong in his assumptions, because Sapnap’s feelings for Karl are nothing but platonic, he knows there’s at least some truth to the accusation that he talks about Karl far more often than he reasonably should, without ever needing to be prompted. All Dream said was his name, but Sapnap knows from the sickeningly understanding softness behind his eyes that he’s being read like a book, that Dream already sees all of his conflicting guilt and shame and admission of defeat all at once.
“I’m not saying any of this to make you feel bad,” Dream tries again, “it isn’t a bad thing! You used to be such an introvert, the fact that you talk this much to strangers shows how much you’ve grown up, first of all!” and Sapnap can’t help but laugh along with his best friend without needing to be forced this time. “And second of all, I’m glad you have a friend like Karl. I know how much he means to you, and I know you’re happy with things as they are. I just wanted to give you something to think about, since you seem to be somewhat… in denial.”
Sapnap scoffs at this, pushing aside the inexplicable feeling that he’s been caught red-handed that persists even though Dream is wrong, “I have nothing to be in denial of.”
Dream shrugs, and there’s an almost sad glint in his green eyes that makes Sapnap’s heart hurt. In all their years of friendship, spending the better part of their entire lives together, the older boy has always worn his heart on his sleeve and been incapable of hiding his emotions. Even though his concern is misplaced, Sapnap nonetheless feels an ache in his chest knowing his friend is worried about him, beyond any jokes they may make at one another’s expense.
“Whatever you say, man”, Dream adds with an air of finality to break up the lingering silence.
Silence is not inherently discomforting to the two of them. The effortless friendship they have now was built on a foundation of entire days spent on discord calls, not even necessarily talking just content existing in the same space as one another and feeling as if the miles of distance between them were obsolete. Right now, though, the tension between them felt charged with something Sapnap couldn’t put a name to, and wasn’t sure what he could say that would defuse it.
Sapnap turned back to his desk as Dream reached over to his backpack and pulled out his laptop, the two both unsure how to change the subject without it being obvious that this unspoken discomfort was present in the first place. Deciding it was easier to try and return back to his attempted note-taking for an exam he was woefully unprepared for, he attempted to process the words on the page before him.
As if on cue, the door to the small dorm room swung open a second time, with much less force this time. Sapnap had known it was Karl before he’d even turned around in his chair, but was nonetheless relieved to see his roommate.
Karl’s hair was slightly disheveled from walking across campus, his phonology course being in the furthest possible building and the winds being stronger than was typical for this time of year. He was wearing a jacket overtop of his black turtleneck, his textbook in hand because he insisted on only bringing his laptop bag with him to class and claiming that bringing an entire knapsack was ‘unnecessary’.
Sapnap watched Karl’s eyes widen slightly as he noticed Dream sitting up against the headboard on Sapnap’s bed, laptop beside him abandoned in favour of scrolling aimlessly on his phone.
“Oh hey Dream, I didn’t realize you were coming over”, Karl waves with a small smile, clearly undisturbed by his presence since Dream honestly spent the same amount of time at their dorm as he did in his own apartment.
“Hey Karl!” Dream smiled back, clearly relieved by the interruption from the previously unbearable silence. “There’s a couple Monsters in the fridge by the way, as an apology for drinking one the other day.”
Karl shook his head with an airy laugh, crossing the room to drop all of his things unceremoniously onto his bed and then pulling his laptop out of its case, moving to plug it in at his desk in the corner parallel to Sapnap’s.
“You don’t have to replace it, dummy, I didn’t even notice it was missing,” he responded to Dream as he sat up to turn his laptop on and glanced over to finally meet Sapnap’s gaze, “and hello to you too, my dearest roommate and friend who has still not taken his fucking turn in 8 Ball.”
“I was busy!” Sapnap protested, his chest already feeling lighter with the familiar presence of his roommate and the easy banter he brought with him.
“Busy with what? You look like you’ve written two sentences at most.” Karl giggled, standing back up and walking over to Sapnap to analyze the abysmally blank notebook page before him.
“Dream was distracting me,” Sapnap whined, raising his chin to glance up at his roommate and suddenly feeling very small under his sarcastically-judgemental gaze, as the taller boy’s eyes flicked up from the notebook to meet Sapnap’s.
Karl’s eyes softened, suddenly, before he added in a put-on polite voice he typically reserved for addressing customers at his retail job, “well, can you be distracted by taking your turn in 8 Ball?”
Sapnap snorted, rolling his eyes before picking his phone up and very dramatically overexaggerating the movements of opening their conversation and clicking to play his turn, before turning away from Karl in his chair to hide his phone from view while making his move.
“No spoilers”, he mumbled as he focused intently on lining up his shot.
After finishing his turn (successfully sinking two of his four remaining balls) he turned back around to see Karl was now sitting on his own bed in a position similar to Dream’s, focusing on his own phone as he seemingly waited for Sapnap so he could take his own turn.
Sapnap couldn’t help but find it endearing when Karl shut one eye and used his finger as a guideline as he attempted to line up the perfect shot, and giggled at the older boy’s pleased expression when it seemingly landed.
“Hey! No spoilers, you cheater!” Karl exclaimed when he apparently felt Sapnap’s eyes on him.
“How is watching you take your turn, when I can’t even see your screen let alone have any impact on what you do, cheating?” the younger protested.
Karl pouted at him and whined completely earnestly, “You’re going to make me nervous.”
Dream, who Sapnap had honestly been blissfully ignoring the presence of ever since Karl got home in an attempt at putting the entire ‘intervention’ out of his mind, shot a horrifically knowing look Sapnap’s way while Karl was still focused solely on his phone.
Their extremely longstanding friendship was most evident in their ability to communicate through expressions alone, not needing words to get a point across. Sapnap was grateful for this at the moment, being able to convey I don’t know what you’re talking about effortlessly by narrowing his eyes and shaking his head, and knowing from Dream’s responding amused eye roll that he’d gotten the message.
“Stop reading each other’s minds, I’m right here”, Karl moped as Sapnap’s phone vibrated in his hand, indicating it was his turn again, at long last.
“Compensation for how often I’m the one third wheeli-” Dream attempted to mutter but was cut off, thankfully, by Sapnap yelling over him.
“You won already?” He laughed incredulously. “How is that even possible? I was so ahead!”
“I’m sorry for being incredible at video games?” Karl responded, completely deadpan and without missing a beat, “Maybe try not being terrible next time?”
Sapnap groaned and very dramatically dropped his phone back onto his desk, while also shutting his notebook and giving up on any attempt at studying.
“Speaking of iMessage games…” Dream began, and Sapnap and Karl’s protests came immediately.
“No chance. Just don’t even ask”, Karl complained dramatically, as Sapnap similarly whined,
“No one wants to play Word Hunt against you, Dream, it’s like actually not even fun.”
Karl’s presence had completely eviscerated any of the lingering tension, and if the oldest of the three had even noticed it to begin with he gave no indication that were the case. He was grateful, as always, for having a roommate who not only became one of his closest friends immediately, but also had an innate ability to sense exactly what Sapnap needed most and provide it without being asked. In this case, somehow alleviating an awkward silence he wasn’t even privy to and effortlessly making Sapnap feel silly for ever questioning their dynamic at all. He was happy, extremely happy, with things exactly as they are.
-
The second time Sapnap is made aware of his own pattern of behaviour, thankfully Dream isn’t around for an ‘I-told-you-so’ moment.
Their dorm advisor had knocked on the door without warning while Sapnap had been mindlessly playing some games with friends and Karl was out cold in his bed, catching up on the sleep he’d been missing out on all week.
Terrified of waking his roommate who desperately needed the rest, and annoyed with the advisor for knocking so unnecessarily loudly in the first place, Sapnap quickly typed a message in chat letting his friends know he’d be right back before tiptoeing across the room and slipping through the door, shutting it gently behind him.
“Karl’s asleep, sorry, didn’t want to wake him,” he quickly explained in a soft voice to the confused-looking dorm advisor.
“Oh, I apologize,” the bored-looking upperclassman muttered without looking apologetic at all, “I didn’t think anyone would be asleep at… 4 in the afternoon?”
“He’s been really busy this week,” Sapnap began, defensively, “it’s not his fault all of his professors somehow choose the same due dates, and even when he’s caught up he already has a hard time sleeping to begin with, it’s not like it’s something he can control.”
The dorm advisor, who Sapnap already had no fond feelings for, moves as if he’s going to reach for the door handle despite having just been explained what Sapnap thought was extremely clear, so he takes a step back to directly block the handle protectively.
“Did you even listen to what I just said? I don’t care if we’re due for a dumb room inspection today, you can come back later, he’s asleep, he doesn’t deserve to be woken up for a stupid formality that doesn’t need to happen this instant anyways.”
Sapnap wouldn’t have been shocked if there was smoke coming out of his own ears, wanting to continue tearing into the pathetically lazy dorm advisor who only cared this much about performing an unplanned room inspection because it created the illusion of him actually taking initiative and being good at his job, but choosing to stop before he wound up raising his voice.
“Okay,” the dorm advisor sighed apathetically, “I’ll come by tomorrow, whatever.”
Feeling the need to provide further explanation, Sapnap hadn’t been able to stop himself from adding onto his justifications.
“I’m sorry if I was rude. It’s just that Karl hasn’t been feeling well these last couple weeks, and he has the worst sleep schedule of all time to begin with. Like, he’s genuinely nocturnal on a good day, if he even tries to go to bed at a normal time he wakes up at like 3am and then can’t fall back asleep to save his life,” realizing he was rambling and that he’d already gotten what he wanted so there was no need to still be making a case, he forced himself back on track. “So forgive me for wanting to make sure he gets the rest he needs while he’s actually able to fall asleep.”
The dorm advisor only shrugged, clearly bored of this conversation and annoyed enough with not being able to complete his job as quickly as possible, “Like I said, it’s fine. See you tomorrow, at the same time. So you can make sure he’s awake, if it’s such a big deal.”
If the upperclassman hadn’t turned around and walked off immediately after finishing his sentence, Sapnap wasn’t sure he would’ve been able to resist bringing his fist to the smaller man’s jaw.
Resigning himself to accepting the win that was at least delaying the inspection for now, he quietly retreated back into his room and tiptoed back over to his desk without disturbing his roommate who was still buried beneath the covers.
Just as he was about to slide his headphones back over his ears and return to the game he realized he surely must’ve been AFK-kicked from, he was caught off guard by a quiet voice muffled by the fluffy comforter burying the voice’s owner.
“I heard all of that. Thanks dude.”
Sapnap startled, realizing his roommate was not only awake but had listened to him ramble defensively to a dorm advisor in his honour, and felt his cheeks reddening against his will. Sapnap isn’t a religious man, but he takes a moment to silently thank every god he knows by name that Dream is nowhere nearby to witness any part of this interaction.
“You’re awake?” he questioned softly, moving from his desk chair over to his own bed so he could face Karl’s bundled form.
“I woke up because of the knocking, and you were doing such a good job of kicking that asshole out that it felt like a crime to interrupt, you know?” the exhausted boy said with a giggle, and Sapnap couldn’t help but laugh too.
“That guy is such a dick.”
“I know, right?” Karl sighed and emerged from beneath the heavy blankets, rolling over to face Sapnap and smiling. “I’m still really tired, though. So thank you. For not letting him in.”
“I’m sorry he woke you up at all,” Sapnap responds sadly, getting up when Karl rolls over again, this time leaving a space on the left side of his bed for Sapnap to sit beside him.
Karl lets out another weary sigh in agreement, and Sapnap finds his eyes following the rise and fall of his roommate’s chest, tracing back up to his shoulders and eventually to his bare arms which were covered with goosebumps.
“Oh gosh, are you cold?” he asked, unable to stop himself from voicing concern, and Karl shrugged but Sapnap noticed his teeth were practically chattering.
Without hesitation, he pulled off his own hoodie and Karl made a noise of protest, “now you’re going to be cold!” but he was undeterred. Sapnap already felt an overwhelming sense of warmth every time Karl smiled at him like this, he didn’t need extra layers.
“I’m not cold, see,” he insisted, reaching over and grabbing one of Karl’s hands from beneath the blankets to prove to him how warm his own hands were, in the process being shocked by how cold Karl’s was and not being able to hold back his gasp.
“I told you! I’m cold!” Karl giggled as he sat up to put the hoodie on, and Sapnap realized he was still holding Karl’s smaller hand between his own and awkwardly let go so he wouldn’t be in the way.
Karl pulled the hoodie on quickly and unceremoniously, before flopping back down against his (several) pillows and letting out a long sigh of apparent comfort and contentment, eyes falling shut. Sapnap tried incredibly hard not to let his eyes linger too long on the way Karl’s smaller frame was swallowed in entirety by his hoodie, on how loose it was around his collarbone when he was laying back like this, exposing a tiny bit of skin that Sapnap wasn’t sure why he couldn’t tear his eyes away from. Desperate to direct his attention anywhere else, he managed to form a semi-coherent sentence despite the tangled web of incomprehensible static overtaking all rational thought at the moment,
“Is that better?”
Karl nodded, keeping his eyes closed, “Thanks. Much better. Aren’t you tired, too? You barely slept last night either.”
Sapnap realizes he’s right, that he’d spent the majority of the previous night desperately trying to perfect his code for an assignment and ultimately getting so frustrated he knew it was for naught and that he’d need to ask for help, but continuing to subject himself to the purgatory of working on it anyways. He decided, now, he could blame his present lack of coherent decision-making on tiredness, the need for comfort and warmth and security overtaking rational thought on the priority list.
“Yeah, I guess I am”, he pondered, and accidentally met Karl’s eyes as he opened them.
“Well”, Karl smiled at him with so much warmth the air conditioning could’ve been fueled by the sun itself, pumping out heat instead of seasonally-appropriate cool air, and Sapnap wouldn’t have been surprised. “Why don’t you lay down, then? Before you get cold.”
He almost said no and got up. The incredibly persistent voice in the back of his head that sounded far too much like Dream for comfort was screaming that this was a horrible idea, that sharing a bed was crossing some kind of unspoken barrier and would somehow change the entire course of their friendship.
However, Sapnap reminded himself, Dream was wrong. The feelings Dream seemed so confident Sapnap had for his roommate were a fabrication, a misguided assumption that he really needed to stop worrying so much about. And Sapnap has shared a bed with Dream countless times, in cheap single-room AIRBNBs when they were finally old enough their parents would allow them to travel to meet up in person, and many more times since they started university. Dream, despite having his own apartment barely ten minutes off campus, began making a habit of staying over in Sapnap and Karl’s dorm room to stave off the loneliness that accompanied living alone. None of these times had anything changed in their dynamic, nor had Sapnap so much as given it a second thought. Why should Karl, who he admittedly hasn’t known as long but nonetheless spends practically every waking moment he’s not in class with, be any different?
Shrugging as if he’d never even considered otherwise, Sapnap slipped his legs under the covers and started rearranging the mountain of pillows Karl insisted it was impossible to sleep without in order to make room for himself.
Karl was lying on his side facing him but seemingly on the verge of drifting off at any moment when Sapnap turned back around, laying back against the satisfactorily distributed pillows. He looked so small like this, drowning in the fabric of Sapnap’s hoodie, and Sapnap found himself mesmerized by the way his sleep-disheveled bangs hung half over his eyes. Unable to resist and not allowing himself enough time to overthink, he reached over and in a feather-light motion pushed the older boy’s hair out of his eyes.
Karl’s eyes immediately blinked open in surprise, but when Sapnap tried to move his hand away he let out a quiet noise of protest and then shut his eyes again. Karl seemingly repressed nervous laughter at his own clinginess, pressing his lips together tightly and cheeks dusted with the tiniest beginning of blush.
Sapnap wanted to say something, anything, as he unconsciously started running his fingers through Karl’s hair and along his scalp in delicate comforting motions, wanting to make sure the prolonged contact was okay. He was terrified, though, if he opened his mouth he’d ruin what was already so much easier with words unspoken. Before he had the chance to gather the courage, Karl learned further into the touch, a soft sigh escaping his lips as the corners of his mouth turned up.
Shaking his head and clearing it of any lingering hesitation, Sapnap leaned in closer, letting their elbows press against each other on the mattress and resting his head on the same pillow as Karl’s, only inches apart.
Concentrating so completely on helping Karl feel comfortable, Sapnap didn’t notice his own eyelids growing heavy until he could no longer manage to keep them open. His last fleeting thought before he drifted off was the recognition that Karl’s left hand found his right where it was lying flat against the mattress, not quite intertwining their fingers but loosely grasping at Sapnap’s palm.
-
The third time he’s hit with the revelation that he maybe, just maybe, goes out of his way to talk about Karl quite often, Sapnap is forced to accept that this might be a pattern.
Having begged the program director for approval to bypass prerequisite courses and get ahead on his computer science major based on his excellent grades in high school, Sapnap typically found himself asking to work on assignments alone, preferring not to be judged by older students when they found out how young he was. Thankfully, though, he’d formed a reliable friendship with George, a British exchange student who always saves him a seat despite the fact that they’ve never really talked outside of a classroom.
George is both easy to talk to and easy to work with, having a lot of similar interests and typically taking a similar approach to assignments. Sapnap often debated asking George to hang out after class, but wasn’t sure how to breach the subject since their friendship was built purely out of convenience anyways.
Nonetheless, he was relieved to have George beside him when the professor gave the instruction to spend the rest of the class comparing processes with a partner.
“Why do we even need to compare anything?” George complained under his breath, “We all got taught the same way, it’s not like we could’ve done things all that differently.”
“Who cares, at least he’s not going to keep us late for once.” Sapnap shrugged, closing his notebook and shoving it into his knapsack before pretending to carefully analyze the lines of code on George’s screen which was now turned to face him.
George snorted quietly, “That’s true.”
They fell into a comfortable silence, both pretending to be earnestly reviewing one another’s projects in case the professor happened to glance in their direction, before George actually found something to comment on,
“Oh wait, you actually did do this differently than me here! This bit,” he points with his pen, “you did this weirdly.”
Sapnap turns his screen toward himself, studying the line in question before a memory pops into his mind - the hum of the air conditioner, the light of his screen in otherwise total darkness, Karl’s head on his shoulder.
“Oh, that. My um, my roommate taught me that. I was blanking and couldn’t remember how we did it in class, and my roommate looked at it for me and did it the way he knew,” Sapnap explains, leaving out the detail that the reason he’d spaced out and forgotten the professor’s method was that it was an immense challenge to think clearly with Karl’s head on his shoulder.
Ever since they’d fallen asleep in Karl’s bed days ago and woken up somehow even more entangled, it was as if an unspoken barrier had been broken and Karl no longer felt the need to contain his constant desire for physical touch. At every given opportunity, he was either leaning against Sapnap on the couch, or grabbing his hand or elbow when they were walking side by side, or resting his head on his shoulder while Sapnap did homework and Karl was bored and had nothing better to do than watch and attempt to help. It had made him nervous at first, though he wasn’t sure why because it certainly wasn’t unwelcome, but he grew accustomed to it quickly, and found that he missed the constant contact whenever Karl wasn’t around.
The incident in question, though, was before Sapnap had entirely adjusted to what became their new normal, and there was something about being in such close proximity he could feel Karl’s heartbeat as clearly as his own which made it incredibly challenging to remember even the simplest of formulas.
George had nodded at the explanation, satisfied, but Sapnap felt an urge to expand, “I like the way my roommate does it more anyways, it’s a lot more straightforward. Probably because he taught himself.”
“Is he a comp-sci major too? Your roommate?” George queried politely.
“Nah, he kinda hates learning any of this stuff-” Sapnap gestures vaguely toward their laptop screens, “-in a classroom, he thinks it’s pretty pointless since if you ever aren’t sure how to do something it’s so easy to learn it yourself. He’s really computer smart, naturally, so I guess most of this type of stuff comes to him on his own anyways and it’s probably really boring having to be taught a bunch of stuff you already know.” He pauses as if he expects George to interject or move on, but when George only nods along politely he decides there’s no harm in continuing to fill their time with conversation,
“He’s really, really smart and pretty much good at everything, honestly. I don’t think I’ve ever seen him do homework in his life, and yet he’s still constantly getting honours. He’d probably be at the top of every class if he could actually be bothered to try harder, but he doesn’t see a point. I guess I get it.”
“Oh my god!” George suddenly gasps as if remembering something, “Okay, this is going to be so weird if I’m wrong, but are you Dream’s best friend?”
Sapnap blinks in confusion, “Yeah, we’ve known each other, like, forever” he confirms, before wondering what prompted this question, not even having any idea that George knew Dream in the first place, “How do you know Dream?”
George bursts out laughing, “Oh my god, I knew it. Dream talks about you a lot, but one of the only things I knew about you was that you do this thing where you really love telling stories about your roommate-”
And Sapnap is going to kill his best friend. He groans dramatically, pushing his laptop back against the edge of the desk to instead cross his arms on the wooden surface and bury his head in them, muffling his mortified response, “What the fuck. Why does he just-why does he tell people that-”
“In his defense!” George cuts through Sapnap’s humiliated mumbling, “I mean, he only told me because he was stressed out for you. He worries a lot. His exact words were that he’s ‘going to prematurely bald from the pain of watching your obliviousness’, I think, but he definitely means well.”
“How do you even know him?” Sapnap asks, lifting his head up from his arms when he realizes George dodged the question the first time.
“Oh, um…” George hesitates, and Sapnap realizes with a start that George is honest-to-god blushing, clicking his pen repetitively as he takes far too long of a pause, “we have friends in common, I guess.”
Sapnap knows that can’t be entirely true, at least not for them to know each other as well as they must if Dream is telling George so much about his second-hand stress. Nearly all of Dream’s friends are also Sapnap’s friends, or at the very least people Sapnap would know by name, since he goes to all of the same parties as Dream and tends to be introduced to all of the same people. He can’t think of the last time Dream would’ve been out in a group setting without Sapnap by his side, which means that if he’s been hanging out with George it’s always only been the two of them, and…
Oh.
Well, Sapnap smiles to himself, he suddenly understands why he had no idea George and Dream were friends.
“Oh, that’s cool, I had no idea you knew each other,” he attempts to hide his amusement, not wanting to directly call out what he’s assuming just in case he’s wrong, “how long have you been friends?”
George has the absolute worst poker face Sapnap has ever seen, his panic at being asked questions he clearly wasn’t prepared to answer worn all over his expression as he seemingly tries extremely hard to think of a believable response, “A couple months, I think? Not too long.”
Sapnap wants to push more, to see how much information he can get out of George without making it obvious what he thinks he knows, but he decides it’s unfair since George isn’t the one going out of his way to hide anything from him – they’re hardly more than acquaintances – Dream is his best friend. Opting to let it drop and berate Dream about it later, he nodded and hummed in affirmation.
He does, however, pull out his phone and send an incredibly cryptic text to Dream about needing to talk to him after his class. Dream responds quicker than Sapnap had expected, immediately telling Sapnap to come over to his apartment if he wants to. He also sends a text to Karl, letting him know that he’s going over to Dream’s after class so he’ll be home later than usual, but promising that he’ll have good gossip to discuss.
When the class finally wraps up, Sapnap gathers his things and says goodbye to George, who still seems slightly flustered and clearly realizes Sapnap is suspicious of something.
The drive to Dream’s apartment takes no more than five minutes, with Sapnap spending longer getting out of the school parking lot than he does actually driving. After being buzzed in he fidgets with his keys while waiting for the elevator, almost excited to finally be the one holding an intervention rather than receiving one.
He fumbles with his keys once he’s out of the elevator and outside Dream’s door, before he heard Dream yell through the walls,
“It’s unlocked, idiot.”
Sapnap twists the handle experimentally and laughs, “Oh.”
Dream’s apartment is fairly unremarkable, as small as would be expected for a college student and as sparsely decorated as would be expected for a man living alone in his early 20s. Dream only recently got a couch, after several months of insisting it was ‘not a necessary priority’.
Dream is sitting on the newly acquired couch, his legs up on his coffee table and laptop in hand. “Hey man, is everything okay?” he asks softly, genuine concern in his voice.
“Oh yeah, I’m fine,” Sapnap reassures him, slipping his shoes off and setting his backpack down on the floor before joining Dream on the couch, “I was just talking to George, from my comp-sci class, who I actually had no idea you knew?”
If there had been any doubt in Sapnap’s mind about the theory he’d already fully formed, it would’ve been immediately eviscerated by the deer-in-the-headlights expression that immediately crossed Dream’s face as soon as the older boy heard George’s name. Jesus, Sapnap thought to himself, how did it possibly take him this long to notice?
“I knew it!” he exclaimed at Dream’s non-response, and Dream groaned extremely dramatically and covered his face with his hands,
“You don’t know shit,” he protested lamely, and Sapnap punched him in the shoulder.
“Why wouldn’t you just tell me!” Sapnap whines, “How is it fair that you always want to know about my feelings but you have an entire secret boyfriend-“
“Stop! We aren’t… it’s… it wasn’t supposed to be a secret. I guess neither of us thought it was anything serious at first, because it wasn’t, so there was no point in talking to anyone else about it.” Dream lets out a heavy sigh, “And even though now it’s definitely, um, something. I guess. It’s not nothing. We still haven’t really defined what it is. So. I wouldn’t have known where to start, if I were to tell you about him anyways.”
There’s something in the sheepish grin Dream can’t seem to conceal that suggests to Sapnap there’s a lot more he isn’t being told, and for a moment hurt forms a lump in the back of his throat at the knowledge that his best friend would hide something like this from him, but it’s admittedly hard to feel angry for long. He reflects on his own horror when Dream had even implied noticing Sapnap’s supposed feelings for Karl, and he kind of understands. There’s something terrifyingly vulnerable about not only caring about another person that much but the act of sharing it with others, and even though Sapnap’s personal crisis is nothing like whatever Dream and George have going on, and he thinks he gets it.
“Sorry if I sounded angry,” Sapnap begins, “but just tell me stuff like this, next time. Don’t worry about where to begin, because I want to know literally everything, idiot. Now you have to tell me more though.”
Dream opens his mouth to reply but is interrupted by the sound of his phone dinging with a text in his lap, and he glances down at it before quickly unlocking it and typing something seemingly urgent. Sapnap raises his eyebrows in a silent plea for an explanation but instead gets an answer in the form of Dream’s door swinging open.
Sapnap whips his head around and is incredibly unsurprised when his eyes land on George, standing frozen in the doorway with one hand still on the doorknob, the other clutching the strap of his book bag with whitening knuckles. Sapnap glances back at Dream, whose eyes are squeezed shut in apparent exasperation, lips pressed firmly together in a line and eyebrows drawn, and can’t help but let out the laughter bubbling in his chest.
Dream clears his throat shyly, “Well. Sapnap, this is George.”
“We already know each other,” George manages to say, and Dream laughs out loud as if it’s the only choice he has.
“Well to be fair, I didn’t know that until roughly ten minutes ago, when I was put on blast in my own home-”
“Wow!” Sapnap reaches over to ruffle Dream’s hair as if he’s a child, and Dream moves to shove him off but he’s not fast enough, “I wouldn’t know how that feels, right?”
It’s George’s turn to laugh at the expression of defeat on Dream’s face as he finally moves from the doorway, slipping his shoes into the closet and hanging his coat on a hook on the backside of the closet door. He crosses the room and sits down on the armrest of the couch, stretching his legs out so they land in Dream’s lap with a practiced ease that once again confirms to Sapnap that Dream was absolutely downplaying the significance of… whatever this was.
“You kind of deserved that one,” George pokes Dream’s cheek and exaggeratedly pouts, and Dream rolls his eyes but leans closer to George so that their shoulders brush and Sapnap finds that he suddenly is envious of himself from twenty minutes ago who was blissfully unaware Dream had a secret boyfriend to be a third wheel to.
“So, like,” Sapnap can’t resist asking, “how long have you…?”
Dream laughs when Sapnap trails off awkwardly, not knowing what he’s supposed to refer to them as since Dream himself had been so deliberately vague, but George responds for him,
“We met two months ago. At a party. You were there but so was Karl so you had tunnel vision and didn’t even notice that Dream left way earlier than usual-”
“I do not have tunnel vision,” Sapnap interrupts incredulously, “Karl doesn’t come to parties often. So when he does I stick with him so he’s not overwhelmed. I’m a good friend!”
George nods exaggeratedly, as if he’s speaking to a toddler, “I’m sure that’s completely true. But my point was, you were distracted. We’ve been, um,” the oldest of the three seems unsure of how to finish the sentence, looking pointedly at Dream seemingly hoping he’ll jump in, but Dream smiles reassuringly as if urging him to say whatever he wants, “We’ve been dating ever since.”
Dream’s eyes immediately shoot all the way open, “We’re dating?” he asks in what seems to be completely earnest shock, and George laughs and shakes his head in fond amusement.
“I mean, we’ve been going out for two months, and now we’re ‘telling-your-best-friend’ official, so I would say that’s dating, yes.”
Sapnap is happy for Dream, he truly is, and he can’t deny it’s incredibly sweet to see the way his best friend seems to melt at George’s affirmation that he’d clearly been waiting to hear, but he’s beginning to feel like he’s intruding. This feels like a conversation he should not be privy to, so he takes the opportunity to check his phone, preparing to announce he’s going to head out and give them privacy, but is distracted when he sees a text from Karl.
> you can’t just tell me you have gossip and then leave me hanging like this, what the hell
> also tell dream i said hi
Sapnap grins at the screen before typing a quick reply,
< i promise it’s good gossip it’ll be worth the wait
“-Oh, definitely.”
Sapnap’s head snaps up from his phone and only processes the end of whatever Dream was saying, apparently having his own conversation with George as if Sapnap was no longer within earshot.
“I’m still right here, you know,” Sapnap pretended to pout, “but don’t worry, I’m going to head out now, you can have your privacy.”
“We were talking about you, idiot,” Dream laughs, “George asked if you were texting Karl and that’s why you were smiling at your phone.”
Sapnap is infuriated he’s now being teamed up on, unsure how he’s meant to defend himself against not only his best friend but his best friend’s boyfriend who seems to firmly believe the same misconception that he has a crush on his roommate, and even more infuriated when he realizes George was right, this time — he was both smiling at his phone and texting Karl. Which means absolutely nothing.
“Yup, definitely leaving!” He decides that defending himself is pointless, abruptly standing up and moving to pull his shoes on when Dream stops him again,
“I’m glad you know the truth now”, his best friend grins sincerely, “I hated feeling like I couldn’t be totally honest with you. I’m sorry I didn’t tell you anything sooner.”
Sapnap shakes his head, “Don’t worry, man, I get it. Shit’s hard to talk about. But thank you for telling me, even if I kinda guessed it on my own. I’m really happy for you — both of you.”
George shoots him one last knowing look as he slides down off of the armrest to sit practically in Dream’s lap as Sapnap is about to step out the door, “You can thank me by making sure you never need another intervention,” the British boy laughs airily. “Don’t overthink too much. Sometimes the easiest solution is the one that you’re the most reluctant to accept, even if it’s right in front of your face.”
Sapnap wants to make a snarky remark in reply, but there’s something so sincere in George’s voice that stops him in his tracks, and all he’s able to manage is a nod, terrified of what he may admit if he tried to speak aloud.
“Wow, when did you become Socrates?” is the last thing Sapnap hears as he waves goodbye and shuts the door behind him, holding back his own resigned laughter at Dream’s stupid quip.
-
After sending Karl a quick text to let him know he’s on his way, he remembers that Karl didn’t sleep the night before, and will probably want something caffeinated before his afternoon class starts in an hour.
Quickly turning out of the parking lot and moving into an exit lane instead of simply driving across campus to his dorm, he punches the address into his phone for directions to Karl’s favourite local coffee shop, knowing it’s decently out of the way but figuring if he’s going to make a kind gesture he may as well get Karl’s favourite instead of something generic from a chain store.
At the coffee shop, he recites Karl’s order without a moment’s hesitation, despite it requiring several customizations and even the barista appears impressed,
“Wow, you really know your stuff!” she grins at him as she taps his order into the register.
Sapnap realizes he could definitely just politely nod and not need to provide any additional information, but he can’t help himself when he tells her that he only knows the order so well because it’s his roommate’s favourite, and he’s been here with him more times than he can count on his fingers.
Tina, according to her nametag, appears even more impressed by this, “You’re just a really thoughtful roommate, then! For paying such close attention.”
Sapnap nods, not wanting to take up too much of her time but being unable to stop himself from continuing the train of thought as he thinks of it, “I try my best, Karl–sorry, my roommate–I just know his schedule really well and I know how often he needs caffeine, even if it’s slightly concerning.”
He can’t help that the corners of his mouth turn upward the longer he talks about Karl, not even consciously aware he’s beaming until he notices his cheeks beginning to cramp.
“Funny seeing you here,” a familiar playfully amused voice chimes from behind Sapnap, and he spins around to see Karl, wearing an oversized sweater that Sapnap suddenly realizes is actually his own, which seems to make the taller boy look much smaller and a grin that makes Sapnap’s heart race, though he tries to ignore that detail.
“Oh, you must be Karl!” Tina laughs before Sapnap even has a chance to say anything, and some mixture of confusion and intrigue crosses his roommate’s face.
Sapnap wishes the floor would open up and swallow him whole.
“I was-I was going to bring you this before class-” Sapnap gestures vaguely to their surroundings, “I guess that I was, um, correct in thinking you’d want it…”
Sapnap prays that if he brushes swiftly past the barista knowing Karl’s name then maybe Karl won’t think anything of it. Surely, tons of people provide strangers with far too many details about their roommates lives because there’s something comforting in the simple act of talking about them. Surely, Sapnap’s embarrassment is misplaced, brought upon by Dream’s unbearable insistence that it has to mean something it doesn’t and George’s validation of this theory.
“You didn’t have to do that, what the hell?” Karl giggles, one of his hands landing on Sapnap’s upper arm to shove lightly but then lingers there, and Sapnap breathes a sigh of relief when he no longer sees any confusion in Karl’s expression, Tina’s words apparently forgotten.
“I knew you needed it,” Sapnap shrugs, “I wanted to save you the trip, since I was out anyway.”
Karl shakes his head, bewildered, and for some reason Sapnap finds his eyes clinging to the way Karl’s nose scrunches in the process, “How is getting here from campus any more convenient for you than it would be for me, nimrod? This isn’t exactly on your way from one side of campus to the other.”
“Well, I wanted to do something nice for you!” Sapnap defends, and Karl’s amused expression softens, something delicate and almost sad behind his eyes that Sapnap can’t quite place in contrast with the wide grin on his lips.
“Well, thank you.” Karl’s eyes flick downward for a second as if he’s nervous, but they meet Sapnap’s again and there’s something in the unreadable emotion they contain that makes Sapnap feel like he’s drowning in them. Faint freckles dust across Karl’s cheeks and nose, made more prominent by the blush drawing attention to them, and Sapnap wonders if the winds outside have picked up to have caused the rosiness lingering on his roommate’s face. He realizes he’s staring for far too long when he’s only snapped out of his reverie by Karl reaching past him to grab their drinks.
“Oh, thank you so much” Sapnap waves to Tina, having not even noticed that the tray had been placed onto the ledge behind him until now, and he tries incredibly hard not to wonder if there’s any meaning behind the knowing grin she shoots at him before returning her focus to the blender she was dispensing some type of syrup into.
-
Sapnap’s breaking point comes in the form of easy laughter through the imperfect tinny audio quality of a Discord call.
He’d spent roughly an hour in the campus library with Punz – one of his oldest friends who he’d met online around the same time he’d met Dream – both intending to get some homework done, but quickly realizing their efforts were futile. It was clear after the passing of barely sixty minutes that neither of them was accomplishing anything, too distracted talking to each other to really try.
Accepting defeat, it had been Sapnap’s suggestion to just go back to their respective dorms and play Valorant instead, which Punz predictably had no objections to.
Back in his dorm, Sapnap had known Karl was at home for the weekend visiting his family, but nonetheless was disappointed when he’d found the room as he’d left it, hoping delusionally that perhaps his roommate had come home a day early unannounced. Of course, the room was empty, but the weight of Sapnap’s sudden loneliness was nonetheless claustrophobic.
After playing a few games, Sapnap was getting increasingly frustrated by non-communicative teammates and while Punz was somewhat better at maintaining his composure, it was evident neither of the two were having any fun. After their fourth consecutive loss, Punz had suggested they see if any friends wanted to play, to which Sapnap had vehemently agreed was what they needed.
“Karl has his old PC at his parent’s house, I can see if he’s around and wants to join,” the words fall out of Sapnap’s mouth without any real thought behind them, it’s just an unconscious reflex to ask Karl first no matter what game he’s playing.
Punz immediately bursts into laughter, “Dude, are you joking?” he sputters.
“No?” Sapnap questions, “What’s so funny about that?”
“Karl is like, Silver II, bro. How is he your first choice to play with us at Diamond elo? Do you even have another account ranked this high he could use?” Punz laughs incredulously, and Sapnap is forced to admit he’s not wrong.
“Well…”, he begins, realizing quickly that he’s not even sure how to explain what his thought process was, “I don’t know. I didn’t think about that part.”
Punz laughs harder, and for some reason there’s something in how unsurprised the older boy is, just amused, that burrows its way into Sapnap’s mind and manages to push past his well-fortified layer of denial. Why did he think of Karl first, before any of their friends who can actually queue with them? Especially considering Karl doesn’t even like Valorant all that much?
“Dream was right, man, you really do only think about Karl,” Punz murmurs, and Sapnap immediately snaps his head up to glare at his screen, hoping his anger can somehow be felt from Punz’s dorm two buildings over.
“Are you fucking kidding me, Dream talked to you about his dumb intervention too?”
And Punz’s discord bubble flits between green and invisible a few times as Sapnap hears his friend take a hesitant breath, and then another, as if choosing his words carefully, “To be fair, I’m the one who brought it up. I asked him if you and Karl were, like, dating or something, because I was confused, okay!”
And Punz laughs awkwardly after he finally says it, clearly expecting Sapnap to whine dismissively and complain about how tired he is of everyone making the same incorrect assumptions about him and Karl lately. Sapnap opens his mouth to speak, but finds the dismissive words die in his throat before he can manage to get them out.
For some reason, unlike every other time he’s had the same thing pointed out to him, this time he can’t bring himself to brush it off like he always has. For some reason, Punz assuming him and Karl were dating, in contrast with Dream’s assumption that Sapnap had a crush, feels significantly different as the words reverberate inside his head. Why would Punz assume they were dating, based only on Sapnap’s behaviour? That’s a much larger conclusion to jump to, and seems to imply that Punz thought Karl, too, acts like they’re in a relationship.
“You assumed we were… dating?” Sapnap finally manages to choke out, realizing he sounds far too shaken up than would be normal for what should be a lighthearted conversation.
Sapnap can’t stop thinking, now, about every single time in the previous week it’s been brought to his attention that he has a tendency to bring Karl up far too often. I have nothing to be in denial of, he’d said to Dream, and he’d believed the words as they fell from his lips but somehow they sounded like a lie the more he reflected on the conversation.
Despite everyone around him thinking otherwise, Sapnap has never even pondered whether or not he would want that, to date Karl. He thinks of the dynamic that they have now, how perfectly they’re able to balance each other out and how unconsciously they’re able to understand each other.
He thinks of Karl’s small, delicate hands in his own, of his arm resting protectively across Karl’s shoulders whenever he drags Karl with him to a party, of Karl’s head resting against his shoulder, face buried in the crook of his neck, and Karl’s heartbeat synced with his own when they wind up sharing a bed because Karl has insomnia but for some reason nights feel shorter when he has someone to share them with. He thinks of Karl’s laugh, the way he can pick Karl’s voice out in a crowd effortlessly because some part of him is always listening for him, and the way he otherwise never breathes quite as easily as he does when he has Karl by his side.
“Oh, fuck,” Sapnap abruptly says out loud, too overwhelmed by his own thoughts he can no longer contain them inside his head, and he remembers that he’s not even confident whether or not Punz replied to the last thing he said, too lost in an internal crisis to think about anything but Karl.
Karl. His roommate. His best friend, maybe second best after Dream, but it’s different. That’s all Sapnap can think about now, how different it truly is.
Karl, who he maybe, just a little bit, wishes he was dating.
“You okay, man?” Punz’s voice finally manages to permeate the cacophony of alarms going off in Sapnap’s head as he reflects on how oblivious he’s been to his own desires.
“I, uhm, I think I… like Karl…?” Sapnap takes his time spitting the words out, because unlike the cold sting of denial, the truth burns as it escapes him.
“Holy shit,” Punz sighs with relief, “you finally got there!”
Suddenly, laughter bubbles in Sapnap’s chest and he shakes his head as he lets out a wheeze. He thinks of what George had said about the solution being right in front of his face, and he wonders why none of this sunk in sooner, why Dream’s direct interrogation hadn’t given him pause. It’s impossible to see a solution to a problem you haven’t even admitted is a problem to begin with, he supposes.
“You know, I think you should tell him.” Punz says earnestly, and Sapnap freezes in his chair.
Coming to terms with his own feelings had been enough of a challenge, he hadn’t so much as considered acting upon them. He knows that he’s opened a floodgate, that it’s going to be impossible to walk back upon this revelation and he’ll never again be able to ignore the quickness of his heartbeat around Karl, or to assure himself it’s nothing out of the ordinary when he catches himself rambling about Karl to a stranger for the fifth time in a week. He thinks, though, that he doesn’t need to date Karl. He’s so content with their relationship the way it is, if his feelings aren't reciprocated then that’s something he can live with, because having Karl in his life in any capacity will always be worth more than heartache.
“I don’t know,” he answers honestly, “I promise I’ll think about it. I doubt he sees me like that, anyway, but that’s okay.”
The noise of protest in Punz’s throat is immediate, “I’m going to say this not because I’m trying to convince you what to do, or anything, but because we’ve established that you are quite oblivious already-”
“Hey!”
“-And I’m very proud of you! But dude. I actually can’t believe you haven’t already noticed, but there is literally zero chance Karl doesn’t feel the same.”
A frown forms on Sapnap’s lips, because he doesn’t know how Punz can say that with so much confidence. Were there signs he missed? Has Karl been interested all along, and Sapnap was too wrapped up in the conscious effort to ignore his own desires that he missed what was right in front of him?
“You can’t know that for sure,” he settles on responding, though his head is spinning, dizzying the longer he allows the words ‘zero chance Karl doesn’t feel the same’ to echo inside his mind.
“Oh, trust me,” Sapnap can practically hear the cocky grin on Punz’s face, “yes I can. I was right about you, was I not?”
A half-formed sarcastic remark about Punz’s inconsistent accuracy in-game carrying over to real life draws a wheeze out of his friend before Sapnap is startled by the sound of keys jingling just outside his door.
“Oh shit, I gotta go I think?” he says, slipping one of his ears free of his headphones and craning his neck to keep an eye on the door, “thank you for uh, for whatever this was. For listening.”
“You’re welcome,” Punz snorts, “I’ll help you work through your inner turmoil any time, I’m always here for you, man.”
“Love you too,” Sapnap says with a grin as he disconnects from the call.
Expecting to see Dream walk through the door unannounced, as he tends to, Sapnap pulls his headphones off fully and starts mapping out in his head what he’s going to say. He’s already come up with a lengthy spiel telling Dream he may technically have been right, but he still refuses to let him off the hook for apparently telling half their campus’ population about Sapnap’s feelings before Sapnap himself had even come to terms with them.
Contrary to what he’d predicted, Karl walks through the door.
It’s only been two days since Karl left early in the morning to drive up to his parents’ house, but Sapnap has felt his absence more with every passing moment and now, finally realizing why he’s missed his roommate so much, the sight of him is almost too much to bear. Sapnap feels like he’s staring into the sun itself, Karl’s smile lighting up the previously dreary room so much he may as well be, and he knows he should avert his eyes but even considering doing so forms an ache in his chest.
“You’re home early”, is all he says.
I missed you so much, he thinks so hard he wonders if the words are tangible even unsaid.
“Yeah, I got kinda homesick so I decided I didn’t feel like staying another night, honestly,” Karl laughs sheepishly, “I used to get homesick for my old house when I was here, but now as soon as I leave this is where I’m homesick for.”
Sapnap is suddenly overcome with emotion, knowing Karl chose to return to their cramped single-room college dorm where the air conditioning is always cranked far too high and the walls are paper thin instead staying in his childhood home with a room to himself, because he thinks of the dorm as home and he misses it whenever he leaves and Sapnap wasn’t alone in his loneliness after all, and it’s all too much.
Words fail, and instead of trying to string together a sentence that wouldn’t possibly capture even a fraction of what he’s feeling, Sapnap crosses the room and pulls Karl into a crushing embrace.
Karl laughs softly against Sapnap’s shoulder as he drops his duffel bag so he can properly reciprocate. “I missed you too,” the taller of the two whispers so quietly Sapnap almost believes he imagined it, but Karl only holds him tighter as if to affirm he meant what he said.
When they pull apart, Sapnap can’t meet Karl’s eyes and is grateful the older boy turns around to slip off his shoes and put away his jacket, giving Sapnap the opportunity to busy himself picking up Karl’s duffel bag and moving it onto his bed in an attempt at being helpful. Several pins and buttons are scattered along the uppermost pocket of the bag, some being obvious freebies given away at volunteer events or school functions, others in the design of characters and logos from Karl’s favourite shows and movies, and some Sapnap isn’t even sure if he recognizes. The collection is so sentimental and personally significant and so quintessentially Karl that Sapnap feels his own heart brimming with a fondness so overwhelming he has to blink a few times and force himself to turn around before he says aloud something he’d only processed for himself a few minutes ago.
Sapnap has been existing in the same space as his roommate for roughly three minutes since becoming aware of his own hopeless crush, and he’s already wishing it would be socially acceptable to duct-tape his mouth shut before he can’t prevent himself from blurting out something he knows will ruin the perfect balance their friendship already has.
“I think I’m going to go for a walk,” he manages to say, staring down at his own feet instead of even daring to meet Karl’s gaze. Desperate for some air, and some time alone to think through what his next course of action should be, he was looking for an excuse to leave without hurting Karl’s feelings and giving him the wrong idea.
Through his peripheral vision he sees the older boy stretch his arms and crack his neck, before Karl walks back over to the closet and pulls his jacket back out, “I’m actually really antsy from sitting in a car all day, I could use a walk too, I’ll come with!”
Unable to think of a believable reason to protest without hurting Karl’s feelings and seeming like he doesn’t want him around, Sapnap helplessly nods in affirmation. He hopes, if nothing else, that it’ll at least be easier to put his feelings aside outside of the confines of their shared room, where he doesn’t need to feel Karl’s presence in everything his eyes land on.
-
Sapnap was wrong. The longer they walk, the longer Sapnap struggles to keep his mind on track.
He has an earbud in his right ear, Karl wearing its counterpart in his left, as his phone shuffles a playlist of songs they made together months prior, with the specific purpose of having something to listen to whenever they were studying or in the car and wanted something to listen to that reflected an even blend of their similar, but nevertheless distinct tastes in music.
No matter how hard he tried to clear his head, to focus on the gentle autumn breeze in the air as it rustled the leaves of the trees in the public park they made their way through instead of the erratic beating of his own heart, the more impossible it became.
Karl talked about his weekend, carrying the conversation even if Sapnap contributed little more than nods and noises of affirmation as he was happy to just listen. He rambled absentmindedly about a meal his mom made that reminded him of his childhood and the collection of stickers plastered to the side of his old nightstand that he couldn’t believe were all still hanging on, deliberately attached to the side that faced away from the doorway so that it was hidden from view unless you were to lie in his bed, so that his parents wouldn’t see and scold him for it.
As they crossed a creaky wooden bridge over a small creek that hardly necessitated a bridge, Sapnap glanced at the sky above them and all around them through a gap between the trees, letting out a soft “Oh” at the sudden beauty of the streaks of lilac and tangerine painting their surroundings in warmer, softer hues than the blue sky that’d been above them only minutes before.
He hadn’t even noticed the sun was setting, hadn’t processed the passage of time at all, too wrapped up in hanging onto every word Karl said while the relentlessly-distracted part of his mind was going haywire every time their hands brushed between them, attempting to determine how terrible of an idea it would be to link them.
“Oh wow, that’s really pretty,” Karl sounded almost dazed as he glanced heavenward.
“Yeah,” Sapnap agreed, but he wasn’t looking at the sky anymore. Not even noticing he’d turned his head to look at Karl until after he was already mesmerized by the mosaic of colour reflected in grey eyes, he thought to himself that no sunset would ever be comparable to this. Every subsequent painting offered by the changing night sky would pale in comparison, and Sapnap realized that he’d spend the rest of his life returning to this moment and wishing he could live in it forever if he spent a single sunset without Karl by his side.
No longer able to contain his need for some form of contact, Sapnap reached for Karl’s hand like a lifeline and as Karl allowed their fingers to intertwine he tore his eyes away from his roommate’s face for just a moment, to watch how perfectly their hands seemed to complete one another, before looking back up and finding that this time, he wasn’t the only one staring.
“Hi,” Karl whispered, tentative, as if there were a million other words on the tip of his tongue but he wasn’t sure how else to begin.
“I can’t stop talking to people about you,” Sapnap began, more honest than he’s ever been, unflinching even when Karl blinks in surprise at the sudden confession and bites his lip to hold back a grin.
“Wait, don’t say anything yet,” Sapnap quickly rushes out when he sees a question forming on Karl’s lips, knowing that if he takes too long to get to the point he’ll never make it. “Dream pointed it out a few weeks ago, that it’s like, this thing I do. With strangers, with friends, it doesn’t make a difference, whenever I try to make any small talk, all I talk about is you. It doesn’t matter how the conversation starts, somehow I bring it back to you every single time.
“I didn’t know why I do it, not at first. Dream had… a theory, and I dismissed it immediately because I’d never considered it before. And then I did it again when I was talking to the dorm advisor, and again to George from comp-sci, and again the other day when I was getting you coffee, and… you get the point. It’s consistent, and it’s because whenever I don’t know what to say you’re always at the forefront of my mind. I jump at every opportunity to talk about you because I want everyone else to be able to see you the way I see you.”
The sunset is beginning to fade when he pauses, but Karl’s eyes are no less beautiful in its absence, and he hasn’t broken Sapnap’s gaze once and his thumb is rubbing reassuring circles against the back of Sapnap’s hand when he finally responds,
“And how do you see me?”
“Like the sun,” Sapnap answers without hesitation, “like the centre of everything, like the only thing worth talking about because nothing else could possibly be as important.”
Karl doesn’t say anything, but the teeth biting down on his lower lip release it and he could’ve sworn his eyes flick down to Sapnap’s lips, just for a moment. Instead of using words, Karl reaches for Sapnap’s unattended hand and links those as well, pulling them face to face and then staring down at their linked hands, at the ease with which their fingers link together without any concentration required because they’ve never needed to think too much about anything, it’s always just made sense. Sapnap and Karl. Karl and Sapnap.
“I really, really like you, Karl. So much that I didn’t even see it until today because it came so unconsciously that I never even thought to question it. And I know this is a lot, and I’m sorry for doing this so abruptly and nothing has to change if you don’t want it to because just being around you is already eno-“
“Sapnap,” Karl stops him, gently, and he manages to say Sapnap’s name with so much fondness behind it that Sapnap gets goosebumps, “I know.”
“You… what?” Sapnap’s brain malfunctions, and he hears his own heartbeat reverberate against his eardrums as he waits for Karl to continue.
“Sapnap, I’ve been trying to find the chance to tell you this for so many months, but it never felt right because you never acted on anything and I was convinced I was losing my marbles, that I was seeing something that wasn’t there. And then every time I met one of your friends the first thing they’d say is ‘oh, you’re the Karl that Sapnap talks so much about!’” Karl pauses, squeezing both of Sapnap’s hands when blush heats his cheeks, “I knew there had to be something there, but I didn’t want to pressure you by saying anything too soon if you weren’t ready and I didn’t mind waiting, because I’ve enjoyed every moment I’ve spent with you regardless of how badly I wanted more, how badly I wanted you to realize what I was pretty sure you also seemed to want.”
Sapnap shakes his head helplessly, a giddy smile slowly transforming his face as the weight of Karl’s words properly syncs in.
“You knew?” he asks, and Karl laughs breathily as he nods. “This entire time, and you never said anything?”
“I didn’t want to scare you or ruin everything if I was wrong! I was afraid of being selfish.” Karl shrugs with a sigh as he smiles back at Sapnap.
“I think… I think I want you to be selfish,” Sapnap says, raising his eyebrows at Karl in both an invitation and a question, and then Karl is kissing him.
And Sapnap was wrong, before, when he thought he’d never be able to enjoy the sunset the same way again, because the kaleidoscope of colours he sees at full brightness when their lips finally, finally connect is more radiant than anything the universe could ever put on display for all to see. This sunset is his, his and Karl’s, and he was wrong to be concerned at all with another ball of hydrogen disappearing beyond the horizon because his sun isn’t going anywhere.
After what Sapnap isn’t sure are seconds or minutes of moving their lips together in soft, tentative but steady kisses again and again until all of the air has been stolen from both of their lungs Karl pulls back completely to take a breath. Sapnap instinctually chases his lips, giggling when he realizes how needy he must seem and Karl squeezes his eyes shut as he lets out a similar euphoric giggle, “We should go home before it’s completely dark.”
Sapnap nods in affirmation, but releases one of Karl’s hands so he can cup the taller boy’s face and pull him in for another kiss, because he thinks he deserves a turn to be selfish.
Karl smiles against his lips and his now-vacant hand moves to rest on the small of Sapnap’s back, pulling him closer and licking at his lips in an unspoken question which Sapnap answers by humming in contentment and allowing him to deepen the kiss. His hand slips from Karl’s face down to the back of his neck, and he loses any sense of time and space once again.
Sapnap’s phone ringing in his pocket is jarring when it suddenly forces them to break apart, abruptly slicing through the atmospheric near-silence of the slow-moving creek beneath them and the cool evening air.
“Oh, it’s just Dream,” Sapnap says, checking the caller ID and hovering his thumb over the decline button, and Karl snorts and leans over to press ‘connect’ despite Sapnap’s confused expression.
“What’d you pick up for?” Sapnap complains, too dazed to have a filter and not caring if Dream can hear him.
“What?” Dream’s voice crackles through the phone, and Sapnap allows Karl to take the phone from him and watches him press the speaker button so Sapnap can hear, too,
“Hi Dream!” Karl says, completely nonchalant, and Dream’s confusion is immediate.
“Karl? Is everything… okay? Sapnap wasn’t answering my texts and I got worried because he usually replies immediately, why do you have his phone?”
“Everything is great, honestly,” Karl giggles, and Sapnap feels blush rising on his cheeks when Karl glances at him and winks. “Sorry, I decided to steal Sapnap’s attention for today, but I just wanted to let you know this is your I-told-you-so moment.”
Sapnap gapes at Karl in mock-infuriation, frantically reaching for the phone to protest that Dream absolutely does not to deserve to take credit for this, but Karl abuses their height difference to obnoxiously hold Sapnap’s phone above his head just barely out of reach, and Sapnap hears the exact moment it seems to click in Dream’s head.
“Hold on. No fucking way?” Dream laughs incredulously, and Sapnap loudly protests before accepting that it’s ultimately futile and giving in,
“Yes way, but that doesn’t mean I’m giving you any credit, okay?”
Dream bursts into full-on wheezy laughter before Sapnap can even finish the thought, “Oh my god, this is the best day of my life. I’m going to throw a party. I’m going to organize a petition to nationally recognize today as ‘Sapnap Stopped Being Oblivious Day’. I'm going to hang a billboard. Oh my god?”
“You are the worst,” Sapnap whines, and Karl has stopped holding the phone above his head now that it’s clear Sapnap isn’t going to hang up in protest.
“I’m so happy for you,” Dream says, suddenly being sincere, and Sapnap can hear him smiling, “all jokes aside, seriously. I wouldn’t have been so invested in you two getting together if I didn’t genuinely think you were perfect for each other.”
Sapnap glances at Karl, who smiles at him with so much love in his eyes as if to affirm Dream’s words that Sapnap suddenly feels emotional, blinking back what feels suspiciously like tears forming in the corner of his eyes and grabbing Karl’s hand that doesn’t hold his phone to squeeze it in a sudden need for physical contact.
“Jokes aside, I’m sorry I didn’t listen to you sooner. You were right, and you were looking out for me, and you know I love you,” Sapnap manages in earnest, before remembering how insufferable Dream is going to be now that he feels vindicated for correctly reading Sapnap’s feelings. “I’m still going to kick you in the shins every time you gloat about being right,” he adds for good measure.
Dream laughs and Sapnap can practically hear the eye-roll through the phone.
“Okay, you can go back to making out or whatever you were doing before now,” Dream chuckles, clearly proud of himself, and hangs up before either of them have a chance to say a word.
“We need to go home for real now,” Karl says, blushing, and he reaches over to slip Sapnap’s phone back into the front pocket of his hoodie and then attempts to pull him along by their conjoined hands.
“Wait!” Sapnap grabs Karl’s arm to stop him from pulling them, “We need to stop at the gas station, you’ve been away, we don’t have any Monster in the fridge.”
Karl just stares at him for a long moment, eyes dancing with amusement and fondness. “What?” Sapnap asks, when Karl still hasn’t said anything.
“I can’t believe you even thought about that, I hadn’t even thought about that,” Karl smiles, shaking his head.
The gas station is technically on their route home anyways, being located at the first intersection outside of campus, but it takes them far longer than it should to get there. Every so often Sapnap can’t resist the urge to pull Karl’s hand upward and place feather-light kisses on his knuckles, or Karl will suddenly decide that holding hands isn’t enough and link their arms together, which involves more proximity which makes it easier to simply lean over and steal another kiss from Sapnap’s lips, and somehow what should’ve been a ten minute walk winds up taking closer to thirty.
When they finally walk up to the gas station Sapnap glances through the window and recognizes the cashier as the blonde girl, close to his age and probably a student of the same college, who somehow always seems to be working when he stops by. She’s the same person Dream must’ve spoken to when he came here, giving him the fuel he needed for his ‘intervention’ and kick-starting the entire crisis that led Sapnap here.
He waves to her when they walk in, which she returns with a grin as Karl walks over to the last aisle to acquire his typical caffeinated beverage of choice. Sapnap walks over to the counter in the meantime, making sure to pay attention to the cashier’s nametag – Sylvee – feeling guilty that she clearly remembers him and even knows Karl’s name because of him while he’s never previously attempted to remember hers.
“Hey!” Sylvee greets him warmly when she notices he’s walked up, “How are you?”
“I’m good, thanks. Just here to pick up the usual,” and he nods in Karl’s direction as he walks up and puts a case of white Monster down on the counter.
“You must be the roommate?” Sylvee asks as she scans the product, raising her eyebrows at Sapnap seeking confirmation that she’s guessed correctly and smiling again when Karl nods in affirmation, laughing and shaking his head at Sapnap.
“I’m so sorry you apparently get told my life story every week,” Karl laughs, reaching for his wallet at the same time that Sapnap is already inserting his card into the machine. “What the hell?” Karl whines, but Sapnap only shakes his head.
“Don’t apologize!” Sylvee laughs, “it’s really never bothered me, I welcome any entertainment when I’m stuck here all night, honestly. And I think it’s sweet, he must be a great roommate.”
Sapnap glances up at Karl to see his reaction to the comment, and is incredibly grateful he didn’t miss the grin that immediately forms on his roommate’s face.
“Yeah,” Karl elbows Sapnap in the ribs affectionately as he pulls his card out of the machine and makes a smug face at the sound of the payment going through, “he’s a really great roommate.”
Sapnap rolls his eyes fondly, because even if they haven’t exactly had a chance to discuss any specifics, he knows, already, that Karl is saying the word roommate but seemingly meaning something else. He doesn’t say the word ‘boyfriend’, but the look in his eyes and the smile that lights up the entire dingy gas station after the sun has long-since gone down tells Sapnap that maybe next time he will.
“Sometimes it’s hard to believe we didn’t know each other before college, since we’re so inseparable now,” Karl catches Sapnap off guard when he continues talking to Sylvee, his voice light and content and it gives Sapnap butterflies in his stomach. “But I’m glad things worked out the way they did.”
And Sapnap notices, with a start, why his heartbeat has sped up so much. Karl is doing the thing, he’s rambling to a stranger about Sapnap like it’s the easiest thing in the world and there’s nothing else he’d rather talk about and Sapnap suddenly just might understand what the unplaceable emotion that had crossed Karl’s face in the coffee shop the other day had been.
Sapnap takes Karl’s hand underneath the counter, absentmindedly entangling their fingers so that he can squeeze tightly and steal Karl’s attention while he’s still talking to Sylvee. Karl’s eyes meet his in an instant, and Sapnap pities all of the stars in the night sky for having to compete with the brilliant radiance of the boy he can never imagine wanting to tear his eyes off of.
Sapnap thinks to himself, under the fluorescent lighting of a 24-hour gas station, that if the speed of his heartbeat and butterflies in his chest he feels looking at Karl aren’t love, he can’t comprehend what is. He wants, so desperately, to say the words aloud, the words he’s never been shy about saying to his friends but suddenly hold an entirely different meaning, but he stops himself.
They have all the time in the world ahead of them, Sapnap thinks, an endless amount of sunsets to exist beneath and make their own. He thinks of Karl spending months keeping his feelings to himself, waiting for Sapnap to catch up, and decides that anticipation isn’t a problem at all. He’s more than content to spend an infinite amount of sunsets falling in love with Karl, as long as it takes for them to be caught up to the same page and then begin chasing one another again.