I should have turned around the second I saw her in the hotel lobby.

I didn’t.

The whole mess started with a canceled connecting flight out of Chicago. I’d been on the road for work for four days straight, pitching software to skeptical logistics managers who barely looked up from their phones. My body ached from those cheap airport seats. Rain hammered the terminal windows in sheets, the kind that makes every delay feel permanent. I had already eaten a dry turkey sandwich from one of those sad kiosks and was nursing a lukewarm coffee when the airline finally rerouted me to this mid-tier airport hotel chain. The kind with flickering fluorescent lights in the hallway and a front desk that smelled like stale popcorn from the adjacent movie theater.

Advertisement

My name is Alex. Thirty-one. Single in the way that feels less like freedom and more like quiet failure lately. I’d been seeing Cassidy for three months. We’d met at a mutual friend’s house party where she laughed at my bad joke about recycled code and then spent the rest of the night watching me from across the room. Her eyes are this particular shade of hazel that shifts from green to gold depending on the light. She keeps her dark brown hair in a loose ponytail most days, strands always escaping around her face like she can’t quite contain them. She bites the side of her thumb when she’s thinking hard. I thought it was endearing at first.

The thing about Cassidy is she notices everything. My coffee order. The way I tap my left foot when I’m anxious. Which route I take home from the gym. I told myself it was because she cared. That it was cute. My friends thought I was lucky to have someone so attentive. They didn’t see the other parts. The way she’d text me right after I left a meeting asking how it went before I’d even mentioned it. Or how her smile would tighten if I mentioned talking to a female coworker.

I checked into the hotel around ten at night. The lobby was mostly empty except for a tired night clerk and one other person slumped in an armchair scrolling her phone. The air smelled like industrial cleaner mixed with the faint grease of microwave meals from the tiny convenience area. My room key felt sticky in my palm. I was already planning on ordering cheap Chinese delivery and crashing when my phone buzzed.

Advertisement

It was her. Cassidy.

“Hey. Saw your flight got delayed. I’m actually stuck here too. Crazy coincidence right?”

My stomach did this slow drop. I hadn’t told her my flight number. I hadn’t told anyone. The app I used for booking was on my personal account, sure, but she shouldn’t have had access. I stared at the message for too long. The rain outside picked up, slapping against the glass doors.

I typed back something neutral. “Yeah wild. Which hotel did they put you in?”

Advertisement

Three dots. Then her reply. The exact name of the place I was standing in.

“Same one apparently. Lobby in five? I have snacks.”

I should have lied. Said I was already asleep. Instead I walked downstairs like a man sleepwalking toward something he knows he shouldn’t touch.

Advertisement

She was waiting near the elevators wearing an oversized gray hoodie that swallowed her small frame and black leggings that showed the curve of her hips. Her ponytail was a little messy from travel, strands sticking to her neck from the humidity. Those hazel eyes lit up when she saw me, but there was that edge to her smile. The one that said she was calculating every micro-expression on my face.

“There you are,” she said, voice soft like always. A little husky from the dry plane air. She held up a plastic bag from the hotel shop. “They only had those terrible honey roasted peanuts and some cheap wine. But it’s something.”

We stood there in the lobby’s bad lighting. The clerk was pretending not to watch us. My pulse felt too loud in my ears.

“How did you know which flight I was on?” I asked. I tried to keep it light but it came out sharper than I meant.

She tilted her head. That signature gesture where she tucks her chin down and looks up through her lashes. “Your calendar syncs to the work email you showed me last month, remember? I was worried when it popped up as delayed. I hate thinking of you stuck somewhere alone.”

It sounded reasonable. Almost sweet. But I remembered closing that shared calendar weeks ago. Or I thought I had.

Advertisement

She stepped closer. The smell of her shampoo cut through the lobby funk, something clean and floral. Her hand brushed my wrist, just for a second. “Look, it’s late. My room is a single with this awful pullout couch that smells like mothballs. Could I… stay with you tonight? Nothing weird, I promise. Just company. The storm’s supposed to get worse.”

I should have said no. Should have made an excuse about needing space after a long trip. Her eyes held mine and I saw something flicker there. Vulnerability mixed with that intense focus she always had on me. Like I was the only real thing in her world.

Advertisement

“Yeah,” I said. “Okay.”

Her smile bloomed then, genuine enough that it made my chest tighten. We rode the elevator up in silence. The mirrored walls showed us standing close. My rumpled button down next to her oversized hoodie. She kept glancing at me in the reflection, like she was memorizing the way I stood.

The room was standard. Queen bed, generic landscape print on the wall, mini fridge humming too loud. I set my bag down by the desk. Cassidy kicked off her sneakers near the door, revealing socks with little cartoon cats on them. She looked smaller without the shoes. More approachable.

Advertisement

“Thanks,” she said quietly. “I know this is probably awkward. Me just showing up like this.”

