Cover of The Girl at Midnight's Door

The Girl at Midnight's Door

Read the story

2 chapters · 6710 words · Read 0 times

You’re woken up in the middle of the night. Someone is banging at the door of your two bedroom garden apartment. Your girlfriend, Ruby, is laying next to you in bed. You tell her to wait there while you stumble to the door, look through the peephole, and see your ex-girlfriend, Madison, standing there, shivering in the cold. She pleads for help, asking to be let in. Ruby comes out and you find out they were BFFs growing up.

Chapter 2: Stolen Moments

The afternoon sun cut through the blinds, painting sharp, hot stripes across the rumpled duvet. Ruby folded a towel with precise, angry motions, the snap of cotton echoing in the quiet room. Laundry was her meditation, her control. But today, the control was paper-thin.

From the doorway, Madison watched. She’d been hovering there for five minutes, a ghost in Jake’s old sweatshirt, saying nothing. The air in the house had thickened over the past 48 hours, a slow-cooking tension that made every breath feel deliberate.

A soft, melancholy guitar riff floated up from the living room speaker. Ruby’s playlist, something indie and forgotten from a decade ago. She didn’t even register it until she heard Madison’s sharp intake of breath.

“God,” Madison whispered, a faint, disbelieving smile touching her lips. “Rilo Kiley. ‘More Adventurous’.”

Ruby’s hands stilled on one of Jake’s t-shirts. She didn’t look up.

“That was our album,” Madison said, her voice drifting into a memory. “Mine and Jake’s. That summer after sophomore year. We played it on a loop in his shitty Corolla. The CD was so scratched it would skip on the best track.”

“I know the album,” Ruby said, her voice flat. She folded the shirt, seam to seam.

“There’s this one night…” Madison leaned against the doorframe, her eyes losing focus. “Big party at the Delta Tau house. Someone puked in the punch bowl by ten. Jake and I bailed, stole a bottle of cheap vodka, and drove out to the bluffs. We had this blanket. Played this album loud with the car doors open.” She laughed, a soft, private sound. “He was so awkward then. All long limbs and nervous energy. He talked about geodesic domes for, like, twenty minutes. I just leaned over and kissed him to shut him up. Right as this song started.”

Ruby stills, the memory haunting her. Madison grins, "Then my BFF came out to check on me." Her eyes focuses on Ruby. "Somehow we ended up on the ground, didn't we Ruby?" Her grin widens, "Making out like teenagers while my boyfriend was just inches away"

Ruby’s hands froze completely. The half-folded shirt slipped from her fingers, pooling softly on the bedspread. She stared at the worn cotton, her breath tight in her chest. Every muscle in her back coiled.

That night. The bluffs, the vodka, the stupid, reckless music. She hadn’t thought of it in years. She had packed it away in a box labeled Before Jake.

“You remember,” Madison said. It wasn’t a question.

“I remember you had a boyfriend,” Ruby said, her voice a low wire. She finally turned from the bed. “Ted. The swimmer with the terrible mustache.”

Madison pushed off the doorframe and took a few steps into the room. The sunlight caught the dust motes swirling around her. “You came out to check on me. You said I looked ‘melancholy.’ You always used words like that.”

“You were my friend.”

“Were you checking on me?” Madison’s smile was a thin, sharp thing. “Or were you checking on him?”

Ruby felt the memory unspool, vivid and unwanted. The cool grass under her knees. The scent of vodka and cheap perfume. Madison’s lips, cold from the night air but soft, so soft. A slow, experimental press that became something frantic, something starving. Ted’s drunken snores from the car just a few feet away.

“It was a mistake,” Ruby said, the words tasting like ash. “We were drunk. It didn’t mean anything.”

“It meant something to me.” Madison was close now, close enough for Ruby to see the gold flecks in her dark eyes, the faint scar above her eyebrow from a long-ago bike accident. “You pinned my wrists to the ground. You tasted like spearmint gum.”

