I should have gotten out of the hot tub the second she slipped in.

I didn’t.

The weekend had started innocently enough. Ryan turned thirty on Friday and decided a small group getaway to his parents’ cabin up north was the perfect way to mark it. The place sat on a wooded hill with a private lake, a fire pit, and a wide cedar deck that held a massive rooftop hot tub overlooking the treetops. I’d known Ryan since freshman year of college; we’d been through breakups, job losses, late-night study sessions fueled by cheap pizza and worse beer. He was the closest thing I had to a brother. Which made what happened that last night feel like the worst kind of betrayal and the best kind of relief at the same time.

Advertisement

The cabin smelled like pine cleaner and woodsmoke the whole weekend. Rain had rolled through on Saturday, leaving everything damp and the air heavy. By Sunday evening the sky had cleared, leaving a chill that made the hot tub the only sensible place to be. Most of the group had already packed up and headed back to the city after the big barbecue. Ryan left around six with his girlfriend, muttering something about beating traffic. That left me, a couple of stragglers who were crashing in the guest rooms, and her. Brooke. Ryan’s older sister.

She was thirty-four, five years older than us, and had always existed in my periphery as the unattainable one. Tall, with shoulder-length auburn hair that she usually wore in a messy knot, green eyes that caught the light like lake water, and a way of tilting her head when she listened that made you feel like you were the only person in the room. She had a small scar on her left eyebrow from a childhood fall and a habit of touching it when she was thinking hard. Her laugh came easy but her silences felt heavy. I’d caught myself staring at the curve of her shoulder or the way her jeans fit more times than I cared to admit over the years. But she was Ryan’s sister. Off-limits. Family.

That Sunday the temperature dropped fast after sunset. I heated up leftover roasted chicken and some cold pasta from the fridge, ate it standing at the kitchen counter while the others finished their drinks downstairs. The house felt emptier already. I grabbed a cheap bottle of red from the counter, the kind with the screw top, and climbed the narrow stairs to the rooftop deck alone. The hot tub hummed quietly, steam rising into the clear night. Stars were everywhere. I stripped down to my swim trunks, set the wine and two plastic cups on the wide ledge, and sank into the heat with a long sigh. My shoulders ached from chopping wood earlier. The water felt like forgiveness.

Advertisement

I’d been alone maybe ten minutes when the deck door creaked open. Brooke stepped out in a thick robe, hair down for once, feet bare on the wet wood. She carried nothing but a half-empty beer bottle. The robe was dark blue, belted loosely at the waist. I could see the strap of a black swimsuit underneath. My stomach tightened before my brain caught up.

“Mind if I join you?” she asked, voice low against the hum of the jets.

I shrugged, trying to sound casual. “It’s your family’s cabin. Plenty of room.”

She smiled at that, small and crooked, the kind that made the scar on her brow shift. She set the beer down, untied the robe, and let it fall. The swimsuit was simple, one-piece, cut high on the hips. Her skin was pale from the long winter, a few freckles scattered across her collarbones. She had the kind of body that came from weekend hikes and yoga classes she actually stuck with, strong legs, soft stomach, breasts that moved when she laughed. I looked away fast, focusing on the trees instead.

Advertisement

She eased into the water across from me, letting out a pleased little sound as the heat hit her. Steam curled around her face. For a while we just sat there. The stars felt close enough to touch. A light wind moved through the pines, carrying the smell of damp earth and distant smoke from someone’s bonfire down the ridge.

“Everyone else bail already?” she asked after a minute.

“Yeah. Ryan and Sarah left first. Said they had an early meeting tomorrow.”

Advertisement

She nodded, trailing her fingers through the bubbling water. Her nails were short, unpainted. Practical. “He always does that. Throws a party then runs before the cleanup.”

I laughed a little. It sounded too loud in the quiet. We fell back into silence. I poured myself some wine into one of the plastic cups, offered her the bottle. She shook her head, lifted her beer instead. The gesture was familiar. I’d seen her do it at a dozen barbecues over the years, always the one nursing one drink while the rest of us got sloppy.

The tension crept in slowly. I kept noticing things I shouldn’t. The way the water beaded on her shoulders. How her hair stuck to her neck when she leaned back. The small sigh she gave when she stretched her legs and accidentally brushed my calf under the water. She didn’t pull away right away. Neither did I.

“You okay?” I asked, because the quiet was getting dangerous.

She looked at me then. Really looked. Green eyes steady under the string lights someone had left up from the night before. “Been thinking a lot this weekend.”

“About what?”

Advertisement

She took a slow sip of beer. “About how long I’ve been pretending.”

My pulse kicked up. I told myself it was the heat. “Pretending what?”

Advertisement

Brooke set the bottle on the ledge with a soft clink. She shifted closer, just a few inches, but it felt like the whole tub tilted. “That I haven’t noticed you, for one. That watching you laugh at Ryan’s stupid jokes or fix the grill like it’s no big deal doesn’t do something to me.”

I should have laughed it off. Made a joke about too much sun or the wine. Instead I stared at her mouth, at the drop of water sliding down her throat.

“Brooke…”

Advertisement

