“Lock the door behind you. We’re the last ones here.”
Her name is Tessa. She became my hot new female roommate exactly sixteen days ago when the Craigslist ad I posted got one reply from a woman who showed up with two duffel bags, a crooked smile, and green eyes that looked right through the polite version of me. We are standing in the empty gym at 10:47 p.m. on a Thursday that already felt too long. The overhead fluorescents buzz like dying insects. Rain taps against the high windows. The front desk is dark. I am the assistant manager who stayed late to close up, and she is the roommate I never should have let move in.
The apartment smells like her vanilla body spray and whatever cheap takeout she heats up at midnight. I know this because I wake up to the clink of her spoon in a cereal bowl at 2 a.m. most nights. She sleeps in old tank tops and tiny shorts that ride up when she stretches. She leaves her bras on the bathroom doorknob like they are flags of surrender. I pretend not to notice. I pretend a lot of things.
Before Tessa, my life was quiet. I worked the gym counter forty hours a week, came home to leftover roasted chicken from the grocery store deli, watched Netflix with the volume low so I wouldn’t disturb imaginary neighbors. The place had been mine for two years. Then the building raised rent and I needed someone to split it. She answered the ad. She paid first and last month’s rent in cash. She smiled like she already knew how this would end.
Tonight she walked into the gym ten minutes before closing wearing a black sports bra that barely contained her and loose gray shorts that looked two sizes too big. Her dark auburn hair was pulled into a messy ponytail that kept slipping strands across her freckled shoulders. She carried a water bottle and a towel like she belonged here at this hour. Like it was normal.
“Hey you,” she said when she saw me at the front desk. “Thought I’d squeeze in a quick session before you shut the place down. That cool?”
I nodded because what else could I do. My mouth went dry. Her stomach was bare, the kind of toned line that comes from actual effort, not just genetics. A small tattoo of a tiny constellation sat just above her left hip bone. I had seen it once when she walked from the shower to her room with only a towel. I looked away then too.
She went to the treadmill in the back corner. I tried to finish the closing checklist. Count the cash drawer. Wipe down the counters. Lock the supply closet. Every few minutes I glanced over. She ran with her head down, earbuds in, sweat starting to glisten on her collarbone. The sports bra clung tighter as she warmed up. I told myself it was just a roommate using the gym I worked at. No big deal.
At 10:30 the last member left. I dimmed the lights like always. The rain picked up outside. Thunder rumbled somewhere far away. I walked the floor to make sure everything was empty and found her still on the treadmill, now doing a cooldown walk. She saw me coming and slowed it to a stop.
“You closing soon?” she asked, pulling one earbud out. Her voice had that low, slightly raspy quality that made everything she said sound like a secret.
“Yeah. Two minutes. You good?”
She stepped off, grabbed her towel, and wiped her face. Then she looked at me directly. Those green eyes again. “Mind if I use the shower here? My hair’s gross and it’s pouring outside. I don’t want to track water through the apartment.”
I should have said no. The gym showers are for members only during hours. But she was already my roommate. And the rain was loud. And my brain wasn’t working right.
“Sure. Just be quick. I’ll lock up after.”
She gave me that crooked smile and disappeared into the women’s locker room. I finished the checklist with shaking hands. The place felt too big and too small at the same time. I turned off the last bank of lights except for the emergency ones that cast everything in a dim orange glow. Then I heard the shower running.
I sat on the bench near the front desk and waited. Five minutes passed. Ten. The shower kept going. I told myself I should just leave the key and go. Instead I walked toward the locker room door like an idiot.
That’s when she stepped out.
She wore nothing but one of the gym’s white towels wrapped low around her hips. Her skin was still damp. Water beaded on her shoulders and ran down between her breasts. The towel barely covered anything. Her hair was wet and dark, plastered to her neck. She looked at me and didn’t flinch.
“Oops,” she said softly. “I left my clothes in my bag out here. Total accident.”
She didn’t sound sorry. Her signature gesture, that little head tilt she does when she’s pretending to be innocent, was on full display. I stood there frozen, heart hammering against my ribs. The towel slipped a fraction of an inch. I saw the curve where her thigh met her hip.
“Tessa…” I managed.
“Don’t say a word yet,” she whispered. She took one step closer. The air between us felt charged, like the storm outside had moved indoors. “I’ve seen how you look at me in the apartment. The way you turn away when I walk around in my sleep shorts. I know it’s not one-sided.”
My hands were sweating. I wiped them on my gym pants. She was right in front of me now. The smell of the gym’s generic body wash mixed with her own scent, something warm and sweet. I could see the faint scar on her left collarbone from some childhood accident she’d mentioned once over cheap wine.
I should have pulled away. Told her this was a bad idea. That we had to live together. That the landlord had rules. That I wasn’t the kind of guy who hooks up with roommates. Instead I just stood there, breathing her in, feeling the heat coming off her damp skin.
She reached out and touched my wrist. Just two fingers. Light. Testing.
“You’re shaking,” she observed. Not mocking. Gentle. “Is this okay?”
I swallowed hard. My voice came out rough. “I don’t know.”
She smiled, small and real. “Then tell me to stop and I will. Right now.”
I didn’t tell her to stop.
She took that as permission. Her fingers slid up my arm, over my sleeve, until her palm rested on my shoulder. The towel stayed in place only because she held it with her other hand. Rain hammered the roof. The emergency lights hummed.
“I’ve been thinking about this since I moved my stuff into that tiny room,” she confessed. “You leave your door cracked sometimes at night. I hear you breathing. I wonder what you’re thinking about.”
My face burned. I had been thinking about her. More than I wanted to admit even to myself. The way she laughed at her own bad jokes. The way she danced while doing dishes. The way her body moved when she thought no one was watching.
She leaned in until her forehead almost touched mine. “I didn’t really forget my clothes. I wanted you to see me like this. I wanted to stop pretending we’re just splitting rent.”
Her breath was warm against my mouth. I could taste the faint mint from her gum. My hands hovered at my sides, unsure where to land. She solved that by taking one of them and placing it on her bare waist, right above the towel.
Her skin was still hot from the shower. Smooth. I felt the slight tremor in her muscles, like she was nervous too. That helped. Knowing I wasn’t the only one.
“Touch me,” she said quietly. “If you want to.”
I did. My thumb traced the edge of the towel. She let out a small sound, almost a sigh. Then she kissed me.
It wasn’t gentle. It was months of stolen glances and late-night hallway encounters compressed into one moment. Her mouth was soft but demanding. She tasted like the rain outside and the spearmint gum. Her wet hair brushed my cheek. I kissed her back like a man who’d been starving for it.
When we broke apart she was breathing hard. The towel had slipped lower. One breast was almost exposed. I could see the tight peak of her nipple in the dim light.
“Not here,” I said, even though every part of me wanted to take her right against the locker room wall. “Cameras. Even if they’re off.”
She nodded, eyes glassy. “Then lock the front door like I told you. Make sure no one can walk in.”
I did. My hands shook so badly I almost dropped the keys. The deadbolt clicked loud in the empty building. When I turned back she was standing by the bench, towel still precariously in place, watching me with that intense green stare.
“Come here,” she said.
I went.
This is where the teasing really started. She didn’t drop the towel right away. Instead she backed up until her legs hit the weight bench and sat down, pulling me with her. I stood between her knees. She looked up at me and ran her hands up my thighs, stopping just short of where I wanted them.
“You’ve been hard since I walked in, haven’t you?” she asked. Not cruel. Curious. A little teasing.
I nodded. No point lying now.
She smiled and pressed her palm against the front of my pants. The pressure made me groan. “Good. I like knowing I did that.”
She rubbed me slowly through the fabric while her other hand tugged at my shirt. I helped her pull it off. The cool air hit my skin. She leaned forward and kissed my stomach, just above my belly button. Her tongue traced a small circle. I threaded my fingers through her damp hair without thinking.
She looked up again. “Tell me what you want.”
“You,” I said. It came out hoarse. “All of you.”
She stood up then. The towel finally fell. Her body was incredible in the low light. Full breasts with pale pink nipples already hard. The curve of her waist flaring to strong hips. A neatly trimmed patch of dark hair between her legs. She had a small birthmark on her inner right thigh. I wanted to kiss it.
She stepped out of the towel and pressed herself against me. Skin to skin for the first time. Her nipples brushed my chest. I could feel the heat between her legs against my thigh.
“Take your pants off,” she whispered against my ear. “I want to see you too.”
I fumbled with my belt. It got stuck, of course. She laughed softly, a warm sound that made me laugh too despite everything. She helped me. Her fingers were sure. When my pants and boxers hit the floor my cock sprang free, hard and already leaking at the tip.
She wrapped her hand around me immediately. Not too tight. Just right. She stroked once, twice, watching my face the whole time.
“Nice,” she murmured. “Bigger than I imagined when I heard you jerking off through the wall last week.”
I felt my face heat again. “You heard that?”
“Every night,” she said, still stroking. “I touched myself thinking about it. Wondering if you were thinking about me.”
I kissed her again to stop the words because they were too much. This time I walked her backward until her back hit the padded wall near the mats. She gasped when the cool surface touched her skin. I dropped to my knees without planning to. Her scent was stronger here, musky and sweet.
“You don’t have to,” she started, but I was already leaning in.
I licked her slowly at first. She tasted clean from the shower but already wet again. Her hands flew to my hair. She didn’t guide me, just held on. I found her clit and circled it with my tongue. She made a broken sound above me.
“Fuck. Right there. Just like that.”
I gave her what she asked for. One finger slid inside her easily. She was tight and hot. Her thighs started to tremble. I added a second finger and curled them. She came suddenly, hips jerking against my face, a low moan escaping her throat. I kept going until she pushed me away gently, oversensitive.
She looked down at me with dazed eyes. “Get up here.”
I stood. She kissed me, tasting herself on my mouth. Then she turned around, braced her hands on the wall, and looked back over her shoulder.
“Like this first. I want to feel you behind me.”
I didn’t argue. I lined up and pushed inside her in one slow thrust. She was so wet there was almost no resistance. We both groaned. She was tight, gripping me perfectly.
“Oh god,” she breathed. “Move. Please.”
I did. Slow at first, then faster. The sound of our bodies meeting echoed in the empty gym. Her ponytail had completely fallen apart. Wet strands stuck to her back. I reached around and cupped one breast, pinching the nipple lightly. She pushed back against me harder.
“Harder,” she demanded. “I can take it.”
I gave it to her. The bench nearby rattled from the force. She came again, this time with a sharp cry that bounced off the walls. Her pussy clenched around me so tight I almost followed her. I held back. I wanted more.
When she recovered she pulled off me and turned around. Her face was flushed, lips swollen. She looked beautiful in a completely wrecked way.
“Mats,” she said, taking my hand. “I want to be on top.”
We moved to the large foam mats in the corner used for stretching. She pushed me down on my back and straddled me. The rain had eased outside but the thunder was closer now. Lightning flashed through the high windows, illuminating her for a split second. She sank down onto me slowly, taking every inch. Her head fell back. I watched her breasts move as she started to ride me.
She set a steady rhythm. Her hands braced on my chest. I held her hips and thrust up to meet her. The wet sounds were obscene. So was the way she looked at me the whole time, like she was memorizing my face.
“You feel so good inside me,” she whispered. “I knew you would.”
I sat up, still inside her, and wrapped my arms around her back. We were face to face now. Kissing messily between thrusts. Her nipples dragged against my chest with every movement. I could feel another orgasm building in her from the way she tightened.
“I’m close again,” she warned. “Come with me this time. I want to feel it.”
I nodded. My hands slid down to grip her ass. We moved faster, desperate now. She came first, mouth open against mine, a silent cry. The pulse of her around me pushed me over. I buried myself deep and came hard, groaning her name into her neck. It felt like it lasted forever.
We stayed like that for a long time. Connected. Breathing each other in. Sweat and rain and sex filled the air. Eventually she lifted her head and kissed me softly. Different from before. Almost tender.
“That was… yeah,” she said with a small laugh. “I don’t have words.”
“Me either,” I admitted. My voice was shot.
She climbed off me carefully. We were both a mess. She grabbed her towel and wiped between her legs, then offered it to me. The casual intimacy of it hit me hard. This wasn’t a one-time thing. Not with the way she was looking at me.
We dressed in silence mostly. She put her sports bra and shorts back on. I pulled my clothes on with clumsy fingers. The lights still hummed. The gym felt different now. Like it belonged to us for these few stolen hours.
She took my hand as we walked to the door. Her fingers laced through mine like it was the most natural thing.
“We should probably talk about this at home,” she said. “Over leftover burrito or something. I think there’s one in the fridge.”
I laughed despite myself. “Yeah. We should.”
Outside the rain had stopped. The streets glistened under the streetlights. We walked the three blocks home in comfortable quiet, her shoulder bumping mine every few steps. When we got inside the apartment it felt smaller. More ours.
She went to the fridge and pulled out the half-eaten burrito and two beers. We sat on the couch like we had a dozen times before. Only this time she sat right next to me, legs tucked under her, head on my shoulder while we shared the food.
“I meant what I said earlier,” she told me between bites. “I’ve wanted this since day one. But I didn’t want to mess up the living situation if you didn’t feel the same.”
I took a long pull from my beer. The cold felt good after everything. “I felt the same. I just didn’t know how to say it without sounding like a creep.”
She turned her head and kissed my jaw. “You’re not a creep. You’re my roommate. And now you’re something else too. If you want to be.”
“I do,” I said immediately. No hesitation this time.
She smiled against my skin. We finished the food and the beers. Then she took my hand again and led me to her room instead of mine. Her bed was unmade, sheets tangled from the morning. It smelled like her. We undressed each other slowly this time. No rush. The urgency from the gym had burned off and left something deeper behind.
She pushed me onto her bed and crawled over me. Her hair, now dry and wavy, fell around us like a curtain. This time when I pushed inside her it was slower. Deeper. She kept her eyes open, locked on mine. Her hands framed my face.
“I like you,” she whispered as we moved together. “Not just the sex. Though the sex is really good. I like how you make coffee in the morning and leave half for me. I like how you laugh at my terrible cooking. I like you.”
The words undid me more than anything physical had. I kissed her hard, rolling us so I was on top. She wrapped her legs around my waist and held on. We didn’t speak again for a while. Just the sounds of pleasure and the creak of her bed frame.
She came first again, quietly this time, face buried in my neck. I followed right after, spilling into her with a long groan. Afterward we lay tangled together. Her fingers traced patterns on my chest. The apartment was quiet except for the distant sound of a car passing outside.
“I have a confession,” she said after a while. Her voice was soft, almost shy. “I applied to live here because of you. I saw you at the gym a few months ago before I answered the ad. You were helping an old lady with her form and you were so patient. I thought, that’s the kind of guy I want to know. So I took a chance.”
I tightened my arm around her. “I’m glad you did.”
She propped herself up on one elbow. Her green eyes were serious now. “This isn’t just tonight for me. I don’t do casual. Not with someone I have to see every day. So if we’re doing this, we’re doing it. No seeing other people. No pretending at home.”
I nodded. “I want that too.”
She leaned down and kissed me, slow and deep. When she pulled back she had that crooked smile again. But her next words weren’t smiling.
“Next time I won’t be this gentle.”
I didn’t answer out loud. I just pulled her closer, let her head settle on my chest, and surrendered completely to whatever came next.