Actions

Work Header

Sleepwalking Into You

Summary:

Lance has a rare ability: he can slip into other people’s dreams when he's asleep—he doesn’t know how or why, it just happens. Most of the time he stays quiet, observing from the sidelines. But one night, he stumbles into a familiar dream… one where he is the central focus.

Keith has been having vivid, intense dreams about Lance. Dreams he wakes up from flushed and angry, filled with emotion he doesn't understand. He doesn’t realize Lance is actually there, watching—until one night, their eyes meet inside the dream.

Notes:

(See the end of the work for notes.)

Work Text:

Lance never told anyone about his dreams.

Not because they were particularly dark, or even particularly strange—though they were, sometimes. But because they weren’t really his.

That was the problem.

He wasn’t dreaming. Not the way most people did. When Lance closed his eyes at night, he didn’t drift into the usual subconscious soup of memories and symbols and wish-fulfillment. No. Instead, he fell. Tumbled like a stone into other people’s minds, into their dreamscapes—into their fears, their fantasies, their aching secrets.

He was a dreamwalker.

Not by choice.

It started when he was ten. He’d wake up crying, convinced his parents were getting divorced—only to find out that his friend’s parents were, and she’d been crying about it at school. Or he’d jolt out of sleep with the memory of drowning, lungs burning and throat raw, only to hear from his cousin later that day that she’d had a nightmare and couldn’t shake the feeling of being trapped underwater.

At first, Lance thought he was just empathic. Sensitive. His mom always said he was an old soul, good at reading people. But that didn’t explain the details. The names. The bruises. The exact pattern of wallpaper in a house he’d never been inside.

Eventually, he stopped asking questions. He just accepted it.

Some people had sleep paralysis. Some had lucid dreams. Lance walked through other people’s.

But only while they were sleeping. Only when the universe deemed it “randomly appropriate.” And—most importantly—only as a ghost. Silent. Invisible. Not part of the dream. An observer. A passenger.

Until Keith.

The first time Lance stepped into his dream, he didn’t even recognize it as a dream at first. It felt… soft. Warm. It smelled like motor oil and the faint scent of cinnamon. The walls were dimly lit, and there was a couch in the middle of the space—a little worn, vaguely familiar, like something from a life Lance hadn’t lived.

Keith was on the couch, legs stretched out, face soft in a way Lance had never seen in real life. He was leaning back with a book in his lap, flipping through it absently. Every few seconds, he’d glance up and smile.

At Lance.

Lance froze.

He looked around wildly, expecting someone else to be standing behind him. But there was no one. Just the couch. The book. The warm lighting.

And Keith, smiling like Lance had been here all along.

“Come sit,” Keith said, gently. “You’re gonna get cold.”

Lance didn’t answer. Couldn’t. He knew better than to talk to dreamers. But something was wrong—this wasn’t normal. Keith wasn’t lucid. He didn’t seem aware it was a dream. But he also… wasn’t reacting like Lance was a stranger, either. In fact, he patted the spot beside him like this was routine.

Lance backed away.

He woke up in a sweat. Confused. Rattled. He brushed it off. One weird dream. Maybe the connection glitched. Maybe the dream just felt like it was about him.

But it happened again. And again.

Always Keith.

Always smiling. Always calling him over, touching his hand, brushing hair out of Lance’s eyes like he’d done it a thousand times before. Sometimes they were at the couch. Sometimes on a rooftop, feet dangling into stars. Sometimes floating underwater, watching jellyfish glow between them. In every dream, Keith looked at Lance like he mattered more than anything else in the world.

And in every dream, Lance realized the same thing, over and over again:

These weren’t just dreams.

These were fantasies.

Keith was dreaming about him.

And not just dreaming—longing. Holding his hand. Whispering confessions. Once, just last week, Keith had pulled him into a kiss so tender it felt like Lance’s chest was going to split open. He woke up that night with his heart pounding, lips tingling, and the worst ache in his gut he’d ever felt.

He didn’t know what to do with that.

In real life, Keith barely talked to him. They weren’t enemies, not anymore, but they weren’t close either. They had classes together. Ate in the same dining hall. Maybe exchanged a snarky comment here or there. But Lance had no idea—no idea—that Keith thought about him like this.

He felt like an intruder. A voyeur. But he couldn’t stop it. Every few nights, he ended up right back there. Right back inside Keith’s head.

And Keith never questioned it. Because in the dreams, they were already something. Already together.

That was the worst part.

In Keith’s dreams, Lance was his.

