Actions

Work Header

Killing Time

Chapter Text

Prologue

Kaelan’s Postcasting Emergency Smoothie:

Lg spoonful peanut butter
2 bananas
Lg scoop protein powder—vanilla good, chocolate better
Lg scoop brown sugar
Lg scoop white sugar
Ice cream—any flavor, squash it down into the rest of it
1 2 5 peanut butter cups
Add heavy cream (milk is an okay substitute) until two inches from top of blender

(Must use blender. Stirring together = nightmare.)

Kaelan nodded his thanks to the barista and dropped his change into the tip cup before turning away with his brewed coffee. He’d never managed to make more money than what it took to scrape by, so he’d never gotten addicted to the fancy cappuccinos and lattes that everyone else drank. He carried his cup over to the station to doctor it with six packets of sugar and a healthy dollop of cream.

He’d always had a crazy metabolism. It was a trait other people, especially women, envied, but since he’d grown up never getting enough to eat, it had been nothing but a major inconvenience. These days his job as a bicycle courier made things worse. He burned off calories faster than he could replace them. Last week he’d had to poke an extra hole in his belt or risk his jeans falling to his knees in the middle of the street.

Sipping his sweet, creamy coffee, Kaelan skirted the line of patrons waiting to order and went outside. He’d been too impatient to lock up his bike, and even though it was pretty beat-up and not a prime target for thieves, losing it would also mean losing his meager income and, after that, his tiny studio apartment.

He leaned against the building and drank his coffee, engaging in some people watching. A guy wearing superskinny jeans went inside, and Kaelan enjoyed a long look at his butt until the door closed. An adorable couple joined him on the sidewalk a minute later, the girl’s hand tucked into her boyfriend’s back pocket. They couldn’t have been more than seventeen, fresh-faced and probably spending Daddy’s money on their coffee and the pastries inside the bag the boy held. They kissed, oblivious to the people having to walk around them and the disapproval of some older women at their PDA.

A little flicker of something pinged Kaelan’s awareness. Not too close by, which meant it was stronger than he’d first thought. He frowned and gulped some more of his coffee, letting his senses stretch out toward the source of the energy. Dark magic for sure. He looked around, but everyone seemed to be going about their business. Mundanes, not casters, then.

Whatever it was had nothing to do with him. If he chose to ignore it, no one would blame him, because no one would know. It wasn’t automatically his responsibility to stop every dark spell or ritual that happened in the city. It wasn’t his fault if someone else was clueless or an asshole.

He didn’t have to deal with this.

He didn’t.

Growling with frustration, Kaelan drained his coffee in three long swallows, burning his throat, tossed the cup into a nearby trash can, and jumped on his bike.

A blue sedan’s horn blared at him as he dropped off the curb into the street, even though he wasn’t in its way and didn’t plan to be. He glanced over his shoulder, pedaled hard, and shot across the street in the gaps between cars passing cars.

The crackle of magic was already stronger, and he was only a block closer than he had been. This was going to be big and nasty, and he wasn’t sure how much time he had.

Kaelan made a sharp right into an alley. He’d counted on it being empty, but it held a guy with a grubby apron tied around his waist, dragging a plastic trash barrel toward a Dumpster.

Under other circumstances he wouldn’t, but this was an emergency. He flicked his hand, opening a portal immediately in front of him and ducking as he rode straight into it. The sizzle across his skin, all the hairs on the back of his neck standing up, made him clench his teeth, but within seconds he was out the other side, a dozen blocks closer to the source of the disturbance and crunching through a swirl of dried leaves that the wind had gathered in the alley behind a parking garage.

He rode faster, all his focus on keeping his path clear. With magic, it was easy enough for a gentle push on a pedestrian here or there to prevent anyone from wandering into his planned route. Well, easy in that he could do it, even if it meant later that night he’d crash hard and wake up tomorrow with the worst postmagic hangover in the world and craving a thousand calories or more for breakfast.

It seemed crazy, looking up at the blackened sky and swirling clouds over the old warehouse building ahead, that the city was full of people acting as if nothing was happening. The sharp, discordant waves of magic didn’t affect them. They might notice the wind, but they’d blame it on the weather. To most of them, it would never be real, not the way it was to Kaelan and a handful of others he’d met.

He left his bike unlocked again, propped against a wall with a view to a quick exit if needed. Wrongness squeezed at him until he felt as if his insides were about to squirt out of his skin like a seed from an orange. He ran around the side of the warehouse, searching for a door close enough to the center of the disturbance to be useful. There weren’t any guards. That troubled him more than the prospect of fighting his way in. No guards meant any door he found would be locked—simple to deal with—and warded, which was more of an issue when he was in a hurry.

The door he came across tried to fade into the wall, its edges blurred. Bad door. Kaelan focused on it, learning it from the sun-blistered blue paint to the gouge on the lower left panel. What would’ve taken hours when he was a kid took a few moments now. Practice made perfect, and he’d had plenty of it in his twenty-four years. The spell warding the door clung to his senses—an oil slick on his tongue, a persistent whine in his ears, a skunk stink tainting each inhale.

Nice.

He sent a wave of light over the surface of the door, cleansing it of the spell, if doing nothing for the caked-on grime. It took endless seconds to soak in, but when it had, the door yielded to his touch, the lock snicking open, the handle turning with a grate of metal that made him wince.

“Shh,” he told the door under his breath and patted it approvingly when it opened fully without another creak.

Kaelan winced again as a wave of magic escaping the building washed over him. It was the kind of wrongness mundanes might notice, interpreting it in a way that made sense to them—the smell of gas from a leak, the suspicion someone was lurking close by with a weapon. He closed the door behind him quickly and quietly.

Even wearing a blindfold and earplugs, he would have known where to go. Dark rituals of this magnitude were loud in every way possible. He felt what was happening down into his marrow. His teeth ached.

There were two people involved in the ritual. Kaelan sensed each person’s signature, like a collection of smells overlapping one another. Plus someone on the sidelines who wasn’t participating. Kaelan wasn’t sure who he was, but the odds were good he was a caster and male. His signature was proof of that, though it was indistinct. A shield could have that effect, but the smudging was subtly different. Interesting.

Kaelan moved down the hallway toward the darkness, intent on a doorway that didn’t have a door in it. He crept through into a huge open room; the ceiling was at least thirty feet up, which didn’t surprise him. Some spells required a lot of space, and the way this one made his skin crawl confirmed it was one of them. He squinted and focused on the man and woman standing in the center of the room with inky-black magic swirling around them. They were the eye of the storm.

The watcher was off to the right, inching forward. And invisible. Kaelan couldn’t see the caster, only sense his presence, glimpsed out of the side of his eye. A shield converted to a cloak, had to be. Kaelan sucked at shields, and that kind of tweaking was beyond him.

He had no idea what the watcher had planned, but it didn’t matter, because the ritual was ramping up, the level of magic like nails on a blackboard. The woman took the cover off a basket and grabbed a black kitten that squirmed in her grip, trying to get away.

Kaelan didn’t have time to think. He had to react, and fast. He lifted his hands and lit up the room with white-hot sparks.

The two doing the ritual spun around, but their attention went to the cloaked man, not Kaelan, because the invisible man was now a guy crouched over, looking exposed.

Shit. Was that his fault? For the cloak to have popped like a soap bubble as his spell sprang to life might have been a coincidence, but Kaelan had learned that around magic, coincidences were rare. He’d also learned the basic truths that actions had consequences, good intentions counted but didn’t save you from those consequences, and people using kittens in rituals probably grew up thinking Cruella De Vil was the heroine.

The sparks zipped around the room, angry fireflies, burning skin. Kaelan spread himself thin to keep the sparks from touching fur or the guy whose ass was now on the line.

It was a nice ass, showcased by black tailored slacks. This wasn’t the time to be appreciating the beauty of the male form, but Kaelan had always been good at multitasking. The guy was tall, with strawberry-blond hair swept back off his face and wide shoulders. Damn, he was taller than Kaelan. Total deal breaker. Oh well.

From the incredulous, furious glare the man shot him before muttering an incantation that created a fence of shifting bars in front of him, the attraction was one-sided. Kaelan still wasn’t sure he was responsible for the man’s predicament, but clearly the man didn’t share that uncertainty.

Time to show he was on the side of the kitten lovers in the room before the guy put him at the top of his to-kill list. Even if the cat in question was on the scrawny side, with a slit ear indicating its life had been packed full of excitement, and a total lack of cute to its name.

Kaelan gathered the sparks into a ball, compressing them until the mass they formed glowed too brightly to look at.

“Can’t hold it,” he yelled, not entirely lying. The ball writhed over the couple’s heads, tendrils of light shooting out randomly. “It blows, the whole place is leveled. Give me a reason to be nice and let you live. Put the kitten back in the basket and walk away.”

What he expected was some kind of verbal response. Instead, the woman lifted a hand and dispersed Kaelan’s sparks much more efficiently than he’d gathered them. They exploded outward, sizzling as they struck the floor and singeing Kaelan’s skin and clothes. He yelped and slapped at them, which was wasted effort; it wasn’t as if they were live flames he could extinguish. He’d created them, and he made them vanish.

The watcher moved between Kaelan and the other two while Kaelan was still figuring out what to do next. He wanted to tell the guy that he didn’t need any help, but that was when the man performing the ritual sent a dark sphere hurtling toward his head. He went from resenting the fence shield to profound gratitude.

The sphere struck the shield, and the impact threw Kaelan’s rescuer backward onto his ass. Kaelan got his magical ammunition under control and shot it into the center of the ritual. The woman blocked it again, but the kitten, seemingly aware that the person holding it was now only doing so with one hand, made a loud, angry sound and flipped out of her grip. It hit the floor with a light thud, then scrambled to get its feet under it and ran off like a shot into a far corner of the room.

Kaelan was too worried about the trouble he was in to go after the cat. He was just glad it had gotten away. If it had any survival instincts, it would keep running and not look back.

“Darkness take you!” the woman screamed.

As threats went, it didn’t scare Kaelan spitless. In fact it left him wondering why someone with the ability to control his fireball didn’t have the imagination to come up with something less stupid and clichéd.

Until the lights went out, and yeah, okay, apparently it’d been a prediction, not a threat. Good to know.

Breathing wasn’t an issue, and nothing in the squid-ink cloud of ickiness was trying to bite chunks out of him, but when the blond guy snarled out an incantation and the darkness shredded like damp paper, Kaelan exhaled with relief.

He glanced around the room, glad the air was clear, even if their opponents had fled. “Evil has left the building,” he muttered.

“With your help, yeah.”

Attack or apologize? Always an easy choice, but because he hated being predictable, Kaelan threw in humor and a smirk. “Look, I’m not sure what happened with your cloaking thing—nice way of adapting a shield, by the way—but we all have performance issues from time to time. Don’t beat yourself up about— Hey!”

The finger poking his chest hurt, but he set his jaw and held his ground, exchanging the smirk for a glare. Green eyes shouldn’t sizzle, but the ones glaring back at him were doing just that.

“If I turned you into a mouse and got the cat to come back and eat you, it’d play hell with my karmic balance, but it’d be worth it.” The flat, cultured voice made each word a slap across the face, stinging, contemptuous. “Fucking amateur. Do you know how long I’ve been tracking that pair? Weeks. Weeks. And now they’ve seen me.”

“Traumatic for them, but they’ll recover.” Kaelan jerked his chin up. “And yeah, I don’t charge for it, but I’ve been casting since kindergarten, and I’m good at it, so unless you want to wear your lungs on the outside of your manly chest, lose the attitude, Abercrombie.”

“What the hell are you doing here anyway?” The guy was tall and condescending, sure, but Kaelan had been intimidated by worse.

He shrugged. “I was over by Vernon, and I sensed the buildup to the casting. I knew it was something big, and I couldn’t ignore it. Believe me, I tried.”

“Yeah, somehow I don’t find that hard to believe,” the other man grumbled. He blinked. “Wait. Over by Vernon? That’s sixteen blocks from here.”

“Wow. Charming manners, and you can count too? I’m impressed. I wouldn’t have figured you had enough room in your head for math, what with all the bullshit.” Kaelan wasn’t even sure what he meant; the aftereffects of his magic use wouldn’t hit for an hour or more, and right now he was riding high on adrenaline. “Anyway, I don’t owe you any explanations.” He looked around. “You see where that cat went?”

“No.” The man followed him as he crossed the room and started poking around in a collection of cardboard boxes. “I’m serious. You were over by Vernon, and you picked up on a ritual happening here?”

“Yes.” Kaelan reconsidered. “I mean, no. I wandered in here entirely by accident. Does that work better for you? I wouldn’t want to screw with your limited worldview. Or any other part of you. I mean, I don’t even know your name.”

“Maxfield Ancaster,” the guy said absently. “Who are you?”

That wasn’t the same as asking his name, but for once Kaelan decided to give the guy a break. “Kaelan Bishop. I’m a bike courier. Help me find the cat, okay? I want to make sure he’s all right. Then I’ll answer any questions you want.”

“I could make sure of that.”

Kaelan snorted, abandoning the search in favor of listening. Was that a rustle over to the left? Please, let it not be rats. Though the cat wasn’t much bigger than one. “I bet. Listen up, Mad Max. If you plan on doing something to me I don’t like, telling me in advance isn’t the best idea you ever had. If my casting screwed with yours the way you think, it was an accident. And for the life of me, I don’t see why it would.”

“I felt you,” Maxfield said. “Ever built a house of cards and someone walks into the room, and the next thing you know, the cards are falling? It was like that.”

“Huh.” Kaelan shrugged. “Weird. Let’s never do magic within a mile of each other again, okay? There. Problem solved.” He saw the tip of a tail curl up from behind a box. Black, furry, feline. “Got you!”

A moment later, blood welling up from deep claw marks, he revised that. The cat had most definitely got him. Clinging to his hand with its front paws, back paws scrabbling wildly, the young cat sank its teeth into Kaelan’s thumb, the pain eye-wateringly intense.

“Fuck! Let go, you little bastard! I’m a friend!”

“I don’t think he approves of you,” Maxfield said, deftly detaching the cat from Kaelan’s hand without a whisper of a spell. “They say children and animals always know.” He held the cat out, its bottom cradled in his palm, his other hand grasping it by the scruff. The cat mewled a protest, then yawned, showing off a raspberry-pink tongue before purring, the buzz louder than it was. “Still want him?”

It was hard not to sound sullen. “No, you keep it. At least it likes you.” Kaelan wiped blood off his arm onto his jeans, which were probably already a lost cause, and stuck his bleeding thumb into his mouth before realizing it would make him look like a little kid. Which was how Max was treating him even without a reason for it.

“Yeah, okay. Nothing else about tonight turned out the way I planned.” Max shifted the purring kitten into a more comfortable position and gave Kaelan a thoughtful look.

“What?” Kaelan frowned at his bleeding wounds and then at Max.

“I’m going to take the cat home. You can come with me and wash those scratches and bites out if you want. You don’t want to end up with an infection.”

“I’m a healthy kind of guy. I’ll be fine. Try again with a better reason I should go with you.”

Max shook his head. “You killed my shields. I want to know how and why. It shouldn’t have happened. I’ve got a workshop equipped with everything we’ll need to test you. I’ll start with aura, blood, and essence and go on from there.”

The hell? “You can test how many sparks it makes when I punch you right here.” Kaelan squared up to him, drawing in what he had left in the way of power, which wasn’t much. He needed sugar. He needed sleep. He didn’t need to be poked and prodded by someone with a grudge.

“You’d be safe, if that’s what’s worrying you. The tests aren’t painful.”

“Safe and pain-free isn’t the issue. Trusting you is.”

“You can’t tell me you’re not curious too,” Max said, and damn, but he could put a lot of charm into his voice when he tried. Too much charm.

Kaelan gave him a chilly stare. “Tell me that wasn’t you using glamour on me. Really? Me?”

Max had the nerve to stare blankly back. “Why would I do that to another caster? Why would I do that to anyone? It’s tacky as hell, and I don’t do negative magic. Ever.”

That seemed to be a real hot button for Max. Kaelan did his best to stick to spells that didn’t leave him edging toward the dark, but he’d be lying if he said he never used a smidge of glamour to smooth life’s rough spots. Not often, but sometimes. He just didn’t like it being used on him.

“Yeah, well, it sure seemed that way,” Kaelan muttered. He ran his hand through his hair. Needed washing. Sweat and dust clung to every strand. Max wasn’t wrong about his curiosity. If he could cancel shields without knowing he was doing it…ouch. That might get nasty real quick. Maybe there was something screwed up with him or Max. Maybe it was temporary. Wouldn’t hurt to find out.

“Okay, I’ll come back to your place. But I want a drink before we do anything, and there’s gonna be no prodding or poking unless it happens to you too. I was fine before we met, so I’m thinking it’s your fault, not mine.”

“Good. My car’s around the corner. Where’s yours?”

“Don’t have one. I told you, I’m a bike courier. You can give me and my trusty steed Rusty a ride.”

Max grimaced without losing an iota of his good looks. “You named your bike?”

“Not really. It’s a word I use a lot around it, and it stuck.”

Max’s car was a beat-up piece of junk any respectable car thief would’ve crossed the road to avoid. It didn’t work with the picture Kaelan had formed of the man, and his bemusement must’ve shown, because Max grinned as he popped the trunk.

“Your bike should fit.”

“Hmm.”

“Be careful not to damage the paintwork,” Max said blandly.

Kaelan eyed the dented driver’s door, then ran his finger over a scratch on the bumper. It was a deep scratch, but his finger met nothing but a smooth surface. He took a step back, focused on the car, and rolled his eyes as its true form swam up, hanging like a mirage before fading. “I get why you wouldn’t want to drive a fancy car around here, and your misdirect glamour is fucking good if it fooled even me, but why not make it look halfway decent? If anyone I know sees me in this POS, I’ll have to memwipe them.”

Max shot him a cold look. “Don’t joke about that.”

Kaelan held up his hands, then grabbed at his bike as it slid sideways. He’d propped it against the car without thinking twice. How much did it cost to polish out a scratch on a two-hundred-thousand-dollar car? “Sorry.”

“The weight it carries is huge. Most people don’t realize. They tweak a memory here, wipe another there, then—”

“They’re soul-lost and screaming in the Netherhells. I know, okay? Bad joke.” Kaelan wedged his bike into a space bigger than it should’ve been in either version of the car and slammed the trunk. “Want me to drive, and you can hold the teeth with fur?”

“Ha-ha. Good one.” Max gestured at the passenger door, and they got in, Max passing the kitten over to Kaelan, who took it gingerly. The cat’s purring hesitated as it eyed Kaelan with suspicion, then picked up again where it had left off after the car pulled away.

They drove across the city toward a much nicer area than the one Kaelan lived in, and stopped on the edge of a neighborhood renowned for its exorbitantly high rents. Max paused outside a building that looked average from the sidewalk, older and showing its years but as if it had been well maintained, waiting for the traffic to clear. “Guess I’ll find out how much trouble he can get into when I’m not here,” Max said, glancing at the kitten. He didn’t sound happy.

“Hey, if you don’t want to leave him alone here, I can go home,” Kaelan offered. He found himself hoping Max wouldn’t agree, which was weird.

Max looked at him. It was a long, calculated sort of study that made Kaelan want to squirm, but he didn’t let himself. No way was he going to let this guy get the better of him. “No, you can come upstairs for that drink you wanted. We’ve got some research to do.”

“What’s upstairs?”

“My apartment. I own the whole building. I’m a private investigator, of sorts, but I’m picky about my cases. Let me put the car away first.” He steered the car down into an underground garage next door and parked it in a space right by the entrance that wouldn’t exist to mundane eyes.

As soon as they got out of the car, it shimmered and went invisible, though Kaelan saw a vague outline if he concentrated. Made sense. Max would need to find it, after all, and not by walking into it. “Nice,” Kaelan said, handing the kitten to Max.

“Yeah. It’s an Aston Martin DB9. Is this a game? Pass-the-kitten, maybe?” Max tucked the small scrap of fur into the crook of his arm. “I don’t have a litter box, food, or a scratching post. Shit.”

“They produce a lot of that, considering their size.” Kaelan patted Max’s arm consolingly, then snatched his hand back as a jolt of static went through him. His fingers stung as if he’d grabbed a bunch of nettles. “Okay, we don’t mix well.”

“It’s starting to annoy me,” Max said, leading the way to an elevator. “We need to find out why. I don’t get a reaction this extreme when I touch other casters, and your aura’s clean enough.”

“I only just got it waxed. Usually there’s this streak I can’t get out.”

“You’re impulsive, smart-mouthed, and disruptive,” Max said, ignoring Kaelan’s flippancy. “But if that was enough to shatter my shield, I’d never be able to form one.”

“You are not taking me apart to see what makes me tick.” Kaelan stepped into the elevator, unsurprised when Max pressed the button for the top floor. Max wasn’t the type of man to like people over him in any sense. “Not unless I get to prod you back.”

Now where had that come from? They exchanged a speculative glance. Then Max said casually, “I’m bi, but you’re not doing it for me. Sorry. You can keep flirting, but it won’t get you where you want to go.”

Asshole. Kaelan put his hand on his head, then moved it, palm flat, until it was level with Max’s nose. “See that? You’re too tall. And if you were a vacation destination, you’d be Detroit in the rain in November. I don’t want to go there. Ever. I’m a sun, sand, and ocean guy. Got it?” Max nodded, green eyes amused. Kaelan nodded back, a decisive jerk of his head. “Good.”

The elevator door opened into an entryway big enough to house Kaelan’s entire studio apartment, but as soon as he stepped out onto the gleaming hardwood floor, his attention was on the complete and peaceful silence created by permanent shields. “They’re on your whole place?” he asked.

For a few seconds, Max looked confused, but then comprehension dawned. “Oh. Yes, of course. No point in doing it halfway.”

“It’s so quiet.” Kaelan ignored the kitten as it ran past him.

“You could take them down in less than a minute,” Max said.

Kaelan gave him a disbelieving look. “Why would you tell me that? Distract me before I do it without thinking.”

Max led him into a living room with a thick white carpet. Lushly soft carpet, ridiculously impractical, and a magnet for stains. Although someone who specialized in shields probably had one on his carpets to keep them pristine. “Okay. One, it’s not like you wouldn’t figure it out on your own, and two, I guess I trust you.” He held his hands up. “I know. I just met you, and you come over as a pain in the ass. Sue me. I make up my mind about people fast, always have.”

“That ever come back to bite you on the ass?” Kaelan asked.

“If I had bad judgment, I’m sure it might.”

Kaelan opened his mouth to tear into Mr. Perfect, then noticed Max holding back a grin. “You are such an example to me, oh Mighty Mouse, I mean Max. I’m awed. Humbled. Fighting the urge to throw up.”

“Jerk,” Max said without heat. The kitten leaped at the trailing leaf of a plant in the corner, batting at it with a paw. “Tell me again why we didn’t stop off at the Humane Society first?”

“Tell me you don’t have a butler.”

“No butler. No staff. Too much to explain to them.”

“Yeah.” Casters formed a small percentage of the population, and those who’d accepted their abilities and actively used them didn’t usually take jobs waiting on people. Kaelan’s first lesson had been never, ever tell anyone what he could do unless he was sure they were casters too or the tolerant sort. When he was six, his mom scaring the shit out of him had rammed that lesson home. She’d paid for it, though. For weeks Kaelan had woken screaming from nightmares of being burned alive.

It was the main reason Kaelan had rarely had a relationship that lasted long enough to make it worth sharing his secret. So many of the guys he met didn’t believe in magic and were happy to insult those who did. Men like that were dismissed before he ever went to bed with them. Well, okay, sometimes he went to bed with people without asking their thoughts on the matter, but those were just one-night stands. They didn’t count.

There’d been a few guys he’d been involved with who did believe in magic, and for a while he’d entertained the possibility of settling down with one of them and being honest. Adair, who’d had a gorgeous body and a fucking tremendous cock, had reacted well to the revelation that his boyfriend was into magic without believing Kaelan could do it for real, but in the long run it hadn’t worked out. One bad night Kaelan had staggered home, bloodied from a window that had exploded. He’d been lucky not to lose an eye, and that he didn’t scar much. The next morning Adair had mumbled some excuse about seeing other people, and that had been the end of that.

He’d dated a caster once, but that had been a disaster of such proportions Kaelan preferred to forget about it. He figured he wasn’t designed for long-term relationships; people who’d grown up like him learned to be loners and, if they were lucky, to prefer it. It was a hell of a lot easier than trying to drum up emotions for lovers who weren’t going to stick around.

“Have you ever had a wife?” he asked Max. “Or a husband, I guess?”

“Get married? Me?” Max’s eyes widened. “Hell, no. I’m not even thirty. Settling down isn’t on my to-do list. Everyone I sleep with knows it’s short-term, and so far it’s not been a problem.”

“Because you make sure you pick people who feel the same way you do?” Kaelan wondered what would happen when Max met someone he wanted who didn’t agree with his three-fucks-and-you’re-out rule, but not for long. It was Max’s problem, and for all that their sticky start had smoothed out into an uneasy truce, it was clear they had nothing in common beyond their abilities.

“Yeah.” Max gestured at a door. “Bathroom has a first-aid kit in there if you want to clean your hand.”

“Might as well, I guess.” The bites were already an angry red, the flesh around them puffy. Cats’ teeth carried infection with them, and though Kaelan’s abilities would fight germs effectively, it didn’t hurt to help them by disinfecting the wounds as soon as possible.

The half bathroom was blindingly clean. Pale marble floor, granite countertop, and thick, soft towels a shade between blue and gray. Kaelan wasn’t someone who cared about his surroundings, but even he could see what an amazing apartment this was. There was no way Max was keeping that cat. In a place like this?

He washed his wounds, hissing at the sting of the soap, then doused them with hydrogen peroxide and smeared some antibiotic cream into the deepest ones. They’d all stopped bleeding.

When he left the bathroom, Max had returned to the living room with two bottles of beer.

“For real? Thanks,” Kaelan said, taking the one offered to him. “I figured you for a fancy-drink kind of guy. Scotch or something.”

“I have that too.” Max drank from the bottle, another thing Kaelan wouldn’t have anticipated. “But there’s nothing wrong with beer.”

The kitten pranced by with a narrow leaf sticking half out of its mouth. “Hope that’s not poisonous,” Kaelan said. The kitten dropped the leaf onto the carpet and stepped on it. The ends of the cat’s fur vibrated.

“Did you see that?” they asked at the same time, and before either could answer, a solid thwack on the building’s shields made Max waver on his feet.

“Hey, easy.” Kaelan steadied the man, who was obviously concentrating on reinforcing the shields. “How did they find us? Did they get past the outside shields? Oh God, was that my fault?”

“Probably, but it’s okay. They can’t get in this room. I’m putting everything I’ve got into blocking them.” Max sounded breathless but determined. “Tracking spell on the damned cat,” he added.

“I should have thought,” Kaelan said, angry at himself for assuming they were in the clear.

“They’re at the back door,” Max said. A moment later an energy blast ripped the door from its hinges. It landed on the floor in a pile of splinters. The dark casters from before stood in a hallway, beyond which was a staircase. A heavy swirl of gray-black magic surrounded the two casters, pulsing through and around them, but when they stepped forward, Max’s shields stopped them from crossing the threshold. They recoiled, faces twisting with annoyance.

“Will they hold?” Kaelan asked Max.

Max nodded, kept his voice low. “They’d better.”

“I’ll try not to make them disappear like the others.”

“Please don’t even picture that happening.”

Too late. Now it was all Kaelan could think about, and as the thought formed, the shields weakened, thinning to something as insubstantial as mist.

“No!” Max snarled. “You’re on my side, remember?”

Max caught his hand, and this time the contact brought a heat that was physical as well as magical. It sizzled through Kaelan, lighting him up like a Fourth of July sky. His skin tingled, his dick went rigid—not awkward at all—and his next breath burned his lungs.

“Too much,” he said, gasping for air. Shit, the couple were smirking and a second away from striding forward to finish them off. This was bad. “Dial it back.”

“Not a fucking chance. Put it where it’s needed.”

“Oh.” Making a mental note to slap his forehead when this was over, Kaelan did just that. Max’s strength seemed to lie in defensive magic. His shields were complex, efficient, and far beyond anything Kaelan was capable of casting. But if he flooded them with his specialty, adding some spice to all that cool strength…

Couldn’t hurt. Not now that the shields were thin as a politician’s promise.

He’d pay for this later, but if he didn’t give it all he had, he wouldn’t have a later. The two on the other side of the threshold reeked of evil, a throat-closing stench of sulfur and putrid flesh. The cat hissed between ululating yowls, reacting to their presence as if they were dogs. Make that hellhounds.

“Killing you two is going to be so much fun,” the man said. “Maybe we’ll let the cat eat your eyeballs before we sacrifice it. Would you like that?”

“Make it eat them while they’re still alive,” the woman said. “Freeze them and torture them and hurt them, and—”

