Cover of The Shadewalker

Portal Fantasy / Assassin Hunt

The Shadewalker

Jake Morrow survived becoming Valdros's impossible heir. Now a shadow-walking assassin is trying to break him.

by JT Kavanaugh

reader promise

Read this if you want...

Jake Morrow survived becoming Valdros's impossible heir. Now a shadow-walking assassin is trying to break him.

cover copy

The Story

Jake Morrow survived falling into another world.

Now he has to survive becoming important.

After helping save Varethon from Drakken's forces, the Ohio plumber has become something he never wanted to be: a symbol. The people call him Champion. The resistance sees hope. And the tyrant who rules Valdros has finally realized the lost heir is alive.

That's when the killings begin.

A mysterious assassin known only as the Shadewalker is hunting through the city, an enemy who moves through shadows, ignores walls, and always seems to be one step ahead. No fortress is secure. No route is safe. No secret stays hidden for long.

As Jake, Lyra, Talon, and the brilliant but unpredictable Zynn race to uncover the assassin's true objective, they discover a far more dangerous truth: the Shadewalker isn't trying to kill Jake.

He's trying to break him.

To stop the assassin, Jake must do what he does best: solve impossible problems with stubborn determination, practical thinking, and a legendary sword that grows more powerful every day. But every victory pulls him deeper into the fate of Valdros, and every mistake puts the people he cares about in the crosshairs.

Because this time, the war isn't just for a kingdom.

This time, it's personal.

Perfect for fans of portal fantasy, heroic fantasy, sword and sorcery adventure, magical weapons, reluctant heroes, found family, and epic battles against impossible odds.

Moods

urgentpersonalheroicdangerous

Hooks

shadow assassinreluctant championfound familymagical swordcity under siegeimpossible odds

If you like

portal fantasyheroic fantasymagical weaponsepic battles

sample chapters

Read the First Five Chapters

Formatted for comfortable reading on desktop and mobile.

Chapter 16: The Shadow in the Celebration

The first thing Jake learned after saving a city was that the city still expected breakfast.

Not his breakfast. Everyone’s breakfast.

Varethon woke the morning after the celebration with sore voices, dirty streets, and a practical need to put stalls back where people had danced on them. The western square looked like a party had fought a small war and both sides had retreated without cleaning up. Crimson cloth hung from windows. Gold paint dried badly on stone walls. Someone had tied a strip of ribbon around the handle of a public pump, which Jake noticed because pumps were one of the few things in this world he felt qualified to judge.

It leaked.

Of course it leaked.

He stood in the square with the Soulblade at his hip, bruised ribs under his jacket, and two city guards trying very hard to stand near him without looking like they were standing near him.

The pump dripped once.

Then again.

Jake stared at it.

“Absolutely not,” he said.

Zynn, who had been eating something folded in flatbread and making notes on a piece of slate, looked up. “Is this a strategic absolutely not or a personal absolutely not?”

“Both.”

“The dangerous kind.”

“The annoying kind.”

Jake crossed the square.

The nearest guard moved with him. The other guard realized too late that the first guard had moved and hurried to catch up. People noticed. People were always noticing now. A baker stopped brushing flour off a counter. A woman carrying a basket slowed. A child pointed until his mother put the hand down gently and then pointed with her eyes instead.

Jake ignored all of them and crouched beside the pump.

The casing was old iron, Valdros make, mounted into a stone basin with a carved runoff channel. The handle had been repaired three times. Badly twice. The leak came from a cracked collar near the base, where pressure worked against a seal that had probably been leather at some point before history and neglect got involved.

“That’s not even hard,” Jake said.

Zynn appeared beside him. “It has been leaking for six years.”

Jake looked at him.

“Possibly seven,” Zynn said. “Records disagree.”

“You have records for a leaking pump?”

“City maintenance ledgers are a kind of poetry if read under duress.”

Jake stood. “Tools.”

Zynn’s face lit up.

“No inventions.”

His face adjusted downward but not all the way. “Normal tools.”

“Your version of normal or mine?”

“Lyra’s version of permitted.”

“Better.”

Zynn produced a small roll of tools from inside his coat. Jake had stopped asking which pocket. Some questions led nowhere useful.

The tools were not exactly right. Nothing in Valdros was exactly right. But there was a narrow wrench, a tension clamp, a little curved pick, and a strip of treated seal leather. Good enough.

Jake took off his jacket and handed it to Zynn.

The square noticed that too.

A murmur moved through the nearest stalls.

Jake looked over his shoulder. “What?”

The baker looked away so quickly she almost put her brush into a basket of round loaves.

Zynn leaned closer. “You removed the Champion’s outer garment in public.”

“It’s a jacket.”

“Symbolically, apparently, it is more than a jacket.”

“I hate that.”

“Understandable.”

Jake crouched again and got to work.

For ten minutes, nobody attacked anyone.

It was almost suspicious.

He loosened the collar, cleaned grit out of the join, scraped the old seal free, wrapped the new leather, seated the collar, tightened it, backed it off, tightened again. The pump had the stubbornness of old plumbing everywhere: not malicious, just committed to the exact shape of its own failure.

He understood that.

When he pulled the handle, water came up clean and hard, splashing into the basin without dripping from the base.

A small cheer went up behind him.

Jake closed his eyes.

“No,” he said.

The cheer got louder.

“That was not heroic.”

Zynn handed him the jacket. “You repaired civic infrastructure in front of witnesses.”

“I fixed a pump.”

“Varethon has lower standards this week.”

A woman came forward with a clay cup, filled it from the pump, drank, and looked at Jake like he had personally negotiated with water.

Jake pointed at the pump. “Tell her the seal was bad.”

Zynn translated.

The woman answered.

“She says the seal was bad for six years,” Zynn said.

“Then the city needs a maintenance schedule.”

“Careful,” Zynn said. “You are one sentence away from founding a ministry.”

Jake put his jacket back on. “I need to leave this square.”

“Strategically or personally?”

“Both.”

They made it halfway across before the horn sounded from the north wall.

Something between alarm and celebration. The pitch of a city that didn’t know which one it was doing yet.

Jake stopped.

The two guards stopped. Zynn stopped chewing.

From the upper walkways, people turned toward the northern district. A second horn answered, shorter. Then bells from the west station picked up the pattern.

Jake had learned enough to know the difference now.

“Message,” he said.

Zynn folded the rest of his breakfast and stuffed it into a pocket. “Not city internal.”

“Drakken?”

“Wrong pattern.”

That was not as comforting as it should have been.

Lyra found them at the mouth of the square with Talon behind her and Mereth moving fast enough that his official coat flared at the sides.

Talon’s arm was still in a sling. His face had the carefully blank look of a man who had not slept and considered that a private matter.

Jake looked at him for half a second.

The crack between them was still there.

Fine.

They could work around cracks. Houses did it all the time.

Mereth spoke in Valdrosian. Talon translated.

“North road watchers found something at the third marker.”

“Varax?”

“No. He passed the fifth marker before dawn.”

“So what.”

Mereth handed Talon a small cloth-wrapped object. Talon unwrapped it on his palm.

A metal pin lay inside.

Black. Thin. Shaped like a crescent blade around a vertical line. Not Drakken’s tower mark. Not Varax’s insignia. Something smaller. Cleaner.

Zynn leaned in and immediately leaned back.

“Oh,” he said.

Jake did not like the shape of that oh.

Lyra’s expression did not change, which was worse.

“What is it?” Jake said.

Talon folded the cloth over the pin again. “A mark.”

“Love how specific everyone is being.”

Lyra looked toward the northern road. “Shadewalker.”

The square noise seemed to recede.

Jake looked at her. “That a name or a job description?”

“Both.”

“Of course.”

Talon’s voice went low. “Drakken’s assassin.”

Jake waited for the next sentence to make it better.

No one helped him.

“Assassin,” he said.

“Not a battlefield commander,” Lyra said. “Not a raider. He kills one person at a time and leaves everyone else alive to understand they were allowed to keep breathing.”

Jake looked around the square.

People were watching them now. Not cheering. Not pointing. Watching the way people watched smoke and tried to work out whether the fire was near enough to matter.

