The scent of her perfume hit me first, something warm and vanilla that cut right through the stale smell of fresh paint and cardboard boxes.
I was standing in the doorway of what used to be my quiet one-bedroom apartment, now suddenly half-full of someone else’s life, when that scent wrapped around me.
Sophie stepped past with a box balanced on her hip, her dark auburn hair swinging in a loose ponytail, green eyes bright under the awful fluorescent light.
“Sorry about the mess,” she said, voice carrying that slight rasp like she’d spent the morning yelling at movers. “I swear I’ll unpack by next week.”
It was move-in day. I’d posted the roommate ad three weeks earlier after my old buddy bailed for a job in Seattle. Rent in this city had gotten stupid. Sophie had been the first decent reply, a 24-year-old graphic designer who worked remote and promised she wasn’t a slob.
I hadn’t expected her to be this… present.
The apartment felt smaller already. Rain tapped against the windows, the kind of steady gray drizzle that made everything inside feel closer. My living room still had that faint smell of the roasted chicken I’d burned trying to cook last night. A crumpled receipt from the moving truck lay on the kitchen counter next to two half-empty coffee cups.
I helped her carry in the last of the boxes, my arms aching, sweat sticking my t-shirt to my back. She moved with this easy confidence, like she’d done this a dozen times. Signature move: she’d tuck a loose strand of hair behind her ear with her pinky, then flash this quick half-smile that made her look like she was in on some joke you hadn’t heard yet.
By seven that evening the place looked less like a disaster. We’d shoved her bed frame together in the second bedroom but neither of us had the energy to find the sheets. Her mattress sat bare in the middle of the floor, still wrapped in plastic that we’d half-peeled off.
“Takeout?” I offered, wiping my hands on my jeans. “I know a place that does decent Thai.”
“God yes,” she said. “I’m starving. And I brought wine. Cheap but it does the job.”
We ended up on that bare mattress because the couch was buried under boxes. The rain had picked up outside, a steady drum against the glass. I brought paper plates, plastic forks, and two mismatched glasses. The Thai food came in those white containers that always leak a little at the corners. Pad see ew for me, green curry for her.
She sat cross-legged, back against the wall, wearing an old band t-shirt that hung loose on her frame and black leggings. Her green eyes caught the light from my cheap floor lamp every time she laughed.
We talked about normal stuff first. How she grew up in a small town outside Portland, how I worked in marketing but hated the office politics. She had this way of listening where she’d tilt her head slightly, like every word mattered.
The wine was terrible, some box brand that tasted like grape juice gone wrong, but we drank it anyway. Two glasses each. The room felt warmer. My nerves hummed under my skin.
She set her container down, wiped her mouth with the back of her hand, and looked at me directly.
“I’ve had a bottle of wine and some real things to say,” she said quietly.
My stomach tightened. The rain kept falling. I could smell the vanilla on her skin again, closer now.
That was the first tension beat. Her words hung there between us while I tried to act normal. She wasn’t drunk, just loose enough that her usual careful distance had slipped.
I noticed the way she kept glancing at my mouth when I spoke. Nothing overt. Just… different.
“What kind of real things?” I asked, setting my own food aside. My voice came out steadier than I felt.
She laughed softly, that raspy sound again, and tucked that strand of hair back with her pinky.
“I probably shouldn’t say this on day one,” she started, “but you seem like the kind of guy who doesn’t bullshit. So here it is. I don’t do boundaries very well. Never have. If we’re living together, I need you to know that.”
I swallowed. The bare mattress creaked under us as I shifted my weight. Outside, thunder rumbled low.
“What does that mean exactly?” I said, trying not to stare at the way her t-shirt had slipped off one shoulder, revealing a thin pink bra strap.
She smiled, small and knowing. “It means if I walk around in a towel after a shower, it’s not an invitation. It’s just me. If I leave my door open while I change, same thing. I’m not shy. But I’m also not trying to make you uncomfortable.”
My pulse kicked up. I’d lived with girls before, but never one who announced it like this on move-in day. Her green eyes held mine, challenging but soft around the edges.
I should have pulled back right there. Said something polite about keeping things professional. Instead I heard myself say, “I’m not uncomfortable.”
She leaned forward just a fraction, the mattress dipping. The scent of her perfume mixed with the leftover curry and cheap wine.
“Good,” she whispered. “Because I already like you more than I expected to.”
That touch came next. Not sexual. Her hand rested on my knee for a second while she reached for the wine bottle. Just long enough that I felt the warmth through my jeans. She pulled away like it was nothing, but her eyes flicked up to mine and I knew she’d noticed how still I’d gone.
Internal monologue screamed at me. This was day one. She was my hot new roommate. Crossing this line would be stupid. But the way she looked at me, like she’d already decided something, made my thoughts fuzzy.
We finished the wine. The rain eased into a light patter. She stretched, arms over her head, and her shirt rode up enough to show a strip of pale stomach. I looked away too late.
“You keep doing that,” she said suddenly.
“Doing what?”
“Pretending you’re not looking.” Her voice had dropped lower. She wasn’t smiling now. Just watching me with those green eyes.
I laughed nervously, rubbing the back of my neck. My hands felt clumsy. “It’s been a long day. I’m probably imagining things.”
“You’re not.” She scooted a little closer on the mattress. Our knees brushed. “I don’t mind, you know. In fact…”
She let the sentence hang. The tension thickened until I could barely breathe around it. The apartment smelled like rain on concrete through the cracked window, mixed with vanilla and Thai spices.
I stood up too fast, nearly tripping over a box. “I should probably let you get settled.”
She stayed seated, looking up at me with that half-smile again. “Or you could stay. Help me find my sheets. Talk some more.”
I hesitated at the door. My heart hammered against my ribs. This was the moment I could have walked away cleanly.
I didn’t.
That night I lay in my own bed listening to her move around next door. Every creak of the floorboards felt loaded. I kept replaying the way her hand had rested on my knee, the way she’d said she didn’t do boundaries.
By morning I’d convinced myself it was just the wine talking. We’d laugh about it over coffee.
Only we didn’t. The next few days she tested what she’d said. She’d wander into the kitchen in just an oversized sleep shirt that barely covered her thighs, humming while she made toast. I’d catch myself staring at the curve of her neck, the way her auburn hair fell across her shoulders, and force my eyes back to my phone.
She noticed every time. She’d give me that signature pinky-tuck and a little smirk but never call me out. Not directly.
One evening I came home from work soaked from the rain. She was on the couch in leggings and a tank top, laptop open, hair in a messy bun. The living room smelled like the cheap candles she’d bought, something citrusy.
“Rough day?” she asked.
I nodded, peeling off my wet jacket. “Meeting ran long. Boss is an idiot.”
She closed her laptop. “Come sit. I ordered pizza. Should be here soon.”
I sat. She turned toward me, one leg tucked under her. The tank top clung in all the right places. I tried not to notice.
But then she reached over and brushed a raindrop from my cheek with her thumb. Simple. Casual. My skin burned where she touched.
“You’re tense,” she said softly. “I could help with that.”
My breath caught. This was the escalation. Her green eyes were steady, waiting.
“Sophie…”
“I’m not playing games,” she continued. “I meant what I said that first night. No boundaries. If you want to touch me, touch me. If you want me to stop, say so. But don’t sit there pretending you haven’t thought about it.”
Her words hit like a punch. I could smell the vanilla again, stronger now that she was close. The pizza guy knocked but neither of us moved.
I kissed her instead.
It wasn’t smooth. Our noses bumped first. She laughed into my mouth, that raspy sound vibrating against my lips, and then she kissed me back like she’d been holding it in for days. Her hands slid up my damp shirt, fingers cold against my skin.
We broke apart gasping. The pizza guy knocked again. She stood up, adjusted her tank top with a quick tug, and answered the door like nothing had happened. I stayed on the couch, heart racing, trying to process what I’d just done.
She brought the box back, set it on the coffee table, and looked at me with flushed cheeks.
“We don’t have to eat first,” she said.
But we did. Sort of. We picked at slices, barely tasting them, eyes locked across the small space. Every bite felt like foreplay. She’d lick sauce from her thumb and I’d feel it in my stomach.
“Tell me what you’re thinking,” she demanded quietly.
“That this is probably a terrible idea,” I admitted. “But I don’t want to stop.”
She smiled, set her slice down, and crawled across the couch until she straddled my lap. Her weight felt perfect, warm and solid. The rain had started again outside, tapping insistently.
“Then don’t stop,” she whispered against my ear. Her breath was hot, sending shivers down my back.
Clothing started to shift. She peeled my damp shirt off, hands exploring my chest like she was memorizing it. I tugged at her tank top and she lifted her arms, letting me pull it over her head. Her bra was simple black cotton. I could see her nipples already hard through the fabric.
She rocked against me slowly, teasing, while we kissed again. This time no bumped noses. Just heat and need and the faint taste of pizza sauce on her tongue.
I reached around and unclasped her bra. It fell away. Her breasts were full, pale with faint freckles across the tops. I cupped one, thumb brushing her nipple, and she made this small sound in the back of her throat that went straight to my cock.
“Yes,” she breathed. “Like that.”
My hands shook a little as I touched her. She guided me at first, showing me how she liked the pressure. Her body language opened up completely, hips rolling, head tipped back so her auburn hair spilled down her back.
We didn’t make it to the bedroom that first time. The couch became our battlefield. She stood long enough to strip off her leggings and panties, revealing a neatly trimmed patch of hair that matched the auburn on her head. I shoved my own pants down, belt catching awkwardly on the buckle until she helped with a soft laugh.
“Let me,” she said.
When I finally pushed inside her she was wet and hot and tight. She sank down slowly, eyes locked on mine the whole time. Her mouth fell open in a silent gasp.
“Fuck, you feel good,” she whispered.
We moved together right there on the couch. She rode me at first, hands braced on my shoulders, green eyes never leaving my face. The sound of skin on skin mixed with the rain. I gripped her hips, guiding her pace, feeling every shift and clench.
She came first. Her whole body tightened, thighs squeezing my sides, a low moan escaping as she pressed her face into my neck. I felt her pulse around me and it pushed me over the edge seconds later. I came hard, groaning her name, arms wrapped tight around her back.
We stayed like that for a long time, breathing together. The pizza box sat forgotten on the table. Her vanilla scent clung to my skin now too.
Eventually she lifted her head, hair sticking to her forehead with sweat.
“That was better than I imagined,” she said softly. “And I’ve been imagining it since the day I saw your ad.”
I laughed a little, still inside her. “You never said.”
“Didn’t want to scare you off before I even moved in.” She kissed me gently this time, almost tender. “But I’m not sorry.”
Neither was I. Not then.
Hours later, after we’d cleaned up and eaten cold pizza in bed, the second encounter started differently. The apartment was dark except for the streetlight leaking through the blinds. Rain had turned to a soft drizzle again.
She came to my room instead of the other way around. I was half-asleep when the door opened. She stood there in just an oversized t-shirt, legs bare, hair down around her shoulders.
“Can’t sleep,” she said simply.
I lifted the covers. She slid in beside me, body warm from her own bed. This time it was slower. Deeper. Emotionally loaded in a way the couch hadn’t been.
She lay on her side facing me, green eyes searching mine in the dim light. Her hand traced patterns on my chest, light enough to raise goosebumps.
“I need to tell you something,” she whispered. “I don’t usually do this. The no-boundaries thing. It’s a defense. Guys get weird when they realize I’m… a lot.”
I turned toward her, our legs tangling under the sheets. The mattress dipped in the middle, pulling us closer. I could feel her heartbeat against my palm when I rested a hand on her chest.
“You’re not too much,” I said. It felt true.
She kissed me then, slow and searching. Our hands explored without rush this time. I tasted the skin of her neck, the spot just below her ear that made her shiver. She wrapped her fingers around me, stroking with patient rhythm until I was hard again.
“I want you on top,” she said against my mouth. “Want to feel your weight.”
I moved over her. She opened her legs, pulling me in. This time when I pushed inside her it felt different, more connected. She wrapped her arms around my back, nails lightly scratching as I moved.
We rocked together in the quiet dark. Her breath hitched with every thrust. She didn’t come as loudly this time but the way her body trembled under me felt more intense. I buried my face in her hair, breathing in vanilla and her, and let myself fall completely.
Sweat slicked our skin. The cheap sheets twisted around our legs. When I came she held me tighter, whispering my name like a secret.
Afterward we didn’t sleep right away. She lay on my chest, tracing idle circles on my stomach with one finger. The rain had stopped completely. The apartment felt different now, lived-in in a new way.
“I like this,” she said quietly. “More than just roommates.”
I kissed the top of her head. “Me too.”
She fell asleep first, soft snores against my skin. I stayed awake a while, staring at the ceiling, wondering what the hell we’d just started. My hot roommate had no boundaries and apparently neither did I anymore.
The next morning she made coffee wearing nothing but my t-shirt. We didn’t talk about labels. Just shared the pot on the kitchen counter, her hip bumping mine, that signature half-smile playing on her lips.
Life settled into a new rhythm after that. Days filled with work and takeout and her laughter echoing through the apartment. Nights blurred into touches that started casual and ended breathless.
One Friday she came home with a bottle of better wine and a crooked grin. The weather had turned cold, wind rattling the windows. We cooked roasted chicken together, bumping elbows in the small kitchen, stealing kisses between chopping vegetables.
After dinner she pulled me to the couch again, but this time she had something on her mind. We talked first, really talked. She told me about an ex who made her feel ashamed of wanting so openly. I told her about feeling stuck in my job, how her moving in had been the first interesting thing to happen in months.
Then the clothes came off slowly. She straddled me again but faced away this time, her back to my chest. I held her hips as she sank down onto me, the new angle making us both groan. Her hair fell forward, exposing the nape of her neck. I kissed it while she moved, one hand reaching around to touch her where we joined.
She came with a shuddering sigh, head falling back against my shoulder. I followed soon after, arms wrapped around her middle like I never wanted to let go.
Later, tangled in sheets that smelled like both of us, she turned to me with serious green eyes.
“This isn’t just sex for me anymore,” she confessed. “I hope that’s okay.”
It was more than okay. It scared me a little, how fast it had become everything, but I pulled her closer anyway.
We fell into patterns. She’d leave her door open while changing, just like she’d promised. Sometimes I’d join her. Other times I’d watch from the hallway until she crooked a finger at me.
One particularly cold night we ended up in the shower together. Steam filled the small bathroom, fogging the mirror. She pressed me against the tiles, water cascading over us, and dropped to her knees. The warmth of her mouth contrasted with the cool wall at my back. I tangled my hands in her wet auburn hair and tried not to come too fast.
After, I returned the favor against the shower wall, her leg over my shoulder, her raspy voice urging me on until she shook apart.
But beneath the heat there was tenderness too. She’d trace the scar on my knee from a childhood bike accident and ask for the story again. I’d make her coffee exactly how she liked it, with too much cream and no sugar.
The pettiness came out sometimes. I’d get jealous when she talked about her male coworkers on video calls. She’d tease me about it, then kiss the jealousy away. We were messy. Human. Real.
Three weeks in, during another takeout night on the now-made bed, she looked at me over leftover burrito containers and said the words that changed the temperature again.
“I think I’m falling for you.”
I didn’t answer right away. The words stuck in my throat. Instead I set the food aside and pulled her into a kiss that said what I couldn’t yet.
That night we made love slowly in her room. No rush. Just long looks and whispered confessions between thrusts. She came twice, once with my mouth on her, once with me deep inside while she looked straight into my eyes.
I came whispering that I was falling too.
Afterward, as she curled against me, the vanilla scent of her hair filling my lungs, I realized the apartment didn’t feel like just mine anymore. It felt like ours.
But life isn’t a movie. A month later she got offered a better job in another city. The conversation about it lasted hours, spread across the couch with cheap wine and tears she tried to hide.
“I don’t want to lose this,” she said, voice cracking.
Neither did I. We talked about long distance. About her coming back on weekends. About me maybe following eventually.
On her last night in the apartment we didn’t have sex. We held each other on that same bare mattress we’d started on, now covered in familiar sheets that smelled like home. She cried a little. I did too, though I’d never admit how much.
The next morning she left with most of her boxes. The place felt too quiet without her laugh, without her signature hair-tuck, without the constant vanilla in the air.
But as she hugged me at the door, green eyes bright with unshed tears, she pulled back and said softly, “I’ll be back next weekend. The rainy one.”
I watched her walk down the hall, heels clicking on the tile, that warm vanilla scent lingering like a promise.
Later that night I left the window open despite the cold. I lit the cheap citrus candle she’d bought. And I made sure the door stayed unlocked.