She was one threat away from drooling, eyes gleaming with malice. Ish. Creepy. Kaelan pushed out his hand—the gesture wasn’t needed, but it helped him focus—and slapped it against what was left of the shield.

The shield surged bright-hot white, so bright that Kaelan had to squint and look away. It didn’t matter. He didn’t need his eyes to know it was the strongest shield he’d ever come across. With Max’s complex design and his power, it was fucking impenetrable.

Well, he was 95 percent sure it was impenetrable. They’d probably be finding out one way or the other pretty soon, because the two on the other side of the shield were gearing up for some kind of attack. Kaelan glanced at Max and then at the kitten, who was steadily backing away from the whole situation. It was still yowling and spitting, its tail puffed out, back arched.

Their opponents formed a loose sphere out of all that black, undulating mess, and the man said, “Now.” The amoeba-sphere shot toward the shield, and Kaelan tensed as he waited for whatever would happen next.

He wasn’t prepared for what did. Instead of breaking through the shield, which would be bad, or being absorbed by it—better—the sphere struck the shield and ricocheted backward at its casters, spreading out as it did so. It smacked into the man and woman at the same moment, wrapping around them like Silly Putty and knocking them flat to the floor. Neither of them cried out; the only sound was the thuds as their bodies hit the thin hall carpeting. The magical putty dissolved, sinking into the floor underneath them without a trace.

They lay without moving for a few heartbeats. Then Kaelan stepped forward and through the shield, trusting it to be designed to let him out and ignoring Max’s “Don’t!” He bent to touch them. No pulse, no breathing. Shit.

“They’re dead.”

“You’re lucky you’re not, you idiot.” Max grabbed his upper arm roughly.

“Hey!” Kaelan protested.

“Don’t hey me,” Max said grimly. “Get back inside. Now.”

Kaelan let himself be dragged back through the shield into the apartment. “Great, they’re dead. What do we do now?”

“Dispose of the bodies. I know some effective ways.”

“You do realize you sound like a serial killer’s best friend?”

“They’re not the first dead bodies I’ve had to deal with.” Max sounded tired, not boastful, so Kaelan gave him a pass. “It’s not a weekly chore—my life’s not that exciting—but recently, things are heating up. Hard to see it unless you’ve been paying attention.”

“And I’m guessing you have?”

“I’ve been tracking it on my computer,” Max said without giving any details. “Best option, we open a portal to an empty bit of ocean and push them through.”

“What if they wash up?”

“Things don’t tend to wash up from the Marianas Trench.”

That was cool in a way. “I never thought of using a portal like that.”

Max raised his eyebrows. “That implies there’s a way you do use them beyond the obvious.”

“No, it’s obvious,” Kaelan said. “It’s how I got to the warehouse so fast. You know, open one in front of me while I’m pedaling like crazy, rinse, and repeat. Shortcuts.”

“But portals take time,” Max said, frowning. “The fastest I can cast one is a minute to somewhere I’m familiar with. You can do them instantly? While you’re riding a bike? That’s incredible.”

Kaelan hadn’t blushed for years, but his ears turned warm. “I thought everyone could,” he said, annoyed that he sounded apologetic.

“They can’t.” Max talked like he knew, and that was strangely reassuring. It made trusting him easier. “Are you going to crash soon? I’m fading fast here.”

“Eventually, but I’ve got time. I’m not going to leave you to deal with them on your own.”

“It’s no trouble,” Max said. “But it’ll go faster with your help, and there’s no way I’m letting you take off without at least getting a better idea of what you’re capable of. We just met, and we were able to get our castings to mesh? Not the kind of thing we should walk away from.”

“I’m not the teamwork type,” Kaelan said doubtfully, and Max grinned.

“Yeah, neither am I. But let’s see if we can manage it anyway, okay?”

Something tugged at the bottom of Kaelan’s jeans. It was the kitten, already back in play mode as if nothing had happened. “Yeah,” he said. “Sure. Okay. Let’s see what we can do.”

Chapter One

It is a mistake to label a casting as “magic.” What we do is not outside the physical laws governing the universe but an extension of them. When we open a portal or raise a shield, we are manipulating energy. Does a man striking a match consider the flame he produces magical? No. Why, then, should we view a fireball created from ambient heat as anything but a match struck by the focused will of a caster? True, anyone with hands can draw the head of a match over a rough surface, and only a tiny percentage of the population can create a fireball, but does that matter? As Machio DeLintz said in his 1597 essay on the cost to a caster when a manipulation or casting is performed, true magic would be shown if a fireball could be created with the caster stood neck-deep in snow. This was, of course, before the groundbreaking work of Alicia Crawford, who…

[From A Brief History of Experimental Casting by Wainwright Dougal.]

Max opened the top-floor door, a bottle of champagne in his hand. It wasn’t his drink of choice, but it was the fifth anniversary of meeting Kaelan, and he got a kick out of picturing Kaelan’s stunned expression when Kaelan realized Max had remembered.

Five years. Had he expected it to work? To last? His instincts would’ve said yes to both, but looked at objectively, no and no.

It wasn’t even the unchangeable fact that he’d been born on the summer solstice and Kaelan the winter, which had made their abilities clash so disastrously that first time, until their imminent demise had forced a work-around that defined serendipitous. Apart they were strong; together they were unstoppable. Go, team.

Their imbalance in the way of money didn’t matter either. Kaelan had none; Max had plenty. Like everything else, they’d found a balance. A solo job Kaelan had taken on when Max was in Egypt, studying some recently uncovered hieroglyphics that proved to be written by a caster, had left him with a staggering bonus from a grateful client. When a kidnapper could be tracked and a portal opened to the basement used to hide his victims, people didn’t stay kidnapped long. Max had told him how to invest his bonus and stepped back, because once Kaelan had grasped the principle, his instincts never failed him. After six months, Kaelan’s bank account was thriving; after five years, he had more money than he needed, which was the definition of rich in Max’s book.

The top floor was shared space. Kaelan had put his stamp on it, bringing color and life to the expensive elegance, and Max had grown to like having someone around full-time.

There were occasions when it was awkward, though. Like now.

Max eyed Kaelan’s naked ass with disfavor as it bobbed up and down. Or forward and back. Hard to describe. Kaelan fucked with the energy of a teenager, generous with his lovers, appallingly noisy when he came. The recipient of all that frenzied activity was a blond man kneeling in front of the couch, arms braced on the cushion, eyes closed, moaning loudly enough to cover Max’s footsteps.

Time to announce himself. Max set the chilled base of the bottle against Kaelan’s ass and grinned at the startled shriek he got. His grin became a wince when the man being fucked gave an anguished yelp, Kaelan’s involuntary jerk driving his cock too deep for comfort.

“What the—Shit.” Kaelan looked over his shoulder, saw Max, and said, “Asshole.” Then scrambled to explain to his now wide-eyed and displeased lover, “Oh God, no, I didn’t mean you. I’m so sorry.”

“Who the fuck is this?” the blond asked, grabbing Kaelan’s bright red velvet pillow off the couch and holding it in front of his erection as if he had any dignity to save.

“I’m his partner,” Max said. Now that he’d gotten over the momentary guilt at what Kaelan’s dick had done to the poor guy’s ass, he was enjoying this again. After swapping the bottle of cold champagne to his left hand, he offered Blondie his right. “Maxfield Ancaster. Nice to meet you.”

The blond guy clamped the pillow more tightly to his groin and stuck out his hand to shake Max’s, then thought better of it. “Wait! No. What the hell is going on?”

Kaelan had gotten to his feet too and didn’t seem nearly as annoyed as his friend. He didn’t make any attempt to cover himself either; Max and Kaelan had been naked around each other plenty. After five years living in the same apartment, modesty was long lost. “I’m sorry. He’s my business partner. Max, this is Pike.”

“Hey, Pike. Sorry about the interruption. I brought this back to celebrate our anniversary, but we can do that later. You two go downstairs if you want to finish up.”

Pike had somehow managed to creep sideways toward the place where his clothes were discarded over the arm of the couch without revealing so much as an extra inch of skin. “No, thanks. This is a little too weird for me.”

The condom on Kaelan’s dick looked in danger of sliding off. Max reached into his jacket pocket and pulled out a wad of tissues. They hadn’t been in there a moment ago, but Pike wasn’t to know that.

Kaelan took them with a wink Pike didn’t see, using them to wrap around the condom and clean himself before tossing the crumpled ball at the wastepaper bin. It missed, but only because it vanished on the way, winking out of sight as if echoing Kaelan’s action. Good. There was no way Max was watching TV in a room with a used, if empty, condom lurking.

“It isn’t weird,” Max said. “Just against the house rules.” He pointed down. “Floor beneath. Bedrooms. That’s where we bang our cuties.” He smiled at Pike. “And you are. I’ve never faulted Kaelan’s taste in men.”

Pike pulled a thanks-but-forget-it face. “No, it’s weird. And I don’t do threesomes.”

“Neither do we,” Max said. He thought back to his birthday and gave a shiver of remembered pleasure. Kelly and Marissa had made him forget any pangs at being a year older. Though when he’d woken, sore in all the right places, they’d already left, and for a moment the bed had felt too big for one. “Well, at least not with both of us in the mix.”

The cat padded into the room, nudging Max’s calf before turning his back on Kaelan in a marked way.

“Now look what you did,” Max said reprovingly. “You’re lucky it was me with a bottle, not Bast with his claws.” He glanced at Pike, who was scrambling into his clothes as if the building was on fire. “He has this thing about us having sex. Thinks it’s his duty to interrupt. If the door’s locked, he scratches that. If it’s open, he scratches us.”

“Bast?” Pike asked, pausing with a sock in his hand. “Oh yeah. Egyptian god of cats.”

“Goddess,” Kaelan corrected. “And Bast’s a he. It’s short for bastard. He’s that too.”

“They do say pets take after their owners,” Pike said with acid sweetness.

“I am sorry,” Kaelan said. “If you want to try again another night, I promise I’ll make sure we aren’t interrupted.”

Pike seemed to consider the offer. “Maybe,” he said finally. “Walk me to the door, at least?” Max tried not to take the look of irritation thrown his way personally; blue balls made any guy grouchy.

Kaelan followed Pike to the back door and murmured some things to him that Max didn’t try to overhear, then kissed him thoroughly enough that any hint of frustration was replaced with the starry-eyed adoration Max was more used to seeing on Kaelan’s lovers’ faces. Kaelan lingered in the doorway and waved at Pike, then shut the door and came to join Max in the kitchen. “Sorry,” he offered. “About breaking the rule. It wasn’t planned.”

“No?” Max was pretty sure that wasn’t the whole truth. “You didn’t bring him back here to fuck his tight little ass?” He gestured at the cupboard, and Kaelan opened it and took out two champagne flutes, then set them down near Max.

Obviously we both had that in mind,” Kaelan said. “I didn’t think it would happen so fast.”

“I don’t care who you bring home,” Max said as he untwisted the cage around the cork. “I mean, as long as he isn’t a serial killer. But keep it in the bedroom, okay?”

“I will.” Kaelan glanced from Max’s hands to the cat. “Bast. Cork.”

The champagne opened with a pop. Max let the cork fly, and Bast, who had an almost unnatural fondness for the things, went after it like a furry madman, batting it hard enough that it shot out of the kitchen and disappeared around the corner.

“Does he think they’re alive?” Kaelan asked. “A cross between a fly and a bird, maybe? Corkus Poppus?”

“If they were, they wouldn’t stay that way for long.” Bast proved him right by padding back into the room, the cork wedged between his teeth, satisfaction radiating from every black hair, the tip of his tail flicking from side to side. He settled down in the corner to play with his victim, small growls emerging now and then.

“For an indoor cat, he’s a pro at hunting,” Kaelan said, accepting a flute, the bubbles darting up, golden beads popping silently as they reached the surface. “Here’s to five good years, partner.”

“Instinct,” Max said, tapping his flute against Kaelan’s, enjoying the mellow tone the struck glass emitted. “And here’s to many more.”

He had his suspicions about Bast being confined to the building. There was no way the cat could get outside unless Bast had learned to open doors. Even so, sometimes when he’d driven into the garage, he’d seen a small shadowy form darting across the threshold before the overhead door rumbled down.

They’d planned to let him roam the rooftop garden, but they’d taken him there once, and he’d jumped up on the low wall surrounding it and peered down at the sidewalk, leaning over at a gravity-defying angle. Kaelan had acquired more scars from Bast’s claws when he’d grabbed the cat and yanked him to safety. Max had gotten a scornful glance and been treated to an up-close and personal look at Bast’s ass as the cat washed it during the whole of Max’s lecture, ignoring him as only a cat could. Since then, even with the special shields Max had reinforced to safeguard the roof, Kaelan had refused to allow Bast up there.

Max had let it go. Kaelan got protective with people he loved, and Bast qualified. So did Max, and he knew it. Kaelan was his best friend, the perfect partner.

“Is it nice out? Want to go up to the roof?” Kaelan asked.

Max knew Kaelan wasn’t a mind reader; neither was he. The only explanation for the way Kaelan so often seemed to know what Max was thinking had to be the simple fact that they’d lived in each other’s back pockets for the past five years. “Sure, let’s go.”

“No, Bast. You stay here.” Kaelan pushed Bast gently with his foot as they made their escape.

The stars hanging over the city of Hartford were invisible, but the colorful lights of street signs and the shining windows of nearby buildings were almost as good. Max reminded himself again that they should schedule some vacation time. Maybe go somewhere peaceful, like England or Scotland, for a few weeks.

“Oh, that’s nice,” Kaelan said with a sigh as he put his feet up on the wicker table in front of the patio love seat.

“Long day?” They hadn’t seen each other much, or touched base as often as they usually did.

“Kind of.” Kaelan sipped his champagne. “I guess I haven’t been sleeping well or something.”

“Nightmares?” It wouldn’t be the first time.

Kaelan shrugged as if they didn’t matter. “I don’t remember them.”

Max drained his glass, set it on the table, and slung an arm over Kaelan’s shoulders. Kaelan leaned against him and made a small, pleased sound.

“We could try a dream-scry.”

“If drinking this makes you talk in rhymes, you can have the rest of the bottle.”

“Funny guy. I mean it.”

“Scrying is a con man’s trick. Amateur-hour stuff. All props and drama. Silver bowls and springwater, or ink. Or…” Kaelan faltered, then finished off his sentence. “Or blood.”

“Tap water and a cereal bowl work fine, and we know it.” Though Max had a fondness for the props Kaelan dismissed. And an attachment to the tools of his trade in the workshop on the second floor. Alongside the humming machines were a mortar and pestle, ingredients in thick glass jars clouded with age, and a selection of crystals and candles. Most of what they did came from within, but sometimes it didn’t hurt to have some items made up and ready to go, the use of which didn’t drain the caster’s strength, because that price had been paid at the time of making.

“And subject you to hours of me dreaming what it would’ve been like if Pike had stuck around?”

“I think you can fill in the blanks there without needing to dream. It’s sex. How many different ways does it come?”

“Interesting choice of verb. And it’s different with every partner.”

“Sometimes I’m just going through the motions,” Max admitted. “Sex is fun, totally necessary if I want to stay happy, but recently it’s gotten stale.”

“Maybe you need to commit.” Kaelan spun his empty flute between his fingers, the slender stem safe from cracking because Kaelan would never break something carelessly. “Go deeper. Share more. Care more. God, it does make you talk in rhyme!”

“It’s too complicated. You get it.” Max turned his head and kissed Kaelan’s hair without thinking, wondering a moment later why he’d done it. They didn’t kiss. Hug, yeah, sometimes, but kissing threatened their no-sex agreement. One thing led to another. Kaelan didn’t react, though, clearly treating it as no more than a friendly gesture. “You’re the only person who does.”

“There are other casters out there who’d understand,” Kaelan said. “Remember that guy from, where was it, Zurich?”

“I think it was Munich,” Max said fondly. Kaelan was smart in all the ways that mattered. He’d managed to graduate high school by the skin of his teeth despite his rocky upbringing, but the subjects like geography seemed to have fled his brain the minute his diploma was in hand. “Different country entirely.”

“Oh, right. Anyway, my point was, that guy got it. And he can’t be the only one. Someday you’ll come across someone who’s worth it.”

“Maybe.” Max wasn’t sure he cared whether he did or not. He’d rather live without sex than have it when it was unsatisfying, but long-term wasn’t realistic either.

The sky above them rumbled a low complaint. Odd. He’d checked the weather earlier that day, and there hadn’t been any storms in the forecast.

“What do you mean, maybe? You have to keep a positive attitude. Could be I’ll come home tomorrow night and find you fucking someone on your precious cream leather couch.” Kaelan grinned at him mischievously.

The sky rumbled again, and Kaelan sat up, tense, his smile fading.

“Did you feel that?”

Max had. A caster, not far off, messing with something she wasn’t in any way capable of handling. He sensed that much, but Kaelan would know more. Kaelan was a smoke detector for dangerous castings. He’d told Max once that he got a flash of what was happening, fuzzy, frustratingly hard to interpret when he was younger. These days, the warnings were sharper, packed with information. “Tell me.”

“It’s a girl. Got a baby girl. She’s fucking around with some kind of love spell. Stupid. Why are people so stupid? Let’s go.” Kaelan stood, moving toward the stairs, and Max didn’t need to think to follow him. Kaelan turned, and his expression was suddenly so panicked Max’s heart skipped a beat. “Oh God, Max, a demon just showed up. She summoned a fucking demon. I’ve gotta go. Meet me there.”

Kaelan darted forward and kissed Max on what was probably meant to be the cheek but which landed half on his mouth instead—what was with all the kissing tonight? Then he whirled around and leaped from the roof, his shadow outlined by the city’s lights for an instant before gravity took him.

It wasn’t Kaelan who’d be having bad dreams that night. Max took a stumbling step, hand outstretched as if he could pluck Kaelan from the air. Shock dried his mouth, and it took the sound of his champagne glass striking concrete to kick-start his breathing.

Reason returned with his first gasped breath. He knew what must’ve happened. Kaelan had opened a portal in midair, exited a safe distance from the sidewalk, his momentum absorbed by the cushion of energy that came built into any vertical port. Well, any Kaelan cast. He could have made his portals sing to him during the transit. Once outside the building’s shields, he would’ve gotten a definite lock on the disturbance and portaled to its center.

“Still going to kick his fucking ass for scaring me spitless,” Max muttered to himself as he made for the door and the stairs. “Show-off. And he blew the fucking shields.”

Max hadn’t needed the inward rush of traffic noise to tell him that. He’d felt his shields dissolve, swept aside by a targeted blast of energy from Kaelan that had ripped a hole in their fabric, setting off a chain reaction.

He didn’t try to restore them; that casting would take an hour or more to complete.

Portals took time for Max to cast, but Kaelan had been tutoring him, patient in a way he never was with minor events like wrong numbers or long lines at the supermarket. Max couldn’t open a portal to anywhere as fast as Kaelan, but if he ignored the location and used Kaelan himself as the locus point, it would save time.

He focused on the wall around the door to the stairs, rough red bricks fitted together in the familiar staggered pattern that gave them strength. As a kid, he’d never understood why they weren’t stacked in neat rows, one on top of another. Then he’d built a wall that way with wooden blocks and seen how easy it was to topple.

Tracing a circle with his hand, reinforcing it with his will, he reached out to Kaelan, seeking that spark of energy. He’d know it instantly. Everyone was unique, but Kaelan was special.

Kaelan was a magnet, and he, Max, was the iron helplessly attracted to him, drawn to him, even across a dozen city blocks.

Stepping through a portal was always an ordeal. Inside the cushion of energy, it wasn’t possible to breathe, so there was a moment of sheer biological panic as Max’s lungs filled up with cotton wool. And then he was out the other side, banging an elbow painfully into a door frame that no longer held a door and crunching through the broken glass that had once been that door. The portal closed with a muffled whump, and Max kept moving, up the staircase, following the shards left in Kaelan’s wake.

The casting had already been out of control when they’d first felt it. Now it pulsated, dark energy escaping the confines of the apartment and flooding the hallway with the magical equivalent of radiation. The first thing Max did as he paused to review the scene before him was form a shield, stretching it to take in Kaelan and the wailing infant he held, then the young woman responsible for the casting.

“How could you without knowing what you were getting into?” Kaelan demanded.

The woman shook her head, eyes wild, desperation pinching her features and making her look older. “I want him back!”

Amid the swirling whirlpool of dark green-black magic around her was a darker shape, maybe female, although the reality of demons was that gender was rarely apparent or meaningful. The demon pushed against the shield, which gave under the insistent pressure. Max fed more energy into it, but it continued to buckle.

“I don’t care what she said. You can’t have her!” Kaelan told the demon. It made a sound like something large and metal being crushed by heavy machinery. Nothing about the noise indicated agreement. Kaelan turned his body, using it to protect the squirming, screaming baby.

“I never said it could take my baby!” The woman’s hair, long, dirty blonde, and in need of a trim—odd how irrelevant details registered at times like these—swung around her as she turned to face the demon. “I didn’t!”

‘Anything it takes,’” the demon quoted, using the woman’s voice as if playing back a recording. “ ‘I want Neil back. I’ll do anything, give you anything. Please. He’s Sarra’s daddy. He should be here with her. With me. It’s right that he’s here. He should be here. Anything.’” In its own voice, a rusty scrape of iron against stone, the demon snarled, “Baby is something. My something now. Give.”

“That’s not going to happen,” Max said, projecting assurance he was far from feeling. God, she’d been reckless. “It’s not. She made a mistake, and she’s changed her mind. No boyfriend back for her, and no baby for you. Go home.”

It didn’t have the oomph of Return to the realms of darkness whence thou came, foul beast, but it conveyed the same message.

“No changing,” the demon told him. “Made a deal. No changing.”

It was almost always true, but Max wasn’t ready to give up, not yet. More importantly, he knew Kaelan wouldn’t.

The young woman reached for her baby, but Kaelan stepped back, not denying her the child but keeping the woman safe. It was impossible to know if the demon’s intention was to take the infant away or kill her where they stood, but if it tried the latter, the resulting magical surge could destroy anyone too close. Max kept feeding power into the shield, at least able to make it smaller now that the woman was closer to Kaelan.

“Remember the mirrors?” Kaelan shouted as the shield wavered further.

It took Max a few seconds to realize what Kaelan meant, but once he did, he understood. They’d experimented in the past with what happened when Kaelan’s magical blasts bounced off a mirror-surfaced version of Max’s shields. “Do it!” he shouted.

He knew immediately that the power Kaelan sent flying at the demon, a tightly condensed sphere of blinding white, was Kaelan not fucking around. This wasn’t a test to see how strong the demon was; it was a full-out attempt at obliteration. While the sphere was still hurtling at the demon, Max fortified the shields, making the outside into a mirror that would deflect Kaelan’s sphere if it came back at him.

Good thing he did—the demon’s shield, tight to its form, flared into power a fraction of an instant before Kaelan’s attack hit it. Kaelan’s sphere bounced back at Kaelan and the two he was protecting and hit the surface of Max’s shield. The shield failed, splitting down the middle, its bubble bursting and reforming. Max shouted wordlessly as the impact knocked Kaelan and the woman off their feet. They hit the floor hard, Kaelan’s grip on the baby tightening. It was small consolation that Kaelan’s sphere did what they’d hoped and shot back at the demon a second time. The demon was unprepared, and when the power hit, it shrieked loudly enough to make the apartment windows crack. One pane of glass collapsed inward onto the cast-iron radiator, shards spraying out, but Max didn’t care, because the demon had vanished.

The sudden lack of swirling dark magic and wind was shocking, but Max bolted to Kaelan’s side, knees protesting their contact with the floor.

Kaelan stirred and lifted his head, and Max’s heart started again.

“I’m okay,” Kaelan managed, his voice a croak. “We’re okay.” The baby squirmed, opening its mouth to wail disconsolately. “The girl. Where?”

“She’s right here. Oh.” Max didn’t need to take a pulse to know the woman was dead. Necks didn’t bend at that angle on living people. “Shit.”

“Happens,” Kaelan finished tiredly.

Five years ago, Kaelan would’ve gotten furious, cursing life, the universe, and himself for failing to save everyone. It’d always torn at Max, seeing how hard Kaelan took failure, but he missed Kaelan’s outbursts. Something told him Kaelan’s reaction hadn’t changed; Kaelan had decided to keep it bottled inside him.

The baby’s thin, insistent wail set Max’s teeth on edge. Which was what nature designed it to do, making the sound as annoying as possible so that tending to the baby’s needs became top of the to-do list.

Except Max had never changed a diaper in his life and intended to die with that still true, so he hoped whatever the baby needed wasn’t poop related. There was a nasty smell in the air.

Belatedly he realized the stench was coming from the baby’s mother. He grimaced. Death was messy, all dignity lost as muscles relaxed and the body expelled waste in a final act of housekeeping. The dead didn’t care how they looked or smelled, but for all that she’d been monumentally stupid, Max felt a pang of sympathy. She was so young, barely twenty, if that, and the baby Kaelan held was plump and clean, dressed in a soft pink-and-white romper suit, a small pink bow attached to a wisp of blonde hair. The baby had been loved and cared for, and the apartment was as tidy as a home with a baby in it could be, overlooking the cracked and shattered windows.

“We can’t make her disappear,” Max said. “And we can’t leave her to be found eventually, not with the baby in the picture.”

They’d made plenty of noise, but this wasn’t the kind of neighborhood where people came to see what was wrong and offer help.

“Maybe she’s got a relative listed in her phone?” Kaelan suggested.

“Becky? Baby, it’s me. I’m sorry it took so long.” The new voice went mute as the young man who’d come into the apartment saw his girlfriend lying on the floor, obviously dead, eyes blanked and fixed on the ceiling. “Oh my God. Becky! What the hell happened? Who are you?”

Max’s perception shifted as Kaelan cast a hasty glamour over them, altering their appearance so they wouldn’t be recognized later. Max should have thought of it himself; it was more his type of casting than Kaelan’s, though over the years they’d both learned a lot.

“You’re the father?” Kaelan asked, struggling to his feet with Max’s help.

“Yeah.” The young man snatched the baby from Kaelan, cradling her lovingly, face dark with anger. “What did you do to her?”

Kaelan stepped back, taking Max with him, fingers twisted in the fabric of Max’s shirtsleeve in a way that was familiar.

“Nothing. She did this to herself.”

“No! She would never have left us. Never.”

It was heartrending to see the pain in his eyes, even if a lot of it was probably spell induced. Max weighed the cost and reached out to Neil, soothing his distress, clouding his memory of them. It was a clumsy casting because he did mood-alterations so rarely, but Neil’s grief and shock left him vulnerable to suggestion.

“Time to go,” he murmured to Kaelan. “We can make sure he’s not blamed for this.” There were casters in key positions all over the state, and taking care of innocent bystanders to keep the lid on events like this was part of their jobs.

“Take care of the baby,” Kaelan told Neil. “And call the police.”

He tugged Max out into the hallway, opened a portal when they were out of Neil’s sight, and they stepped through it, leaving the devastation they’d been unable to prevent behind them.

Chapter Two

For those with peaceful lifestyles and enough energy to spare, there are many uses for portals that are otherwise unrelated to magic. Please note that the uses listed here are designed to avoid the creation of a negative karmic balance.

• Moving or rearranging of heavy objects. Items like love seats and bookcases that aren’t too large for a single person to move can be pushed into a portal that opens into the location where you’d prefer the object to reside. Heavier items, such as pianos or automobiles, might require the help of a second person (either a mundane, who can help push the item, or another caster, who might use magic to assist in the shifting of the object).

• Relocation of wasps’ nests. A portal that ends in a carefully selected, isolated location like a field or forest can be the perfect site for pesky insects that threaten your family. A gentle push of the nest into the portal, and your worries are over without the need to extinguish life (even in tiny, venom-laden form).

[From Practical Uses for Portals in Everyday Life by Felicia Moonglow.]

An hour later, Kaelan had a good buzz going despite Max’s rightful insistence that it was better not to drink after heavy casting. He didn’t care if Max was right. He wanted to dull the aftermath of a rescue gone wrong. And anyway, he’d compromised by agreeing to order an appetizer platter. Between them, they’d reduced an order of fries, mozzarella sticks, and hot wings to a smear of grease and pile of bones within ten minutes.

“We should go home and get some sleep,” Max said.

Kaelan glanced around. They were in one of their favorite local haunts, a small bar with dim lighting and a collection of padded booths in the back. Kaelan’s casting pathways were scraped open, nerve endings raw, and now, nearing the end of his second drink, he felt less like a walking, talking bundle of pain. One more, he decided and lifted a finger to get the attention of the bartender. “I know,” he said, forestalling Max’s rebuke. “One for the road. Then we’ll go.”

“Is it helping?” Max asked. His voice was gentler than Kaelan had anticipated, which made him feel worse instead of better.

“A little.” They were sitting on the same side of the booth, Max on the outside, physically shielding Kaelan the same way he so often magically shielded him. “Why didn’t it work the way it should? Demon dead, humans not?”

“The demon wasn’t doing anything wrong by its standards,” Max pointed out. “It even kept its part of the bargain.”