“What does leaving the mark mean?” Jake asked.

“It means he is in the city,” Talon said.

Jake’s hand went to the Soulblade.

The blade was quiet.

Not warm with warning. Not alert. Just the same old pull.

“How did he get through the gates?”

“He doesn’t use gates,” Lyra said.

“That feels like cheating.”

“It is the point.”

Mereth spoke sharply. Talon answered. Lyra cut in with two words that needed no translation because the tone carried the shape of stop.

Jake looked at her. “Problem?”

“Mereth wants to lock down the districts.”

“Bad idea?”

“Too late. If the mark is already at the third marker, lockdown gives people something to panic inside of.”

“Also traps us in a box with an assassin.”

“Yes.”

“Strong downside.”

Zynn took the wrapped pin from Talon, using the edge of the cloth instead of touching it directly. “This was placed where the watchers would find it.”

“Message,” Jake said.

“Invitation,” Zynn said. “Or announcement. Or both. Assassins are often very concerned with branding.”

Lyra looked at him.

“What? They are.”

Jake looked toward the pump he had just fixed. The woman with the cup was gone. The child who had pointed earlier was behind his mother now, peering around her skirt at the group in the square.

A few minutes ago, water pressure had been the problem.

He missed that.

“Who is the target?” Jake asked.

Everyone looked at him.

“Right,” he said. “Stupid question.”

“No,” Lyra said. “Obvious answer. Different thing.”

Talon’s eyes stayed on the wrapped pin. “Drakken will have received Varax by now.”

“If Varax made good time.”

“He did.”

Jake looked at him.

Talon did not explain how he knew. Relay timing, most likely. Old soldier math. The sort of thing Talon had spent twenty years knowing while other people got pulled through portals.

Not now.

“The Shadewalker moves quickly,” Talon said. “If Drakken sent him before Varax arrived, this was already planned. If he sent him after, then the response was immediate.”

“Which is worse?”

“Immediate.”

“Then let’s assume that, because apparently optimism has left the district.”

Zynn held up one finger. “It may be worse than immediate.”

Jake looked at him.

“Apologies. I heard it as I said it.”

Lyra turned toward the wall station. “We move.”

“Where?”

“Not any place people expect you to be.”

Jake glanced at the square, the banners, the repaired pump, the people trying not to hear every word.

“That list is getting long.”

“Then we shorten it.”

They moved through the western district in a pattern Jake could not have drawn on a map if someone paid him in aspirin. Lyra led. Talon followed close enough to translate and far enough to keep from crowding Jake. Zynn vanished twice and reappeared both times with information, once from a roofline and once from behind a shuttered fish stall that smelled like a decision someone should have reversed yesterday.

Mereth stayed behind to keep the square from turning into a rumor machine with legs.

A runner reached him at the square’s east edge before they had crossed half the open ground. The exchange was brief. Talon caught the last of it and fell into step beside Jake.

“Western Reach signal,” he said. “Unknown soldiers. A banner the watch hasn’t logged — broken wheel on red field. Not Drakken’s colors.”

Jake kept walking. “How close.”

“Outside engagement range. Mereth will monitor.”

“But it’s filed.”

“It is filed.” Talon paused. “Today’s problem arrived before it.”

Jake glanced at the pump. One problem fixed. Two problems now in the ledger.

That was a large job.

They reached a narrow stair built between two older walls and went down, not up. The air cooled. The city sounds thinned above them. Stone pressed close on both sides.

“Safe house?” Jake asked.

“No,” Lyra said.

“Good, because those keep getting found.”

“Way station. Old courier route.”

“Does everyone in this city have a hidden route?”

“Everyone useful.”

“Great for civic planning.”

They came out in a low chamber under an aqueduct support. The ceiling was arched brick. Water moved somewhere overhead with a steady pressure-heavy sound that made Jake think of mains, valves, shutoffs. There were three exits, all narrow. One lantern hung on a hook by the central support column.

Lyra took the lantern down and blew it out.

Darkness fell.

Jake’s hand tightened on the Soulblade.

“Hey.”

“Quiet,” Lyra said.

In the dark, the city became all sound.

Water overhead. Distant wheels. Zynn breathing too fast and then deliberately slower. Talon’s armor shifting once. Lyra moving without any sound at all, which was unfair.

Then iron scraped in the east passage. Low enough to be deliberate.

Jake drew the Soulblade.

Gold light spilled faintly along the edge, not enough to fill the chamber, enough to give shapes back to the dark. Talon stood to his left. Zynn had one hand inside his coat. Lyra was not where Jake expected her to be.

Of course she wasn’t.

The scrape came again.

A small object rolled out of the east passage and stopped near the center of the chamber.

Jake looked down.

Another black pin.

This one had a strip of crimson cloth tied through it.

Fresh cloth.

The same rough color as the banners in the square.

Zynn whispered, “That is theatrically upsetting.”

The Soulblade warmed in Jake’s hand.

Not much.

Enough.

Lyra’s voice came from the dark on the far side of the room. “He followed us.”

“Already?”

“No,” Talon said.

Jake looked at him.

Talon’s face was half-lit by the blade. “He was ahead of us.”

That was considerably worse.

The east passage stayed empty.

No footsteps. No breathing. No dark figure stepping into sight because apparently assassins had better dramatic discipline than warlords.

Jake looked at the pin. At the cloth. At the three exits.

“You said he kills one person at a time.”

“Yes,” Lyra said.

“But he wants me moving.”

“Yes.”

“So this isn’t the strike.”

“No.”

Jake nodded once. “It’s the plumbing dye.”

Zynn whispered, “The what?”

“You put dye in a system to see where the flow goes.” Jake looked at the east passage again. “He’s not attacking. He’s mapping us.”

Lyra stepped back into the faint light, and for once she looked openly approving.

“Yes.”

Talon’s gaze moved to the exits. “Then every place we run teaches him something.”

“And every place we stay gives him time.”

“Yes.”

Jake looked down at the pin.

Drakken had sent Varax to test strength.

Now he had sent this thing to test movement.

Different problem. Different tools.

The Soulblade hummed once, low and warm.

Jake crouched, picked up the pin by the cloth, and held it where the others could see.

“Then we stop being the water,” he said.

Zynn blinked. “Are we becoming the pipe?”

“No.”

“Shame.”

Jake looked at Lyra. “We pick the room.”

Her mouth moved by that quarter inch. “Now you are learning.”

A shape pulled back from the edge of the blade light in the east passage.

Not a person. A shadow pulling back from the edge of the blade light.

Jake saw it for less than a second.

Tall enough to be human. Thin enough to make the word feel provisional. Then gone.

No sound.

No attack.

Just proof.

The Shadewalker was real.

And he was already inside Varethon.

Chapter 17: Pick the Room

Jake picked the room with water in it.

This surprised no one.

The room was not technically a room, according to Zynn, who had opinions about categories and no fear of using them at the wrong time. It was a pressure chamber beneath the western aqueduct, part of the old city works, built back when Varethon’s engineers apparently believed every maintenance space should also look like a place where someone could summon weather.

Round walls. Stone floor. Four arched entrances. A central basin the size of a truck bed, filled with water moving in a slow circle under its own pressure. Copper pipes ran up the walls in bundles, disappearing into the ceiling. Some were green with age. Some were patched. Some had been patched over patches, which Jake respected in a technical and judgmental way.

Above them, water moved through the aqueduct with a deep, even pulse.

Jake stood at the edge of the basin and listened.

“Here,” he said.

Lyra looked around once. “Four entrances.”

“Three obvious ones.”

“The fourth is still an entrance.”

“Yes.”

“That is usually the problem with entrances.”

Zynn was already at the nearest pipe cluster, one hand hovering over a pressure wheel. “This is beautiful.”

“No touching yet,” Jake said.

Zynn pulled his hand back half an inch. “I was admiring.”

“Admire with your hands in your pockets.”

“I have too many pockets for that to be meaningful.”

Talon stood near the west arch with his wounded arm still in its sling and his good hand on his sword. He had been quiet since they left the way station. Not the old quiet, the one that meant he was withholding information. This was a different kind. The kind that came after everything had been said and nothing had been fixed.