The air left Ruby’s lungs. She hadn’t remembered that detail. The specific, intimate truth of it. It unlocked a floodgate. The weight of Madison beneath her. The sound she’d made, half-protest, half-invitation, swallowed by the music from the car stereo.

“You left the next morning,” Ruby whispered. “You pretended it never happened. We never talked about it. Ever.”

“Because you started dating Jake a month later.” Madison’s voice was flat now, all the playful reminiscence gone. “My ex-boyfriend. My best friend.”

“It wasn’t like that.”

“Wasn’t it?” Madison laughed, a short, brittle sound. “You swooped in. You were everything I wasn’t. Stable. Sunny. Uncomplicated. You got the guy, and the life, and I got to be the crazy ex who blew town.”

The unfairness of it was a physical blow. Ruby’s hands curled into fists at her sides. “You left. You chose the music, the chaos. You broke up with him. You walked away from both of us.”

“I walked away from him,” Madison corrected, her gaze drilling into Ruby’s. “I never got to walk away from you.”

The silence that followed was deafening. It was full of the thrumming bass from that old song, the ghost of spearmint, the chill of grass. Ruby looked at this woman in her bedroom, in her boyfriend’s clothes, and saw the ghost of the girl she’d once kissed under a sky full of indifferent stars.

“Why are you saying this now?” Ruby’s voice cracked.

“Because I’m tired,” Madison said, and the vulnerability was back, raw and shocking. “I’m tired of running from everything that ever hurt. That includes you. That includes this… whatever this is between us that we never said.” She gestured vaguely between them. “You hate me. Fine. But part of you has hated me since before I dated Jake. Since that night.”

“I don’t hate you.” The protest was automatic, hollow.

“Then what do you feel?” Madison challenged, taking another step closer. The space between them charged. “When you look at me, what comes up? Is it just annoyance? Irritation at the messy ex?”

Ruby couldn’t move. She was pinned again, not by physical weight but by the sheer force of the past crashing into the present. She smelled the faint coffee on the air, the sweet trace of her own perfume on her skin from last night, and underneath it, something else—the clean, sharp scent of Madison’s shampoo, invading her space.

“It’s fear,” Ruby breathed, the admission startling her as much as Madison.

Madison blinked. “Fear?”

“Of this.” Ruby’s hand lifted, a vague gesture that encompassed Madison, the room, the memory. “Of you coming here and reminding me that I wasn’t always this person. That I was someone who did reckless things in the dark. That maybe I wanted something I couldn’t have, so I took the next best thing and called it a life.”

The confession hung there, ugly and true. Madison studied her face, her own anger seeming to dissolve into something like wonder. “The next best thing?”

“Jake,” Ruby said, her heart hammering against her ribs. “He was your leftover. And I took him, and I loved him, and I built something good. And you…” She shook her head, a helpless motion. “You were the thing I wanted. The wild, unpredictable, beautiful thing. And it terrified me.”

Madison didn’t speak for a long moment. The Rilo Kiley song had ended, leaving a ringing quiet in its wake.

“You never said,” Madison finally whispered.

“You never asked.”

The distance between them was now a single step. Ruby could see the pulse beating in Madison’s throat. She could see every lash, every faint freckle on her nose. The longing that rose in her was ancient, a dormant fault line jolting awake.

Madison saw it. Her eyes widened slightly. Her lips parted.

Ruby’s control snapped.

She closed the distance in one swift movement. Her hands came up, not to push, but to frame Madison’s face. It was an echo of that night on the bluffs, but deliberate now, sober and desperate. Her thumbs traced the line of Madison’s cheekbones.

“This is a terrible idea,” Ruby murmured, her voice thick.

“Probably,” Madison agreed, her breath hitching.

Ruby kissed her. It was nothing like the first time. There was no vodka, no surprise, no teenage fumbling. This was a reclaiming, a confession, a capitulation. It was hard and searching and full of eight years of unsaid words. Madison melted into it instantly, her hands coming up to grip Ruby’s hips, pulling her closer until their bodies aligned.