And god help him—Lance was starting to wish it were true.

He shouldn’t want this. Shouldn’t crave it. But every time Keith looked at him with that soft, unguarded gaze—eyes like stormclouds breaking—Lance felt something shift inside him. Like he was being seen for the first time. Not the class clown. Not the flirt. Just Lance.

And now, it’s getting worse.

Because last night… Keith said something new.

“I wish you were real.”

Lance hadn’t meant to stay that long. He hadn’t meant to listen. But Keith had sat on the rooftop, head tilted to the sky, and whispered it like a prayer. Like a wound.

“I wish you were real,” he said again, voice breaking. “Just once. Just for real.”

And Lance had almost answered. Had almost said something back—but he didn’t. He ran. Woke up. Sat bolt upright in bed with his heart in his throat and his mouth still open.

So now, Lance is left with a secret he never asked for.

Keith Kogane dreams about him. Over and over. Tenderly. Hopelessly. Like he’s in love with a ghost.

And Lance?

Lance has no idea what happens if Keith ever finds out that the ghost is real.

 

*****************

 

Lance stared at Keith’s face like it held the answer to the universe.

Not subtly.

Not with grace.

Not the way someone should look at their casual not-really-friend across a café table while sipping a lukewarm matcha latte.

He was staring, flat-out, chin in hand, elbow propped up like some dream-fueled philosopher, eyes locked onto Keith’s very real, very slightly confused expression.

Keith raised an eyebrow. “Are you good?”

Lance blinked. “Huh?”

“You’re staring.”

“What? No I’m not.” Lance leaned back a little too quickly, almost knocking over his drink. “I was just… lost in thought.”

“Your thoughts are apparently laser-focused on my face,” Keith muttered, not unkindly. He looked back down at the notebook between them, flipping a page with a little too much force.

Lance squinted at him again.

Does this guy really like me?

He didn’t look like someone harboring an aching, cinematic crush. There was no glowy soft lighting here. No romantic rooftop or jellyfish floating overhead. Just Keith, in an oversized hoodie, hair slightly frizzy from the humidity, looking like he’d rather be anywhere else but cramming for their shared history midterm.

And yet… Lance couldn’t stop replaying it. I wish you were real. The way Keith had said it. The look on his face. The softness, the ache.

He dreams about me, Lance thought wildly. I’ve kissed this man in his sleep. He’s held my hand and whispered secrets to me. And now he’s just… here. Eating a blueberry muffin like he didn’t emotionally destroy me twelve hours ago.

Keith glanced up again. His brows furrowed. “Seriously, dude. What’s going on?”

Lance jolted, caught. “Nothing! Sorry. You just, um.” He waved vaguely at Keith’s face. “You ever get that weird feeling like someone looks super familiar?”

Keith’s frown deepened. “We’ve had three classes together since last semester.”

“I mean like… more familiar. Like maybe in another life I was your dentist or something.”

Keith gave him a flat look. “Okay, now you’re just being weird.”

Lance groaned and covered his face with both hands. “I’m not trying to be weird, I promise.”

“Well, you’re succeeding anyway.” Keith sipped his drink without breaking eye contact. “Creep.”

Lance peeked at him through his fingers. “You wound me.”

Keith smirked, just a little. “Good.”

Lance slumped back in his seat, sighing dramatically as his brain continued spinning at a thousand miles an hour. He’d planned to use this study session as a chance to observe. To see if Dream Keith and Real Keith overlapped in any way. To maybe prove to himself that it was all just dream logic—no actual feelings involved. Maybe Keith just had a dumb crush and didn’t even know Lance in real life. Maybe it didn’t mean anything.

But then Keith did that little thing with his fingers—fidgeting with the corner of the page he wasn’t reading—and Lance’s heart stuttered. Because Dream Keith did that, too.

Oh god, he thought. He really might like me.

And worse—Lance wasn’t sure if he wanted to pretend he didn’t know anymore.

They spent the rest of the afternoon not studying.

Not really.

They flipped through their notes and quizzed each other half-heartedly, but it mostly dissolved into dumb jokes and back-and-forth banter. Lance kept drifting—mentally and physically—leaning across the table whenever Keith said something quietly funny, laughing a little too hard, watching Keith’s mouth move when he spoke and immediately scolding himself for it.

Keith didn’t seem to notice.

He picked at his muffin, rolled his sleeves up and down absently, grumbled when Lance corrected one of his answers in a whispery high-pitched voice. And every so often, he'd glance up, blink slowly, and give Lance a look that said what the hell is wrong with you today.