“Don’t,” she said softly. “Don’t do the noble thing. Not tonight.”

That was the first tension beat. Her hand found my knee under the water. Just rested there. Warm skin, light pressure. My breath caught. I thought about Ryan driving south right then, windows down, probably blasting the same playlist we’d made in college. I thought about how many times I’d told myself she was like family. But her fingers flexed against my leg and none of that mattered quite as much.

I didn’t move her hand away. Instead I covered it with mine, feeling the contrast of cool night air on my wrist and the hot water everywhere else. She didn’t smile exactly. Her expression was serious, almost sad, like she’d been carrying this for years and finally set it down.

Advertisement

“I’ve watched you grow up next to him,” she said. “The quiet one who always remembered my coffee order when you picked up takeout for everyone. The one who looked away when I changed in the living room that one summer at the lake house.”

My face heated. I remembered that day. The way her tank top had ridden up, the soft curve of her back. I’d nearly dropped the bag of chips.

“I thought I was being subtle,” I admitted.

Advertisement

She laughed once, short and real. “You weren’t. But I liked it. Made me feel seen without all the pressure.”

We sat like that for a long minute. Her hand on my knee. Mine on top of it. The jets churned steadily, pushing bubbles against my back. I could smell the faint chlorine and the red wine I’d spilled a drop of on the ledge. Somewhere an owl called. The normalcy of it all made the undercurrent feel sharper.

When she finally pulled her hand back it wasn’t rejection. She used it to push her wet hair off her face, that signature gesture, fingertips brushing the scar on her brow. Then she moved to sit beside me on the built-in bench. Our thighs touched under the water. The contact sent a jolt straight through me.

“This is a bad idea,” I said, but my voice lacked conviction.

“Probably,” she agreed. “But I’ve had worse ones. Like staying in that marriage for three years longer than I should have.”

Advertisement

I knew about the divorce. Ryan had mentioned it last Christmas in the kind of vague way brothers do. She didn’t talk about it much. Now she was looking at the stars like they might have answers.

“I don’t want to be the rebound,” I told her honestly.

She turned to face me. Close enough that I could see the tiny flecks of gold in her green eyes. “You’re not. You’ve been the what-if for longer than that.”

That was when she kissed me.

It wasn’t sudden. She leaned in slow, giving me every chance to pull back. I didn’t. Her lips were warm, tasting faintly of beer and the strawberry lip balm she’d used earlier. The kiss started soft, almost careful, like she was testing if this was real. Then I made a small sound in my throat and she deepened it, one hand coming up to cradle the side of my neck. Her fingers were damp and cool from the night air. My hand found her waist under the water, the smooth fabric of her swimsuit, the give of her skin just above it.

Advertisement

We broke apart breathing harder. Her forehead rested against mine for a second. A small nervous laugh escaped her.

“Okay,” she whispered. “That felt as good as I thought it would.”

I swallowed. My heart was hammering. “Brooke, if we do this…”

“I know,” she said. “Ryan can’t ever know. Not from us.”

That should have stopped me. It didn’t. The guilt sat there, heavy in my chest, but so did ten years of wondering. She shifted again, swinging one leg over mine so she straddled my lap in the water. The move was smooth, confident, but her hands trembled a little where they rested on my shoulders. I liked that. Liked knowing I wasn’t the only one rattled.

Advertisement

We kissed again, slower this time. Her body pressed against mine, the wet swimsuit slick between us. I ran my hands up her back, feeling the muscles shift as she arched into the touch. She made a soft noise when my fingers found the nape of her neck, threading into her hair. The hot water lapped at our chests. Steam rose around us like a curtain.

“Tell me if you want to stop,” I said against her mouth.

She pulled back just enough to look at me. “I don’t. I’ve wanted this too long to pretend anymore.”

That line hung between us. Tired of pretending she didn’t want this. It cracked something open in me. My hands slid lower, cupping her ass through the suit, pulling her closer. She rocked against me once, experimental, and we both groaned at the contact. I was already hard, the thin fabric of my trunks doing nothing to hide it. She felt it. Her eyes fluttered half-closed.

“God, you’re…” She didn’t finish. Instead she reached between us and palmed me through the material, bold and sure. I hissed at the pressure.

Advertisement

The escalation built from there. I tugged at the straps of her swimsuit. She helped, peeling the top down until her breasts were bare in the cool air. Her nipples tightened instantly. I leaned in and took one in my mouth, tasting chlorine and clean skin. She gasped, fingers tightening in my hair, holding me there. Her hips moved in small circles against my lap, the water splashing softly.

“Wait,” she said suddenly, voice husky. She climbed off me, standing in the tub. Water streamed down her body. Without hesitation she pushed the swimsuit the rest of the way down, stepping out of it and kicking it onto the deck. She stood there naked under the stars, unashamed, hair wild from the steam. I drank in the sight: the soft triangle of hair between her legs, the strong thighs, the way her stomach rose and fell with quick breaths.

“Your turn,” she said, a challenge in her tone.