Jake could work around it.

He did not have to like it.

Lyra crossed to the north arch and looked into the corridor beyond. “Why this room?”

“Water shows movement,” Jake said. “Sound carries. Floor’s wet near every entrance. Pipes vibrate if something touches them. Basin gives us one open center and bad footing if he tries to cross fast.”

Zynn turned, visibly delighted. “You are weaponizing maintenance.”

“I am using the room.”

“That is what I said, with less joy.”

Lyra crouched and dragged two fingers through the thin water film at the threshold. “He may not step.”

“Then we learn that.”

“He may not enter.”

“Then we learn that too.”

Talon looked at Jake. “You mean to wait.”

“No,” Jake said. “I mean to stop running where he points.”

The words sat there for a second.

They were true. That helped.

The second Shadewalker pin lay wrapped in cloth on the basin ledge. Black metal. Crescent around a vertical line. Crimson strip tied through it like a joke at the city’s expense.

Jake hated that little strip of cloth more than he wanted to admit.

Varethon’s banners had been messy and fast and human. People had made them because they needed something to look at besides burn marks and empty foundations. The Shadewalker had taken that and turned it into a thread through a threat.

Different enemy. Different tools.

Same basic problem: someone else trying to decide what things meant.

“How much light can we get in here?” Jake asked.

Zynn smiled.

Lyra said, “No.”

“You don’t know what I was going to say.”

“I know your face.”

“My face is innocent.”

“Your face is holding a torch near a powder barrel.”

Zynn looked wounded. “I would never hold a torch near a powder barrel.”

“Because you would build something smaller to do it for you.”

“Efficiently.”

Jake pointed at the pipes. “Light. Not explosion.”

“Fine.” Zynn pulled a folded metal frame from his coat. It should not have fit there. Jake had stopped respecting the coat as a physical object. “Mirror plates. Cracked, but useful. The aqueduct service lamps feed into the wall channels here, here, and here. If I redirect⁠—”

“No permanent damage,” Lyra said.

“Why do you assume⁠—”

“Zynn.”

“Temporary damage.”

“Zynn.”

“Temporary adjustment.”

“Better.”

Talon stepped toward the central basin. “If the Shadewalker is already ahead of us, he may know this chamber.”

“Probably,” Jake said.

“Then choosing it does not guarantee advantage.”

“No. But it makes the problem specific.” Jake looked at the four arches. “I can work with specific.”

Lyra’s gaze shifted to him. Not approval exactly. More like she had filed the answer where she could reach it quickly.

They set the room in twenty minutes.

Zynn redirected three service lamps with mirror plates and polished scraps of metal that turned the chamber from dim to unevenly bright. Light hit the basin, the wet floor, the lower pipes. Darkness still pooled in the arches, but they had edges now. Jake liked edges. Edges could be watched.

Lyra placed Talon at the west arch and herself at the north. Jake took the basin edge, Soulblade loose in his hand. Zynn climbed halfway up a pipe bundle and wedged himself on a maintenance bracket with a small device in his teeth and another in his left hand.

“You fall, I am not catching you,” Lyra said.

Zynn removed the device from his mouth. “That feels unnecessarily personal.”

“It is.”

He nodded. “Clear communication.”

Jake turned the Shadewalker pin over with the tip of the Soulblade. “Now what?”

“Now we give him what he wants,” Lyra said.

“Which is?”

“Movement.”

Jake looked at her.

She looked back.

“Right,” he said. “Bait. Love being bait. Very dignified.”

“You said we stop being the water,” Zynn said from above.

“I was hoping no one wrote that down.”

“I did not write it down. I remembered it with enthusiasm.”

Talon’s mouth moved. Not a smile. Too small. But something.

Jake saw it and looked away first. The time for that wasn’t now.

He stepped into the open space between the basin and the south arch. The floor was slick under Zynn’s boots. The Soulblade stayed quiet, but its quiet had changed since the Shadewalker appeared. Less asleep. More listening.

Jake raised his voice.

“I know you can hear me.”

Water moved overhead.

Nothing else.

“This is the part where you leave another dramatic piece of jewelry and make us all feel underdressed.”

Zynn whispered, “It is not jewelry.”

“Not helping.”

The east arch darkened.

Not much.

Just enough that Jake’s eyes went there before his brain found the reason.

Lyra saw it too. Talon shifted at the west arch. Zynn stopped breathing loudly, which made the room seem larger.

A voice came from the east arch.

“You speak to shadows as if they owe you answers.”

The voice was soft. Male, probably. Not accented like Talon or Varax. Smoother than both. It did not echo correctly in the chamber. It seemed to arrive from the arch and the ceiling and the basin all at once.

Jake tightened his hand on the hilt. “I’m new here.”

“So you are.”

The darkness at the east arch thinned.

A man stood there.

Or close enough that the distinction felt rude and important.

Tall. Narrow. Wrapped in dark cloth that did not move like cloth. His face was covered from nose to throat, and the upper half was pale, almost ordinary, except for the eyes. Not glowing. Not black. Just too still. His hair was tied back. No armor Jake could see. No heavy weapon. A thin blade rested in his right hand with the tip angled down, as if it had been waiting there before the rest of him arrived.

The Shadewalker looked at Jake.

Then at Lyra.

Then Talon.

Then up at Zynn.

“All four,” he said.

Zynn said, “I dislike being counted.”

Jake kept the Soulblade between himself and the east arch. “You left your pin.”

“I left two.”

“That felt needy.”

The Shadewalker’s eyes came back to him. “Lord Drakken said you used humor when afraid.”

“Lord Drakken sends teenage messengers strapped to threat tubes. His people skills are not my north star.”

The Shadewalker did not react.

That was worse than Varax smiling.

Varax had moved like a man. Dangerous, trained, precise, but still a man. This thing stood in the arch with water on the floor and light on the walls, and the room did not seem convinced he occupied space.

Lyra said something in Valdrosian.

The Shadewalker answered without looking at her.

Talon translated under his breath. “She asked why he came into the room. He says he did not.”

Jake looked at the figure.

Then at the floor.

No wet footprints.

None.

The floor between the east arch and the room was slick with water. Jake could see Lyra’s tracks. His own. Talon’s near the west side. Even the tiny drip trail under Zynn’s pipe bracket.

Nothing from the east arch.

“That’s annoying,” Jake said.

“It is meant to be,” the Shadewalker said.

Zynn made a small sound from above. “Projection? Aether shell? Light-folding? No, wait, don’t answer. Actually answer. No, wait⁠—”

Lyra said, “Zynn.”

“Right.”

The Shadewalker lifted the thin blade a fraction. “The city is loud with your name.”

“Not my idea.”

“Names are rarely owned by the people carrying them.”

“That supposed to be deep?”

“No.”

“Good.”

“It is supposed to be useful.”

The figure shifted.

Not stepped. Shifted.

The light on the basin broke, just for half a second, and the Shadewalker was no longer at the east arch.

He was behind Talon.

Jake saw Talon’s head turn.

Too slow.

“Left!” Lyra snapped.

Talon moved because Lyra said it, not because he had seen enough. The Shadewalker’s blade cut through the space where his throat had been and opened a line across the side of his neck instead. Blood hit the stone.

Jake ran.

The floor tried to kill him. Wet stone, bad angle, too much speed. He used the basin edge, shoved off, and brought the Soulblade across in a wide sweep.

The Shadewalker was gone before the blade arrived.

Gold light clipped the west arch and carved a bright mark into the stone.

Talon dropped to one knee, hand at his neck.

Not deep. Bleeding anyway.

Jake put himself between Talon and every shadow he could see.

“You okay?”

Talon’s answer came rough. “Yes.”

“That was not a yes-shaped amount of blood.”

“Superficial.”

“I hate this world’s standards.”

Lyra had moved to the center of the room, both blades out, body angled so she could cover north and east. “He is testing reaction time.”

“No,” Jake said.

The word came out before he finished the thought.

Lyra glanced at him.

Jake looked at Talon. At the cut. At the west arch. At the place where the Shadewalker had appeared.

“He could have killed him.”