Lance pretended not to know.

They walked back to their dorm building together when the sun dipped low. The air was warm, the sky a soft pink, and the silence between them was almost comfortable. Almost.

Keith tugged his hoodie tighter and shoved his hands into his pockets. “Same time tomorrow?”

Lance nodded, heart thudding. “Sure. If I survive the existential dread tonight.”

Keith gave him a quick side glance. “Don’t spiral too hard.”

Lance snorted. Too late.

Keith didn’t say goodbye. He never did. Just a little nod and the soft sound of his footsteps disappearing down the hall.

Lance stood in the doorway of his room for a second too long, staring into the dim hallway where Keith had just been.

Then he went inside.

 

************

 

The dream caught him fast.

No drifting this time. No fuzzy transition. Just—

Keith.

They were sitting side by side on a train. A silent, gently rocking kind of place, with blurred windows and no real destination. The lights were dim. The hum of movement underneath them was constant. Steady. Warm.

Keith was beside him, shoulder pressed close, not saying a word.

He looked different in this version. Younger? No—softer. Less guarded. Like he’d just come back from a long day and found comfort in the person next to him. His head was tilted against the seat, face turned toward Lance, eyes barely open.

“You made it,” Keith murmured, voice low, like he didn’t want to scare the moment away.

Lance’s breath caught in his throat.

He was so tempted to answer this time. He almost did.

But he didn’t.

He just watched.

Keith leaned his head gently onto Lance’s shoulder. Not dramatically. Not with any kind of urgency. Just… familiar. Casual. Like they’d done this a thousand times. Like this was routine.

Lance swallowed thickly. His hands twitched in his lap.

Keith shifted closer. “You’re always here when I need you.”

The lights flickered. Outside the window, stars passed by in impossible clusters, like the train was gliding through space.

Lance couldn’t breathe.

He wanted to touch him. To say something. But he couldn’t break the rules. He couldn’t interfere.

Keith exhaled, long and quiet.

“I think I’d lose it if you didn't show up.”

Lance’s heart cracked in half.

He was wide awake inside someone else’s head, and somehow—somehow—he was the one dreaming of more.

Lance realized it was a date about halfway through the dream.

It wasn’t the kind with candles and fancy outfits, not the kind he’d imagined being swept off his feet in. It was… simple. Thoughtful. Real.

He and Keith were walking through a quiet farmers’ market, shoulder to shoulder, half the stalls faded and nonspecific like dream fragments. But Keith’s hand was wrapped around his like it belonged there—steady, warm, grounding.

He didn’t speak much, just gave small hums of approval when Lance pointed out things—flowers he liked, handmade bracelets, a weirdly shaped tomato. Keith bought him a jar of honey “because you always drink your tea too bitter.” Lance hadn’t even known that Keith noticed how he took his tea.

Dream Keith noticed everything.

They sat on a bench beneath a tree that glowed with little paper lanterns, dream-magic floating lazily in the air. Keith had a tote bag filled with local honey, two muffins, a book Lance had mentioned once in passing. His arm rested across the back of the bench, fingers brushing the top of Lance’s shoulder absentmindedly.

“You always pick the prettiest places,” Keith said softly, looking around at the glowing trees, at Lance. “You make everything feel… safe.”

Lance couldn’t breathe.

His heart was doing that thing again—cracking open, slowly, like Keith had found a door no one else knew how to open and just… walked through.

Dream Keith turned toward him, full of quiet affection.

“You talk like everything matters,” he said. “Like every dumb little flower or cloud or sparkle in the water is something worth looking at. I like that.”

Lance stared, wide-eyed, his throat tight.

Keith smiled gently, his eyes crinkling at the corners. “You're beautiful.”

Lance wanted to cry. He wanted to scream. He wanted to reach over and grab Keith by the hoodie and shake him and shout Then why don’t you ever look at me like this when you’re awake?!

But he didn’t.

Because Dream Keith—sweet, open, in love Dream Keith—reached forward and tucked a loose curl behind Lance’s ear like it was the most natural thing in the world. Like he’d done it a hundred times.

“Stay,” he whispered.

And Lance did.

He didn’t care if it broke a rule.

He leaned in, just slightly, and let his head rest on Keith’s shoulder.

Keith leaned back, content.

They sat there in the soft glow of the dream for what felt like hours. Keith holding his hand, pressing a kiss to his hair, letting him laugh, letting him exist like he was something delicate and precious. Like Lance was the best part of the day.