It was more than awkward. It felt like the walls had narrowed. But I shrugged and pulled out the two plastic cups from the bathroom. “Wine’s wine. Let’s just eat the peanuts and watch something mindless.”

We sat on the edge of the bed because there was nowhere else. The TV flickered with some late night rerun of a cop show. The rain beat against the window in steady rhythm. Cassidy opened the wine with a corkscrew from her bag. She always came prepared. Her fingers were steady as she poured, but I noticed the slight tremble in her left hand. The one she hid by tucking it under her thigh.

Advertisement

She passed me a cup. Our fingers brushed. That first tension beat hit me then. Not just the usual attraction, but something heavier. Her eyes stayed on my face longer than necessary. Like she was reading every thought I hadn’t said out loud.

“You’ve been quiet on our texts the last couple days,” she said after a sip. Her voice was careful. “Work stress? Or… something else?”

I took a bigger drink than I meant to. The wine was cheap and bitter. “Just tired. Presentations all week. You know how it is.”

Advertisement

She nodded but her thumb went to her mouth, biting that spot on the side. “I do know. I checked the weather in the city you were in. Looked up the restaurant you mentioned in your last call. Made sure the reviews were good.”

That was new information. I hadn’t told her the restaurant name. My skin prickled.

“Cassidy…”

“I just want to take care of you,” she cut in softly. Her hand landed on my knee. Light. Testing. “Is that so bad?”

The touch sent heat up my leg. I didn’t pull away. That was the moment the usual rules between us bent. Her hazel eyes held mine and I saw the obsession there, plain as the rain on the window. She wasn’t just attentive. She was mapping me. Every move. Every breath.

Advertisement

I felt my pulse in my throat. Part of me wanted to stand up, create distance. The other part, the one that had been lonely for longer than I’d admit, stayed put. Her fingers traced a small circle on my knee through my slacks. Innocent enough. But her breathing had changed. Shallower.

“You’re looking at me like I’m a puzzle you can’t solve,” she whispered. “But you already know the answer, don’t you?”

I didn’t. Not really. Or maybe I did and had been ignoring it. Her ponytail had slipped further, dark strands framing her face. She looked beautiful in the cheap lamp light. Vulnerable and terrifying at the same time.

That’s when the first charged encounter happened. She leaned in slowly, giving me every chance to move back. Her lips brushed my cheek, then hovered near my ear.

“I missed you,” she breathed. “More than you know.”

Advertisement

Her hand slid a little higher on my thigh. Not demanding. Just there. My body reacted before my brain caught up. I turned my head and our mouths met. It wasn’t gentle. It was three months of her quiet intensity finally spilling over. She made this small sound in her throat, something between relief and hunger. Her fingers tightened on my leg.

I pulled back first, breathing hard. “This is… we said nothing weird.”

She laughed, low and a little shaky. Her cheeks were flushed. “I lied. A little. But only because I knew you’d say yes if I asked the right way.”

That should have been my cue to stop. Instead I kissed her again. Harder. Her body pressed into mine, small and warm under that hoodie. I could feel the rapid beat of her heart. When we broke apart her eyes were brighter, more focused. Like she’d won something.

She stood up then, peeling off the hoodie in one smooth motion. Underneath she wore a thin tank top that showed the lines of her bra. Her body was toned from the runs she took every morning, the ones she always texted me photos from. She gestured to the bed.

Advertisement

“Sit back. Let me take care of this tension you’ve been carrying.”

I did. My hands were clumsy as I kicked off my shoes. She climbed onto the bed, straddling my lap without asking. Her weight felt good. Real. Her hands cupped my face, thumbs brushing my jaw like she was memorizing the shape.

“Tell me if you want me to stop,” she said. But her eyes said she already knew I wouldn’t. That was the escalation. The tease that built and built.

She kissed down my neck while her hips rolled slowly against me. I felt myself getting hard under her. My hands found her waist, sliding under the tank top to warm skin. She shivered at the contact.

“You’ve been thinking about this too,” she murmured against my collarbone. “I can tell by how you look at your phone when my name pops up.”

Advertisement

She wasn’t wrong. The obsession went both ways now. I tugged the tank top up and she let me pull it off. Her bra was simple black cotton. Practical. But the way her breasts filled it made my mouth dry. I reached behind her, fumbling the clasp like an idiot. She laughed softly, helping me. The straps slid down her shoulders.

Her nipples were already tight. I leaned in and took one in my mouth. She gasped, fingers threading through my hair, gripping just hard enough to sting. Her body rocked against me in a slow rhythm that matched the rain outside.

“Yes, like that,” she whispered. “God, your mouth feels exactly how I imagined.”

We stayed like that for what felt like forever. Me tasting her skin, her grinding against the growing bulge in my pants. Every time I tried to speed up she’d slow us down with a gentle hand on my chest.

“Not yet,” she’d say. “I want to feel everything first.”