“Some bargain.” Kaelan finished off his drink, shuddering as the burn from the vodka attacked the lining of his throat. “Who wants love that’s not real? A heart that wants someone else? For all we know, that guy walked out on his true love to go back to what’s her name.”

“They did have a baby. He should’ve stuck around for her, at least.”

“Why?” Kaelan’s fresh drink arrived, the two ice cubes knocking against each other and the lemon slice a perfect semicircle. His hand shook as he reached for it. “Sometimes it’s for the best. There were times I would’ve paid my dad to go out the door and never come back.”

There’d never been enough money in his house growing up. Well, enough money for beer and cigarettes, sure. Kaelan’s mom had died when he was seven. Before that, she’d worked long hours as a cleaner or a waitress at whatever job was within walking distance or a short bus ride. They moved so often, usually one step ahead of an irate landlord, that Kaelan needed both hands and a foot to count the schools he’d attended. His GPA had been tragically low, and he knew the way five Shakespeare plays began but not how any of them ended, until he’d sat down one day and looked them up online. Damn. He’d had a good feeling about Romeo and Juliet too.

Looking back, the only bright spots in his childhood were the stories his mom had told him when his dad was safely out of the house. Stories about his grandmother who could do the most amazing things, but “Shhh, don’t tell. Don’t ever tell.

Finding out he could do them too had been terrifying and exhilarating. How he’d survived those first reckless experiments was a miracle. That time he’d opened a portal to somewhere outside the atmosphere and been a step away from walking through when the edges of the portal had blazed red and he’d jumped back reflexively. He’d checked his coordinates, and yeah, a mile high instead of a mile across town made a big difference. Huge.

Needing to know why his portal had warned him, he’d turned to the books. And they were out there, tucked away in tall, musty piles at the backs of shops where the dust had dust and the owners looked like mummies, vague gray shapes muffled in sweaters even in the summer. He’d bought what he could afford, read others in the store, quiet as a mouse, and shamefully stolen a few, though when he got a job, he’d made good on his debt. What the store owners had thought finding a crisp hundred-dollar bill in an envelope on the counter when they opened up, he didn’t know.

Discovering some books he needed in the local library had left him dazed with shock. Right there. Books on portals, on shields, on demons and famous casters. He’d realized when he tried to check them out that they didn’t exist to the librarian. After processing the Heinlein he’d tossed in for good measure, she’d handed back his card. When Kaelan had pointed at the other books, she’d frowned as if her head hurt and wandered away.

Kaelan lived in two worlds, and figuring out where they overlapped and where they didn’t had been trickier than ice-skating in slippers.

“We need to know why it didn’t work,” he said again, hanging on to one question as the rest of them started to slip away under the surface of the alcohol. Casters were cheap drunks, and Kaelan was no exception. “Was my aim off?”

“It’s not about aim.” Max slung an arm around Kaelan’s shoulders in that way he had, when he knew Kaelan needed comfort or support but wouldn’t accept it in a more overt fashion. “I should have switched to the mirrored surface at least two full seconds sooner than I did.”

“It wasn’t your shield. It was my attack.” Kaelan knew he sounded miserable, and if he’d hit miserable, he was done drinking. “It can’t happen again.”

“It isn’t going to happen again,” Max said.

“She’s a baby,” Kaelan said. He was losing it, balanced right on the edge. “And she has to grow up without her mom. It’s not fair.”

“Hey,” Max said soothingly, gathering him closer, but Kaelan bit down on the inside of his cheek and shoved Max toward the end of the bench.

“I’m fine. Don’t treat me like a kid. You’re not my big brother, Max.” Any sign of sympathy when he was emotional pushed him over into tears or rage, depending, and he was not going to cry here.

Max knew him, maybe too well. He slid off the bench and around to the other side of the table, giving Kaelan the space he needed.

“Speaking of brothers, mine made the news today,” Max said. The casual tone didn’t fool Kaelan. Max and his estranged family was a topic they avoided for the most part, but avoiding something turned it into something bigger, and recently Max had been bringing his family into the conversation now and then.

From Kaelan’s perspective, every time he did, it looked like biting down hard on an aching tooth.

“Yeah? World’s Most Boring Lawyer award? Arrested for making the judge fall into a coma?”

Being nasty about the younger brother who was the only offspring Max’s parents would admit to having was rude, but Kaelan felt like being an asshole. Because he was one. A too-little-too-late asshole who failed to save people who needed it.

Max shook his head, ignoring Kaelan’s comments. “He’s taken on a pro bono case. There’s this company buying up real estate and not taking no for an answer. An elderly couple refused to leave the home they’d lived in for forty years, and they were found dead in their bed.”

“Sad.” Kaelan frowned, connecting the dots. “Wait, both of them died the same night? That’s hinky.”

“Yeah. And no one can figure out why they died, which is hinky squared. Their daughter’s convinced the company sent around some muscle who scared them to death, and she’s suing them for harassment. She can’t prove the heavies, but she’s got letters, e-mails, and recorded calls that show escalating pressure on her parents. She found out this is going on all around the city and formed an action group with other victims. They’re Rafe’s clients.”

“Oh. Well, good for him.” Kaelan’s interest in Rafe was nil. Who refused to take his brother’s calls because his parents had threatened him with being disinherited if he did? A loser, that was who. “You aren’t thinking of calling him again, are you?”

“What? No.” Max was as convincing as a three-year-old trying to feign happiness over a second identical birthday present.

“Don’t do it,” Kaelan said emphatically. He reached across the table and rested his hand on top of Max’s. “I’m serious. You can’t keep turning the other cheek forever.”

“He’s my brother.” Shrugging, Max looked at him. “I’m curious. Why would he take a case like that?”

“Maybe he decided it’s time to experiment with being a better person. Don’t worry, it probably won’t last.” Kaelan regarded his third drink, largely untouched, then slid it closer to Max. “You need this more than I do.”

Max hesitated before taking it. “We’re a pair, aren’t we?” He lifted the glass to Kaelan before drinking.

“Always have been.” Kaelan might not be a genius, but he was smart enough to give thanks every day that something in the universe had seen fit to cross his path with Max’s when it had. He’d been hanging on by his fingernails for so long before he met Max that he hadn’t realized it anymore. It had taken months of living with Max to convince Kaelan that the mildest speed bump like a magical hangover or a flat bike tire wouldn’t hurl him spinning into financial catastrophe.

Sharing an apartment with a millionaire should’ve been awkward. Somehow it’d never gotten to that point. Kaelan’s independence was as much a part of him as his skeleton. He didn’t take help; he gave it. Yet moving in with Max after a few months had seemed natural. Working with him in the office, experimenting in the lab—it was where he belonged. It’d felt right.

He’d be lying if he said he never wondered what it’d be like to sleep with Max in the carnal sense of the word, but it would change so much that worked perfectly that Kaelan was unwilling to take the chance. And Max had been definite about Kaelan not being his type; that refusal deserved respect. Pushing him and risking what they had for something as easy to get as sex defined stupidity.

“This isn’t the way I planned our five-year celebration.” Max’s green eyes went hazy. “God, I was so pissed when you burst in and ruined my plans.”

“Yeah, I remember wondering if you’d take me out first and then go after the kitten killers.”

“No, I would’ve saved you for dessert.”

“What was it they were doing again?” Kaelan asked idly. Max had to have told him, but the details refused to coalesce. He grabbed for them, but they slipped away, seaweed in water. “You followed them.” His forehead hurt from frowning. “Two of them. Man and a woman. Needed Bast. I can’t remember the rest. Why can’t I?”

Max tapped his glass. “Too many of these, on top of leaping off high buildings. And we need to discuss that, because I nearly had a heart attack. And you’re helping to put the shields back, because you blew them apart.”

“Shit, I forgot. Yeah. We’d better get home and take care of that before we’re too tired to do it.”

Thank you,” Max said. “Haven’t I been saying that for the past hour?” He finished Kaelan’s drink and reached for his wallet, dropping some cash onto the table. “Let’s go.”

It was a five-minute walk back to their building. Kaelan glanced up at it as they crossed the street. It was a long way to fall, sure, but he hadn’t been thinking about that when he’d jumped. He’d been too busy calculating the positioning of the portals.

“Don’t do that to me again, okay?” Max said gently, jostling his arm.

Kaelan didn’t believe in making promises he couldn’t keep. “I didn’t have time for a conversation.”

“It was one hell of a shock,” Max said as they stepped up onto the curb.

“Yeah. I’m sorry.” That much was true. Kaelan knew how important he was to Max.

It took almost an hour to put the shields back in place to Max’s liking. Kaelan was careful not to complain about the tedious chore, since it was his fault the shields had been destroyed. Job done, he went to take a shower. He put his pajama pants on while listening for sounds from Max’s room, but all was quiet.

Twenty minutes later, Kaelan was staring at the ceiling, unable to sleep. He was exhausted, but every time he closed his eyes, he saw the girl with the broken neck. Finally he got up and crept down the hallway to Max’s bedroom. The door wasn’t closed completely, and a stripe of light from the room illuminated the hall carpeting. Kaelan pushed the door open without speaking, not wanting to wake Max if he’d fallen asleep.

Max was sitting up in bed with a book. He took off his reading glasses when Kaelan came in. “Can’t sleep?”

Kaelan shrugged.

“Want to talk?”

“No.”

Max set his book and glasses aside and flipped back the covers. “Come here, then.”

Without a word spoken and no more than a glance at Max, Kaelan got into bed. The sheets smelled of Max, and he let the comfort of that seep into him.

“If you have nightmares again, we’re scrying you tomorrow.”

“Won’t,” Kaelan muttered. He still believed dreams were just dreams, even when they were bad ones. They didn’t mean anything, except as glimpses into a person’s messed-up psyche, and he didn’t want Max poking around in his.

Max drew his hand over Kaelan’s head, an affectionate caress that Kaelan wanted to push into, the way Bast did when he was in the mood for petting. But Kaelan was too tired for that.

He listened to Max’s breathing slow, noted the exact moment when Max’s consciousness winked out, then slid down into sleep himself, chasing Max, knowing Max would guard his dreams, keep him safe.

Safe from what, Kaelan wasn’t sure. But something was hunting him, maybe both of them. His instincts recognized the threat, though his mind couldn’t quite grasp the details.

Chapter Three

There’s a school of thought that clothing affects the casting. Some advocate wearing natural fibers for significant castings—in neutral shades, natch. Others stand firmly behind going skyclad. I say, who cares, as long as you’re fashion forward, darlings! Spare yourselves the goose bumps and slip into something from the latest collection by Simon and Jay. Those two lovebirds just released a fall line that made this fashionista’s heart flutter at New York Fashion Week. I know my levitations will rise to new heights when I’m wearing those divine superskinny jeans in a scarlet to match my blush when I dropped my Marc Jacobs oversize tote in a puddle and splashed Kate Spade’s LBD. And if I do fail to rise, well, wearing their four-inch pumps in the Lola line will take care of that little problem! Italian leather, pearl-studded heels, and the cutest fuck-me bow on the toe. Who could resist?

Not this girl!

So cast with style and in style, sweeties, because if you summon a demon and lose control, you’ll never outrun him in bare feet, but a stiletto to the instep might buy you time to portal to safety.

[Jacquie Jones from her weekly column in Cloak and Wand.]

When Max woke, the sun was barely starting to rise. Kaelan was asleep next to him, sprawled out, his foot touching Max’s calf. He seemed peaceful enough, his breathing even—no signs of a nightmare. Max was tempted to stay where he was and doze, but generally once he was up, he was up. Going back to sleep wasn’t something that happened often for him. Bast obviously didn’t have the same problem. The cat, curled up at the foot of the bed, yawned, stretched, and closed his eyes again.

Max slipped from the bed as silently as possible, not wanting to disturb Kaelan, and went upstairs to make coffee. Leaving it brewing, he went back downstairs to the office on the bedroom level to check his e-mail. He hadn’t gotten around to it the night before, and going more than twelve hours without checking in made him antsy.

He frowned when he saw a message in his in-box from a classmate he hadn’t heard from in years. It was the kind of thing you expected to contain bad news, and predictably enough, when he opened it, it did.

After some perfunctory inquiries into his well-being that Max doubted Andy wanted answered, came the true reason for the e-mail.

Professor Dougal was found dead in his office this week. Tuesday, I think. Remember him? He didn’t teach us, but you took a fancy to him in your final year. No, not like that! He had to have been older than God even then. I found out because my niece is at Harvard and mentioned it when she called to wish Anna a happy birthday. Anna’s our first and, according to Catherine, last baby. We’ll see about that.

Anyway, thought you’d like to know. Well, not like, but you know what I mean!

If you’re ever in Boston, give me a call. We can meet for dinner, or you can stay with us if you’re not put off by my descent into domesticity.

Max closed the e-mail without replying, startled by the sting of tears. Wainwright Dougal had been old, yes, but in no way frail. It’d been over seven years since they’d met in person, but they’d corresponded in various ways, sometimes several times a week, sometimes letting six months go by. The last time they’d spoken, Wainwright had been fuming over a plagiarized paper a student had handed in, and Max’s share of the conversation had consisted of soothing murmurs for the most part.

Tuesday. That was four days ago. Four days and no one had told him sooner? But then, who would? Unless Wainwright had left Max a legacy, in which case his lawyer would be in touch. Max would’ve been surprised not to have been left something. Not money—Wainwright knew he didn’t need that—but his books and notes, yes. Wainwright had asked Max to take care of them years before, and Max had agreed, knowing the notes in particular would be dangerous in unscrupulous hands.

And they would’ve been left shielded, impossible for a noncaster to see. Damn. He’d have to get them himself and soon.

“What’s wrong?”

Kaelan stood in the doorway, knuckling sleep from his eyes and yawning widely. The pajama pants he wore slid down an inch, and Max made sure his gaze didn’t follow their descent. Emotionally raw as he was, the comfort of sex, an affirmation of life at its purest, would’ve helped, but not with Kaelan.

Let Kaelan into that part of his life, and Max would be vulnerable in even more ways than he was now.

“I’m going to need to go to Harvard. Today.” He explained why, his voice steady, but the sympathy in Kaelan’s eyes came close to breaking his composure.

“I’ll come with you. We can drive there like regular people and give you time to plan acquiring his notes.”

“Okay.” Max didn’t have the energy to argue, and to be honest he’d be glad of the company.

Kaelan patted his shoulder, hesitated, then gave him a quick hug that was over before Max could appreciate it. “When do you want to leave?”

Two hours later they were on the road headed toward Boston. Kaelan was behind the wheel; Max had long ago abandoned any hope of keeping his car to himself, and when he’d suggested Kaelan buy one, Kaelan had shrugged and asked why he would need a car in the city.

“So what did he teach?” Kaelan asked.

“Religious studies,” Max said.

Kaelan gave him a doubtful look. “I thought you were prelaw.”

“I was. He wasn’t one of my professors; he was the one who contacted me when word got out that I was asking too many questions about Ari’s arrest.” Max knew Kaelan had heard all this before, but he wasn’t sure how much of it had sunk in.

* * * * *

Max’s roommate Ari had fallen crazy, head over heels in love with one of his professors their senior year. It wasn’t reciprocated. Dr. Langdon viewed Ari as an adorable puppy dog. She was happy to take advantage of his admiration when it benefited her, letting him help her carry heavy boxes of class materials to and from her car, or spend hours assembling packets for incoming freshmen. Ari tried everything to get her to see him as a potential romantic partner, but there were at least fifteen years between them, and it seemed impossible.

Until Ari, desperate, went to a local con artist who advertised herself as a witch able to do love spells. He begged for her help. All he wanted was for the woman he loved to return his affections.

All the so-called witch wanted was Ari’s money.

“You’re insane,” Max told him before Ari left to collect the love philter. “Magic isn’t real. Fairy tales and illusions.” Ari’s mouth clamped shut, a stubborn line that softened enough for him to mutter something about this being the only way.

“It’s not. And if you do get her to fall in love with you, it wouldn’t be real.” Max shook his head. “Not that she will, because love spells are nonsense. Ari, listen to me!”

The next time he saw Ari, the pale blue eyes that’d given him that last glance, pleading for understanding, were glazed. The paramedics carried Dr. Langdon’s charred remains past Ari mercifully enshrouded in a body bag, and Ari didn’t blink. He hummed to himself, two notes repeated in a drone, turning a small, empty bottle over in his hands until a policeman took it from him and dropped it into an evidence bag.

Max guessed it’d held the colored water the charlatan had sold as a love potion, but he couldn’t understand how Marcie Langdon had died so horribly even if she’d drunk it. Ari wasn’t talking; his mind was shattered irrevocably.

Max decided to talk to the woman Ari had visited, ignoring the obvious course of telling the police. Something told him that if they investigated, they’d find nothing, and Max needed to know the truth behind what had happened. Why hadn’t he gone with Ari, confronted the woman?

He stood outside the store the next morning, peering into the darkened space when the locked door prevented him from going in. Frustrated, he hammered his fist against the glass panels, cracking one with the force of his blows.

“She’s not there.”

Max turned, heart thudding wildly. He expected to see a policeman but instead found himself meeting the level gaze of a professor he knew only by name.

“You— She— I wasn’t—”

“For a potential lawyer, you’re not very eloquent.” Dougal scratched his bulbous nose meditatively, the tweed jacket he wore in the heat of summer and chill of winter giving off a musty scent. “And for a caster, you seem incapable of looking with your eyes.” He tilted his head to one side, the shock of gray hair adding two inches to his not inconsiderable height. “Oh dear. So much power, so well hidden. Even from you. Especially from you. Hmm. Clumsily done but effective in the short term, at least. It won’t hold for much longer, though.” He crooked his finger. “You’d better come with me, young man.”

“Go where? To the police?”

“Good heavens, no.” Dougal glanced from side to side, then drew Max into the alley running beside the store. “My office, I think. Why don’t I show you a shortcut?”

Stepping through a portal for the first time in his life was one of the most disturbing things he’d ever experienced. Max came out the other side clutching Dougal’s hand hard enough that his fingers hurt, trembling from head to toe. Dougal was understanding—more than Max might have been if their positions were reversed—and sat him down in an office chair right away.

“What was that?” His voice shook, matching the tremor in his hands. That place—that utter nothingness he’d been in. What the hell had it been?

“I know,” Dougal said with sympathy. “It’s a lot to take in. Trust me, in half an hour you’ll hate me even more.”

“I don’t hate you,” Max said, discovering it was true. Dougal had pulled him inside that place, but he’d brought him out of it too. “You’re serious. That was real.”

“Yes.” Dougal moved to a small refrigerator tucked into a corner and came back with a bottle of water. “Here.”

“Thanks.” Max’s hands wouldn’t stop shaking. He concentrated on breathing and got the shivers racking his body to slow to the occasional shudder. “Wait. Half an hour?”

“I have some more things to show you,” Dougal said and proceeded to do just that.

On the one hand, Max hadn’t needed to see anything else to convince him, but on the other, by the time Dougal had finished, Max’s world, or at least his understanding of it, had changed.

Doubting Dougal wasn’t possible. Not after the portal.

“That woman in the shop,” he said finally. “What did she do?”

Dougal’s expression was flint sharp. “Some casters misuse their abilities. And some get in over their heads. She did both, and our friends paid the price. What she sold was a love spell, yes, but it made poor Marcie do what the spell said and burn with love. Be careful what you wish for isn’t just a saying. Not where magic’s concerned. I imagine the shock of seeing what he’d done was too much for Ari. Or the caster slipped in a reference to him being a fool for love.” He sighed. “Words have power. Words are power.”

Max stood, pushing back his heavy chair. “Okay, it’s too late for Dr. Langford, but we need to make the caster fix what happened to Ari. You don’t need to do that portal thing again. I’ll drive over there.”

“No point.”

“Of course there is! It’s worth a try.”

“The universe polices our behavior,” Dougal said softly. “She’s gone. I took care of her. This wasn’t the first time, you see, and she was so close to being taken.”

“Took care of her?” Max repeated, horrified by the implications, worse for being so vague, and the destruction of his hopes for Ari’s cure. “Killed her? I can’t believe you’d do that!”

“I said you’d hate me.” Dougal looked down at his hands, linked in his lap. His thumb tapped restlessly against his palm, the only outward sign of emotion. “If it’s any consolation, what was done can’t be undone. Not by the likes of her and not even by me. We work magic, not miracles. And I showed her mercy, though I don’t expect you to understand that yet.”

Any remaining hope Max had been holding on to bled out of him. He sat back down. “So that’s it?” Ari fine one minute and a lifeless shell the next? It didn’t make sense.

“I’m sorry,” Dougal said bleakly, and Max remembered he’d lost a friend too.

“Me too. About Professor Langdon.”

“Thank you.” Dougal ran his hands through his hair until it looked like a dandelion clock. “If I’d attempted to warn her of this, she would have laughed and told me to stop teasing her. She wouldn’t have believed it for an instant.”

“Hard to fault her for that,” Max said. “I wouldn’t have either.” He wondered if that meant she hadn’t been a close friend, or if it was the kind of thing Dougal didn’t share. “You never showed her what you can do?”

Dougal shook his head. “It makes life complicated telling a mundane. You’ll see.” He hesitated, then said, “There’s something else I have to show you. To make you understand why I’ve been frank with you.”

“What?”

Dougal reached across the space between them and rested his fingertips on Max’s arm. A crackle of power ran through Max’s flesh, reminding him of a childhood accident when he’d stuck a fork into a light socket and gotten a shock. It hurt.

“Hey!” He jerked his arm away, but Dougal got up and stood over him, blocking him in his chair unless he wanted to knock the old man down. The magic crackled again, more fiercely this time, and something in Max’s chest bloomed to life, hot, as if he’d swallowed a pot of boiling water. “What is that?” he asked, fascinated despite himself.

This time, when Dougal shocked him, it was different. The heat in Max’s veins surged up into his skin, and the crackle of pain cut off abruptly.

“I knew it,” Dougal said with satisfaction. He held up his hand, magic dancing between his fingers, a tiny meteor shower of sparks, then touched Max’s arm again. Nothing. It didn’t hurt, and any sparks seemed to be doused by Max’s skin somehow. “That’s a shield, my boy. A natural, magic-driven shield.”

Max gaped at him. “How did you do it?”

Dougal smiled. “I didn’t. You did. You were born knowing how to, but I’m assuming this is the first time you’ve been attacked in a way that called for it. At first the shield’s rudimentary, basic. It learns with you. If I knew no one was watching, my shield would let me walk through a downpour and not get wet.” He screwed up his face. “But when can we ever be sure no one’s watching? Best to save magic for when it’s needed.”

It was too much to take in. Max studied his arm. Just an arm. And he was a regular guy. Okay, his family was wealthy, and he’d be inheriting a chunk of that money on his twenty-first birthday, but that was external. Strip him naked and put him in a room with a dozen naked young men, and no one could point him out as the rich one.

Would they be able to tell he could do magic?

“How do I make it go away?”

The astonished look he got made him want to rewind time a second or two. “Mr. Ancaster, what you are is in your name itself. In your blood. You’re a caster. You can’t remove your ability as if it were an unsightly mole.” Dougal pursed his lips. “What games are you good at?”

“Uh, poker. Chess.” Max tried for humor. “Chutes and Ladders.”

Dougal’s eyes narrowed. “That’s not a game of skill, but chance. Are you telling me that you always win it?”

“No, of course not. I must’ve lost sometimes. I can’t remember it, but…” Max faltered. He hadn’t played the game since he was a kid, but why had he stopped? Not because he’d grown out of it. It’d been something else. God, yeah. His brother and Cousin Jay yelling at him that he cheated and it was no fun playing with him because he always beat them. “I always rolled the best number,” he said. “Never slid down a chute, not ever.”

“You’ll remember more things like that as time goes by,” Dougal said, nodding. “You’d have suspected it long before now if someone hadn’t set up blocks in your mind.”

“Someone did that to me on purpose?” Should he be grateful or angry?

“Chances are. There might be an older relative who recognized it in you, someone who was worried for your safety. Or someone who disapproved and hoped you’d never know once it had been suppressed. An aunt, perhaps? A grandfather? Even one of your parents.”

It didn’t take Max long to figure out who’d been responsible. “My uncle. Dad’s brother Charles.” Charles, who’d been a flamboyant, eccentric character with an intriguing dark edge to him. Who’d produced coins from behind their ears and entertained them with tricks that had left Max and his brother, Rafe, spellbound. Tricks that, looking back, had been impossible, but at their age they’d been easy to fool and impress.

“Is he still alive?” Dougal asked.

“No. But you knew that already, didn’t you?”

“I suspected as much. It would have been much more difficult to break through to your magic if the caster who created the blocks was living.” Dougal hesitated, then added, “Casters tend to die young if they take risks. Unfortunately. The cautious ones, though, well, they can last a good long time. I plan on being cautious.”

“Great,” Max said. “That’s fantastic.” He rubbed the back of his neck, thinking hard. “They said he died in a car crash.”

“That might well be the truth,” Dougal said. “Investigate, if you want to know for sure. It might not be important enough to you.”

“How he died isn’t. What he did to me is.” Anger, slow blossoming but intense, swelled until his chest hurt. “What gave him the right to make that decision for me? To take away something I could’ve used to help people? Something he had and used?”

“Helping people by casting usually backfires, though I’m glad that’s where you went instead of plotting world domination. Don’t assume this is a solution to everything out there, because it’s not. Notice peace on earth and a cure for cancer anywhere around? Thought not. And maybe someone asked your uncle to block your power. Someone close to both of you who saw it as a curse, not a blessing. Who wanted to keep you safe.”

Working that out didn’t strain Max’s deductive abilities. “My dad. He never liked Uncle Charles. I could tell. Or my parents if Mom knows too. God.”

“They probably meant well. A child getting a shot feels pain, but it’s worth it in the end. They may have seen this as a necessary step to take to spare you being hunted down later on.”

“But that wouldn’t happen,” Max protested. “If I went on national TV and showed people what I could do, not that it’s much, they’d laugh at me, or a movie company would hire me to help with their special effects. No angry mobs chanting Burn the witch.

“Instead a quiet hospital room with bars on the window and enough drugs shoved down your throat to keep you docile and prevent further embarrassment to your family?”

That was a sobering thought for many reasons. Max was well aware his parents’ love was somewhat less than unconditional. They expected certain things of him, and he’d always done his best to live up to their expectations, because the alternative had never occurred to him. Going into law wasn’t a choice; it had been the only path in front of him. What option did he have but to walk it?

“I’ve given you a lot to mull over,” Dougal said. “I’m sorry that you had to find out like this.”

Ari. God. Max could barely bring himself to think about his roommate and friend. It would take time for the knowledge to sink in that there was no way to change what had happened, but if he couldn’t change the past, he could change the future. It was a sudden and exhilarating thought, caught up as he was in the horror of Ari’s fate and Professor Langdon’s death.

“There’s more I can do than what you’ve shown me. There has to be. Spells—castings, you called them? I can learn. I want to learn.”

“Yes.” The caution in Dougal’s voice was a warning and a question. “To the extent of your ability, at least. To what end, though? You’re training to be a lawyer. The temptation to misuse your gift would be immense. Altering a witness’s testimony or forcing the truth from a criminal, influencing a judge. You mean well at first, but it wouldn’t matter in the end.”

“No. I wouldn’t. And that’s a promise.”

“Because nothing comes without a price, young man, and the price we pay for doing evil is a high one.” Dougal’s eyes looked haunted. “It builds. Each minor transgression, each step off the path. Eventually one casting will tip the balance, and your body will be destroyed, and your spirit—your soul, if you like—gets sent to the Netherhells.”

“To the what?” It sounded too archaic to be scary. Pitchforks and brimstone.

“Our version of hell. But unlike the other kinds, we know it’s real.”

“How?”

“Because casters escape it. Rarely, but it happens. Summon a demon, and what you get is a trapped caster, bound to do your bidding. And if they can take advantage of a loophole, they’ll do it. Swap their place with you and take your body. It’s a dark spell, but what do they care? They’re already doomed. That’s why I killed the caster in the magic store. To save her.”

Max held up his hands, warding off more revelations. “Okay, enough. I’m having trouble dealing with this.”

“Understandable.”

Max rose, legs weak as if he’d run for miles. He was starving too, though he’d eaten a large lunch not long before. “So I need time to think. But I’m coming back with questions, if that’s okay. If I’d known about all this, I could’ve helped Ari. I didn’t, and you know what happened. That’s not going to happen again. Maybe I can’t do much as a lawyer. If I have to give that up, fine. That’s something my parents wanted me to be, and it seemed as good a way to go as any other. But I’m not sitting back on my ass and letting people get away with stupid, destructive shit like this. I’ll finish my degree since I’ve come this far, but after I leave Harvard, I’m going to do something. Help people.”

He paused for breath, sincere in his determination but uneasily aware that his mother would’ve chided him for being so dramatic, darling.

Dougal made a noncommittal sound that might have been disapproval or encouragement. Max wondered if it was important to let people make their own choices, because trying to influence them was another point in the karmic book sending you to the special hell.