Lance knew he was going to wake up ruined.

And he did.

Lance jolted upright in bed at 3:27 a.m., sweaty, breathless, hand still curled like it was holding Keith’s.

He stared at the ceiling, heart pounding in his chest, and whispered into the dark:

“Does he really feel like that?”

Because if Keith did… if even half of it was real…

Then Lance was in more trouble than he thought.

Lance didn’t sleep.

Not really.

He lay in the dark, eyes wide open, heart still thrumming like the echo of Keith’s soft touch in the dream. The room was silent except for the faint hum of the city outside his window, but inside his chest, a storm was raging.

He watched the clock tick forward—3:27… 3:28… 3:29…—like it was some cruel countdown. Every minute felt like a lifetime. Every thought about Keith and the way he’d whispered “Stay” sliced through the fog of sleep, shattering it completely.

Eventually, when the sky started to lighten with the faintest hints of dawn, Lance rolled out of bed, muscles stiff but mind racing.

He moved slowly, deliberately.

He wasn’t in a rush.

Today mattered.

He pulled on his favorite shirt—the one that fit just right, not too tight but not sloppy. He caught his reflection in the mirror and raised a brow, running fingers carefully through his curls, coaxing them into shape, smoothing stray strands.

Because if Keith was really going to see him today, well… Lance wanted to look good.

He spent extra time in front of the mirror than usual, curling just the right amount, lining his eyes with a touch of subtle shadow, and even applying a hint of lip balm.

Maybe, he thought, just maybe Keith would notice.

When he finally stepped outside, the air was crisp and fresh, the streets quiet for this early hour.

Lance hummed a soft tune as he walked, earbuds in, backpack slung over one shoulder.

Then, out of nowhere, the unmistakable roar of a motorbike sliced through the morning calm.

He barely had time to blink before the bike slowed and pulled up beside him.

The helmet lifted, and there he was—Keith.

The wind tousled Keith’s dark hair even more wildly than usual, the early sunlight catching the sharp angles of his jaw and that ever-serious expression.

Keith’s eyes flicked over Lance with a flicker of something unreadable—half surprise, half something like acknowledgment.

“Running late,” Keith said simply, voice low, almost casual.

Lance swallowed, heart pounding.

“Maybe,” he replied, trying to sound cool but feeling anything but.

Keith smirked—just a little—and revved the engine, waiting.

Lance grabbed his backpack tighter, then slid onto the bike behind Keith, fingers brushing lightly against his side.

As they sped off down the road, Lance couldn’t stop the smile from creeping across his face.

Maybe today was going to be different.

 

*****************

 

The door clicked shut behind him with a hollow finality.

Lance stood in the middle of his room, backpack dangling from one shoulder, shoes half-kicked off, and all he could think was: Nothing changed.

He’d looked good today. He knew he did. His curls had behaved. His outfit had been on point. And he’d sat next to Keith in two separate classes. Two.

But had Keith said anything different?

Nope.

He’d looked.

God, had he looked. Spent nearly twenty minutes during their lab partner work just glancing at Lance’s lips like they were a problem he couldn’t solve. Like Lance was going to lean over and kiss him right there between the bunsen burners and the overachieving biology majors.

But he hadn’t said anything. Not one meaningful word. No smirk. No compliment. Just… shy, flustered glances, and the same goddamn silence.

Lance let his backpack drop with a thud. He face-planted onto his bed with a dramatic groan.

“Uuuughghhhhhhghhhhhh,” he whined into his pillow, dragging his palms down his face. “Why is he like this? Why am I like this? What are we doing?”

He rolled over onto his back, arm flopped over his eyes, mentally replaying the way Keith’s eyes had flicked to his mouth over and over during lunch like he didn’t even realize he was doing it. Like it was some kind of reflex.

Lance had tried to meet his eyes, even raised an eyebrow in challenge. Keith had blushed and looked away so fast, it almost gave Lance whiplash.

The worst part?

Lance liked it.

He liked that Keith got tongue-tied around him, that he stared like Lance was some mystery he couldn’t solve. But he also wanted—needed—more. Something real. Something solid.

Something like the dream.

He sighed again, curling onto his side. The room was dim now. Golden hour fading into dusk. He could already feel sleep tugging at the edges of his vision, even though part of him wanted to stay awake forever just to avoid seeing Keith in his dreams again.

Because he would.

He always did.

Keith was dreaming again.