“Yes,” Lyra said.

“He didn’t.”

Talon got one foot under him. “Message.”

“Or measurement,” Zynn said. His voice had lost all bounce. “Depth of cut. Delay between appearance and defense. Jake’s response path. Lyra’s call speed.”

Jake looked up. “You got all that from one cut?”

“No. I got all that from being deeply unhappy.”

The Shadewalker’s voice came again, this time from the south arch.

“The old soldier matters.”

Jake turned.

The figure stood just inside the shadow line. Still no footprints.

Jake moved toward him and stopped before the floor angle gave the Shadewalker a line past him.

“Stay away from him.”

“An instruction?”

“Try it and find out.”

The Shadewalker’s eyes moved to the Soulblade. “It answers you faster when another life is close to ending.”

Jake felt that land.

The market lane. Talon stepping into Varax’s throat line. The transformation rising before Jake decided to call it.

This was not just mapping movement.

He was mapping pressure.

Lyra moved one step left. “Jake.”

“I know.”

“Do you?”

“Probably not, but I know enough.”

The Shadewalker’s gaze slid to Lyra. “The last of the east unit.”

Lyra went very still.

Jake saw it.

So did the Shadewalker.

“Do not,” Jake said.

The Shadewalker continued as if Jake had not spoken. “You lived under bodies on a western wall and learned to look down. Then you taught him to look up.”

Lyra did not move.

Nothing in her face changed.

That was how Jake knew the blade had gone in.

Jake stepped forward.

The Soulblade warmed.

The Shadewalker looked pleased without changing expression.

There it was.

The room. The water. The light. The exits. All of it had been their idea.

And he was still choosing the pressure points.

Jake stopped.

No.

“Zynn,” he said.

“Yes?”

“Do the thing.”

“Which thing?”

“The second thing.”

Lyra’s eyes flicked up.

Zynn’s answer came carefully. “That thing is not calibrated.”

“Is it directional?”

“Emotionally.”

“Zynn.”

“Mostly.”

“Do it.”

The Shadewalker tilted his head.

A mistake. Or the closest thing to one they were going to get.

Zynn slammed his palm into the device strapped to the pipe bundle.

Every service lamp went out.

Darkness swallowed the room.

Then the basin exploded upward in white steam.

Not hot enough to cook anyone. Jake hoped. Hot enough to fill the chamber in one violent breath, forced through the copper pipe bundle and out through six cracked valves Zynn had apparently decided counted as mostly directional.

The room vanished.

Sound changed. Water hammered overhead. Talon coughed. Lyra moved somewhere to Jake’s right. Zynn yelped in triumph and then pain, probably because steam had opinions about exposed fingers.

Jake closed his eyes.

He listened.

The Shadewalker made no footsteps.

Fine.

Don’t listen for feet.

Listen for what the room did around him.

Steam moved. Water dripped. Pipes clicked. Air pulled toward exits.

At the south arch, the steam bent wrong.

Jake opened his eyes and swung.

The Soulblade cut through white vapor and met metal.

A real impact.

The Shadewalker’s thin blade caught the strike. Jake felt real resistance on the other side.

“There you are,” Jake said.

The Shadewalker twisted away.

Lyra came out of the steam low and fast, both blades crossing where his body should have gone. One blade caught cloth. Dark fabric tore. No blood.

Talon threw a short blade from the west side. It struck stone where the Shadewalker’s head had been half a second earlier.

Zynn shouted, “Duck!”

Jake ducked because experience had value.

A metal clamp shot through the steam over his head, trailing wire. It hit the south arch and snapped open, anchoring across the doorway with a ringing crack.

The Shadewalker could not retreat that way.

For exactly one second.

Then the shadow under the arch folded and the wire went slack.

The Shadewalker appeared at the east arch again, one sleeve torn, eyes fixed on Jake.

Now there were footprints.

Only two.

Wet, narrow, human enough.

“Got you,” Jake said.

The Shadewalker looked down at the footprints.

Then back at Jake.

“Once,” he said.

“Once is popular around here.”

Lyra moved to flank. Talon was on his feet again, blood dark against the bandage he had pressed to his neck. Zynn scrambled down from the pipe bracket with one hand wrapped in cloth and the other holding a device that clicked in a way Jake did not appreciate.

The Shadewalker retreated one step into the east arch.

“Lord Drakken sends his regards,” he said.

“Tell him to send a fruit basket next time.”

“His next gift will be more personal.”

The words were for Jake.

The Shadewalker’s eyes went to Jake’s jacket pocket.

Not the Soulblade.

The pocket.

The dead phone.

Jake moved too late.

The shadow at the east arch collapsed inward, and the Shadewalker was gone. One moment present, the next the arch held only stone.

The steam thinned in ragged sheets.

No one spoke for three seconds.

Then Jake reached into his jacket pocket.

The phone was still there.

Cold. Dead. Familiar.

Wrapped around it was a strip of black cloth.

Jake pulled both out.

The cloth had been tied in a neat knot around the phone case. In the knot sat a third pin, smaller than the others, its crescent edge tucked against the cracked corner of the screen.

Zynn came closer and stopped before touching it.

Lyra’s face went flat.

Talon lowered his hand from his bleeding neck.

Jake stared at the phone.

The Shadewalker had been close enough to take it.

Close enough to tie the cloth.

Close enough to leave it.

And he had chosen not to.

Jake’s mouth went dry.

The city had seen him as Champion.

Drakken had threatened his father.

Talon had broken his past open.

This was different.

This was Columbus in the assassin’s hand.

Jake closed his fingers around the phone until the cracked corner bit his palm.

Lyra said his name.

He looked toward the east arch.

The footprints were already filling with water.

“Now,” Jake said, “it’s personal.”

Chapter 18: The Wrong Target

Jake did not sleep after the phone.

This was becoming a pattern, and he was starting to take it personally.

The dead phone sat on the table in Mereth’s upper room, wrapped in black cloth, the Shadewalker pin beside it like a tiny accusation. Zynn had insisted on putting the pin in a shallow ceramic dish, then drawing three chalk circles around it, then placing a fork beside the dish for reasons he described as “unlikely but not impossible.”

Jake had not asked for the longer version.

The phone was the problem.

Not because it was useful. It wasn’t. It had not become useful in the night. It did not suddenly have signal, battery, maps, flashlight, voicemail, or a magical application labeled Return To Columbus, Tap Here. It was still a dead rectangle with a cracked corner and a smudge of dust along the case.

But the Shadewalker had touched it.

That changed the room around it.

Jake sat with his elbows on the table and looked at the phone until the edges of it stopped being a phone and became every other thing he had not dealt with. His apartment. His truck. The keys in his pocket that started nothing here. The jobs he had missed. The bag of groceries on the counter, which by now had either become science or a landlord problem.

He pressed the power button once.

Nothing.

“Still dead?” Zynn asked.

He was on the other side of the table with his injured hand wrapped in cloth and two tools spread in front of him. One was a normal magnifier. The other had six lenses, three brass arms, and a little dial that clicked even when no one touched it.

“Shockingly.”

“I could try to charge it.”

“No.”

“I did not say disassemble.”

“You were emotionally close to saying disassemble.”

Zynn considered this. “That is fair.”

Lyra stood by the door with her shoulder to the frame, not watching Jake directly and therefore watching him completely. Talon was at the window with a bandage at his neck and his wounded arm still in the sling. Mereth had left before dawn to keep the city from stampeding itself into policy.

Bitter medicine. Lamp oil. Damp wool. The room held all three. Varethon outside sounded too awake for the hour. The Shadewalker had done that without killing anyone.

Efficient.

Annoying.

Jake set the phone down. “What do we know?”

“Several things,” Zynn said immediately.

“Useful things.”

“Fewer.”

Lyra stepped to the table. “He can project or displace without leaving a trace. He can be forced into physical contact under environmental pressure. Steam disrupted whatever method he was using. Light alone did not.”

“He cuts shallow when he wants a measurement,” Talon said.

Jake looked at the bandage at Talon’s neck.

Talon did not look away.

That was a start. Not forgiveness. Not trust. A start.