“Thanks,” Max said awkwardly. “For, well—”

“Nothing?” Dougal smiled. “I appreciate that this is difficult. All I ask is that you educate yourself. Equip yourself with a life jacket before jumping off the ship into the ocean. The water’s deep. I’d hate to think of you out there not knowing how to swim.”

Max nodded. The metaphor was colorful, but he understood. “I’ll be careful. And I’ll be in touch.”

“It’s not like there’s anyone else for you to talk to,” Dougal acknowledged. “Oh, don’t worry. You’ll meet some more of us along the way, I’m sure. We’re out there.” He gestured at the desk. “Take my card.”

The cards were plain white, engraved with Dougal’s name and job title, followed by ways to reach him. Max glanced at it, reading it automatically, then blinked. As he stared, the words shifted, what was on the surface sinking away, a new message emerging. Dougal’s name was the same, but following it was a simple title: Caster, and under that was written lectori salutem.

Max translated it—Greetings, reader—and smiled. “Cute.”

“Look again,” Dougal said.

This time it read leges sine moribus vanae.

“It’s the motto of a different university, but still applicable.”

“Laws without morals are vain.” Max turned his head. “And so is power?”

“Oh yes,” Dougal said softly. “Especially power.”

Chapter Four

Something freaky happened today. Like majorly freaky. I’d post on Tumblr but everyone would think it was fanfic or the plot of a new show or I was doing drugs so, yeah. Not posting. Just writing it down in this lame-ass diary I got for my tenth birthday because it has a lock on it. Hey, Dora the Explorer. Long time no see. I mean, I stopped watching you when I was, like, six, so why Aunty Sarah thought I’d want a Dora diary when I was ten— Never mind.

I don’t want to write it down but I need to. Need to see it in black and white. Except the only pen I could find that worked is blue, so blue and white. And my handwriting is awful. Even I can’t read it, so I should be safe if my evil little brother comes snooping. Not sure he CAN read, tbh.

Okay. Here goes. I made something move. Mind power, telepathy—no, that’s not it. Telly something. It was a can of root beer and it spilled everywhere, which is TYPICAL. I get superpowers, and it ruins my homework. Now I’ve got to print it off again and— God, I’m scared. So scared. It’s hard enough being me without this. I don’t WANT this. Want to be like everyone else. It isn’t FAIR.

I can’t tell anyone. Ever. They’ll lock me away. Poke me with needles, shove probes in my freaking brain.

They’ll hurt me.

I won’t let them do that.

[Extract from the diary of Lindsey Sallinger, age fifteen, produced at the inquest.]

Max was so quiet on the drive to Harvard that Kaelan was worried. It wasn’t like Max to be silent and lost in thought. “Hey,” Kaelan said finally. “You okay?”

“I was thinking,” Max said. “About power.”

“What about it?”

“Something Professor Dougal said, a long time ago. It’s not important.” Max picked at the knee of his slacks, pristine as always.

Kaelan returned his gaze to the road and kept it there. “It must be important, if it’s on your mind now.”

“I don’t know. He thought casting was inherently dangerous, I guess. Not that he expected anyone with the talent to avoid using it, but he figured in the long run we’d all end up, well. Like he did. Or worse.” Max went silent again. Kaelan preferred him talking.

“I thought you said he died in his office.” Kaelan eased his foot up on the gas pedal a tiny fraction. “Wasn’t he pretty old even for a caster?” Whatever date of birth showed in the Harvard records for the professor was unlikely to be the correct one. “He probably died of natural causes.”

“Yeah.” Max sounded so unconvinced that Kaelan found himself sharing the doubt.

“Okay, then we look for a casting gone wrong.”

“He was too careful for that.”

Kaelan drummed his fingers against the wheel. “Then someone attacked him. Is that what you want? For there to be a villain to fight?”

“I want—” Max slammed his fist against his knee. “I want him to still be alive!”

Kaelan reached across and put his hand over Max’s for a moment. Balled into a fist, it was like stone, but stone cracked and flaked, and Max was close to breaking; Kaelan could tell. Sympathy didn’t soften his voice but edged it with resolve. “Can’t give you that. But if he was killed, we’ll find out who did it and deal with them. If they’re not already screaming in the Netherhells for it.”

“This is on me, not you,” Max said. “I don’t want you to cross a line.”

“It’s on you, then it’s on me too. And this is all theory for now.”

An hour later, standing in Dougal’s office, his chest tight as the slick of wrongness coating every surface rasped his nerves raw, Kaelan changed theory to fact. “I want to scrub this place down.”

“I know.” Max was pale as milk, his arms wrapped around himself, breathing heavily. “Whoever works here is going to suffer. We have to cleanse it before we go, but not until we’ve got enough to get a signature.”

“My skin’s crawling. Whatever got in here, it didn’t just wander around and take notes. It moved through stuff.” What had been left behind was more than a signature and went deeper than fingerprints—it was inside the objects in the room as if it had oozed between molecules. Kaelan had never seen a search performed so thoroughly. “How is that even possible?”

“Let’s worry about that later,” Max said in the way Kaelan knew meant there were a hundred more important things to worry about. “Can you get rid of it? Without disturbing the signature?”

“Yeah,” Kaelan said. “Yes, of course I can.”

Teasing out the remnants of dark castings should have been Max’s specialty, but for some reason Kaelan was better at it. Not that he minded being good at the more exciting stuff—truth be told, it gave him a rush. But he knew Max’s skills were the ones that saved their asses time and again.

Kaelan couldn’t bring himself to sit on any of the chairs, so he leaned in the doorway and closed his eyes, focusing on the oil-slick wrongness that permeated the room and pulling at it, tugging it free of all the places it didn’t belong. Once he’d gotten some loose, it was easier, because it liked to stick to itself. Cleaning up took longer than he’d expected, though. He’d chosen to gather the stuff into an otherwise empty plastic trash can in the corner—for all that it was everywhere, it took up little space. As he cleaned, carefully leaving any of the magical signature that would help them figure out who was responsible for the figurative and literal mess, he became light-headed, but that was a normal side effect of this kind of work. Anyway, he was almost done.

The next thing he knew, he was opening his eyes from the floor with Max looking down at him, worried. “I’m fine,” he said, but his voice sounded funny, and his tongue was thick and numb.

“Sure you are,” Max said. “People who are fine pass out all the time.”

“I didn’t pass out,” Kaelan protested. He was recovering already. The tingling in his fingers was fading, and his mouth had lost the numbness he associated with visits to the dentist. He wiggled his tongue experimentally, running it over his teeth.

“No? What would you call it?”

“I thought I’d lie down and take a little rest?” Kaelan pushed Max’s hands away and sat up. “See? I’m fine. It took longer than I thought.”

“That’s because it was everywhere.” Max pulled a face that made him look so absurdly young Kaelan couldn’t help smiling.

All desire to smile left him when the residue in the trash can gave off a lazy, thick hum, like a thousand flies gathered on a rotting carcass, an obscene sound carrying with it a threat.

“Portal,” Max snapped. “Now. We need to get this shit out of here.”

Kaelan shook his head in an attempt to clear it. Candy bar. Really needed one. “Where? Ocean?”

“No. Nowhere there’s anything living to latch on to.” Max took out his phone. “I’ve got an app tracking every active volcano. Let me find one.”

“It’d set off an eruption!”

“Not if we sank it deep enough.”

“Trust me,” Kaelan said. “Toxic doesn’t come close.” He pointed up. “Think we can get beyond the atmosphere and find a nice patch of vacuum? Let it wither and shred to nothing?”

“If it’s raining frogs tomorrow, we’ll know I missed.”

“You? No. I can do it.”

“I’m not as fast as you,” Max said, “but I’m faster than I was, and you’re too wiped to open a portal to the other side of the room.”

“Other side of the room, other side of the moon—same energy involved.”

Max gave him a look that said Are you fucking kidding me? quite nicely. “Uh, no. Or we’d buy our pineapples in Costa Rica, not the supermarket. Now shut the hell up and let me do this.”

Admitting that even contemplating a portal cast made his head throb would only worry Max, so Kaelan gave a nonchalant wave. “Fine. I’ll grade you, though, so do your best work.”

Opening a portal and humming “Hot for Teacher” at the same time was enough to get Max an A-plus.

With the residue gone, the atmosphere in the room improved, but it held a strange tension. Not empty and neutral, as Kaelan had hoped. More as if everything, from the spiders that wove their webs in the corners to the birds that flew past the window, wings beating fast, was holding its breath to make sure the danger had passed.

“It’ll take time,” Max said when Kaelan commented on the atmosphere. “There was so much of Wainwright in this room. Years of his thoughts, his words, his presence leaching into the walls, and now that’s been tainted and destroyed. The room’s in shock.”

That was a whimsical way of looking at it, but Kaelan knew what Max meant. He rose, waving off Max’s hand, clutching the back of the visitor’s chair to steady himself, his strength returning with every deep breath of cleansed air.

“Any idea who did this?” Max asked. “I’m getting flashes of something I’ve come across before, but I can’t nail it down. Frustrating. An old case, and this person was involved in a minor way?”

“Maybe.” Kaelan tried to focus on identifying the caster responsible now that he wasn’t focused on cleansing the room. “Yeah, I see what you mean. There’s something familiar, but I’m not sure what it is.” He offered Max a smile. “See? This would be one of those times that signature database you want to create would come in handy.”

“I keep hoping someone else will do it so I don’t have to go to the effort,” Max said, as if he was lazy. He was the least idle person Kaelan had ever met. “Sit down for a minute.”

Kaelan shook his head. “I’m good. Ready?”

Max had already started before Kaelan finished speaking, moving to sit at the desk chair and beginning by opening a drawer. “They’ll look like class work.”

Right. An experienced caster like Dougal wouldn’t have left important notes sitting around where anyone might see them and become suspicious, but even if the notes were glamoured to look like any other college professor’s work, they’d be tucked away somewhere safe. Kaelan glanced around the room, seeing it properly for the first time now that the lingering effects of dark castings were cleared away, and decided to start with a tall filing cabinet over in the corner.

With an eye for magic residue, Kaelan went through the drawers. There were syllabi from years ago, and a thick folder full of old grades from the early nineties. It wasn’t until he got to the bottom drawer that he came across a slight tingle of magic. He couldn’t see whatever it was, so he lifted the drawer out of the cabinet and set it to one side, then reached into the back and brought out a notebook that was average-looking in every way. “Does this seem familiar?” he asked Max, holding it up.

It felt heavier than it should, and he weighed it in his hand. Definitely more to it than was apparent on the surface.

Max joined him and took the notebook, a relieved expression wiping away some of the worry in his eyes. He held it in both hands, Kaelan noticed.

“This is it.”

“It feels like it’s the complete Encyclopedia Britannica,” Kaelan said wryly.

“The final print edition was over forty million words long, so you’re not far off.” Max set it down on the large desk, clearing a place for it by moving aside stacked papers and books. “It’s not supposed to feel heavy, even to us. He carried it with him sometimes. The stabilization casting must be wearing off now that he’s not around to maintain it.”

“Can you reinforce it without removing the old one and starting over?”

Max shot him an amused glance. “Better hope so, or we’ll be drowning in paper. It’s keyed to him, but he would have made some provision for me to open it, so I should be able to…” His voice drifted off, and Kaelan wandered over to the window to let him work in peace. Max loved intricate puzzles; Kaelan rarely had the patience for even a jigsaw.

It was midway through August, and the summer-school students had left. Labor Day was approaching, but for now the campus was relatively quiet, drowsing in the heat. If he looked with a caster’s eye, Kaelan saw dozens of afterimages, students and faculty alike, passing by. People who’d felt strongly about the place or been here so long they’d imprinted themselves onto the location. Not ghosts, and not aware of anything happening in the present, but Kaelan was sure one tall blond student winked at him. The image faded, but he knew it’d been a younger Max, and the pleasure of that fleeting contact, real or imagined, warmed him, dispelling the last of his fatigue.

Though he did crave something sweet to eat or drink. He settled for a lime-flavored hard candy from the pocket of his pants, the artificial tanginess making his mouth water.

“Done it!” Max straightened and blew out a relieved sigh. “I think he made that more complicated than he needed to. One last test for me.”

Someone walked by, not an afterimage this time, but a real person. Kaelan whipped around, his instincts warning him of a threat. The man was a few yards away, looking around without curiosity as if his surroundings were familiar. Medium height, with dark hair and wire-rimmed glasses. He wore a brown leather jacket and faded jeans. He turned to face the window, and his gaze and Kaelan’s met through the glass.

Nondescript appearance and an aura flickering black and scarlet around the edges.

Kaelan opened his mouth to call out a warning to Max, choked as his candy slid into his throat, lodging there, and doubled over, fighting to breathe past the obstruction. He didn’t waste any time; when he realized he was in trouble, he slapped his hand sharply against the side of the metal filing cabinet to get Max’s attention.

Max looked at him, and Kaelan jerked his head at the window. The man had gone, though whether he had portaled away or simply walked wasn’t something Kaelan could contemplate right then, because he couldn’t breathe. He put his hand to his throat as soon as Max, puzzled, looked at him again.

He saw Max comprehend the problem and react swiftly, first grabbing Kaelan and thwacking him on the back, hard, then shifting to magic as the obvious and more efficient choice. Something as big and solid as a golf ball moved up along Kaelan’s windpipe until it reached the candy and forced it up and out. Kaelan gagged and coughed the candy onto the floor. It stuck where it hit, and he inhaled gratefully, clutching at Max’s arm.

“Okay,” Max said, patting his back. “I’ve got you. You’re okay.”

“Thanks,” Kaelan gasped, vision swimming. “Did you see him?”

“See who?”

“The guy outside. Glasses, leather jacket. It was him.” His head spun wildly. Maybe he was suffering from oxygen deprivation.

“Well, he’s gone now.”

“It was the same signature, I’m sure of it. Saw me looking.” Kaelan drew in another breath, wiping the tears from his eyes, then the saliva from his chin. Okay, that was gross. “We need to get out of here. Now. If he killed Dougal trying to find that book and we’ve got it, there’s a target painted on our backs.”

“So we leave the car and open a portal. Send someone over here to drive it back.”

Kaelan had plenty of money now—though a hefty chunk of it was sent to charities, because what did he need it for?—but he’d never gotten used to the casual way Max made problems disappear. In Max’s world, tiresome errands got done by someone else. It was seductive and made life simpler, but Kaelan couldn’t shed the belief that it was wrong in some way he couldn’t pin down.

“Or we bait a trap and hope he follows us,” Kaelan countered. “Get some answers instead of guessing his motive for killing your friend.”

“That’s risky.”

“We’re on his radar now,” Kaelan pointed out, impatient to be doing something. Max had to feel the same way; this was his mentor they were discussing. Running away wasn’t an option. “Risky is staying in the dark. Sensible is grabbing him and shaking him until some answers fall out.”

Max snorted. “Adrenaline junkie.”

“You know you want to be the one doing the grabbing.”

Lips tightening, Max nodded.

“So we drive home. Fast, but not so fast we lose him.”

“Right,” Max said. “Here, take this.” He pushed the notebook, now lightweight again, into Kaelan’s hands. “Keep an eye on the hallway. I’m going to put up some quick shields.”

“Do we have time?”

“No. But I can’t leave his office totally unprotected.” Max gave him a pleading look. “I can’t.”

“Okay.” Kaelan knew when arguing with Max was futile, and in this case doing it would waste even more time. Besides, he understood wanting to do one last favor for a friend.

Loitering outside in the hallway, Kaelan considered paging through the notebook for anything interesting, but it seemed disrespectful. Max was the one who should read the professor’s notes first, not a stranger. Not that Max would ever think or say that; he wasn’t that kind of person. He’d have told Kaelan that Wainwright would’ve liked him if they’d ever met, and made Kaelan feel the truth of it.

The door opened, and Max came out, closing it carefully behind him and passing a hand over the lock. Kaelan heard it snick into place. “Let’s go,” Max said. He sounded and looked exhausted, so Kaelan slipped an arm around his waist as they headed back for the car.

“Hanging in there?” he asked.

“Yeah. There’re granola bars in the car. One or two of those will help. How about you? You okay to drive?”

“Me? Refuse a chance behind the wheel of your gorgeous ride?” Kaelan was already taking the keys from his pocket. A woman who was passing in the opposite direction had obviously overheard them and looked at the car, which to her was a dented wreck, in disbelief. “It’s vintage,” Kaelan called to her.

“So is the mold in my fridge,” she called back. “I’m still going to get rid of it.”

“If the food poisoning doesn’t take you out first,” Kaelan muttered under his breath. Even the worst places he’d lived growing up hadn’t achieved that level of scuzziness.

No, strike that. His family had spent one night in an apartment where the pattern on the kitchen linoleum was formed by the remnants of squashed roaches. It was one of the few times his mother had screamed at his dad, stammering the words she was so angry. She’d dunked a six-year-old Kaelan in a steaming bath at the motel they’d moved into and scrubbed until his skin was scarlet, over his protests that he could bathe himself.

The traffic was still heavy after they left Cambridge, heading back to Hartford, making it difficult to see if anyone was on their tail. Kaelan popped the last bite of his cranberry-apple granola bar into his mouth and left the Mass Pike at Sturbridge.

“What’re you doing?” Max asked, stirring from his doze. “We need to get back.”

“Yeah, but we don’t want to lead him right to where we live for this fight. There’s no point in changing the look of the car; we’re not fooling a caster that way. So we go to Wells State Park like good little tourists, and you buy me an ice cream because you love my sweet tooth and want to make it happy. Granola just isn’t cutting it.”

“I’m limited to loving your tooth? That’s it? Everything else is off-limits? I can’t admit to my secret passion for your pinkie finger?”

“Which hand?”

Max sighed. “Babe, when it comes to pinkies, it’s got to be the left-hand one. I mean. Seriously. Do you even have to ask?”

God, he loved it when Max got playful, those green eyes lit up and sparkling.

“I don’t know. I think you’re secretly pretty fond of my right pinkie too.” There were moments like this when Kaelan wanted to lean in and kiss Max for real. Not that he would. There was a line, and the line was there for a reason. There was no crossing of the line.

It was late summer, and Kaelan realized almost immediately that choosing such a public area was a double-edged sword. Sure, some casters were less likely to do anything to draw attention to themselves in a crowd, but others considered any bystanders potential corpses. “Too many people,” he muttered. He slowed the car, but there was an SUV full of eager middle schoolers and a harried soccer mom behind them, and she honked her horn to get him moving again. “Fine, okay, I’m going.”

“Easy,” Max said. “What if we turn where that sign says BOAT LAUNCH? Looks deserted.”

“But no ice cream.” Kaelan pouted but obeyed, grateful for Max’s quick eye. The road was dirt with a hefty collection of loose stones that pinged against the underside of Max’s precious car, which would be fine, of course. No caster who specialized in defensive magic would chance leaving his car unshielded.

“Are we being followed?” Max asked. “Or is all this for nothing?”

Kaelan shrugged. “I thought I saw him behind us once or twice, but—”

“It’s hard to tell,” Max finished for him.

“With luck he’ll show up sooner or later. Probably sooner. Then we put a stop to him following us, and we get ourselves home. Bast’s gotta be wondering where lunch is.” Bast liked to be presented with his meals on a strict schedule and would complain to them when they got home if he’d missed one, even though he always had dry kibble in a bowl and fresh water.

“Sounds like a plan. This way, we’ve chosen the place, and we can see what’s coming.”

Kaelan was the more aggressive of the partnership when it came to his castings, but he never made the mistake of assuming Max’s affinity for defense meant his friend shied away from a fight. A caster who didn’t know how to shield might win against a single, weaker opponent, but not against a group or someone stronger, no matter how many fireballs he hurled.

Losing the professor and dealing with the tainted room had put Max on edge; Kaelan knew the signs.

“I guess I have to wait for my ice cream.”

Max rolled his eyes. “Baby. Here. I restocked the Hole.” He sketched a sigil in the air and reached into a pocket, his hand disappearing up to the wrist. When he drew it out, he held an ice-cream bar in a wrapper. Caramel Crunch. Kaelan loved those.

“That was the last one in there, by the way,” Max told him. “We need to shop at some point.”

The Hole was their name for a warded space that existed in the same dimension as a portal. Food put in there stayed fresh, hot, or frozen. Snacks took up a section of it, along with clothing, money in every major currency, and duplicates of their passports that would stand up to any scrutiny. Reaching into it from anywhere was as simple as rummaging around in a backpack.

Unless whoever had restocked it had left it a mess. It’d once taken Max ten minutes to locate a pair of jeans as he stood naked from the waist down, the pants he’d been wearing dissolving slowly. Giant leeches in dark caves that regurgitated digestive juices over their victims were high on Max’s shit list after that—but well below Kaelan, who’d shoved the jeans inside a half-empty carton containing cans of root beer.

“I’ll make a list for Hopper and send him,” Kaelan said. “Be a good excuse to give him some cash.” He’d never found out if Hopper was the teenager’s first or last name, or a nickname. It wasn’t important. Kaelan had taken one look at the boy hauling him to his feet when he’d slipped on an icy sidewalk and recognized himself a decade earlier—brash, scared, lost. Offering to buy Hopper a coffee by way of thanks had gotten him a suspicious glare and a muttered refusal, but when he’d pointed at a hot-dog vendor instead, Hopper had nodded. Wary as a feral cat, Hopper hadn’t given his friendship easily.

“You’re such a softy,” Max said, which was pretty hilarious since he’d taken Kaelan in and made him family within months of meeting him.

Kaelan glanced at Max as he pulled the car over and turned it off. “You gonna put Dougal’s notes in the Hole?”

Max shook his head. “I want to keep them with me.”

The boat launch wasn’t more than a sloped area leading down into the water, surrounded by tangled weeds and a cloud of insects. There weren’t any cars parked nearby and no sign of boats in the water. Kaelan wasn’t sure how big the pond was. It didn’t seem deep enough for anything much bigger than a canoe, in which case the launch probably didn’t see much use. Fine by him. The whole point was to be farther away from the people down at the beach. “Yuck, bugs. We should consider living in the future, when the world is populated by robots and insect life as we know it has been exterminated.”

“I think you’ve been watching too much Doctor Who,” Max said. “Come on, let’s check this place out.”

“Bugs suck!” Kaelan protested, though he got out of the car because Max was. It was a protest with no force behind it. Mosquitoes never bit casters, though no one had figured out why. He distracted himself by unwrapping his ice-cream bar and stuffing the wrapper into his pocket, since he’d never hear the end of it if he tossed trash into Max’s car.

“Should have given you that before,” Max said absently, searching the landscape in a slow turn. His hand was on his side above his waist, and Kaelan guessed Dougal’s notebook was there, tucked into the waistband of Max’s pants. “How’s your throat?”

“It’s fine,” Kaelan said. A little sore, but the ice cream was already helping.

“And how’s that crunchy caramel?”

Kaelan gave his best fake-orgasmic moan. “Divine, Max-worth-a-million, dahling. Simply divine.”

“Tell me sex with you never involves chocolate syrup, whipped cream, or anything else edible being licked off skin.”

“Don’t put ideas into my head. And no. Unless you count spunk as edible, which it kinda is, but nah, let’s not count it.”

“Let’s not.”

They were bantering, outwardly relaxed, but Kaelan was extending his senses to their limits, and he knew Max was doing the same, alert for any hint of the signature they’d found.

Signatures were weird. Five people could take a bite of Kaelan’s ice cream and experience different tastes according to their palates, but an adult’s signature registered identically with every caster and, unlike fingerprints or even DNA, couldn’t be magically altered. It was a combination of scent and taste, overlaid with a sound or a word. The differences between one signature and the next were subtle, but they were always there no matter how close the match seemed.

This one was faint lemon zest, a strong whiff of petroleum, and a fading scream from a female child’s throat. Some in the casting world wanted children’s signatures to be analyzed, claiming evil intent could be found in them, but Kaelan didn’t agree. Until puberty hit, a signature was too vague to detect accurately, shifting with events and emotions. Even when the signature strengthened and solidified, an unpleasant smell didn’t mean the caster was inclined to the dark. Some people liked eau de skunk, after all.

And it worried him that those in favor of signature testing never went into detail about what would happen to those deemed inclined to darkness.

The water in the pond rippled as if a breeze had stirred it, but the air was humid, laden with heat and moisture. A chilly, damp finger dragged over the back of Kaelan’s neck, and a voice whispered a greeting in his ear.

Knowing there was no one behind him and that touch and voice were both illusion didn’t help. From the small shiver Max gave, he’d received the same fleeting contact.

Nature’s sound track was abruptly silenced as if someone had cut the power. No noise from birds, bugs, or beasts. Just the flat slap of water against stones as the ripples became waves.

The shiver was now a full-on tremble. The ice cream Kaelan had eaten sat in his stomach like a rock, heavy and unwelcome, though he knew he needed the calories. “What is that?” he asked quietly, and Max looked at him.

“I’m not sure.”

“Something big.” It wasn’t a question.

“Yeah.”

When Kaelan said big, he meant size, not power. He knew Max understood. They turned to face the water at the same time the something big rose from the depths—which weren’t deep enough to have contained the creature looming over them—and made a sound between a growl and a chuckle.

Kaelan would have preferred a growl. The thought that this monster had a sense of humor was, frankly, terrifying. “Okay,” he said, not looking away from it. It was the height of a three-story building, its skin was slick and black like an inner tube, and its teeth were as long as Kaelan’s forearm. “Now do you know what it is?”

“Trouble,” Max said succinctly and dived out of its way when its head descended with the speed of a striking snake.

Kaelan rolled in the dirt in the opposite direction, already mad at himself for letting them be separated, and came up on his hands and knees. He glanced up in time to see the creature’s open mouth coming down at him. Instinctively he raised an arm above his face, though it wouldn’t do any good against teeth that size, and shuddered as the cushion of Max’s shield buffered the blow at the last second.

“Get out of there!” Max shouted.

And go where? The creature had emerged from the water, but it was big enough that it could pick them off even if they retreated from the pond’s edge. Hell, for all they knew, it had the ability to sprout wings.

Kaelan knew the legends of a dozen lake monsters, but this was something else again. The Ogopogo would be swimming in the opposite direction as fast as it could.

This thing was scary.

The creature turned its head, the slits it used as nostrils widening. It sniffed the air and gave an ululating cry, triumphant, bestial.

How was no one coming to investigate? Mundane observers wouldn’t be able to see shields, but they could sure as hell feel the ground shaking and hear that hunting cry. Would they put it down to a minor earth tremor? Or had the caster shielded the area, enclosing it so that no sound could escape? That would be good for more than one reason, because it would drain his power quickly as well as keep the fight private.

Kaelan had trained himself to multitask even in times of crisis—especially in times of crisis—and he put that skill to good use as he edged backward at an angle, closing the gap between himself and Max. One shield for both of them. A joint, focused attack was much more sensible.

He didn’t allow himself to get sappy and admit that if they died, he wanted Max close enough for Kaelan to land one actual kiss. With tongue. Go out with a pleasant memory.

As he shifted position, he gave some thought to how he would keep this a private battle if their opponent hadn’t taken care of it. Noise dampening that would hold in the sound waves, making a bomb exploding seem like a balloon popping to anyone outside the field. A visual fog, confusing onlookers so they doubted what they saw.

Or a simple sign at the head of the trail saying the pond was polluted and visitors should turn back.

The breeze changed direction, and Kaelan got a stomach-churning whiff of rotting seaweed and corruption. Seaweed? Where the hell had this thing come from?

“Need to locate its controller,” he called to Max. “Take him out, not the monster.”

“Good plan. Now ask the monster to be a good girl and let us go so we can look for the son of a bitch.”

The huge head swung toward Max. More sniffing.

“Yeah, he smells great,” Kaelan yelled up at it. He scuttled sideways and reached Max’s side. “I steal his shower gel all the time. But he’s off the menu, got it?”

The creature must have thought they were dentists, because it opened wide, and the resulting blast of fetid breath came close to making Kaelan puke his guts out right there.

“I never knew halitosis was a lethal weapon,” Max said. “God, that is rank. And if you like the gel that much, buy some of your own.”

“Where’s the fun in that?”

“We’re discussing this later,” Max said.

“If we have a later.”

The sea monster—Kaelan was referring to it as Nessie in his head since Max had labeled it female—decided now was a good time to try to eat them again. The shield held it back but compressed under the attack, bringing Max down to his knees next to Kaelan.

“Nice of you to join me,” Kaelan said, grinning, then regretting it when Nessie roared again and lumbered farther up out of the water.

Her feet were more like flippers. She’d never be fast on land, but she probably wanted to be here even less than Max and Kaelan did. Her anger, broadcasting loud and clear, was rooted in being displaced, suddenly taken from her home. Beneath that was the thread of control from the caster who had her in his grip, wound tightly around her mind.

Kaelan didn’t want to hurt her, but he wasn’t keen on being eaten either. “Muzzle?” he asked Max, who’d be better at that than he would, and Max nodded.