He could always tell—there was a softness to the light, a quiet to the air, a sense that the world was holding its breath just for him. And right now, that world was narrowed down to a hallway drenched in golden afternoon sun and Lance standing at the lockers, smiling at something on his phone.

Keith didn’t even try to fight it this time.

He let himself walk closer. Let his gaze sweep over Lance slowly—intentionally—hungrily. He looked just like he had today: soft curls tucked perfectly into place, sleeves rolled up to reveal his forearms, a faint shimmer of highlighter catching the light just above his cheekbones. He looked unreal.

And when Lance glanced up at him, grinning that stupidly beautiful grin, Keith’s breath hitched.

He looked so smug. So smug about looking good. Like he knew what he was doing to Keith. Like he wanted him to snap.

And in the dream, Keith did.

One step forward. Then two. His hand came up and pressed flat to the locker just beside Lance’s head.

Lance blinked, startled. “Uh—Keith?”

Keith didn’t answer.

He just leaned in.

Caged Lance in with his arms, body inches away but not touching, eyes dropping from Lance’s lips to his collarbones and back again.

Lance’s voice came out barely above a whisper. “What are you doing?”

“Losing it,” Keith muttered, and then—he kissed him.

Hard.

No hesitation. No awkward lead-up. Just pure, explosive tension crashing down all at once.

Lance gasped into it, stunned—but he didn’t pull away. His hands found Keith’s shoulders, gripping hard like he didn’t know what to do with himself. Keith kissed him again, rougher this time, like he couldn’t stop, like he needed more and more and more—

“You have no idea,” Keith growled into his mouth between kisses, “how hard it is to sit across from you every day and not do this.”

Lance’s breath caught. His body arched forward, pressing into Keith like he wanted to crawl inside his skin.

“God,” Keith groaned. “You don’t even know what you’re doing to me.”

His hands slid to Lance’s hips, pinning him against the lockers like it was the only thing keeping him grounded. Lance’s back arched. His head tilted. Their mouths met again—hotter, sloppier, hungrier.

“You wore that stupid tight shirt today,” Keith whispered against Lance’s throat. “Like you wanted me to lose my mind.”

Lance whimpered—whimpered—and Keith kissed him again like that sound had short-circuited his brain.

Every inch of him felt wired, aching, obsessed. He wanted to memorize every sound Lance made, every way his body moved when Keith kissed him like this. He wanted to hear Lance beg. He wanted to take his time. He wanted to never wake up.

And then—

Keith jolted awake.

He was sweating.

Hard.

His sheets twisted around his legs, heart hammering in his chest like he’d just run five miles. The taste of Lance’s lips still lingered on his tongue, imaginary and maddening.

He dropped back into his pillows and groaned into his arm, his voice muffled and desperate.

“Fuck.”

That was the third dream this week.

And every time Lance got hotter.

Keith didn’t sleep after that.

He tried.

He tossed, turned, buried his face in his pillow, stared at the ceiling so long the texture burned into his brain—but all he could see was Lance.

Lance biting his lip.

Lance arching under his hands.

Lance whimpering.

“Jesus Christ,” Keith muttered as he paced his room. His skin was too hot, his hoodie felt suffocating, and every time he closed his eyes he saw Lance against the lockers.

By the time morning came, he looked like a ghost—dark circles under his eyes, hair still a mess, hoodie thrown on over a shirt he didn’t even remember picking.

And when he pulled up to campus on his bike, the second he spotted Lance standing outside the building, all sunshine and smirking in a soft blue tee, Keith seriously considered turning around and driving straight into a lake.

But no. He had to be normal.

Be cool, he told himself. Just say hey. Don’t think about the dream. Don’t picture his mouth. Don’t—

“Keith!” Lance grinned when he saw him, lifting one hand in a lazy wave. “You're early. That's new.”

Keith blinked. “I—I’m not. I mean. Not really. You’re just… late.”

Lance raised a brow, amused. “Am I?”

Keith immediately looked away. “I don’t know. Whatever.”

Lance chuckled and leaned against the railing next to him. “You're acting weird.”

Keith’s jaw tensed. “I’m not.”

“You totally are. You keep looking at the ground like it personally insulted you.”

“I’m fine,” Keith bit out, arms crossing tight over his chest. But even as he said it, he risked a glance at Lance—and regretted it instantly.

The curls were even softer today. His smile even warmer. His lips—

Nope. No. Abort.

Keith looked away so fast it was borderline violent.

Lance tilted his head, a glimmer of something in his eyes. “...You okay?”

“Fine.”

“You sure? You’re kinda... twitchy.”