“He knew about your phone,” Lyra said.

“Yes.”

“He knew it mattered.”

“Yes.”

“How?”

Jake leaned back. The chair creaked. “He watched me with it.”

“When.”

“Last night. Earlier. Any time I took it out.” He looked at the phone again. “Or Drakken told him.”

“Drakken would not know the object mattered,” Talon said.

“Unless Varax saw it.”

“Varax saw many things.”

“Great. My dead phone has become enemy intelligence.”

Zynn lifted one finger. “Technically, the enemy does not know what the object does.”

“It does nothing.”

“Which may make it harder to classify.”

“I am comforted.”

“You should be cautiously comforted.”

Lyra ignored both of them. “He wants you angry.”

“He got there.”

“Then assume every next step is built around that.”

Jake knew that.

Knowing did not help as much as it should have.

He picked up the black cloth. It was smooth, heavier than it looked, and cold in a way cloth had no business being. The pin had left a faint crescent mark pressed into the fold.

“Why leave it?” he said.

“To show reach,” Talon said.

“Yes. But why not take the phone?”

“Because taking it gives you loss,” Lyra said. “Leaving it gives you invasion.”

Jake stared at the cloth.

There were mornings when he missed a simple burst pipe with a cleanout access and a customer who wanted to explain how much cheaper this would be if they had rented a machine.

This was one of them.

A knock came at the door. A single knock, quick and nervous — nothing like Talon’s coded triple.

Lyra had a blade in her hand before the second knock finished.

Talon moved away from the window.

Zynn swept the pin dish under a folded cloth with one hand and nearly knocked the fork off the table with the other.

Jake stood and took the Soulblade.

Lyra opened the door.

A city guard stood outside. Young, breathing hard, helmet tucked under one arm. He looked past Lyra, found Jake, then immediately decided looking directly at Jake was too much responsibility.

He spoke in Valdrosian.

Lyra’s posture changed.

Not much.

Enough that Jake’s ribs tightened before the rest of him knew why.

“What?” he said.

Talon translated. “A body was found in the eastern dye market.”

Jake’s hand shifted on the Soulblade. “Shadewalker?”

“The mark was there.”

“Who?”

The guard answered before Talon asked, as if he understood the shape of the question.

Talon’s face hardened.

“Not a guard,” he said. “Not a councilor. A banner painter.”

Jake went still.

“The people painting the Champion banners?” Zynn asked.

Talon listened to the guard’s answer, then nodded once. “Yes.”

Lyra closed her eyes for half a second.

That was bad.

Jake looked at the phone. The black cloth. The pin.

The Shadewalker had touched Columbus to make Jake personal.

Now he had touched the city to make Jake responsible.

“Show me,” Jake said.

Lyra turned from the door. “No.”

“That’s going to get old.”

“It was old the first time.”

“I’m going.”

“That is exactly what he wants.”

“Probably.”

“Then no.”

Jake looked at her. “A man died painting my symbol on a wall.”

“Yes.”

“Because of me.”

“Because the Shadewalker killed him.”

“Because Drakken sent him for me.”

“Both true,” Lyra said. “Only one helps right now.”

Talon stepped in. “If you go openly, the market becomes a theater.”

“If I don’t go, people hear the Champion hid when the first body dropped.”

Zynn grimaced. “That rumor would have legs.”

“Long ones,” Jake said.

Lyra’s blade lowered a fraction. “Then we go incorrectly.”

Jake looked at her.

“Not with guards. Not by main roads. Not where he expects the obvious reaction.”

“Define incorrectly.”

Lyra looked at Zynn.

Zynn’s face lit in a way Jake had learned to fear.

“Oh,” he said. “I have a cart.”

“Of course you have a cart.”

The cart was awful.

Not structurally. Structurally it was fine, possibly too fine. Zynn’s idea of a cart involved false panels, fold-down steps, hidden brackets, two compartments large enough for a person to crouch in uncomfortably, and a suspension system that made no sense until Jake rode in it and immediately wanted one for every service van in Ohio.

The awful part was the smell.

The cart belonged, according to Zynn, to a pickled fish seller who owed him three favors and had asked no questions because people in Varethon who owed Zynn favors had apparently learned that questions multiplied.

Jake crouched in the left compartment with his knees near his ears, the Soulblade wrapped in sacking beside him, and a crate of pickled fish directly above his head.

“This is not what I meant by incorrect,” he said.

Lyra crouched opposite him, perfectly composed because of course she was. “You asked for a definition.”

“I did not ask for fish.”

“Definitions vary.”

The cart lurched forward.

Jake’s ribs objected to the position, the smell, the motion, and probably the general state of politics.

Through a thumb-width slit in the panel, he could see the lower half of the street passing by. Boots. Wheels. A dropped strip of crimson cloth ground into the wet stones. A dog sniffing something near a drain and then making the wise decision to leave.

Zynn drove the cart. Talon walked two streets over with the guard, visible enough to draw attention and slow enough to be followed by anyone lazy. Mereth had been told nothing until after they left, which meant Mereth was going to be angry in a civic way later.

One problem at a time.

The eastern dye market announced itself before they reached it.

Color ran in the gutters.

Blue first, then yellow, then a red so bright it looked wrong in daylight. The market worked with vats and powders and cloth hung in long strips overhead, turning the streets into narrow canyons of color. Steam rose from open kettles. Workers stood in clusters, not working, their stained hands hanging at their sides.

The cart stopped behind a closed stall.

Zynn tapped twice on the side panel.

Lyra pushed the hidden latch and slid out first. Jake followed, unfolding himself from the fish compartment with all the dignity available, which was none.

A boy at the edge of the stall saw him, opened his mouth, and shut it when Lyra looked at him.

Efficient.

The body lay in the alley behind the dye vats.

The body had been left where it fell, which was worse than anything theatrical. The restraint was the point.

The man was on his back beside a wall half-painted with a crude gold Soulblade crest. A brush lay near his hand. Gold paint had spilled across the stones, running into the gutter where it mixed with blue dye and made a green smear that looked almost pretty if you were far enough away to be a worse person.

He had been cut once.

Throat.

Clean.

Beside the unfinished crest, pinned into the wet paint, was the black crescent mark.

No crimson cloth this time.

Just gold paint on black metal.

Jake stopped at the mouth of the alley.

For a second, he did not move.

The world narrowed to the brush near the dead man’s fingers.

Not a sword. Not a banner. A brush.

Lyra moved to the wall. She did not touch the body. She crouched near the paint, eyes tracking the stones, the edge of the mark, the narrow window ledges above.

Zynn made one small sound behind Jake and then went quiet.

“Name,” Jake said.

A woman standing near the dye vat answered in Valdrosian. Her apron was stained red to the elbows. Talon was not there to translate.

Jake looked at Lyra.

“Arven,” she said. “Painter. Dye worker. Two children.”

Jake nodded once.

The nod did nothing.

He stepped closer.

Lyra’s hand came out, stopping him without touching. “Careful.”

“Trap?”

“Possible.”

Jake looked at the body. The wall. The pin.

The alley had three exits if you counted the narrow upper window, which Jake did because he had learned to count unfairly. Wet stones. Dye in the gutter. Cloth strips overhead shifting in the breeze.

If the Shadewalker wanted him here, the alley was not only a scene.

It was a tool.

“Where would you stand?” Jake asked.

Lyra did not ask what he meant.

“Above,” she said. “Or behind the cloth.”

Zynn whispered, “Also possibly under the dye grating.”

Jake looked down.

There was a metal grate running along the gutter.

“Under?”

“The runoff channels are large here.”

“Fantastic.”

The woman in the red-stained apron spoke again. Slower this time, to Jake directly, knowing he did not understand and saying it anyway.

Lyra translated after a beat. “She asks if you will take it down.”

“The mark?”

“The crest.”

Jake looked at the unfinished Soulblade on the wall.

Gold paint. Wrong lower join. Brushstroke uneven where Arven’s hand had probably been interrupted by death.

His first instinct was yes.

Take it down. Remove the target. Stop giving the Shadewalker symbols to turn into knives.

Then he looked at the workers gathered around the vats. Stained hands. Closed mouths. Watching him like the answer mattered more than paint.