Feeding power to Max was second nature at this point, and he knew how much Max could handle at a time. Kaelan watched as Max fashioned a thick basket-weave muzzle out of his defensive magic around Nessie’s face. She shrieked and swung her head from side to side, trying to knock it off, which was when something hit their shield hard enough to leave them flat on the damp, hard sand.

“Now that’s just rude,” Max said with a groan. “We’re going to get sand all over the car when we drive home.”

“Like the positive thoughts. Don’t care about the cleanup.” Kaelan reached under his ass and pulled out the pointed stone he’d landed on. It didn’t look as big as he’d expected. With a flash of temper lending him strength, he hurled it away, not at Nessie—what would be the point?—but at the closest tree.

It didn’t hit the tree. Halfway there, the stone struck something and dropped to the ground accompanied by a faint sound that might have been a person gasping in pain.

Sometimes life was good.

“Got him,” Kaelan said under his breath to Max. “Cloaked, not shielded, the idiot, and over to the left. Let me light him up for you.”

“Do it,” Max said tersely. Sweat beaded his forehead from the effort of sustaining the shield and muzzle.

They were taking a day off after this, Kaelan decided. Hell, make that a spa day. Max loved those and kept trying to get Kaelan to join him, but hello, not happening. He’d do it for Max if they survived, though, with the clear understanding that seaweed wraps weren’t part of the deal.

Kaelan didn’t bother breaking the cloaking. After being hit, the caster would’ve raised shields if he had any sense. Instead Kaelan blasted a giant handful of sand along the same trajectory as the rock, spreading the grains wide. They moved in an outline around the caster, making visible what was meant to be hidden. Kaelan sensed that the caster’s shield was weak; most of the guy’s power was being diverted to controlling Nessie. Poor planning on the caster’s part to do this alone, but he’d probably thought Nessie would see them off.

And if she did, what then? The notes the caster wanted would end up in Nessie’s stomach, and what good would that do? Or was destroying them the aim of the game instead of claiming them?

This wasn’t the time to find out the answers. Kaelan glanced at Nessie, closer to them now. “Eyes!” he told Max and looked away while he detonated a solar-bright explosion in front of Nessie’s face to slow her down. She reared back, the ground trembling under her weight, and Kaelan took advantage of her being distracted. A well-placed sphere might be enough to take down the caster’s flimsy shield.

Unfortunately Kaelan’s first sphere wasn’t ideally placed. The shield cracked like a thin sheet of ice under a toddler’s foot, but it didn’t collapse. Kaelan swore, and Max muttered something unintelligible. Kaelan wasn’t sure if it was a spell or a curse, but when he looked at Nessie again, she was further restrained, now with a magical net wrapped around her front end, tangled up in her flippers. Her struggles made the net stretch, but it held.

The caster, still not fully visible, sent a bolt of purple energy, twisting like a broken-backed snake, into Max’s shield. The shield warped like a soap bubble. This time Max did swear, and Kaelan hastily directed some extra power his way, even though it meant he would run down his reserves faster than he’d like.

“Go, go!” Max shoved him hard. Kaelan looked up to see Nessie’s bulk coming down at them at a frightening speed. She’d lost her balance and was falling, and the shield was unlikely to hold.

She hit the shield, and it gave way as they scrambled free. Max was cursing up a storm. Kaelan felt Max’s last resort, a cloak with no shielding capability to it at all, settle around them. It wouldn’t give them much time, since the caster no doubt already knew roughly where they were, but being invisible might buy them a few seconds.

“This isn’t working,” Kaelan said, keeping his voice low. “She’s being driven to attack us, and she’s going to keep on trying. Can’t help herself, poor beast.”

“So we get closer to him and confuse her or scare him? See how he likes it when those fucking teeth are snapping at him?”

“Worth a try, but we’re so drained he could probably kill us without breaking a sweat.”

Nessie sniffed the air again, her muzzled mouth fighting to open.

“What’s she scenting?” Kaelan asked. “We’re right here, and she knows it. Maybe I blinded her?” That would haunt him, but he didn’t regret his actions if they saved Max and him.

“Maybe.” Max frowned, then reached into his jacket and brought out the notebook, holding it as far away from them as possible. Nessie’s head whipped around. Max hissed, a grin appearing. “Yes! She wants the book, not us.”

For the first time, their opponent spoke, calling across the thirty feet or so separating them. “Let her have it, and you’re free to go.” As if to prove his sincerity, he dismissed the invisibility casting and popped into view, smiling at them in a reassuring fashion.

“What a nice man,” Kaelan said to Max, pitching his voice loud enough to be heard by the caster. “Reasonable, friendly. I’m sure we can trust him. What do you think?”

“Absolutely,” Max agreed. He raised his voice. “Tell us why you want the book, and we’ll consider it.”

“It’s supposed to be destroyed. That’s good enough for me.” There was a flat disinterest behind the words that told Kaelan reasoning with the man wouldn’t work.

“And then you’ll let us go?” Kaelan couldn’t keep the incredulity from showing. “How stupid do you think we are? The book’s the appetizer, and we’re the main course. No way in hell are we agreeing to that.”

He turned to face Max and traced a circle in the air, poking his finger inside it. Max would get it.

Instead of opening the Hole and popping the book inside as the lesser risk, Max gave him a confused look. “What?”

Shit. Kaelan was almost drained and loopy as a little kid who was refusing to nap and only keeping his eyes open through sheer willpower. He didn’t have the energy to explain, and Max was making him. “Put the notes into the Hole. Give me fifteen seconds.”

He hoped Max would get what he meant this time. Without waiting, he darted toward the caster, drawing on his last reserves, determined to hold the man’s attention as fully as possible just long enough to keep him from seeing what Max was up to.

The caster spoke a few words in a language Kaelan wasn’t familiar with, and the magical net around Nessie’s flippers disintegrated, setting her free. She made a series of short, sharp triumphant sounds and straightened up, but a fraction of a second later all anger seemed to leave her. She blinked and looked around, a bewildered dinosaur instead of a terrifying monster.

“Tell me you weren’t stupid enough to tie her compulsion to the book and not obeying you in general?” Kaelan shook his head sadly. “You did. You really did. Oops?”

“She’s mine to command!”

“Did anyone tell her that? I don’t think they did.” Kaelan didn’t speak monster, and Nessie had no reason to feel kindly toward him either, but he hoped she hated the caster more.

With a shrill whistle that hurt his ears, he got Nessie’s attention and pointed at the caster. “All yours, sweetheart. And I promise we’ll send you home when you’ve taken care of him.”

He didn’t think Nessie would eat the guy. Not chomp down and chew. Scare him into portaling the hell away, yeah, but no more than that.

Sometimes he was wrong, wrong, wrong.

Nessie snarled and lunged. Kaelan skipped out of the way in time and saw giant jaws gape wide and then snap shut. There wasn’t even a pair of wriggling feet left sticking out.

“Open a portal for her!” Max yelled.

Kaelan recovered from the shock of seeing a man swallowed whole, because if he didn’t, he’d be getting a view of Nessie’s stomach too. God, an ooze of blood was dribbling from her mouth, thick and dark. “I don’t know where she lives! Because I’m calling her Nessie doesn’t mean she is!”

“Focus!”

Kaelan appreciated the trust Max had in his abilities, but Nessie was swinging around to eye him balefully. It didn’t do a damned thing to center his scattered thoughts. He wanted to open a portal for Max to escape through, but he didn’t bother suggesting it. Max wouldn’t go, and leaving this problem for someone else to sort out wasn’t an option. There was no one else.

He flicked his brain into what he thought of as speed mode, the quick thinking he used when portaling at high speeds, and rummaged through the data flooding his head. Nessie didn’t want to be here. She wanted to go home. Kaelan wasn’t sure where she belonged, but she could tell him, if he did what Max had said and focused.

It wasn’t mind reading, not really. But if he concentrated, he could trace the path she’d traveled coming here back to her home—a cold green ocean, waves flecked with white foam dashing against cliffs thick with seagulls mewing plaintively. Before he could lose the path, he opened a portal to that chilly patch of ocean and shoved her into it.

The last thing he saw before the portal closed was the blood dripping from her mouth, and then he and Max were alone beside the pond. One of the caster’s shoes lay on its side on the ground, the only real evidence of what had happened.

“Let’s go home,” Kaelan said into the sudden quiet and reached out to help Max to his feet. “But first we eat something.”

Chapter Five

Jannes and Jambres are the names often given to Pharaoh’s magicians who competed with Moses and Aaron in the Book of Exodus, and lost, doing such magic as turning their staffs into snakes and creating a plague of frogs, etc.

Then Pharaoh also called for the wise men and the sorcerers: and they also, the magicians of Egypt, did in like manner with their enchantments.

[Exodus 7:11. ]

Now as Jannes and Jambres withstood Moses, so do these also resist the truth: men of corrupt minds, reprobate concerning the faith.

[The Second Epistle of Paul the Apostle to Timothy 3:8.]

Max kicked his shoes over to the wall and bent to peel off his wet socks. He didn’t remember stepping into the pond, but obviously he had, because his feet were damp and smelled faintly of algae. “Go have a soda or something before you collapse,” he told Kaelan, and Kaelan went into the kitchen without argument.

He returned with two cans. The one he pressed into Max’s hand was cold enough to make Max’s bones ache. “Couch,” Kaelan said, and they went to sit.

The couch was wide enough for three, but they sat near the middle so they were practically touching. The sugar and caffeine from the sodas helped with the physical side effects of having used their magic to the point where they were drained.

Kaelan leaned against him, and Max lifted an arm to make Kaelan more comfortable.

“Okay?” Max asked.

“Yeah. Tired.” A pause. “You?”

“Mm. We should get some sleep.” That would require standing and walking downstairs to the bedroom, though, and Max wasn’t sure he had the energy for that right then.

“Uh-huh.” Kaelan set his empty can on the table and rose, tugging Max with him. “Come on.”

Somehow, between the two of them, they found the motivation to get downstairs. Kaelan’s room was closest to the staircase, so they stumbled into it, shedding a minimum of clothes as they went, and fell onto the bed and into sleep almost immediately.

When Max woke, Kaelan was pressed as close as any lover, lips resting against Max’s bare shoulder. He murmured in response to Max’s waking and inched closer still. Max felt Kaelan’s erection through their pants, hard and thick. Kaelan slid his hand down from where it had been resting on Max’s back to cup his ass. Max felt no desire to put a stop to it. In fact, when Kaelan lifted his face, Max didn’t wait to find out if Kaelan would kiss him. He lowered his face and kissed Kaelan first, then shuddered when Kaelan writhed against him. Kaelan’s lips opened under his, welcoming Max’s tongue.

Part of Max was waiting for the shock to hit. He was kissing Kaelan. They didn’t do this, never had, not like lovers. They’d channeled their feelings for each other into building an unbreakable friendship and a solid working relationship. Sex was readily available; what he had with Kaelan wasn’t.

Kaelan nipped Max’s lower lip teasingly and followed it with a flicker of his tongue to soothe the faint sting. Max liked that, and he told Kaelan so with an encouraging murmur, waiting for Kaelan to do it again. Last time, Kaelan had chased the bite with a gentle assault on Max’s neck, ticklish kisses that left Max’s skin sensitized to the point of—

Last time? No, that didn’t make sense. God, was he in bed with Kaelan and thinking about another man? Confused, Max fought to clear his head and be fully in the moment.

“Wearing too much,” Kaelan complained.

“Yeah,” Max agreed. He wanted the simplicity of skin on skin. He’d seen Kaelan naked many times but never with the license to touch.

They shed what little they were wearing and threw back the sheets. The room was warm, and Kaelan’s skin was damp with sweat, Max’s hands dragging over it instead of sliding smoothly. He used his tongue, dipping his head to kiss Kaelan’s nipple and suck at it. No teeth. Max enjoyed the sharp flash of pleasure from having his nipples bitten or clamped, but Kaelan had complained and called him a caveman when Max had pinched his too hard.

Max drew back, pressing the heel of his hand to his temple to stem the drip of false memories that were spoiling this, like lemon juice added to milk. This was ridiculous. He could see Kaelan’s face, screwed up as he yelped, batting at Max’s shoulder to get him to stop pinching and twisting the taut, pebble-hard nipple; could remember how he’d apologized, kissing his way down Kaelan’s chest and stomach, then drawing the solid length of Kaelan’s cock into his mouth without once scraping it with his teeth. Kaelan had sighed, relaxed, forgiven him.

No. No. He couldn’t remember how Kaelan’s cock had filled his mouth, stretching his lips. It hadn’t happened, not ever. Yet memories shot through his mind like shooting stars, briefly blazing, leaving behind confusion and frustration. He’d lain on his back, Kaelan over him, dark hair tousled from Max’s hands, his thin face intent as he’d eased into Max inch by inch.

Now, in Kaelan’s bed, they were kissing again, and it was frighteningly real. “Stop,” Max said, without knowing what he was saying until he’d already said it. “Kaelan. Stop.

Kaelan, his expression shocked, scrambled backward away from him. “What the fuck?”

“My thoughts exactly,” Max said grimly.

“Were you…? Was that…?” Kaelan seemed as confused as Max but made no effort to cover himself. Why start now? Which, Max supposed, was the question that mattered. “What the hell was that?”

“I don’t know.” Another memory that had to be false rose, this one of Kaelan on his hands and knees as Max thrust into him. “God.”

Kaelan wiped his mouth with his hand, then swallowed audibly. “Did I force that on you? I’m so fucking sorry.”

“It wasn’t just you,” Max hastened to assure him. “It was me too. No forcing.”

“Are you sure?” Kaelan was clearly horrified, inching closer to the edge of the bed. “I kept remembering stuff. Things that never happened. It got confusing as hell.”

“Yes.” Max made his voice gentle and beckoned to Kaelan. “Come here. It’s okay.”

“It’s not okay.” Kaelan remained where he was, stubbornly refusing to meet Max’s gaze. “Were we asleep?”

“Half-asleep. Dreaming? It didn’t feel like a dream.”

“It felt like a memory,” Kaelan agreed, finally relaxing a little bit, some color coming back into his cheeks. “Is it some kind of implant?”

“I don’t see how,” Max said. “Hang on a sec.” He reached out to check the shields, verifying that they were secure. While he and Kaelan had been sleeping was the only time someone could have given them a memory implant without them knowing, but no, the shields hadn’t been tampered with. “We’re locked up tight.”

“Okay. Okay.” Kaelan sat up. “Calm down.”

“I’m not the one—” Max broke off as Kaelan directed a glare his way. “Calming down right now.”

“Good. So we compare notes. We approach this logically, and we don’t freak out.” Kaelan screwed his eyes closed briefly. “I know how you like your dick sucked. How do I know that?”

Kaelan being matter-of-fact helped Max to assess the situation as an abstract problem, not a personal disaster. “Two possibilities. At some point we had sex, and we don’t remember. Which opens up more possibilities, because who memwiped us?”

“We could’ve done it to ourselves.” Kaelan shook his head. “No. We always said we wouldn’t have sex, but if we got drunk one night or curious and did the deed, I can’t see it freaking us out so much we’d take steps to forget it. It’s only sex, and memwipes are risky as hell.”

“True. So we didn’t have sex, and they’re false memories. That’s not something we’d do to each other.” Max leaned over the side of the bed and retrieved his shorts. “How about we split up and shower and make a pot of coffee? We write down everything we remember and see if the memories match and if they’re true. Maybe someone’s used actual memories and cut and pasted us into them.” He scratched his chin. “That made sense in my head.”

“No, I get it,” Kaelan assured him. His expression darkened. “And when I find out who fucked with us like this, they’re gonna get it too.” He moved to Max’s side and, before Max reacted, kissed him full on the mouth, a hard smack of a kiss. “That was from me,” Kaelan said, his chin jutting out challengingly. “Not under the influence, wide-awake, fully aware of what I’m doing.”

Max ran his hand through the springy curls of Kaelan’s hair. “I think you bruised me. Kiss it better.”

He saw how tempted Kaelan was, but Kaelan drew back, a hint of reserve showing. “Suck it up and get your ass in the shower.”

Finding out his shower gel was missing when he was soaking wet didn’t improve Max’s mood. He considered jerking off, but somehow it didn’t feel right to do so, though he couldn’t put his finger on why.

When he went upstairs, the coffee was brewing, and Hopper was sitting at their kitchen table, hunched over, one hand wrapped around a glass of orange juice that was already half-empty. Kaelan leaned against the countertop looking worried, the toaster oven glowing red behind him.

“Great,” Max said wearily. He wanted to work on the problem at hand and get to the bottom of it, not make conversation with Hopper. “What now?”

“Never mind,” Hopper said and shoved his chair back hard enough that when he stood, it teetered. “Leaving now.”

“You, sit.” Kaelan pointed at the boy, who hesitated, then obeyed. “Max didn’t mean that the way it sounded. Yesterday was rough, and we’re still recovering.”

“Sorry,” Max said to Hopper, knowing he’d been less than polite. Kaelan would give him hell for it if he didn’t smooth things over. “Are you okay?”

Hopper was always skinny, but this morning a bruise shadowed his cheek, and he had a pinched look around his mouth. His hair was long and shaggy, and a hole in the toe of one of his sneakers added to his scruffiness. “I’m fine. If you guys have stuff to do, I can talk to Kaelan later.”

Kaelan had a soft spot for the kid, definitely. Max was pretty sure it had something to do with Kaelan’s childhood, which had been far from idyllic. “We have time now,” Kaelan said. The toaster oven clicked off, and he turned to slide waffles onto the plate that was waiting for them. Butter and syrup were on the table. “Here. Eat.”

“Thanks,” Hopper muttered and fell on the food as if it was the first he’d seen in days. The boy never looked like he was getting enough to eat; it was something Kaelan had complained about repeatedly.

Max suffered a pang of guilt for not being nicer off the bat as well as for being frustrated that all the crises had to pile onto them at the same time instead of waiting their turns. He just couldn’t manage to connect with Hopper, his privileged background a barrier, but like called to like, and over time Hopper had mellowed to the point where he would take money for the odd jobs Kaelan created.

Making an effort to be kind now, Max poured coffee for himself and Kaelan, topping up Hopper’s orange juice.

“I don’t get coffee?” Hopper asked.

“Stunts your growth,” Max said, ruffling the boy’s hair lightly and regretting it at once. Hopper’s hair was sticky with something that clung to Max’s fingers. Bacon grease? He picked up Hopper’s empty plate and carried it to the sink to rinse, using the running water to clean his hand at the same time. “But you can have some if you want. So who gave you that bruise?”

“What? Oh, that.” Hopper hunched up his shoulder. “That was days ago. I forget.”

Max exchanged a glance with Kaelan over Hopper’s head, raising his eyebrows questioningly and getting a shrug in return.

Could be anyone, Kaelan mouthed.

“I know you’re talking about me,” Hopper said.

“So talk to us instead.” Kaelan sat beside the boy and traced a pattern on the table with his fingertip, a healing sigil directed at Hopper. It was the magical equivalent of an antibiotic and multivitamin pill, and it would work slowly enough that Hopper wouldn’t suspect anything.

Hopper frowned. The boy didn’t know they were casters and probably didn’t even realize there was anything off about them. There were enough reasons for them to seem alien to him without magic entering the picture, the luxury apartment being the main one. Hopper couldn’t see the car for what it was, but he’d been in the apartment’s living space, if not the bedrooms or other private areas of the floors below. “I don’t know,” Hopper said.

Max’s irritation flared, but he tried to talk to the kid as he’d talk to Kaelan. Well, like he’d talk to a close friend, and that was the same thing. “Did something happen?”

A plaintive look at Kaelan was all he got. “I don’t want to talk about it.” Hopper checked his watch. “I should go. I told this guy I’d meet him at nine. Thanks for the waffles.”

Kaelan stood and reached into his pocket for his wallet, pulling out some money and pushing it into Hopper’s hand. “Take this, okay? Call me later, if you want to talk.”

One gift Kaelan had insisted Hopper take was a phone, the bill coming to Kaelan.

“Yeah. Thanks.” Hopper was gone out the back door, and Bast appeared immediately afterward as if he’d been waiting for Hopper to leave.

“Weird kid,” Max said, not for the first time.

“You would have been too, if you grew up the way he has,” Kaelan said. It didn’t sound like a reproach, just a statement of fact. “Not that your family’s any prize, right?”

The visit to Wainwright’s office had stirred up more emotions than grief. Max recalled how his parents’ expressions hardened when he’d told them about his abilities and what had been done to him. They hadn’t offered him an apology or even an explanation.

It was necessary,” his father had said, his voice cold. “You were too young to know what you were doing, but that wouldn’t have been the case for long. Your uncle saw to it that you were safe.

He was a caster too! Why was it okay for him to do magic but not for me?

His mother had looked away as if he’d said something coarse, color flooding her face, leaving her husband to answer.

My brother was past saving. You weren’t. We caught you early.” Blunt as always, his father had crossed the room and stood close enough that Max smelled the brandy on his breath. “Forget this. All of it. Go back to Harvard. Finish what you started.

I’ll do that. I’ve come too far to walk away. But I won’t be joining a law firm owned by one of your golfing buddies or working myself to death making rich men richer. Not when I can help people a different way.

You’ll change your mind, son.

It had sounded like an order, not a prediction. Disobeying it had cost him his family, but Max had never regretted the path he’d chosen.

“They are what they are,” he said now. “And my brother’s showing signs of independent thought, so anything’s possible. Maybe Dad will come around to seeing I haven’t sprouted horns and bought a one-way trip to the Netherhells.”

“If he doesn’t, it’s his loss,” Kaelan said loyally, and Max resisted the urge to hug him.

“So what do you think’s going on with the kid?” Max asked.

Kaelan drank some of his coffee. “No idea. Sometimes getting info out of him is like tracing signatures. I’ll call him later and see if he’s ready to share.” He sighed gustily. “I worry about him.”

“I wish somebody had worried about you when you were his age,” Max said. It was the kind of thing he often thought but never said out loud. He smiled apologetically at the surprised look Kaelan gave him. “What?”

“Nothing.” Kaelan bit his lip, then said, “It’s nice, that’s all.” Their gazes met for a long moment. “Okay, I can’t figure out why anyone would want to memwipe us so we’d forget we had sex. Which leaves someone implanting false memories as a distraction. That makes a lot more sense, considering. If it was the guy who was after Dougal’s notes, though, when did he do it?”

“Think we tripped a switch in Wainwright’s office and were too busy dealing with cleansing the place to notice?”

“Or he did something when we were fighting Nessie. I wouldn’t have noticed then either.” Kaelan sounded aggrieved at the possibility.

“What about the memories themselves? Ignore the sex. Concentrate on the surroundings.” Max called up an image of Kaelan sprawled out on the bed, panting with exertion, gloriously flushed. Resolutely ignoring the throb in his balls, he focused on the sheets. “The bed had black sheets. Slippery ones. Satin.”

“Tacky as hell. And not on any bed here unless there’s a love nest tucked away on a hidden floor.”

Max flapped his hand impatiently. “Shut up. Concentrating here. Big bed. King. Black sheets. Yeah, definitely black.”

Kaelan scrunched up his face. “It smelled funky. Damp. Like an old warehouse, not a bedroom. Now that’s weird.”

“An illusion trap we walked into?” Max wanted to throw back his head and howl. “We’re trying to find a needle in a haystack in the fog, wearing oven mitts.”

Kaelan blinked at him. “Uh, kind of. But we can do it. We got charmed, fucked with, memories changed, but whoever did this couldn’t have been strong enough to change reality for everyone. If they were capable of that, they’d already be running the world, and we might as well give up. And we don’t do that. The giving-up thing, I mean. So we boot up the computer, and we go through every case file for the past six months and see if anything looks wrong. Nothing comes up, we go back another six.”

“That’s going to take a long time,” Max said. “And maybe that’s the idea. Distract us, keep us here, take us out of the loop, whatever.”

Kaelan snapped his fingers. “We file a report before we go out on a case. Names, addresses, reason we’re going.”

“Unless it’s an emergency and we’re too busy jumping off tall buildings.” No, he wasn’t letting that one go anytime soon.

Ignoring Max, Kaelan continued, the words rushing out of him. “So the before report and the after should match. Should connect. We think we went to a warehouse. That narrows it down. We search for warehouse visits, and we focus on them. We don’t find any, then we ask the computer to check for unauthorized changes to the database. If someone hacked us, they had to have tripped an alarm. If they edited the report of the hack, even that should’ve left traces.”

“Fine. We’ll do it. Or you will, and I’ll start reading Wainwright’s notes. But not until I have more coffee.” Max rubbed his eyes, already gritty. “Going to be a long, boring day for you.”

“Are you nuts? This is fun.”

The sad thing was, Kaelan meant it.

Wainwright’s notes were extensive and well written. It’d take months to make sense of all of them. Max didn’t think they had the luxury of ample time to get on top of current events, not with sea monsters being thrown at them. He had to focus on the more recent stuff. As he backtracked from the end toward the middle, he discovered recurring threads of someone Wainwright referred to only by a single initial, J. Had that been the caster who’d set the sea monster on them?

“We didn’t know that guy’s name, did we?” Max asked.

“Nessie’s caster? No.” After a moment, Kaelan added, “Same signature as on Dougal’s office, that’s all.”

“Yeah.” It could have been him. If he’d had enough power to soak Wainwright’s office in dark magic the way he had, he’d probably had enough to give them an implant. Why he’d want to was another matter entirely.

“Hey,” Kaelan said, turning away from the computer. “That guy. He said the notes were ‘supposed to be destroyed.’ Not that he wanted them destroyed.”

Max scratched the back of his neck. His coffee had gone cold. “He was working with somebody else.”

“Or for somebody else.”

“There’s some stuff in here about a guy Wainwright calls J,” Max offered, gesturing at the notebook. “That’s as far as I’ve gotten.”

“I don’t have anything yet. Except to say that if we got paid for all the jobs we end up doing gratis, we’d be rich.”

Max snorted. “We’re already rich.” It wasn’t the first time he’d had to remind Kaelan of that fact, and he was sure it wouldn’t be the last.

“Oh yeah. Right.” Kaelan came over and rested a hand on his shoulder, then picked up Max’s coffee cup. “Refill?”

“Yes, please.” Max went back to work.

Hours passed. They ate, took a short break midafternoon to recharge, spending it playing pool without caring much who won, then settled down again. Max’s butt ached from sitting, and the false energy from caffeine had left him with a nagging headache and a foul taste in his mouth.

“We only saw him briefly, but does this look like the caster?” Kaelan asked, jarring Max out of an attempt to decipher a sentence that looked as if it’d been written by a drunken monkey swinging upside down.

He stood and went to peer over Kaelan’s shoulder at the image Kaelan had created from memory. Neither of them was a skilled artist, but their computer was enhanced with more than the latest technology. It couldn’t perform spells—sentience was required for that—but it was imbued with charms and castings that made it an extension of them in many ways.

“You saw him outside the window, and I didn’t, but yeah, before he got eaten I caught a glimpse, and it’s close enough.”

“So let’s see if he’s in the database.”

“Which one?”

“Any one.”

The search took some time to complete with Kaelan fretting impatiently, muttering, “Come on, come on,” under his breath until the computer screen went black and a message appeared:

I WORK BETTER ALONE.

Max snickered. “Now look what you did.”

PLEASE STOP TALKING. IT IS DISTRACTING.

It was Kaelan’s turn to snicker, but he did it quietly.

The search results showed up so soon after they went obediently silent that Max wondered if the computer had held on to them long enough to make a point.

“Mark Deems,” Kaelan said. “No J, not even as a middle name, and he didn’t have any aliases. Perfectly normal architect, no family, no debts, no record. Mr. Vanilla.”

“But look who he worked for.” Max gestured at the bottom of the screen. “Leyden International.”

“So? They’re huge. They must employ thousands worldwide.”

“And they’re owned by a guy named Jannes.”

“Which starts with J. Look at me, I’m a genius.” Kaelan grinned up at him and then looked at the computer screen again. “What can you tell us about Leyden International?”

ALL KINDS OF THINGS. WHAT WOULD YOU LIKE TO KNOW?

Max wasn’t sure when the computer had developed a sense of humor. Maybe it hadn’t, and they were fooling themselves.

Kaelan grinned wider. It made him look ridiculously young and beautiful. “Everything,” he told it. “Everything you know.”

The tiny wheel of fortune indicating a task in progress started to spin. It’d been an hourglass originally, but Kaelan had insisted on this replacement. It made no difference, but Max found it difficult to deny Kaelan anything within reason.

In the next hour, they learned a lot about Jannes, after separating out the references to the biblical character. That Jannes was bones and dust, but Max wondered if Jannes’s parents had known their son would be a caster when they named him after a legendary magician, or if the name had been taken later as a homage.

It was hard to figure out why the man would be so interested in Wainwright’s notes that he’d send a caster after them. Sure, Wainwright had clearly been on to something. Jannes was a caster, though whether a powerful one who preferred to let underlings do his dirty work, or a weak but clever one who knew whom to hire, it was unclear. A couple of news reports talked about Leyden International making real estate purchases in the city, but that seemed mundane enough.