Keith flushed. Stop talking. Please stop talking. “I'm always like this.”

“No you're not,” Lance said, stepping just a little closer, like he was trying to get a better look at Keith's face. “You look like you saw a ghost.”

Nope. Not a ghost. Just imagined pinning you to a locker and making out with you so hard the walls shook.

Keith stared straight ahead and said absolutely nothing.

Lance laughed under his breath, the sound light and teasing. “You’re such a weirdo today.”

Then, as if it wasn’t the final blow, he reached up and lightly ruffled Keith’s hair. “Cute though.”

Keith nearly combusted on the spot.

Lance knew he shouldn’t tease Keith.

He knew.

It wasn’t fair. Keith was shy. Awkward. Practically allergic to compliments. And from the way he was acting this morning—barely making eye contact, mumbling every other word, clutching the strap of his bag like it owed him money—Lance knew he must’ve short-circuited the poor guy somehow.

But… god.

There was just something so satisfying about watching Keith Kogane, local mysterious broody badass, fold in real time because Lance ruffled his hair and called him cute.

Lance glanced at him now, still walking beside him down the hall, still tense like a piece of string pulled too tight.

“You know,” Lance said casually, “you’re really not subtle when you’re flustered.”

Keith shot him a look—horrified, defensive. “I’m not flustered.”

“Mmhm,” Lance hummed. “That’s why you’ve been staring at the floor for the past ten minutes like it’s got the answers to the universe.”

“I’m just thinking.”

“About what?”

Keith’s lips twitched. “...Nothing.”

Lance’s mouth, probably.

Lance bit the inside of his cheek to keep from smiling too hard. He really was terrible. He shouldn’t be this smug about making someone anxious. But Keith wasn’t like other people. Keith wasn’t the kind of guy who got flustered easily. He was quiet but confident. Tough. Always calm. Cool.

And right now?

He looked like a guy trying to keep his cool while drowning in pure, chaotic panic.

It was kind of adorable.

“Okay,” Lance said, half-laughing now. “You’re clearly going through it.”

Keith groaned softly and rubbed the back of his neck. “Can we not talk about this?”

“You started it!”

“I said literally nothing!”

“Exactly. That’s how I knew.” Lance smirked and poked him in the arm. “C’mon, I think I deserve to know what’s got you all—” he waved a hand vaguely, “—weird and twitchy and blushing like some kind of anime schoolgirl.”

Keith scowled at him, but it lacked heat. “You’re the worst.”

“You like it,” Lance shot back, and this time—this time—Keith tripped over his own feet.

Just a little.

Just a tiny stumble.

But Lance saw it.

And oh, he grinned.

Oh no.

He liked this way too much.

 

*******************

 

Keith never cared about Valentine’s Day.

He used to think it was a dumb holiday. Loud. Overhyped. Pointless.

Just an excuse for people to show off, or for stores to sell oversized teddy bears and overpriced chocolates. He never celebrated it. Never even thought about it.

But this year?

This year it had a date circled in red ink on his calendar.

This year, he was counting down the days.

This year… he had Lance.

And he had a plan.

Because if he didn’t do it soon—if he didn’t say something—he was going to explode. He was already losing sleep. Already dreaming about Lance, already messing up basic conversations because he couldn't stop thinking about the way Lance’s curls framed his face, or how his mouth moved when he laughed, or the way he looked when he leaned in a little too close and said something like “You like it.”

God. Keith was doomed.

But he wasn’t stupid. Lance was teasing him. He had to know. Right? No one could be that oblivious. Right?

Still… there was always the risk. And the last thing Keith wanted was to mess things up between them. Lance was one of the only people he could truly be himself around—even if "himself" was a fumbling, tongue-tied disaster most of the time.

So he was going to wait.

Just a little longer.

Valentine’s Day was next week. And that gave him time. Time to figure out what to say. Time to not screw this up.

He was going to do it right. No half-assed flirty comments. No awkward stammering in the middle of lunch. No texts or notes or vague maybes.

He was going to look Lance in the eye, and say it clearly.

I like you.

Just that.

Simple. Direct. Honest.

And maybe—maybe—Lance would smile and say he liked him back. Maybe he'd even been waiting for it.

Keith closed his journal and stared at the red circle on the calendar again.

One more week.

Keith’s dreams had been getting more vivid lately.

Not just the usual flickers of Lance’s smile or the way he leaned on Keith’s arm when he was sleepy. Not just day-replays of their walks home or those accidental moments when their hands brushed too long and neither of them pulled away.