Her hands worked my shirt open button by button. She kissed each inch of skin she uncovered. When she reached my belt she paused, looking up at me through those messy strands of hair.

“Can I?”

I nodded. Words were gone.

She undid the belt carefully. The sound of the zipper seemed too loud in the room. She freed me from my boxers and wrapped her hand around me. Her grip was perfect. Warm. She stroked slowly, watching my face the entire time like my pleasure was data she needed to catalog.

“You’re so hard for me already,” she said. There was wonder in her voice. And something darker underneath. Possession.

I reached between us, sliding my hand into her leggings. She wasn’t wearing underwear. The realization hit me like a spark. She was soaked. My fingers found her easily, circling her clit the way she’d shown me once in a frantic late night call. She moaned, head falling forward so her forehead rested against mine.

“Don’t stop,” she breathed. “Please don’t ever stop.”

We stayed locked like that, hands on each other, building tension until the air felt thick. She came first with a sharp cry, thighs clamping around my hand. Her body shook against me. I followed seconds later, spilling over her fingers with a groan I couldn’t hold back.

After, she didn’t pull away. She wiped her hand on the discarded tank top without shame and curled into my side. The TV was still playing but neither of us paid attention. Her breathing evened out but I knew she wasn’t sleeping. Her fingers traced patterns on my chest. Possessive little circles.

That was only the beginning of the night.

Hours later, after we’d dozed and the rain had eased to a drizzle, I woke to her mouth on me. The second encounter felt different. Slower. Deeper. The lamp was off now. Only the red glow of the alarm clock lit the room. Her hair was down completely, brushing my thighs as she took me into her mouth with careful, deliberate movements.

“I couldn’t sleep,” she whispered when I stirred. “Thinking about you inside me kept me awake.”

She crawled up my body and straddled me again. This time she sank down slowly, taking every inch until I was fully seated inside her. We both exhaled at the same moment. The heat of her was overwhelming. Tight and slick and perfect.

“Look at me,” she said. Her voice had that edge now. The yandere part she usually kept hidden. “I need you to see me while we do this.”

I did. Her hazel eyes were almost black in the low light. She began to move, rolling her hips in these deep, grinding circles that hit every sensitive spot. My hands gripped her ass, helping her find the rhythm. She leaned down to kiss me, tongue sliding against mine in time with her movements.

“You’re mine, you know that right?” she confessed between kisses. “Not just tonight. All the time. I check your location because I can’t stand not knowing where you are. It makes me feel safe.”

I should have been alarmed. Instead the words sent a twisted thrill through me. I thrust up harder, making her gasp.

“Say it,” she demanded softly. “Tell me you’re mine.”

“I’m yours,” I managed. The words felt like surrender. And truth.

She smiled then, that full beautiful smile that hid the storm underneath. Her pace quickened. The bed creaked under us. I reached between us to rub her clit again and she came with a broken moan, inner muscles clenching around me so tight I followed right after. I spilled deep inside her, holding her hips down as we both shook through it.

Afterward she didn’t move off me right away. She stayed there, my softening cock still inside her, and rested her head on my chest. I felt her tears against my skin. Small, silent ones.

“I’m sorry if I scare you sometimes,” she whispered. “I just love you too much to risk losing you. The thought of you with anyone else… it makes me want to make sure that never happens.”

I stroked her back. My own emotions were a mess. Fear. Desire. Something like affection twisted around obsession. We talked then. Really talked. She told me about her last relationship, how the guy had cheated and it broke something in her. How watching my every move wasn’t about control exactly. It was about certainty. About never being blindsided again.

I listened. I held her. And somewhere in that dark hotel room I stopped pretending I didn’t want this too. The intensity. The way she saw only me.

We made love one more time before dawn. This time in the shower because the bed felt too ordinary. The water was hot, steam filling the tiny bathroom. She braced her hands on the tile while I took her from behind. Slow deep strokes that made her voice echo off the walls. She came with my name on her lips, then turned and dropped to her knees to finish me with her mouth. I watched the water run down her face as she swallowed, eyes never leaving mine.

By morning the flight delays had cleared. We dressed in silence, stealing glances at each other. She looked softer in the daylight. Less like a force of nature and more like a woman who’d shown me her sharpest edges and trusted me not to run.

At the airport gate she kissed me goodbye like any normal girlfriend. But her hand lingered on my arm a second too long. Her thumb brushed my wrist in that familiar way.

“Text me when you land,” she said. “I’ll be watching the flight tracker.”

I nodded. We both knew what this was now. No more pretending.

Back home that night I found the red hairpin on my nightstand. The one she’d worn in her messy ponytail. It sat there next to my alarm clock, a small curved piece of plastic with a tiny enamel flower. I picked it up, turning it over in my fingers. The faint scent of her shampoo still clung to it. I set it back down carefully, the warm imprint of her body long gone from my hotel pillow but the memory of it burned into me instead.