“No,” Jake said.

Lyra looked at him.

He pointed at the crest. “Finish it.”

The woman stared.

Lyra translated.

The workers moved in a wave that was not motion yet. A reaction before action. The woman asked something else.

Lyra’s mouth tightened. “She asks who would do that now.”

Jake looked at the spilled brush.

He was not a painter. He was barely a swordsman. He had no idea how to draw the actual crest correctly and the last thing this city needed was the Champion of Valdros creating official bad art on a murder wall.

So he looked at Zynn.

Zynn looked behind himself.

“No,” Jake said. “You.”

“I am not a painter.”

“You know the crest.”

“I know the crest structurally. That is not the same as aesthetically.”

“Today it is.”

Zynn swallowed. Then he took one step forward.

Lyra caught his sleeve.

He stopped.

A thin black line had appeared across the alley mouth behind him. He clocked it as wire and then understood a half-second later it was moving. A cut, still live in the air.

The air itself looked sliced.

“Down,” Lyra said.

Jake dropped because when Lyra used that voice, gravity became policy.

The air cut through where Zynn’s throat had been.

No sound. No blade visible. Just a pressure line that clipped the edge of a hanging cloth and divided it in two. The upper half fluttered down, bright yellow and useless.

The workers screamed.

The alley erupted.

Jake rolled toward Zynn, grabbed the back of his coat, and yanked him behind the dye vat. Lyra went the other direction, blades out, moving toward the wall. The woman in the red-stained apron froze in the open.

Jake saw the air cut again.

High. Angled toward her.

He threw the Soulblade.

It was a terrible idea.

He did it anyway.

The blade spun once, gold waking along the edge, and struck the metal vat beside the woman with a sound like a bell being murdered. The impact knocked the vat sideways. Red dye sloshed over the stones and the woman stumbled back as the invisible cut passed through the space where her chest had been.

The Soulblade clattered to the ground.

For one very bad second, Jake’s hand was empty.

The alley noticed.

So did the Shadewalker.

A shadow peeled itself off the unfinished crest.

Not from behind it.

From it.

The gold paint darkened, and the Shadewalker stepped out of the wall like the surface had been water.

Jake had no sword.

Lyra was too far.

Zynn was under Jake’s arm and trying to get his feet.

The Shadewalker held his thin blade low and walked toward the Soulblade on the ground.

No hurry.

He wanted Jake to see it.

Absolutely not.

Jake moved.

Not toward the Shadewalker. Toward the fallen vat.

Red dye flooded the alley, thick and bright, spreading around boots and stones and the Soulblade. Jake kicked the vat again. Hard. Pain shot up his leg. Worth it. More dye poured out, rolling across the ground toward the Shadewalker’s feet.

The assassin stopped.

Only for half a second.

But he stopped.

Because dye was not steam, but it was still a medium. It touched. It marked. It told the truth about contact.

His right foot darkened red.

Jake lunged.

The Shadewalker vanished.

No. Not vanished.

Moved.

The red footprint smeared toward the wall.

“Lyra!”

“I see it.”

She hit the smear with both blades.

Metal rang.

The Shadewalker appeared for one breath, half-formed, one blade catching hers, red dye splashed across the lower edge of his dark clothing.

Zynn scrambled up and flung something small.

It burst against the wall in a puff of pale powder.

The powder stuck to the red dye.

And to the Shadewalker’s left arm.

“Ha!” Zynn shouted, voice cracking. “Powdered lime!”

The Shadewalker turned his head toward Zynn.

That was bad.

Jake got the Soulblade back.

His hand closed around the hilt, and the old warmth snapped up his arm like the blade was offended it had been dropped. Fair.

The Shadewalker slid backward into the painted wall.

Jake struck before he could disappear.

The Soulblade hit the unfinished gold crest.

Gold light flared.

Not Champion light. Not transformation. Smaller and sharper than either. The painted crest burned white for a second, and the wall cracked from the blade’s edge outward.

The Shadewalker came out of the wall hard, thrown into the alley stones.

Physical.

Marked red and white, one sleeve torn, blade still in hand.

The workers saw him now.

That mattered.

Jake saw it hit the alley. The fear changed shape. Not gone. No one sane stopped fearing that. But the Shadewalker was not just a rumor in the edge of the eye anymore. He was a body on wet stones with dye on his foot and lime on his arm.

Lyra moved in.

The Shadewalker rolled under her first strike, caught the second, and kicked off the wall. He did not flee toward the alley mouth. He went up, impossible and fast, catching the hanging cloth lines and using them like stairs.

Jake raised the Soulblade.

“By the power⁠—”

“No,” Lyra snapped.

He stopped.

Barely.

The Shadewalker vanished into the cloth canopy.

A heartbeat later, three black pins fell from above.

One landed beside Arven’s hand.

One beside the spilled brush.

One at Jake’s feet.

Then the cloth overhead went still.

His blood was loud in his ears. The transformation pressure stayed in his chest, hot and waiting, angry at being denied.

Lyra came to his side. “Not for him. Not there.”

“I had him.”

“No. He had you spending it in an alley full of civilians.”

Jake looked around.

Workers crouched behind vats. The red-aproned woman shook against the wall, alive because a thrown magic sword had ruined a dye vat. Zynn was breathing hard. Arven was still dead beside the unfinished crest.

Lyra was right.

He hated that. He liked that. Both could stand in line.

The woman with the red-stained apron pushed herself away from the wall. She looked at the cracked crest. The dead painter. The brush.

Then she picked up the brush.

Her hand shook.

She dipped it in the spilled gold.

Jake watched her add one line to the crest. Off-center, hand shaking. There.

Another worker came forward. Then another. Zynn started to say something about the lower join, stopped himself, and instead picked up a second brush.

The Shadewalker had meant the wall as a warning.

The city turned it into work.

Jake stood in the alley with the Soulblade in his hand, red dye around his boots, and understood the next piece of the problem.

The Shadewalker did not just kill people.

He made them choose what fear meant.

Jake looked down at the black pin at his feet.

Then he looked up at the cloth canopy where the assassin had vanished.

“Okay,” he said. “Now we know how to paint him.”

Chapter 19: Marked Ground

The map room carried lamp oil and wet plaster. Someone had dragged in a worktable from the hall — wide enough to hold Mereth’s city chart flat without folding — and the chart was covered in small marks. Red circles for controlled sites. Blue lines for sightlines. Tiny numbers in Mereth’s tight hand at each position.

Seven people stood around it. Not soldiers. The pump woman, Sella, with her sleeves still rolled. Oren the cistern keeper, who had the patient look of a man used to waiting for things to fill. The dye-market foreman — heavyset, hands stained purple at the knuckle creases, watching Jake with an expression that hadn’t decided what it was yet. Dema the laundress, who had brought her own marking chalk and was already noting positions without being asked. A stone mason with one clouded eye that tracked independently from the clear one, which was disconcerting until Jake stopped looking at it. Two others from the lower aqueduct district, young, close-standing, obviously siblings.

Mereth stood at the head of the table. She did not introduce Jake. She just moved one step to the side.

He took the space.

“No speeches,” he said. “No oaths. We’re not doing that.”

The foreman’s expression resolved into something closer to appreciation.

Jake put his finger on the red circles. “Each of you is going to watch one of these sites. You go in pairs. You stay in pairs. If your partner leaves your sight for more than thirty seconds, you call a flare and you leave. Not after — before.”

Sella raised her hand, then lowered it.

“Go ahead,” Jake said.

“What are we watching for, exactly?”

“Pins. Marks. Powder disturbed. The feeling that something changed and you didn’t see it change.” He paused. “And fear. Fear is information. You feel scared and you don’t know why, that’s a signal, not a weakness. You mark it and you leave.”

The cloudy-eyed mason said, “What if we see him?”

“You won’t. But if you do — don’t chase. Don’t engage. Call the flare, move to your backup position, and stay there.”

“That’s it?”

“That’s it.”

The mason turned that over. “That seems too simple.”