The taste was different. Not spearmint, but coffee and a deeper, warmer flavor that was uniquely Madison. Ruby explored it, her fingers tangling in those dark curls. A low sound escaped Madison’s throat, a vibration Ruby felt deep in her own chest.

They broke apart, gasping for air, foreheads pressed together. The stripes of sunlight burned against Ruby’s closed eyelids.

“He’ll be home in an hour,” Ruby whispered, the reality of it a cold splash.

“I know.”

“This changes everything.”

“It already has,” Madison said. She leaned in, her next kiss softer, a promise and an apology. “It changed years ago. We’re just finally admitting it.”

Ruby stared at Madison, her lips still tingling, the ghost of the kiss hanging between them like a shared secret. The safe, predictable world she’d built had just tilted off its axis. She kisses her deeper and finds herself in a blur ending up in her bedroom.

She kisses her deeper and finds herself in a blur ending up in her bedroom. The afternoon light is harsh on the backs of her thighs as she walks Madison backwards, their mouths never separating. The back of Madison’s knees hit the edge of the mattress and she falls, pulling Ruby down on top of her.

The weight is familiar and foreign. Ruby’s yoga-toned body finds its anchor, knees on either side of Madison’s hips, hands pinning Madison’s wrists to the rumpled duvet. She looks down, her blonde hair a curtain around them. Madison’s dark curls are fanned out, her lips parted and already swollen. Her eyes hold no triumph, only a deep, startled hunger.

“Still like that, huh?” Madison’s voice is a ragged whisper.

Ruby doesn’t answer with words. She shifts her grip, intertwining their fingers, pushing Madison’s hands into the pillow above her head. The position is one of utter control, practiced and precise. She holds her there, watching the rise and fall of Madison’s chest, feeling the rapid-fire pulse under her thumbs.

“Say it,” Ruby whispers, her mouth hovering a breath above Madison’s.

“Say what?”

“What you wanted to say on the bluffs. What you wanted to say every time you looked at me after.”

Madison’s throat works as she swallows. A war plays out in her eyes—fear, defiance, surrender. “I wanted you,” she breathes. “I was just too scared of what it meant.”

Ruby lowers her head, her lips brushing the shell of Madison’s ear. “And now?”

“Now I’m more scared of pretending I didn’t.”

The admission unlocks something violent and tender in Ruby’s chest. She releases Madison’s hands, her own fingers moving to the hem of the borrowed sweatshirt. She pushes it up, revealing a strip of pale stomach, a silver scar from an appendectomy, the lower curve of a rib. Madison arches into the touch, a silent gasp catching in the quiet room.

Their movements are slower now, deliberate. Clothing falls away not in a frenzy, but in a silent negotiation of skin and permission. The sun stripes their bodies, warm and accusing. Every touch is an echo—the press of a knee, the scrape of a nail, the way Madison’s head falls back to expose the line of her neck.

It is nothing like the fumbling in the grass. This is a deliberate unraveling, a wordless conversation spoken with hips and hands and hitched breaths. Ruby maps the landscape of Madison’s body, a territory once known in fragments, now reclaimed. She finds the sensitive spot just below her ear, the place where her shoulder meets her neck, the inside of her wrist.

When Madison finally cries out, it’s muffled against Ruby’s shoulder, a broken, grateful sound. Ruby holds her through the tremors, her own heart a wild, thrashing thing against her ribs. The silence afterward is vast, filled only with the sound of their breathing slowing.

Ruby rolls onto her back, staring at the ceiling fan. Its motionless blades are coated in a fine layer of dust. The reality of the room seeps back in—the laundry basket, Jake’s shirt still discarded on the floor, the digital clock on the nightstand blinking 4:12 PM.

“He’ll be home in forty minutes,” Ruby says, her voice rough.

Next to her, Madison doesn’t move. “I know.”

“This doesn’t fix anything.”

“I didn’t ask it to.”

Ruby turns her head. Madison is already looking at her, her expression unreadable. “What did you ask for, then? When you came here?”

“Sanctuary,” Madison says, repeating her word from the hallway. But then she adds, softer, “And the truth. Even if it’s ugly.”

