City of Shadows
Urban Fantasy / Occult Cop Thriller
Urban Fantasy / Occult Case Files
She stepped outside for a cigarette.
by kd Alexander
reader promise
She stepped outside for a cigarette.
cover copy
She stepped outside for a cigarette.
That was Friday.
Ashboro PD called it a voluntary disappearance and closed the file. Her mother called Blake Garrett.
The last voicemail is nineteen seconds of a young woman laughing. Under the laugh, something breathes.
Blake’s heard that sound exactly once before — in a tunnel, standing over a body.
He takes the case because he’s broke and because nobody else will. By the time he understands what opened in that alley, he’s in too deep to walk, the Umbra have a leash on his wrist, and the thing under the River District has learned the sound of his heartbeat.
Ashboro has a hole in it now.
Blake Garrett put it there.
Book Three of The Umbra Venatori. One-click and go down after him.
sample chapters
Formatted for comfortable reading on desktop and mobile.
The sun bled out over Ashboro and came through my blinds in broken orange
stripes.
It did not improve the office.
I was halfway through counting stains on the ceiling tiles when three polite
taps hit my door.
Suburban panic.
I knew the sound.
I rolled upright. Both knees popped. The chair twisted under me and shed a
strip of duct tape onto the floor. Footsteps waited in the hall. Two sets.
Soft-soled shoes. Property-tax shoes.
I wiped dried coffee off my face and opened the door.
Thomas and Evelyn Ellison stood there with their hope dressed for church.
Khakis. Cardigan. Collared shirt. The kind of clothes people wear when they
still believe looking respectable gets answers. Thomas had a tight jaw and a
notepad in one hand. Evelyn held a manila envelope against her chest like it
was keeping something inside her from falling out.
Her eyes were red.
Dry, though.
No tears left.
"Mr. Garrett?" Thomas asked.
"You found him. Come in before the hallway gives you second thoughts."
They stepped inside.
The office smelled like cold coffee, old paper, and whatever had been dying in
the wall since March. Dented file cabinet. Dead ficus. Client chair with one
leg shorter than the others. City map over the water stain, pins clustered
around the River District.
Home.
Disability pension, if APD was feeling generous. Occupational embarrassment,
if you asked the old guard who remembered the chase, the dead kid, and the bats
they all agreed I had not actually seen.
I slid an overdue utility bill under the blotter.
"Coffee? It's hot and legally coffee."
Evelyn shook her head.
Thomas sat like his spine had been notarized. "We're here about our daughter.
Mara."
I took my legal pad from under a bail-bonds magnet.
"Runaway or missing?"
"She's not a runaway," Evelyn said.
Sharp.
Then smaller.
"She's twenty-four. Responsible. She was out with friends at Ridgeway Bar.
River District. She stepped outside for a smoke and never came back."
River District.
Of course.
I kept my face flat and wrote the name.
"When?"
"Friday," Thomas said. "Police say voluntary adult disappearance."
"Case closed?"
His jaw moved once. "Essentially."
"Boyfriend trouble? Debts? Drugs? Anything she was hiding badly?"
"No," Evelyn said.
Her fingers worked the envelope flap until the paper softened.
"New job. New apartment. We talked every Sunday."
People say responsible like it is armor.
It is not.
Thomas slid a photo across the desk.
Mara Ellison. Curly brown hair. crooked grin. Neon bar light bright in her
eyes. Alive in the careless way photographs get to be.
Two weeks old.
I turned it over. Date stamp. Nothing written on the back.
"Friends confirm she went out alone?"
"They said she wanted air," Thomas said. "Bouncer saw her near the alley. No
cameras on that block."
"Cops think cab?"
"They said it was possible."
Possible.
Useful word when you want to stop looking.
Evelyn leaned forward. "We heard you handle unusual situations."
There it was.
Unusual.
People say it when they mean magic, monsters, curses, dead things that do not
stay educational. They say unusual because the other words make the room too
honest.
"Sometimes," I said.
Thomas pulled out Mara's phone. Sleek rectangle. Cracked corner. "There's a
voicemail from that night."
Evelyn unlocked it with shaking thumbs.
Speaker.
Mara's voice came out a little drunk and very young.
"Hey, Mom, just checking in. Home by two. Love you."
Bar noise under it. Bass. Sirens somewhere outside. Somebody laughing too loud.
River District doing River District business.
Then the end of the message fluttered.
Low. Three pulses.
My stomach went cold.
Evelyn took the phone back. "We thought it was traffic."
"Play it again."
Second time, I closed my eyes.
There.
Not traffic.
Not bar noise.
Something folding wrong near the microphone.
I opened my eyes and wrote HUM? once because writing it three times would not
make it less ugly.
"Probably nothing," I said.
Bad lie.
Evelyn heard it anyway. Mothers do.
"Will you help us?"
I should have told them no.
Too expensive. Too late. Too much River District after dark and not enough
daughter left to find.
I should have told them a lot of things.
Instead, I slid the retainer agreement across the desk.
Thomas signed without reading.
That told me everything about the house they had come from.
"I'll start tonight," I said. "I need her friends' numbers, job, anyone she
dated, anyone she hated, anyone who hated her back."
Evelyn produced color-coded printouts.
She had done the work people do when sleep stops being useful. Names, numbers,
addresses, time stamps. Hope arranged in columns because columns look like
control if you stare long enough.
We shook hands. Hers were cold and damp. Thomas squeezed too hard and did not
notice.
They left with smaller backs than they had come in with.
The door clicked shut.
For a while, I did not move.
I played the voicemail again.
Mara laughed.
Then the flutter.
The office felt smaller.
I popped the SIM, fed the file into my old laptop, and clipped the last two
seconds. The waveform did not behave. It dropped into a clean trough around a
frequency I had heard before in a subway tunnel where a man had died with his
lungs full of blood and not enough room in his chest for the scream.
Threshold seed.
Maybe.
Best guess.
Best guesses were how I kept from calling every ugly thing by the wrong name
and getting cocky enough to die.
Mara Ellison had not run away.
Something had opened near her.
Maybe she stepped into it. Maybe it took her. Maybe she was still alive
somewhere the word alive had trouble holding its shape.
I replayed the sound until my ears rang and the laptop fan coughed ozone.
"Easy," I told it.
The screen blinked anyway.
Magic and consumer electronics never did learn to share a room.
I called Evelyn.
She answered on the second ring.
"Mr. Garrett?"
"Quick questions. Mara wearing jewelry Friday?"
"Silver hoops. Why?"
"Anything distinctive on the phone?"
"A sunflower sticker. Yellow. On the back."
"Coat? Purse?"
"She left them inside. Just cigarettes and the phone."
"Which way did she go?"
"Alley toward the river. Her friends thought she wanted air."
"Good. That helps."
"Did you find something?"
I looked at the waveform.
"Maybe."
"Is she alive?"
There are questions you do not answer until the room makes you.
"I don't know."
Silence.
"I'll keep looking," I said.
We hung up.
Silver hoops. Sunflower sticker. Alley toward the river.
Little things.
Sometimes little things are all the dead leave you.
I tried Murphy next. Landline first. Voicemail.
"Murph, it's me. River District. Missing woman. Possible threshold residue on a
voicemail. Bring silver if you come. Bring your gun if you are feeling
nostalgic. Call me."
I ended the call and stared at the phone.
He had not been answering much lately.
That was its own problem.
Tonight had enough.
I pinned the map straighter on the wall. Ridgeway Bar. Alley south. Pierpoint.
River. Two rooftops with sightlines to the alley mouth. I put red pins where
the night had probably gone wrong.
Tactics by push-pin.
Been worse.
The clock read 9:18.
Ridgeway would be loud by eleven. Drunks, traffic, phones, music. If anything
thin was still hanging around that alley, the noise would bury it.
Two hours.
My knees objected when I stood.
They were consistent, if nothing else.
I opened the file cabinet and took out the bat.
Solid ash. Old varnish. Dagaz burned deep into the grip.
Focus. Cane. Bad idea with a handle.
I set my fingers over the rune and felt the wood hum once.
Last time I followed a threshold sound, Wilfrey had been behind me with chain
mail and a worse attitude than mine.
Tonight it was just me.
Lucky city.
I muttered Aegis Brevis and let the ward crawl over my chest.
The overhead bulb fizzed out.
Glass ticked into the ashtray.
"Naturally."
The office smelled like ozone and cold coffee.
I locked up and limped down stairs that smelled like cat piss. Outside, rain
had left the street black and slick. Neon bled red down the block from the
Ridgeway sign.
I headed south with the bat over my shoulder and Mara's laugh still caught
somewhere under my ribs.
The River District smelled like old rain and hot fryer grease.
That was how I knew I was close.
The ache in my knee had settled into a steady argument by the time I hit the south blocks. Sirens rolled somewhere behind me, thin and bored. Couples fought on stoops. A guy in a velvet jacket tried to sell me a watch he probably still had wrist heat on.
Ashboro after midnight. Same circus. Worse lighting.
The whine from Mara Ellison's voicemail stayed tucked under everything. Not loud. Not useful. Just there, needling at the back of my skull whenever traffic noise dropped or a doorway breathed cold air across the sidewalk.
I followed it because I did not have anything better.
The Ridgeway's sign fizzed ahead, two letters out, leaving `R dgeway` in sick red neon. Smokers stood under it in a loose pack, heads down, shoulders hunched against weather that hadn't decided whether to rain or quit. The bouncer at the rope looked like he'd been poured into his shirt and left to harden.
He scanned me. Bat. Limp. Cheap jacket. Bad choices.
"Ten," he said.
I gave him a twenty.
"Looking for my kid sister," I said. "Curly brown hair. Sunflower phone case. Got drunk here Friday night and never made it home."
His face did not change. That was a kind of answer.
"People wander."
"People also get found in rivers."
He tucked the bill away. "Ask inside. Don't start anything."
"I usually finish things badly, so no promises."
He gave me half a look. Not amused. Fair.
Inside, the floor stuck to my shoes. Beer had soaked into the boards years ago and achieved legal residency. Bass thumped through a speaker with a cough in it. The place was all amber light, old wood, and bodies trying not to hear themselves think.
The hum in my skull dipped, then scratched higher.
Mara had been here.
Or something carrying her echo had.
I worked toward the bar with the bat loose at my side. The limp helped. People made space for it or pretended they hadn't noticed. Either way, I got where I was going.
The bartender watched me come. Black hair, gray streak, forearms like she'd carried kegs and thrown men who argued with her about it. She dried a pint glass with a rag that had given up on cleanliness and moved on to tradition.
"Help you?"
"Information." I took Mara's picture from my pocket and slid it across. "Friday night. Her name is Mara Ellison."
The rag stopped.
"You're not a cop."
"Retired."
"That means not a cop."
"It means worse insurance."
She looked at me. Then at the photo. Her mouth tightened by a fraction.
"Police already asked."
"They closed it."
"Then why are you here?"
I put another twenty under the picture. "Because her parents didn't."
The bartender did not touch the money. "She was here. Loud group. Pitchers, shots, too much laughing. She went out for air and never came back. That's what I told them."
"Did you believe it?"
Her eyes came up.
Good. There it was.
"Believe what?"
"That she just wandered off."
The glass squeaked once under the rag. "Kids do stupid things."
"Sure. I used to be one. Briefly. Before the city corrected me."
No smile.
I tried again, softer. "Her mother played me a voicemail. Mara sounded scared. There was something under her voice."
The bartender's hand stilled. The bar kept moving around us, loud enough to hide the quiet part.
"Ozone," she said.
I waited.
"They left," she said. "The whole group. Maybe twenty minutes. Came back different."
"Different how?"
"Quieter. Not sobered up. Scared quiet." She leaned in enough that I caught the coffee on her breath under the beer smell. "They smelled like a storm had crawled under their clothes. One girl cried in the bathroom. Your Mara."
The hum pinched behind my eyes.
"Names?"
She looked toward the back corner, where the light thinned out around a booth. "Kyle Mercer. Skinny guy. Beard doesn't know what it wants to be. He's been here most nights since."
I followed her glance.
Kyle Mercer sat alone with a glass of something dark and a phone he hated. Wiry. Pale. Patchy beard. His eyes kept flicking from screen to door to side exit and back again.
A man waiting for bad news.
"Thanks," I said.
The bartender finally took the twenties. "Darlene."
"Blake."
"If this gets loud, Blake, take it outside."
"That's where most of my life went wrong."
She snorted despite herself and turned away.
I did not go straight for Kyle. People who are already running in their heads need a second to show you the path. I cut past the pool table, paused beside two women sharing a sticky little table and a vodka cranberry with enough lime to qualify as salad.
The older one had bleach-blond hair growing out at the roots and a jacket that had survived at least three worse men than me. She had been watching Kyle too.
"You remember the group from Friday," I said.
She looked me over. "You buying drinks or trouble?"
"Trying to avoid both."
"Then you're in the wrong bar."
"Curly-haired girl," I said, showing the photo. "Mara."
The younger woman swallowed. "She was crying."
The older one nudged her glass aside. "Bathroom. I heard her through the door. Kept saying she didn't feel right."
"What happened before that?"
"They vanished for a bit," the older one said. "Came back like somebody had died. One of them kept saying it was just a game."
"Which one?"
She pointed with her chin. Kyle.
Of course.
"Mara leave alone?"
"Side door," the younger woman said. "Toward the river. Her friends tried to stop her."
"Tried hard?"
The answer sat on both their faces before either spoke.
"No," the older one said. "Not hard."
There are plenty of ways to lose someone. Cowardice is one of the common ones.
I thanked them and turned.
Kyle had seen enough. He slid toward the edge of the booth, hand going for his jacket pocket, eyes locked on the side door. I cut through the crowd faster than my knee liked and reached him just as he stood.
"Kyle Mercer."
He flinched so hard his glass tipped. Dark liquor spread across the table.
"I don't know anything."
"That's a rough opening statement."
"Let me pass."
"I need to ask about Mara Ellison."
Her name took the air out of him. His shoulders dropped. His face went loose and young and ruined.
"I told the police."
"You told them the useful version?"
His eyes snapped toward mine.
There it was again. Fear, with a secret under it.
The crowd had started to notice. Darlene's look from behind the bar said outside, or I start billing you for furniture.
I nodded toward the booth. "Sit down. Five minutes. Then you can go back to waiting for whatever you're waiting for."
Kyle stared at the bat, then at me.
"You're not a cop."
"No."
"Then what are you?"
"Late," I said. "Usually."
He sat.
I slid in across from him and set the bat beside my leg, not on the table. A reminder, not a threat. Reminders work better. Threats make people stupid.
Kyle picked at the edge of a coaster. His fingers shook.
"Start with the game," I said.
He stopped breathing for half a second.
"What game?"
"The one somebody mentioned after you came back. The one Mara found."
He rubbed both hands over his face. "It was nothing."
"Then tell it fast."
He laughed once. No humor in it. "Forum thing. Urban exploration. Ghost hunting. Some post about an abandoned warehouse by the rail spur. Said if you went at midnight and said the words, you could hear voices from someplace else."
"And that sounded fun."
"We were drunk."
"A defense attorney somewhere just got misty."
Kyle did not hear it. "Mara was into languages. Old religions. Weird stuff. She said the words were probably fake Latin. We brought candles. Recorded it on my phone. Everybody laughed."
The bar noise pushed at the booth backs. Bass. Glass. Somebody shouting for another round.
"Then?"
Kyle tore the coaster in half.
"The air changed."
I kept still.
"Heavy," he said. "Like the room had dropped underground. It got hard to breathe. Candles went blue. I know how that sounds."
"You'd be surprised."
"Mara kept talking after she finished the paper. Different words. Not even words. Her voice got low." He pressed his thumb into the coaster until it bent. "Her eyes were wrong."
"Wrong how?"
"Like she was looking at a light we couldn't see."
My knee quit aching for one cold second.
I had seen eyes do that before. Not often. Once was enough.
"What did you do?"
"Ran."
Honest. Ugly. Better than most.
"All of you?"
"Yeah. We left the candles, the paper, everything. Mara came after us but slow, like she was half-asleep. By the time we got back here she was crying. She said she felt sick. Said something was under her skin."
He swallowed. The coaster came apart under his fingers.
"Then she walked out."
"And you let her."
His jaw worked.
"We were scared."
"So was she."
That landed. I let it.
For a moment, Kyle looked ready to fold completely. Then shame turned sideways into anger, the cheap kind people use when they cannot carry the real thing.
"You think I don't know that?"
"I think you know plenty and said less."
"I didn't know what to say. Ghost ritual in a warehouse? Girl talks like a dead radio and then disappears? They'd have locked me up."
"Probably."
He stared at me.
"I need the warehouse," I said. "Exact."
"South rail spur. Follow it until it dead-ends near the river. Chain-link fence with a cut in it. Brick building. Three stories. Windows boarded, mostly busted." His voice thinned. "South wall has red graffiti. THE KING WELCOMES."
The words sat wrong in the air.
I did not like titles. Titles were how little things got bigger. You called something a king enough times, and sooner or later something on the other side started listening.
Maybe.
Or maybe some kid with a spray can had watched too many fantasy movies and I was making ghosts out of paint.
That would have been nice.
"Time?"
"Midnight. The post said midnight."
Mara's voicemail had come in at 12:47.
Almost an hour for fear to ferment.
"Phone you used to record," I said. "Where is it?"
Kyle's hand twitched toward his pocket.
"Video's useless."
"Great. I collect useless things. Mostly bills."
"It's static."
"Give it to me."
He hesitated long enough to make me wonder if I'd have to push. Then he pulled out a cracked phone and set it on the table like it might go hot.
The plastic felt warm when I picked it up.
Not fresh-from-pocket warm.
Wrong warm.
"Since Friday," Kyle said, watching my face, "I hear her sometimes."
"Where?"
"Phones. Bad speakers. Air conditioners. Anything with static." His eyes shone under the bad light. "I see her in crowds. Just the edge of her. Then nothing."
"You live alone?"
"Roommate's out of town."
"Stay somewhere else tonight."
"Why?"
"Because something may have looked back when you opened the door."
He made a small sound.
I hated that sound. Heard it too many times from witnesses, rookies, kids who thought the world had rules and had just learned it mostly had habits.
I pulled one of my cards and wrote my burner number on the back. "If you see Mara, or anything pretending to be Mara, call. Don't follow. Don't answer if it knows your name. Don't invite anything inside."
"Inside where?"
"Anywhere."
"You're serious."
"I'm tired. It looks similar."
The lights flickered.
Not the normal bar flicker. Not bad wiring and a landlord with moral flexibility. Every bulb blinked in the same rhythm.
Three beats.
Pause.
Three beats.
The sound under my skull answered.
Kyle went white. "That's it."
The bass from the speakers warped lower. Conversations hitched around us, then resumed as if someone had skipped a needle and put it back in the groove. A woman at the next table spilled her drink, stared at the spreading puddle, then blinked and went on talking.
Most people missed cracks when the world made them small.
Lucky bastards.
I stood too fast and my knee punished me for it. "Go home. No. Don't go home. Go somewhere crowded and boring. Church basement, all-night diner, police lobby if you can stomach fluorescent lights."
"Is Mara doing this?"
"I don't know."
That was the truth, and it tasted bad.
"Could be something riding her. Could be something calling through the same hole. Could be nothing tied to her at all and I am about to make a very dumb walk."
Kyle stared at me.
"What do I do?"
"Live through the night. Start there."
I left him with the card and took the side door.
The alley hit me with cold damp and trash stink. Ridgeway neon bled red down the brick. The security light over the loading dock snapped on and off in that same three-beat rhythm.
Pause.
Three.
The bat's rune warmed under my palm.
I did not know enough. That was the part that kept trying to crawl up my throat. I had a missing woman, a frightened witness, corrupted video, bad graffiti, and a pressure change that made the skin along my arms tighten.
Plenty for a cop to ask for backup.
I was not a cop anymore.
And backup had a way of arriving after bodies cooled.
The ground pulsed under my shoes.
Not hard. Not earthquake. More like the world taking a breath it had no business taking.
Kyle burst out behind me, slammed into the doorframe, and caught himself.
"It's spreading," he said. "That's what happened there. At the warehouse."
The alley narrowed around his voice.
"Then get moving."
"What if it comes for me?"
"Then run toward water or witnesses. Preferably both."
"And you?"
I looked south, past the mouth of the alley, where the rail yard sat under a low gray sky. The tracks glinted with light that did not quite belong to the moon.
"I go see what wants to be king."
"That's insane."
"It's not my first bad review."
The darkness at the far end of the alley thickened.
Not shadow. Shadow has edges. This had hunger.
I lifted the bat. "Lux Lucis."
Light bloomed from the rune, thin and white and not nearly enough. It pushed the dark back a few feet. Bought me a path. Charged me interest.
Pain stabbed up my arm, hot as a struck nerve.
I sucked air hard and nearly dropped the bat.
Magic was like that. Some people got elegance. I got a bill that came due in skin.
The dark held.
I started toward it anyway.
Behind me, Kyle ran. Good. One smart decision out of a whole week of stupid. That put him ahead of most of Ashboro.
The rail yard opened beyond the alley, wet tracks cutting south toward the river. Somewhere out there sat a brick warehouse with red letters on the wall and a woman who had either vanished into the crack or been dragged through it.
The hum in my skull sharpened until it sounded almost like a voice.
Not words.
Welcome.
I limped along the spur line with the bat raised and my hand burning around the rune.
The warehouse waited.
I intended to disappoint it.
The rail spur ended in rust and weeds.
Beyond it, the warehouse crouched near the river with its windows boarded and its roof peeled open in strips. Mud stink rolled off the water. Diesel hung under it. Old smoke, old metal, the kind of smell a building gets when people stop caring whether it falls down.
My knee did not like the gravel.
My knee could file a complaint.
The bat rested on my shoulder as I crossed the lot. The rune stayed warm under my palm, not hot enough to burn, just enough to remind me that magic usually spoke in pain.
The south wall found my flashlight first.
THE KING WELCOMES.
Red paint. Ten feet high. Fresh enough to shine where rain hadn't dulled it. The letters slanted wrong, stretched at the ends like the hand that made them had forgotten what straight meant halfway through.
"Subtle," I said.
No answer from the warehouse.
That was polite of it.
I circled the building instead of using the big sliding doors hanging open at the front. Old habit. Doors that invite you in tend to have plans. The concrete along the wall had buckled near the foundation. Hairline cracks ran out through the slab in little branching veins.
I touched one.
Warm.
Not sunlight warm. Not engine warm.
Wrong warm.
I pulled my hand back and wiped my fingers on my jeans, which did not help but made me feel like I had done something.
A side door sagged off one hinge. I nudged it with the bat. Rust squealed. The sound ran through the warehouse and came back thinner.
Inside smelled like machine grease, dust, wet insulation, and dead mice.
I went in because my life had become a series of bad entrances.
Moonlight cut through holes in the roof. Water dripped somewhere with the patience of a metronome. My flashlight slid over broken pallets, old drill machinery, crushed beer cans, wax puddles, and a circle chalked thick on the concrete near the center of the floor.
There it was.
Amateur work, maybe. Or work pretending to be amateur, which was worse. Five points instead of four. Symbols copied crooked. Latin-looking words bent around the edges by someone who had either used a phone screen or a hangover for reference.
The chalk lines had sunk into the slab.
That stopped me.
Chalk sits on concrete. This had pressed down into it, like the floor had softened and remembered the shape.
I crouched. My knee popped loud enough to make me wince.
Tiny cracks crawled out from the circle. Dark centers. Pale edges. The same sort of pressure bruising I had seen in a subway tunnel once, right before I learned how far a man can fly when a wight gets annoyed.
Not far enough to miss the wall.
I swept the beam around. Candle nubs. Paper ash. A cheap lighter melted into a black curl. Footprints in dust and spilled wax. Sneaker tracks. More than one person. Drag marks near the back wall.
My stomach tightened.
I followed them.
Behind a stack of pallets, red paint marked the brick again.
THE KING.
An arrow pointed down.
"You have got to be kidding me."
The pallets hid a steel grate set into a concrete pipe mouth. Or they used to. The grate had been bent outward, bolts snapped clean. Not cut. Snapped. The pipe sloped down under the warehouse, dark enough that my flashlight only scratched the first few feet.
Cold air breathed up from it.
It carried river water, rust, and copper.
Blood, maybe.
Please not blood.
I stood there long enough to consider the smart options. Call Murphy. Call Wilfrey. Call anyone with a badge, a ward, or a better medical plan. I even had Kyle's phone in my pocket, heavy with corrupted video and whatever static had crawled into it.
Then the ground pulsed.
Three beats.
Pause.
Three.
The chalk circle gave off a faint white dust, like bone scraped with a knife.
Smart options take time. Dead girls had already lost theirs.
"Lux Lucis."
The rune on the bat flared. A small white orb budded from the tip and drifted down into the pipe. It was not impressive. It was not supposed to be. Magic that looks impressive usually wants applause or witnesses.
Mine wanted payment.
A stitch of heat stabbed through my palm.
"Yeah," I told it. "Invoice me later."
I climbed down.
Rust rungs dug at my boots. The pipe bottom waited in ankle-deep runoff that soaked through my socks before I had both feet down. The orb floated ahead, white light trembling over curved concrete. The walls rippled in places, bowed inward like something huge had squeezed through and the tunnel had tried to clench shut behind it.
I started forward hunched over, bat raised.
Water slapped my shins. My breath came too loud. Every drip ahead sounded like a footstep until it didn't, and then it sounded worse.
Halfway to the first bend, the hum from Mara's voicemail came back.
Lower now.
Closer.
The orb stopped.
I stopped with it.
At the bend, something pale lay jammed where wall met floor.
For a second my mind made it trash. Wet cloth. A coat. Anything that let me keep walking without knowing.
Then the light caught a silver hoop earring.
"Ah, hell."
Mara Ellison lay twisted against the concrete, one arm folded under her wrong, hair stuck to her face in muddy ropes. Blood had dried under her nose and ears. The pressure had done things to her body that no parent should ever need language for.
The sunflower phone case lay cracked near her hand.
Bright yellow petals. Mud on the edges.
I crouched beside her, slow.
You don't loom over the dead.
No pulse. No breath. Cold skin.
I knew before I touched her.
I touched her anyway because Thomas Ellison was going to ask. Evelyn Ellison
was going to ask. They were going to sit across from me with their hands locked
together and need me to say I had checked.
So I checked.
Her wallet was still in her pocket. Cash untouched. Cards wet but readable. One earring had bent open; the other still hung in place. I took the wallet and the loose earring. Evidence, maybe. Keepsake, maybe. I hated the difference.
The concrete around her had bubbled into dime-sized craters. Rings spread from the spot where she lay, not chalk, not carved. Pressed. Like the tunnel had been soft for a second and something had stepped on reality.
I did not know what had killed her.
Not exactly.
That mattered. It kept my hands from shaking too much.
There were footprints in the silt beside her. Three toes. Wide as dinner plates. Deep enough that water pooled in them.
Something had come through after the ritual.
Or before.
Or the ritual had called it and then everybody pretended surprise when it answered.
I ran the light down the tunnel. The prints led on.
Mara stayed where she was.
That was the worst part.
I should have dragged her out. Should have wrapped her in my jacket, called her parents, called the police, stood in daylight with bad news and a worse suit. That would have been human.
The tunnel pulsed again.
The rings around her body glimmered faintly.
If I left the source alone, the city got more bodies. If I chased the source, Mara lay in the dark a little longer.
There are choices you don't win. You just pick the debt you can stand.
I hated that I could stand this one.
I stood.
"I'll come back," I said.
It sounded stupid in the pipe.
I said it anyway.
The prints took the right fork where the culvert split. I followed them, water rising over my boots, shoulder brushing curved concrete. The tunnel narrowed. Heat licked through the damp air, bringing sulfur with it.
My flashlight beam jittered.
No. My hand jittered.
The orb drifted ahead faster, like it had smelled trouble and mistaken itself for brave. I almost called it back. Then the wall to my left thudded.
Once.
Hard.
The tunnel answered with a rain of grit.
I froze.
Another thud. Closer.
Something big scraped stone around the bend.
I killed the orb before I thought better of it. The tunnel dropped into dark except for the bat's rune, a weak white glow that made the water look like oil.
The scrape came again.
Claws, maybe.
Or nails.
Or imagination with good timing.
I raised the bat and edged forward.
The bend opened into a wider service tunnel where the wall had split outward. Beyond the breach, rough stone sloped down into a black pocket under the city. Heat pushed out of it. Sulfur burned my tongue. A low wet grunt rolled through the dark.
The rune brightened.
"Please be a steam leak," I whispered.
The thing around the corner snorted.
Not a steam leak.
I stepped through the breach and almost lost my footing on slick stone. Red light pulsed ahead, faint as banked coals. It showed a shape too large for the tunnel, hunched under the ceiling, shoulders scraping concrete, fists hanging near the floor.
Gray hide. Furnace eyes. Three-toed feet sunk in muck.
Troll.
Of course it was a troll.
I knew trolls. Knew enough to know knowing trolls did not help much when one filled the tunnel and wanted to rearrange your skeleton.
It turned its head toward me.
Ten feet away.
Maybe eight.
"Surprise, asshole."
It charged first.
That was rude.
I ducked because up was taken. The troll's fist hammered the wall over my head and punched loose a slab of concrete. Grit blinded me. I swung low and caught its knee with the bat.
The rune flashed white.
The troll howled.
So did I.
Pain ripped through my palm and up my wrist, sharp enough to make my elbow lock. The bat nearly flew free. The troll's backhand caught me in the ribs before I could get clear and threw me into the wall.
Air left.
All of it.
I hit the water on my side and saw nothing for a second but red sparks.
The troll limped.
That was my entire victory.
One limp.
I sucked a breath that felt like broken glass and rolled before its foot came down where my chest had been. Water splashed over my face. I came up choking, grabbed a chunk of concrete, and hurled it at the glowing blur above me.
It bounced off the troll's cheek.
The troll blinked.
"Worth a shot."
It bellowed.
The sound shook the tunnel hard enough to crack something overhead. More grit came down. A bigger piece clipped my shoulder and spun me halfway around.
My arm went numb.
Bad.
The troll came on, dragging its bad leg, fast anyway.
"Pyra Ignis."
Fire jumped from the bat in a ragged ball. Not clean. Not pretty. It hit the troll's face and burst hot enough to steal the damp from the air. The smell of scorched hide slammed into me.
The troll screamed and clawed at its eyes.
I should have run.
I grabbed rebar instead.
Because I am consistent, if nothing else.
A length stuck from the broken wall, rusted and thick. I yanked it free with my good hand, nearly dislocated something that had already filed for divorce, and drove it toward the troll's middle.
It sank in.
Not far enough.
The troll grabbed the rebar, grabbed me with it, and lifted.
For one stupid second my boots left the ground and I had time to think, This is why people take up accounting.
Then the wall hit me.
Hard.
My shoulder cracked against concrete. My ribs tried to fold around themselves. I slid down into the water, breath gone again, vision pulsing at the edges.
The troll pulled the rebar free and tossed it aside.
Blood, or whatever trolls used when they were being inconveniently mortal, steamed in the tunnel.
It was healing already.
Of course it was.
It did not care.
My bat floated three feet away, half-submerged, rune flickering. I lunged, fingers closing around the grip just as the troll reached for me. Its nails scraped my jacket and tore cloth. I swung from the ground and cracked it across the knuckles.
Bone snapped.
The troll jerked back. Its howl went high and furious.
Half a second.
I spent it badly but fast.
At the tunnel split behind it, one fork ran toward the river. The other sloped deeper, hot air spilling out of it in waves. The troll kept angling to shield the deeper fork. Guarding it.
Guarding something.
I got one knee under me. The left one. The good one, which tells you how low the standards had fallen.
Wilfrey had taught me banishment phrases in a room that smelled like old paper and disapproval. Most of them were formal. Most required prep. Most did not account for bleeding in sewer water while a troll reconsidered your chewability.
I tried anyway.
"In nomine Ordinis, recede."
The troll paused.
Not stopped. Paused.
Its brow folded.
That was new.
I shoved myself upright, leaned on the bat, and put every ounce of cop voice I had left into the next line.
"Iter clausum est. Revertere."
The words tasted like copper. The rune flared and punched pain through my palm hard enough to blur the tunnel.
The troll took one step back.
I did not celebrate. Celebration is how you get eaten.
"Recede," I said again.
It snarled, eyes burning through the smoke, but it backed toward the deeper fork. Not because I was stronger. I wasn't. Not because the spell was good. It wasn't.
Because something down there called harder than I did.
That was the part I did not like.
The troll turned and crashed into the right-hand tunnel, dragging its bad leg. Its shoulder scraped stone. Its breath steamed. Then it vanished into the red heat.
I waited five counts.
Then five more.
My ribs hurt when I breathed. My shoulder had gone from numb to fire. Blood ran into one eye from a cut near my hairline. The bat's glow had shrunk to a sick blue line.
Still alive.
That was not the same as winning.
I picked up the rebar because hope is nice but rusted metal is more practical.
The deeper tunnel opened into a cavern under the city. The ceiling arched high enough to swallow the light. Water roared somewhere below, hidden in dark. The stone floor held more tracks. Troll. Smaller three-toed prints. Drag marks. Too many.
The troll stood at the far edge, a furnace-eyed shape in red haze. It watched me.
I raised the bat because I could not think of anything more useful.
It snorted and slipped down a passage where the rock swallowed it whole.
I did not follow right away.
I leaned against the wall and tried to breathe without making noise.
Friday night went on above us. Music, traffic, bad dates, people paying too much for drinks. Up there, Mara Ellison was still just missing.
Down here, the truth lay in a pipe behind me, and something with a title had opened a road under the city.
I wiped blood out of my eye.
Then I limped after it.
I followed the troll through water that smelled like river mud and burnt meat.
My ribs hated me. My shoulder had joined the union. Every breath scraped something tender inside my chest, and the bat's rune kept pulsing against my palm like it wanted to know if I had learned anything.
I had.
Trolls hit hard.
That was the whole lesson.
The tunnel narrowed as it sloped down. New concrete gave way to old brick, the kind the city laid back when men wore hats to dig holes and called it progress. Mortar sagged between the joints. Water ran down the walls and made the whole place shine in the rune glow.
Ahead, the troll dragged its bad leg.
Splash.
Pause.
Splash.
It should have been easy to track. It was the size of a refrigerator with anger issues and smelled like sulfur boiled in a gym sock. Still, the tunnel kept bending wrong. Each turn seemed to put the sound a little farther away and a little closer at the same time.
The pressure pulse rolled through again.
Three beats.
Pause.
Three.
Brick dust sifted into my hair. My ears popped. The bat flared white, bright enough to show fresh cracks spreading across the ceiling.
"That's bad," I said.
Nobody argued.
A maintenance ladder rose out of the wall at the next bend, rusted rungs leading to a manhole somewhere above. I touched the lowest rung. It shook under my fingers.
Exit route.
Maybe.
If I lived long enough to appreciate civil engineering.
The troll's prints kept going straight, three-toed dents gouged deep in the muck. Claw marks scored the brick shoulder-high. One swipe had peeled a row of bricks loose as if they were cheap tile.
I flexed my grip on the bat and kept moving.
The tunnel opened into a round chamber maybe fifteen feet across. Three smaller pipes fed into it on the far side. Water poured from a cracked keystone overhead and hit the floor in steady drops.
The troll crouched in the center with its back to me.
Steam rose from its burned face.
It knew I was there. Of course it knew. I was bleeding, limping, and glowing in the dark. Subtlety had left the party early.
I let the bat's light sink low and stepped into the arch.
The troll turned its head. Furnace eyes caught mine.
Something under the floor answered with another pulse.
The keystone cracked.
A chunk of brick dropped between us and shattered in the water.
The troll stood.
"Back up," I said.
It charged.
Training matters. Experience matters. So does being able to move faster than eight feet of angry basement muscle. I had two out of three on a good day, and this was not one.
I swung for the injured knee.
The bat connected with a crunch that shook my hand numb. The rune flashed. The troll howled and stumbled.
Then its fist hit my ribs.
The chamber vanished.
I came back against the wall, sliding into water, mouth open and useless. Air would not come. Pain filled the space instead. Big, simple, thorough.
The troll limped toward me.
So that was something.
I grabbed a loose brick and threw it at its face. It struck the snout and bounced off.
The troll blinked.
Not hurt enough.
It swung. I ducked under claws that carved brick where my head had been. Sparks spat from the wall. A pressure beat hit at the same time, and for one second the chamber rang like a bell.
My vision swam.
The troll felt it too. Its head snapped toward the far pipes, nostrils flaring. Something down there had its attention.
Not me.
I did not like being second place to whatever lived under the sewer.
I shoved off the wall and drove the bat into the troll's side. The rune burned hot through my palm. Hide blistered. The troll slammed an elbow down and clipped my shoulder.
My arm went dead.
The bat almost dropped.
Almost.
I caught it against my thigh, switched hands, and staggered back as another piece of ceiling cracked loose. It hit the troll's shoulder hard enough to buckle its knees.
The chamber was coming apart.
That changed the math. Not improved. Changed.
A length of rusted rebar jutted from an old repair patch near the wall. I lunged for it, boots slipping in the muck, and yanked until metal screamed free.
The troll turned.
Too fast.
I brought the rebar down across its collarbone with both hands. It sank into meat and stopped.
The troll screamed. The sound shoved heat against my face.
Then it ripped the rebar free and hit me with the back of its wrist.
I went down on one knee. Something in that knee made a wet little pop.
The old wound.
Perfect.
For a few seconds I could not stand. The troll came closer, healing as it moved, burned skin knitting over itself in ugly gray ropes.
"Pyra Ignis."
The spell came out ragged.
Fire crawled along the bat instead of leaping from it. Weak. Close work only.
I locked my jaw, drove upward from the bad knee, and shoved the burning bat into the troll's chest.
Flame stuck.
The troll staggered back, beating at its own hide. The smell hit like a forge full of rotten leather. I pressed because stopping meant dying. Bat across ribs. Bat across jaw. Bat into the same wounded knee.
Each strike burned me too.
Palm. Wrist. Elbow.
Magic took its cut.
The troll dropped to one knee. I raised the bat overhead and brought it down on the side of its skull with everything I had left.
The rune flared white.
The troll folded.
It hit the floor hard enough to send water up my legs and knock a fresh web of cracks across the dome.
I stood over it, swaying.
Dead?
Maybe.
The skull dented. One furnace eye guttered. The chest still twitched once, then stopped.
I waited for it to heal.
It did not.
Good.
Then the floor hummed.
Not pulse. Hummed.
The troll's body steamed, and the chamber around it started to shake like something below had noticed the cork was gone.
"Ah," I said. "Different bad."
The far tunnel glowed red.
Heat breathed from it in waves. The water around my boots rippled toward the glow, drawn downhill or pulled. Hard to say which. Harder to care.
I stepped over the troll.
Ten steps in, voices snapped behind me.
"Garrett! Don't move."
I froze.
Lights stabbed through the smoke. Hooded lamps. Silver ward-lines. Five shapes fanned into the chamber with more discipline than I had ever managed in my life. Boots hit water in a clean rhythm. Blades covered corners. Two covered me.
I raised the bat and my empty hand.
"Before anyone gets dramatic," I said, "it was like this when I found it."
The lead light dipped.
Michael Wilfrey stood behind it in a dark field coat cut over mail, the kind of old-order practicality that made every modern uniform look overdressed. Chainmail showed at his throat. A sword hung at his hip. His left hand stayed low and open, which was his version of friendliness.
"You are three levels below street grade in an unsealed breach zone," he said.
"Good evening to you too."
"Step away from the anomaly."
"Which one? The dead troll, the shaking floor, or the red hallway trying to sweat at me?"
His jaw tightened.
That meant all of them.
Two of his people pushed past with iron-latched cases. They worked fast, setting copper spikes into brick seams and unspooling braided ward-cord. A woman with a brass scrying rod held it toward the floor. The rod whined until the bones behind my ears joined in.
"Reading is climbing," she said. "Below us. Maybe eight meters."
"Moving?" Wilfrey asked.
"Up."
Nobody liked that.
I lowered the bat a fraction. "Mara Ellison is dead in the pipe back there."
Wilfrey's eyes cut to me.
"College kids found a forum ritual," I said. "Warehouse over the spur. Chalk circle upstairs. Something came through. Mara made it this far or got dragged this far. Troll was guarding the deeper fork."
"You followed alone."
"I sent an invitation but your office must have misplaced it."
"This location has been flagged since eighty-nine."
"For what?"
He did not answer.
The scrying rod shrieked higher.
One of the wardens flinched but kept hammering a spike into place. Credit where due. Wilfrey's people knew how to be scared without letting it steer.
"For what?" I asked again.
"Old settlement strata," Wilfrey said. "Unstable ground. Bad history. Enough that you should have called before lighting up the undercity."
"Kids lit it. I followed the smoke."
"You killed the thing holding pressure at the breach."
That landed wrong.
I looked at the troll. Then at the red tunnel.
"It was eating people."
"It may also have been lodged in the opening."
"Great. Next time I'll ask for its union card."
Wilfrey stepped closer. "This is not a joke."
No. It wasn't.
Mara in the pipe. Kyle shaking in a booth. Her parents in my office, still wearing hope because nobody had told them to take it off yet.
I swallowed whatever line came next.
"Seal it," I said.
"That's what we're doing. You are leaving."
"Mara's body stays?"
"Recovery team after stabilization."
"And if stabilization means she disappears into a file?"
Wilfrey's face did not change. That was the problem with him. The man could look honorable while deciding exactly how much truth the public deserved.
"Her family will be notified," he said.
"By who?"
"Not here."
"By who?"
The floor lurched.
Hard.
Water jumped sideways. A spike tore loose from the brick and clanged against the wall. The woman with the scrying rod swore and jammed it back into place with both hands.
"Breach in minutes," she said.
Wilfrey shoved me toward the arch. "Out."
"I'm not done."
"You are bleeding, limping, and standing over a breach for something that makes the troll look polite."
"That your official language?"
"Move."
Two blades angled closer. Not at my throat. Center line. Professional.
I could make a scene. I could swing on Wilfrey, get tackled by men with better gear, and wake up in a holding room while Mara's body went wherever difficult evidence went.
Or I could leave with something he did not see me take.
As another tremor shook the chamber, I bent as if catching myself and palmed a broken shard from the keystone. Fresh marks scarred one side, not graffiti, not natural crack. Something like a rune, burned into brick from the inside.
It went into my jacket.
"Fine," I said.
Wilfrey did not believe me. He was right not to.
I backed toward the tunnel. His circle formed around the red glow. Copper spikes hummed. Ward-cords trembled. The woman with the scrying rod counted under her breath. Wilfrey drew his sword.
For one second he looked old.
Not weak.
Old in the way men get when they have stood in front of too many doors and kept choosing not to move.
Then the red light flared and took the softness off him.
I turned and limped out.
The ladder waited at the bend, still shaking. I climbed one rung at a time, bad knee screaming, ribs clicking little threats with every pull. Below me, the chamber noise rose from hum to roar. The copper spikes answered in a thin, awful note that made the tunnel walls sweat.
Halfway up, I looked back.
Wilfrey stood in the center of the chamber, sword raised, surrounded by white lamps and red light. His people worked around him like they had practiced for disasters they hoped never came.
The floor under them bucked.
Then the bend swallowed the view.
I climbed.
Above me waited night air, a warded cordon if Wilfrey had brought enough sense, and parents who did not know their daughter was past saving.
Below me, Ashboro tried not to split open.
Story of my life.
I shoved the grate aside and crawled into night air.
It should have felt better.
It didn't.
The alley behind the pawnshop smelled like wet brick, hot wire, and old garbage. I slipped getting out, caught my shin on the iron lip, and said something unhelpful about municipal design. My ribs answered with a sharp little stab that made me lean against the wall until the world quit tilting.
Above me, a security bulb swung on its cord.
Three beats.
Pause.
Three.
The light flickered in time with the pulse under the street.
"No," I said.
The city did not take notes.
I wiped brick dust off my jacket and tried to hear past the blood in my ears. Sirens warmed up somewhere west, around the rail spur. Wilfrey's people were either sealing the breach or finding new ways to swear at it. Neither helped me in the alley.
My plan had been simple: reach the car, get dry socks, call Murphy, maybe call Monica if my pride could be distracted long enough.
Plans are adorable.
Halfway past a recycling bin, the pressure spiked.
Air thickened. Sound flattened. The security bulb flared bright yellow, then popped and dropped glass across my shoulders. I ducked too late.
The brick wall ahead folded inward.
Not cracked. Folded.
Mortar stretched like gum. Red brick puckered around a horizontal tear glowing bruise-purple at the edges. Heat blasted out, carrying ozone and turned earth.
Something pushed through.
It came shoulders first, body gray and wet-looking, as if concrete had tried to grow bones and gotten bored halfway. No eyes. Just dents where eyes should have been. Purple veins pulsed under its skin. Its fingers ended in blunt metal-colored claws that sparked when they scraped the wall.
It squeezed free with a sound like a drain choking.
The tear snapped shut behind it.
That left us with each other.
"Alley's closed," I said. "Try tomorrow."
The creature tilted its head.
A purple spark jumped from its knuckle and burned a clean hole through a dumpster lid.
"Or don't."
My gun stayed holstered. I had doubts about bullets. I had doubts about everything, but bullets most of all.
The bat came up.
The creature lunged.
I dove behind the dumpster. Its fist punched through the side and left a crater deep enough to hide rent money. Metal screamed. Trash bags burst and slid across the pavement. I rolled through them, shoulder grinding grit, came up swinging at the nearest elbow.
The bat hit with a crack.
Rune light flared.
Pain shot through both wrists and planted me on my ass.
The creature's arm bent wrong, then bent back.
Regeneration. Wonderful.
It backhanded me into the brick wall.
The wall stayed where it was.
My ribs tried something else.
I tasted copper. For a second I tasted only copper. The alley swam in red and yellow smears. The creature stalked closer, sparks dripping from its hands and eating little pits in the pavement.
Move.
I moved.
A busted mop handle stuck from a pile of trash near my boot. Wood, splintered at one end. Useless against most things. Better than prayer.
The creature swung again. I ducked under it, jammed the handle into the meat of its thigh, and twisted.
Purple fluid hissed out and chewed holes in the ground.
It hissed too. Not pain exactly. More like pressure escaping.
The bat felt heavy in my good hand. I stepped inside its reach and drove the pommel under its chin. Its head snapped back. Purple light spilled from its mouth and lit the walls.
I followed with a swing to the knee.
Something gave.
The creature staggered.
I needed a finish. I had an alley full of trash and one very bad idea.
A bent trash can lid lay near the dumpster. Aluminum, thin, dented, still wet with something I did not want to identify. I grabbed it and slammed the rim into the creature's neck.
The reaction was immediate.
It screamed.
Smoke rolled off the contact point. Gray flesh blistered white around the aluminum. The creature clawed at the lid, sparks spitting against the metal and dying there.
"Good to know."
I shoved harder.
It thrashed, caught my sleeve, and burned three holes through the fabric. Heat kissed my forearm. I let go and stumbled back as it tore itself loose from the wall.
The wound began knitting.
Slower this time.
The street pulsed under us.
Three.
Pause.
Three.
The creature used it. Lunged with the rhythm, faster than it should have been. Its forearm clipped my bad leg and took the knee out from under me.
I dropped, drove the bat up beneath its sternum, and barked, "Incende."
Fire crawled from the rune.
Not enough.
I shoved more through it.
The spell took its payment from my hand first. Heat ripped across my palm, then up my arm. The bat burned white-orange and the creature's torso caught with a roar that sucked air from the alley.
It smashed into one wall, then the other, setting trash alight.
Smoke filled the space. My eyes watered. My aim went sloppy. I kept swinging because there was no elegant version left.
Bat to knee.
Bat to throat.
Bat to the side of the skull.
The creature collapsed face-first into the pavement. I staggered to the trash pile, grabbed the splintered mop handle, and drove it through the soft place under the jaw with both hands.
It pinned the head to the asphalt.
Purple light sputtered.
Died.
The body went matte gray, hardening into something between flesh and stone.
I stood over it and breathed like a man losing an argument with his own lungs.
The alley wall coughed.
A brick dropped and shattered.
Hairline cracks spread from where the tear had opened, humming faintly. The breach had closed, but it had left a bruise.
I bent and pried a thin shard from the creature's shoulder. It came away like cold foil, sharp at the edge. Evidence. Maybe a sample. Maybe just another thing in my pocket that would get me arrested if I forgot it was there.
Sirens grew louder.
I should have left.
Then someone screamed from the next block.
Of course.
I tucked the shard beside the keystone fragment and limped toward the noise.
The Harrington Apartments stood four stories up at the corner, art-deco bones under decades of cheap paint. Glass blew from a fourth-floor window as I reached the curb. The crowd below scattered, shouting. Cubes of safety glass hit the sidewalk and bounced like ice.
Inside the lobby, fluorescent tubes flickered purple-white. The floor tiles had buckled into little peaks. Residents poured through the doors with phones, coats, pets, oxygen tanks, whatever their hands found first.
A woman in pajama bottoms grabbed my sleeve.
"There's something upstairs."
"How many?"
"I don't know. It moved wrong."
Helpful enough.
I pushed inside against the flow.
Hot dust. Burnt wire. Panic sweat.
The smells hit harder than the noise. The lobby lights strobed. Mailboxes rattled. The elevator dinged once, doors opening on darkness, then shut again like it had changed its mind.
At the stairs, a young man in a delivery shirt crawled toward the lobby with blood streaming from his nose. I hooked him under the arms and dragged him to the door.
"Out," I said.
"Upstairs," he gasped.
"I noticed."
The floor pulsed.
The whole building shuddered, then settled. The pressure dropped all at once. People outside stopped screaming in that strange way people do when terror leaves before they understand why. Confusion moved in fast. Confusion always did.
On the second-floor landing, a shadow flickered across the wall.
Too tall.
Wrong joints.
Gone before I could swear at it.
I took one step up.
My knee buckled.
Not pain. Failure.
I caught the rail and nearly went down. The bat clanged against the stair edge. My hand shook around the grip, palm raw and blistered from the last spell.
The shadow did not come back.
Maybe it had retreated. Maybe Wilfrey's dampeners under the rail spur had yanked the pressure back. Maybe it was waiting three floors up for me to climb into its mouth.
My body voted strongly against finding out alone.
I hated the vote.
I hauled the delivery kid outside instead.
A paramedic van slid to the curb, doors banging open. Two techs took him from me without asking questions. Behind them, squad cars sealed the block. Firefighters shouted over radios. The night filled with official noise, which is mostly panic wearing reflective tape.
I knelt at the curb and touched a crack in the asphalt.
Same hum.
Same three-beat rhythm.
Not one breach. Not one warehouse. The district had pressure points waking up under it like old wounds.
My burner was dead from tunnel water and neglect. Across the boulevard, a twenty-four-hour bodega advertised lottery tickets, phone cards, and coffee that had probably been boiled since lunch. I crossed through traffic and went inside.
The clerk took one look at the bat, the blood, the sewer water, and decided minimum wage did not include curiosity.
The payphone near the beer fridge still worked. That felt like a minor miracle until I remembered it had probably survived because nobody sane used it.
I dropped quarters and dialed Murphy.
Four rings.
Voicemail.
"Murphy, it's me. River District is opening in multiple places. Bring silver if you still have any. Bring first aid. Bring coffee if you're feeling romantic."
I hung up.
Outside, firefighters washed blood off the steps of the Harrington Apartments. Water ran pink into the gutter. Reporters gathered at the tape line, breath fogging, cameras aimed at windows that would look ordinary by morning if the city got lucky.
I found a bus bench under a dead streetlight and sat because standing had become a negotiation I was losing.
The bench was cold. My socks were worse. The bat lay across my knees, rune dimmed to a tired blue line.
I set the keystone shard beside the creature scale on my thigh.
Two souvenirs from a night that kept producing them.
Bootsteps approached from my blind side.
Measured. Unhurried.
I did not reach for the bat. Not fast enough to matter.
Michael Wilfrey stopped beside the bench. No hood now. No circle. Just a coat over field leathers and chainmail peeking at his collar like the world's least comfortable undershirt.
He looked across the street at the damaged building.
"Three more pressure events on parallel blocks," he said.
"That your version of hello?"
"It's my version of restraint."
His mouth almost moved. Not enough to count.
He offered a small flask.
I shook my head. My hand wanted it more than I liked.
He capped it and tucked it away. "Fault line runs under the district. Magical, before you ask. Old. Intermittent. We had it quiet."
"Until Mara and friends lit candles."
"Until something used them." He glanced at me then. "There is a difference."
The shard on my thigh pulsed warm through my jeans.
"People deserve warning," I said.
"About what?"
"About not playing ritual roulette in abandoned buildings. About not ignoring walls that fold in half. About the fact that your city has something awake under it."
"Fear feeds half the things you fight."
"So does ignorance."
Wilfrey looked tired then. Not beaten. Tired in the way men get when every answer costs someone else.
"Public warnings become dares," he said. "Dares become crowds. Crowds become bodies."
"Silence got Mara killed."
"No. Stupidity, bad luck, and something predatory got Mara killed." He faced me fully. "Your anger is looking for a desk to pound. Mine is not the right one."
I wanted to hit him.
Not with the bat.
Maybe with the truth, if I had any.
Across the street, an EMT closed the ambulance doors. Someone inside sobbed once and stopped.
"Her parents need her body," I said.
"They'll get it."
"And the truth?"
"They'll get enough."
"That's generous of you."
"It's merciful."
I looked at the ambulance across the street. Red light moved over the doors,
then slid off. Somewhere behind those doors, somebody was asking the first
question everybody asks after the world takes a piece of them.
Why?
"You people always call it that," I said.
Wilfrey's eyes hardened. "This district is closed until sunrise. My circles are dampening the hot points. If you go back in, I bind you if I can reach you. If I can't, whatever comes through may solve the jurisdictional problem."
"That's almost concern."
"It's resource management."
He turned to leave.
"Wilfrey."
He paused.
"The graffiti said THE KING WELCOMES."
That stopped him longer than I expected.
"Where?"
"Warehouse south wall. Smaller tag near the grate."
His face did not change, but the air around him did. Tightened. Sharpened.
"Go home, Garrett."
"That's not an answer."
"No," he said. "It is advice."
He walked away between squad cars and ambulance light.
I stayed on the bench until the street quieted. Crews packed gear. Reporters got their shots. Residents huddled in blankets and tried to laugh about broken windows because nobody had told them what else had broken.
Under my boots, the city hummed.
Low.
Waiting.
I put the scale and keystone shard back in my pocket, stood on a knee that wanted nothing to do with me, and started toward the dark edge of the block.
Wilfrey said go home.
I stood there longer than I meant to.
That was the problem with advice. Sometimes it arrived from the right person
and still tasted like leaving a body in the tunnel.
recommendation loop
Urban Fantasy / Occult Cop Thriller
Urban Fantasy / Reality Breach Thriller
Urban Fantasy / Cosmic Police Procedural