“It’s not simple. It’s hard. Being useful while scared is hard. Being brave is a different thing — it’s easier, honestly, because it shuts your brain off. What I’m asking for is harder. Stay scared, stay smart, stay useful.”

The foreman nodded once. The rest of them, almost in unison, settled slightly. Like something had been confirmed rather than explained.

Zynn, from the corner, didn’t look up from the small case he was loading with powder vials. “What he said, but shorter.”

Jake looked at him.

“Observe. Report. Withdraw. In that order.” Zynn latched the case. “The order matters.”

Stonegrave had been in the back of the room moving crates. Not quickly — his hands were wrapped in strips of pale linen that had gone pink at the palms — but with a methodical efficiency that left no doubt about which crates went where. The guard who had suggested the southern approach position for Site Four found himself gently but completely overruled by a single look from seven feet of gray-blue mass that had positioned itself between the guard and the crate he was about to move.

The guard moved away from the crate.

Stonegrave placed it where it needed to go.

When the briefing broke and people began moving to their positions, Stonegrave came to the table. He looked at the chart. He looked at the western square site — Site One — and put one wrapped finger on the pump station mark.

“He’ll go there first,” Stonegrave said.

“Because it’s where I worked,” Jake said.

“Because it’s where you matter.”

Jake looked at the chart. “And the real target?”

Stonegrave moved his finger to Site Three. The dye market. Arven’s crest — the unfinished Soulblade painting that the workers had, without announcement, finished. The gold paint was still fresh.

“Fewer eyes. More meaning.” Stonegrave pulled his hand back. “He picks what holds the most of you and leaves the rest open.”

Jake straightened. “Then we staff Site Three heavier.”

“No.” Stonegrave said it without inflection. “Then Site Three becomes the feint. He already knows how we count.”

The room was quiet for a moment.

Lyra, who had been leaning against the wall with her blade loose at her side, said, “Equal staffing. Move when he moves.”

Talon, from his position near the door — his slinged arm close to his body, his other hand resting on the table edge — said, “And we don’t show him we’ve read it.”

“We play dumb,” Jake said.

Talon said, “We play patient. Different thing.”

The western square test ran for four hours.

Jake stood at the edge of it, not in it. Sella and the mason were the pair at the pump station. They did their jobs — talked occasionally, watched the square, tracked the foot traffic, reported nothing. Oren and one of the aqueduct siblings watched from the fountain rim, which gave them a sightline across the whole paved space.

The pin appeared at the ninth hour of morning.

Sella saw it first. She didn’t react visibly — which was impressive, Jake thought, for someone who had never done anything like this. She touched her partner’s arm, once, and they both continued what they were doing. The blue flare went up from Oren’s position forty seconds later. Calm. Clean.

They withdrew to the backup position.

Jake walked to the pump. The pin was embedded in the handle housing. Black iron, small enough to look like a flaw in the metal until you knew what you were looking for. It hadn’t been there an hour ago. He’d been watching. He hadn’t seen it placed.

Talon came up beside him. “He accepted our board.”

“He accepted it,” Jake said. “He set it, actually. He put it exactly where we expected it.”

Talon looked at the pin. “Which means⁠—”

“Which means he’s not surprised we have watchers. He knows we’re running a system. And he just told us he’s not afraid of it.”

Talon was quiet for a moment. “Good and terrible.”

“Yeah.” Jake left the pin where it was. “Useful, though.”

They walked back to the square’s edge. Stonegrave was watching the rooflines. He’d been doing it the whole time, still as a building support, his wrapped hands hanging at his sides.

“What do you see?” Jake asked.

Stonegrave didn’t look away from the rooflines. He said, “He marked what eyes should hold.”

Jake followed his gaze. The pump. The fountain. The two main crossing points.

All of it interesting. All of it, now that Stonegrave said it — all of it configured to draw attention.

Jake turned. Looked south. The dye market was four streets over. The crest on the wall would be visible from the alley entrance.

“Arven’s crest,” Jake said.

Stonegrave looked at him now.

“Site Three. Fewer eyes. He set this up to thin them further.”

Stonegrave said, “Move.”

They moved.

The dye market was wrong from thirty meters out.

Not obviously. But Jake had spent enough time around pressure systems to know when something was held in place rather than resting. The four volunteers at Site Three were watching the crest. All four. Hard. In that particular way that people watch a thing when they’ve been told to watch it and they don’t want to fail and they’ve been watching it for so long the watching has become the whole job.

Nobody was watching each other.

Zynn pushed past Jake’s shoulder, crouched, and looked at his powder line. It ran from the alley entrance to the base of the painted wall — a segmented track, set in dry weather so the segments were distinct and readable.

He didn’t touch it. He just looked for a long time.

Then he said, “Left.”

Jake crouched next to him.

The line was intact. All the segments. Nothing crossed. But the second segment from the left was half an inch displaced from where it had been this morning. Not broken. Not scattered. Lifted and set back down.

“He was here,” Jake said.

“He’s been here.” Zynn stood. “He walked the whole line. Checked the spacing. Didn’t trigger it.” He looked at the volunteers still watching the crest. “He froze the site. Didn’t need to attack it. Just — sat on it. Like a hand on a hose.”

Jake looked at the crest. Arven’s unfinished Soulblade crest — now finished. The gold paint bright and careful, the crimson border someone had added with visible emotion in the brushwork. The volunteers watching it probably didn’t know they were being held in place by the fact of watching it. Held like a stopper in a drain.

The flare went up before Jake could decide the next move. Blue. From the lower aqueduct. South.

They ran.

The aqueduct district was narrow streets and old stone and the permanent damp that never dried. The aqueduct itself — a low Roman-arch construction carrying water from the upper reservoir through the lower quarters — had a site at its support crest. The crest was carved into the keystone of the main support arch: a Valdrosian water mark, which was apparently significant enough to be on the list.

The two young aqueduct siblings were at the backup position when Jake arrived. One of them had their hand pressed to their upper arm. Blood at the fingers.

“Show me,” Jake said.

The cut was clean. Shallow enough to bleed freely, deep enough to matter. Arm, not throat. The sibling — he didn’t know their name — was pale but standing.

“He came from the arch side,” the other one said. “We were watching the crest. Powder lifted — we saw it go up, the dust, like — like something walking through it. Then Maren got cut and I had the flare already⁠—”

“You did right,” Jake said. “Both of you did right.”

Lyra was at the arch. Her blades were out. Jake heard it before he saw it — a clean metal ring, sharp and brief, and then the scuff of movement above. She came down from the arch support in a controlled drop, both blades up, jaw set.

“Engaged,” she said. “Lost him at the canopy run.”

Zynn was at the base of the support arch, looking at a cut in the stone. Fresh. Clean-edged. The aqueduct support crest — the water mark carved there — had been cut. A horizontal slice through the middle of the carved image, right through the main inscription.

The stone groaned.

Not catastrophically. But it groaned.

“Evacuate the block,” Mereth said, from somewhere behind Jake. He hadn’t heard her arrive. She was already looking at the arch, calculating something. “Now. Orderly.”

They moved people. It took six minutes. The arch held.

When the block was clear, Zynn crouched at the base of the support and picked up something with two fingers.

He held it up. A chip of black stone.

“Not from here,” he said. He turned it over. Rubbed it between his fingers. “Wrong grain.”

Jake looked at it.

Stonegrave had been quiet throughout the evacuation, managing the flow of people with the calm authority of someone who’d organized movement under worse conditions. When Jake held the chip out to him, he took it in his wrapped palm, turned it once, and said, “Undercity stone.”

“You know it?”

“I walked it.” He gave the chip back. “My people were moved through those routes. I know the stone.”

Jake looked at the cut aqueduct arch. At the volunteers gathering at the evacuation point. At Lyra, who was sheathing her blades with a small controlled motion that told him the engagement had cost her something even if there was no visible wound.

“He’s using the buried roads,” Jake said.

Stonegrave said, “Yes.”

“To move between sites. To appear and disappear.”

“Yes.”

Jake looked at the team. All of them. Talon with his sling. Zynn with his bandaged arm and his specimen chip. Lyra, composed and quiet. Stonegrave, seven feet of hurt and still at his post.

“We go under,” Jake said.

