Chapter 1
The shower was still running when his phone buzzed.
I reached for it out of habit. Ten years of marriage teaches you that. Keith forgets meetings, misses reminders, ignores his mother's calls. I've always been the one who catches things before they fall.
The notification wasn't from Slack. It wasn't a text. It was a little gray icon I didn't recognize — something called Vault, disguised to look like a calculator.
I unlocked his phone. His passcode was Chloe's birthday. I picked it years ago, when he couldn't be bothered.
The app opened.
At first, I didn't understand what I was looking at. Folders. Dozens of them. Labeled by month. February. March. April. All the way up to this week.
I tapped one.
A girl smiled up at me from the screen. Long dark hair. Winged eyeliner. Maybe twenty-four. She was sitting on Keith's lap in a booth at some restaurant, her hand curled around a wine glass. Behind her, a candle. Behind the candle, my husband's face, softer than I'd seen it in years.
I swiped.
Another photo. Her in a hotel bathrobe. Another. Her bare shoulder, his hand on it. Another. The two of them in a car, her lips pressed to his cheek, the caption in his own handwriting: *my girl, 03/14*.
I kept swiping. My thumb moved without me. Two thousand four hundred and thirty-seven photos. I counted the folder tallies twice because my brain refused to hold the number the first time.
The shower shut off.
I don't remember thinking. My hands moved on their own. Screenshot. Screenshot. Screenshot. I opened my own cloud, dumped every file, watched the little blue progress bar crawl while the pipes groaned behind the wall.
He was humming. Keith hums when he showers. Something tuneless and cheerful.
I closed the app. Locked the phone. Set it back on the nightstand at the exact angle I'd found it — screen down, one inch from the lamp base, charger cable curled to the left.
When he came out with a towel around his waist, I was reading a book. I don't know what book. I couldn't have told you the title if he'd asked.
"You okay?" he said. "You look tired."
"Long day," I said.
He kissed the top of my head. He smelled like my body wash. He always uses mine because he says his makes his skin itch.
"Love you," he said.
"Love you too," I said.
And my mouth did not shake.
---
I waited until his breathing went slow and even. Then I slipped into the bathroom, turned the shower on full blast, sat on the tile floor in my nightgown, and cried into a folded towel so nothing would leak out.
Elevean minutes. I counted, because counting was the only thing keeping me from screaming.
Then I washed my face. Brushed my teeth. Went back to bed. Lay on my side of the mattress with my eyes open, staring at the ceiling fan, listening to my husband snore beside me while my brain quietly, methodically, began to sort what I now knew.
Eight months. The photos went back eight months.
March fourteenth was the night I'd waited up because he said the freeway was closed.
April twenty-second was Chloe's spring recital. He'd told me he was stuck in Portland.
June ninth was our anniversary. He'd brought me tulips.
I didn't cry again. I made a list in my head instead. Lists are what I do.
---
In the morning I made his coffee the way he likes it — two sugars, splash of oat milk. I packed his lunch. Turkey on sourdough, the crust cut off because he thinks crust is peasant food. I kissed him at the door.
"Have a good day, babe."
"You too."
The door closed. I stood in the hallway with my hand flat against the wood and I felt nothing. That was the part that scared me. Not the rage. The nothing.
Then I opened my notebook — the small black one I've carried since grad school — and I wrote her name at the top of a fresh page.
*Romina Vargas.*
I'd found her in ninety seconds. The photos had geotags. The geotags led to an office building on Fourth Avenue. The office building led to a company directory. The directory led to a LinkedIn, and the LinkedIn led to a TikTok with forty-one thousand followers and a bio that read *taken by my dream protector 🤍*.
I watched every video. All of them. Ninety-three, over the course of two evenings, after Chloe was asleep. I took notes. Timestamps. Restaurant names. Outfits I recognized from Keith's credit card statements.
There was one, posted at 8:14 p.m. on a Thursday in September, filmed from her side of a candlelit table. My husband was on the other side, twirling linguine onto a fork and lifting it to her mouth like a scene from a movie he'd watched too many times.
That was the night he'd told me he was in a board meeting.
I paused the video. Screenshotted. Saved. Wrote it down.
---
A week later, over breakfast, he said, "Hey, so — Thursday. I've got to work late. I'm gonna miss Chloe's teacher thing. I feel awful."
"It's okay," I said, pouring his coffee. "I'll go."
"You're the best." He kissed my temple. "I'll make it up to her this weekend."
"Mm-hm."
When he left, I opened TikTok. Romina had posted a teaser twelve minutes earlier.
*He's taking me somewhere magical tonight 🎃👻.*
I closed the app. Set the phone face down. Finished my coffee. And I felt the first clean, sharp thing I'd felt in a week — not fury, not grief, but something colder and more useful.
A plan.
I reached for the notebook and turned to a new page. At the top, I wrote one line.
*Thursday. Waterfront. Bring Chloe.*
Chapter 2
I called Teagan before Chloe woke up.
She answered on the second ring. "What's wrong?"
I hadn't said a word yet. That's how long we've known each other.
"I need to meet," I said. "Today. Privately."
"Back office," she said. "Nine-thirty. I'll have coffee ready."
She didn't ask what it was about. She just knew.
---
The bakery smelled like butter and cinnamon when I walked in. Teagan was behind the counter, boxing a birthday cake for a woman in yoga pants. She caught my eye and tilted her head toward the hallway. I nodded and slipped past the display case, past the espresso machine, into the cramped little room she calls an office.
It's barely bigger than a closet. A desk piled with invoices. A filing cabinet. A framed photo of her and her sister at Pike Place. Two mismatched chairs. She'd already set out two mugs.
I sat in the chair closest to the wall and waited.
Teagan came in three minutes later, shut the door, and locked it. She set a plate of scones between us. Then she sat down, folded her hands, and said, "Okay."
I opened my notebook.
"Keith's been having an affair," I said. "For eight months. With a twenty-four-year-old from his office. Her name is Romina Vargas. I found two thousand four hundred and thirty-seven photos on his phone. I've documented ninety-three TikTok videos. I have screenshots, geotags, timestamps, and a credit card trail that goes back to February."
I slid the notebook across the desk.
Teagan didn't touch it. She just looked at me. Her mouth was a flat line.
"Jo," she said quietly.
"I need an attorney," I said. "A good one. Someone who doesn't lose."
She picked up the notebook. Flipped through it. Her jaw tightened with every page.
"Jesus Christ," she whispered.
She set the notebook down. Pulled out her phone. Scrolled through her contacts without a word.
"Sandra Okafor," she said. "She handled my cousin's divorce two years ago. The husband tried to hide assets in his brother's name. Sandra found every dollar. He walked away with his car and his guilt."
"Can you call her?"
"I'm calling her right now."
She pressed the phone to her ear. I heard ringing. Then a voice, crisp and professional.
"Sandra Okafor."
"Sandra, it's Teagan Adams. I need a favor. A friend of mine needs representation. It's urgent."
A pause.
"How urgent?"
"I'm looking at a notebook that would make you very angry," Teagan said.
Another pause. Longer this time.
"Can she meet today?"
Teagan looked at me. I nodded.
"Yes," Teagan said.
"Two o'clock. My office. Tell her to bring everything."
"Thank you."
Teagan hung up. She reached across the desk and squeezed my hand.
"You're gonna be okay," she said.
I nodded. I didn't believe her yet. But I wanted to.
---
Sandra Okafor's office was downtown, tucked between a law library and a coffee shop I'd never noticed before. The lobby was small and clean. No magazines. No fake plants. Just a receptionist who looked up when I walked in and said, "Mrs. Morris?"
"Ms. Snyder," I said.
She blinked. "Of course. Ms. Snyder. She's ready for you."
Sandra's office was exactly what I expected. Floor-to-ceiling bookshelves. A desk the size of a dining table. Framed degrees on the wall. She stood when I entered — a Black woman in her fifties, gray blazer, silver earrings, eyes that missed nothing.
"Josie," she said. "Sit."
I sat.
She sat across from me, folded her hands on the desk, and waited.
I pulled out my notebook. My phone. A printed timeline I'd compiled the night before. I slid them across the desk one by one.
"My husband has been having an affair for eight months," I said. "I have documentation. Photos, videos, financial records. I want a divorce. I want full custody of our daughter. And I want him to walk away with nothing."
Sandra picked up the notebook. Read the first page. Flipped to the second. Then the third. Her expression didn't change.
She set the notebook down and looked at me.
"You've done good work here," she said. "This is more than most clients bring me in six months."
"Thank you."
"But emotional evidence isn't enough," she said. "Not if you want to guarantee he gets nothing. What I need is financial misconduct. Provable, documented, court-admissible financial misconduct."
I leaned forward.
"What does that look like?"
"Marital funds used to support the affair," she said. "Gifts. Rent payments. Travel. Anything that shows he diverted money that should have gone to the household or to your daughter. If we can prove that, we have grounds for a much larger settlement. And if he gave her enough, we can go after her directly."
"Go after her?"
"Unjust enrichment," Sandra said. "If she benefited financially from the affair, and those benefits came from marital assets, we can sue her for reimbursement."
I felt something shift in my chest. Not rage. Something sharper.
"How do I prove it?"
"Forensic accountant," she said. "Someone who can trace every transaction, every transfer, every hidden account. I know the best in Seattle. I can have him start tomorrow."
I nodded.
"Do it."
Sandra picked up a pen. Pulled a contract across the desk.
"Retainer is five thousand," she said. "Non-refundable. If this goes to trial, we'll discuss additional fees. But I don't think it will. Men like your husband don't want courtrooms. They want quiet."
"I don't want quiet," I said.
She looked up. Something almost like a smile crossed her face.
"Good," she said. "Then we're going to get along just fine."
I signed the contract. She slid it into a folder and stood.
"One more thing," she said. "From this point forward, you do not confront him. You do not let him know you've retained counsel. You act exactly the way you've been acting. Can you do that?"
I thought of Keith's face in the bathroom mirror that morning. The way he'd smiled at me over his coffee. The way he'd kissed Chloe's forehead and told her he'd see her tonight.
"Yes," I said.
Sandra extended her hand. I shook it.
"Then let's go to work."
Chapter 3
I made chicken piccata on Tuesday.
Keith's favorite. The recipe takes forty minutes and dirties three pans, but he'd mentioned it over the weekend — casually, the way men mention things when they want you to remember without having to ask — so I made it.
He came home at seven-fifteen. Kissed my cheek. Told Chloe her ponytail looked like a pineapple. She giggled. He washed his hands at the kitchen sink and I watched the water run over his knuckles and thought about the girl's mouth on his in a car I paid half the insurance on.
"Smells amazing," he said.
"Thanks," I said. "How was work?"
"Exhausting." He loosened his tie. "Back-to-back meetings all afternoon. I barely had time to eat."
I set his plate in front of him. Extra capers, the way he likes.
"You should take better care of yourself," I said.
He smiled. Reached across the table and squeezed my hand.
"I'm lucky I have you."
Chloe was drawing a horse on her napkin with a purple crayon. She didn't look up. But I saw her shoulders tighten just slightly. Kids know. They always know.
After dinner, Keith took a shower. I heard the water start, heard him humming that tuneless song again. I cleared the table. Loaded the dishwasher. Wiped down the counters. When I opened the trash to scrape his plate, I saw it.
A receipt. Crumpled at the bottom. From a café on Capitol Hill.
Two lattes. One almond croissant. One lemon bar.
Timestamp: 12:47 p.m.
I pulled it out. Smoothed it flat. Took a photo. Dropped it back in the trash exactly where I'd found it.
Then I went into the living room and opened TikTok.
Romina had posted an hour ago. A video filmed from across a small table. Two coffee cups. A pastry on a plate between them. Her hand reaching into the frame to break off a piece, her nails painted the same shade of red I'd seen in the hidden photos.
The caption read: *Lunch dates with him hit different 💛.*
I watched it twice. Saved it. Opened my burner account — the one I'd created three days ago under the name @jessika_l — and scrolled through her previous posts until I found one from last week. A photo of her in a black dress, twirling in front of a mirror. Forty-three comments, most of them heart emojis and flame emojis and women saying *stunning babe* and *where's the dress from*.
I typed: *Gorgeous! Is your boyfriend taking you somewhere special?*
Posted it.
Scrolled to another video. Her in a car, lip-syncing to something breathy and dramatic. I typed: *He better be worth it girl 👀.*
Posted it.
I left five comments that night. Nothing aggressive. Nothing that would get flagged. Just enough to make her followers start wondering.
By Thursday morning, other people had picked it up.
Someone named @marissa_kaye had written: *Wait who is this man? I thought you were single lol.*
Someone else: *If he's so great why don't we ever see his face?*
Another: *This gives me bad vibes ngl.*
Romina deleted two of her older posts that afternoon. I watched the count drop in real time. Forty-three videos to forty-one.
I smiled.
---
Friday night, Keith suggested we take a family photo.
"For Instagram," he said. "We haven't posted anything in a while."
Chloe groaned. "Do I have to change?"
"No, baby," I said. "You're perfect."
We stood in the kitchen. Keith set the timer on his phone and propped it against the fruit bowl. He put his arm around my waist. I leaned into him. Chloe stood in front of us, holding her stuffed rabbit, looking at the camera like she was being audited.
The shutter clicked.
Keith checked the photo. Nodded. "Good one."
He posted it twenty minutes later. I watched from the couch while he typed the caption.
*Grateful for the ones who matter most. Nothing better than coming home to these two.* ❤️
The likes started rolling in immediately. His mother commented three heart emojis. His college roommate wrote *family goals bro*.
I checked the timestamp.
6:47 p.m.
Then I opened Romina's TikTok. She'd posted sixteen minutes ago. A mirror selfie. Hair curled. Makeup flawless. The caption: *Getting ready for him 🥂✨.*
I screenshotted both. Opened my notebook. Wrote the date at the top of a new page.
*November 3. Posted family photo 6:47 p.m. She posted getting-ready video 6:31 p.m. Likely meeting tonight.*
I looked up. Keith was on the couch beside me, scrolling through replies to his post, smiling at something someone had written.
"People love that photo," he said.
"They do," I said.
He kissed the top of my head. "You're the best thing that ever happened to me."
I didn't answer. I just turned the page in my notebook and started a new list.
Things were about to get much worse for him.
And I was going to make sure I enjoyed every single second.