No—tonight, it was more than that.

He knew it was a dream. Somewhere deep down, he knew. But it felt real.

They were standing under the canopy in the school courtyard. Late afternoon light made Lance’s curls glow golden, and Keith’s palms were sweating like hell. His heart thudded unevenly in his chest, loud and nervous.

Lance was watching him with that look. The one that made Keith forget how to speak.

Gentle. Curious. Soft around the edges.

“I have something to tell you,” Keith heard himself say. His voice was low, like he was scared someone might overhear, even though the place was empty.

Lance tilted his head, the way he always did when he was pretending not to be hopeful. “Yeah?”

Keith took a shaky breath.

“I like you,” he said. “A lot. I—God. I don’t know how to say it without sounding stupid, but I think about you all the time. I know you probably already knew, but…”

He trailed off.

Lance didn’t say anything.

He was just… looking at him. Like he was seeing Keith for the very first time.

The silence stretched for what felt like forever.

Then, finally, dream-Lance stepped forward and took Keith’s hand.

“You’re not stupid,” he whispered. “And I already knew.”

Keith’s breath caught.

And when Lance leaned in—when their foreheads touched, when Keith’s whole world narrowed to the curve of Lance’s mouth and the way his thumb brushed gently over Keith’s knuckles—he felt like maybe, just maybe, he could breathe again.

He kissed him.

Just once. Soft. Careful.

But it was everything.

Everything Keith wanted. Everything he was too scared to reach for while he was awake.

When he jolted upright in bed, his heart was still pounding. The sheets twisted around his legs like a trap, his shirt damp with sweat. It was barely 3 AM.

But he couldn’t sleep again.

Not after that.

Tomorrow was Valentine’s Day.

And that version of him—the brave one from the dream—was the one he had to be.

Keith had been pacing outside Lance’s classroom for ten full minutes.

He could feel the stares. The whispers. Probably people wondering what the quiet, broody guy was doing standing there with a tight grip on a paper-wrapped box and nerves radiating off him like steam.

But he couldn’t help it.

He was about to do the scariest thing he’s ever done in his life.

He spotted Lance before the bell even finished ringing.

The second Lance stepped into the hallway, he lit up like he always did—laughing at something Pidge said, elbowing Hunk in the ribs. His curls bounced as he moved, his smile easy and warm, and Keith’s heart squeezed in his chest like it was caught in a fist.

This was it.

He moved.

“Hey,” Keith said, catching Lance’s eye.

Lance blinked, surprised, but walked over without hesitation. “Keith? You okay?”

“Can we talk?” Keith asked. “On the roof?”

Lance raised a brow. “...Are you gonna murder me up there or something?”

Keith didn’t smile. He couldn’t. His chest felt too tight. “Just—please.”

Lance searched his face for a moment. Whatever he saw there must’ve told him this wasn’t a joke, because he nodded. “Okay. Lead the way.”

The wind was gentle on the rooftop. Warm for February, with a faint breeze that ruffled Keith’s hair as he tried not to explode from nerves.

Lance sat on the ledge, legs swinging. “Alright, mysterious rooftop boy. What’s going on?”

Keith didn’t answer right away. He just pulled the little box from his jacket pocket and held it out.

Lance blinked. “...Is this for me?”

Keith gave a tiny nod.

“Dude, what is this?” Lance teased gently, fingers already unwrapping the neat paper. “If this is like… a rock or something, I’m gonna throw you off the roof.”

Keith didn’t respond. He couldn’t. His throat was dry.

Lance lifted the lid.

Inside was a simple silver chain—and on it, a tiny, delicate bunny-shaped pendant. Small, round-bodied, with long ears and a quiet charm.

Lance stared at it. His mouth fell open just slightly.

“I—” Keith cleared his throat. “I saw it weeks ago. It… reminded me of you.”

Lance looked up slowly. “A bunny.”

Keith’s ears went red. “You always scrunch your nose when you laugh, and you’re warm and kind and I…”

He trailed off. He wanted to die.

But then Lance laughed.

Not at him.

It was a stunned, breathless sound. “You got me a bunny necklace.”

“I like you,” Keith blurted. “Like, really like you. And I know this is super weird, and you don’t have to say anything, but I needed to do something because if I didn’t say it today I was gonna lose my mind—”

Lance set the box aside and stood up in front of him.

Keith froze.

Lance stared at him.

Then—softly, gently—he reached out and brushed Keith’s hair out of his face.

“You really are a disaster,” he said, voice warm. “You know that?”