Nobody argued. That was part of the problem.

Chapter 20: The Site That Went Quiet

The entrance to the undercity was in the cistern keeper’s district — a maintenance hatch behind a false wall that Oren had pretended not to know about until Stonegrave looked at him, at which point Oren immediately knew about it. The hatch opened on iron rungs that went straight down eight feet into old stone passage.

Stonegrave went first, which required him to go sideways and still scraped both shoulders.

The tunnels were black and close. Old torch brackets on the walls, empty. The stone was different from the streets above — older, heavier, quarried in the way of people who expected what they built to last longer than any single civilization. The walls had count scratches: long groups of vertical lines with a diagonal slash, repeated and repeated, covering entire sections of passage in a record of passage that no longer had anyone to verify it.

Prisoner counts, Stonegrave had said. When they moved through here.

Nobody said anything about that.

The aether conduit residue was visible as faint blue-green discoloration in the mortar lines. Whatever the old system had carried, it had left a chemical mark in the stone that five hundred years hadn’t cleared. Zynn kept glancing at it.

“Not active,” he said, to nobody in particular. “Residual only. But the grooves are still cut.”

“The conduit channels,” Jake said.

“Yes. Open in the stone. Circular cross-section, roughly—” Zynn made a ring with his fingers, “—this wide. Run through the walls to distribution nodes. Old infrastructure. Old enough that nobody above remembers it exists.”

Stonegrave led them without hesitation through three intersections. Left, then right, then straight through a low arch that Jake had to duck for and that Stonegrave cleared only because he tilted his entire body. The route came out into a circular chamber, roughly forty feet across, with five exits and a central column of copper-banded stone rising to the ceiling — a distribution node, Zynn immediately said, his eyes bright in the lantern light.

The column had grooves cut into it vertically. The grooves widened at the base into channels that ran through the floor to each of the five exits. The channels were open, stone-cut, half an inch wide, and dusty with old copper oxide.

It was quiet in the way that stopped being comfortable after about ten seconds.

Then the chamber spoke.

It came from everywhere. A voice — the Shadewalker’s voice, low and without emphasis — arrived from all five exits simultaneously, which meant it came from nowhere and everywhere. It was a sound that existed before you could locate it.

“You found the old roads.”

Jake felt the hair on his arms go up.

The voice layered over itself slightly — not echo, because echo had distance and direction. This was the same sound arriving from five points in the same half-second, like a chord.

Talon went still. Lyra had a blade in each hand. Zynn was looking at the floor.

“Channel grooves,” Zynn said, not loudly. “The sound runs through the conduit lines. Comes out all five exits at the same—” He crouched. Traced one of the floor channels. “Same length. Different routes, same acoustic distance to the node.”

Jake walked to the central column and put his hand on the copper banding. He could feel it — barely. A vibration. The column was a resonator. Sound put in at any channel exit would travel to the node, branch to all other channels, arrive at the same time.

The voice wasn’t in the room. The voice was in the system.

Zynn was already opening his powder case. “Air current. If there’s actual movement in any one of those passages⁠—”

Jake pulled a vial from Zynn’s hand, uncapped it, held it over the nearest channel groove.

The powder drifted south-southeast. Not from all five exits. One.

Exit three.

Jake looked at it. At the Soulblade at his hip, which had been warming in its sheath for the last two minutes, that low gold pulse he felt at the base of his palm when it was paying attention.

He drew the blade. It came out glowing.

He put the flat of it against the floor. Against the channel groove running to Exit Three.

The gold light ran the groove like water finding level. It hit the copper-banded column and the column lit, briefly, in a pulse that went down every channel simultaneously.

The Shadewalker’s voice, mid-sentence, cut off.

Lyra moved. She was already moving — had been moving when Jake drove the blade into the groove, anticipating the exit. She reached Exit Three in four steps, and the Shadewalker came through it like a man stepping out from behind a curtain, and her blade met his.

The sound of it filled the chamber. Real metal. Real resistance.

Jake was up and moving. The Soulblade was out of the groove and in his hand, hot and bright, and he came at Exit Three from the left. The Shadewalker was visible — fully visible, pressed back from Lyra’s first cut, his dark layered gear scuffed, one arm up to block a second strike.

Talon took the right side. Even with one arm slinged he moved clean, and the Shadewalker had to split his attention.

The fight in the circular chamber was fast and bad and close. The exits were tight. The Shadewalker couldn’t step back without committing to one of them, and every time he tried to angle for the dark outside the lantern range, Lyra was there. She was good at reading where he wanted to go.

He shifted. Reached up — there was a chain mounted to the ceiling that Jake hadn’t noticed, connected to a slab counterweight in the ceiling — and cut it.

The slab came down.

Stonegrave moved.

It was not fast. Stonegrave was seven feet and hurting, and his hands were torn and bleeding through their wrappings, and he moved anyway. He got under the slab with both arms up and caught it.

The weight drove him to one knee.

“Go,” he said.

Jake went first. Talon went. Zynn went, snatching something from the Shadewalker’s direction as he passed — Jake didn’t see exactly what, just a fast grab and a coat pocket closure. Lyra went last.

Stonegrave held the slab for ten seconds. Jake counted from the tunnel side. At ten, he heard it shift and the sound of it hitting the floor of the chamber, and then Stonegrave was in the tunnel with them, moving at a walk, his face doing nothing.

The Shadewalker was gone. Exit Three had a tunnel that went right and then split. He was somewhere in the split.

They didn’t chase.

Stonegrave’s hands when they came into the light above were soaked through both wrappings. Not damp. Soaked.

“We need to wrap those again,” Zynn said.

“Later,” Stonegrave said.

“Now,” said Lyra.

Stonegrave held his hands out. Zynn unwrapped them, worked efficiently, rewrapped with fresh linen from his coat’s fourth pocket. Stonegrave watched the process without expression.

Jake leaned against the wall and put his hands on his knees and breathed. The Soulblade had gone to a low warm pulse in his hand. He sheathed it.

They had gotten through. Nobody dead. The Shadewalker had been forced physical, forced visible, run out of the node through the one exit they’d isolated.

In Mereth’s map room, Zynn put the mask fragment on the table.

It was a piece of the Shadewalker’s face covering — dark material, rigid at the edges, flexible at the center. A crack across it where Lyra’s blade had hit and something beneath Zynn’s hand during the grab. On the interior surface, worked into the material: route markings. Not decorative. Functional. Lines and junction counts, scratched fine as a watchmaker’s marks, in a pattern that meant something to someone who knew what to look for.

Zynn spent forty minutes with a lens and a piece of paper, copying the marks, cross-referencing them against Stonegrave’s verbal account of the undercity routes.

“Two viable routes,” he said. He had the map laid out. “This one—” his finger traced a line, “—goes under the arena district and surfaces at the old stadium entry. This one goes to the harbor. These are not escape routes. They’re approach routes.” He looked up. “He built them. Or he found them and mapped them and memorized them as lines of approach.”

Jake looked at the map.

He looked at the fragment.

“We know where his roads go,” he said.

Lyra made a small movement. Not agreement. She was looking at the fragment, then at Zynn’s route map, and the set of her jaw was not enthusiasm. She didn’t say it. She should have said it.

Talon said, “We know one piece of it.”

“It’s enough to go on offense,” Jake said. “Arena district. He has to move through there to use either route. If we get there ahead of him⁠—”

“We corner him,” Talon said. Not confirmation. The sound of a man watching a door swing open and calculating the draft.

“Yes.”

Talon looked at Lyra. Lyra looked at the fragment map.

“Tomorrow,” Jake said. “We hit the arena district junction at first light. Stonegrave leads us in through a route he hasn’t used yet. Zynn brings the powder. We set the marks ahead of him and we wait him into a corner.”

The team around the table. That feeling — that particular warmth that comes from having a plan that fits all the available data. Nobody said: what if the data is incomplete. Nobody said: what if he knows.

Stonegrave was sitting at the edge of the room. His rewrapped hands lay in his lap. He was looking at them.

He didn’t say anything.

That was the tell. Jake didn’t read it.

recommendation loop

You Might Also Enjoy