I record episode three with the taste of burnt coffee on my tongue and Katie’s warning lodged behind my teeth.
The laundromat below rumbles through the floorboards in a steady spin cycle bass line. Out past the streaked kitchen window, the night wind carries a faint thread of salt and distant music from some waterfront party where grown-ups in sequined dresses pretend regatta season never ended. My entire empire is a thrift-store mic on a folded quilt, a laptop that overheats if Theo runs Minecraft in the next room, and the knowledge that right now, more people care about this story than about our leaky ceiling.
I clear my throat and tap the space bar. The red light on my recording software winks on.
“You’re listening to Glass Roses,” I say, slipping into the voice I built long before Crescent Bay knew I’d come back. “I’m Mara Lane. In today’s episode, we’re going to talk about ghosts. Not the white-sheet kind. The digital kind. The way old nights come back as pixels and voicemail, refusing to stay buried under official timelines.”
I pause, listening to the room. The dryers downstairs thump. A car passes, washing the wall in moving light. I picture Juliet under those gym lights again, the glass rose centerpieces sparkling on every table while the cliffs waited outside like teeth.
“Last week,” I continue, “we heard from a caller who says Juliet Reeves didn’t die where the police said she did.”
I click a marker in the waveform, queuing up the edited clip. Oracle’s original voicemail still lives in a locked folder, raw and warped. I spent three nights with my headphones on, shaving and stretching frequencies until their voice turned into something no one could source but everyone would feel in their bones.
I take a breath and hit play.
The altered voice fills my kitchen, pitched higher, edges smoothed. “She didn’t fall off those pretty cliffs,” Oracle says, the syllables wrapped in my effects chain. “Check the song. You know the one: ‘under velvet water where the truth goes down.’ That’s where you should be looking.”
I cut the track there, right before the part where they referenced specific rocks and a line Luz begged me to hold back for now.
I lean toward the mic. “You heard that right,” I say. “A reference to a 1997 track every girl at Crescent Bay High slow-danced to at least once. I can’t play the song for you here, but you know it. A drowning metaphor wrapped in a love ballad. Our caller claims it holds the real map to Juliet’s last hour.”
I let a few beats of room tone breathe. The ceiling light hums faintly over my head. I imagine thousands of earbuds catching that silence and leaning closer.
“And that’s not the only ghost that showed up this week,” I say. “On our community Discord, an anonymous user posted a photo that, to my knowledge, has never been made public.”
I pick up the printed copy from the table, even though no one can see me. The glossy paper slides under my fingers, the grain of the cheap inkjet print rough along the edges. Juliet, blurred but unmistakable, stands near the double doors of the old gym, corsage bright on her wrist. The timestamp glows in the corner: twenty-two minutes after the official window the police pinned her fall to.
“In the photo,” I tell my listeners, “Juliet stands near the gym doors. Not at the cliffs. Not near the treacherous rock shelf below the overlook where kids used to sneak cigarettes after dances. Inside. Alive. After she was supposed to already be gone.”
My pulse ticks in my ears. I picture Katie folding her arms in the teachers’ lounge, jaw tight. I picture Elliot’s card in my wallet, its clean font and polished logo like a promise or a threat.
“We’re still working to verify this image,” I say, sliding my tone into careful. “I’ve consulted with the detective currently reviewing Juliet’s case. We’re checking for manipulation, for metadata, for anything that would prove this is a hoax. Until then, I’m asking you to treat it as what it is: a lead, not a verdict.”
I hesitate, then go for the part that will make my ad sponsors happy and my stomach hurt.
“For the first time on this show,” I say, “I’m inviting you into the puzzle on purpose. If you were at that prom, or you recognize the decorations, the door placement, the people blurred in the background—head to our subreddit or the unofficial Discord. Help us place this image. Help us figure out who was in that hallway when Juliet should have been gone.”
I lean closer still, lowering my voice until it brushes the mic. “But hear me on this: do not post home addresses. Do not message people’s kids. Do not accuse anyone publicly without evidence. We are not here to destroy lives based on a blurry shoulder in the background of a photo. We are here to find out why a girl who was supposed to be dead was still standing under the gym exit sign.”
My hand shakes when I hit stop.
The waveform freezes in jagged blue peaks. I sit there, headphones half on, listening to nothing. Somewhere down the hall, Theo’s white-noise machine whooshes through his bedroom door. The laundromat buzzes, steady and indifferent.
Exhilaration rushes in first, bright and sharp. I just turned an anonymous voice and a pixelated photo into a narrative engine big enough to pull a town’s secrets loose.
Then, under it, anxiety curls tight. I just invited the internet into my backyard and left the gate open.
By the time the episode drops the next day, the wind off the bay smells like rain and hairspray.
I walk Theo to school under a sky the color of old concrete, passing the PTA moms with their insulated coffee cups and tennis skirts. Bass from someone’s SUV thuds faintly, a low echo that blends with the surf hitting the rocks below the cliffs. Crescent Bay hums along, pretending it doesn’t have a twenty-year-old body in its story’s foundations.
Back upstairs, I refresh my hosting dashboard until the numbers start to climb. Downloads spike in little bursts. A new batch of five-star reviews appears, lined up like candy. My notifications bar fills with pings from the Discord and subreddit.
I pour another mug of coffee, thumb already tapping my way into the server Sadie built.
The #episode-three channel scrolls so fast my eyes have to chase it. Usernames blur: glass_heart97, promnightbones, bayclifftruth. GIFs of spinning cassette tapes, screenshots of the episode timestamp where I played Oracle’s lyric, half-ironic “this is our Super Bowl” memes.
Sadie’s username glows near the top, highlighted with the little mod tag she begged me to let her use: [GLASSROSE_MOD] SadieQuinn.
I click on her latest post.
[GLASSROSE_MOD] SadieQuinn: OK, nerd squad, I pulled my aunt’s 1997 yearbook out of storage.
Left side: Oracle’s photo, upscaled and cleaned up a bit (don’t @ me, I didn’t alter the content).
Right side: the official prom spread from the yearbook, plus the staff photo. Spot the differences.
Beneath her text, she’s dropped a collage: Oracle’s grainy image side-by-side with a scanned yearbook page. On the right, the prom spread shows the same double doors, the same cheesy balloon arch, the same glass roses glinting on the refreshment table. A caption under the staff section lists chaperones: Mrs. Vaughn, Mr. Patel, Ms. Hargrove, Mr. Cooke.
I zoom in until the pixels break. In the Oracle photo, I can pick out two of those teachers in the background: Mrs. Vaughn’s bouffant, Ms. Hargrove’s sequined jacket. But where the staff schedule says Mr. Cooke should be looming near the doors, there’s only a sliver of anonymous suit, too short, wrong build. A gap.
My fingers tingle.
The comments under Sadie’s post multiply.
bayclifftruth: Wait, where’s Cooke?
promnightbones: Official logs say he supervised the south entrance all night. Source: my mom was on the PTA, I dug out her old schedule, see below.
*attachment: PROM1997_CHAPERONE_SCHEDULE.pdf*
I click. A scan of a faxed, yellowed document loads, edges shadowed. Under SOUTH ENTRANCE, in smeared type, sits “COOKE, H.” Check-in 7:45 PM. Check-out 12:15 AM. Initials in blue pen confirm it.
I feel my heartbeat in my teeth.
“You were supposed to be there,” I whisper to the monitor. “If you signed out at twelve fifteen, why are you in neither photo?”
More comments pile in.
truecrimegrad: But absence in one photo doesn’t prove anything. He could be in the bathroom, talking to a kid, etc.
baykid_88: I was class of 98. Literally never saw Cooke monitoring doors. He hung out in the English office grading papers and letting seniors cry about college essays.
[GLASSROSE_MOD] SadieQuinn: Reminder: WE DO NOT DOXX. We do not call people’s workplaces. We look at patterns.
I let out a breath I didn’t know I’d been holding. At least Sadie heard my disclaimer.
The subreddit is its own bonfire. Someone’s made a timeline graphic, color-coding official police statements in blue and Oracle’s claims in red. Another user uploads a painstaking recreation of the old gym layout, complete with the path to the side doors, the route kids took to slip toward the cliffs and the rock shelf below.
My username, u/GlassRosesMara, ping-pings with tags.
@GlassRosesMara do you think the missing chaperone fits with the voicemail’s “wrong eyes at the wrong door” line?
Mara, can you confirm if Navarro knew about this schedule gap?
I rub my thumb against the chipped handle of my mug. For minutes at a time, I let myself ride the current of it. This is what I dreamed of when the show had three hundred listeners and a sad little Patreon: a whole crowd of brains turned toward Juliet, ready to notice the gaps the adults in charge once ignored.
Then I catch a thread where someone has started speculating about Cooke’s personal life based on his nephew’s Instagram, and the excitement curdles.
I DM Sadie.
“Hey,” I type, “that post connecting Mr. C to his nephew’s profile? Please take it down. We’re not connecting minors to this.”
The three dots blink, vanish, blink again.
SadieQuinn: Already on it. I banned the user for the day. I got you, Mara. We’re going to keep this clean.
“Thanks,” I write. “We’re going to try.”
The micro green dot next to her name stays on. I picture her in some other cramped apartment two towns over, eyes burning from screen glare, heart racing for a girl she never met.
By midnight, the Discord chat feels less like a community and more like a living creature I accidentally fed after dark.
I shut my laptop with a soft clap, the afterimage of the scrolling text still burning under my eyelids. The apartment shrinks to familiar sounds: Theo’s snore from his room, pipes ticking in the wall, the far-off slap of the tide against the seawall. From here I can’t see the cliffs, but I can hear the ocean that tried to keep Juliet secrets.
I should go to bed. Instead, I plug my headphones back in and open my voicemail dashboard.
There’s a new message time-stamped three hours after the episode went live.
The caller ID line reads: Unknown (Private). My scalp prickles.
I click play.
Oracle’s voice pours into my ears, run through my system’s post-processing without the distortion I added for the public clip. I recognize the same tonal quality, the same steady breath control. They kept their own disguising filter on, but the effect is cleaner, like they recorded in a better-equipped studio than my kitchen.
“You’re a good editor, Mara,” they say. “Nice work on the harmonics. You shaved off the part Detective Navarro begged you not to air. You kept the lyric though. That was the hook.”
My fingers freeze over the keyboard. I hadn’t told anyone about that cut except Luz.
I back the clip up and listen again. No background music, no TV, no bar noise—just a faint wash in the distance that could be wind or HVAC or the breath of the sea against rock.
“I like what you did tonight,” Oracle goes on after a short pause. “Inviting everyone into the maze. Laying the photo at the center. You set the board. You gave them a song title, a badly lit snapshot, and a question. That’s a strong opening move.”
The compliment lands like a hand on the back of my neck.
“But games run on rules, don’t they?” they add. “And you can’t control what people do once the timer starts. They get excited. They misread clues. They turn on each other. Or they choose their own target and call it justice.”
I swallow. My tongue tastes metallic.
“You’re teaching them to hunt,” Oracle says. “That thrills you. Don’t lie to yourself about that. But hunters miss. Stray shots hit the wrong bodies. In ninety-seven, one story won and another drowned. You of all people should know how fast a town will pick a version and lock the door.”
My chest tightens. I think of Katie and the box of glass roses in her closet. Of Mr. Cooke’s name smeared in blue ink on a schedule he might not have followed. Of Theo, who could trip over any of this fallout on the playground.
Oracle lets the silence stretch long enough for the hum of their space to leak in again. My brain tries to parse it—storm drain, tunnel, stairwell at the gym—but the frequencies smear.
“I’m not your enemy, Mara,” they say finally. “I’m the one giving you pieces no one else bothered to keep. I like the way you tell stories. I like that you poke cops and golden boys and PTA queens in their soft spots.”
They chuckle, low and humorless. “But if you lose control of your crowd—if your players start drawing blood in the wrong places—that won’t be on me. That will be on the woman with the microphone who told them this was a game.”
A breath. The tiniest click, like a lighter closing or a door latch.
“And games,” Oracle finishes, “have a tendency to collect new bodies when the stakes go up.”
The voicemail ends.
I sit there with my headphones on, the apartment around me so quiet I can hear the buzz from the liquor store sign outside vibrating through the glass. The cliffs are just a dark shape against darker sky, invisible from here but carved into my memory. In my mind, the rock shelf waits below them, slick and unforgiving, a reset button no one gets to hit twice.
On my screen, the little trash-can icon and the little download arrow stare up at me, twin choices. Delete the message and pretend I never heard that warning. Save it and admit I’m playing on a board Oracle built long before I started pressing “record.”
My finger hovers between them, trembling, and for the first time since I came back to Crescent Bay, I have to ask myself which scares me more: letting my listeners down or finding out who Oracle wants them to aim at next.