Keith opened his mouth to apologize—but then Lance leaned in and hugged him.

Tight.

Like he’d been waiting forever.

“You really aren't subtle at all, mullet.” Lance whispered against his ear.

Lance didn’t pull away from the hug.

Not right away.

He held Keith there for a long second, cheek pressed to the side of his neck, arms wrapped around him like something precious. Keith wasn’t even sure if he was breathing. His hands hovered uncertainly at Lance’s waist before finally, finally, resting there like he didn’t want to let go either.

And then Lance leaned back—just enough to look him in the eye.

“So…” Lance said quietly, his smile tilting. “You like me.”

Keith nodded, eyes wide.

“And you got me a bunny necklace.”

Another nod.

Lance bit his lip, trying not to grin too hard. “And you dragged me up to the roof for this whole dramatic anime moment.”

Keith groaned softly. “Lance—”

Before he could finish, Lance kissed him.

It was slow and gentle at first. Curious. Their lips pressed together in an unsure, careful touch—like they weren’t quite sure it was real yet.

Then Keith melted.

Because Lance’s hand slid up into his hair. And Keith stepped forward without thinking, deepening the kiss. He’d never kissed anyone like this. He’d never wanted to. But now he was leaning in like he needed it, like he’d been holding back for so long that his whole body was trying to make up for lost time.

Lance sighed into his mouth. “Mm… you taste like cinnamon.”

Keith blinked. “Wait—seriously?”

Lance laughed. “Yeah, like those little red candies.”

Keith looked vaguely horrified. “God.”

But Lance just leaned forward again and kissed him once more, soft and warm, like it was the most natural thing in the world. Like this was normal. Like they’d been doing this forever.

Then—gently—Lance stepped back and picked up the box.

“So,” he said, holding it out, “you gonna put it on me or what?”

Keith’s ears flushed immediately. “Y-Yeah. Yeah.”

He took the necklace with shaky fingers, stepping behind Lance. Lance pulled his curls to the side, exposing the back of his neck—and Keith swore his heart skipped a beat at the sight.

His fingers brushed against Lance’s skin as he fastened the chain. He tried to be careful. Precise. But his hands were still trembling.

“There,” Keith mumbled, stepping back.

Lance turned, letting the pendant settle against his chest. “How’s it look?”

Keith looked at him like he was the only thing in the world.

“…Perfect.”

Lance flushed.

And then he smirked.

“So… does this mean I can call you my boyfriend now, or do I have to drag you up here again next week for another confession?”

Keith blinked. Then looked away, red as a cherry.

“You can call me whatever you want.”

Lance laughed—joyful and bright.

“Careful,” he said, tugging Keith in by the front of his jacket. “I will take that as a challenge.”

It had been a week since the rooftop.

Since the kiss.

Since the bunny necklace had become a permanent fixture against Lance’s chest.

They still hadn’t told anyone, not really. Just little things—how Keith lingered near Lance’s locker a little too long, how Lance had started sneaking his arm through Keith’s whenever they walked together. Soft, slow steps into something real.

But the biggest difference?

Lance hadn’t dreamwalked once since that day.

He’d noticed it almost immediately. Every night, he’d close his eyes expecting that familiar shift—that quiet, low pull into Keith’s world. But nothing ever came. Just regular dreams. Fuzzy, meaningless, fading by morning.

Lance looked up at the sky for a long moment.

He missed it—just a little. The way dream-Keith looked at him like he was the only person that mattered. The quiet, surreal intimacy of watching someone’s heart play out in real time.

But then he turned his head and saw Keith sitting beside him in the sun, hoodie sleeves pushed up, scowling at a red gummy like it had personally wronged him.

And Lance smiled.

“Yeah,” he said softly to himself. “I’m okay with it.”

Because dreams were sweet.

But this? This was real.

Keith was here. Tangible. Kissable. A little awkward. A lot devoted. And Lance wouldn’t trade that for anything—not even the most perfect dream.

“So,” he added, leaning back on his elbows, “Staring at my ass, huh?.”

Keith flushed immediately. “Lance—”

“Oh come on. Don't think I missed the way you stared at me all through homeroom. Did I look that good in the jeans today?”

Keith groaned and buried his face in Lance’s shoulder. “You’re the worst.”

“And yet,” Lance said, grinning as he leaned his head against Keith’s, “you’re still here.”

“…Unfortunately.”

Lance hummed.

And for the first time in a while, he didn’t miss the dreams.

Because real life?

Was even better.

Notes:

tried something new