, 13 tweets, 3 min read
My Authors
Read all threads
#sheith, accidental frottage

Late one night Keith and Shiro are sneaking back in from hover bike racing in the desert and then suddenly there’s the sound of a security guard.

Laughing Shiro grabs Keith’s hand and tugs him back down a hallway, then another. Just as they’re
going to get caught Shiro pulls open a storage closet and shuffles them inside. Keith’s trying not to laugh as they mush into the small space.

Eventually Shiro puts a hand over Keith’s mouth as the guards footsteps get closer.

And that—
Shiros suddenly aware of their closeness, how he’s pressed all the way against Keith. How Keith’s breathing hard from the excitement, how he shifts against Shiro.

Their eyes meet and it’s electric. Dangerous and strange. Shiro shifts his stance and they rub together.
Keith gasps behind the hand.

Shiro can’t help how he leans in then, putting his mouth to Keith’s ear. “Quiet,” he says. There’s a delicious muffled whine in response.

Heat piles quickly. They’re not... they don’t... but shiros heart is pounding from the run, from the bike,
from how Keith’s legs widen enough for Shiro to put a thigh between them and press in. Keith gives a staggered breath.

Then Keith’s hips move, half a grind. Something that could be written off as an accident.

But he’s hard.
Shiro breathes hard against Keith’s ear. He moves his thigh just enough to be accidental or intentional in return.

There’s a louder sound from Keith, Shiro keeps his hand over his mouth. It’s hard to know what this is, what it should be, if Shiro should stop it—
But fuck Keith’s hot against him. It’s dizzying, unsteadying. There’s a line still they haven’t crossed and it fills up the space. Every movement is weighted, accidental or intentional? Shiro doesn’t know, can’t think with how hard he is now in his pants, how much he /wants/.
It goes on for a while. Small transgressions. There’s no talking but heavy breathing and then panting. Shiro pretends he’s listening for the guard but he’s really just trying to catch the little sounds in Keith’s throat.

It’s excruciating. Not enough.
Neither of them seem able to cross the line so it’s just this tease. This winding that goes up and up. Shiro aches where he’s sure his cock is leaking in his pants. Keith makes another barely there kittenish sound and shiros cock throbs.
And then there’s... something else. Against him Keith’s body tightens, his breathing shallow. If Shiro removed his hand he’s /sure/ Keith would be moaning.

But he doesn’t because they aren’t—

There’s another shift against his thigh, Keith’s cock rutting against him,
it has to be—

Keith’s head bows back and knocks the wall hard, a wuff of breath blowing out his nose. He shifts against Shiro in rhythm, like he’s— he’s—

Shiro can’t even think it. It’s impossible.

But.
Then Keith goes boneless. Shiros other hand comes to Keith’s waist for support. He feels like he’s been struck in the head. Did Keith...?

He takes a deep breath against Keith’s neck. He tries to come up with anything to say or do but his head is empty. He’s so, so turned on.
When his hand falls off Keith’s mouth there’s a gasped sound, and then Keith tilting into Shiros ear.

“I think the coast is clear,” keith says, voice a low gravel whisper.

/Nothing is fucking clear,/ is all Shiro can think in response.

/end
Missing some Tweet in this thread? You can try to force a refresh.

Keep Current with Aphor

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!