“Well, you got it.” Ruby sits up, the sheets pooling at her waist. The cool air raises goosebumps on her skin. “It’s all ugly now.”

She stands, walking naked to the en-suite bathroom. She didn't pause to study herself in the brief wake before fetching a worn cotton towel from where her girlfriend draped it across his towel rack earlier. She doesn’t look at the body in the mirror, the one that just betrayed everything. She turns on the shower, the water roaring to life in a sudden, merciful white noise.

When she steps under the spray, she expects guilt. She waits for the crushing wave of regret. It doesn’t come. Instead, there’s a terrifying clarity. The water is scalding, turning her skin pink. She scrubs hard, as if she can erase the smell of Madison’s skin, the taste of her, the feel of her under her hands.

She shuts off the water. The silence of the house presses in again, heavier now. Wrapping a towel around herself, she steps back into the bedroom.

Madison is sitting up, wearing just her underwear, holding Jake’s discarded t-shirt to her chest. She looks small and young and utterly devastating. “Ruby,” she starts.

“Don’t.” Ruby’s voice is flat, final. She walks to her dresser, pulls on clean underwear, jeans, a simple sweater. Every motion is mechanical. “Get dressed. We need to put the sheets in the wash.”

Madison flinches as if struck. She nods, slipping into her clothes from the floor with hurried, clumsy movements. Together, in a brutal, silent choreography, they strip the bed. The scent of them, of what they’ve done, rises from the tangled linens. Ruby balls it all up, shoves it into the hamper, and carries it downstairs.

She is stuffing the load into the washing machine when she hears the soft creak of the floorboard behind her. She doesn’t turn around. “What now, Madison?”

“I don’t know.”

“That’s not good enough.” Ruby slams the washer door closed, selects a cycle, and turns. Madison is leaning against the doorframe, looking hollowed out. “You drop a bombshell about some dangerous person. You come here and you… you do this. And you don’t know?”

“The person,” Madison says, her gaze dropping to the floor, “is my manager. Ex-manager. His name is Leo.”

Ruby waits, arms crossed.

“He… financed my last album. My band. It wasn’t a loan. It was an investment. In me.” Madison wraps her arms around herself. “And when it didn’t pan out, when the tours failed and the streams were a joke, the investment came due. In other ways.”

A cold knot tightens in Ruby’s stomach. “What ways?”

“The kind where you stop having a choice.” Madison meets her eyes, and the fear there is real, glittering and sharp. “He’s not a guy you walk away from. You pay, one way or another. I tried to walk. He made an example of my drummer. Put him in the hospital. Said next time it would be my fingers.”

The humming of the washing machine fills the laundry room. It’s a mundane, domestic sound, utterly at odds with the words just spoken.

“So you ran here,” Ruby states.

“I ran to the only person I ever knew who was genuinely good,” Madison whispers. “The one who always did the right thing. Even when it hurt him.” She gives a weak, shattered smile. “I guess I didn’t factor in you.”

Ruby feels the world tilt again. This wasn’t just about the past. This was about a debt of a different, more terrifying kind. She had just slept with a woman who was hiding from a violent man. A man who could track her here.

The sound of a key in the front door lock was unmistakable. A scrape, a click.

They both froze.

Jake’s voice called out, cheerful and unaware, bouncing off the walls. “Hey! I brought Thai. The line was insane, but I got the drunken noodles you like, Rubes.”

His footsteps approached down the hall. Ruby looked at Madison, at the panic flaring in her eyes. She looked at the washing machine, churning with the evidence of their afternoon.

The footsteps stopped at the entrance to the laundry room. Jake appeared, holding a plastic bag, his smile easy. It faltered as he took in the scene: the two of them standing too close in the small, humid room, the tension so thick it distorted the air.

His eyes moved from Ruby’s freshly washed face to Madison’s disheveled hair, to the churning washer. His kind, trusting smile slowly faded, replaced by a dawning, confused suspicion.

“Everything okay in here?” he asked, the words careful, testing the silence.

Read on DreamPress

Write your own erotic story with AI