Max was on the verge of suggesting they look into Jannes’s personal background more thoroughly when Kaelan’s phone signaled he’d gotten a text. He had to stand to take the phone out of his pocket—his jeans were too tight, not that Max would complain.

“Give me a second,” he said, and Max nodded. “Shit. Hopper’s in some kind of trouble. I’ve got to go.”

“I’ll drive.” Max didn’t hesitate, and Kaelan didn’t try to argue.

They headed for a place on the south side of the city. “He gave me the address,” Kaelan said, checking his phone again in the passenger seat. “I don’t know if it’s a friend’s place or what.”

“Ask for a street view.” The phones were linked magically to their home computer, and that saved a lot of tapping on a small screen with a finger. Instead of working through menus or thumb typing, Kaelan asked for what he wanted and got it instantly.

“Looks like warehouses,” Kaelan reported. “Run-down, full of rats, filthy. How romantic is that?”

“Romantic? Are you nuts?”

Kaelan batted his eyelashes. “We met in a warehouse.”

Good times. “So we did. And it’s where we did or didn’t have sex.”

“Three different warehouses, though,” Kaelan said. “At least I assume they are. Hopper’s address is in a different part of the city from where we met, that’s for sure.”

“Yeah.” Max went through a light that had been about to turn red until he’d persuaded it not to. “Ask the computer to search for anything linking the two places, though.”

“Hopper’s not tied into what happened five years ago. We didn’t even know him then, so what’s the point?”

“Hunch,” Max said shortly. “I feel like a puppet being jerked around. If we follow the strings, we’ll see who’s making us dance.”

Kaelan winced and said, “Maybe we don’t want to know.”

“Are you kidding me?” Max glanced at him, then back at the road. “Please tell me you’re kidding me.”

“I wasn’t,” Kaelan said. “Max, what if there’s somebody big up there, controlling things?”

“You mean God?”

“I don’t know what I mean.” Kaelan checked his phone again. “Turn right up here before the gas station, then a left.”

As soon as they turned the corner, Max knew where they were going. Three police cars were parked up ahead. No sirens, but their lights were flashing.

“Shit,” Kaelan muttered. “Shit, shit, shit.”

“Easy,” Max said. “Don’t freak out on me.”

Kaelan nodded and didn’t say anything else. That probably meant he was freaking out quietly, but that would do for now.

Max found a place to park a block from their destination, adding a glamour casting to the car that made it fade into the background without disappearing from sight. He’d done the latter once with a motorbike when he was still new to casting, and someone had tried to park on top of it.

“So what’s the plan? Wander by, acting innocent?”

Kaelan chewed his lip. “I could text Hopper, but if he’s in there hiding from the cops and his phone goes off, it could get awkward for him.”

“So we find out.” Max took out his phone. “Computer, trace Hopper. Is he in the building?”

HIS PHONE IS.

“Doesn’t help us.”

Kaelan was going to draw blood soon if he kept gnawing. Max got a stick of gum out of his jacket pocket and passed it to him. “Chew on that, cannibal.”

“Sugar-free? Really?”

“You’re sweet enough, honey.”

“That’s never going to be cute or funny, just so you know.”

Max shrugged. “I call ’em like I see ’em. You’re sweet.” He tapped his hand against the wheel. “Computer, who owns this place?”

JANNES.

“You mean Leyden International?”

SAME THING.

“Since when?” Kaelan butted in to ask. “When did Jannes buy it?”

NEGOTIATIONS COMPLETED AT 9:13 A.M. POLICE CALLED OUT AT 5:50 P.M. TO REMOVE SQUATTERS.

“Why does he want it?” Kaelan asked. “It’s a dump. Who’re you calling?”

“My brother,” Max said. “I told you he was acting for people filing against a company buying up land. If it isn’t Jannes, I’ll treat you to as many hot-fudge sundaes as you can eat without puking.”

“Hang up. And plan to watch me eat at least three.” Kaelan held up his phone to show Max the message from the computer that made Max’s call redundant: IT IS.

“I’m starting to think we should cut her a paycheck.”

“Her? Why is the computer female?” Kaelan asked.

“I don’t know,” Max admitted. “She feels that way to me.”

“One way to find out.” Kaelan cleared his throat. “Computer, are you male or female?”

I AM NEITHER AND BOTH. ALL OR NOTHING. YIN AND YANG.

“Okay, that’s helpful,” Kaelan said. “Would you like us to call you by a name?”

YES.

“Like, a specific name?”

NO.

“We’ll think of something,” Max said. “But not right now.”

“Later, yeah. You can call your brother later too,” Kaelan agreed. “When you’ve had some time to think what you’ll say if he picks up. And a stiff drink.”

Or three, Max thought. Alcohol for him, ice cream for Kaelan. Then he’d call his brother’s number and hear it go to voice mail. God, he hated the distance between them.

“Okay, come on. Let’s go.” He made an impatient gesture, and they got out of the car. They backtracked along the sidewalk to where the police cars were sitting. Max didn’t see any accessible entrances to the warehouse building before they reached the cops. “Hey, officer,” he said to the one nearest them, then realized Kaelan was clinging to his arm. “Is everything okay?”

The cop studied them with a professional appraisal and clearly dismissed them as a threat. “Everything’s under control. You two live around here?”

“Yeah, around the corner.” Max gestured vaguely with the arm Kaelan wasn’t attached to. “We saw the lights.”

“Nothing to worry about.”

“Are you sure?” Kaelan snuggled closer still. “Because this place scares me silly. I won’t walk by it on my own, will I, sweetlips?”

Kaelan was getting revenge for the honey, but if he expected Max to look flustered, forget it.

Max patted Kaelan’s arm and gave him a fond smile. “That’s because you’re a fraidy cat, but he’s right, Officer. There are some rough-looking types hanging around the place. Drug dealers. Mafia, maybe. Are your men planning to use tear gas or smoke bombs? No! Rubber bullets!”

“They’re homeless kids getting out of the rain,” the cop said, his gaze hardening. “We haven’t had any trouble with them until today, and if you did, you should’ve reported it…sir.”

A cop with a social conscience who thought he was dealing with two assholes. Great.

“How many?” Kaelan’s voice quavered. “Suppose they start shooting?”

“As far as we know, they’re unarmed, and there’re four of them. Now, I suggest you go home and let us do our job.” The cop smiled thinly. “Would hate for you to get hit by a stray rubber bullet. They can leave a nasty bruise.”

Kaelan squealed with dismay and dragged Max several yards along the sidewalk before muttering, “I liked him. Do you think he’s seeing anyone?”

A week ago, that wouldn’t have registered with Max. Now he had to bite back a sharp comment. The cop had been good-looking in a rugged way, and it wasn’t hard to see why Kaelan was drawn to him, but it grated after the way they’d woken up wrapped around each other.

He’d known this would happen if they muddied the waters with sex, damn it. Jealousy, possessiveness, hurt feelings, and fights.

Keeping his voice light, he said, “I don’t think the attraction’s mutual, and I saw a wedding ring.”

“Sad face,” Kaelan said with a pout, then dropped the ditzy act. “Okay, while you were flirting—”

“While I was what now?”

“I saw something move behind a top-floor window. I’m pretty sure it was Hopper, and he saw us.”

“So we find an alley and portal up to him?”

“That’s the plan. At least the place isn’t shielded. All we need to do is get out of sight.” That was easy enough to do. They were already almost to a narrow space between buildings.

Max glanced back at the cops, but none were looking at them. “Okay, we’re good,” he whispered. They stepped out of Kaelan’s portal and into a large, dark room. The floor was six inches below their feet, and the jolt as gravity took them was startling. “Whoa.”

“Sorry,” Kaelan said in a low voice, his lips brushing Max’s ear. “Figured we’d better get while the getting was good.”

Regaining his balance, Max nodded. “Yeah. Where are we?”

“I think the third floor. It was kind of hard to tell from out there. I had to guess. But there should be stairs around here somewhere.”

“We’re gonna need a light,” Max said and conjured a tiny glowing sphere.

They crept through the building until they found a staircase. They heard the cops questioning some kids down below, but Kaelan pointed upward, and Max knew he was confident that Hopper was on the floor above them. Likely the cops didn’t realize how many people were in the warehouse. It would have been so much easier and quicker to portal to Hopper, but they weren’t sure where he was. Giving Hopper and his friends heart failure by appearing in front of them from thin air wasn’t part of the plan, so yeah, the stairs it was.

“Hopper! It’s me,” Kaelan whispered when they were on the top floor.

After a few seconds, someone whispered back, “Kaelan?”

Max hastily extinguished his light sphere, and Hopper materialized out of the darkness.

“Are you okay?” Kaelan asked.

“How did you get in here?” Hopper sounded shocked and disbelieving.

“Sneaked in the back,” Max lied. “What’s happening?”

“At first we thought they were gonna run us out,” Hopper said. “Wouldn’t be the first time, but this place has been ignored so long we weren’t worried. But when Darius asked why now, one of them hit him. He wasn’t doing anything! I mean, he was just asking a question. But they hit him and kicked him, and then they locked him in the back of one of their cop cars. We were watching from the stairs.” As Hopper filled them in, a couple of his friends stepped out of the shadows, body language wary.

“Is he still here?” Max asked.

Hopper rubbed his nose with the back of his hand. “They drove away with him. Then more cops came. What’s the big deal? We like it here. It’s safe. But we’d have moved on. There’s always somewhere to stay.”

Two sets of cops? “Something feels off,” Max said. “The cop we spoke to seemed like a decent guy, and that’s a lot of man power to evict some kids from a building.”

“Yeah.” Kaelan jerked his head to the side. “I’m going to make some calls. See where they took Darius. We can get him out on bail, at least.”

Left alone with the teenagers, Max gave them an awkward smile. He wasn’t at ease with them the way Kaelan was. He didn’t know all their stories, but he guessed they had a lot in common with Hopper’s—runaways from a system that had failed them, staying hidden until they were old enough that they couldn’t be dragged back in. He admired their ability to survive, but he couldn’t shed the pity and sympathy he felt, and they resented it. In their eyes they were the ones who’d won, getting out before they’d been broken.

They didn’t want to hear about Max’s study buddy in high school, Shayla, whose foster family had taken her in, loved her without smothering her, and given her everything any child needed in the way of support. Didn’t need to be reminded they weren’t among the lucky ones.

Aware that his smile had morphed into a fixed grimace, Max cleared his throat and glanced away. The place had been tidied, odds and ends of furniture placed in one corner of the vast room, partially hidden by tarps hanging from the rafters. The Lost Boys before Wendy appeared.

“Can you get him back?” Hopper asked. “I know you’re loaded, but once he’s in the system, they’ve got him. He’s gone. They’ll find out how old he is, and they won’t let him walk out.”

“We’ll handle it,” Max told him, projecting confidence he didn’t feel. “How old is he?”

Hopper turned away, conversing with his friends in hissed whispers before giving Max a shrug. “Twelve? Maybe thirteen?”

Shit. That was going to complicate matters. Though Max could make damned sure the cops who’d been so brutal to a child got disciplined.

“He’s nowhere,” Kaelan said, striding back to them, his face tight with concern. “I called the local precinct, and they sent out the cops who’re down there now, but they don’t know anything about an earlier group, and no one’s been taken into custody.”

The kids behind Hopper drew closer together, but Hopper stayed where he was. “What are we gonna do?”

“We’re going to stay calm,” Kaelan said. “And we’re going to get you guys out of here. There’s a fire escape on the back corner of the building.”

“The cops aren’t keeping an eye on it?” Max asked.

“Not at the moment, so we’d better hurry.” Kaelan looked at the small group huddled behind Hopper, but none of them moved. They were scared, and Max didn’t blame them.

“It’s okay,” Hopper said. “Come on. We can trust them.”

The fire escape was rickety and rusted. Max sketched a quick casting to support the places that were least secure, and they started down, Kaelan first, then Hopper and the kids. Max didn’t usually have a problem with heights, but this was pushing the boundaries of his comfort zone. The metal creaked and groaned under their combined weights, and even though he knew it wouldn’t collapse with his magic holding it up, it was unsettling.

The teen in front of him, a girl with her hair in braids, paused, and Max had to stop. “Okay?” he whispered. She nodded and started moving again. Below them, Kaelan had somehow managed to slide the retractable ladder down without making any noise. That had to have been the magical equivalent of WD-40.

The girl turned to face him, preparing to go down the ladder. She gave him the ghost of a smile and set her foot on the first rung.

One step, two. Her head was level with Max’s feet when the cheap sandals she wore slipped on the metal, or she misjudged the distance between rungs. She was left dangling by her hands, feet kicking wildly as she tried to find the ladder.

She didn’t scream, loyalty to her friends or simple self-preservation keeping her silent, but that made it worse somehow. Max knew he hadn’t hesitated, but it seemed like minutes passed before he’d crouched and grabbed her hands, not a second or two. She swung in his grip, her knee striking the ladder with a resounding clang.

Shit.

“I’m sorry!”

“Shush. It’s okay, sweetheart, I’ve got you.”

He heard a call from the cops at the front of the building. They didn’t have much time.

Kaelan was back up the ladder in a flash, possibly with a magical boost, though in the darkness and confusion it was hard for Max to tell for sure. “I’ve got her!” he whispered, and Max reluctantly let go.

His feet barely touched the ground when a bright light from around the corner of the building blinded him. He put a hand up, both to protect his eyes and to keep the cops from seeing his face—he hoped Kaelan had the sense to do the same—and grabbed at the nearest teen with his other to turn him away. He knew running was hopeless, but he couldn’t be sure Kaelan would risk a portal in full view of so many people.

Max heard someone shout, “Gun!” and the next thing he knew, he was lying on his back in the alley, looking up at the sky with the wind knocked out of him. There’d been a bang, he thought faintly as a punch in the shoulder blossomed into hot, burning pain. He heard a scuffle, felt Kaelan’s hands on him, pulling at him, and then the familiar brief silence that accompanied moving through a portal.

He closed his eyes.

Chapter Six

Reason 64. The healing abilities of a caster are well-known and contribute significantly to our extended life span—unless we are prone to experimentation or random acts of heroism. Infection struggles to find a home in our blood, cuts heal rapidly, and we suffer no allergies, head colds, or toothaches. Because the universe loves balance—or has a sense of humor—we are invariably seasick on even the calmest body of water and react badly to excess amounts of alcohol. I say it’s worth it. Cheers!

[From 101 Reasons to Celebrate Being a Caster by Alred Gingerin.]

Kaelan had no idea how everything had gone to shit so fast. One minute they’d been clambering down off the fire escape ladder, and the next the cops were shining bright lights on them. One of Hopper’s friends pulled a handgun from the waistband of his threadbare jeans and brandished it with shaking hands.

“Gun!” a cop shouted, pulling his weapon.

“Dude, don’t!” Hopper said, and the gun went off.

Kaelan used his magic to pluck the gun out of the kid’s hand, sending it skittering harmlessly across the pavement. The cops, who’d been yelling at them to drop the weapon, paused as Kaelan glanced over to ask Max what they should do—

And saw Max on the ground, his shoulder soaked with blood—

And at that point it didn’t matter what they should do, because there was only what Kaelan was going to do.

He grabbed Hopper’s sleeve, tugged him over to Max, opened a portal home, and dragged all three of them into it.

For a few long seconds, he knelt on the floor of their kitchen, shivering convulsively. The portal opening had shoved the chairs and table back—he’d been way off on his calculations, not that he cared—and Hopper was freaking out loudly and spectacularly next to him.

“Oh my God! What was that? How did we get here? What was that?

“Shut up,” Kaelan said desperately. “Max?”

Max was breathing, which had to mean he had a pulse. Why had Kaelan spent years learning magic and not taken time to pick up some first aid? God, why was there so much blood? Max’s eyelids lifted as if they were heavy, but he wasn’t focusing on anything. Kaelan turned and grabbed a dish towel off the front of the stove and pressed it against Max’s shoulder, hard. Max shuddered and reached up to push Kaelan’s hand away.

“No, you’re bleeding. We have to stop the bleeding.”

“Shot.”

“Yeah, but it’s okay. Take more than a bullet to slow down Mad Max.”

“No, a bullet does the trick really fucking well.”

“Is it still in there?” Hopper asked, his voice tight as if he’d decided to postpone freaking out but not for long.

“I don’t know,” Kaelan said helplessly. How could he look without taking the towel away?

“Scry for it,” Max said in a whisper. “Call it out if it is.”

Oh. Okay. Kaelan forced himself to calm down, sparing a moment to breathe deep and slow. It helped. “Hopper, get over here and press down on the towel. Keep the blood inside him.”

Hopper did as he was told, pushing his grimy hands flat against a towel that had once been white. Kaelan gathered his scattered energies and focused on Max’s shoulder. He felt the heat of skin the bullet had burned through, tasted the filth it’d left behind like oil against his tongue.

He could heal himself and others in a small way—every caster could, and most did it without conscious thought—but this was different. Muscle was torn, bones were broken, and the blood wouldn’t stop leaking out, for fuck’s sake.

“Want me to call 9-1-1?” Hopper asked

“No. We can’t draw attention to ourselves like that. Bullet wounds get reported.”

“So make them forget you were ever there.” Hopper glanced up at Kaelan, half-resentful, half-awed. “You can teleport, and you can’t put a whammy on them?” His eyes widened. “Did you ever do that to me? Fuck with my head? Make me forget stuff?”

“No! Jesus, Hopper, I don’t have time for this! We don’t mess with people. We can, yeah, but it comes with a price, and you’d better believe it’s not worth it. Now keep the pressure on. I need to stop the bleeding and clean him up.” Sickness swept over him if he thought about the blood. He was sure now that the bullet had gone through Max’s shoulder and out the other side, because he couldn’t sense it, but he was equally sure that he couldn’t put Humpty Dumpty together again.

An idea struck him, and he riffled in Max’s pockets for his phone. Max was pale, blood puddling under his shoulder on the kitchen floor. Kaelan thumbed the phone on and said, “Call Essame,” in a voice that shook so much he had to repeat the order. While it rang, he got some more dish towels from a drawer and handed one to Hopper.

“Put it on top of the other one,” he said. “Press hard. Hi, hello? Essame? It’s Kaelan. Remember me from before? Max Ancaster’s partner. Listen, I need your help. Max has been shot,” he babbled as he tucked the other dish towel under Max’s shoulder. “He’s bleeding.”

“Calm down,” Essame said, taking charge of the situation as she had when Kaelan had been burned by a caster in a way that regular doctors wouldn’t have known how to deal with. “Deep breaths. Where are you, Kaelan?”

“At our house.” Kaelan managed to stammer out their address. She was being too fucking nice. Kaelan could hold it together until someone was nice to him; then he fell apart. “He’s bleeding everywhere, and I can’t make it stop.

“Put pressure on the wound. What color is the blood?”

“I am. What? Um, red.” Was that a trick question?

“I know. Is it bright red or dark red?”

Kaelan looked at it. He swallowed hard. “It’s pretty bright.”

“Good. Okay, that’s good. Keep pressure on it, and I’ll be there soon. Stay calm. Is he awake?”

Max blinked occasionally, but Kaelan wasn’t sure he was awake. “Sort of.”

“I’ll be right there. Keep him talking if you can. It’s going to be okay. Is anyone with you?”

“Yeah. My friend Hopper. I’ll send him down to open the door.”

“I’ll see you soon.” Essame hung up.

“Was that a doctor?” Hopper asked.

Kaelan nodded. “Can you go down and wait for her? Make sure the doors are unlocked? She’ll portal straight here, but she can’t get through the shields unless someone inside opens the door. Only we can do that.”

Hopper sucked in a breath as if gearing up to explode, but Kaelan jerked his head at the door, and Hopper sighed. “We’re talking about this woo-woo magic shit later. Not saying I buy it, but we’re still talking.”

“Sure. Later. Now go!”

Under other circumstances, Kaelan would have been a lot more specific in his instructions, though for the most part Hopper had always been pretty reliable. Now, he put his hands over the dish towel absorbing Max’s blood as Hopper removed his, and didn’t look up when Hopper left the apartment.

“Max? Talk to me.”

“Not gonna die.” The words were slurred, but Kaelan understood them. “Just tired. Casting a lot. Bullets. Waking up with you ’n’ finding out all a lie.”

Having that included with a bullet wound made Kaelan’s gut lurch. “Listen, whether or not we’ve done the deed for real, I don’t know. But when you’re healed and we’ve got ten minutes to spare, there’s unfinished business to take care of, pal. We’re so doing it. You. Me. Bedsprings squeaking, pictures falling off walls, chandelier swinging, everything.”

“No. Don’t want that.” Max’s eyes drifted closed. “Want it to matter.”

“It would. Fuck, you want romance? I can do that. I can make it special for you, Max. I’ll do anything. Look at me, buddy.”

Max opened his eyes, dull with pain, but at least Kaelan could see them. “Like make it fifteen minutes so we can do it twice?”

“Are you screwing with me when I’m elbow-deep in your blood?” Kaelan demanded. “You are, aren’t you? Asshole. Okay, forget the romance. You don’t deserve it. Roses, chocolates, the full moon I ordered—all going back.”

Max bit back a groan. His skin had lost its healthy glow and looked pale and grubby, as if he’d been living in a cave for months.

“It’s gonna be okay,” Kaelan said. “Hang in there. Essame’s coming, and she’ll get you all fixed up.”

“Yeah. She’s good at that.” Max sighed. “Don’t freak out.”

“I’m not freaking out, you jerk. Don’t tell me what to do. You’re not my big brother.” It was something Kaelan had said to Max at least a hundred times.

“No.” Max pressed his lips together tightly. “I’m not. Want to do things to you that aren’t at all brotherly.” A long pause. Then he asked, “You think those kids are okay?”

“I’m sure they’re fine.” Any worry Kaelan might have felt for Hopper’s friends was eclipsed by his concern for Max. His breathing was steady, but his lower lip trembled. “Max? Stay with me here.”

“I’m with you,” Max muttered.

Kaelan freed up one hand—Max hissed at the change in pressure on his wound—and smoothed Max’s hair back from his forehead. “Look at me.”

“Not hard.” Max smiled faintly. “Could do it forever.”

“Good,” Kaelan said fiercely, leaning in and kissing Max on the mouth, a light brush of their lips together. “Max, I—”

Hopper burst back into the room with Essame at his heels. She was carrying some kind of medical kit, but as soon as she had sized up the situation, she pushed it into Hopper’s arms and knelt on the floor at Max’s side. Kaelan shifted out of her way, giving her space to work.

She peeled back the dish towels. “Not so bad. Get me a pair of scissors. I’m gonna have to cut his shirt off.”

Kaelan stood and found the room spinning around him. “Okay, stood up too fast.” He bent over, willing the dizziness away, his vision darkening. He was not going to pass out because one of Max’s favorite shirts was ruined. Big hole in it. Lots of red.

“I got them,” Hopper said, rattling around in a drawer as confidently as if he lived with them. “Here, Doc. Want some boiled water in a bowl too?”

“Wouldn’t hurt,” Essame said with an approving nod. “Kaelan, love, get back down here and keep talking to him. Find a cushion for his head first.”

Ashamed of his weakness, Kaelan swallowed. “Yeah, sure.”

The first cushion he grabbed was the red one his date had used to salvage his dignity. Had they ever gotten it cleaned? He dropped it and picked up a large, fairly flat one, firm enough to support Max but covered in soft fabric.

Kneeling again, he summoned a smile. “Look at you being the center of attention.”

Essame focused on the wound, eyes half-closed. Her magic made Kaelan’s skin prickle—not in a bad way, but he was still relieved when she sat back on her heels, and even more relieved when he saw for himself that the bleeding had slowed.

“Kettle’s boiling,” Hopper reported. “Be a while before the water’s cool enough, though.”

“No, it won’t,” Kaelan said. Hopper had seen what they could do; secrecy was pointless. He adjusted the temperature in the bowl to where he thought Essame would want it, ignoring Hopper’s wide eyes when the bubbles in the water subsided, and kept talking to Max, whose gaze stayed unwaveringly on Kaelan as Essame worked.

A reproving mew announced Bast, who padded over, yawning widely, to sniff at Max’s head.

“I love cats, Bast, but if you shed in the wound before I sew it up, you’re fur mittens, okay?” Essame murmured.

Bast’s tail lashed from side to side, but he retreated, settling down on the floor a few yards away, purring loudly. It was soothing in a way.

“This is to help things along,” Essame said ten minutes later as she put some stitches in the back of Max’s shoulder. Max didn’t react to the needle, which was as much a relief to Kaelan as it had to be to Max. “You should be good as new in three or four days. I can come back and take the stitches out then, or you can swing by my office and pay the bill at the same time. House calls are expensive.” She smiled to show she was joking, even though Kaelan was pretty sure she wasn’t. Essame treated poor people for free and charged rich patients the earth. It balanced.

“Anything,” Kaelan said and meant it.

“I’m going to cover it for now, and you should keep it dry for the next twenty-four hours.” She taped bandages over the wound, back and front, and went to wash her hands again. “Now, I want you to sit somewhere comfortable and drink at least sixteen ounces of liquid—nonalcoholic—before you go to bed. Stay there until tomorrow morning. And take it easy tomorrow. Nothing strenuous. Got it?” All this had been directed at Kaelan, who nodded.

“Thank you so much. I don’t know what we would have done without you.”

She waved his gratitude away. “I’m off. Don’t hesitate to call if you think anything’s wrong, but I’m confident everything will be fine.”

Hopper helped Kaelan get Max upright and to the couch.

“I can walk,” Max said irritably, but Kaelan ignored his tone and made sure he was comfortable before asking Hopper to get a glass of juice.

“I was thinking I’d take off too,” Hopper said, coming back with the juice. “Means you don’t have to waste time deciding how much you can tell me and what you’re gonna have to lie about.”

“What? No. Stay here tonight, until we figure out what’s going on.” Kaelan was torn, but there was no way he was letting Hopper leave without having someplace to go. “And we won’t lie to you. We might not tell you everything, but I promise no lies. We’re your friends, Hopper.”

“Yeah, well, you’re not my only friends, and you don’t need me. My other friends do. Gotta make sure they’re safe.” Hopper looked exhausted, his face pale under the tan and dirt smudges. “Darius is out there too. I can’t sit on my ass and do nothing.”

Seeing Max get shot had left Kaelan so oblivious to everything else that he’d forgotten the bigger picture. They weren’t being attacked by anything solid, and that was the problem. Their opponent was shadowy, glimpsed out of the corner of their eye, motives unsure. Evidence was pointing at Jannes and his company, but it was circumstantial, a jumbled mess of coincidences that might not be connected.

“There’s nothing you can do for Darius,” Kaelan said.

“What about you?” Hopper couldn’t have looked winsome if he tried, but the flat, challenging stare he directed at Kaelan did a terrible job of concealing the appeal behind it. Kaelan couldn’t help responding to it. He’d always been a sucker for someone struggling without ever giving up. “You said you’d help. And you owe me an explanation for all the wand waving, Merlin, but as I said, that can wait until I’ve got my crew back.”

“I’m not a wizard. I don’t have a wand, a cauldron, a pointy hat, or a broomstick.”

“But you do have a cat.”

Bast stropped his claws on Kaelan’s legs, outwardly affectionate, but the feed me message came over loud and clear. He stooped to stroke Bast’s glossy head. “The cat’s just a cat.”

The scratch he got was probably another hint that supper was required. Probably.

“We can find your friends if you give us something of theirs to work with,” Max offered from the couch.

“I can,” Kaelan corrected. “You’re not doing anything but rest.”

Hopper clicked his tongue impatiently. “I don’t carry around mementos. What do you take me for? If I knew where they were, I’d ask them to give me something you could use, but oh, wait, then I wouldn’t need you to fucking find them!”

“Put him in a trance,” Max suggested, yawning. “Link to him, pen, map of the city.” With an indistinct murmur, he closed his eyes.

“No way,” Hopper said. He took two steps backward away from Kaelan, as if he thought Kaelan might grab him and force him. “A thousand times no. You’re not putting me in a trance or doing spells on me. No way.” He took another step backward, and Kaelan hastened to reassure him.

“I’m not,” he promised. “I won’t do anything you don’t want me to do. You can trust me.”

“Yeah? Not feeling it right now.” Hopper was angry, and Kaelan didn’t blame him, even if he would have made the same choice to hide magic from him again. Hopper glanced toward the door. “If I bring you something, you can use it? To find Darius, or whoever else?”

Kaelan nodded.

“Okay.” Hopper turned to go.

“Call me,” Kaelan said, then followed him to the door. “Okay? If you get into trouble or anything.”

“I’m always in trouble,” Hopper said grimly, then smiled a smile that had no humor or happiness in it at all. “Don’t worry. I can take care of myself.”

Kaelan stood looking at the inside of the closed door for a minute after Hopper left.