I stood up, water sluicing off me, and shoved my trunks down. My cock sprang free, hard and aching. She looked at it for a long moment, then stepped back into my arms. This kiss was hungrier. Our bodies pressed together fully now, skin on skin, the heat of the water and the chill of the night warring everywhere we touched.

We didn’t rush to full sex there in the tub. The escalation stayed in that teasing space for a while longer. I sat back down and she followed, straddling me again but this time with nothing between us. She reached down and wrapped her hand around me, stroking slowly, learning the feel. I slid my fingers between her legs, finding her wet in a way that had nothing to do with the hot tub. She was slick, swollen, and she moaned quietly when I circled her clit.

“Like that,” she breathed. “Just like that.”

I kept the rhythm steady, watching her face. Her head tipped back, exposing the long line of her throat. The stars caught in her hair. She moved against my hand, chasing the friction, and I felt her thighs start to tremble. When she came the first time it was quiet, almost surprised, a sharp inhale and then a long shuddering exhale against my neck. Her hand never stopped moving on me.

“Inside me,” she said after she caught her breath. “I need you inside me now.”

But the tub wasn’t ideal for that. Too much water, awkward angles. She stood, took my hand, and we climbed out together, dripping onto the deck. The air felt freezing after the heat. She grabbed her robe and spread it over the wide wooden bench built into the railing. I added my towel. Then she pulled me down with her.

We didn’t bother with more foreplay. She lay back, legs open, and guided me between them. I pushed inside her in one slow thrust. The feeling was overwhelming, tight heat, her body yielding around me. She wrapped her legs around my waist and held on. For a moment we just stayed like that, connected, breathing each other’s air.

“Move,” she whispered. “Please move.”

I did. Long, deep strokes at first, savoring it. The bench creaked under us. Her hands roamed my back, nails digging in when I hit the right spot. She was vocal in a grounded way, not porn-star loud but real, telling me what felt good, gasping my name when I angled my hips differently. The stars wheeled above us. A plane blinked across the sky like a slow meteor.

She came again before I did, clenching around me, her face buried in my shoulder to muffle the sound. That pushed me over. I thrust deep and stayed there, pulsing inside her as the orgasm hit hard enough to blur my vision. We stayed locked together for a long minute, hearts hammering against each other.

After, we cleaned up with the towels, redressed in our damp suits and her robe, and went inside. The cabin was dark and quiet. We didn’t talk much as we made our way to the guest room I’d been using. The bed was unmade, sheets smelling like the lavender detergent Ryan’s mom used. We stripped again and crawled under the covers. This was the deeper scene, hours later, when the initial rush had settled into something heavier.

She lay on her side facing me, one leg thrown over mine. The room was lit only by the bathroom nightlight she’d left on. Her hair fanned across the pillow, auburn strands catching faint gold. I traced the scar on her eyebrow with my thumb. She let me.

“I’ve thought about this for years,” she confessed quietly. “Since that summer you helped Ryan build the treehouse in the backyard. You were eighteen, all serious and focused. I was twenty-three and felt ancient watching you two. But I noticed.”

I swallowed. My hand rested on her hip under the sheet. “I had such a crush on you back then. Ryan would have killed me.”

She smiled, small and tired. “He still might if he finds out. But I don’t regret it. Not tonight.”

We made love again, slower this time. No rush. She rolled on top, sinking down onto me with a long sigh. Her hands braced on my chest as she rocked, hair falling around us like a curtain. I watched her face the whole time, the way her eyes closed in concentration, the flush across her chest. She came first again, quiet and intense, then leaned down to kiss me through my own release. It felt different this time. More intimate. Like we were crossing a line we couldn’t walk back from.

Afterward she didn’t pull away. She curled against my side, head on my chest, one arm draped over me. Her breathing evened out but I knew she wasn’t fully asleep. The house settled around us, old wood creaking in the cooling night. I listened to the wind in the trees outside the window and tried not to think about tomorrow, about driving back to the city, about looking Ryan in the eye at work on Monday.

“What happens now?” I asked eventually, voice barely above a whisper.

She was quiet so long I thought she might not answer. Then, “We go back to normal. For him. For everyone. But maybe… we find ways to steal moments. If you want that.”

I wanted that. More than I should. Her fingers traced idle patterns on my stomach and I felt the weight of the secret settle between us. It wasn’t romantic in the movie way. It was messy and scary and laced with guilt. But it was real.

We drifted off like that, tangled up in each other. In the morning she’d slip back to her own room before anyone else woke. We’d pack the cars, make small talk over coffee, drive home separately. Ryan would never suspect a thing. At least that’s what I told myself as sleep finally pulled me under, her steady heartbeat against my ribs the last thing I registered.

The next few weeks blurred. Work, texts from Brooke that started innocent and turned charged, stolen lunches in her car where we’d kiss until the windows fogged. Guilt gnawed at me during guys’ nights with Ryan, but every time I saw her the pull was stronger. She was careful, always. Never pushing, never demanding. Just present. The way she’d brush my hand when passing the salt at family dinners. The late-night calls where she’d whisper what she wanted to do to me next time we had a chance.

But the rooftop hot tub stayed with me most. That night under the stars when everything shifted. I still think about her. I still check the door at night. I still leave the window open.