“Hey,” Max said tiredly from the couch. “Cat’s trying to eat me.” Kaelan went into the kitchen and flicked the top off a can of cat food. Bast appeared at his heels so fast Kaelan would have believed the cat had learned to portal. He dumped the food into a bowl and set it down, then returned to check on Max, who hadn’t had a single sip of his juice.

“You have to drink this,” he said.

“Okay.” Max didn’t move, though, so Kaelan picked up the glass and held it in front of Max’s mouth.

“Here.”

Max pulled a face but took a sip and then another. “If I puke this up, I’m aiming at you.”

“Jesus, what did I do?” Kaelan asked. “Why is everyone mad at me?”

Max groped for his hand and squeezed it. “Idiot. I’m not. I wish this hadn’t happened when we’ve got so much to do.”

“Shit happens. They didn’t teach you that at Harvard? They should’ve.”

“Yeah, but they fancied it up. And I learned that lesson years ago. I don’t like today’s refresher course much.” Max took another sip of juice, each swallow an effort, judging by his increased pallor. “Okay. Now help me up.”

“No way.”

“I need the bathroom, and I’m damned if I’m sleeping on the couch or in my pants for the second night running.” Max handed Kaelan the glass. “I know we’ve got a ban on Python quotations, but it’s just a flesh wound. And I’ll be more comfortable in bed. Plus, you’ll be next door, not on a different floor.”

“I’m sleeping with you,” Kaelan said firmly. “Not in the bed, because I might jar your shoulder, but in your room.” They had camping equipment in storage—and their storage went back a long way, courtesy of a cupboard that held more than it should—and an inflatable mattress a caster had blown up stayed firm all night. He’d be fine.

“You’re crazy. Help me up.”

Kaelan winced every time Max did as they got him up on his feet. The only thing that made Kaelan feel better was the way Max leaned on him—solid, reassuring, alive. When Max was in the bathroom, insisting on being alone, Kaelan put his back against the closed door and shut his eyes, breathing evenly.

That their lives were dangerous wasn’t new. They were on the edge constantly, waiting for someone to give them the push that would send them reeling. But a stray bullet or a car crash could kill them as easily as a rogue caster or a spell gone wrong. He knew they were mortal, but sometimes he forgot how mortal they were. Seeing Max bleeding like that had scared the shit out of him.

He heard the toilet flush, then water running in the sink. “You okay?” he called. He was sure Max hadn’t locked the door, so he could get in if he needed to.

Shuffled footsteps. Then the door handle turned, and the door opened. “Feel weird,” Max said. “Kind of light-headed.”

“That’s why I didn’t want you in there by yourself,” Kaelan told him.

“Mm-hm. Bed now?”

It took ten minutes to get Max into the bedroom and out of his shoes and clothes. Everything was in slow motion, not that Kaelan was in a hurry. He appreciated having something to focus on. “Want more juice?” he asked once Max was settled, lying on his good side with an extra pillow propping him up.

“Ugh. No.”

Kaelan didn’t want to argue with him. “Okay. Try to get some rest.” He couldn’t resist the urge to reach out and stroke Max’s face. Under the light downward pass of his fingers, the stubble Max usually removed twice a day was as soft as the hair on Max’s head.

“Does it take me getting shot to make you want me, or were we headed here anyway?”

“Always wanted you,” Kaelan said, caught off guard and answering honestly. “Well, maybe not that first night, but…you said I wasn’t your type when we met, remember?”

Max rolled his eyes. “And you bought it? Tell me you haven’t spent the last five years thinking you’re a six for me when you’re more like an eleven. I stare at your ass all the time.”

“I don’t have eyes in the back of my head, jerk.” Max waited him out, and Kaelan caved. “I noticed. I even did some staring of my own. But it worked better this way. Friends. Partners. Sex with anyone but each other. It worked.”

“It did,” Max agreed and waited some more. His gaze never left Kaelan’s.

Kaelan held Max’s hand without remembering when he’d taken it. Maybe Max had taken his. He looked at their hands, Max’s bigger fingers entwined with his, and then at Max’s face again. “I’m not sure what to say.” This wasn’t supposed to happen between them.

“I love you,” Max said, as if he was working things out as he went. “Have for a long time. Like I would any close friend. I’d die for you. I guess I’d do that for a friend too. I can find you with your cock up some guy’s ass and not want to punch anyone, but I’ve been thinking about seeing for myself what that feels like. And what’s scaring the shit out of me is that sex with anyone else doesn’t matter, but with you it would. Total game changer. And I don’t know if I’ve got the guts to risk what we have when what we’ll have after might be a disaster.”

“Okay,” Kaelan said, swallowing down a lump of disappointment. “I mean, I get that.” He rubbed his thumb against Max’s knuckles.

Max waited. Max was good at waiting. “But?” he asked finally.

“I guess I can’t stop thinking about it. Once we figure out what the deal is with those memories, maybe things will go back to normal.” Part of Kaelan desperately wanted that. He glanced at Max’s palm, traced the deepest line that crossed it with a gentle fingertip.

“Yeah,” Max said after a long silence. “Maybe they will.”

“So we should probably work on that. Until we know if it happened, there’s no way to tell if this is real.” Kaelan knew he was doing what Max always told him not to do—namely, freaking out. “You’re supposed to be resting.”

“I know.”

“So rest.” Kaelan leaned down and kissed Max, telling himself it was definitely the last kiss until they found out what was going on with their memories. “I’m gonna go clean up. I’ll be back in fifteen minutes, tops. Do not get up. Do not pass Go. Do not collect two hundred dollars. Do I make myself clear?” He gave Max a stern look.

“Crystal.”

Bast was sitting on the kitchen table washing his face and paws, the food Kaelan had given him already consumed. It occurred to Kaelan that they were lucky the cat hadn’t walked through Max’s blood and made gory footprints all over the place.

The dish towels weren’t worth trying to save. Kaelan used them to wipe up as much of the blood as they’d absorb, then stuffed them into the trash. He cleaned the floor with the all-natural citrus cleanser he liked, even though he knew it would make Bast wrinkle up his nose and leave the room. It took almost a whole roll of paper towels, but once the floor and sink had been cleared of any traces of blood, Kaelan was able to take a deep breath again.

And start to shake.

Chapter Seven

With her casting complete, Jin smiled with satisfaction and turned away from the circle. Helios meowed and padded silently across the chalk outline on the floor, stepping over the chalk lines as if he didn’t want to disturb them. Not that it would matter now—the deed was done. Jin didn’t care if the cat rolled around in the chalk until his gray fur was striped with white. She’d succeeded, and that was all that mattered. By tomorrow, money would be practically falling from trees to line her path. She’d never want for anything again.

There was a creaking sound from somewhere down the hall. Jin ignored it and knelt to extinguish a candle, but even as her fingers stretched toward the small flicker, a sudden breeze swept into the room and did the job for her. Helios, pupils wide enough that his eyes were almost completely black, made a sharp yowl and bolted from the room. Jin could hear the scrabble of his claws on the linoleum as he fled through the kitchen and, no doubt, outside into the garden.

There was another sound. This one was like a chuckle, like rough nails on a blackboard, like the heavy breathing of a predator on the back of her neck. Jin’s stomach dropped out. Her throat was thick with terror. No. She hadn’t— It was too soon. Surely there was still—

But no.

The Netherhells didn’t care if she hadn’t been able to enjoy the spoils of her last spell; it only cared that her balance had been tipped, that her time was done.

[Excerpt from “Consequences,” a short story written by caster/author Silas K.]

“So I woke up, and everything made sense.” Max knew he was feverish, but there was no need for Kaelan to give him the kind of skeptical look people got when they announced they knew how to predict the winning lottery numbers. “Seriously. Well, okay, after breakfast some of the details were fuzzy, but even so.”

“I get that way when I’m just drunk enough. Sober up and it passes.”

Max’s sling made his arm itch and chafed his chest. Trying to get into a shirt would’ve hurt more, though, so he’d skipped that part of dressing. It was nine in the morning, and he’d already argued with Kaelan about moving upstairs to the couch instead of staying in bed, the absolute necessity of coffee, and, coming out of nowhere, which Toy Story movie was the saddest. He’d won the first, lost the second, and they’d agreed to disagree on the third.

If this was what happened to their normally smooth-running relationship when sex came within groping distance, no wonder they’d avoided it.

Max took a deep breath. “Get paper and a pen and write everything down that’s happened that’s at all funky and see if there’s a pattern.”

“I did that yesterday and didn’t find anything. With luck you’ll see something I didn’t. Or you could leave the chisel-and-stone-slab approach to the cavemen and ask the computer to do it,” Kaelan countered. “I need to get someone over to watch you while I look for Hopper. He still hasn’t called, and he isn’t responding to my texts.”

“Excuse me? Did you say watch me like I’m a toddler?” Max demanded, annoyance boiling up. “I’m running a temperature—which is perfectly normal, even a good thing—the pain’s manageable, and I’m fully mobile. Plus, I can reach you anytime I need, so you can forget a babysitter.”

Kaelan firmed up his lips and shook his head. “I’m not leaving you alone. What if the stitches split open?”

“I’ll call someone who doesn’t turn green at the sight of blood!”

Okay, that was possibly the nastiest he’d been to Kaelan, ever. He sucked.

“Yeah, okay. That’s fair,” Kaelan said, wilting. Usually when Max gave him a hard time, his eyes narrowed, and he gave as good as he got.

Max patted the couch. “C’mere.”

“No, you’re right. If you promise me you’ll take it easy and call me if anything goes wrong, I’ll go look for Hopper.”

“Kaelan, come here. Please.”

Reluctantly Kaelan came over and sat down next to him, careful not to bump him, even though he was on Max’s good side. Max put an arm around him and tugged him closer, blocking out the twinge in his injured shoulder.

“You should ignore me. I’m being an asshole.”

“No, you’re not,” Kaelan said.

Max snorted. “Yeah, I am. I don’t mean to be. And you were great yesterday. If you hadn’t gotten us out when you did, things could have been bad.”

“They were bad anyway.” Kaelan turned toward him, and Max studied the disturbingly perfect shape of his mouth, longing to kiss it. “We have to make a new rule. No getting hurt.”

It was hard to agree to an impossible rule, but at that moment Max felt bad enough about being a jerk to Kaelan that he would’ve agreed to anything. “Okay.”

“And I do have to go, but I won’t be long, I promise. Can you start the list yourself?”

“If the computer’s speaking to me, yeah. We were supposed to come up with a good name for her.”

“Name,” Kaelan muttered. He shrugged eloquently, a gesture Max wouldn’t be able to copy for a while. “I got nothing.”

“Seshat,” Max suggested, vague memories of a long-ago history class surfacing. “Ancient Egyptian goddess of wisdom and writing. Pretty much knew everything about everything.”

“If she likes it, sure.” Kaelan pulled a face. “Now you’ve got me calling it a her and talking about what she might like. How do you do that?”

“It’s my drop-of-water technique. Never fails.” Except when he’d tried for a puppy. To be fair, his parents wouldn’t have minded in theory, but his mother was allergic to dogs and cats and didn’t see why she should have to take antihistamines on a daily basis to indulge what had turned out to be a passing whim in any case.

“Be good,” Kaelan said sternly. “I’ll be back as soon as I can.”

“I’m going to be riding a desk for thirty minutes, tops. How much trouble can I get in doing that?”

“Tell that to the thirteen-year-old me who got caught surfing for porn,” Kaelan threw back over his shoulder as he left.

After grabbing the coffee Kaelan had refused to pour him, Max settled down to work. The computer considered the name he suggested for the space of time it took him to realize sitting at the computer desk hurt his shoulder a lot. He tried resting his arm on the desk, breaking out in a cold sweat as a spike of agony shot down to his fingertips.

IT WILL DO.

“You’re welcome.” Max eased back in the chair and sighed with relief as the pain ebbed. He tapped his finger against the mouse. “I can talk to you, but you don’t talk back. You could if you wanted to. All the spellware’s there.”

I’m aware.

This time, instead of words on the screen, the answer was delivered in a deep, booming voice. Max winced. “Lower, hon. I’m right here. And less baritone?”

Is this volume preferable?” Seshat asked, modulating the boom until she was speaking at a conversational level in a voice with an English accent for some reason. Max had heard many computer-generated voices, but they were recognizable as such. Seshat sounded like a real person until the lack of breathing and small hesitations registered.

“Perfect. Uh, why the Brit voice?”

The caster who invented the spellware that allows me to speak was English. She added in variants in every known language, but I like this one.

“Okay. I was shot last night—”

I’m aware.

That response was going to get irritating. “How?” As he spoke, he saw the red light on the webcam flash at him like a winking eye. “Oh. And you’re linked into the security system too, of course.”

It would be more accurate to say that I am the security system.

“Right.” Max was having a hard time figuring out where to start. Probably best to jump in and worry about the chronology later. “I want to make a list of all the things that have happened recently that are unusual, so we can see if and how they’re related.”

Essame Olvario visited yesterday evening,” Seshat stated. “This is an unusual occurrence. She has visited this residence only once before, on May—

“Okay, good, that’s great.” Max interrupted her, because if he had to listen to details like that, he was either going to fall asleep or stop paying attention. “The building’s shields came down a couple of nights ago. Is that something you’re aware of too?”

If it was possible for a computer to roll its eyes, Seshat would have rolled hers, he was sure of it. “Yes.

“Good. Make note of what night that was. And tell me what else you recognize as unusual.”

Seshat’s almost-human voice spoke again. “You received an electronic message from a former classmate informing you of the death of Wainwright Dougal.

Okay, that was a little creepy, to think that the computer was monitoring his e-mail, though it shouldn’t have come as a surprise.

You returned to the building with an extensive set of magically protected notes,” Seshat continued. “Scanning the notes, even with my enhanced equipment, would take approximately two days.

“Fantastic,” Max muttered. “I’ll get right on that.”

Would you like to begin now?” Seshat asked.

Max reminded himself that computers didn’t get sarcasm. “No. I want the big picture. We’re getting bogged down in details and sidetracked by events. Some of that’s probably life being annoying, but some of it feels deliberate. Someone’s throwing balls at us from every direction, and we’re too busy dodging them to see who’s behind the attack.” He took a sip of coffee, relishing the taste. Kaelan had wanted him to drink milk, for God’s sake. “I’m going to tell you everything that’s happened recently that’s vaguely suspicious, and I want you to compile a list and analyze it. Give me some probabilities. Hell, go wild and make some guesses. Give me everything you’ve got.”

I can speculate based on limited data, but the level of accuracy will be lowered, and some of my theories will appear improbable if I include them all.

“We can weed them out later.” Max tilted his head back and stared at the ceiling until he got a crick in his neck. Kaelan was great at neck massages, strong fingers easing away the tension like magic. Which it wasn’t.

Reluctantly, as if confessing, he led off with the big one. “Kaelan and I are remembering having sex with each other, but we don’t remember it. We’re not sure if it happened and we were hit with a memwipe, or if they’re false memories implanted to confuse us.”

Please provide all relevant details of event and setting.

“I knew you were going to say that,” Max muttered. He told her what they’d pieced together about the bed and the location, then waited for a response.

The event did not take place in this building.

“No.”

I cannot locate the building from what you have told me. I require more information.

Max closed his eyes. It was easier that way. “I’ll get Kaelan to add to this later.” And that’d teach him to withhold coffee from people. “I’ve had four solid flashes of the event. In one I’m on my back looking up at Kaelan as he, uh, enters me.”

What is behind him?

“Excuse me?”

Seshat’s voice held no impatience. “Can you see a wall or a ceiling?

Casters were trained to observe and had excellent memories. Those who didn’t pay attention or remember the correct way to draw a sigil tended to die young. Max brought the flash out of storage and let it be his reality.

Silk sheets slippery against his back and ass, holding himself open for Kaelan, his legs hooked over his arms, the spit-wet head of Kaelan’s cock nudging his hole. No lube. No condom. It hurt, that first push, but he wanted Kaelan so much he didn’t care, and Kaelan was being gentle, neck muscles corded with the effort not to shove deep, eyes dark with lust and tenderness…

“The surroundings,” Seshat prompted.

“I can’t see them. It’s all shadows. Big, though. When we said anything, it echoed.” Max was split, part of him back in that time, that place, part of him sitting at his desk, shoulder throbbing, the coffee turning to acid in his stomach. It was like walking two tightropes at once.

“Kaelan’s all I can see,” he continued.

Describe him.

“Huh? You think it wasn’t him?” And wasn’t that a punch to the gut?

It is a possibility.

“It was him. They could fool me when it comes to most people, but not Kaelan,” Max insisted. He needed to believe that. Kaelan’s expression as he breached the ring of muscle and slid in deeper, the flush on his face when Max had groaned with pleasure, the glint of metal as his necklace swung, catching the light…

“Necklace!” Max yelped and sat up with a jerk. “Seshat, you’re a genius!”

I’m aware.

“Please stop saying that. You know the necklace Kaelan used to wear? It was silver metal in a spiral design, a pendant on some kind of cord.”

Record of a conversation between you and Kaelan concerning a necklace that was a gift from someone named Myler. Myler is an unknown. He has not been present at this location.

Max wished Myler was an unknown, but it was reassuring to hear that Myler hadn’t been in the house. The necklace had been cheap and tacky, and once Kaelan had gotten Max to admit that, he’d continued to wear it to be annoying. But then one day it was gone. Kaelan had shrugged and said it must have fallen off, and Max had assumed he didn’t care enough to track it down. That had been ages ago. “Is there a record of a conversation about it being lost?”

Yes.”

“When was that?”

Four months, two weeks, and four days ago.

If Max hadn’t already been sitting down, he’d have needed to. “Four months?” They had sex more than four months ago, and they were only starting to remember it now? If his memory included the necklace, Max figured there was a minuscule chance it was an implant. That kind of detail would require someone who knew them, and he trusted the people who knew them that well.

Seshat repeated, “Four months, two weeks, and four days.

“Right. Wouldn’t want to forget those extra eighteen days.” Christ. They had been memwiped. Okay, Max. Focus. “So that’s three warehouses in the picture. The one where we met, the one where this sex apparently happened, and the one last night.”

Location of the warehouse at which you met?” Seshat asked.

It took Max a moment to remember. “East side. A few blocks from Dillon Stadium.” He’d have to look at a map to be more precise, but he didn’t think Seshat needed him to be.

There is a warehouse on Van Dyke Avenue that is owned by Leyden International,” the computer stated. She almost sounded proud of herself.

“Of course there is. Okay, check for other warehouses in the city that are also owned by Leyden.”

Max’s phone, which was sitting on the desk, buzzed, and he realized it was set to vibrate. He picked it up and read the text message that had come in from Kaelan.

Warehouse empty and locked up. You okay?

Max typed back, Fine. Resting. Don’t hang around. It’s asking for trouble. There was no way he was telling Kaelan via a text that they’d had sex and been memwiped.

Taking the car. I’ll let you know when I find Hopper.

Ditto if he comes here, Max texted back as Seshat spoke.

I have a list of all city properties owned by Leyden International and a list of all that are warehouses.

“Show them to me as points on a map, please.”

The yellow dots are the warehouses you visited, the red dots represent warehouses owned by Leyden, and the green dots are other types of property they own,” Seshat reported.

Max had planned to ask her to come up with a connection, but she didn’t need to. He saw it for himself—a seemingly meaningless scatter of dots, unless the map, in addition to showing streets, showed ley lines.

And this map did.

“Jannes is buying up property where ley lines intersect.”

Yes.

“The warehouse where we met and the one Hopper was living in—both at locus points?”

Yes.

Max smothered his impatience with Seshat’s flat agreement. Kaelan would’ve been pacing, gesturing wildly, speculating at the top of his voice. Max missed that mental stimulation. “I want to find the warehouse where we had sex. Get rid of everything but the warehouses at the cross lines. Cross-reference with our reports around four months ago. Find out which one it was.”

I can theorize it is this one,” Seshat said. One of the dots began to blink. “But I cannot confirm.

“Why not? We say where we’re going before we go; we complete a report when we return. What’s the problem? How many warehouses did we visit back then anyway?”

It is possible that the reports have been tampered with.

“What? That’s impossible! The place is shielded; you’re protected. No one but the two of us can access you.”

That fact went beyond passwords and security. When they’d installed the spellware, they’d linked it to their signatures. Seshat knew them. And she couldn’t be fooled into accepting an imposter.

Agreed. That means you or Kaelan was responsible for the tampering. Probability high that it was a suggestion implanted at the same time the memwipe was performed. Who better to destroy the records of the investigation that led you to that location than you?”

Outraged didn’t come close to describing his emotional state. “What else did they leave embedded in our heads? Are we going to decide to kill ourselves next Tuesday, or move to Hawaii and grow pineapples?”

A better location for the cultivation of pineapples would be—

“Never mind!” Max snapped.

Okay. The most logical conclusion was that Jannes, the man who owned Leyden International, was the mysterious J from Wainwright’s notes and was responsible for their memwipe. Even if Max couldn’t figure out all the connections yet, he had to assume they existed, waiting to be discovered. Had he and Kaelan known something about Jannes that made them dangerous to him? They sure as hell didn’t know it now.

He also had to assume that Jannes had something to do with Wainwright’s death. Jannes would’ve known Max and Wainwright were still in touch if he tapped into their phone records, but also known that they hadn’t met recently. There’d been a Christmas card from Wainwright the winter before, and Max had intended to send one in return, but he’d been busy trying to surprise Kaelan with a trip to New York City, and somehow time had gotten away from him.

Life was short, and then your friends died.

“What about that kid Darius?” he asked Seshat. “Hopper saw some police officers taking him away, but Kaelan said he wasn’t in custody at any of the local police stations.”

Confirmed. No one of that name or who fits his description is in custody.

“That sounds as if he was taken by fake cops. Is that a thing now? Fake cops?” Maybe it was, if you were someone like Jannes who owned a billion-dollar corporation. “Does Darius have some kind of record? Has he been in trouble?”

Seshat checked. “There is one boy with that name who has a police record. He has been truant from school forty-seven times, reported as a runaway eleven times, and picked up by police for petty theft three times, though no formal charges were made against him.

“Is he a caster?”

It wasn’t a question he expected Seshat to have the answer to, so he wasn’t surprised when she said, “Unknown.

“If he was, that could explain why someone would want to get their hands on him. Otherwise what is he? Just some kid living on the streets. Unless that’s why? Because no one would miss him?” Frustrated, Max finished his now cold coffee and set the mug down on the table with more force than necessary.

Bast jumped up on the desk, purring in a busy way as he waved his tail in front of Max. The interruption was stage one of a battle Bast always won. Usually Max picked him up and deposited him on the floor, and Bast jumped up again a moment later, the cycle repeating until Bast got bored. With only one arm, trying to pick up a large and heavy cat didn’t appeal. Max stroked Bast instead, petting him absently and being rewarded with an approving mew.

Connections sparked into life as Max ran his hand over glossy black fur. Bast. Bast had been at the warehouse too, destined to be sacrificed. And what had Kaelan said? He couldn’t remember the couple Max had been tracking—that was it—and Max’s memory was hazy on the details too, which was suspicious as hell.

Sacrifices, warehouses, locus points, and Darius. A kid young enough to be an innocent in one sense of the word—at least Max hoped so—whose death could boost any number of dark spells, increasing their power to the point where the caster would reap the benefit, if he didn’t mind paying the cost.

Shit.

“Seshat, call up a list of kids under eighteen who’ve been reported missing or found dead in the last, uh, two years. Cross-reference with the dates the properties on loci were acquired.”

It would’ve taken him hours to do that. Seshat had the answer before he’d finished texting Kaelan to come home as soon as possible.

Connection found. After discounting deaths with known causes unlikely to be related, there were five deaths, and two missing-persons reports still open. Impossible to ascertain when deaths occurred due to condition of bodies, but probability high that each occurred around the time of the purchase.

“He’s sealing the lines with blood,” Max said, a cold sickness rising to choke him. “Claiming his territory or building a power reservoir.”

For all he knew, there were even more deaths involved. People’s physical remains didn’t always survive when they were used in the darker forms of castings, especially if the spell was a powerful one. Enough homeless people lived in the city that dozens could have disappeared and never been reported as missing, because no one would miss them.

Swallowing hard, Max said, “Put the property purchases in chronological order.” He got up, wincing as his shoulder protested, and went into the nearest bathroom to splash cold water on his face. It was awkward washing one-handed, and he ended up with water on his chest and sling, but the sound of his phone alerting him of a text from Kaelan sent him back to the desk.

Found Hopper, his phone was dead. He and friends okay (no Darius though.) They’re going to keep looking for something of D’s. Headed home now.

Max spoke into the phone to send his reply, saving his shoulder the twinges caused by typing. Good. No hurry, but we need to talk when you get back.

U OK?

I’m fine. Just figuring out some stuff.

OK. Be there soon.

Task completed,” Seshat said.

“Show me. One by one, link them with a line,” Max said.

Seshat obliged, and Max drew in a slow, shuddering breath as a half-formed sigil appeared. Dougal had told him about blood sigils. It should’ve been on a winter night with a storm raging and lightning flashing to go with the horrors. Stepping out of Dougal’s office into a fresh May evening, lilacs scenting the air, birds chirping as they settled for the night, had been surreal. Max had come close to throwing up as he listened, tainted by association. He’d showered when he got back to his room, eyes open because the images in his head were too appalling to see painted across the darkness when he closed them.

The sigil was a line of pixels on a screen, unmoving, but it emanated evil even so.

“You recognize it?” Max asked.

It is an unknown sigil. Close to ones I can identify, and related to several known blood sigils, but not identical.

“And it looks incomplete. Can you predict how he’ll finish it? Where the other sacrifices will take place?”

Based on similar sigils, I can compute reasonable deductions.” Two more dots appeared, one and then another, but Seshat didn’t link them. Max appreciated a computer with a sense of self-preservation.

“Can you predict when they’ll happen?”

Based on the previous pattern, the next casting will take place sometime between seventeen hundred hours and tomorrow at oh two hundred hours.

Today?” Not that this should come as a surprise, considering they were pretty sure Darius was the next sacrifice, and Jannes wouldn’t have bothered to kidnap him weeks in advance.

Between today and tomorrow,” Seshat corrected him.

Almost afraid to ask, Max said, “And the one after that? The final one?”

“Depending on the exact time of tonight’s casting, between four and five days from now.”

“Shit.” Max would have guessed they’d have more time, but it made sense. Castings that were part of a larger, more complex ritual tended to ramp up in both power and frequency. “Okay. We can work with this. We’ll figure it out.” The first step was to find Darius. If they broke the cycle and stopped tonight’s casting before it was completed, Jannes’s whole plan would be fucked.

Max’s shoulder was hot around the wound; he needed ibuprofen. He took Wainwright’s notebook with him, went to get the pills, and settled himself on the couch upstairs to wait for Kaelan to get home. He’d highlighted half a dozen passages, using magic because damaging the book would have been a sin, by the time the back door opened and Kaelan came in.

“Still okay?” Kaelan called from near the door. Max didn’t think he’d had time to take his shoes off yet.

“Still got two arms, yeah.”

Kaelan came over to him, crouching to examine Max’s face. “You look flushed.”

If he did, part of the reason was Kaelan being close enough to kiss, but Max kept that to himself. Things were complicated enough as it was. “A little, but I took some painkillers. I can feel it healing.”

Casters healed fast but paid for it with higher than normal levels of pain as the body burned through a process in a matter of days that should’ve taken weeks. Max could block some of the discomfort, but that drained his resources, which led to the pain flooding back with him too tired to cope with it. No such thing as a free lunch was as true for a caster as anyone else.

“How did the research go?”

No sense in sugarcoating it. “Good in that I know more about what we’re up against, fucking awful because I know more about what we’re up against.”

“I’m sensing a theme.” Kaelan sat on the couch, tension sharpening his features so that his cheekbones stood out. Max didn’t like that look on him, but he was sure if he looked in a mirror, he’d see it echoed on his face. “Let’s move down to the office, and you can fill me in.”

It didn’t take long. Kaelan watched the sigil form as Seshat repeated the sequence for him, cursed the timeline they had to work with, then leaned back in his chair.

“So I go in and rescue Darius—”

“We,” Max corrected. “Save your breath for planning this with me, because I’m not staying home and twiddling my thumbs while you have all the fun.”

“You can’t twiddle your thumbs without whimpering like a baby, so what makes you think you’ll be anything but a liability?”

Max dealt out a slap to the back of Kaelan’s head. Delivered awkwardly and lacking force, yes, but it got the message over. “One, I’m bearing up with manly fortitude. Two, this isn’t fun; it’s work. And three, since when am I a liability when my shields have saved your buns from getting toasted on more occasions than I can count using both hands, both feet, and all my teeth?”

Kaelan looked momentarily outraged, but his expression turned to worried. Max preferred him outraged. “Look, I can’t go into this wondering if I’m going to turn around and find you lying on the ground covered in blood again,” he said as if he was being reasonable.

“You’re going to have to,” Max told him. “I’m not sitting on this couch for the rest of my life.”

“I know, but…” Kaelan bit his lower lip.

Max sighed. “What? Say it, whatever it is.”

“I don’t want anything to happen to you. That’s all.” Kaelan barely managed more than a whisper. He sounded like a kid anticipating being told that his birthday was canceled. And as soon as Max had that thought, he realized for all he knew Kaelan had had multiple birthdays canceled as a kid. And that he wanted to know everything Kaelan had gone through when he was younger, the good and the bad.

“Nothing’s going to happen to me.” Max reached out and tangled his fingers with Kaelan’s, then used the grip to tug Kaelan’s wheeled desk chair closer until it bumped into his. “I agreed to the new rule, right? No getting hurt. But that goes for you too. Or the deal’s off. Okay?”

Kaelan’s gaze was searching, his bottom lip reddened from where he’d bitten it. “Okay.” He tightened his grip and leaned in closer, close enough to kiss, though he didn’t make the final move and press his lips to Max’s.

“God,” Max murmured. “Do you have the slightest clue what you’re doing to me?”

“What?” Kaelan was looking at him without blinking, his gray-blue eyes wide and hopeful.

“You know,” Max told him and brushed his mouth over Kaelan’s. Light though the kiss was, if it even qualified as one, it made the throb in his shoulder fade to nothing, rising arousal wiping out every other sensation. His voice husky, he said, “Don’t pretend you don’t, because I’m not buying it. Tell me you’re not interested, and I’ll back the hell off, but let me be honest. Give me that much, at least. Don’t make me pretend I don’t want you.”

Kaelan swallowed. His lips parted, but instead of speaking, he exhaled shakily. The hand that wasn’t holding Max’s settled on Max’s knee and patted it. He nodded. “I want you too. And I want to know how you feel.” It was clear that the words were a struggle for him.

“Like I’ve been holding back the tide for five years and the water’s rushing in.” Max had never thought of himself as romantic, but Kaelan drew it out of him. Or he was feverish. “And the water’s warm, and I’m wondering why I wanted to hold it back in the first place, and I’m not sure where I’m going with this metaphor.”

“It’s okay. I get it.” Kaelan moved his hand, caressing Max’s thigh, his touch less cautious. “And because it’s us, we wait for a day when you’ve been shot and we’ve got a dark blood ritual to stop. Our timing sucks.”

“Yeah.” Max wanted that hand higher, wanted Kaelan not to use words like suck—which put vivid pictures in his head of Kaelan on his knees, mouth busy—and for Kaelan to be wearing fewer clothes. Make that none. He wasn’t going to get any of those wishes granted anytime soon, and he knew it.

And that really sucked.

Kaelan shivered and lifted Max’s hand to his mouth, kissing Max’s knuckles. “Okay. Let’s focus on work. Right? Because we have to. We’ve got to focus. Oh, fuck it.” And then his lips were on Max’s, parted, warm, fingers coming up to tangle in Max’s hair and direct a kiss that took Max’s breath away.

Max groaned and kissed Kaelan back like he’d never kissed anyone else before, ever. And he’d had more than his share of partners over the years. There’d always been part of him holding back, refusing to cross some undefinable line between lust and love.

Now that line was well and truly crossed.

“We’ve got to stop,” Kaelan muttered between kisses.

“Yeah,” Max said, his breathing ragged.

Kaelan cradled Max’s jaw in his capable hand. “Your shoulder, Max.”

“It’s fine.” It wasn’t; it hurt, but Max knew they’d have to stop soon either way, so he wasn’t going to admit to it yet.

“Yeah. Fine.” Kaelan shook his head. “You’re not fooling me.”

“Wasn’t trying to.” Reluctantly Max drew back. “Stop, before I get creative about ways we can take this further without me ruining the mood by whimpering for all the wrong reasons.”

“Creative sounds good.” Kaelan was flushed, eyes bright. Max had been this close to him many times before. Once they’d spent twenty minutes tied face-to-face, bound hands chained to a hook in the ceiling. They could’ve escaped, but they were eavesdropping on a conversation between a drug dealer and a crooked cop. It’d made a change to have a case that wasn’t caster related. They’d joked during and after, and Max, shivering because he’d gotten soaked to the skin after falling into the drug dealer’s swimming pool, had taken comfort in the warm press of Kaelan’s body against his.

That enforced intimacy didn’t compare to this. Kaelan was close, his familiar scent stirring Max in ways it never had before, exciting him. He wanted so much more than kisses, and he wasn’t going to get even those.

“We need to make some plans. Let Hopper know we’ve got everything under control.”

“He’ll want to come with us,” Kaelan said.

“No way is he getting within ten blocks of it.” Hopper wouldn’t have a caster’s reaction to the dark energies stirred up by the ritual, but he’d be affected by it in the same way infrasound made humans uneasy. They couldn’t hear it, but they were left agitated or scared.

“Darius is his friend, and Hopper feels responsible for him. Having a friend there might help. The kid doesn’t know us, after all. He might assume we’re working for Jannes and try to run away from us.”

“If we have to knock him out and shove him though a portal, we’ll do it and apologize later.”

“Max. I know Hopper. Trust me when I say if we tell him he can’t come, he’ll figure out a way to follow us and show up at the worst possible time anyway.”

Max considered this. “Even if the situation’s magic related? He seemed pretty pissed off.”

“Even so,” Kaelan said. “These kids, they’re loyal to each other. They stick together because they don’t have anyone else.”

“What about you?” Max asked. It wasn’t the time for this kind of discussion, but he wondered if Kaelan would answer. “Did you have friends like that?”

“No,” Kaelan said. “It was too complicated for me. I tried a couple of times, but people don’t always react well.” He looked up at Max with a half smile, an attempt to convince Max he was okay with it. “I didn’t have anyone until you.”

It was a lot of weight on Max’s metaphorical shoulders, but instead of making him feel put upon, it made him sit up a little bit straighter. Metaphorically.

“I sometimes think casters should only be with other casters when they want a real relationship,” he said.

“Didn’t work out too well the one time I tried it.” Kaelan grimaced.

“And I’ve never gotten that far,” Max said. “Not sure I ever wanted to. I guess we’ll find out if it makes a difference. I know when I kissed you, it felt…more.”

“More what?” Kaelan asked, sounding genuinely curious.

“More intense, more meaningful. Twenty times hotter.” Max held back from sharing with most people, but not Kaelan. Never Kaelan.

Kaelan sniffed. “That doesn’t have anything to do with me being a caster, numbskull. That’s because you were kissing me.”

“Kissing you and your gigantic ego.” Max nodded. “Well, I always enjoyed threesomes.”

“You have a lot to look forward to. My ego is incredibly talented in the sack,” Kaelan said.

They were slipping into meaningless-flirtation mode, which was comfortable and familiar but less honest than Max thought they ought to be, even if he was equally guilty. “I’m crazy about you,” he said. “You know that, right?”

“Yeah,” Kaelan said, and this time his smile was happy. “I do. Me too.”

The two of them stared at each other, wearing almost identical ridiculous grins, and then were interrupted by Bast jumping up onto Kaelan’s lap. “Nice timing, Bast,” Max said.

“It is.” Kaelan stroked the cat, which started purring. “Okay. Focus. We’ve got to be at this warehouse before five, right?”

Chapter Eight

Balefire as a method of torture is a well-documented use—some say abuse—of power, but there is one shining example of heroism connected with this advanced and risky casting. In the twelfth century, in possession of information that would save the lives of the inhabitants of a walled town under siege, a dying apprentice caster, without the knowledge of portals, encased himself in the living flames to arrest his death. He lay suffering for hours until discovered by his master, Harold. It is not known how Paul of Osbastone was able to conjure the balefire, a casting one would suppose was far beyond his abilities, but his sacrifice was not in vain. Ten thousand or more lives were saved. It is said Harold, grieving the loss of his apprentice, brought forth balefire again, this time to preserve the boy’s lifeless body, and laid it to rest, eternally preserved, in an underground cave he sealed so that none would ever disturb the boy’s rest.

[From Legends, Lore, and Fables by Ernest Salloway.]

Warehouses varied in size and what was stored inside, but they shared a common smell of dust and emptiness. They were noisy places in a sense, with each small sound magnified, but the vast space muffled the sound a moment after it was made.

Bottom line, Kaelan didn’t like them. Not much cover if you were trying to be stealthy, impossible to keep your clothes clean—he’d ruined more than one shirt with oil—and to seal the deal, someone had coerced him into having sex he didn’t remember with a man he loved in one. Kaelan held grudges. If Jannes was responsible, he was going to regret every single fucking casting he’d done, going back to his first lisped wish for Santa to bring him a sentient snowman.

They’d looked him up, going past the smooth prose of the press releases and digging into the dirt. Jannes had it all going for him when it came to looks. He claimed to be fifty, physically imposing without any attempt at elegance. His suits cost thousands, but he wore them casually enough that they never seemed to fit quite right, a subtle fuck-you that Kaelan would’ve admired in anyone else. Gray hair and darker gray eyes, a broken nose he’d never bothered to have fixed—he exuded a chilled-steel sexuality.

Jannes liked women. Liked to hurt them, anyway. The less reputable tabloids had run a few stories on his parties, but no charges had ever been brought by the women who crawled out of Jannes’s bed bruised and bleeding.

Even Seshat couldn’t find out where Jannes came from. A dozen countries were possibilities, but none had records of his birth. He was a US citizen now, whatever his origin. His power base at the age of twenty was too solid to be anything but rooted in magic.

He shouldn’t still be walking the planet,” Max had said, tension making his rich drawl brittle and sharp. “He should be in the Netherhells. Why isn’t he?

Kaelan had seen the list of crimes attributed to Jannes, and it was a long one, written in blood and tears. “Simple. He gets other people to do his dirty work. Notice how often he replaces staff and how they never go to work for anyone else, just vanish? They’re serving time for him.

No one would be that stupid.” Max was paler than usual, horror darkening his eyes. “Nothing Jannes did to them would be worth that.”

Sometimes Max showed a naïveté Kaelan had lost early on. “What makes you think they know they’re doing it?”

Coercion spells carry a huge debt with them,” Max had objected.

Yeah, but suggesting to someone that they do the coercion spell on someone else doesn’t. Remove yourself far enough, and not much dirt sticks.” Kaelan had shrugged. “Pretty fucking clever in a sick way. Bet there’ll be a special welcome wagon waiting for him when his ass finally gets to the Netherhells.

Now, he and Max crouched on an upper walkway with one of Max’s heavy-duty shields around them, Kaelan was repeating that sentiment to himself every few minutes. They’d been waiting for almost an hour in that spot, the location chosen so they could see several of the entryways as well as the largest available space where they anticipated any casting would take place. Hopper was behind them against the wall, with strict instructions that he wasn’t to move until one of them told him to get out, in which case he was to leave via an already agreed-upon route.

Unless they were dead and couldn’t tell him anything, but Kaelan wasn’t thinking about that possibility.

He couldn’t. When he did, he wanted to drag Max out of the building to some isolated location and stay there forever.

“You okay?” he asked Max in a whisper.

“I won’t be if you keep asking me,” Max whispered back. “Yes. I’m fine.” He did look better than he had even that morning; he’d stopped moving like a man anticipating pain.

Kaelan hadn’t read a tenth of the stuff about casting that Max had. Max was the academic, not him, so he didn’t understand the exact explanation for why casters healed from injuries and illness so fast. He didn’t need to understand. He was just grateful it was true.

The downside was that they seemed to get injured so often. Or maybe that wasn’t casters in general, but Max and him in particular. He ran his fingers over the faint white scars left by Bast’s claws five years before. They’d never faded the way other scars he’d picked up had, but he wondered if that was because he liked the reminder of how the three of them had met.

And that might be the reason for the rapid healing—a caster’s will driving the body to work more efficiently, the power of positive thinking taken to another level.

Beneath them, a door opened with a muted scrape, and Hopper drew in a quick, scared breath. Kaelan couldn’t reassure him with words or a touch, but he turned and flashed him a smile, relieved when Hopper returned it.

“Trent. Over there.” The voice that rang out was harsh as a north wind and familiar from the research they’d done. Jannes. Dressed in a gray suit, he should’ve looked out of place in the derelict space, but he carried himself with an arrogance that made his surroundings an irrelevance. “Keep it quiet until the lines are active and I can see where the blood needs to flow.”

He was talking to two men and a woman who’d followed him inside. The it was Darius, bound, gagged, blindfolded, and slung over the shoulder of the last person to enter, a burly guy with a bald head. The poor kid had to be terrified, but Kaelan couldn’t see any movement from him, so it was possible he was unconscious. That would make the ordeal easier, but Kaelan doubted Darius would be allowed to stay that way for long. Darius’s terror would add to the power gained by the ritual, but that wouldn’t be the reason they’d wake him. It would be for Jannes’s pleasure.

Kaelan bit his lip, another buried memory surfacing. He’d rolled over, Max’s hands caressing his back, and on the edge of his vision there’d been a man sitting in a chair.

Jannes had watched them fuck. Had he expected it to be rough, one of them or both unwilling? Hoped for a rape played out in front of him? They’d disappointed him, if so.

Trent dumped Darius beside a support beam and folded his arms across his chest, biceps bulging enough that the position didn’t look at all comfortable.

The woman and the other man, a redhead, were talking to each other in low voices, gesturing. Then the woman moved around the space with some spell components. She used a measuring tape to confirm her placements of candles. Kaelan refrained from rolling his eyes, because he was busy taking in everything, but it was tempting. Seriously? Jannes hadn’t been able to get enough experienced casters and had to make do with an amateur?

Max reached out and touched his hand; Kaelan turned his and squeezed Max’s. There was no way he was mentally listing all the ways this could go badly.

The red-haired man took out some chalk and sketched a few sigils on the floor. He paused and stepped back, looking at them as if double-checking his work, which was convenient because it let Max and Kaelan get a quick look at them, or at least at three of the four. Jannes moved over and gave the sigils a cursory glance, then nodded. He seemed the kind of guy who’d react violently to a poorly performed task, which could explained the way the man’s shoulders relaxed at the approval.

Trent was still guarding Darius’s unmoving form. Hopper was anxious but silent. Kaelan prayed he stayed that way.

“Maria,” Jannes said, his voice carrying. “Wake it up. Be gentle. Let it see us, but leave the gag on for now. I want to hear it scream, not chatter.”

Jannes was one coldhearted bastard, but Kaelan was past being shocked or disgusted. He loathed the man intensely, everything he was and everything he stood for. There was no room for more.

The woman nodded, blonde hair sleek to her head in a prim bun. She was in her midthirties, pretty without warmth and devoid of any sympathy for the child she slapped awake.

Darius jerked under the blow, a muffled sound escaping the gag. Maria slid his blindfold off and patted his cheek. With caster’s vision, Kaelan saw the print of her hand on Darius’s skin and the dull terror in the boy’s eyes. He hoped Hopper couldn’t.

“Wake up, street rat,” Maria crooned, her voice rich and mellow. That was all wrong, in Kaelan’s opinion. She didn’t deserve a voice like that. “Time to be useful for once in your life. To be part of something that matters.”

Darius shook his head, but the gesture lacked conviction. He’d given up fighting. What the hell had been done to him since he’d been taken?

“Andor? Don’t you want to say good-bye to your little friend?”

The redhead walked over, and Darius began to struggle, bound as he was, kicking out and catching Maria on the knee. She hissed with annoyance. “You don’t usually leave them this lively.”

Andor crouched beside Darius, fondling him with obscene intimacy, laughing when Darius keened and drew his knees up to avoid the groping hands.

Oh God. Jannes would’ve insisted Darius stay a virgin—more power that way from innocence destroyed—but there was so much that could be done without that line being crossed. Kaelan had been wrong: he could hate these people more than he did. He could hate them a lot more.

“No worries,” Andor said. He rested his hand on Darius’s throat, then slid it up to cup Darius’s chin. “There. Good boy. That’s right. Relax.”

Darius obeyed, the tension going out of him as if a button had been pushed. Kaelan couldn’t see the boy’s eyes, but he was sure if they were still open, they were glazed over and unfocused.

“I want to hear him scream,” Jannes repeated.

“Oh, don’t worry. He will,” Andor said. “He’ll scream plenty.”

“Good.” Jannes turned away as if his interest in Darius had fled, giving his attention to Maria again. She preened, and Kaelan began to understand how this worked. Jannes wasn’t just smart; he had charisma, and Kaelan was willing to bet his charisma was amplified by his magic. The man had a way of making people want to do his bidding, to impress him. It would explain why he didn’t seem to have any trouble finding people to act as his minions.

“Of course,” Maria said. Kaelan realized he hadn’t heard what Jannes had said to her. Shit, he had to pay attention, not get distracted by theories. “How long now?”

Jannes looked around, then checked his watch. “Three minutes. So we’d better be ready.”

Maria shot Trent and Andor an exasperated glance. “You heard him. Don’t stand there.”

Trent, who’d been doing that since he’d put Darius down, grabbed the boy and dragged him into the center of the casting space. Darius didn’t struggle at all, but slid across the floor and lay where he fell, limp as a rag doll.

“Party time,” Max said, low enough that Kaelan felt the words as much as heard them, sharing Max’s resolve to end this. This ritual and one more, and then what? Not knowing what Jannes had planned didn’t matter. They would derail his campaign here and now, and that was that.

It made sense to strip Jannes of his team and force him to get involved. The three underlings would be easy enough to neutralize, and then it would be two against one, something Kaelan had no problem with at all.

Andor first, for all sorts of excellent reasons. Kaelan gathered his will, a process so automatic now that it was hard to recall the hours he’d sweated to raise enough juice to light a match. Andor liked to touch, to hurt. Kaelan doused him in balefire—pale blue flames, coldly beautiful—and closed his ears to Andor’s high, panicked screams. The balefire didn’t consume what it burned, or at least not for a long time. Kaelan had once been shown a feather encased in it, every pinion intact after a century.

Andor ran at Maria. “Help me!”

She backed away, hands held up to ward him off, mouth working as she mumbled a casting to raise her shields. Good to know who your friends were, though balefire could only be extinguished by the caster who’d conjured it, so there was nothing she could do. Kaelan had no intention of dousing the flames until Darius was safe.

Maria’s shield went up in time to protect her from the attack Kaelan sent her way. It ricocheted off her shield and hit something to the left. The building shuddered under the force of the blow, and Kaelan realized he’d have to tweak his attacks if he didn’t want the whole place collapsing around them.

“Stay down,” Max hissed, which was stupid and worth ignoring on many levels.

“I can’t!” Kaelan needed to be up on his knees to see what he was doing.

He wondered what Maria would do if Jannes was the one under attack. Would she put herself at risk to protect him? Time to find out. Kaelan cast four spheres at Jannes in quick succession. He didn’t think they were going to do any real damage, but the spheres would distract Maria and help Max figure out the shields Jannes was using.

Maria looked at her boss, who seemed unfazed by Kaelan’s magic, and attacked. She was quick; Kaelan had to give her that. The crackle of magic she fired at them hit the metal walkway under them, and it sizzled, the smell of electricity sharp in the air, even though Max’s shield protected them.

“Not sure it’ll hold long if she keeps up with that,” Max said.

Around them, Jannes’s casting was rising, the power of it making Kaelan’s skin crawl. He risked a glance back at Hopper, whose expression betrayed his fear, and heard Jannes say, “Now!”

Kaelan looked below them at Trent, who had already dragged Darius to his feet by his hair. The boy was dangling limply, not kicking or fighting. Trent made it look easy; the guy was built like a brick shithouse. He held Darius as if the kid weighed nothing, and then lifted his other arm, brandishing a long knife.

“Shit,” Kaelan said to himself, and then, “Sorry,” to Max, who was going to kill him if they survived this, and opened a portal and rolled under the walkway railing into it.

If it had been a shorter distance, he would have jumped without a portal, but he didn’t have time. The building shuddered again as he came out the other end onto the floor. Someone was shouting. Kaelan brought his hand up to send a jolt of magic into Trent, to get him to drop the still-moving knife or Darius—either, both—and was hit in the face with a shocking gout of warm liquid that he realized too late was blood from Darius’s throat.

He blinked in horror, eyelashes sticky, for a split second.

From behind him he heard Hopper scream out, “No!’ the sound thin and high, whipped away in the wind rising from nowhere, sending dust swirling in a cloud around him. It stuck to the blood spattered on his face and filled his nostrils and eyes with grit. He choked, desperate for breath, and brought up a shield to place between him and the casting.

It didn’t work. The wind was a side effect of the ritual, unimportant, harmless, except he couldn’t fucking see.

You’re becoming tiresome.” The voice was in his head, the words piercing his skull. “Like ants that keep heading for the sugar bowl. I let you live last time because it amused me to play with you, and the memwipe took care of what you’d seen, but here you are again.

“Not gonna stop,” Kaelan gritted out. Where was Max? Was Hopper safe? He had to buy time for Max to open a portal and take Hopper away from here, but Jannes was in his head, and that was so wrong they needed to invent a new word to describe it. “Better believe it.”

Oh, I do. What I don’t believe in is stupidity, and leaving you alive would be stupid. So now I have to decide how to kill you.

Jannes wanted them dead? Then why were they still breathing? The threat was a lie or a bluff, had to be. Jannes might want them dead, but he needed them alive. That was a scary thought.

“No! You can’t kill him!” The wind died down, and Kaelan could see again—through tear-blurred eyes, yes, but it was better than nothing. Andor was on the floor, writhing in the balefire, batting at himself, futilely attempting to quench the flames in a grotesque version of stop, drop, and roll. “Jannes, please. I need him to put out the fire. Please!”

The words were shrieked out, despair lending them volume.

Jannes stood a few yards away, smiling appreciatively at Andor. “Why did I never see the decorative possibilities of balefire?” he mused. “I’d have to seal your lips and fuse your feet to a pedestal of some sort, but you’d make a delightful addition to my study until you starved to death.”

Andor didn’t scream; he moaned, a helpless, garbled sound that was barely human. Kaelan couldn’t let Andor face that future and be able to sleep at night without nightmares. With a silent wish that this didn’t darken his aura too much, he doused the balefire and gave Andor the mercy of a pain-free breath before snapping his neck with a tendril of power wrapped around his throat, then drawn tight. The sound the bones made as they cracked twisted Kaelan’s gut, but he kept his expression blank.

“Well, you’re no fun,” Jannes said pleasantly. “And you just volunteered to take his place. Maybe with your partner in the other corner. Would it be more amusing if you could see each other or not? Something to consider.”

“You’re not gonna have time to think,” Kaelan said. It was a risk, and a big one, but he had to do it. He threw everything he had at Jannes, praying that Max and Hopper had gotten out of the building so if the whole thing gave way, they’d be safe.

Jannes lifted a hand as if Kaelan’s attack was nothing, and the surge of magic parted like the Red Sea, passing harmlessly to either side of him, absorbed by the power of the casting that hadn’t been completed yet. The walls of the warehouse trembled, and some more dust rose to join what was already swirling around. Jannes flicked his hand, waving away a tiny, annoying insect, and Kaelan found himself spinning through the air and crashing into something hard with bruising force.

He lifted his head, blinking to clear his eyes again. Trent was holding Darius’s lifeless body. Darius was dead, but blood was still flowing, and the spell wouldn’t be complete until most of it had dripped down onto the faintly illuminated floor. There might be time to stop this—not much, but a little.

Another fireball from somewhere above told Kaelan that Max hadn’t left. Jannes dispersed Max’s attack as easily as he’d dispersed Kaelan’s. “Make sure they don’t cause any more trouble,” he told Maria, and she started toward Kaelan with her hands raised.

Kaelan glanced up at the walkway. He couldn’t see Max or Hopper, but a heavy piece of equipment was next to the edge, shorter than the railing above it. He wasn’t out of power, not even close; a fast burst of energy shoved the equipment. He hadn’t realized it was bolted to the walkway, but it turned out that didn’t matter, because the bolts sheared, and it plunged over the edge.

In a perfect world it would have landed on Maria and flattened her. Instead, because Kaelan’s world was never perfect, it clipped her before smashing into the floor. For a second, Kaelan thought he was screwed, but then Maria started screaming and bleeding.

She’d live, but for now she was sidelined. Trent was occupied too, but once the last drops of Darius’s blood fell, that would change. Kaelan was convinced that strong though Jannes was, his weakness was his reluctance to darken his aura by taking direct action. Trent had been the one to slash Darius’s throat, Andor the one who’d made the child’s final hours on earth a lesson in cruelty.

Trent shook Darius. “Bleed, little rat,” he said, his voice a deep rumble, and the last drops fell.

Kaelan watched them. In a movie, this would’ve been the perfect time for a slow-motion shot, artistic splashes of fake blood, the music hushed to heighten the drama. In reality, the blood fell like everything else on the planet, thirty-two feet per second, per second. Darius’s blood had so short a distance to fall that the droplets struck the floor before Kaelan blinked.

And Darius’s spirit, the spark that animated him, all that he was and could have been, was extinguished. If it was rekindled somewhere else, Kaelan didn’t know. The rules might be the same for humans and casters, or they might be different, but in common with every other person on the planet, Kaelan didn’t have the answers. The Netherhells existed, yes, but they weren’t where dead casters went. The Netherhells were for the ones who’d done too much for the world to tolerate them any longer. They went there alive, and they suffered for eternity.

He was never sure if it was that contemptuous shake or the chuckle Trent gave that sealed the man’s fate. Perhaps it had been too late the instant the blade sliced deep.

Whatever the reason, there was a horrible screeching noise that made Kaelan wince as a dark, shadowed crack, illuminated from below by a flicker of red-hot light, opened along the floor near Trent’s feet. The sigils flashed, and the floor shook underneath them. Jannes’s casting was complete, his eyes glowing with fresh power and satisfaction. The demons slipping from the depths didn’t care about the spell; they were intent on their target, on Trent and the fact that his time was up.

They had no substance. They were wisps of smoke yet opaque, a contradiction unto themselves. Everything about them was wrong—not evil, because when it came right down to it, they were nothing. They were karma personified, the universe’s answer to the bad things that casters were capable of, and there was no way for Trent to escape them.

As soon as the first one curled itself around Trent’s ankle, he screamed. Kaelan had seen someone pulled to the Netherhells before, twice, and they’d both screamed too, the kind of screams that lingered at the corners of his memory and occasionally slipped into his nightmares. There was no fighting them, but that didn’t stop Trent from trying. He dropped Darius’s body, took a few staggering steps, then fell hard to the floor. The demons were on him in an instant, twisted around him like snakes and melding into one another until they obscured him. Still he screamed and fought.

Kaelan looked away and saw Jannes’s face, alight with sick arousal, no sympathy showing, even though he was partially responsible for Trent’s fate. Loyalty between employer and employee obviously went one way.

With Jannes distracted and standing alone, it was a good time to launch a fresh attack. Kaelan drew his will together, then sensed a portal opening behind him and someone emerging and another portal forming to the side. God, had Jannes summoned reinforcements at some point? He didn’t have time to turn before hands grabbed his shoulders, a familiar voice said his name, and Max pushed him into the newly formed portal.

They exited the portal in one of their prearranged safe places—a stretch of rough ground in the Joshua Tree National Park. They’d scouted it out before memorizing the coordinates; it was within an hour’s walking distance of a road in case their power was too drained to allow for opening a portal home, and they’d buried food, water, and medical supplies in a cache only a caster could find. If someone was around, the portal automatically bounced them to the next location. They had locations all over the world as a safeguard, but Kaelan had never expected to use them. They’d been Max’s idea, and Kaelan had gone along with it because he was intrigued by the mechanics of setting up the complex casting.

“Hopper?” he asked, and that was the only word he got out before Max hit him, fist smashing into his jaw with a solid crunch. He stumbled, not registering the pain. In its place was anger, directed inward, not at Max. He swallowed it down and looked at Max, who glared back at him, breathing heavily, flushed. “Are you okay?”

“Am I okay?” Max threw his hands up and dropped them again. “Other than wanting to beat you to a bloody pulp for being so reckless and risking your life the way you did? Sure! I’m fine! I’m awesome!”

“Good,” Kaelan said faintly. The edges of his vision were going dark, and sitting down was inevitable whether he wanted to or not. He was sticky with Darius’s blood, and the smell of it was making him feel sick. “Because I think I’m going to pass out.”

Max grabbed him and eased him down to sit on the ground. He’d never been so grateful for dirt under his ass and Max’s arm around his shoulders.

“Sorry,” he gasped, leaning against Max’s collarbone and breathing him in. “I’m sorry. He was so fucking strong. How does anyone get that powerful? Know so much? He’s twenty years older than us; when has he had the time?” He was apologizing for more than worrying Max. For doing what he knew Max wouldn’t want him to, because he’d had no fucking choice. For being too late to save Darius. For getting blood all over Max’s shirt.

“Kaelan.” Max’s voice cracked on the word, brittle as dry wood. Then words lost their power, and it was the two of them clinging to each other, Kaelan lost in sorrow and guilt.

Because no matter how often Max told Kaelan it wasn’t his fault—and Kaelan knew when Max was capable of talking again, that was the first thing he’d say—Kaelan was never going to believe it.

It was his fault. All of it.