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.

Chapter Text

Chapter Nine

Eight place settings in the Denby Amethyst pattern

Set of Le Creuset pans in Caribbean

One ceremonial athame (seven inches)

Eight sets of the Dansk Classic Fjord five-piece place setting

A dozen beeswax pillar candles, unscented

West Bend egg and muffin toaster

Black scrying mirror (with stand)

Large copper cauldron (with lid)

Bath mat (memory foam, beige)

[Part of wedding wish list for the future Mr. and Mrs. Timothy Standish.]

By the time they got home, Max was more worried about Kaelan’s mental state than his physical one. Nothing Max said seemed to be getting through to him.

An anxious Hopper was waiting for them. He was pale, and his face was streaked with tears. “Where were you? I was starting to think you weren’t coming back.”

That was a horrible thought, and one Max hadn’t been able to spare any attention for when he’d opened a portal home and shoved Hopper into it. “Wait for us!” he’d shouted, knowing nothing would protect the boy from Jannes if the man decided to go after him, but hoping for the best. “Here we are. You okay?”

Hopper looked on the verge of tears again. “Darius is dead.”

“I know,” Kaelan said. “I’m sorry.”

“It wasn’t your fault,” Max said again.

Kaelan didn’t argue with him; it was as if he didn’t hear what Max was saying. “Are you hungry? I can get you something to eat.” He started to move away from Max, but Max tightened his grip on Kaelan’s shirt and stopped him.

“Hey. Slow down. We need to shower. We’re a walking health hazard. Hopper knows where the food is if he’s hungry, right, kid?”

He’d never known Hopper not to be hungry, but the boy screwed up his face. “I don’t want anything. I want a do-over. Can you make that happen? Time travel?”

Reminding himself that from Hopper’s perspective it wasn’t a stupid question, Max shook his head. “No. We can do a lot of stuff, but not that. And if we could, we wouldn’t. It’d screw with things in ways you can’t imagine. Trust me, not a good idea.”

“Getting Darius back isn’t a good idea?” Hopper shoved Max in the chest, face contorted with anger. The blow jarred his injured shoulder, but Max held his ground. Hopper pointed at Kaelan. “You’d do it for him.

“No, he wouldn’t, because we can’t.”

The weariness in Kaelan’s voice echoed the fatigue dragging at Max. Too much casting, too much horror. He needed space to recuperate, and it wasn’t likely he’d get it, so he’d settle for a shower.

“You two are so full of shit!” Hopper headed for the door, but Max wasn’t going to let him leave. He closed it with the last flicker of power he had left and waited for Hopper to accept that no matter how hard he tugged, the door wouldn’t open. “You can’t keep me here!”

“You’re not safe out there,” Max told him. “You saw what we’re up against. Jannes would torture you for kicks, and we—”

“Won’t let that happen?” Hopper sneered at him, the frightened child he still was showing beneath the bravado. “Yeah, the same way you kept Darius safe.”

“Leave him alone!” Kaelan put himself between Max and Hopper as if blocking the way would cut the rising tension. “That was my fault, not his. This isn’t how we wanted it to go down. We did everything possible, and it wasn’t enough. But this isn’t over. We’ve got one more chance to stop him, and if you want in on that, you need to get your emotions focused on the real enemy, and he’s not in this room.”

“Yeah? You sure?” Hopper asked, jerking his chin defiantly. “Because explain why that bitch at the warehouse came by to visit you one night and walked right on in like she owned the place. Thought only people you trusted could get past your security system?”

“Shields, not a system,” Max said. Hopper had to be mistaken. “And no one can get past them.”

“She did. I was hanging out across the street, waiting for a friend, and she waltzed right upstairs and in here when you guys weren’t home. Which I already knew, since I knocked ten minutes before. At the time I figured she was some girlfriend of yours. Now I know better.”

Kaelan looked as puzzled as Max felt. “It was that woman Maria? Hopper, are you sure?”

“You think I’d forget what she looked like?”

“And you’re sure she was in the apartment? She didn’t come upstairs and knock, then leave again?”

Hopper rolled his eyes, though it seemed exhaustion was replacing his anger. “She was up here too long. I’m pretty sure I saw her turning lights on and off.”

“That’s not possible,” Max said. “There’s no way she could have gotten in here with the shields up.”

“Unless it was that night I fucked up and took them down when I portaled,” Kaelan said. “The whole place was unprotected for a few hours.”

“Shit.” Max tried to make sense of it all. “If someone made a note to watch for any times the shields went down, then took advantage and slipped in here, they could have done anything.” Seshat should have told them, but there had to be an explanation for the missing record. “You’re sure?” he asked Hopper.

“If you ask me that again, I’m going to punch you,” Hopper said. “I’m not talking about this anymore tonight. I can’t.”

“Okay.” Kaelan sounded so understanding that Max wanted to hug him. “I’ll get you some blankets and a pillow while Max deals with the computer.”

Max knew an order when he heard one. He went to the office and sat heavily in his desk chair. A little bit longer and then they’d crash. If Kaelan could keep upright and moving, so could he.

“Seshat, if the shields were down, could someone shielded come into the apartment without you sensing it?”

Confirmed,” Seshat said.

Shit. It had never occurred to him that that would be an issue, but then again, as far as he knew, the shields hadn’t been down before for more than a few minutes. “Can you scan for anything unusual that might have happened the night the shields were down?”

Scanning.” A moment later, Seshat said, “The shields were down for one hundred and twelve minutes.

That was not helpful at all. “Okay.” Max tried to think but was interrupted by Kaelan’s appearance in the doorway. Kaelan had given his face a cursory wash but not changed clothes. Dried blood patterned his neck, a grotesque reminder of what they’d gone through.

“Anything?”

Max shook his head. “Not so far.” He tilted his head back, staring at the ceiling in his favorite thinking pose. His brother had always joked that it made the ideas float to the top back when they were still close.

Someone had come into their home. Why? Three immediate reasons came to mind: to look around, to take something, or to leave something. If it was the first, well, job done, and nothing they could do about it. Jannes knew how the building was laid out and potential points of access. Depending on how thorough Maria had been, he might also know Max and Kaelan slept apart.

If theft had been the objective, it would’ve been something important and valuable from Jannes’s perspective. Since nothing was missing, he jumped to the third possibility.

Now what would a power-hungry, sadistic caster leave in the home of two men he considered annoying but not a serious threat?

A bomb? Possible. A bug? Way more likely. Kaelan had shared his suspicion that Jannes had watched while Max and Kaelan had sex. Jannes was a voyeur, getting off on seeing others suffer or dance to his tune. But he was also a man who knew the value of information, and what better way to keep track of them than to plant a bug or a camera? It wouldn’t be magical in nature; Max and Kaelan would’ve sensed it—a mosquito whine, an irritating itch. No, just a straightforward, mundane electronic spy.

And more than one. Definitely in the office where they were, almost certainly in their bedrooms and the family room.

And he couldn’t tell Kaelan his suspicions without alerting Jannes, so they needed to go somewhere safe.

“You need to shower, and so do I,” he announced, getting out of his chair. “Come on.”

“I washed already,” Kaelan said, flashing him a puzzled look. “Listen, I had an idea about what we should do next.”

“Lover, you’ve got blood all over you, and a shower will relax you.” Max made his voice persuasive, suggestive, ignoring Kaelan’s raised eyebrows at the endearment. “It’s been a hell of a day. Let’s unwind first, then get down to business. Stop brooding about the kid. You did your best, so put it behind you.” Kaelan stiffened, mouth opening to speak, so Max hurried on. He didn’t dare wink or pull a meaningful face until he knew where the cameras were. “Come on, baby. I’m so wound up after the fight I’ll never sleep unless you get me off, and you can’t tell me you don’t feel the same way.”

For at least ten seconds, Kaelan looked at him, studying him as if trying to see inside Max’s head. Then he said, “Okay. Let’s go.”

Neither spoke as they walked to the nearest bathroom. Max was aware of Kaelan’s gaze on him and wished, not for the first time, that psychic communication was one of their talents. “Here,” he said as Kaelan turned to shut the door. “Let me help you get your shirt off. You must be sore.”

Kaelan lifted his arms cooperatively. Max winced when he saw the bruising on Kaelan’s back, then brushed his fingertips over it too lightly to hurt. “How’s it look?” Kaelan asked.

“Not good.” Max bent and kissed Kaelan’s shoulder. Kaelan shivered.

They got the shower running and the rest of their clothes off, Kaelan helping Max by untaping the bandage on his shoulder. The wound was more than half-healed, the skin knitted back together, but the scar tissue bright pink and sensitive.

Max had seen Kaelan naked hundreds of times, but this was different, the sight charged with eroticism. He waited until the hot water was raining down around them to move in close and murmur in Kaelan’s ear, “I think the house is bugged.”

Kaelan leaned back and looked at him, eyes wide, but Max pulled him close again.

“There might be cameras in here. Play along, okay?” Kaelan blinked deliberately in answer, and in a normal tone of voice, Max said, “See, baby? I told you this would feel good.”

“Yeah, it does, but I’m so tired.” Kaelan let his head fall onto Max’s shoulder, providing cover for their conversation. “Did you see one?” he murmured, turning his head.

“Theory, not certainty, but why else come here?”

Kaelan nodded, the movement of his head causing his mouth to brush against Max’s neck. It felt like a kiss. Hell, it was a kiss. Kaelan allowed his lips to linger and press again, sending tingles through Max.

“Need to let them stay but neutralize them,” Max said.

“You have the best ideas,” Kaelan told him and sucked Max’s earlobe, teasing it with his teeth. “There can’t be one in every room. She didn’t have time. Sound of the water and the humidity would compromise it in here. He doesn’t want to blackmail us, so he’d concentrate on places where we’d be talking.” He spoke quickly, cramming a lot of words into a short amount of time.

“Gets off on watching, though,” Max said. He slid his hand into the wet tangle of Kaelan’s hair, angling their heads because he needed Kaelan’s mouth on his with a desperation that shook him.

The shower was a walk-in, designed for two, though Max had never shared it with a casual lover. Washing each other would’ve been intimate as well as arousing, and that was a line he’d preferred not to cross. He liked luxury where it counted, and he enjoyed long baths and sybaritic showers, so he’d gone all out in the bathroom remodel. Rainwater overhead jets, powerful side jets to massage aching backs, a seat running along one wall where he relaxed, letting the water fall soft and light on him, less to clean and more to pamper.

Unfortunately the clear glass walls provided no cover at all. If Jannes saw them kissing, he could also see Kaelan, naked, glistening with water. With a growl he hoped sounded aroused, not protective, Max turned them as they kissed, pushing Kaelan against the wall, hiding him with his body.

Kaelan groaned in a way that made Max even harder than he already was, then asked, “What if Hopper isn’t asleep?” His voice was loud enough to be overheard, and Max had a flash of understanding and admiration. Smart Kaelan.

“Yeah, you like to make noise, don’t you? I’m gonna fuck you so good,” Max said. “That’s what cloaks are for, baby. Privacy.”

He might not have enough energy left for anything big, but he had plenty for a nice, solid cloak that would render them invisible and unable to be overheard. A quick casting and they were covered.

“I’m so glad you’re on my side,” he told Kaelan, lifting his face and kissing him again.

“You have no idea,” Kaelan said, rather nonsensically. He was hard too, against Max’s thigh. “Once we get out of here, I’ll find the bugs, and you can put some kind of filter on them so he sees random shit, nothing important?”

“Right.” Max would have agreed to anything as long as it didn’t deny him access to Kaelan’s slick, warm skin and willing mouth. “How many do you think there are?”

Kaelan gasped and tilted his head so Max could suck at the tender spot between his neck and shoulder. “Oh my God. Yeah, do that. God.” He trembled. “Three or four?”

“Yeah.” Max was sliding his hands all over Kaelan, touching parts of him he’d never touched before. Kaelan’s nipples were small and tight with arousal. “I meant what I said before.”

“Hmm?” Kaelan threaded his fingers through Max’s wet hair and kissed him more thoroughly for so long that Max almost forgot what he’d been about to say.

Not completely, though. “I want to fuck you. Want to hear you when you come.”

Kaelan grunted an agreement, clinging to him, hand sliding down Max’s back to the curve of his ass.

“Tell me you want it too.” He would get on his knees and beg if Kaelan asked. Hell, getting on his knees sounded like a wonderful idea, given that it’d let him get his mouth on the hard, sweet jut of Kaelan’s cock, but Max resisted the temptation. This would change everything irrevocably, and though they’d discussed it, talking wasn’t the same as doing. He had to be sure they were both ready.

“Want it. Want you.” Kaelan’s gaze held his, the water droplets running down his face like tears, but he didn’t look unhappy. Eager, imploring, yes. “I want you, Max.”

Hearing it sent a jolt of pleasure through Max strong enough that if he’d been inside Kaelan, he would’ve come from it. He exhaled, his cock hardening, balls drawing up tight. Kaelan’s words had sluiced away his exhaustion and sorrow as effectively as the water raining down had cleaned his body. “Want you too.”

He palmed Kaelan’s cock, learning its shape again, enjoying the way the water made it slippery, allowing his hand to slide against it. With a groan of pure anticipation, he went to his knees, then nuzzled into the soaked thatch of dark hair surrounding Kaelan’s cock, breathing in a faint trace of Kaelan’s scent.

“Max,” Kaelan murmured. “God, I’m gonna come as soon as you touch me again.”

“Yeah?” Max licked one of Kaelan’s balls, a flicker of his tongue, and watched as the hand at Kaelan’s side clenched into a fist. “Hey. Don’t waste your hands over there. Put them on me.” He didn’t care if Kaelan pulled his hair or left clutch-mark bruises on his shoulders—well, maybe not the injured shoulder.

One of Kaelan’s hands tucked Max’s hair back behind his ear. The other came to rest lightly on his good shoulder as Kaelan’s blue eyes, dark now, looked down at him. “Dreamed about this. Didn’t think it would ever happen.”

It already had, but that was a small part of why Max wanted to do it now—to cover that night up with something real that they chose to do. “Here it is,” he said and leaned in. He ran his tongue up the length of Kaelan’s cock, steadied it by gripping the base, and took the head into his mouth. Kaelan’s fingers tightened in his hair.

Kaelan’s dick didn’t taste like much besides water, but it was perfect. Big enough to stretch Max’s lips, long enough so the tip bumped the back of his throat when he took it all the way in. It was hard as hell, the skin over it soft like velvet. “I’m gonna come,” Kaelan said, trembling.

Taking his mouth away to reply would’ve killed Max, so he answered by redoubling his efforts, urging Kaelan toward a quick, intense climax with a swirl of his tongue over the rigid shaft. Kaelan needed to forget everything that had gone wrong, if only for a few moments, and nothing wiped out thought like a bone-melting orgasm.

He cupped Kaelan’s ass, urging Kaelan to pump into his throat. He could take it. He didn’t know what Kaelan got off on when it came to sex; they’d been relaxed around each other’s partners and shared a few stories, but the balancing act of staying friends, nothing more, had made it a subject best avoided.

Max liked extremes—hours spent making love until a thousand kisses had bruised his lips and his cock was waving a flag of surrender, or the searing heat of a wall-slam fuck, lust clawing at him.

This was new. Fast but tender, Kaelan falling apart, barely able to stand as he came, spunk filling Max’s mouth, thick and rich, coating his tongue. Max swallowed, then sucked Kaelan through the last of his release. Max’s erection brushed against Kaelan’s softening one as he stood and slid an arm around Kaelan’s waist. “Okay?” he asked, and Kaelan nodded.

“Amazing.” Kaelan’s hands were still impatient, eager everywhere they touched Max, from his chest to his belly to his desperate, aching cock. “What about this?”

“What about it?” Max wanted to sound light and flirtatious, but he groaned and dropped his head onto Kaelan’s shoulder when Kaelan squeezed him. “If you’re asking if I still want to fuck you, the answer’s yes. Please.” He pressed Kaelan against the wall of the shower again, grateful for the tankless water heater he’d had installed a few years back when it had become clear Kaelan took the world’s longest showers, and kissed him half a dozen times, imagining being inside him. “What about you?”

“You’re crazy,” Kaelan told him with affection. “Does this feel like I changed my mind?” He guided Max’s hand to his cock, which was already half-hard again. “Lube?”

Max rubbed himself against Kaelan’s hip and fumbled for the small bottle that was tucked behind the shampoo and conditioner. “Here. Can I?”

“Stop asking,” Kaelan said. “It’s you. The answer’s yes, okay? There’s nothing you could ask me to do and I wouldn’t say yes.”

A shiver went through Max, cooling his ardor. Premonitions weren’t possible in a chaotic universe, and he didn’t believe in them, but he was hit by a confused vision of Kaelan saying those words, tears in his eyes, blood on his face again. It hadn’t happened yet, so either he was out of his head with tiredness, or it would happen in the future.

He’d take option one, thank you very much.

Forcing a smile, he said, “Don’t complain when I pull out the handcuffs.”

Kaelan arched his eyebrows. “And where are you hiding them, Mr. I-Keep-Lube-in-My-Shower? Because if they’re in here, they’ll get rusty.”

“I know you’ve got lube in your shower too, because I’ve seen it when I went looking for my shower gel.” So easy to find refuge in their usual banter. “And fine, no more asking you anything. I’ll tell you instead.” He steadied his voice. He’d never been this turned on in his life, ever. With deliberation that took everything he had, he flipped the lid on the lube and squeezed some out, letting it drip off his fingers. “I’m going to fuck you, Kaelan. Slide into you hard and fast until you come again, all over the goddamned glass. If you want it any other way, you’re out of luck. I need you.”

Kaelan’s breath hitched, eyes still shadowed with tiredness, but clear of the haunted guilt that made Max’s heart ache for him. Without a word, face flushed, he turned, bracing his hands against the glass, ass out, legs spread. Offering himself.

The glass could take it; Max had made sure of it when he ordered the shower. He wasn’t sure he could. That was one hell of a view.

As eager as he was, he had to pause and run a hand down along Kaelan’s side to his outer thigh. He would have followed the path of Kaelan’s spine, but the bruising there had to be sore, and the only thing he wanted to give Kaelan tonight was pleasure. He kissed the back of Kaelan’s shoulder, using two fingers to open him up.

Kaelan moaned appreciatively and shifted to get Max’s fingers deeper. “Oh fuck, that’s good. Don’t tease me.”

“I won’t.” There would be times he’d enjoy teasing Kaelan, making him beg and sob on the edge of release for ages, but tonight wasn’t one of them. Tonight Max wanted to be inside Kaelan, closer than they’d ever been. He wondered if he’d had these same thoughts before, the other time they’d done this, but he silenced that thought by replacing his fingers with the head of his cock and pushing into Kaelan’s ass.

“Max. Max.” Kaelan’s head was down, forehead pressed against the wall, and his hands were claws as Max entered him.

In his head, Max was repeating Kaelan’s name, but his lips were still. He held on to his control by a thread, all his nerve endings on fire as he eased into the tight clench of Kaelan’s body, slick and hot, and oh fuck, this was going to be over a lot sooner than he wanted it to be. There was wham-bam and there was embarrassingly soon, but sex had never felt this good. It was as if he were experiencing what it was like for Kaelan as well as for himself, the sensations shared, not separate.

He thrust, riding the slip-slide of lube to get deeper, Kaelan doing all he could to make it easy.

“Harder,” Kaelan choked out. “Make me feel it. Make me forget.”

There was no fucking way Max was punishing Kaelan with a brutal hammering for what had gone down in the warehouse. He wanted to make Kaelan forget it, if briefly, but not through pain. Biting back on another useless reassurance Kaelan wouldn’t accept as truth, Max made his next stroke slower, deeper. The water was a distraction; he reached out and turned it off, the sudden silence a shock. Into the quiet, moisture-laden air came the sound of Kaelan’s breathing, labored, ragged.

Max bent over, kissed Kaelan’s shoulder, and pulled back. Slow and deep seemed to work for both of them, allowing him to keep from climaxing and forcing Kaelan to pay attention.

After four measured thrusts, Kaelan shook his head. “No. Not like this. You said you’d hurt me. Do it, damn you!”

And there it was. God, they were a fucked-up pair. “Never said that. Never will.”

Kaelan tried to twist free, spitting out words that would’ve gotten his mouth soaped if he’d used them as a kid. Max leaned forward, captured Kaelan’s hands, and pressed them against the glass.

“Take it,” he said and slid deep, his cock enclosed root to tip in tight heat. “You think you deserve to be fucked bloody, get some more bruises? You don’t. You deserve this, Kaelan. Me in you, loving you. It’s what you’re getting. Take it. Take it.

“You can’t,” Kaelan managed. He was still tense as hell, straining against Max’s grip but no longer struggling.

“Can’t what?” Max pulled out an inch or so and then pushed back in again. “Can’t what?”

Kaelan didn’t answer immediately. His back arched as if trying to force Max deeper, but there was little he could do in the position they were in unless he wanted to hurt Max, and that wasn’t something that worried Max. “Please.”

Max focused on a slow, careful thrust in and out. “Do you want to tell me what I supposedly can’t do?”

“You can’t love me,” Kaelan said in a shamed mutter.

“You don’t get to decide that,” Max told him. “And I do love you.” He thrust a little deeper, not that there was much deeper to go at this point, and let go of Kaelan’s hand to reach over his hip, brushed his fingers against Kaelan’s cock. “Feel me inside you?”

Kaelan gasped, “Yeah.”

“When you come, it’s because of me.” Max closed his hand around Kaelan’s cock and worked it in time with his slow thrusts. Kaelan trembled on the edge of orgasm. “Because I love you, and you deserve to be loved. Take it.”

Panting, shivering, Kaelan came, and Max let himself tip over. He was shocked at how good it was, at how long he’d been able to hold off, but now he thrust hard and fast, stroking Kaelan’s cock as spunk rushed out of him in long, glorious pulses that had him groaning with pleasure. He closed his eyes and breathed, keeping an arm around Kaelan’s waist to steady both of them. Kaelan was still shivering, and Max suspected he was crying.

“Hey,” Max said. “You okay?” But when he began to pull out, Kaelan grabbed Max’s hand on his hip and held it in place.

“Don’t.”

Max nodded, though Kaelan couldn’t see him. He couldn’t give Kaelan much, but he could do that. For a few minutes longer, at least. Long enough for Kaelan’s face to seem normal when he finally turned around.

“So let’s fix those fucking bugs and get to work,” Kaelan said as if they weren’t standing naked in the shower after bittersweet sex and an emotional meltdown.

Max turned the water back on and rinsed himself clean, watching Kaelan do the same with a handful of gel worked up to a thick lather.

“That’s it?” he asked when they were drying off and Kaelan still hadn’t said anything in particular. “Business as usual again?”

That earned him a sidelong glance, wary in a way Kaelan never was with him. “Until we take this bastard down, yeah.”

Max decided if that was how Kaelan wanted to play it, he’d go along with it. For now. “Let’s be quick, then, before whoever’s spying on us gets suspicious over my impressive stamina.” He sketched a new cloak to allow them to move around the house without being seen or heard, leaving the one around the bathroom in place so that anyone watching would assume they were still in there.

They went back to the office in nothing more than the towels wrapped around their waists and stood so that the cloak overlapped the computer. “Seshat, where are the locations where someone would leave a listening device or a camera if they were interested in our magic-related activities?” Max asked.

Working.” Seshat only needed fifteen seconds or so before she displayed a blueprint of the apartment with three rooms highlighted: the office they were standing in, the living room, and the kitchen. Some areas on the blueprint glowed red. “Potential locations as marked.

After that, it didn’t take long to find the tiny cameras and neutralize them. The hardest part was being in the living room where Hopper slept on the couch, his blanket half kicked off and an arm up over his face. Max was relieved Hopper stayed asleep. Trying to explain what was happening would have been tricky.

“What if we missed one?” Kaelan asked.

Max shrugged tiredly. “Then we’re screwed. But I think we’re good. Seshat’s been pretty reliable so far.” He hesitated, then dropped the interior cloaks he’d erected a short while before. They stood waiting, as if something dramatic would happen if they’d missed a camera. Then Kaelan sighed out a pent-up breath.

“I don’t know about you, but I’ve got to get some sleep.”

Max wanted that too, but with Kaelan in bed beside him. He didn’t care whose bed they used. Something told him Kaelan wasn’t offering him a pillow, though. He nodded, keeping his voice free of emotion. “We need it. Kaelan?”

“Yeah?” Kaelan had turned away, but he glanced back, his expression studiously blank.

“You think you screwed up?”

Kaelan’s face hardened. “I think I don’t want to discuss it. You said it yourself when you were trying to fuck the guilt out of me. Done is done. And I’m done talking.”

Max watched him go. He hadn’t said that or anything close to it, but arguing with Kaelan wouldn’t solve a damned thing.

Killing Jannes would. Planning inventive ways to do it would beat counting sheep.

Chapter Ten

For those wishing to see their time of dying in their dreams, take ye the wing of a hummingbird, well soused in the blood of a fleet horse, and encase in balefire under the light of a full moon. When the moon is full again, douse the balefire, and the wing will crumble to dust.

Add to a glass of wine and drink.

[Found between the pages of Vol. 1 of a first edition of The Golden Bough (1890). Dated as late sixteenth century and subsequently sold for $35,000 at auction to a bidder later revealed to be acting for a Mr. Jannes.]

Kaelan woke up and checked the clock. It was before sunrise, not yet five in the morning, and he was up in more ways than one. A fleeting memory of Max’s hands on him in the shower stall yesterday, and his dick hardened. He ignored it, too stubborn to do so much as touch it, though he was naked and it would have been so easy.

No matter what Max said, it was his fault they hadn’t gotten to Darius in time. The thought tied his stomach up in knots, and despite his intentions to keep his distance from Max, for things between them to go back to normal until the situation with Jannes was dealt with, he found himself out of bed and outside Max’s door before he knew it.

Max’s door was ajar. Kaelan told himself to return to his room even as his feet took him across the carpet to the bed where Max slept under a pile of blankets. He crawled in next to Max, and Max, still asleep, mumbled and drew him close.

Comforted, Kaelan went back to sleep.

When he woke up again, Max was hitched up on an elbow, looking down at him. “Was I snoring?” Kaelan asked.

“No.”

“What, then?” His mouth was dry, and he was starving.

“Nothing. Never mind.” Max’s expression, which had been open and thoughtful, went a little bit more closed off, and Kaelan realized he hated that.

“Hey, no.” He sat up and touched Max’s jaw, rough with morning stubble.

“I didn’t do anything.”

“That’s the point.”

“There’s something you want me to do?” Max paused, then sighed. “I had something sarcastic ready to let fly, but I can’t do it. Come here.”

Being hauled closer and kissed wasn’t what he’d expected, but he wasn’t complaining. He wrapped his arms around Max, hugging all that warm, bare skin, and let himself drift, ignoring any thoughts that didn’t center on the immediacy of Max’s mouth on his.

“You dealing better now?” Max asked him, putting some space between them without letting go. “Because you had me worried last night.”

Honest or reassuring? Kaelan opted for something in between the two. “I’m still mad at myself for screwing up, but I’m handling it.”

Fooling Max was possible but not easy. Kaelan met a searching gaze without blinking and reached between them to caress Max’s cock, half-hard from the kiss or morning wood. It was a good distraction, and it should’ve worked, but Max jerked away as if Kaelan’s hand were ice-cold.

“Don’t do that unless you want sex,” Max said, and yeah, he sounded pissed. “If you don’t want to talk about it, say so.”

“I want coffee,” Kaelan said and got out of Max’s bed, not caring that he was flashing his ass and more. Max had seen it before.

Max saw too damned much.

Hopper was awake, dressed and staring out of the window, when Kaelan went upstairs. He turned to Kaelan, eyes reddened, hair sticking up in tufts. Kaelan braced himself for angry words or questions, but Hopper nodded at the kitchen. “Made coffee. Took me, like, ten minutes to figure out the machine, so if it tastes like sludge, my bad.”

“It’s fine if you want something fancy,” Max said from behind Kaelan. “Ask it for a plain cup of joe, and it freezes up.”

“That’d explain it.” Hopper sounded flat, but it was easy enough to understand why.

“I’ll make us something to eat,” Kaelan offered. He’d made waffles enough times that he didn’t need to look at the recipe anymore. Eggs, milk, oil. Flour, sugar, baking powder, salt. Doing something familiar was good, because he wasn’t ready for any of the subjects they needed to discuss after breakfast.

Max was hovering, getting out the waffle iron, reaching up to snag the spray butter from the top shelf where they kept it. Show-off. Because he was taller than Kaelan, he had to take stuff down like Kaelan wasn’t capable of it.

“Sit,” Kaelan snapped when Max anticipated his need for the ladle. “I can do this.”

“Okay,” Max said. He sounded ridiculously, unfairly patient. “Hopper, do you want milk in your coffee?”

Hopper, sitting at the kitchen table, was quiet, as if he knew something complicated was happening but wasn’t certain what it was. He broke his silence. “Um. Sure. Thanks.”

Max made three coffees and then set the table, staying out of Kaelan’s way. It made Kaelan feel guilty for snapping at him.

“I’ve been good not asking questions,” Hopper said after picking at a waffle for a few minutes. “I mean, you told me some of it, but there’s so much I don’t get, and I know you just woke up, and you’re fighting, but I need to know.”

“We’re not—” Kaelan stopped when he realized he was the only one talking. Shouldn’t Max have chimed in with him? “We’re stressed. We’re up against a caster who beat our asses and is trying to take over the world. Or destroy it.”

“Yeah, about that,” Hopper said. “You filled me in on the sigil thing and how he needed more blood to finish it, but you didn’t say what the sigil was for.”

“It lets him tap into power,” Max said.

“But it has to mean something,” Hopper said. “It’s like a letter, right? It stands for something.”

“I didn’t recognize it as anything specific,” Max said, frowning. “Just evil.”

“You opened those freaky-ass portals by drawing shapes in the air. They mean something, don’t they?”

“Yes,” Kaelan told him. “It’s, well, not a language as such, but a kind of shorthand. A recipe for whatever you want to bake, from a portal to a fireball. But we don’t always need them. It’s like opening a door—you can turn the handle or kick it in, but if the door isn’t latched right, you can push it and it’ll pop open. The stronger the caster, the less force they need. It comes from inside them. I’m not explaining this very well.”

“We use energy like a tool,” Max said, stepping in. He nodded at the coffee mug closest to him. “Watch.” The mug rose into the air, hanging six inches over the table. Max tilted his head to the side, and the mug mirrored his movement, then turned upside down, not a drop of liquid escaping, then completed the circle and returned to its original position.

Hopper’s mouth sagged open. “Shit. That was sick. Can you teach me how to do it?”

“You’re born with it or you’re not,” Kaelan said. “By now, you’d know.”

“I didn’t,” Max pointed out.

The thought of Max cut off from an essential part of him for years, missing so much, made Kaelan too angry to think straight, but he didn’t vent. Instead, he went for the simplest test of all, flicking a tiny fireball at Hopper, who yelped and batted at his hand. “That stings!”

“I’m going to do it again. Stop me.”

The second fireball struck Hopper’s wrist, leaving him glaring, more from disappointment than the fleeting pain, Kaelan guessed.

“Fine! I’m not a freak! But I still want to know what that asshole’s got in mind.”

“Yeah. You and me both. What’s he trying to do?” Kaelan poured some more syrup onto his waffle, which had absorbed what he’d put on it before, and stabbed two pieces with his fork. “What’s the end result he’s going for? It would help if we knew.”

“How would that help?” Hopper asked.

Kaelan chewed and swallowed, thinking that Hopper asked good questions. “Not sure. I mean, on the one hand, you’re right. We have to stop him regardless of what it is he’s trying to do.”

“Will he need certain things depending on what he’s going for?” Hopper set down his fork. “Like, um, more blood? That’s what he needed, right? Is that what he’s taking kids for?” He frowned at the look Max gave him. “What? I’m not stupid. There’ve been other kids who disappeared. Sure, some of them could have moved on or gone home, but not all of them.”

“Yeah,” Kaelan said, because there was no point in letting him continue. Hopper wasn’t stupid, and he deserved the truth. “I’m, like, ninety-nine percent sure he’ll need more blood.”

“So can’t you search online for the sigil?”

“We tried,” Max told him. “Seshat doesn’t know what it is.”

“What’s Seshat?”

Kaelan and Max exchanged glances. Max shrugged and made an over-to-you gesture. Kaelan took a last bite of syrup-drenched waffle and said around it, “The computer’s alive. Sort of. I mean, not really, but anyway, that’s her name. Except Max is the only one who thinks it’s a she. It’s not your normal computer; let’s put it that way.”

“You people are deeply weird,” Hopper said. “But listen, if that fucker’s drawing it, he had to have seen it in a book, or on some website, or on the wall of a pyramid—no, tattooed onto a dead body? Somewhere. Or he decided world-dictator pie sounded tasty, and there wasn’t a recipe in any of the books, so he went ahead and made one up all by himself.”

“You watch too many movies,” Kaelan said. “Inventing sigils is so dangerous I don’t know anyone who’d risk it. The ones we use and rearrange have been around for millennia. Now and then people experiment, sure, but they usually end up wearing their intestines as a necklace. Jannes doesn’t like taking risks.” He looked at Max, seeing a faint bruise on Max’s neck that he’d put there with a kiss. Oh God. Was it always going to be like this? He was aroused by a shadowed mark, craving what he’d gotten a taste of the night before. And he wanted to kiss the mark away at the same time as he yearned to make more. Max would like more. The guy didn’t mind playing rough. Kaelan focused on that, blocking out the memory of those slow, sweet thrusts, how Max had coaxed his body into yielding, made it feel so fucking good.

“You’re staring,” Max said. “Syrup on my cheek?”

“No,” Kaelan said. His cheeks flushed, giving him away. “Um. Sorry.”

Hopper continued as if the interruption hadn’t happened. “What if he’s doing that? Inventing a new sigil?”

“Then we’re not going to find it anywhere, that’s for sure.” Kaelan finished his coffee and got up to pour some more. “We need more information.” He leaned against the countertop.

“Or I kill him,” Hopper said darkly. “That’d be the end of the problem.”

“Even if that was an option,” Max said, “which it’s not, it wouldn’t be you doing it. This isn’t your fight.”

“The hell it isn’t.” Hopper glared at Max. “This asshole killed at least one of my friends. He could have someone else tied up in a closet right now.”

Friends, Kaelan thought. “What about that woman from last night? She was still alive when we got out. I mean, she was bleeding a lot, but that wouldn’t kill her. She could tell us something.”

“Or Jannes would think she was worth something to get back,” Hopper suggested, then rolled his eyes at Max’s expression. “What? You said no killing. You didn’t say no kidnapping.”

“When this is over, you and I are going to have a talk, buddy,” Kaelan told him. “Every time I’ve suggested it before, you’ve turned me down, but think it over, huh? Living the way you do isn’t safe.”

“Suggested what?” Max asked. His eyes widened. “Moving in with us? Not that you’re not welcome, Hopper, but I’m not sure that’s such a good idea.”

Hopper snorted before Kaelan could prolong Max’s torment by lying and saying yeah, that was what he’d suggested. “Third mate on the Love Boat? I don’t think so.”

“I wanted to buy a place big enough for ten or twelve street kids,” Kaelan said, addressing his words to Max but staring at Hopper. “A safe house. We could put up selective shields so no one got in who didn’t belong or was carrying, keep it stocked with food and medical supplies, and pay someone responsible, and yeah, I’m still looking at you, Hopper, to run it.”

“And I said no, and I meant it.” Hopper’s mouth set in stubborn lines. “I like my independence. Now shove the charity up your ass if there’s room for it next to your head and ask Seshie where the skinny-ass bitch lives.”

Kaelan wasn’t surprised Hopper hadn’t changed his mind. He’d wondered if losing Darius might tip the balance, but apparently not. “I’m taking my coffee,” he said and went downstairs.

By the time he’d asked Seshat to trace any hospital records from the night before of a woman named Maria, Max had joined him. Kaelan had already preempted Max’s desk chair. It was more comfortable than his, and he didn’t intend to give it up. “You can’t have your chair.”

“Okay,” Max said.

“Ever again. I’ve decided it’s mine now.”

“Okay.”

Maria Vargas,” Seshat said. “Admitted to Saint Francis at twenty-three hundred hours last night.

“Is she still there?” Max asked.

She is. The doctor is due to make her rounds in approximately one hour.

“You probably know what the doctor had for breakfast too.”

Max had to be joking, but Seshat wasn’t. “She used a Java Junk drive-through and purchased a large coffee with no-fat milk and a frosted cinnamon bun.

“You are scary,” Max said with conviction. “Or wonderful. I can’t decide.”

“I can,” Kaelan told him and patted the mouse. “You’re amazing, but I hope to God you never fall into the wrong hands.”

I would not provide this information to people who planned to use it to do harm.

“Are you competent to make those decisions?” Max asked curiously. “No offense, but you’re a machine. You don’t have the same constraints we do, the same emotions.”

“Save the metaphysics until after we’ve taken Maria some flowers and a get-well card,” Kaelan said. “An hour isn’t long, and we’re not on the friends-and-family visiting list, so we can’t do this the normal way.”

“We portal in and snatch her if needs be,” Max said with a shrug. “Then we’ll have plenty of time to ask her questions. Or we cloak her room and do a diversion casting so anyone who comes near remembers something urgent they have to do. Either way, she’d tell us what we need to know.”

“Now you’re the scary one.”

“You’re the chair thief,” Max protested.

“Chair thievery is mild compared to what we’re talking about.” Kaelan knew this was an important conversation. Intent mattered with casting, but that didn’t make it any easier to forget seeing someone pulled into the Netherhells. He’d be happy if he never had to witness that again, let alone picture being on the receiving end. But they didn’t have time to deal with the ethics of casting now. “Okay. It takes forever for hospitals to release people, but we’d still better get going.”

Hopper seemed a little too eager to be left alone in the apartment for either of them to agree to it. Kaelan was pretty sure Max suspected Hopper would poke through their stuff, whereas Kaelan was worried Hopper would take advantage of them being gone to take off and get himself into trouble.

“Nice car,” Hopper said when he’d settled into the backseat, and it took a few seconds for Kaelan to realize he was being sarcastic and remember that he couldn’t see the car for what it was.

“Gets us where we need to go,” Max said.

“Let him see it,” Kaelan suggested. “Why not? We’re going to the hospital, not some hot-sheets motel. And no one can steal it.”

Max looked tempted, and Kaelan knew why. Part of the fun of having a fancy car was seeing the admiring or envious glances of other drivers. With the car masquerading as a junker, that didn’t happen. Ever.

“Why not?” Max echoed and let the illusion dissipate. “Get out and take a look, kid.”

The drive to the hospital was divided into two parts: the enthusiastic babble as Hopper shared his thoughts on the car, and the sulks when Max refused to entertain the idea of Hopper ever driving it.

“I don’t get to drive it either,” Kaelan said. Not entirely true, but close enough. Max preferred to be the one behind the wheel, turning down most offers Kaelan made to trade places on the longest drives.

Hopper sniffed when they pulled into the visitor’s parking lot, as a van reversed out of a space not far from a side entrance. “Whatever. It’s just a car. Four wheels and an engine.”

Max rolled his eyes and stole the space from under the nose of a woman in an SUV who gave him a look so scathing Kaelan expected the paintwork to blister.

“So you’re going to use one of those portal things?” Hopper sounded subdued now.

“If we have to, we will,” Kaelan said. They’d decided to try sneaking in first in case Maria or her employer had set up wards in her room. It was what they would’ve done if they were lying helpless in a bed after being attacked by a caster.

“I’m staying here, then,” Hopper declared and hunched up his shoulders, as if by taking up less space, he’d be safer. “They’re not natural. What if we get stuck? Or the power goes off when we’re inside? Or you mess up the opening and we zap into the middle of a wall?”

“None of that will happen,” Max said, “but you can stay with the car if you want to. Don’t get out. If you’re inside, you’re as safe as if you were in a bank vault. No one can break in. Not with the castings I’ve put on it.”

They were overkill in Kaelan’s opinion, but the car was Max’s baby, so he’d settled for a private grin when Max added yet another layer of protection.

“No way am I getting out.” Hopper seemed determined, and Kaelan saw no reason to argue with him. “So you guys better come back.”

“We will,” Kaelan promised. “But if we don’t—”

“You said you would!” Hopper said, alarmed.

“We will. But on the slim chance that we don’t, and you’ve been here for hours, get out of here and go somewhere safe. Leave us a note, or give me one of those.” Kaelan pointed at the multiple braided bracelets Hopper had around his wrist. They looked as if they’d been made by a ten-year-old. Maybe they had. Kaelan had never asked about them, and when Hopper hesitated before answering, he wondered if they had some kind of sentimental significance.

“Yeah, okay. I lose them all the time anyway. What’s one more?” After choosing one, Hopper slipped it free and handed it to Kaelan. “You can find me with this?”

“With a little luck.” Kaelan put the bracelet in his pocket. “See you soon.”

He didn’t realize until he joined Max on the sidewalk that Max had let them have that conversation all on their own—had told Hopper what he needed to know and then let Kaelan and Hopper work out the details without participating. And Kaelan had no idea what that meant. Was Max trying to show him that he trusted him? Kaelan knew that already.

“You were kind of quiet just then,” he said as they started toward the lobby entrance.

“He listens to you more than me,” Max replied. “Every time I say something, he looks at me like I’m old and senile.”

“Okay, one, he doesn’t. Two, even if he does, kids his age think anyone over the age of twenty-two is old and senile.” It wasn’t easy to make himself do it, though he wanted to—he was a walking contradiction—but Kaelan reached out and slipped his hand into Max’s for a few seconds.

He was rewarded by an answering squeeze and the brush of Max’s thumb across the back of his hand. It was as intimate as a kiss and left him wishing for a space of time when they could work out what the hell was happening between them. Knowing their lives, that was a wish a dozen genies working overtime couldn’t grant. True, they didn’t battle psycho casters every day and twice on Sundays, but looking back over the past five years, he didn’t recall many vacations or days off. There was always something that needed doing, someone who needed help.

Of course, it wasn’t as if they didn’t enjoy his life. They weren’t tortured superheroes who never hung up their capes, and they weren’t in it for the money. They got off on the danger and helping people, sometimes openly, sometimes not. Nothing wrong with that picture, but the city wouldn’t suffer if they took a week off and found a stretch of beach to lie on.

After this is over, he promised himself and ignored the voice in his head telling him that he didn’t deserve a lover, a vacation, even the warmth of the sun on his face when a child had died right in front of him and he’d done nothing to stop it from happening. Hell, they hadn’t saved Darius’s body for a proper burial.

Wrapped in thoughts dark enough to qualify as brooding, he barely noticed the shock of cool air as they walked into the air-conditioned hospital, but Max nudging him with an elbow brought him back to the here and now.

“See any casters around?”

Kaelan shook his head before consciously looking. “No.” He kept his voice low. “You don’t think Jannes would be here, do you?”

“I doubt it,” Max said, pausing and then starting for the main desk. “Didn’t strike me as the caring-employer type.”

“True.” Jannes was choosing to use other casters, to talk them into doing his dirty work for him so that he avoided the negative karma of his actions. Yeah, he struck Kaelan as the kind of guy who wouldn’t even glance back to see if his minions were still alive, let alone make hospital visits.

“Can I help you with something?” the tiny older lady behind the desk asked them. She had a pair of reading glasses hanging around her neck on a beaded chain, dyed auburn hair, and a smile.

“Hi.” Max turned on the charm. “We’re looking for a friend of ours. We’re supposed to be giving her a ride home when she’s released? Maria Vargas. She told me the room number, but, well, I didn’t have a piece of paper at the time.” He shrugged endearingly.

The woman smiled again and checked her computer, tapping briskly at the keyboard. “She’s in room 619, but visiting hours don’t start until noon.”

“That’s fine,” Max said. “We’ll hang out in the waiting area until the doctor says she’s good to go.”

The woman opened her mouth to reply, but her phone rang, and with an apologetic look directed at Max, she answered it.

“Did I swallow an invisibility potion?” Kaelan asked as they walked away, soon losing themselves in the busy hallways. “Because I don’t think she looked at me once.”

“How could you swallow something that doesn’t exist?”

“And if it did, the bottle would turn invisible, so you’d never be able to find it,” Kaelan said, finishing off the old joke. “That never made sense to me when I was a kid. You’d build in an exception so whatever the bottle was made of wasn’t affected.”

“You’re thinking like a caster. Potions are garbage.” Max’s mouth tightened. “Colored water for the gullible.”

It didn’t take a genius to know who was in Max’s thoughts. Kaelan shook off his mood to help Max do the same. “I still think you used a charm casting on yourself once and forgot to take it off.”

“God, can you imagine the power drain?” Max shuddered. “No, it’s simple. You got a glance from her, but you didn’t notice because you were still checking for casters. She focused on me because I was focusing on her and smiling. No magic involved.” He grinned. “Jealous?”

Kaelan snorted, but it was something to consider as they followed signs to the elevator. Jealous of a sweet old lady? No. What if it’d been that same lady forty years younger? Or a hot guy? He’d never minded seeing Max with someone else before, but now that they were poised on the edge of something scarier than an active volcano—namely, a relationship—that would change. Had to.

One set of elevator doors opened as they reached them. Casters became used to life smoothing their way when it came to the little things. Not every lottery winner was a caster, but few casters had to wait long for a taxi, or a traffic light to change.

They stepped inside, and Kaelan pushed the button for the sixth floor. He made himself stop thinking about Max, and him and Max, and focus on Maria and Jannes and what they were going to do.

“Keep your eyes open,” he said in a low voice, even though they were alone in the elevator.

“Yeah, no worries there.” Max touched the small of Kaelan’s back as they got out onto the sixth floor. “Didn’t you say you were thirsty?” He gestured at a watercooler nearby, and Kaelan got that he was suggesting an excuse to check out the area.

“Thanks.” While Kaelan drank, he scanned the floor they were on, as well as the ones above and below them, for casting activity. He didn’t find any and raised his eyebrows at Max as he straightened up. Max shook his head.

“If we walk in, we might get stopped,” Max said. “Let’s go for the tried and true and put on some white coats and look as if we know what we’re doing.”

“It’s surprising how well it works in a big place where no one knows you, but I can’t help thinking the nurses on the floor will recognize most of the doctors.”

Max jerked his chin at a bulletin board to the left of the cooler. “Fund-raiser they did last week. Pick two doctors, and we can do a quick and dirty glamour to make us look like them. Washroom over there—we walk in, cast, walk back out.”

Max was good at glamours, projecting a false image without altering the object itself. He’d once made a pair of shoes resemble a gray cat, and Bast, before a sniff had told him the truth, had hissed indignantly, tail swelling. If Kaelan had tried that, Bast would’ve walked on by without a second glance.

It was strange to see Max’s face overwritten by the features of an older man, with tired brown eyes and dark skin. A strikingly good-looking older man, though. Kaelan suppressed a smile. He’d gone for a man about his height and build. As with his choice of cars, Max had opted for the luxury model.

“I bet Dr. Meadows has to beat them off with a stick.”

A trace of self-consciousness showing, Max fiddled with his name badge. “Dr. Meadows is a happily married man with two kids he adores and a spaniel.”

Kaelan flicked the badge telling the world he was Dr. Garcia. “Yeah? Well, my guy’s a player. Different guy every week and all hot as hell.”

He knew he’d gone too far with the game when Max put out a hand and placed it on his shoulder, pushing him until his back was against the wall, crowding in close. “I hear Doctor Garcia’s days of playing the field are over. That he’s found someone special.”

Shit, it was weird looking up at a stranger’s face and wanting desperately to kiss it. Max smelled like himself, overlaid with the gum he’d chewed on the drive and the shower gel he was so fussy about. Sounded normal too, though the sexy, husky tone wasn’t something he’d used on Kaelan before this week.

“Well?” Max leaned in closer, brushing his mouth over Kaelan’s without seeming to care that Garcia had a moustache and short beard. “Has he?”

“Yes.” Kaelan shut his eyes, and Max kissed him again. Kaelan didn’t know whether to pull him closer or push him away; this wasn’t the time or place, but he wanted. “Max,” he said helplessly.

“I know. We can’t.” Max smiled without much happiness in it. “Anyway, that wasn’t us. That was Meadows and Garcia.”

“It’s us too,” Kaelan said. “But our timing sucks, and I’m starting to wonder if it’s a hint from the universe that we’re supposed to be friends, period.”

“Then the universe can go fuck itself.” Max wasn’t often that crudely blunt, and his words left Kaelan warmed to the core and superstitiously inclined to knock on wood. “Come on. Window of opportunity’s closing.”

“Right.”

Maria was resting when they went into her room and closed the door. Their disguises hadn’t been needed; the hallway was deserted, and they could’ve been wearing clown costumes for all anyone cared. Kaelan sketched a simple lock casting and left it at that. If they needed to leave in a hurry, he’d portal them back out to the lot before the door handle was rattled twice.

She looked smaller. Harmless. Kaelan never had trusted appearances. Funnel-web spiders didn’t look deadly, just, well, spidery, but he didn’t want to be on the receiving end of their bites. Maria had cast her lot with Jannes and participated in the abuse and murder of a child less than twenty-four hours before. As far as Kaelan was concerned, she was ripe for stamping to a smear no matter how pale her face.

It must have been the back of her arm that was clipped by the falling engine. It was bandaged from forearm to shoulder in heavy white gauze, but there wasn’t a cast, so nothing was broken. She’d be healed by the next night. Max’s shoulder where the bullet had ripped it apart had knitted back together, the scar tissue only faintly pinker than the rest of his skin where it wasn’t marked with Essame’s stitches. Maria wasn’t attached to any IVs or anything, so if she’d needed a transfusion, she’d had it the night before.

Her eyes were shut, her breathing even. Kaelan resisted the urge to smack her arm—not the hurt one; he wasn’t a complete asshole, no matter how much she deserved it—and jostled her knee instead. Her eyes opened, fluttered closed, then opened fully. As she focused on them, the sleepy slackness of her face tightened to fear.

Good. Kaelan wanted her to be scared.

“I’ll scream,” she said shakily.

“No one will hear you,” Max said.

Her lower lip trembled, and her eyes filled with tears. “Go ahead, then. Kill me. It’d be better than the alternative.”

Kaelan didn’t want to be swayed by her emotions, which were probably feigned, but a small amount of pity softened his voice. “You get what you deserve.”

“I know.” She pressed her lips together.

“We have to stop him,” Max said. He did that thing with his voice when he was being super persuasive. “You know that.”

“He said he didn’t want to do it. Called it regrettable but necessary.” Maria moved her head so that she wasn’t looking at them. “Some of them were so young. Innocent. But that was why he wanted them. All that power. And after the first few, he stopped pretending he didn’t enjoy it.”

“You could have stopped him. Gone to someone,” Max told her. “We don’t work well together, but for something like this, you could’ve gotten some casters to take him down.”

“If an army of casters threw everything it had at him, he’d be left standing untouched, and everyone facing him would be dead.” She didn’t seem too troubled by the picture she’d painted. Something told Kaelan that Maria was focused on her fate, and what happened to anyone else didn’t reach her. “And he has us bound by a geas. If we betray him, we die.”

“You’re still breathing,” Kaelan said. A geas? That binding was seriously old-school. Ancient, in fact.

She turned her head and met his accusing gaze, too lost in fear to show shame. “I haven’t betrayed him.”

“But you will,” Max said with a soft menace Kaelan sure as hell wouldn’t want directed at him. “Start by telling us what the sigil’s for.”

“You don’t know? Not even that?” Maria laughed, the sound harsh, tears still bright in her eyes. “He thought when you had the notebook, you’d gained an advantage, but you don’t know what to do with it. Idiots. He’ll win. He always wins. I’ve heard him tell stories, and none of them end any other way. He’s been everywhere, knows everyone.”

“He wins because he’s using people like you to carry the weight of his actions,” Max said. “The system’s set up so that casters can’t abuse it for long before they’re taken, but he’s sidestepping it.”

“You think any of this is news to me?” Maria demanded. “We can’t break free. When we’re with him, if he told us to slit our throats, we’d do it. He owns us.” She plucked at the thin cover over her, picking at a loose thread. “But seeing Trent taken changed things. Dying’s one thing, but I never thought I’d end up there.”

“You killed all those people and thought you’d escape the Netherhells?” Kaelan couldn’t keep the incredulity from his voice. This was self-delusion taken to a whole new level.

“I didn’t kill them in person,” she said, as if that made the smallest fucking difference.

Max grabbed Kaelan’s arm before he could take a step forward, reading his intentions. “Easy,” Max said. “Attacking her when she’s helpless isn’t going to help. She’s lost. Doomed. She doesn’t matter. Not to us and not to her boss.” He raised his eyebrows. “Isn’t that right? You’re a used tissue, a broken pencil. Something valueless to be tossed out.”

Tears spilled down her cheeks. “I can’t change that now.”

“What if you could?” Max asked urgently. “Even the score by helping us?”

“It doesn’t work like that,” Maria said, but Kaelan saw dawning hope in her eyes.

“What if it did?” Max massaged the back of his neck, shoulders slumped. “Look, I’m not saying it does. I’m saying if it did, if you turned things around somehow, who knows? This is your chance. Help us.”

“You wouldn’t be able to trust anything I told you.” Maria was doubtful, and it was impossible to blame her.

“She’s right,” Kaelan said. “We wouldn’t.” But he saw where Max was going with this, and since it was their best chance, it was stupid to put a roadblock in the path. “You’d have to prove it to us.”

“Prove that I know what Jannes is trying to do?” Maria grimaced. “Sure about that? Because if I do, and I tell you, you’re in deep water.”

“We’re already drowning,” Max said. “What does the sigil mean?”

Maria closed her eyes, then opened them, looking right at Max. “I don’t know, not for sure, but…I think it’s some kind of symbol of time dilation. Or space dilation? Something like that.”

“What does that mean?” Kaelan asked. It wasn’t like he was a fucking scientist, after all.

“Jannes wants to control time and space,” Max said, his expression grim. “Change it, travel within it, make it repeat—who knows? It doesn’t matter. If he pulls it off, we’re screwed, all of us.”

Chapter Eleven

Chalk from the dollar store: While it often seems to make financial sense to buy things at rock-bottom prices, the wise caster recognizes that inexpensive components can be a recipe for disaster. Cheap chalk may break or fail to leave fine enough particles behind during use; this can result in dangerously inaccurate castings. If your finances are an issue, consider making your own chalk! Mix 1 cup plaster of Paris with 3/4 cup water. For best results, stir well until smooth. Pour into mold of your choosing—possible molds include toilet paper tubes and paper cups—and leave to dry for at least one day. Another benefit of homemade chalk is the ability to add power-enhancing resins, herbs, or powdered gemstones to complement your casting.

[From “What Not to Use,” article in Caster’s Quarterly, issue 29.]

It made sense looked at one way. Jannes got off on control, and making puppets out of casters had to get old fast. Altering the universe, like death, might be considered a challenge worthy of him. At least Max guessed that was how it would look from Jannes’s perspective.

He could think of half a dozen ways to use the sigil’s power once it was unleashed and directed. It’d be a onetime deal, so Jannes would have to make it count, but hadn’t the stupid son of a bitch given even a passing thought to the consequences?

Bleakly he realized for Jannes, there were none. Jannes would be safe no matter how time twisted and reformed in a different shape; within the casting, he’d be untouchable. That the lives of billions—living, dead, still to be born—would be affected wouldn’t concern him. Sally married Jimmy, not John? So what? A child fell and broke its neck, not an arm? Big deal. A major war ended with a dictator in power, not a peacemaker? Well, that might be amusing.

So no downside for Jannes. But he had to have a goal, an event in his past he wanted to change.

Max ran through everything he knew about the man and came up empty. With so little to go on, how could he pinpoint a pivotal time in Jannes’s life, and even if he did, how would that help?

“I’ve got so many questions I don’t know where to start,” Kaelan said, echoing Max’s confusion. “So which way is he going, Maria? Forward or back, or maybe sideways?”

That was one reason Max loved having Kaelan as a partner. The man thought outside the box the box came in.

“According to him, he’s been around for everything from the Crucifixion to the Great Fire of London. He talks about his past lives as if they’re real, and he wants to do everything. He wants everything.” Maria hesitated and shifted on the bed, clearly uncomfortable with the conversation. “He hasn’t said, not in so many words, but I think he found out how he dies.”

Jannes’s delusions should’ve made it easy to dismiss him as a credulous fool, ready to believe he’d been Julius Caesar in a previous existence—not Caesar’s cook, of course, or anything humble like that. Instead, it made Max uneasy, as if he’d been handed a clue to a mystery he didn’t want to solve. Suppose Jannes was the Jannes, thousands of years old, steeped in power accumulated by centuries of studying? How could they ever hope to thwart him? It couldn’t be true. He didn’t want it to be true.

“So he can avoid it?” Kaelan said. “Because he can travel through time doesn’t mean he can live forever. His body will give out like everyone else’s.”

“Maybe not,” Maria said. “Maybe he’ll find a timeline or someplace where he lives forever. Isn’t that a cheerful thought?” She looked as worried as Max would if he let himself think about it.

“You’re going to help us, aren’t you?” he asked.

She stared at her toes under the thin hospital sheet and blanket. They were unmoving, like the rest of her. Then she nodded. “I’m afraid I am.”

“She’ll screw us over,” Kaelan said, looking at him.

“I don’t think so.” Max looked steadily back at Kaelan.

“If she does—”

“I won’t,” Maria said. “If you’re right and this tipped the balance for me, I’d be a fool not to take the chance. I’m not scared of dying. I don’t believe in heaven or hell. I think after we die, that’s it, there’s nothing. But the Netherhells are real, and that’s not where I want to spend eternity.”

“Some say you die in there eventually.” Kaelan shrugged. “Could be wishful thinking, but it’s better than the alternative.”

“Not helping,” Max said under his breath. He understood Kaelan’s hostility, even shared it, but if they were going to defeat Jannes given the small space of time they had before the final sacrifice, they needed whatever Maria could tell them. “So spill. Everything you know.”

Maria wet her lips. “He’s angry with you. He’ll want to hurt you. He planned to use your friend for the last ritual for some reason, but the old man fought back, and the caster Jannes sent had to kill him. So he’s been looking around for someone else.”

“You said Dougal’s book had a clue in it,” Max reminded her. “I love a puzzle, but we’re on the clock.”

Hesitation showed in her expression, shadowing her eyes. “I tell you that, and it’s a true betrayal. I can’t risk triggering the geas. He was your friend. If Jannes worked it out, so can you.”

“Yeah, yeah,” Kaelan said with an impatient gesture. “Get back to his plans. Any idea who the sacrifice will be?”

A flicker of malice showed, reminding Max that Maria was a long way from being someone he could look at without revulsion. “I think he loved the way you reacted to that boy’s death, and you barely even knew him. He’ll want to see your face when someone you love bleeds out in front of you. That’s where the power will come from.”

“Max?” Kaelan turned to him as if he needed to see Max was still alive and safe, the stark horror in his voice making it crack. “No!”

Maria sighed. “Not the caster, you moron. An easier target. The other boy, Darius’s friend. Hopper.”

Max saw relief, then renewed horror on Kaelan’s face. “No,” Kaelan said. “No way. Not happening.”

“I’d bet cold, hard cash he’s looking forward to it,” Maria said.

“I’m sure he is, but Kaelan’s right. It’s not happening.” Max was doing his best to stay calm; he didn’t want Kaelan any more anxious than he already was. The thought of what Hopper’s death would do to Kaelan was overwhelming. “That’s days away. We have time to figure out how to stop Jannes.” He hoped.

Maria reached over with her good arm to pour a glass of water. Neither of them moved to help her. “He’s predictable,” she said. “He does what he says he will. Don’t get me wrong; his castings don’t always go according to plan, and he knows it, even if he won’t admit it. This big casting, it’s an idea that could explode in his face.” Something gleamed behind her eyes—guilt. “It’s happened before.”

Max immediately knew what she meant. “You were there,” he said. “I don’t remember you.”

She bit her lip. “I kept out of the way. As soon as you started to get busy.”

“Okay, please tell me you aren’t talking about what I think you’re talking about,” Kaelan said.

Max winced. “Sorry, yeah.”

“You were hot on his trail,” Maria said. “He figured a little amnesia spell wasn’t going to cut it. He had to go big, so he played with a memwipe sigil and got something he hadn’t expected—a spell that got your engines revving while it wiped your memories of any trace of him.”

The outrage on Kaelan’s face verged on comical, but Max had no desire to smile. “So he did an illusion cast of a bedroom—tacky as hell, by the way—and sat back and watched the floor show.”

A trace of color warmed Maria’s cheeks. “You could say that.”

“I will say that,” Max told her. His jaw ached, he was clenching his teeth so hard. “God, you people don’t give a fuck about anyone, do you? Coercion, rape, murder—it’s all part of the nine-to-five. Well, it’s over for you.”

“Please,” she whispered, cringing as if she expected a blow. “I’ve told you everything I can. Let me go. I’ll open a portal and leave. There are places Jannes can’t find me. Blind spots. I’ll go. I’ll hide forever.”

Kaelan slashed through the air with his hand. “Forget her,” he said. “We need to get back to Hopper.”

“He’s safe in the car,” Max reassured him, but Kaelan was already moving toward the door. Max wiped the cloak casting from both of them—they didn’t want to bump into their twins in the hallway—and followed, Kaelan’s urgency rubbing off on him.

“I don’t care what happens to her,” Kaelan said, glancing around and then choosing the stairwell instead of the elevator. The heavy door had barely swung shut behind them when Kaelan stumbled. Max reached out to steady him and was hit by the same surge of power that had thrown Kaelan off balance.

“What the hell?”

“Hopper,” Kaelan said desperately and opened the portal he’d probably been planning since he’d headed for the stairwell in the first place. Max followed him without hesitation. The brief, blank nothing lasted an instant, and then they were standing next to his car.

His car, which was on fire.

Okay, so it wasn’t on fire, but it was still smoking like it had been. The paint was rippled and blackened. The passenger side door was open, the seat flipped forward, and there was no sign of Hopper.

“Shit,” Kaelan said, fumbling for his pocket, and Max knew what he was thinking. He grabbed Kaelan, pinned his arm behind his back, and slithered a hand into Kaelan’s pocket to snatch the bracelet Hopper had given him. “Max! No!”

“You are not taking off before we can talk about this!” Max told him, shoving the bracelet into his own pocket and not letting go of Kaelan. “Not this time.”

“We can get to him! Rescue him.”

“We can portal into a room full of casters waiting for us to do that.” Max wrapped his arms around Kaelan, less of a hug than a restraining hold, given Kaelan’s struggles. “The bracelet will take us to him when we know more. He’s brave, resourceful, and unlike poor Darius, he knows the score and that we’ll be coming for him. He’s going to be making life difficult for them and planning how to help us. He’s the worst possible kid they could’ve taken. It’s going to bite them in the ass so fucking hard.”

The wild, unfocused energy left Kaelan, and he subsided, his head on Max’s shoulder. “This sucks.” The words were muffled, bitter, but at least Kaelan was still speaking to him.

“For them,” Max said, relaxing his grip enough to stroke Kaelan’s hair. “Not Hopper. We’ll save him. Whatever it takes, we’ll save him.”

Kaelan kissed him, a brief touch of his lips to Max’s jaw. “Yeah. Okay. So let go of me, huh? I can’t breathe. Any python in your family tree?”

“I wouldn’t rule it out.” Max steeled himself and looked over Kaelan’s shoulder at his car, with a vague hope that the damage wasn’t as bad as it seemed.

It was worse. The intense heat directed at the car—heat that would’ve forced Hopper out in a short space of time—had done more than bubble and blacken the paint. The frame of the door was warped, and when Max tried to start the car, he discovered the wiring was fried.

“Fuck!” He struck the steering wheel with the heel of his hand, welcoming the pain. “All those precautions built in, and I never allowed for this. The shields would’ve blocked a casting, but actual fire? No. I’m so stupid. And why the hell didn’t someone call the fire department? Are burning cars that common around here?”

“You know whoever did this would’ve used a cloak. Come on, get out.” Kaelan tugged him back out from behind the wheel. “I’m sorry. I know how much you love your car. I’ll get you another one.”

“I don’t want another one.” Max was stupid, and he was acting like a kid, but he was mad at himself for something more important than his car getting wrecked.

He’d told Hopper he was safe, and it hadn’t been true.

“This is all my fault,” he told Kaelan. “He thought nothing could get to him. He trusted me when I told him he was safe, and I failed him.”

“Hey, look, you’re not perfect.” Kaelan was rattled, gaze darting around the parking lot as if he expected a fresh attack. “Shocking, I know, but if I’m not allowed to go off half-cocked on a dangerous and almost certainly predicted rescue mission, you don’t get to blame yourself for this.”

“The same way you’re not allowed to beat yourself up over Darius?” Max raised his eyebrows when Kaelan didn’t answer. “We need to ditch the guilt. It’s slowing us down, making us second-guess everything. Focus on what we can do, not what we can’t change.”

Kaelan scrubbed his face with his hands, huffing out a breath. “Yeah. Okay. So we go back home and dig out Dougal’s book. Find what we missed.”

“It’s more like a private library than a single book,” Max said. “Searching it in the time we have is impossible. And listen…” He hesitated, unwilling to put his inchoate suspicions into words, as if saying it would make it true. In the end, though, he had no choice. If Kaelan laughed at the idea that Jannes didn’t exist in the databases because his birth date had BC, not AD, after it, well, being laughed at wouldn’t kill him.

Kaelan didn’t crack a smile. “That’s huge. You realize that? The implications…the scale of who we’re up against.”

“Yeah. But it’s a possibility we need to check out, though I’m not sure how to start.”

“Seshat will help,” Kaelan said, but he didn’t seem confident, and Max agreed. The computer was brilliant, but the intuitive leaps a human was capable of, based in Max’s case on his friendship with Dougal, weren’t possible for a machine.

“We’ll do what we can.” Max patted his car, saying good-bye, then pulled out his phone to arrange for a tow. His insurance company wasn’t going to be happy with him. God, his premiums would go through the roof after this.

It was a petty annoyance, but it grated on his nerves. He didn’t need motivating to go after Jannes, not after the deaths of Wainwright and Darius, but the destruction of his car, the bugging of his home, and the forced sex with Kaelan were personal attacks Jannes would answer for.

Within an hour and a half they were home, a rented car parked in their garage. There were times when money greased wheels that would otherwise be squeaky, and having a rental car delivered was one of those times.

“I wish this was scanned or something,” Kaelan said fretfully. Wainwright’s notebook was on the desk in front of them, their chairs so close that they kept bumping each other.

Seshat said, “Scanning the notes, even with my enhanced equipment, would be impossible to complete before the ritual. I am also currently cross-checking any and all references to Jannes based on the assumption that many, if not all, of the references to that name in connection with casting-related events apply to one individual, not thousands. So far, the possibility is at approximately forty-six percent and rising.

“Yeah, that’s useful,” Kaelan muttered, turning another page. “I should have—”

“No,” Max told him. Apparently interrupting was his new specialty. “No more should-haves, remember?”

Seshat broke in before Kaelan had time to say more than, “Hey, there’s a difference—”

Maria Vargas is dead.

Kaelan stiffened, spine rigid. Max knew how he felt. The news shouldn’t have been a shock given what she’d told them about the geas, but she’d seemed fine when they left. “What happened?” Max asked.

Unclear. The event occurred shortly after you left, but the computer records for her have only recently been updated. The medical staff attempted to resuscitate her from a heart attack but failed. The autopsy will give more detail, but that is not scheduled until tomorrow.

“Our fault,” Kaelan said, then shook his head. “No. Her fault and Jannes’s.”

“That’s the only way to look at it,” Max agreed. He swallowed, forcing back nausea. “She did some terrible things. We saw her.”

“Right. And that’s going to stop us from feeling guilty anytime soon.” Sitting back, Kaelan rubbed his eyes. “I’m gonna go get some coffee. Want some?”

“No, thanks. My tonsils are floating as it is.”

“I hear you. Still want a caramel latte.”

Kaelan’s sweet tooth made Max smile. When he wanted to enjoy Kaelan on a sugar high, he went to a candy store, filled a bag with anything chewy, fizzy, or sour and left it in a bowl for Kaelan to find. Bast with a catnip mouse was hilarious; Kaelan plus gummy bears was a force of nature. Sure, it could tip over into annoying, but now he knew how to channel that manic energy. God, Kaelan would be so much fun in bed. Inventive, uninhibited, sharing without holding back. When this was over—and he was getting that phrase printed off and framed—he wanted to get to know Kaelan all over again from a different perspective.

Every instinct he had told him he’d love the man more with every new discovery. He couldn’t wait.

When Kaelan returned, it was at a quick walk, his hands empty. “Hey! Had an idea.”

“Hit me,” Max said. His spine was going to snap in half, he knew it. He’d spent too long sitting in this chair recently.

“This notebook looks like any other notebook to anyone not a caster, right?”

“Mmm.”

“And you cracked it open, and yeah, it’s full of information. Too much information.”

“Okay.”

Kaelan slapped the desk. “But did you read what the notebook itself says? The mundane version of it, I mean.”

Max hated to do it to him, but he couldn’t lie. “Yeah, briefly. Nothing there.”

“Are you sure?” Kaelan’s conviction didn’t seem to abate at all. When he was certain of something, he went all in. Max was never taking him to Vegas. Ever. Even with caster’s luck, Kaelan would leave broke. “Can I take a look?”

“Be my guest.” Max passed the notebook over. The thought struck him that Wainwright would’ve liked Kaelan. Been bemused by him, yes, but enchanted too.

Instead of sitting in his chair, the one that used to be Max’s but had become Kaelan’s through a mysterious process, Kaelan curled himself into a sitting position on the floor. His dark hair falling forward obscured his face, but Max didn’t need to see it to know how intently he studied the pages. “I think there might be a code,” Kaelan said.

“For real?” Max was still doubtful. “Doesn’t sound like Wainwright’s style.” On the other hand, the old man had been both smart and dedicated.

“Sometimes that’s the point.” Kaelan flipped some pages, licking his fingertip in between, which bugged Max, but he held back from commenting. “It’s good to do what isn’t expected of you, if you want to get away with something. He might have been worried Jannes would get hold of this. Or that someone else would.”

“I doubt he knew Jannes was planning to use him as a blood sacrifice,” Max said. It came out sounding bitter, and Kaelan lifted his head, concerned. “No, I’m okay. I mean, Wainwright wouldn’t have wanted any of this to happen, but if he had to choose between going the way he did and that, I know what he would have chosen.”

Kaelan nodded and went back to the notes. “There are some random numbers in here. I’m not sure if they’re doodles, or what. They don’t fit in with the rest of the text.”

“Let me see.” Max hadn’t noticed any numbers when he’d glanced over the outward appearance of the notes, but if Kaelan’s suspicions were correct, maybe they’d seemed unimportant.

Handing over the notes again, Kaelan said, “See that eight? And three pages later there’s a six.”

Max grabbed a pen and paper. “Read them out to me.”

When Kaelan had finished, they had a string of digits. Max couldn’t see anything special about them at all. Still, that was why they had a computer.

“Seshat? Do you have any ideas?” He read the numbers out to her and waited, his mind busy with possibilities. Map coordinates? Safe combination? Those explanations seemed too ordinary somehow.

As the numbers stand, there is no obvious correlation,” Seshat told them. “Extrapolating the data in a less rigid manner suggests one possibility.

“Yeah? And?” Kaelan came up onto his knees, resting his arm across Max’s thigh. “Don’t keep us hanging, Seshat.”

“If you stop talking, maybe she’ll share.” Max dropped a kiss onto the top of Kaelan’s head, breathing in his scent, still struck by the novelty of his freedom to touch, to kiss.

The number of digits suggests a telephone number. In the sequence given, it is not a valid number. Rearranging them and testing all possible combinations of area code and—” Seshat paused. “Time is of the essence, and the details of my search are irrelevant. The number is most likely to a magic shop situated in Glastonbury, Connecticut, owned and operated by a Magnus Oak. Would you like to see the web page for Hex?

“Sure,” Kaelan said. “And Seshat? You rock, and that’s official.”

I try,” she said with a hint of dryness.

The page appeared on the screen, followed a second later by the speakers blaring a loud, annoying version of “Witchy Woman.” Max reached for the keyboard and turned down the volume. “God, kill that,” he said.

I am not capable of—” Seshat started.

“Turn the music off,” Max clarified, and she did.

“I think I’m going blind.” Kaelan blinked at the screen, his expression a combination of confusion and distaste.

Seshat said, “I can adjust the brightness of the screen.

“No, I meant it’s awful. You can’t do anything to fix it,” Kaelan assured her.

Max agreed. Not only was there a marching border around the edges of the page—tiny witches on broomsticks alternated with wizards holding wands—but the colors were beyond gaudy. Pale blue provided a background for fonts in dark red and forest green, with way too many exclamation points in violent yellow. “You’ve got to be kidding me.”

“I know, right? Why would Dougal have this place’s number? It’s like a nightmare.” Kaelan clicked on a link, and they were treated to the sight of blocks of text with blinking borders in rainbow stripes. He clicked again. “Oh, good. Fairy Christmas tree ornaments.”

“Do you think he settled in Glastonbury because it was named after the one in England?” Max shook his head, regretting it when colors danced and swirled before his eyes. “Never mind. I don’t care. We’ll check it out. Wainwright might’ve hidden something in the shop, or it’s another ley line convergence.”

It is not,” Seshat informed them.

“So give us everything you’ve got on Magnus the Magician.” Kaelan snorted. “No way was he born with that name. Magnus Oak.”

It is his legal name, changed by deed poll. He is forty-two years old, and a scan of his phone records show calls to Wainwright Dougal’s number on many occasions. Unknown if he is a caster. He has no criminal record, and his bank account is overdrawn by three hundred dollars and sixty-four cents. He employs an assistant in the store, one Joely Singer. She is twenty and was prosecuted for possession of cannabis, underage drinking, and vandalism while a student at Harvard, resulting in her expulsion.

“Slow down.” Kaelan put up his hand as if his gesture would achieve that. “This Joely was at Harvard? Did she know Wainwright?”

She was one of his students, yes.

“Did she call him, not this Magnus guy?” Kaelan asked.

Possible, but the calls were made on Mr. Oak’s cell phone.

“We’re back to guessing,” Max said, frustration rising. “The final ritual is only three days away. We need something we can use, not theories and supposition.”

The previous ritual took place at moonset on Friday at 12:04 a.m.,” Seshat put in. “Assuming the final ritual follows that pattern, we know it will take place at 5:32 a.m. on Tuesday. At 9:45 p.m. on Monday night, the moon will be at its fullest.

Max glanced at the clock. “We have time to get over there before the store closes if we go now.”

Kaelan stood. “What if this Oak guy is on Jannes’s side?”

“I don’t think he is. I think Wainwright was giving us a clue, not a warning, and good job finding it, by the way, but you’re right. We’d better be careful. No portals. He might have a warning system in place.”

It was a twenty-minute drive from Hartford to Glastonbury, and the store was nestled in between a shopping plaza and a couple of restaurants. Out front of the store, under the huge purple HEX sign, was a mannequin clad in a long black dress, a wig, and a pointed witch’s hat.

“Fantastic,” Kaelan muttered.

“It’s like some teenager’s idea of witchcraft,” Max agreed.

The heavy scent of incense assaulted them as soon as they opened the door, a chime overheard alerting the store’s employees of their presence. There were half a dozen customers browsing the aisles, including three young girls who didn’t look old enough to be in high school.

“Welcome,” someone said from near the wall to their right. It was a woman with a cascade of red curling hair, refilling a widemouthed glass jar with dried herbs. “I’ll be with you in a minute.”

At least she hadn’t crooned Blessed be at them. Max stretched out his senses in a way he couldn’t have described, any more than he could have detailed the steps involved in taking a breath; he just did it. And when he’d finished, he knew he and Kaelan weren’t the only casters in the store. None of the customers, not even a glimmer, and not the woman, presumably Joely, though she had something different about her, difficult to pin down. A receptiveness, an acceptance of the world that made her spark glow against the dim flicker of the customers’ auras.

Somewhere nearby, though, was a caster with a strength Max had rarely come across. If Joely was a lit match and he and Kaelan a bonfire, this caster was a blowtorch. Focused, intense, powerful.

And very aware of them.

Kaelan straightened, spine stiffening. “You feel that, right? It’s not just me?”

Wandering over to a display of wands—plastic and filled with a clear liquid and a lot of glitter—Max nodded. “I certainly do.” Raising his voice, he remarked, “These are cute in a tacky way.”

“For the princess who wants to turn her prince back into a frog.” A strong whiff of patchouli assaulted Max’s nose, but he didn’t need it to know Joely was by his side.

“I can see how that might be useful,” Max agreed. “Not a wise course of action if it rebounds on the caster.”

Her eyes were as green as his, and they narrowed, making her look disconcertingly like Wainwright for a split second. He’d given Max those appraising stares more than once, as Max struggled to retain his composure.

He was older now, and she was a decade younger than him, but still.

“Are you Joely?” Kaelan asked, joining Max but keeping enough space between them that if the situation got physical, they wouldn’t be in each other’s way.

“I was when I woke up. Who knows who I’ll be by moonset?”

“We looked on the website,” Kaelan said, but she shook her head, hair falling into her face.

“I’m not on the website,” she said. “So how do you know me?”

“Maybe that guy we met at that tarot-card-reading thing mentioned you?” Max tried. “He was twenty or so, blond hair, blue eyes.”

“Which describes hundreds of guys,” Joely said. “Look, don’t screw with me. Tell me what’s going on.”

Kaelan glanced around, though none of the customers was paying even the slightest amount of attention to them. “We’re looking for Magnus Oak. He’s here, right?”

“You already know the answer to that. If you aren’t going to be straight with me, get out. I don’t owe you anything, and I’m not going to put up with any shit.” She sounded self-confident, but that went with her age. “You want to talk to Magnus? Tell me who’s here to see him, and I’ll find out if he’s interested.”

Max hesitated, but if Magnus was a friend of Wainwright’s and knew or suspected his death wasn’t down to natural causes, he had every reason to be cautious when strangers dropped by. “We have a friend in common, I think. Wainwright Dougal.”

“Never heard of him.” Her disinterest was convincing, but Max dipped beneath the surface and sensed a flash of sorrow that found an echo in his heart. It was going to be a long time before he thought of Wainwright without missing him.

“You sat through his lectures,” Kaelan said, picking up a wand. “At least until they kicked you out. Kind of funny you don’t remember his name.”

“Amnesia runs in the family.” She flicked her hair back over her shoulder. “I think you should leave.” Her voice died away. Kaelan had sent a trickle of power into the wand, and the silver glitter moved as they watched to form a sigil that translated as friend. Whether or not she could read it didn’t matter. She could see what he’d done.

Kaelan held it out to her, smiling his approval when she took it without flinching. Oh yes, she’d clearly been around casters long enough to lose her fear if not her wonder. “Why don’t you give him that and see what he says? We’ll wait right here.”

“Yes, you will. Don’t think you can get away with following me.” Joely gave them a serious look and went back behind the register and through the doorway behind it.

“If this guy is anything like his store, we’re barking up the wrong tree,” Kaelan said under his breath.

Max nodded. “Yeah, but we have to try. He’s got some kind of connection to Wainwright, and I know if I can feel his power, you can. So if there’s anything he can tell us—”

“Bast!” a middle-aged woman exclaimed from the next aisle, and they turned to look at her. “Laurel, come look at these goddess statues!” While the two women enthused over the figurines, Kaelan rolled his eyes.

“Gentlemen,” a man with a deep voice said. “Would you like to join me?”

The man standing in the doorway behind the register was tall with wide shoulders, but at first glance the most noticeable thing about him was how slender he was. His hair was a little long in front, pushed back with an impatient hand that held a pair of what Max presumed were reading glasses.

And along with black jeans and a patchwork waistcoat over a long-sleeved white T-shirt, he was wearing a braided leather bracelet with a bronze key hanging from it. Max let it fill his gaze, absorbing the details. An old-fashioned skeleton key, of a style rarely used now, superseded by far more secure designs. A key to something small, like a box, rather than a door. The key swung as Magnus lowered his hand, too dull to glint, difficult to look away from.

It took Kaelan’s nudge to get Max moving. He knew that key. He’d seen it hidden in plain sight on Wainwright’s unwieldy key ring and wondered what it unlocked.

Magnus saw the direction of Max’s gaze and smiled before pulling the sleeve of his T-shirt down. It didn’t hide the key, but it sent a silent message.

“There’s a room back here,” Magnus said. “Joely can make tea, if you like?” His voice had a vaguely European accent, but Max couldn’t identify it.

Max shook his head at the offer and went first to be on the safe side, though Kaelan was close enough behind him that if he were anyone else, Max would feel crowded, irritable. “Thanks for seeing us,” he said.

“I had an alternative?” Magnus asked wryly, leading them back through a hallway and into a much larger room than Max would have guessed. There was a couch and a padded armchair that was in beautiful condition despite the fact that it had to be at least a hundred years old. Bookshelves were filled with books not at all like the ones on the store shelves; most were ancient, leather bound, the smell of them faint but familiar in air that held a trace of the incense that was so powerful in the shop out front. “Sit, please.”

“You’re shielded to hell and back,” Kaelan said, not sitting.

Magnus smiled. “So are you.”

“We’d all be stupid not to be,” Max pointed out. “I’m Max. This is Kaelan.”

“Magnus Oak. But then, you knew that.”

Max sat down; he’d be the only one to do it if necessary, but it had been a long day, and he wasn’t a teenager anymore. “We found the store’s phone number in Wainwright’s notes.”

Magnus took a seat on the armchair, and after a slight hesitation, Kaelan joined Max on the couch. Max understood Kaelan’s reluctance. Magnus hadn’t offered them food and a refuge, which would bind them into the roles of host and guest with all that relationship implied, but asking them to sit was a courtesy, and Kaelan was too on edge to accept Magnus as an ally without proof.

“So you went on a treasure hunt?” Magnus pursed his lips. “Now what were you expecting to find?”

“Help.” Max didn’t mind being blunt, and Magnus seemed like a man who’d enjoy leading them in circles. There was no time for that. “Wainwright was murdered. We know who did it, we’re trying to stop him, and in three days he’s going to perform a ritual that could destroy the world.”

The silence that fell thrummed like a struck drum, broken by Kaelan’s hissed-out breath. “Want to tell him what you had for breakfast too?”

“If he’s working for our enemy, he knows this already.”

“You’re not mentioning names,” Magnus said.

That hadn’t been deliberate, but there could be a good reason for it. Max said, “Names have power.”

“The room is shielded too.” Magnus drew a J backward in the air, lighting up motes of dust so the letter was visible, hanging between them before fading. “Is that enough of a clue?”

“Yes. Unfortunately,” Max said.

Magnus put his glasses on and sighed, then took them off again and rubbed the bridge of his nose. “You know what he’s planning, then.”

“We think so. Do you?” Max asked. Kaelan was right. It didn’t make sense to reveal too much.

“For sure? No. But I could make some educated guesses.” Leaning back in the armchair, Magnus seemed as hesitant to open up as they were, which put them at an impasse.

Kaelan said, “He took a friend of ours. He’s killing people.” He shifted closer to Max as if he wanted comfort. “Kids. And Professor Dougal. We have to stop him.”

“Don’t include me in that we of yours,” Magnus said.

Anger flared. “You’ve got to be kidding me,” Max snapped. “Wainwright was your friend, and you’re okay with letting his murderer continue on his merry killing spree?”

Joely peeked around the corner, her eyes wide with concern. “Magnus? Are you okay?”

“We’re fine,” Magnus reassured her. “Don’t worry.”

“Easier said than done,” she replied but disappeared again.

Magnus smiled at them. He looked strained and old and tired, even though Seshat had said he was only forty-two. Sometimes casting took its toll on a person’s body. “It’s not that I don’t want to help. I do and I will. But I don’t leave the house anymore.”

“Why?” Kaelan’s hand settled on Max’s knee, and Max put an arm around Kaelan’s shoulders.

“Some stuff happened; let’s leave it at that. So I’ll do what I can from here, but that’s as far as it goes.”

“What can you do?” Max asked. “And why do you have Wainwright’s key?”

“You recognize it?”

“I saw it a dozen times on his key ring. He wasn’t my teacher at Harvard—I was prelaw—but when it came to casting, everything I know started with what he taught me.”

It was difficult to speak of his debt to the man without memories assailing him. Wainwright pacing his office, his voice deep with anger as he spoke of caster-related atrocities—some by casters, some done to them. Wainwright smiling with delight when Max mastered a complicated casting or added a flourish to improve it. They’d spent hours talking, and when Max had learned to portal, he’d been rewarded with a weekend traveling the world, going from city to desert, desolate wilderness to ancient ruins, Wainwright at his side.

“He never told me your name, but I’m guessing you’re the one he left his notes to?”

Casters and their secrecy. Max wasn’t surprised by Wainwright’s reticence even with an old friend. Max’s generation of casters was less cautious about socializing, but Wainwright had been born at a time when being different equaled a death sentence.

“Yes.”

Magnus raised his hand. “And he left me this. It appeared on my desk at the moment he died. A preset casting.”

“Interesting,” Kaelan said. “You’d need to siphon off some power into the object you planned to relocate, then build in a trigger linked to your aura. You die, and the casting self-completes.”

“You make it sound simple, but it’s not.” Magnus smiled. “I have one or two set up myself, so I know.”

“Kaelan has a way of cutting through the crap.” Max hugged Kaelan closer. “Wainwright would have taken him on as a student in a heartbeat.”

“What does the key unlock?” Kaelan asked, proving the truth of Max’s words.

For a minute Max thought Magnus wasn’t going to tell them, but then he delivered the information in clipped phrases, his reluctance plain. “A book. One of Wainwright’s. Gave it to me months ago. Came here himself to deliver it. He didn’t want it with his notes. He thought it would be safer for the two things to be kept in completely different places.”

“Safe being relative,” Max said. “Have you opened it?”

“Of course. Wouldn’t you? I’m as curious as the next man, and I’m certainly no saint.” Magnus had the air of someone who’d made up his mind to go all in now that he’d come this far. “There’s a pattern to what Jannes is doing. Do you know when the next casting will be?”

“It’s not just the next casting; it’s the final one.” Kaelan sounded grim. “In three days.” He glanced at the clock on the wall and pulled a face. “More like two and a half now. Early Tuesday morning.”

“Okay, so if you’re right, we’ve got some time. I know some people who might be able to help. I can’t make any promises, I can’t say they’re friends or even colleagues, but I’ll see if I can get in touch with any of them. In the meantime.” Magnus lifted his wrist and tugged back his sleeve, revealing the key again. “I wonder if you’d like to take a look at this book?”

Chapter Twelve

There are so many “fictional” stories that contain some truth about the reality of magic and how it works that it’s difficult to know where to begin in discussing their history. From the witches in William Shakespeare’s Macbeth in the early 1600s to H.P. Lovecraft’s Necronomicon in the early 1920s, from J.R.R. Tolkien’s The Lord of the Rings (mostly written during World War II) through today’s modern classics like J.K. Rowling’s Harry Potter series, different forms of magic and the people who practice it are peppered throughout our past and present as if they were nothing more than fantasy. In this paper, I intend to illustrate the ways in which real magic appears in fiction.

[From “Real Magic As Fiction in Literature,” term paper dated March 2002 written by unnamed student, found among Professor Wainwright’s personal effects after his death.]

Watching Max read a book wasn’t Kaelan’s idea of a good time. Okay, so he’d love to have the intent look in Max’s green eyes focused on him, and he got a serious kick out of the way Max caught his lip between his teeth and frowned, but other than that, it was boring. Sure, seeing Max hold the book with reverent care, turning each page with a gentle flick, was all kinds of hot, but still. Dull.

“So how long have you been together?” Joely asked, appearing at his side, a friendlier expression on her face.

Kaelan abandoned the attempt to deny he was enjoying watching Max read. “Five years as friends and business partners, maybe a week as more.”

“Took you long enough to spot the obvious.”

“Not going to argue with you, but it was—”

“Complicated,” she finished for him. “Yeah, I can see that. You get along with him, he’s gorgeous, he’s rich if he’s the same Maxfield Ancaster I looked up online, and unless he’s reading a book to help him save the world, he can’t keep his hands off you. Totally get the dilemma.”

Kaelan grinned at her. “Complicated,” he repeated. “But I think we simplified it recently.” He tilted his head, studying her. Freckles on her nose and cheekbones gave her a pixie-like charm, but he’d never describe her as cute. Too much strength of purpose. Someone he’d want at his back, not facing him as an enemy. “So if we’re BFFs swapping secrets now, how did you go from Harvard hopeful, to disgraced with a criminal record, to here?”

She shrugged. “Took the fall for a friend who turned out to be less of a friend than a lying, backstabbing bitch, and Professor Dougal knew I was telling the truth, so he got me this job.”

“One sentence,” Kaelan said approvingly. “Nice and concise.”

“It used to take me an evening and a lot of beer to tell that story, and I usually ended up in a fight or crying. Consider yourself lucky.”

“You have no idea.” Kaelan couldn’t keep himself from glancing at Max again, then realized how obvious he was being and stuck his tongue out. “Sorry. Gross, right?” He knew if he were in a cartoon, there’d be hearts circling his head.

“Nah, it’s cute. I’m twenty. How jaded do you think I am?”

Magnus came back into the room. He hadn’t said as much, but Kaelan was under the impression there was a whole apartment upstairs above the store. “I’ve only been able to speak to one of the people I called. Left messages for the rest. I don’t know if I’ll hear back from any of them tonight.” He looked strained around the eyes, as if even making some phone calls had been stressful, and Joely responded immediately.

“Sit down, and I’ll make you some tea,” she told him, already moving. “Do you guys want some?”

Max didn’t take his gaze off the book. “I’m good, thanks.”

“Me too,” Kaelan replied. Exhaustion was tapping at the door, though. It had been a long couple of days, and he hadn’t slept much.

“Is the book helping?” Magnus asked. “A lot of it didn’t make sense to me, but I’m still reeling over your theory that your opponent is close to immortal.”

Kaelan liked that the man admitted it without embarrassment or getting defensive, but he’d have liked it a lot better if the book had contained simple instructions on how to defeat a power-mad caster without breaking a sweat. Complicated and cryptic worked fine for crosswords, but he and Max didn’t have time to tease out helpful hints from a centuries-old tome. Max had taken one look at it and started drooling. Kaelan appreciated it was ancient with a good preservation cast keeping it from falling apart or the ink from fading, but it didn’t have an index, the pictures were stomach-churning depictions of casters being tormented in the Netherhells, and it was handwritten by someone using a quill with a broken tip. Max had made notes that Kaelan had scanned, but they were too brief to be illuminating.

“The author wrote it under the influence of a large amount of psilocybin mushrooms,” Max said. “Magic mushrooms, though they’re not at all magical.”

Kaelan blinked. “They had those back then? Wow.”

“They’ve been found in cave paintings dating back to prehistoric times,” Magnus said. “People have always looked for enlightenment or an escape.”

“So can we trust what he says?” Kaelan didn’t do drugs, but he’d seen his father high often enough to know drugs didn’t teach you anything worth knowing.

“He’s the caster who came up with the first stable portal casting, so he had his moments,” Max said. “This book’s more of a warning about time travel than a how-to, but the idiot included instructions as well. Why would he do that?”

“To be famous,” Joely suggested from the doorway.

“More like infamous,” Kaelan said. “Maybe the book was for him, and he didn’t care what would happen to it when he died.” He covered a yawn. “I don’t see what good knowing how to do it will do us, anyway. I mean, we don’t want to cast the sigil; we want to stop someone from casting it.”

“I need to understand how it works,” Max said.

Kaelan wanted to ask why again, but another yawn surprised him.

“You sure I can’t make you some tea?” Joely asked.

“I don’t think it would help,” Kaelan admitted. There was plenty of caffeine in his system; too much casting the night before had caused his exhaustion, and a dozen espressos wouldn’t touch that kind of tiredness. Still, no way he was calling it quits, not without some answers.

“I should take you home,” Max said, not sounding happy. “We could both use a good night’s sleep.”

“You’re crazy,” Kaelan told him. “No.”

“You won’t have enough power to portal your way out of a wet paper bag if you don’t take some time to recharge.” Max might have a point, but that didn’t make Kaelan any less stubborn. “Don’t look at me like that.”

“What, like you’re an asshole for being more worried about me getting a few hours of sleep than Hopper’s life?” Kaelan snapped, hit with guilt a moment later at the hurt in Max’s eyes.

“It doesn’t have anything to do with that.”

“I know. Sorry.”

“Go home,” Magnus said, interrupting Kaelan’s attempt to apologize more thoroughly. “No, I’m serious. I’m kicking you out. Leave me your contact info, and I’ll be in touch as soon as I know anything.”

“Sounds like a plan,” Kaelan said and put his hand on Max’s shoulder. “Want me to drive?”

“I’m not leaving without the book,” Max said, shrugging free of Kaelan’s grip. “I’ve barely gotten halfway through it.”

Magnus shook his head. “Wainwright told me to keep it with me. Keep it safe.”

Max compressed his lips hard enough to turn them pale. “Will you let me copy it, at least?”

“It’d take forever to scan,” Joely said.

Max didn’t look at her, his gaze focused on Magnus’s face. “Well?”

“It’s bound to be warded against copying.”

“Centuries-old warding? I can get past that. Do I have your permission?”

Kaelan would not have wanted to go head-to-head with Max in this mood. The guy was ready to punch holes in walls he was so intent on wringing every last drop of information from the book.

“Limited copy,” Magnus said, his reluctance plain. “Forty-eight hours and it vanishes. If it gets into anyone else’s hands but yours, it could be disastrous.”

Max nodded and stretched out his hand, holding it over the book. His voice clear, incisive, he spoke a few words: “Effingo libro isto.” The book glowed, and as Kaelan watched, a ghost copy rose into the air before fading to nothing.

Magnus cleared his throat but had enough sense to avoid anything resembling Told you so.

“Kaelan.” Max smiled at him. “Help me?”

“Power boost? You bet.” Slipping his hand into Max’s—they didn’t have to touch, but it helped—Kaelan fed some energy into Max, who repeated the spell with success this time. Kaelan had his doubts whether they’d get forty-eight hours out of it, but they could copy it again if they had to.

Max handed him the keys to the rental car as they went out to the parking lot, and sat paging through the magical copy of the book as Kaelan drove.

“Are you okay?” Kaelan asked.

“Yeah. I’m sorry too. We’re both on edge.” Max reached over and patted his hand where it rested on the gearshift. “This is big.”

“I know. You think I don’t?” Kaelan wasn’t sure if he should be offended. He might not be in the running for a Nobel Prize, but he was far from an idiot. Plus he had great instincts.

“No, of course not.” Max closed the ghost version of the book, leaning back in the passenger seat. His khaki pants were pulled tight across his thighs in a way that caught and held Kaelan’s attention. “This whole situation sucks, but we’ll get through it. I have some ideas.”

“What kind of ideas?” Kaelan only had one, and it involved getting his hands on Hopper’s bracelet and going after him, alone if he had to. But he knew that wasn’t the kind of idea Max would like, so he did his best to talk himself out of it, no matter how tempting it was.

“He’s evil.” No need to be specific about who Max meant. “I don’t care if he had an awful childhood, whenever that childhood was, or if he was bullied—and something tells me if there was bullying, he was the one doing it—because it doesn’t excuse this. He’s killed so many people and condemned others to suffering for eternity. He needs to be stopped.”

“And?” Kaelan prompted.

“We need to be squeaky-clean when we face him,” Max said. “I don’t mean physically, but aura-wise. Cleansed. Purified, so we can neutralize his evil. Not meet it with anger and hate clouding our minds, but a clear, steady resolve. We’re going to be doing a lot that might count against us if it comes to a fight and our motives aren’t benign.”

It made sense, though Kaelan had always viewed casters who fasted and meditated as being on the woo-woo side and to be avoided where possible. He took a pragmatic view of being a caster—he was born that way, it came naturally to him, and he could improve by studying and practicing, yes, but by staring at his navel and chanting? Not so much. Still, he took Max’s point about the risk of darkening their auras by killing Jannes and his crew with relish and satisfaction. This couldn’t be revenge-based. It was for the greater good.

That resolve was going to be hard to hold on to if he saw Hopper with a knife at his throat, though.

“Okay. Do we have everything we need to take care of it? You do realize we were just at a place that sells rock salt, herbs, et cetera?” Kaelan was teasing, and Max’s smile proved he got that.

“Everything we need is in the house already,” Max said.

“As long as you don’t think this is going to turn me into some kind of saint,” Kaelan warned him. He’d always tried to do the right thing, as much to make up for his father’s behavior as because he’d worried about the Netherhells, but that didn’t mean he’d succeeded. He had to hope he’d make up for the bad he’d done with the good he and Max were doing together.

“I want us to go into this with clear heads,” Max assured him.

“And ideally nonempty stomachs,” Kaelan said as his rumbled. “I’m gonna swing through the drive-through, okay?”

One chicken sandwich loaded with lettuce and tomato later, with a slice of chocolate-peanut-butter pie tucked away because his eyes were always bigger than his stomach, Kaelan pulled the rental car into their spot and shut it off.

“Bast’s gonna complain,” he said as they got out. Max was still chewing his last bite of hamburger. “Not only is his dinner late, but we had the nerve to eat before him.”

“We should see if Seshat has any ideas for a system to feed him when we’re gone,” Max said, wiping his mouth. “He looks at the automatic feeder as if it’s an agent of evil.”

“He’s spoiled,” Kaelan said. “He’s never liked the dry food. I’m sure he’d eat it if he was hungry enough. I mean, he wouldn’t starve himself.”

“I’m not so sure. He can be kind of stubborn.”

Predictably, Bast appeared before they’d shut the door, winding imperiously around Kaelan’s ankles until he was fed, at which point any pretense of affection was abandoned in favor of eager consumption. Kaelan tidied up the kitchen and went to find Max. The shower was running. That made sense; cleansings often started with the physical. Max’s clothes were in a small pile on the floor, but when Kaelan crept in and checked the pockets, they were empty.

“You don’t seriously think I’m that stupid, do you?” Max asked from the shower.

Kaelan froze, caught, guilty. He’d thought Max was too busy rinsing his hair to notice he was in the room. “I don’t think you’re stupid at all.”

“If I made it easy for you to commit suicide and murder in one swell foop, that’s exactly what I’d be.”

The mix of serious and joking threw him, but Kaelan was good at focusing on an objective. The bracelet would take him to Hopper, and now it had traces of Max on it too, and finding it would be easy because Max was— Wait. What?

“How is wiping that scum off the planet murder? He should have died around the same time as Moses, not hung around to torment us.”

The shower cut off, and Max opened the door, releasing a cloud of steam but no fragrance, as if he’d used only water to clean himself. Without reaching for a towel, water coursing over his shoulders and chest, he took a step forward, hands clenched by his sides. “If you die, it’ll kill me too. Believe it. So stay the hell away from Jannes until we’re ready and I’m by your side. Promise you won’t make me live without you even for the few minutes it takes to avenge you. And I will, no matter what it costs. I’ll send Jannes to the Netherhells and follow him down there to kick his ass some more if he touches you.”

It hurt to breathe. Kaelan’s chest tightened with love and panic, because he couldn’t promise never to leave Max, but he wanted to. Oh God, he did. Max growling out threats, intense, wet, and naked, was so fucking hot, but that didn’t arouse as much as terrify him. Being loved was a heavy weight to carry.

Through the roar of blood in his ears, he heard himself choke out Max’s name, and then he was getting soaked, pressed against Max, all slippery skin and muscles, kissing him with a hunger he knew he’d never sate.

“Don’t do that to me,” Max gasped.

“I won’t.” It was a rash promise, a stupid promise, one he might not be able to keep, but Kaelan made it anyway between desperate, crazed kisses. He was already wet to the skin and couldn’t have cared less. His soaked clothes made him slow and uncoordinated, but all he cared about was getting as close to Max as possible. If he could have climbed inside Max’s skin right then, he would have.

He almost wished Max was wearing clothes too, because it would have been easier to get hold of him. As it was, he had to push Max against the wall and pin him there. Kaelan licked his way into Max’s mouth with impatience, clutched at his hip and upper arm.

“Take,” Max said, “these off.” He tugged ineffectually at Kaelan’s wet clothes.

Kaelan made a sound of dissent. He needed Max more than he needed to be naked, even if having both together would have been perfect. Then, to forestall arguing, he went to his knees, wet denim clinging to his thighs and half-hard dick, and wrapped his mouth around Max’s cock.

The stifled cry Max made would have been worth it on its own, but the jolt of bitter-salt precum made it even better. Max slid his fingers into Kaelan’s wet hair, encouraging him. Kaelan took Max in deep, finding the point where Max’s cock choked him, blocking his breath. It was so arousing; Kaelan wanted to choke, wanted to fill himself up with Max. He grabbed on to Max’s ass and pulled him closer, trying without words to get Max to fuck his mouth, his throat.

Let Max stand under clean water, sluicing away the dust and grime of the day; Kaelan wanted the hot rush of Max’s release to erase every memory he had of doing this with other men. This was his purification, his way of preparing for the battle to come. He would face Jannes knowing there were no more doubts or half-hidden truths between him and Max.

Just this love, this longing.

He closed his eyes, savoring each deep thrust and the hoarse groans Max gave him as praise. Max’s ass clenched under his caressing hands, the thighs he was hugging hard as rock. The true strength of the man came from within, but there was nothing weak about the outer shell, and Kaelan gloried in it.

When Max came, flooding Kaelan’s mouth, his eyes stung with tears, but he didn’t care. Salt tears for Darius, shed and wiped away, leaving him empty of grief. Yeah, that worked as well as any ritual.

Max joined Kaelan on his knees, chest rising and falling as if he’d been the one struggling to breathe, and gathered Kaelan to him, his kisses as urgent as they’d been before. Kaelan let Max share the taste filling his mouth and returned every kiss until they gentled imperceptibly to the slightest brush of Max’s lips over his.

Kaelan’s erection was a dull ache, trapped under his sodden jeans. It didn’t matter. He wanted to slide his hands over Max’s slick skin, run his lips and tongue over Max’s throat and shoulders and chest. When he moved his mouth lower along Max’s stomach, Max threaded fingers into his hair and pulled him up, kissed him again.

“Wait,” Max said, cradling Kaelan’s face in his hands. “Come with me. Let’s do this right.”

Even unsure what Max meant, Kaelan was willing to go along with him. At Max’s urging, he shed his clothes and left them on the floor of the shower, then padded down the hallway to Max’s bedroom, where the bed had been turned down and some items placed around the room.

“Sit,” Max told him, so Kaelan did.

He watched as Max lit candles and then a charcoal tablet in a dish filled with sand. The smell of it was sharp, almost metallic, until Max added some kind of resin. The smoke wasn’t thick, but it released a comforting scent.

Kaelan had seen Max perform similar cleansings before, though it had been a couple of years. Once he’d cleansed a house after some dark castings had left it filled with negative energy; another time he’d cleansed three young people who’d been messing around with things they should have left alone. At the time, Kaelan had suspected Max was humoring them, but now he had no doubt Max was serious.

“Some people think that along with fasting, casters seeking clarity shouldn’t satisfy their carnal desires.” Max pulled a face. “That’s how they put it in one book I read. I disagree. We’re tapping into everything that’s good, that keeps us human, and sex—making love—is a form of magic in itself. Done right, for a split second, two become one. We’re going up against our adversary as a team. We have to. He’s stronger than me, he’s stronger than you, but against us both, united in a way he can’t come close to understanding because he’s incapable of love, we can win.”

Kaelan couldn’t fault that logic. Max’s words made sense to him on a level below conscious thought. He accepted them, and with his answering nod, a little of the tension left him. He hadn’t realized how much his head was aching until the discomfort eased. He was still aroused, but in a distant way, willing to wait.

Drawing in a deep breath of the aromatic air, he settled into a position he could hold for a while, cross-legged, hands on his knees. Most casters had been to a few yoga classes; it was useful to know how to control your breathing and concentrate without being distracted by external stimuli. Kaelan had avoided yoga until he’d met Max, who’d insisted he try a short course. Lying supine in shavasana, blissfully exhausted, he’d solved a problem he’d been working on for weeks—the solution to a timed portal appearing like a mirage, every sigil clear in his head.

Leaping up to find pen and paper to write the sigils down and disturbing the blanket of silence over the room had brought the wrath of the instructor on his head, but Natasha had relented in the face of his assurances that he would never, ever do it again.

Max hadn’t trusted him. The studio classes had become private sessions in their home, where the only person who could be disturbed was Bast, who liked to sit in the corner of the room, watching them as they stretched and twisted.

As Max smudged the room and then each of them with sage, Kaelan focused on his breathing. This wasn’t a spell, though he supposed some people might have thought it was. Like meditation, it was a way of getting rid of negativity, and even if the end result was more placebo than reality, if it made Max feel better, Kaelan would go along with it willingly.

He wasn’t paying attention to Max’s gentle chanting; he let it wash over him. By the time Max was done with the sage and had picked up a small bowl of salt, Kaelan was relaxed and mellow.

Max put four pinches of the salt into a matching dish of water and swirled them together, then moved to the bed and dipped his fingers into the water before trailing his fingertips along Kaelan’s skin. It wasn’t meant to be arousing, Kaelan knew, but his cock didn’t seem to care. It throbbed at the contact as Max traced purifying salt water over his shoulders and chest.

The simple symbols for clean and pure could barely be considered sigils, even though they served a similar purpose. They were printed on a piece of paper lying near the foot of the bed for easy reference, but neither Max nor Kaelan needed them. Max often went with the better-safe-than-sorry option, and considering what they’d been through in the past few days, Kaelan didn’t blame him.

“Your turn,” Kaelan said when Max had finished, and took the small bowl from him.

Drawing the sigils onto Max’s skin was like a different form of meditation; it took Kaelan deeper into his state of relaxation. His fingertips tingled as they moved over Max’s body. Not that there should be real power in this—he wasn’t expending any, though it did feel as if some was dancing across the space between his skin and Max’s.

He hesitated, then asked, “I’m imagining that, right?”

Max looked at him. “If you are, then so am I.”

Another careful stroke of his fingertips, this time across Max’s collarbone, produced the same tingle. It was a faint series of sparks like the ones created when an old-fashioned slot car slid across its track, fascinating, intriguing.

“It’s working,” Max said, pitching his voice low, as if talking too loudly would break the mood. “The connection’s being forged.”

If touching Max strengthened the bond between them, Kaelan was happy to oblige. He cleared his mind of all its worries, identifying each in turn, facing it, acknowledging its hold on him, then consigning it to oblivion. His mother had told him to put each worry inside a brown paper bag, close the top, and toss it in the trash, and with some tweaks, what had worked for a child sobbing over a blow from his father’s hand that’d left his face bruised worked for the adult.

Kaelan hadn’t minded the bruise as much as the fact it meant he had to miss school until it’d faded. His dad didn’t like nosy teachers with questions.

Now he took his guilt and sorrow over Darius’s death and Hopper’s kidnapping, his anger at and loathing of Jannes, the gray cloud of concern that the world as he knew it might come to an end if he failed, and sent it all plummeting into a bottomless hole, endlessly falling, no way back out.

Gone.

And that left room for the love, the hope, every positive emotion Jannes couldn’t come close to experiencing, ever. They would be his weapons in this fight, and they were strong as death, sharp as a winter wind, but free of the hate and vengeful emotions that would warp them.

Kaelan shifted sideways and pushed Max down onto the bed. “Close your eyes,” he said and, starting at Max’s shoulders, drew his fingertips down Max’s chest to his stomach. The tingling wasn’t strong enough to be painful, but it was too strong to ignore now and strangely addictive. The more Kaelan felt it, the more he wanted. He laid his hands flat on Max’s chest and rubbed his thumbs over Max’s nipples.

Max gasped; his eyes flew open. “That’s intense.”

“Yeah,” Kaelan said. “And not in a bad way.” He ran a hand lower to Max’s stomach again, traced a fingertip around Max’s navel, and then slid his hand around Max’s cock and held it. The tingling faded when his hand was still. “How’s that? Okay?”

God. Spread out on the bed, pupils wide and his lips parted, Max was the most incredible thing Kaelan had ever seen. He was broader than Kaelan and more muscular. No matter how much Kaelan ate or worked out, he’d always be slender; it was the way he was built.

“You have no idea how okay it is.” Max inhaled. “Your hand feels like it’s sinking into me. As if you’re touching me inside. Leaving part of you in me.”

“Show me.”

Max tugged Kaelan down beside him, then ran his hand over Kaelan’s face as if he were learning its shape in the dark, leaving a trail of sensation behind. Kaelan got what Max meant about the way even a light touch lingered. No, more than that. Imprinted his skin like an invisible tattoo, translucent ink swirling across his body in patterns only he and Max could see.

Lying facing each other, they touched, simple touches, covering every inch of skin they could reach, changing position when they needed to, making sure no chink was left in the armor. And that was what it felt like. A shield, but one powered not by sigils and casting ability, but their love, new but with roots that went back years.

Kaelan concentrated on finding the places Max had missed. He drew Max’s hand to his left shoulder, then behind his right knee. “There. Yeah. That’s it. That’s all of me. God.” His breath hitched, the shield complete. “I think I could fly. Walk through walls. Portal to the sun and come back without a tan.”

“Finish it for me,” Max urged him, and Kaelan caressed where he was told to, knowing he’d touched the right places when Max’s expression went blank, then ecstatic.

“It’s a different kind of magic,” Kaelan said. It was a revelation, and now that they’d started, he couldn’t stop. Nor did he want to. Max’s eyes were almost glowing in the low light, reflecting the flicker of the candles as Kaelan’s fingers brushed over him, touching tender places, inner thighs, the curve of a hip bone.

“You haven’t touched all of me,” Max said. “Not yet.”

Another time, that would have made Kaelan smile, but he was under the weight of unusual solemnity. It was a novel experience; mostly he was all jokes, lighthearted. He knew where Max kept his lube because he’d had to borrow it for an unexpected tryst on more than one occasion. It took seconds to slick his fingers and kneel between Max’s spread thighs. “Can I touch you here?” he asked, rubbing a fingertip across Max’s hole.

“Yeah.” Max’s breath was uneven.

Kaelan was careful opening Max up, teasing with the pad of one finger until Max’s body relaxed enough to let him in. He wasn’t sure how often Max bottomed; it had been a couple of years since they’d talked in much detail about their sex lives, and he didn’t want to hurt him. The slow push of one finger was plenty at first, and by the time he gained confidence and added a second, Max’s cock was flushed and hard against his stomach.

“I won’t break,” Max told him, the words jerky. “Trust you.”

Hearing he was trusted made Kaelan want to smile, because it didn’t need saying. Trust was the bedrock of their relationship, no matter what form it took. And yet he loved hearing it said.

“This is going to be incredible,” he promised.

“You in me? Oh yeah.” Max tightened around Kaelan’s fingers, then did something that allowed them to slide deeper. He groaned, the sound primal enough to heighten Kaelan’s arousal. Max was the controlled one, urbane, sophisticated—a guy who knew what wine went with what dish and was on first-name terms with the vineyard’s owner. Being the one to strip that veneer back to expose a man in love, in need, was a heady experience. “No more prep. Want you. Please?”

“God, you have no idea what it does to me hearing you say that.” Like make his balls turn to stone and his heart pound. He worked his fingers in and out once more, enjoying Max’s gasp of pleasure, then withdrew them.

“Could have heard it from day one if we hadn’t gotten our wires crossed,” Max told him.

“Hey, I’d have made you wait longer than that! I’m not a pushover.”

Max grinned, eyes hazy with desire, and put his hand behind Kaelan’s neck, pulling him down for a kiss, his lips moving deliciously slowly against Kaelan’s, coaxing a whimper from him as he responded. “For me, you would’ve been. Tell me. Tell me. Don’t let me be the only one in this relationship with no willpower, because believe me, when it comes to you, I’m all out.”

Accepting it was one thing; saying it out loud was something completely different. Kaelan wasn’t good at sharing his emotions or putting them into words. He had to remind himself that this was Max, who’d been his in every way but this for years. Kaelan had held back, kept himself from this for a reason. A good reason, because crossing this line scared the hell out of him, and the fact that he’d already crossed it more than once didn’t make this any easier.

The words stuck in his throat.

It was hard not to hate himself for being such a screwed-up asshole. He leaned in and kissed Max again, closing his eyes, then whispered, “I suck at this.” As apologies went, it was shit.

“Hey.” Max’s voice was so gentle and understanding it gave Kaelan the strength to open his eyes again. “It’s okay. I get it.”

“It’s not okay. You deserve better.”

“As long as I have you, I’m good.” Max smiled. “If you can’t tell me, show me.”

That Kaelan could do.

Max welcomed him in, the initial resistance of muscles softening until every thrust Kaelan made was a slick, sweet slide.

“Feels good,” Max said. “God, it’s never been this good before.”

Overwhelmed, Kaelan nodded. If it was the ritual responsible, not the connection between them, that would be awful. He shook away the doubt and concentrated on what he was doing. Intention mattered, and this was about building something meaningful, not getting off. He brought his energies to bear, noting every alteration of expression on Max’s face with a caster’s attention to detail, making each stroke provide more pleasure than the one before.

The tingling had eased off, but that was a relief instead of a disappointment; Kaelan didn’t think he’d have been able to keep from coming if it hadn’t. Max was hot and tight inside, the room smelled like resin and smoke, and Kaelan was on the verge of falling apart. He’d loved Max for years, and it had all been leading up to this moment, the two of them closer than they’d ever been. If he’d had more breath, he could have told Max everything, all the things Max wanted to hear.

Max shifted underneath him, changing the angle of his thrusts, and gasped when Kaelan pushed into him again. “There. God, right there.”

“Yeah? That good?” Kaelan wasn’t sure he was making sense. He was trying his hardest to keep it together, but he knew he wouldn’t be able to for much longer.

“So good.” Max paused, and Kaelan’s heart did something unexpected—stuttered, because he didn’t want to disappoint Max again—but then Max went on. “Tell me when you’re going to come. I want us to come together.”

It didn’t make more sense than what Kaelan had been saying, but at least he understood. “Yeah. Okay. Not yet.”

He wanted to come. God, he wanted to. Just a little bit longer. It was so good, it was fucking perfect, and he wasn’t ready for it to be over. Slowing down would help. Or thinking about something boring. Or—

“Fuck it,” Kaelan said with a moan. He changed his weight to one arm and closed his other hand around Max’s cock, buying himself another few precious seconds with the distraction finding a rhythm provided. “I’m so close.”

“Yeah,” Max agreed. He tightened around Kaelan’s dick, panting for air. The way his lips were parted made Kaelan lean down to kiss him. Max groaned against his mouth, and that was it for Kaelan; it was over. He cried out and came, the tingling rushing over him, shaking him, and taking his breath away. He was dimly aware that Max was coming too, cock pulsing in his grip. Max somehow managed to roll both of them onto their sides, facing each other, Kaelan still inside him as they fought for air.

“It can’t be like that every time,” Kaelan said finally. “Can it?”

“If it is, we’d never get out of bed, so we’d better hope it isn’t.” Max’s voice was a languid murmur, as if the shared climax had left him too wiped out to do more than form words and make them audible.

“Do you think it worked? The cleansing?” Kaelan knew the answer, but he needed to hear it from Max. His body, his spirits were buoyant, as if a fresh, clean wind had blown through him, dispelling every doubt and negative emotion. The good mood was temporary—he was human, after all—but if it lasted long enough for them to face Jannes, he’d deal with the loss of this incredible sense of peace.

Max smiled tiredly. “You know it did.”

“Yeah.” Kaelan withdrew from Max and sat up. “I feel like I could do anything.”

“Considering who we’re talking about, you probably could,” Max said.

“Like run a marathon. Or portal to a completely different galaxy.” A giddy sense of strength had replaced his exhaustion. “No, another universe.”

Max closed a hand around his wrist and pulled him back down. “You’d better not.”

“I won’t,” Kaelan promised. “Not without you.” He meant it as another example of the casual back-and-forth they’d had together for so long, but it ended up sounding more serious somehow. He leaned in without closing his eyes and kissed Max.

He still got a shock at how green Max’s eyes were. Of course, he wasn’t usually this close to them. Green flecked with darker green, cool and clear. Tropical-ocean green? Forest-pool green? Lime soda?

“You’re going cross-eyed,” Max told him.

“Mmm.”

Max chuckled. “Nonverbal too? Is it a side effect of the cleansing, or do you always go like this after making love?”

The question was said jokingly, but Kaelan didn’t want to think about the other men he’d lain beside after sex. Not with Max in his arms. He shook his head. “No. Maybe. I don’t know. Pick one.”

“Hmm.” Max studied him, then patted Kaelan’s ass. “I need to get back to the book. Promise you’ll stay close by and not disappear on me?”

Kaelan wanted to rescue Hopper as much as ever, but he didn’t want to add to the anxiety darkening Max’s eyes. “I promise. We go against him together. That’s what this was for, right?”

“Right,” Max agreed.

Bast jumped onto the bed, startling them both, and began to knead, paws and claws digging into Kaelan’s thigh, his purr a strident buzz.

“Has he been here all the time?” Max asked. “Because the door’s shut.”

“He’s a cat,” Kaelan said, adding, “I think we learned to portal from them.”

Bast’s purring grew louder, his whiskers tilted at a smug angle. Max reached out to stroke his fur. “Troublemaker,” he said fondly, and Kaelan smiled.

“Lucky for me, you like troublemakers.”

“Are you kidding? I love them.” Max pushed Kaelan’s hair back behind his ear in much the same way he’d petted Bast, then kissed him so sweetly Kaelan’s heart melted. “I love troublemakers.”

Chapter Thirteen

Bast: Cat goddess of ancient Egyptian religions. Also Bastet, Baast, Ubasti, Baset.

In modern times, scholars most commonly refer to the protector deity as Bastet.

Cats were revered in ancient Egypt, in part because they killed vermin and snakes, particularly cobras.

As a deity, Bast was known for being the goddess of perfumes and of protection during times of war. Women who wanted to become mothers would sometimes wear an amulet depicting Bast with a litter of kittens. She is the goddess of the rising sun, patron of firefighters, often seen depicted holding a sistrum, and is mentioned in the Book of the Dead.

The famous bronze statue known as the Gayer-Anderson Cat, housed in the British Museum, is a representation of Bastet.

[From Cats from Then to Now by Elspeth Darialle.]

“I can’t say I’m looking forward to this,” Kaelan said as Max turned off the rental car in the parking lot outside Magnus’s store. It was a couple of hours until sunset, and the heat that struck them as they stepped out onto the blacktop was verging on oppressive.

“It’ll be fine,” Max assured him.

Kaelan gave him a doubtful look. “Are you forgetting the part where I don’t play well with others?”

That wasn’t the way Max would have put it. It wasn’t as if Kaelan was some kind of misanthrope without friends, though to be fair, in the five years since they’d become partners, their social circles had shrunk. They enjoyed each other’s company so much that hanging out together was often everything they needed. “You don’t like taking orders,” he clarified. “Neither do I. Neither do most people.”

“Other people are better at it than I am,” Kaelan said glumly.

“You’re independent. Sure of yourself. A leader. None of those qualities are negatives if you’re willing to take advice from others. And you are.”

“I’m willing when it comes to you,” Kaelan said. His lips quirked in a grin. “Take that any way you like.”

That was meant to be distracting, but Max knew Kaelan too well for his tricks to work as effectively as they did on his here-one-day-gone-the-next lovers. “These people might not be able to help us much, but we’re fighting blind. Any light they can provide will be better than nothing.”

“And we might surprise you.”

Max jerked his head around, searching for the source of the mocking whisper in his ear. “What the hell?”

A man appeared beside him, stepping sideways through the narrowest portal Max had seen. It was like watching a letter pop through the slot of a mailbox. “Sorry. Eavesdropping’s a hobby of mine. You hear the best dirt that way.”

“You can hang out inside a portal?” Kaelan’s interest was immediate and evident, any outrage lost in curiosity. Max was too annoyed at the invasion of their privacy to share his enthusiasm.

“You mean you can’t?” The man—tall, stooped, his hair an untidy shock of gray and white—brushed a piece of fluff off the sleeve of his baggy coat. “Silly me. Of course you can’t. I’m the only one who can.” He blew out an impatient breath. “It’s hotter than Hades here. Why didn’t Magnus warn me?”

“You didn’t come from nearby, then?” Max asked. If he didn’t, Kaelan would.

“Reykjavík,” the man said. He shrugged out of his coat, then added, “Iceland?”

“We know where it is,” Kaelan said in a tone that hinted he might not have. Then, as he so often did, he showed his lack of book learning meant absolutely nothing about his intelligence. “Good location. Means you can portal to all sorts of places.” Having a base of operations to portal “home” to was helpful; having it in a central spot was even better.

“I don’t have a lot of trouble in that area. Christ, let’s get out of this heat.” The front door of the store, which Max had expected would be locked, opened when the man turned the handle, and he held the door for them to enter. “I’m Hallister, by the way.”

“Thanks. I’m Max, and this is Kaelan.”

“Where’s that girl of his? Not that I’d be surprised if she’s already moved on,” Hallister said, closing the door.

Kaelan frowned. “Joely? She was here yesterday.”

“That’s not what I meant.” Hallister waved dismissively. “Magnus’s protégés only tend to stick around for so long. It’s who he is.”

Max wasn’t sure he cared who Magnus was, at least not in that much detail. “You like him enough to show up.”

“Yeah, well, I owe him a couple of favors. Plus I have this whole thing about not being ready for the world to end.” Hallister grinned.

“I think that’s something we can all agree on,” Max said.

After the shimmering heat outside, the cooler air of the store was like a benediction. Max didn’t hear the subdued roar of an air conditioner, and he guessed Magnus was expending a trickle of energy on reducing the temperature with a casting. He approved. Instead of the dry, artificial chill of a mall, the atmosphere was invigorating, each breath carrying the heady whiff of an ocean.

“Come through,” Magnus called, and they made their way to the back room. It was crowded today, casters perched on chairs or lounging on cushions. One woman was floating in the air, benignly smiling at a much younger man as he tugged the hem of her flowing skirt to get it out of his face.

Beside him, Max was aware of Kaelan’s discomfort, experiencing it as a prickle of static on his skin. He shared it to a certain extent. Casters were like Kipling’s cat—they walked alone. To have a dozen in one room defined volatile. Magnus had better be prepared for explosions.

“This is everyone,” Magnus said as Max moved farther into the room and found a seat, while Kaelan loitered inside the door. “Unless someone shows up without having told me they’re coming, and they won’t be able to get in. I keyed the shields to you all specifically.”

“I’m here under protest.” The black woman who spoke sounded bored. “Thought you should all know.”

“Riorda doesn’t play well with others,” Magnus said. Max shot Kaelan a look; Kaelan grinned in a way that wasn’t amused, even though Max was pretty sure it had to be comforting that he wasn’t the only one.

“I play fine with others under my own terms.” Riorda had a hint of a Southern accent.

“I told you I wasn’t calling in any favors,” Magnus reminded them. “This is too serious for that.”

“But that’s manipulative,” Riorda said. “We’re supposed to refuse when something this big is at stake?”

“You’re supposed to make an educated decision based on the facts.” Magnus managed to remain patient somehow.

“Hey, if you’re happy standing on the sidelines when someone from the history books fucks with the time stream, go find a good place to watch the fun,” Kaelan told her. “It won’t save your ass, but at least you can die knowing you told us manipulative world savers where to get off.”

Riorda curled her lip. “Don’t know you, don’t like you. And I’m far from convinced this Jannes is the one from the Bible. That’s a stretch.”

“I’m another doesn’t-play-well caster,” Kaelan told her. “Being in the room with strange casters I don’t trust makes my skin crawl. No offense, and I’m sure most of you feel the same way. And we’ve done our research. It’s him. Once you know what and who to look for, he crops up all over the place. Usually standing in the shadows behind someone nasty. And now he wants his moment in the sun.”

The floating woman shook her head, her movements dreamy. “I love being here. I’m bathing in the flow of energy from you all. Deliciously energizing.” She raised her arms overhead and wriggled her fingers. “Streaming over me like white light. Thank you.”

“Leech,” Riorda muttered. “Dian, you can take your woo-woo crap and shove it. We’re here to take care of a renegade, and I don’t care if he’s a senior citizen. We portal in, hit him hard, hit him fast, and see how well he copes with being a smear on the floor.”

“We’ve got more in common than you think,” Kaelan told her. “Because that was what we tried. Didn’t make a dent.”

“Two of you tried,” she pointed out. “And for all I know, you’re as much a wannabe as Dian.”

Dian flicked a long red braid of hair back, her lips tight. “Excuse me,” she snapped, her languid drawl lost. “Were you there this solstice when I cast a quieting that spread for ten miles? A perfect silence with nothing to be heard but the vibrations of the universe and the Mother as they sang in harmony?”

Riorda’s snort was as expressive as a speech.

Smothering his impatience, Max cleared his throat. “Kaelan’s a gifted portal caster, and I was trained by Wainwright Dougal, if you want credentials. We can waste time showing off, or we can focus on a plan.”

“Did you find anything useful in Wainwright’s book?” Magnus asked.

“Hints, possibilities, but nothing concrete,” Max said, not troubling to hide his disappointment. “There’s a reference to a circle of three breaking the hold of the dark caster on the threads of time. Yes, it’s flowery, but that’s the way the caster wrote. As if he was allergic to plain speaking. He doesn’t say who the three are or what they need to do, just that by uniting, they can undo all that has gone before and restore order. To be honest, that’s vague enough that almost any interpretation could fit.”

“There are reasons we aren’t meant to disrupt the flow of time,” Dian said. She made it sound as if she were reading her words off a slip of paper from a fortune cookie. Max was surprised Kaelan refrained from following it up with, In bed.

“God, would you shut up with your hippie new age crap?” Riorda growled.

Hallister held up a hand. “Seconded.”

“Thank you,” Riorda said.

“Um, I was agreeing with both of you,” Hallister said, ignoring Riorda’s resultant glare. “I don’t know if I want to challenge someone who’s insane enough to mess with the time stream or alternate universes or whatever. It’s asking for trouble. Doesn’t this guy know that?”

“I don’t think he cares.” Kaelan seemed resigned to that truth. “He’s been getting other casters to do most of his dirty work for him, but that doesn’t mean he won’t end up in the Netherhells if something doesn’t go the way he’s planned.”

“Small consolation if it means the rest of us are left in a world where everything’s fucked up,” Hallister countered.

“A small consolation’s better than none.” Kaelan shrugged, but Max knew him well enough to realize he’d made a mental leap. Slowly, meeting Max’s gaze, he added, “No one lives forever, even if you’re really good at bodyhopping.”

How good was Jannes? And why hadn’t they thought of this before? Max liked seeing his face look back at him from a mirror and couldn’t imagine stealing a younger, healthier body to stave off death. It was also a fast route to the Netherhells, which was why the casters who tried it were usually escapees from there. Theories spun through his head. Jannes could have freed himself and taken over the caster who summoned him easily enough. Then, time limited, clock ticking, whose body could he take without karmic damage?

The memory of a grating voice echoed in his head. “Baby is something. My something now.” If a body was given freely, Jannes could occupy it without racking up negative points. A caster child, old enough to speak, too young to know what it was agreeing to… Jannes would have to wait for his host to grow up, but why would that matter? It was a horrific idea, but it had the cold efficiency Max associated with Jannes, and it explained his immense power and longevity.

“Except him, if he pulls this off,” Joely said. Max hadn’t noticed her come into the room, but he abandoned his speculations to look at her, struck by the flatness of her voice. She held a large quartz crystal, stroking it with the fingers of her other hand as if it was some kind of security blanket.

“The casting won’t work the way he thinks,” Hallister said, drawling the words. “There’s always a catch.” He nodded at one of the casters who hadn’t spoken—a man in his twenties, chewing a fingernail, lank hair falling over a thin face. “We know all about catches, don’t we, Tommy?”

“Hallister!” Dian’s rounded features tightened as she rapped out his name. “Tommy made a mistake. A learning error.”

“Bad enough that one cast in the gray, and poof! he’s gone,” Hallister said, snapping his fingers and making Tommy jerk violently. “How many people died because you wanted to meet your deadline and clinch that deal, hotshot?”

Tommy let his finger slip from between chapped lips, bitten raw. “S-six. But it wasn’t my fault! I didn’t know they wouldn’t eat, wouldn’t sleep, wouldn’t—”

“Wouldn’t stop working for you until they died,” Hallister finished. “And it seemed such a useful casting. So harmless.”

“I said I was sorry!” Tommy’s shriek beat against the walls like a trapped bird, making Max want to cover his ears and hunch over to escape the shared pain and guilt Tommy was broadcasting.

The room was quiet for a moment. Then Dian said, “We know you’re sorry. There’s nothing you can do now but try to make up for it.” Her tone was soothing; it washed over the room like warm water.

Tommy peeked at her from beneath his hair, then looked down at the floor again. He didn’t say anything, and Max didn’t blame him.

“So back to the actual issue at hand,” Riorda said. “We ought to get the three most powerful casters here together. Then everyone else is off the hook.”

Max wasn’t sure if she was hopeful that she’d be able to leave or if she was going to argue for being on the team. “Whoever the three are, it doesn’t mean they aren’t going to need support.” Part of him wanted to figure out a way to remove Kaelan from the equation, to send him home where he’d be safe, but Max knew that wasn’t a viable option. The chances that three people in the room were more powerful than Kaelan wasn’t likely, even if a lot of it was raw power he’d never been trained to use. Kaelan had gotten by on instinct for too long. If they got through this, Max vowed, they’d do something to change that.

“I think it’s pretty clear Magnus and I are the two most experienced casters here,” Hallister said. “The rest of you can fight it out among yourselves.”

“Are you kidding me?” Kaelan glanced at Max. “I thought we were here to get some help, not to play a rousing game of Who Has the Biggest Dick.”

“Young man!” Dian seemed offended.

“That’s what it sounds like.” Kaelan wasn’t backing down an inch. “There’s a chance—hell, more of a certainty—that people are going to die, and they won’t all be the bad guys and gals. Jannes has a team, and they’re bound to him in nasty, sneaky ways that mean they’ll pay the price for him without wanting to. He’s stripped their choice away.”

“Or offered them something worth risking everything for,” Joely said, meeting Max’s startled look squarely. “What? Everyone has a price, and he found theirs. That’s all I mean.”

“It might have started that way, but now they’re puppets, good for nothing but serving his sentence in the Netherhells,” Kaelan said. “Pity them, but don’t underestimate what they’ll do to keep him safe. Which brings me back to a question that needs answering. Who’s willing to commit to the fight knowing what’s at stake and what the risks are?”

With the soft pop of a snuffed candle, two of the casters who hadn’t spoken vanished into portals, one after the other. They took a few seconds to cast the sigils, but as they worked, no one spoke to dissuade them. Half-committed was no use in this fight.

“But what’s the plan?” Joely asked. “I mean, some people here might not be so willing once they know what they’re signing up for.”

“I don’t think we can decide what to do until everyone’s on board,” Kaelan argued. “I’m not saying once you’re in you can’t change your mind, but the plan will have to vary based on people’s strengths.”

“Why don’t we all list what we’re good at?” Max suggested. “I’m shields, mostly. Kaelan helped me get a lot better at portals, but it’s not one of my strengths.”

“You’re pretty good,” Kaelan told him. For a moment, it was as if they were the only two people in the room. “Um, okay. What about everybody else?”

It didn’t come as a surprise that Dian’s talent was mood shaping. Max didn’t want to think about being nearby when a caster with her abilities decided to rile things up instead of calm them down. He wasn’t convinced she’d be able to do the former, but he wasn’t sure it mattered.

“Portals,” Hallister said, raising a finger instead of his whole hand. “Offensive magic, because I’ve figured out how to use portals to my advantage.”

“Yeah?” Kaelan’s interest was with Hallister’s ideas, not the man himself. Max knew that, but it didn’t quell the pang of possessiveness that tore through him. That reaction needed to disappear. Those emotions didn’t go with trust, and his trust of Kaelan was absolute, unshakable. “Like how?”

Hallister hesitated, and Kaelan clicked his tongue impatiently.

“Oh, for God’s sake! It’s not like we can patent our discoveries and make a fortune. If we work out how to do something new, why not share it?”

“Because you could use it against me?” Hallister shook his head. “When this is all over, perhaps we’ll talk. No promises.”

From the intent look on Kaelan’s face, he was already trying to guess the things Hallister might be capable of, figuring out how to fight within a portal without any help from Hallister. Max knew the scale of the problems involved—casters could hover on the threshold of a portal for a short while, until breathing became an issue, but not with the ability to do a casting inside the natural dampening field.

“Forget it,” Max told Kaelan, the command rough-edged with worry. “Save the experiments for when it’s not life-and-death.”

Kaelan’s life. Kaelan’s death. God, the thought of losing him was enough to freeze Max’s brain, leaving it sluggish with panic.

“Sure,” Kaelan said, his agreement too easily won to be sincere. “I can portal in from the roof. Hover over them. Hit them from an angle they’re not expecting.”

“That’s not a bad notion.” Hallister’s voice was heavy with condescension. “Doesn’t everyone leave a hole over their heads when they shield? I know I always do.”

“Listen, you arrogant asshole—”

Joely tossed the quartz high, the action so smooth that it took Max a second to register how odd it was that the quartz wasn’t falling back into her cupped palm, but hanging in the air, spinning, shards of rainbows breaking from it as it caught the light of the overhead bulb.

The next thing Max knew, he was lying against the wall, curled onto his side, ears ringing and his lungs empty of air. He’d hit his head, and a sharp object was digging into his thigh. He coughed, inhaled, and realized he’d been tossed across the room, chair and all. The cause of his pain was a piece of the chair, broken off by the impact with the wall. Fog hung heavy in the air. Not smoke. It was the translucent shreds of Magnus’s shields.

Max cleared his throat. His hearing still wasn’t right, but he was aware of the mutters and coughs of the other people around him. He heaved himself over the chair and got to his feet. “Kaelan?”

Tommy lay on the floor. He seemed stunned, slowly pushing himself up to sitting.

Strong, familiar hands closed on his upper arms. Max lifted his head and Kaelan said, “Max. Are you okay?” One of Kaelan’s hands moved up and cradled Max’s chin.

“Yeah. You?” He clutched at Kaelan’s shirt, and they turned as one toward where Joely, her eyes shockingly silver, stood and smiled at them. Others around them were getting to their feet, and Max felt the crackle as Magnus tried to put shields back up and they failed immediately. All their personal shields were down too. This was bad.

“Poor boys.” Joely’s lips moved, but it wasn’t her voice Max heard. “Always one step behind. But then, this is a path I’ve been walking for a very long time.”

“Jannes,” Kaelan said, quick on the draw. “You’re digging yourself deeper and deeper.”

“You think I care about that?” Joely/Jannes laughed. “You’ve been so much fun, you two. Right from the beginning, all that time ago—for you two, at least.”

Max grimaced. “You think we didn’t know those were your followers performing the ritual the night we found Bast?” he asked.

“How stupid do you think we are?” Kaelan was all bravado; Max loved him for it.

“I doubt you’d like the answer to that question,” Jannes said.

Blood coated half of Magnus’s face, giving the macabre illusion that he was wearing a mask, but he didn’t wince as he confronted Jannes. “Using a mundane to bodyhop will kill her within minutes. My shields are down now; there’s no need to stay inside her. Portal here and fight us yourself.”

“Oh, were you under the impression she’s innocent? A victim? Sweet.” Jannes shook his head. “How do you think I got past your shields in the first place? She let me use her. Begged me to help her. You and dear Dougal were so kind to let her work in a junk store selling crap to the gullible masses. She wanted to be a lawyer. To have power, wealth, fame. Your kindness was an insult.” He smiled, twisting Joely’s fresh prettiness into tawdriness. “I may have neglected to mention the risks involved in playing host to a caster. So much on my mind, you see. I’m sure she’d forgive me if she were capable of speech.”

“Joely?” Magnus whispered, his voice cracking as he said her name. He extended his hand as if reaching out to her, though anything left of the young woman he’d known was being eroded under the stress of containing another entity. How long it took depended on Joely’s inner strength, but with the grim pragmatism the situation demanded, Max knew her death would provide them with an opening to attack. When her body failed, Jannes could take it over for a short while before it crumbled to ash, but there would be an instant when he was vulnerable.

Of course, Jannes knew that too.

“Such a promising girl. It’s a shame she was reduced to working for a man with no ambition and even less taste. A free witch’s hat with every purchase over a hundred dollars? You’re an embarrassment. Poor child.” Jannes was obviously trying to get a rise out of Magnus, and it was hard to say if it was working. “What a pity.”

“You only think you’re in charge of what’s happening here,” Magnus said. The jolt of energy Jannes shot at him from Joely’s hand hit him in the shoulder, and he went to his knees.

“Oh, I’m pretty sure I’m in charge.” Jannes easily deflected the magic Kaelan sent at him; it bounced off his shield and narrowly missed Dian, who was still sitting over near the wall where she’d been knocked by the explosion.

Riorda cried out a warning that came too late, then turned to glare around the room, her face contorted with fury. Max couldn’t spare the time to work out who she was most annoyed with, Jannes or Kaelan, but he appreciated the way she hurried over to Dian, sitting beside her and pulling her into a protective hug.

“You’re all so pathetic,” Jannes said with the air of a man making an unpleasant but not entirely surprising discovery. “Shortsighted, lacking in ambition… Ten in every million are born casters. Seven billion people in the world, so that means there are seventy thousand of us scattered around. And are we organized? Are we united? Are we ruling the mundanes and using our powers efficiently?” He slashed his hand through the air, creating an eye-watering flare of light, momentarily blinding Max, who hadn’t looked away in time. He blinked away the tears filling his eyes, trying to keep Kaelan in sight through the dazzle of shifting shapes in front of him. “No. We hide. Skulk. Tremble in fear.” Jannes grinned. “Where’s the fun in that?”

“We’ve been hunted in the past, or have you forgotten that?” Hallister said, scorn edging his words. “We’re outnumbered, as you’ve pointed out, and we’re safer hidden. Step into the light, and we become a target to be exploited, experimented on, or exterminated. Humans would fear or envy us, and both emotions would lead to nothing but trouble.”

“None of which will be a problem if you go ahead with this insane plan of yours,” Kaelan said, drawing Jannes’s attention, “because we’ll all be dead.”

“You don’t seriously believe that I’m single-handedly going to bring about the end of the human race, do you?” Jannes didn’t roll Joely’s eyes, but Max got the impression it was a close thing. “Poor, stupid boy.”

Kaelan moved to the left a little bit. Max watched Jannes watch Kaelan. It was deliberate, and as much as Max wanted to step to the left too, he made himself stay where he was. He wasn’t sure what Kaelan was planning, but if he moved, it might make Jannes suspicious, and Max didn’t think he was, not yet. “You don’t know what’s going to happen, unless you’ve already mastered time travel and other insane-sounding things, and I’m thinking you haven’t,” Kaelan said.

“It’s sweet that you’re concerned about the fate of the world. Or is it your skin you’re worried about?”

Kaelan glanced at Max. Damn. Not that Jannes wasn’t aware that they were somehow involved, but that glance would dispel any lingering doubt. “I’m worried about everyone’s skin.”

Jannes smiled. “But your partner’s, here, in particular. No wonder you were so willing to let my spell’s little side effect guide you.”

“Aw. You mean you made a boo-boo? Who’s stupid now?” Kaelan didn’t sound amused despite his choice of words, and Max didn’t blame him. “We know that part was a mistake.”

“I wouldn’t call it that. I did enjoy it.” Jannes slid Joely’s expression sideways into something more lascivious. It would have been less disturbing on the man’s own face. “And so did the two of you.”

“That part was a shame, wasn’t it?” Kaelan said. “You would have liked it more if we’d been fighting it.”

Max shivered and said, “He would have loved it.”

“Hm. Well,” Jannes said. “You two have disappointed me every step of the way. Why should that have been any different?”

“Sadist,” Kaelan said.

“As my host would say were she able, whatever.” A tremor ran through Jannes, and he doubled over, grunting as if in pain. When he spoke, it was in Joely’s voice, high with shock.

“Help me! I didn’t know this would happen! I didn’t mean— Magnus! Please!”

Max hesitated, logic telling him that Joely was so close to death she was past saving, compassion holding him back from launching an attack. If he had qualms, he wasn’t the only one; Magnus raised his hand as if to sketch a sigil, then let it fall.

Their opportunity was slipping away. Steeling himself, Max threw up a shield around Joely’s head, fitting it to her face so that nothing could get past it, not even air, holding it in place with every ounce of his power. He knew as soon as Jannes had control again, this small shield would fail, but he had to try.

He wasn’t fighting alone. Every breath he took was of air charged with energy, crackling against his skin, raising the hair on his body. Dian muttered under her breath, splitting her casting to encourage her allies and tangle Jannes in confusion and doubt. The certainty of victory spilled over Max like an invigorating wave, the sensation strong enough that he found himself smiling.

“Give me more,” Dian commanded, her hand tight on Riorda’s. “More!”

“Take it all,” Riorda answered.

“You amateurs,” Jannes said, sounding triumphant, although Max knew he had to be struggling to regain control. “You have no idea what real power looks like.”

“Pretty sure you’re wrong,” Kaelan said, taking Max’s hand. He opened himself wide, his power flooding into Max and amping up what Max was able to throw at Jannes by 200 percent. The shield around Joely flared, and Jannes winced, held a hand up as if to ward them off, then roared and sent a jolt of power like a sound wave that knocked them to the floor.

“What the fuck was that?” Kaelan asked, scrambling to his knees.

“Bad news,” Riorda said. Max followed her gaze to Tommy, who was limp and unmoving, and then to Joely’s body. Her eyes were open, unseeing, and a thin trickle of blood stained her mouth and chin. “Don’t waste his death. Get that thing out of here. Anywhere it can’t live.”

Max doubted it would be that simple. Jannes had sent part of himself into Joely, but he would’ve made sure that in an emergency, his awareness would snap back into place, leaving Joely’s corpse behind, used and abandoned. Still, it was worth a try.

“The trench?” Kaelan asked and, on Max’s nod, opened the portal.

Magnus looked away as Max checked Joely for a pulse that no one in the room expected him to find. She’d been dead the instant she allowed Jannes to invade her body.

She was heavy in Max’s arms, and he glanced down at her, noting the crushed feather earring hanging from her lobe, the dusting of eye shadow she would’ve applied that morning, blending the plums and grays into a dramatic sweep of color. She looked very young, and for all that she’d brought her fate upon herself, Max chalked her death up to Jannes without hesitation.

“Where are you sending her?” Magnus asked, his voice thick with grief. He hung on to Hallister’s arm for support for a moment, then went to kneel by Tommy.

“Bottom of the ocean,” Kaelan said.

Joely’s body twitched, a slow, stomach-turning writhe as if something inside her was alive and fighting to escape. Overloaded with recent events, Max didn’t even flinch. He was numbed by it all—the death, the constant barrage of attacks. Too much.

“Jesus!” Kaelan yelped. He glared at Magnus. “Can we discuss this later? One, two.”

He didn’t bother to say three. They heaved her body into the waiting portal with as little ceremony as they would’ve shown when tossing a sack of garbage into a disposal chute. The portal flickered, resisting the command to close, then snapped shut.

The room was silent for a while. Then, “How’s Tommy?” Dian asked. She sat on the floor, her previous aura of calm shattered. Now she looked shocked and exhausted.

“He’s dead,” Hallister said. “Normal dead. Whatever that is.” He reached for his coat, which was lying nearby, and used it to cover Tommy’s face and upper body.

“He was so young,” Dian said.

“He made more than his share of mistakes.” Hallister rubbed his hands on his pants as if trying to clean them.

Riorda was so subdued she seemed like a different person. “Is he in the Netherhells?”

“No,” Kaelan said. “He’s dead. He’s lucky.”

“Lucky?” Dian rose onto her knees. “Lucky?”

Riorda gave her a look. “Cool it, Di. If I had to choose between being dead or alive in the Netherhells, I know which one I’d pick. And I know which one Tommy would have picked too. He is lucky.”

“He died. Joely’s dead.” Magnus stood, touched the blood on his face, still wet, then studied his fingertips, a puzzled frown creasing his forehead. “I’m bleeding.”

Hallister caught him as he fell, swinging Magnus up into his arms with a grunt and staggering back. “Jesus, someone get his legs before I drop him. I’m too old to play Rhett, and he’s no fucking Scarlett.”

Kaelan rolled his shoulders, moving stiffly, then stepped forward to help. “At least this body’s still breathing,” he muttered.

Chapter Fourteen

One caster, two casters, three casters, four

Netherhells demon’s knocking at your door

Five casters, six casters, seven casters, eight

Try to beg for mercy, but it’s far too late

Nine casters, ten casters, ’leven, twelve, thirteen

Now thirteen’s gone forever, no more to be seen.

[Children’s rhyming game, poss. orig. sixteenth century. The children form a circle, linking hands and chanting the song as they walk (always widdershins), with one child in the middle playing the part of the demon. Blindfolded, he moves around, seeking his prey, and the child he touches when they reach thirteen is cast out of the circle. The rhyme is repeated, with the children moving faster each time. When the demon has only one child left to catch, he removes his blindfold, and the winner becomes the demon.]

Hours later, Kaelan’s sense of what he had to assume was shell shock hadn’t faded much. He kept blinking and rubbing the back of his neck and wondering if Joely’s possession and death had been real.

Overall, the evening hadn’t gone anywhere close to the way he’d imagined. The realization that Jannes not only had to be the Jannes, but that he’d almost certainly been bodyhopping into casters when they were still children, young enough to agree and not understand what they were agreeing to, was incredibly disturbing on multiple levels. It was the only way that made sense. While a mundane’s body couldn’t last long under the demands of a caster’s control, another caster’s would have close to a normal life span. Jannes would use a caster’s body until it became less than ideal for whatever reason, then bodyhop into the next. It was genius in an extremely fucked-up way.

Now, sitting on the couch, twisting Hopper’s bracelet between his hands, he couldn’t shake the dream-caught sensation.

It hadn’t taken long to find the bracelet; he knew Max too well, and the apartment, while spacious, held only so many hiding places. As soon as Max had gotten into the shower, he’d found it. The bracelet was made of knotted string in colors that didn’t go together—faded red, brown, what had once been forest green but was now more like teal.

The television turned on by itself, jarring him from his thoughts. Disconcertingly, instead of the program, he heard Seshat’s voice: “Attention. This is of interest to you.” That ability was new, though it made sense that she could use any speaker in the apartment to address them, and a state-of-the-art sound system meant every room had at least one.

Kaelan closed his left hand around the bracelet and leaned forward, scanning the screen.

It was a news station, with a woman in a red suit asking a question in an artificially bright voice. The camera changed over to the person answering her question, and Kaelan’s heart did something unpleasant as he realized it was Jannes. A glance at the lower corner of the screen showed the interview was live.

As in, happening right now.

No wonder Jannes hadn’t been interested in sticking around. At the time, Kaelan had thought he was toying with them, like a cat with a bunch of tiny, insignificant mice. But no, he’d had an interview to get to, apparently. “He’s alive,” Kaelan called to Max.

“What?” Max called back.

“Jannes. Definitely alive. He’s on TV.”

Max was with him in seconds, skin flushed from the heat of the water, naked, damp, and holding a towel in one hand and his clothes in the other.

Good look. Any other time, Kaelan would’ve played personal body servant and taken the towel from Max and used it to blot up every drop of water he didn’t catch with his tongue, caressing all that hot skin, drying it so that his hands could glide over it. If he ended on his knees, putting Max’s cock at a convenient height to be licked and sucked, all the better.

But now, with Jannes’s strident voice discussing redeveloping inner-city areas, the reporter nodding eagerly, microphone angled to get his every word, sex was way down on Kaelan’s want-to-do list.

And that was new, disturbing, and a fucking pain in the ass, because it’d always been high before. Top three, competing with eating and casting as his favorite activities.

These days the list was shorter: kill Jannes. That was it. Okay, rescue Hopper too, but realistically that couldn’t happen until Jannes was dead.

Max’s gaze went from the TV to what Kaelan held. “You found it.”

“You can’t hide anything from me.” Kaelan gave him a what-can-you-do grimace. “Know you too well.”

Max tossed the towel onto the couch beside Kaelan, then sat, dumping his clothes on the floor. “You’re not going to do anything I’d make you regret?”

“No. It helps to hold it. I can feel the connection. Know he’s alive.” It was a tingle, a tickle, impossible to describe in detail to anyone but another caster. Everyone was connected to everyone else, but the link was too slight to be perceptible unless it was augmented by friendship, love, or hate—a strong emotion.

Kaelan was so invested in Hopper’s rescue that the boy could’ve been anywhere on the planet, and the link between them would have thrummed, a steady pulse.

“Alive and unguarded by Jannes,” Max said, staring at the TV.

“Let’s go,” Kaelan said, adrenaline surging through him. “Quick. Now. And be back with Hopper before Jannes realizes what happened.”

“In what universe is that a good idea?” Max asked, but he was already getting up and putting on his clothes.

“Are you kidding? It’s a great idea! When else will we be sure Jannes isn’t there?” Kaelan shifted impatiently, then jumped off the couch. “Hurry up.” He glanced at the TV, where a smug-looking Jannes was answering another of the reporter’s questions. “Hurry.”

“I’m pretty sure Hopper doesn’t want me to show up naked,” Max said testily.

“I’m pretty sure he wouldn’t complain,” Kaelan shot back. He continued to watch the interview, morbidly fascinated by the chance to study the man he planned to obliterate from the face of the fucking planet. “God, look at him showing off his expensive suits and his— What the hell?”

Breathless with shock, he struck Max’s arm, then gestured at the TV.

Hopper.

“Shit.” Max grabbed the remote and started to record the channel, turning the sound up so that the honeyed tones of the reporter boomed around the room.

“Mr. Hopper—”

“Just Hopper.”

“That is so cute. Hopper, then. Tell us how you met Mr. Jannes.”

Hopper was tidier than Kaelan had ever seen him, scrubbed clean, his hair trimmed. His clothes were designer street chic, not the usual thrift store rejects that worked as a fashion statement without that ever being his intention.

Clone Hopper, a deep-level casting wiping away everything that made him Hopper, leaving behind an empty page for Jannes to scrawl on. Nauseated by what had been done to his friend, Kaelan watched as Hopper smiled, all charm.

“If I say I tried to pick his pocket, would I get arrested?”

Jannes chuckled before the reporter replied. “Not a chance, my boy. I wouldn’t let anyone take you away, don’t worry. How we met isn’t as important as where you’re headed. And it’s toward a brighter future than you can imagine. A future that’s just around the corner for you, so brace yourself.”

Was that a gleam of amusement directed at the camera, as if Jannes knew they were watching?

“You know I trust you,” Hopper told the asshole who’d brainwashed him. “Whatever you tell me to do, I’ll do it.”

“Of course you will,” Kaelan muttered. “Well, you can take your clothes off again, Max. The rescue mission’s canceled.”

“And what has Mr. Jannes done to help you?” the reporter asked Hopper.

“He took me away from the life—if you can call it a life—I had,” Hopper said. He looked like a mannequin in his new clothes. “And like he said, he’s guiding me toward a completely different kind of future than I thought I’d have.”

“He’s doing that on purpose,” Kaelan said, sinking down onto the couch.

Max sat next to him, close enough that their thighs touched. “Sending us a message,” he agreed.

Jannes put an arm around Hopper’s shoulders and smiled at the reporter, who seemed delighted by him. “Anyone who knows someone like my friend Hopper here—a young person who’s struggling on the streets, homeless, wondering where their next meal is coming from, unsure what the future holds—get in touch with me. My plans for the future can include you. Your life will never be the same.”

“Yeah, because they’ll be fucking dead,” Kaelan choked out. The camera zoomed in on the reporter as she gave a closing statement, and Kaelan looked down to see that his fingers were clenched so tightly around Hopper’s bracelet that his hand was shaking.

A moment later, Max’s hand squeezed his, stilling the tremor. “He’s alive. He’s well. And Jannes made a huge fucking mistake linking the two of them like that.”

“No, he didn’t, because what’s he got to lose? The casting works, no one’s going to remember the interview when Hopper disappears. It doesn’t work, and it’ll be because we’ve killed him, and he won’t care. He’s untouchable, and he knows it. Arrogant, amoral asshole.

“Alliterative insults. Nice.”

“Damn it, Max, this isn’t a joke!” Kaelan jerked his hand free and used it to push Max away from him. “That brainwash casting he put on Hopper scares the shit out of me! Suppose we do everything right and save him. With Jannes gone, will we be able to lift it? Because that’s not Hopper, and if any part of him is still awake, he’s screaming his throat raw.” Tears blurred his eyes. “They murdered Darius, and now they’ve fucked with Hopper. Jannes is dead. Do you hear me? Everyone answering to him, every single fucking one of them. I’m going to take them apart, shove them into a portal alive and begging for mercy, and let them visit Joely at the bottom of the ocean.” He drove his fist into the couch, jarring his arm with the force of the blow. “I’m going to—”

“Hey.” The gentle touch Max used to silence him was as effective as a slap. The light press of Max’s fingertips against his cheek anchored him in the here and now, draining the sick fury in an instant. “Kaelan. We. We’re going to do all that. You’re not alone. If you can’t hold that thought, Jannes has won before the fight starts.”

“No way,” Kaelan said, his voice uneven. “I’m going to rip him into tiny pieces. And then I’m gonna laugh when he gets dragged into the Netherhells.” He leaned in and rested his temple against Max’s shoulder. “Laugh, I tell you.”

“I’ll be laughing with you,” Max promised. “Both of us. Together. Okay?”

Kaelan nodded. Max smelled of shampoo and bodywash. Kaelan slipped an arm around his waist and held tight, and Max hugged him back.

“It’s gonna be okay. We can do this.”

But Kaelan didn’t want to hear promises Max might not be able to keep, not right then. Maybe later, when his natural optimism had resurfaced. He lifted his chin and kissed the side of Max’s throat, stubble rough against his lips. Slowly he slid his fingers under the hem of Max’s shirt until he touched bare skin. Max shivered, and Kaelan straddled his lap to kiss him.

“What about this?” he asked between kisses. “Can we do this?” His body was eager for it, but he needed Max to say yes to satisfy his emotional craving.

The remote was out of reach, but Max muted the TV with a flick of his hand, using his power in a way neither of them usually did. Get into the habit of it, and sooner or later the odds were good they’d do it in public without thinking. Magic wasn’t for the tiny chores, the trivial problems. It was answer enough for Kaelan, who helped Max skin out of his shirt before taking care of his own T-shirt, leaving them naked to the waist. He placed Hopper’s bracelet on the coffee table, crumpled from his grip.

“I want you, but it’s more that I want to know something in all this fucked-up mess is going our way,” he told Max. “Every time we try something, we come up against this wall, and it’s too high to climb, too thick to bash through, too long to walk around. But there’s you and there’s me, and I can do this. Kiss you, blow you, fuck you, be fucked. And part of me hates that it’s all I can do right now, and the rest of me wants it because—”

“Stop talking,” Max said, and there were those calming touches again, to his face, his shoulders, his chest. “You’re wound up, frustrated as hell, and you need to let it out. Punching that wall of yours won’t help, so we do it a better way.”

“By fucking?”

“By making love. And they’re not the same. You’re a caster. Intent is everything. I can put you over this couch and hammer into you until you see stars and forget everything for five minutes, but that’s two guys getting sweaty. I want to make you feel better. Love you, Kaelan. I do. It’s killing me seeing you like this.”

“Let’s go to bed, then.” Kaelan was still impatient, and nothing Max could say or do would change that. Max couldn’t change him.

Max’s touch on his sides was the kind of stroking someone might give to a frightened animal. “I don’t think you’re hearing me.”

“I am,” Kaelan said. “But I’m not the person you want me to be.”

“Now I know you’re not hearing me.” Max threaded his fingers into Kaelan’s hair and tugged, bringing Kaelan’s face down to his, and Kaelan let him because he’d let Max do anything. “You’re exactly the person I want you to be. I love you, not some weird idea of you that you seem to think I have.”

Up close, Max’s eyes were compelling. Kaelan wanted to stare into them forever, wanted to be caught here in this moment. “I don’t know how to do this.”

“Then let me help you. You’ve helped me. You taught me so much, and I’m not talking portals. You showed me how to let someone into my life.” Max kissed him on his bottom lip, teasingly. “Let me in. I’m going to love you anyway, so there’s no point in fighting it.”

“You’re insane,” Kaelan told him, but it seemed to be a form of insanity that worked for him, because sometime during their conversation, he’d relaxed; he wasn’t tense the way he had been.

“‘Love makes you do the wacky.’ That’s a quote from a Buffy episode, but don’t ask me which one.”

“Never watched it,” Kaelan confessed.

Max widened his eyes. “Never? Oh, that’s going to change. When this is over, we’re marathoning it. Pizza, beer, chips, popcorn, and a box of tissues or two.”

“ ‘When this is over,’” Kaelan repeated. “We’re saying that a lot. Placing our lives on hold. I don’t want that.” Especially not if the duration of the rest of their lives was better measured in hours, not days.

“So what do you suggest?”

“We have— We make love. Then you can show me the first episode, and we’ll see what I think.”

“I can do that,” Max said. “And if you don’t enjoy it, I’ll take the blame.”

“Enjoy what? The sex or the episode?”

“Both,” Max said and ran his hand down Kaelan’s back to his ass, caressing it in a way designed to make Kaelan’s toes curl.

“Take me to bed,” Kaelan whispered, in a completely different way than he’d meant it a few minutes before.

Max smiled. “I’d love to.”

They went to Kaelan’s room, where they didn’t bother to turn on a lamp; the light from the hallway was enough for casters’ eyes, and even if his previous desperation had faded, Kaelan was still eager to get his hands on Max’s bare skin. He took off his jeans and fumbled with the waistband of Max’s pants, needing them gone. “Want you naked,” he muttered. “How’s the shoulder?”

“Little bit sore,” Max said, hand closing around Kaelan’s dick.

Kaelan groaned and shoved Max’s pants and underwear past his hips without much grace. “You smell good. Makes me crazy.”

“Yeah? Can’t say I mind hearing that.” Max stepped out of his clothes and kicked them behind him with one foot, inadvertently squeezing Kaelan’s cock in a way that took pleasure almost to the edge of pain. Kaelan yelped. “Fuck, sorry!”

“Don’t be. It’s good.” Kaelan wasn’t into pain, not like that, but he was so turned on it didn’t matter. He pushed Max down onto the bed gently, aware again that if he couldn’t tell Max how much he cared, he could at least show him.

“I enjoy it rough sometimes,” Max said, matter-of-factly enough that Kaelan didn’t feel awkward hearing it. It wasn’t a revelation. “Not tonight, though. And that’s what I like; I don’t expect you to be the same way.”

“I can give you anything you need.” It was no more than the truth. Kaelan knew Max’s tastes didn’t run to wildly kinky, and he figured in the right circumstances he’d enjoy Max’s strength used to subdue him or get off on a struggle for dominance that would leave both of them the winners. “Ask, and I’ll do the same.”

“I can do that.” Max caught his lip between his teeth, eyes gleaming with arousal and amusement. He reached down, fingers brushing the stiff jut of Kaelan’s cock. “Want me to kiss this better?”

The thought made Kaelan’s breath catch. “Yeah. Please.”

Max shifted lower on the bed; Kaelan stayed still, waiting. He didn’t want to be pushy and shove his dick at Max’s face—that was rude—but not moving was killing him. Max slid his tongue over Kaelan’s shaft in slow motion, breath warm on Kaelan’s dry skin but cool where it was damp.

“Where did it hurt?” Max asked. “Here?” He pressed a chaste kiss to a spot that made Kaelan shiver. “Here?” Another kiss.

Kaelan bit his lip as Max’s lips closed around the tip of his dick. The inside of Max’s mouth was hot and slick and soft. Closing his eyes, Kaelan focused on how good it was, the slow glide of lips and tongue, Max’s lips and tongue. Max’s mouth, which had kissed his in every manner possible—casual, friendly, affectionate, sympathetic, loving, wanting. Max’s hand, resting on the inside of Kaelan’s thigh, moved higher, knuckles brushing his balls.

“Tell me what you want,” Max said, then circled the head of Kaelan’s cock with his tongue.

“This is good,” Kaelan said. His eyes were still closed, and he ached for more.

Max’s teeth scraped the base of Kaelan’s shaft. “Tell me.”

“I want you to fuck me. Um.” He knew Max wanted him to call it making love, but the words were hard to say. “Want you inside me.”

“Mmm.” Was it agreement, that quiet hum? Approval of the idea or doubt? The flicker of Max’s tongue against his balls made analysis challenging. “Love to,” Max murmured, his lips warm against the skin he’d been licking. “Great idea. Wonderful.”

Kaelan giggled, the sound escaping him, irrepressible, unexpected. “That tickles.”

“What, this?”

“Oh God, yes, that!”

Squirming as Max continued to talk with his mouth on Kaelan’s balls, Kaelan missed the moment when Max grabbed the lube or called it to him, but a finger in his ass, piercing him sweetly with one sure thrust, turned his laughter to a throat-caught moan of delight.

God, that felt great. One finger, yeah, but it was Max’s finger, and those tingles were back. Kaelan had experimented with lube that heated up or stayed cool and never been a fan—it either didn’t work, which was a letdown, or it did, and it was a distraction—but the reminder of their bond in the form of that faint tingle was incredibly arousing.

Max’s finger crooked, providing pressure on Kaelan’s prostate that made him gasp in relief and need. “How’s that?”

“Good.” Kaelan panted, lifting his hips. “More.”

“Yeah? Two fingers?” Max withdrew his finger, and Kaelan whined in protest.

“No. Your cock. In me. Please.” Kaelan thought Max was going to make him wait, but Max lined up his cock, pressing it to Kaelan’s slick hole. “God, yes, Max. Please.” He didn’t usually beg during sex, but for Max, he’d crawl on his fucking hands and knees.

“Easy,” Max said. “Slow.”

Kaelan wasn’t sure if Max was talking to himself as he thrust forward, hard cock stretching Kaelan wide. He gripped Max’s upper arms harder, a whimper escaping him, and Max stopped.

“It’s okay,” Max gasped. “We have time.”

“Not enough.” Kaelan whimpered again and rocked his hips, trying to get Max deeper.

“Let me try something?” Max asked. “I’ve done this to myself but never anyone else. Couldn’t, unless they were a caster.”

“Huh?” Brain fogged with desire, Kaelan licked his lips. “Umm, sure. Do it. Do anything. Do me.”

Max grinned wickedly. “You’ll like it,” he promised. Eyes half-closed, frowning, he paused, cock in Kaelan, his hands on Kaelan’s knees.

Kaelan waited and was on the verge of complaining when a shield enveloped his cock—a warm shield that moved, mimicking the action of a hand jerking him off but without friction.

“Oh my God.” He sucked in a quick breath before he forgot he needed oxygen, which was a very real possibility. “That’s so good. So fucking good.”

“Mmm,” Max said again, sounding distracted but not to the point of being unable to resume fucking Kaelan. “Two casters in bed? Don’t tell me we can’t shake things up a bit. Ever wondered what sex floating would be like? Or underwater with no need to worry about running out of air?”

“Sounds like fun, but right now, this is all I want.” Kaelan flexed his muscles, rewarded with a flurry of fast strokes that made him grunt with pleasure as he soaked up the relentless assault. “Yeah. Like that. God, how can you keep the shield going?”

He was used to a few clumsy grabs at his cock when he was being fucked, but the delicate feathering of pressure over his cock, alternating with a firm grasp as the shield contracted, drove his arousal higher with every passing second.

“Practice.” Max seemed to be concentrating, which sent a twinge of guilt through Kaelan. He wanted Max to enjoy this, not hold back because he was making sure Kaelan was enjoying it, but God, it was so good he couldn’t form words.

Not a single word. He gasped, every part of his body turned on. His nipples were so tight they ached, his eyes dry because he couldn’t blink. Max’s cock rubbed steadily at his prostate, and Max’s shield stroked his dick. He was caught, close to release but unable to reach it. Max’s thrusts were slowing down enough that Kaelan couldn’t come no matter how desperately he wanted to.

Neither could he beg.

“Love you,” Max said, looking down at him. “Whether you want me to or not.”

Kaelan did want it. He wanted anything Max would give him. Even if he didn’t deserve it, that didn’t stop him from wanting it.

“Love me,” he said, finding his voice, and meant it in so many ways. “Max, love me. Don’t stop. Please.”

He saw a shadow of disappointment darken Max’s eyes and knew Max thought he was begging to be fucked, no more than that. He needed to explain, to take that hurt away, but Max began to move, redoubling his assault on Kaelan’s senses, his face showing nothing but the expression an aroused man close to climax would exhibit.

It was impossible to explain anything when his body was singing a pure note of exultation. Impossible to do anything but surrender to an orgasm that lit him up like sunrise, a deceptively slow, unstoppable event that nothing he said or did could divert.

He fell, he flew, he soared. If they did leave the bed to hover over it, he wouldn’t have been surprised, but he wouldn’t have noticed either. Max surrounded him, held him close, turned them without pulling free so that as the ecstasy ebbed, Kaelan had Max’s chest to rest his head against, the fast thump of Max’s heartbeat loud in his ear.

It was an awkward position and not one they could stay in for long, but Kaelan soaked in the comfort of being close to Max, breathing in the light musk of Max’s sweat. They were joined by so much more than the softening cock inside him and what they’d done.

So why the hell couldn’t he tell Max that?

Chapter Fifteen

Shield installation!

Enhance the safety and security of your home

Serving the valley and surrounding areas for the past twenty-five years

Satisfaction guaranteed or your money back

Whole-house special—up to 1200 sq. ft. only $149.95

Call today and we’ll include a personal shield (minimum duration three months) FOR FREE

1-800-555-5678

[Postcard tucked into mailbox. To mundane eyes, it’s an advertisement for carpet cleaning.]

Sometime around two in the morning, Max got up. He left Kaelan sleeping and went to the computer, where he spent almost half an hour composing a brief e-mail to his brother. It shouldn’t have taken that long, but he had to keep erasing phrases or whole sentences and starting again. In the end, it was short and to the point.

Rafe,

Things are complicated here, and I’m not sure what’s going to happen. I don’t know how much you know about this guy Jannes. Trust me when I say he’s bad news, and if you can do stuff to slow him down, good for you. But be careful. He won’t hesitate to come after you if you end up on his radar, and it’ll be your hide he’s focused on, not your reputation or your bank account.

— Maxfield

He hit Send and leaned his elbow on the desk and then his face in his hand. He had no idea if his message would end up in Rafe’s junk mail and never be seen; he didn’t expect a reply in any case. It hadn’t seemed right not to try once more.

Kaelan would be annoyed if he knew. He thought Max should write off his whole family—not an unfair opinion under the circumstances—and didn’t keep it a secret.

On his way back to bed, Max made a detour to the living room and grabbed Hopper’s bracelet from where Kaelan had left it. It was too small to fit on his wrist, so he tucked it up high over the frame of a picture in the hallway. He couldn’t hide it from Kaelan long-term, but he didn’t think long-term was worth worrying about right then.

When he crawled back into bed, Kaelan murmured unintelligibly and snuggled up close to him.

The snuggle made Max ache with the sense of something missing. He was closer to Kaelan than ever, looked at one way, but seen from another angle, he was reminded of a mountain he’d climbed as a teenager. The summit had been visible from the trail. Then as he’d climbed to it, he’d realized it’d been an illusion; the true summit was far beyond the first, and what lay ahead dwarfed what he’d achieved.

Hearing Kaelan admit his feelings and seeing him accept what Max offered was his new target. What was holding Kaelan back? Lack of courage? Kaelan? The idea was ludicrous. The man would’ve walked into the Netherhells without flinching if that was what it took to save Hopper. Unless he was one of those men who saw committing to a single partner as a sign that middle age was approaching. But they were casters; their life span wasn’t measured in a handful of decades. Disease couldn’t touch them; injuries healed quickly. They weren’t invulnerable, but they aged slowly as long as they weren’t messing around with castings they had no business being anywhere near.

Dismissing his thoughts, Max settled down, but he’d barely closed his eyes when his phone rang. Startled, he lunged for it, disturbing Kaelan, who muttered a protest. Max’s hand slid off the phone at the first attempt to pick it up. He clicked his fingers, conjuring a small glowball, its light soft enough that it didn’t dazzle him.

Before he formulated a greeting, the caller spoke. It took Max a word or two before he recognized his brother’s voice.

“Maxfield? It’s me. I know it’s late, but you only just sent me that e-mail, so I thought—”

“Yeah, I’m awake. What is it?”

Kaelan sat bolt upright, hair wild, yawning in a way Max found endearing, though Kaelan would give him hell if he ever shared that thought. Kaelan raised his eyebrows in a question, and Max mouthed Rafe’s name.

“What!” Kaelan said, then clapped a hand over his mouth when it came out louder than he’d probably intended. “Sorry,” he whispered.

Max shook his head, more focused on Rafe, who’d been saying something about Jannes but paused to ask, “Who’s that?”

“My partner,” Max said. He didn’t care how Rafe took it. After years of phone messages going unanswered and e-mails ignored, he’d developed a sort of love-me-or-leave-me attitude. If he had to pretend— Well, it didn’t matter. He wasn’t going to do that.

“With you at three in the morning? More than a business partner, then?”

“Yes.” Max tried not to sound irritated. “So. You got my e-mail.”

“Obviously. How do you know Jannes?”

“You do realize—and it’s not that I don’t want to talk about this; I do, and I want to talk to you—that you returned my attempt at contacting you for the first time in years. Years.”

“Yeah,” Rafe said. “About that.”

“Is he being a jerk?” Kaelan asked, and Max shook his head again.

“It’s messed up, I agree,” Rafe said. “Mom and Dad aren’t getting over the whole you-not-being-a-lawyer thing.”

“You don’t say. So you let them control you?” Max rubbed his forehead, pressing his fingertips against his skin as if that would vanquish his headache. “Maybe your instincts were right after all. Let’s not talk about this right now, and focus on Jannes.”

“Oh, I’m focused,” Rafe said with a weary bitterness that jolted Max. “To the point where he’s all I am focused on. The man’s like smoke; I think I’ve nailed him, and he slips away. He’s endlessly polite and helpful. He says he’s happy to meet with me whenever I ask—”

“You’ve met up with him? Face-to-face?” Gripping the phone hard enough that the edges cut into his palm, Max struggled to find the words to keep his brother safe without alarming him or worse, rousing the stubbornness that was one quality they shared.

Even if neither of them came close to matching Kaelan in that department.

“Not yet, no. So far, I’ve been palmed off onto his assistants, but recently he’s seemed pretty eager to meet.”

“Because he knows you’re my brother.”

“What’s that got to do with anything?”

“I don’t know where to start,” Max said. “It’s not safe to talk about it. I’m shielded, but your place is probably bugged.”

“Bring him here,” Kaelan said, urgency sharpening his voice as he scrambled out of bed and looked around for his clothes. “Now. Get him inside our shields.”

“I don’t want to discuss that magic crap,” Rafe said.

“I don’t care if you want to discuss it or not. You aren’t safe. Are you still in Waterbury? Mount Vernon?”

He pictured Rafe’s expression, mouth agape, in the pause that followed. “How do you know where I live?”

This wasn’t the time to tell Rafe that Max had driven past his house more than once, checking it out. He wasn’t sure why beyond basic curiosity. “It’s a matter of public record,” he said, which was true. “I’m hanging up. We’ll be over in a minute or two.”

He pushed the End button as Rafe said, “No, wait.”

“Here.” Kaelan had already gotten out some clothes for him and shoved them at him. “Where did you say? Is Mount Vernon a street?” He checked his phone for the details.

“Avenue, I think.” Max pulled on briefs and pants, then tugged the T-shirt over his head. It was old, a little too small, the neck too snug, but that was the least of his problems right then. “I can do it. I’ve been there before.”

Kaelan opened a portal. Max would have to do without his shoes, apparently. “Let’s go. We don’t have time to waste.”

“You’re in a hurry.”

“Hell, yes.” Kaelan flailed his hands, gesturing at the portal. “Call it a hunch, call it paranoia, I just know we need to go.”

Without wasting time on a nod, Max stepped into the portal, Kaelan on his heels. The transition from here to there seemed to take twice as long as usual, and when he emerged, he was prepared to step out into a fight, or worse, an empty house echoing with screams.

Instead, he was in the hallway of Rafe’s house, face-to-face with his brother, who was wearing a suit and tie over a perfectly pressed shirt, as if Rafe was heading out to a business meeting, not in his home in the middle of the night.

“Does casual Friday even exist in your world?”

“It isn’t Friday,” Rafe snapped back, and for a second they were kids again, squabbling over which Power Ranger was the coolest.

Kaelan stepped out, and Rafe jerked backward, face blanched, eyes wide, as if the enormity of what he’d seen—two men appearing from a swirl of light—had been too great to absorb instantly, giving him a space of time when he could pretend it hadn’t happened.

“Who are you?”

“Kaelan. I’m Max’s partner.” Kaelan scanned the hall, his gaze darting from the rooms opening off it on either side, to the corridor leading to a kitchen, and then to the floor above, reached by an impressive stairway. The ceiling was vaulted, a skylight far above their heads a rectangle of darkness. “You need to come with us. Won’t hurt, I promise. I open a new portal, we step inside, and you’re safe.”

Rafe shook his head, a sharp, decisive gesture, anger restoring his composure, Max guessed. “There is no way in hell I’m having anything to do with this spellcasting crap. I’d like you to leave now. Using the goddamned door like normal people do.”

“You aren’t safe here. I know it sounds crazy. Okay, I don’t, but I can imagine it does to someone who doesn’t want to believe in it.”

“I wasn’t given a choice!” Rafe said hotly. “My brother saw to that.”

“Shut up!” Kaelan’s eyes flared with anger and, underneath that, what might have been satisfaction. He’d probably been wanting to yell at Rafe for years. “We don’t have time for this shit. We’re getting out of here now.”

Max was reaching for Rafe’s shoulder—he wasn’t sure how much Rafe would resist, or how physical he was willing to get if Rafe did—when the sound of breaking glass came from above. He tossed a shield up like opening an umbrella. Shattered splinters from the skylight in the ceiling rained down around them, bouncing on the floor.

Jannes wasn’t going for subtle this time, but once again he’d avoided the personal touch. The couple who floated down from the ceiling, riding a cushion of thickened air, holding hands, were strangers to Max. They were smiling, confident in their control of the situation, their free hands cupping globes of writhing fire.

They’d planned on the shock factor, Max assumed. They knew Rafe was awake and would come running at the sound of breaking glass, expecting intruders, possibly armed, and they knew what the sight of them in midair would do—freeze him, leaving him scared and vulnerable.

It took two seconds by Max’s count for their smiles to slip as they saw that Rafe had company and for cold determination to replace cockiness.

But though Kaelan was gearing up for a fight, all but simmering with the need to lash out at someone, Rafe was defenseless, and Max wasn’t prepared to put him at risk to take out a couple of second-tier casters.

And that was what they were. If Max had made a grand entrance like that, he’d have gathered every shard of glass, forming it into a glittering ball, a weapon and an exercise in control. He wouldn’t have drifted down, making himself a target, and he sure as hell wouldn’t have been holding hands like a teenager on a date.

It figured. Why send top-notch casters out to grab a mundane? What was the point?

“Split them up,” he told Kaelan. “Smoke the place so they can’t see us, and then we get the hell out of here.”

“You brought them here!” Rafe said, sounding angry with Max, not the invaders. “What gives you the right to involve me in your private wars?”

“For fuck’s sake, shut up,” Kaelan snarled. He swept his hand through the air, gathering the glass fragments from the floor and shaping them into a spear, jagged, deadly.

“Read my mind,” Max said without the slightest surprise. They viewed problems differently, but when there was an obvious weapon to hand, provided by their enemy, why not use it?

The casters weren’t shielded. They wouldn’t have thought they needed to be, expecting only Rafe. A quick motion of Kaelan’s arm sent the hastily fashioned spear flying toward them. One shouted a warning, but it was too late. The spear hit the space between them, and they let go of each other. One of them managed to stay in midair, but the other lost control and crashed to the floor.

“Get him out of here,” Kaelan snarled at Max, opening a portal.

“I’m not leaving you,” Max told him.

The caster who was still in midair started shooting blasts of energy at them. Max cursed under his breath and shifted his shields, which deflected the blasts without too much trouble. Thank goodness for small favors. Kaelan shot back, and Max looked at the caster who was lying unmoving on the floor. He stirred, groaning, and Max decided this was not cool. They needed to get out now.

“Time to go,” he said grimly and shoved Rafe into Kaelan’s still-open portal without warning. Rafe’s startled expression was there for a moment, and then he was gone. “Kaelan, now.”

Kaelan reached for his hand. Max smacked his palm against Kaelan’s, hanging on, and they jumped into the portal together, the tight grip of Kaelan’s fingers grounding Max as nothing else could do.

They’d barely cleared the portal when Kaelan snapped it closed. If the casters had tried to follow them, they were dead. It was difficult to care, and Max hated that he’d become so callous, but Jannes hadn’t given them much choice. If the situation was life-and-death for someone, that someone wasn’t going to be a person Max loved or was duty-bound to protect.

“You asshole.” Rafe was scarlet with anger, spluttering out words that would’ve gotten his mouth washed out as a kid. “Arrogant motherfucking freak!”

“Me or him?” Kaelan asked, letting go of Max’s hand and brushing himself down as if he wasn’t wearing jeans and a creased T-shirt but a suit like Rafe.

“Both of you!”

“Now, see, I would’ve gone with a thank-you for saving your miserable ass, not a—” Kaelan frowned and turned away from Rafe. “Max, you’re bleeding.”

“No, I’m fine.” Pain shot through his feet, contradicting him. Shit, the broken glass. He’d moved across the tiled floor and felt nothing in the need to get Rafe to safety, but he’d picked up a dozen glass splinters or more. His soles burned as if they’d been dipped in acid. “Ow. Okay, now it hurts. It didn’t before you mentioned it.”

“Sorry, babe. Pretend I didn’t and sit your ass down.”

Max took a few hobbling steps and sank into the middle of the bed, still rumpled from their frantic rush to get to Rafe, his feet hanging over the edge for Kaelan to examine. He closed his mind to the discomfort. The next minutes would be unpleasant, but once the glass was out, he’d soon heal. It was a flesh wound. Well, a dozen of them.

Rafe came forward, his face losing its flush, his tirade silenced. “Anything I can do?” he asked hesitantly. “Bathe them and wash the glass out? I’ll get some water if you tell me where the kitchen is.”

“The kitchen’s upstairs,” Kaelan told him. “A bowl of warm water and some clean dishcloths from the second drawer would be great.” He didn’t even glance at Rafe as he knelt in front of Max, his hand curled around Max’s ankle. “Hm. Heel’s okay. You didn’t feel it?”

“No. Too focused.” He’d been more worried about the glass falling on their heads than what had been under his feet. “Ow!”

“Sorry, sorry. I want to get it out.” Kaelan went and got a box of tissues, then came back and flicked a bit of glass out of Max’s foot so quickly it didn’t hurt. He set the bit down on a tissue. “Those guys weren’t talented enough to follow us.”

“Jannes knows where we live,” Max pointed out.

“Yeah, and I’m sure he’ll tell them if he hasn’t already. But our shields are up, and I think they were too surprised things didn’t go their way to do anything super soon.” Kaelan removed another bit of glass and pushed at Bast, who had appeared and wanted to rub against Max’s foot, with an elbow. “No, cat. Any other time you’d be following a stranger in the house all suspicious, but tonight you have to show an interest in bleeding feet?”

“He’s curious. Come here, Bast.” Max patted the bed next to him, and Bast eyed him, then jumped up onto the mattress.

Stroking the cat’s glossy fur helped Max relax, even when what was being done to his feet made his jaw ache as he held back a grunt of pain. Kaelan stressed over Max being hurt as it was; adding in sound effects wouldn’t help.

Rafe hovered, wincing with sympathy as slivers of glass dropped into the small bowl. When it was over, he leaned in, studying the soles of Max’s feet with more attention than they deserved.

“I don’t see any cuts now that the blood’s been washed off.”

“You won’t,” Kaelan said. “We were in a rush to get the glass out because if the skin healed over the splinters, it could get nasty. Minor wounds like this disappear fast.”

From the way Rafe’s lips tightened, Max guessed that’d been the wrong thing to say.

“Yeah, we’re freaks,” he said before Rafe replied. “But we’re hard-to-kill freaks.”

“Unlike me.” Rafe swallowed, the soft sound audible in the silence. “Is that what those people were there to do? Kill me?”

“Probably.” Max wasn’t sure there was a right thing to say at that point. “If they’d wanted to kidnap you, they’d have made less mess. Plus it sounded like Jannes could have talked you into meeting with him if that was what he wanted.”

Rafe didn’t argue. “Why?”

“It isn’t as simple as some real estate,” Kaelan said. “He has plans. Complicated plans.” He gave Max a meaningful look that Max understood to say they should keep some of the details to themselves. Like Jannes’s age.

“You think I’ll be safer if I don’t know,” Rafe said before Max shifted the subject onto a different track. Max found himself grinning ruefully. “What? I’m not an idiot.”

“No,” Max agreed. “I’d almost forgotten how smart you are.”

“It’s been a long time,” Rafe said. He didn’t look happy, which was something.

“Smart enough to stay here until this is all over, one way or another?” Kaelan asked.

“How long are we talking? Because I have commitments. People counting on me. I can work from here as well as my home office tomorrow at a pinch, but I’ve got appointments. I can’t drop out of sight and hide in a hole.”

“We have different definitions of holes,” Kaelan said, a snap to his voice. “This place is a fucking palace compared to where I grew up.”

Rafe looked around, but though the place was luxurious and cozy—not an easy combination to achieve with a designer breathing down Max’s neck who had an allergy to comfortable chairs and practical layouts—that was the way homes were in Rafe’s world, so his shrug held incomprehension as much as exhaustion.

“It’s nice,” Rafe said. He gave Kaelan the distant smile of royalty being polite to a peasant. “So, you live here with my brother? Finding a rich lover is like winning the lottery, I expect. Congratulations.”

Oh God. Before Kaelan’s bristling indignation expressed itself in words, Bast arched his back and spat at Rafe, tail lashing from side to side as he prepared to launch himself from the bed.

“He doesn’t like you,” Kaelan said, not troubling to hide his amusement. “Neither do I. Bast, tuna. Treat time for you, buddy.” He nodded at Max. “Catch up with your baby brother. I’ll be in my room.” He bared his teeth at Rafe in a grin. “Show him the lease on this place. The one that has both our names on it because I bought in when we became business partners.”

Max listened as Kaelan went down the hallway, talking to Bast, then focused his attention on Rafe. “He’s right. About everything.”

“Yeah, well. I’m okay with the cat not liking me. I’m not too crazy about him either.” Rafe offered him a strained smile.

Max was tempted, so tempted, to let Rafe’s humor defuse the tension, but it wouldn’t be fair to Kaelan. “I mean it. This is Kaelan’s home. He has every right to be here, and it doesn’t have anything to do with him wanting material things. He belongs here, with me.”

“Okay, sure. Whatever you say.”

“Is this how you want things to be between us?” Max asked, exasperated.

For a few long seconds, Rafe was quiet. Then he said, “No. I didn’t want it like this.”

Max looked down at his feet. The cuts were already closing over, fresh scar tissue that would be strong enough to walk on in another minute or two. “Was it because of Mom and Dad?”

“I guess.” Rafe waited to say anything more until Max looked at him again. “It was kind of hard growing up with you as my big brother. You were perfect. It was a lot to live up to.”

“Until I wasn’t so perfect anymore,” Max said. “Then it was your turn.” He’d wondered as much, over the years, but he hadn’t been able to let go of the hope that Rafe might accept him back into his life again, sooner or later, though his parents never would.

“My turn? Not really. Even when you weren’t around, you were still there.” Rafe rubbed his chin with a fingertip, a gesture Max remembered. “In my head more than theirs.” He dropped his hand. “Magic. I wake up every morning knowing it exists, and if I told anyone, they’d think I was insane.” He met Max’s gaze. “And if I told them it was why I shut my brother out of my life, they’d think I was an asshole, but at the time it seemed like the only thing to do.”

“I can think of some others,” Max said. “Like accepting me and the choices I made. The world didn’t need another lawyer. There aren’t many casters, and we’re not organized. We go out of our way to avoid each other, with a few exceptions.”

“Like Kaelan.”

“Yes, like Kaelan. But we can keep the darkness from bleeding over into this world. And trust me, bleeding is the least of what happens when things get nasty. I’ve seen people die in ways that make the goriest horror movie you’ve seen look like something from Disney.”

“So you’re a superhero? Is that it?”

The skepticism in Rafe’s voice was irritating, but Max kept his temper. “No. I’ve got ways of dealing with evil that go beyond slapping them with an injunction or a restraining order.”

Evil’s a strong word. You think it applies to Jannes?”

“No. I think what he plans to do means evil doesn’t come close to being accurate. Whether he succeeds or fails, chances are good a lot of people will die. Depending on how badly it goes, it’s possible everyone will be dead except him.”

Rafe didn’t look horrified. Max understood that on one level. The threat was too huge to comprehend. Tell him a thousand people would die, and that would strike home; the death of billions wasn’t easy to grasp as reality. “I don’t get it. What’s he planning to do? Give me details.”

“You are such a goddamned lawyer,” Max said with a groan.

“I want to know,” Rafe said. “I need to.”

“No. You don’t. You don’t need to, and you’ll be safer if we keep you in the dark. Let it be enough to know he’s bad news.”

“That’s not good enough.” Rafe sounded frustrated, and Max didn’t blame him.

“It’ll have to be. It’s all you’re getting.” Max was determined to out-stubborn Rafe no matter what it took on this one.

“Then I’m out of here.” Rafe turned away, heading for the door. Max hastened to stop him; at least his feet seemed able to handle his weight when he stood.

“You’re staying here until I say otherwise.”

“You think you can prevent me from leaving?” Rafe asked.

“I know I can.”

“And you’re okay with that? Keeping me here against my will?”

“If it keeps you alive? Yeah, I am.”

“Plus, he’s got me to do the dirty work, and I don’t care what you think of me.” Kaelan leaned against the door frame, his smirk purposefully annoying. “Want to try breaking free of a rope you can’t see that zaps you when you touch it?”

“Want me to see if a punch in the mouth still makes you bleed?” Rafe countered.

“Bring it on,” Kaelan said, eyes lit up with far too much anticipation for Max’s liking.

He knew this mood of Kaelan’s. After a fight as unsatisfactory as the one in Rafe’s house, Kaelan wanted another fight—which was what he was angling for with Rafe—or sex. Max had seen him disappear after a tough job and come back with a sleepy, sated glow more times than he could remember.

Max was more than willing to be the man who calmed Kaelan down enough that they got some rest, no matter what that entailed, but wild sex with his brother prowling around looking for a way out of the apartment didn’t appeal.

“Kaelan, behave, and Rafe, stop acting like a man with a death wish. If what you saw tonight didn’t make you realize you’re in danger, what the hell will?”

An expression Max remembered from childhood went across Rafe’s face. It was the look he’d seen when Rafe had been working to learn something new and complicated and suddenly, sometimes out of nowhere, had understood. The look that accompanied a lightbulb moment. Max wasn’t sure why it applied now, but he’d take it regardless of the reason. “How long do you expect me to stay?” Rafe asked.

Max sat down on the end of the bed again, because Kaelan was eyeing his feet with suspicion. “Until we get this taken care of. You can use anything here. Wear my clothes, use my laptop, the phone, whatever.”

“Thanks,” Rafe said. “No, I mean it. I get that you’re trying to protect me, and I appreciate it. Even if it all sounds kind of crazy.”

“You were up and fully dressed in the middle of the night,” Kaelan pointed out, then held up a hand when Max widened his eyes. “Okay, okay. Sorry.”

“I was working. I’d rather be sleeping, though. Is there a guest room or a couch where I can crash without being in the way?”

“You can sleep in here,” Max told him. “Give me a minute to put clean sheets on the bed, and I’ll—”

“Show him the rest of the place,” Kaelan interrupted. “I’ll change the sheets.”

Too exhausted to argue, Max nodded.

Caster crash. Nothing like it for reminding a guy he was human, not superhuman.

Chapter Sixteen

The well-stocked caster’s pantry may include many items that are also found in the average mundane’s pantry, though their applications may be rather dissimilar. Salt, cornmeal, white vinegar, herbs such as allspice, lemon balm, wintergreen, and spearmint have magical applications but seem innocent enough at first glance. It isn’t until one gets into deeper, more complicated castings that one might want to consider setting aside a high shelf or separate cupboard for less innocuous ingredients. These may include aconite (colloquially known as wolfsbane), tonka beans, periwinkle, belladonna, black hellebore, and henbane (aka black nightshade). As these spell components are toxic to varying degrees, keeping them out of the reach of children and absentminded housemates is critical.

Casters living with mundanes who are either entirely unaware of magic or prefer to remain in the dark about its practice may choose to keep items that are easily mistaken for their mundane counterparts. Decorative candles in holiday jars, or ones that are labeled candy cane or pumpkin spice will be dismissed as mundane and yet function as effectively for castings as the more traditional cream-colored beeswax. Incense sticks may be overlooked as a form of reminiscing one’s college days and are no less potent than loose resin burned on charcoal tablets, which could be eyed with suspicion. A sharp kitchen knife (assuming it is properly consecrated) works as well for ceremonial purposes as a dedicated athame for things such as directing energy, carving a hasty exit from a circle, or symbolizing masculine energy for fertility rites.

[From A Caster’s Guide to Living with Mundanes by Alix Heliotrope.]

Kaelan woke with Max sprawled out beside him, snoring every other breath. Sunlight filtered through the window, and he took advantage of the opportunity to regroup.

It’d been a hell of a week. But then, it’d been a hell of a five years. He had no complaints. Even if the world ended soon, he’d had fun.

Except the man lying next to him, hogging more than his fair share of the bed, was a good reason not to go quietly into the night. Kaelan sighed. The peaceful morning had provided a useful moment of introspection, but now it was time to get up, eat, and master every offensive and defensive casting out there.

He slapped Max’s ass to wake him, figuring a kiss wouldn’t cut it with this Sleeping Beauty, and prudently rolled off the bed before Max’s flailing arm found its target.

“I’ll start coffee,” he said, heading for the bathroom. “Right after I get rid of the gallon I drank yesterday.”

“I don’t understand how you can drink that much caffeine and then sleep,” Max grumbled.

“You could give it a try sometime,” Kaelan suggested, even though he was pretty sure it would be a disaster. The only nights they’d ever successfully stayed up to watch movies until sunrise were the nights Max had had coffee after dinner.

He’d finished his business and turned on the water to give his teeth a quick brush, just enough to scrub away the taste of sleep in his mouth, when Max loomed in the doorway, leaning on the frame. “I’m up.”

“That sounds like a promise,” Kaelan said around his toothbrush, which probably marred his too-early attempt at flirting.

“I don’t make promises I can’t keep.” Max looked as if he hadn’t slept well. Dark smudges under his eyes made them look sunken. Kaelan swished out his mouth and stepped over to the doorway, sliding an arm around Max’s waist and hugging him. Max melted into the embrace, his breath warm against Kaelan’s neck. He muttered something.

“What?” Kaelan said.

“I keep wondering if I’m going to wake up and you’ll be gone.”

Kaelan wished he could say going after Hopper solo hadn’t occurred to him, even after he’d told Max he wouldn’t. Part of him needed to go, couldn’t bear the thought of Hopper alone and in danger. But a more important part didn’t want to disappoint Max. “I’m right here,” he said, because he didn’t want to lie either.

“And will you be right here tomorrow morning?”

“The ritual’s tomorrow night,” Kaelan pointed out. “Why don’t we concentrate on both being here the morning after that? And no, I’m not being evasive,” he added as Max’s eyes clouded. “We’re stronger together. Stand a better chance as a team. I believe it. I do.”

After a moment when it was as if Max’s gaze was searching his mind, not his face, Max nodded. “Okay. From what they said when we left Magnus’s place, I don’t think we can count on any outside help. Jannes freaked the hell out of them.”

“He’s going to do way worse than that tomorrow. At least we’ll go down trying to stop him. Not that we’re going to lose.”

“Of course not.” The confidence in Max’s voice was too hearty to be convincing. “So after breakfast, I’m going to keep reading through Wainwright’s files to see if there’s any effective casting in there that we don’t already know. Or something we do know that we can adapt and use in a way he’s not expecting.”

“Okay. I’ll see if Seshat has any ideas.”

They were outnumbered and two or three steps behind. Kaelan didn’t make the mistake of assuming the universe cared they were the plucky underdogs and on the side of good. If Jannes stuck to his method of shunting the negative karma away and using the power of the sacrifice to fuel his casting, he’d succeed.

And the tapestry of time would unravel. Kaelan pictured it—as unstoppable as a run in panty hose, starting with a single plucked thread as Jannes tried to avert his future death.

An hour and a half later, Kaelan was sitting at the desk with one foot all pins and needles from having been wedged in the corner, and his brain aching. Trying to work out all the things that could go wrong in trying to stop Jannes made his head spin; he felt like some scientist had put him in a centrifuge and whirled him around, but instead of good ideas falling out, he’d lost a bunch of brain cells.

Would you like me to—” Seshat started to ask, and whatever it was, the answer was no.

“No,” Kaelan said. “Stop. You’re killing me here.”

There was silence.

“Not literally,” Kaelan clarified, because Seshat was a person, not just a computer to him, and he didn’t want to hurt her feelings. Which was stupid, but hey. Welcome to his world.

He slid the chair back a few inches and rested his forehead on the desk.

“So we’re screwed,” he murmured.

“We have one clue,” Max said from the doorway. “Remember that vague reference to a circle of three breaking the hold of the dark—”

“Caster on the threads of time,” Kaelan finished, lifting his head to look at Max, because when Max was in the room, not looking at him was like standing with your back to Niagara Falls. Something stunningly beautiful deserved his full attention, and loving Max the way he did, even if he still couldn’t admit it, that was how he saw him. “Yeah. That’s been stuck in my head like an earworm, but it doesn’t mean it makes sense. Suppose we say it’s you and me, which it could be since no one else knows about the ritual, or if they do, well, they’re too chickenshit to help stop it. So who’s the third? Hopper?”

“Maybe.” A muscle jumped in Max’s cheek. “Assuming he can shake off the coercion spell.”

“Yeah.” Kaelan thrust the memory of Hopper smiling at Jannes with perfect trust and admiration as far out of his mind as possible. “Though I would’ve thought another caster… God.” He hated sharing the thought, but he couldn’t help it. “What if it was supposed to be Wainwright, and that’s why Jannes had him killed?”

“Then we really are screwed,” Max said, looking as bleak as Kaelan felt.

“Better pretend that’s not what’s happening.” Kaelan pushed his chair away from the desk and gestured with his index finger. “Come here.”

“What?” Max straightened from where he’d been leaning against the door frame and walked closer, but didn’t seem to understand what Kaelan was asking. Which wasn’t strange, considering Kaelan wasn’t sure himself.

“No, closer.” He spun the chair to face Max, then patted his thigh. “Here.”

“I’m not sitting on your lap,” Max told him, amused.

“Why not?” Kaelan studied Max’s face, trying to figure out what his objection was, then decided the best way to get what he wanted was to say, simply, “I want you to.”

It was awkward and a little bit weird, but Max straddled Kaelan’s thighs and lowered himself gingerly, as if he was worried he’d be too heavy. Kaelan slid a hand around to Max’s back and tugged him closer, then leaned in and pressed his face against Max’s chest, breathing in the scent of Max and cotton and laundry detergent.

“This can’t be comfortable for you,” Max said.

“Yeah, my legs are made of twigs, and they’ll snap any second now.” Kaelan bit Max’s chest through his shirt, a reproving nip that earned him a stifled groan, more pleasure than pain. “I could stay like this for hours.”

“I’m convinced,” Max said. “If the chair gives way, you’re buying a new one.”

“Then we do without it,” Kaelan said and reached out with his power, raising them a few feet and thickening the air around them until it formed an invisible soft pillow.

“Hey!” Max’s grip tightened before he realized he wasn’t going to fall. “Wow. This feels amazing.”

“When I was a kid, I used to sleep on the floor a lot when we were staying with whoever my dad didn’t owe money. Cold. Hard. So I learned to do this. An inch or two of solid air makes the most expensive mattress in the world feel like concrete, and with a blanket over me, no one could tell.”

“I hate that you had to grow up like that,” Max said.

Kaelan didn’t have a good answer to that. “Yeah. Well.” There were other things he might have said. Me too. Or, If I’d known I would end up here, with you, it would have been easier. Or, hardest of all, I love you for wishing life had been different for me.

He couldn’t say any of that. He thought them, but there was a disconnect between his brain and his mouth, someplace broken so the words got lost and died. Instead, he pressed his face harder against Max’s chest and breathed him in.

Max rubbed the base of Kaelan’s skull along the hairline, the caress of his strong fingers comforting. “Hey,” he said, and Kaelan waited, but nothing followed.

It was nice to know he wasn’t the only one who had difficulty with words. It gave him courage. “I want—” he tried. “You’re—”Shit.

“Shh,” Max murmured. “It’s okay, babe.”

He hugged Max, as if he could communicate his emotions that way. Love you, he thought fiercely. Love you so fucking much.

Something in the way Max moved, a restless shiver running through him as he pressed closer, told Kaelan that Max’s thoughts were moving from comfort to sex. Maybe that was what they needed—a short spell of time when they could forget what lay ahead and concentrate on each other. Rafe was still asleep as far as Kaelan knew. He’d checked on him earlier, and Rafe hadn’t stirred, lying sprawled out in much the same way Max slept. Kaelan guessed eight hours of rest was a novelty to the man, but stress and a work ethic could only keep a body going for so long. Safe behind shields, Rafe was dreaming or gripped by nightmares.

“Remember I said we should try sex—”

That was as far as he got. A yowl had them jerking apart, flailing as Kaelan’s spell switched off and they fell to the floor. The noise was unearthly, ear-piercingly loud, and even dazed from the fall, it took Kaelan no time at all to track it to its source.

“Way to live up to your name, Bast.”

The cat’s howl cut off as abruptly as Kaelan’s casting. With an indignant twitch of his tail, he padded over to sniff at them as if to make sure they were who they were supposed to be.

“I don’t think he liked seeing us doing a bird impression,” Max said, nursing his wrist. “Are you okay?”

Kaelan gathered Bast into his arms, the weight of the animal a familiar burden. “Ass is bruised, but I’ll live. Who’s a bad kitty, hmm? Oo is, ess oo is.”

Bast hated baby talk, and Kaelan knew it. He squirmed, mewing reproachfully, and unleashed his claws on Kaelan’s arm, drawing blood.

“You asked for that,” Max said with a grin.

“Yeah. Is it too late to change my answer about being okay?” Kaelan watched as Bast leaped down and darted to the doorway, where he paused and started licking his shoulder as if he’d been contaminated by Kaelan’s touch. “Ow.” The cat’s claws had barely broken the skin, at least.

“Aw, poor baby,” Max cooed. “Did oo—”

Kaelan shot him a frown. “Don’t even start. Bast, what’s with you? Did you like it better when we were sleeping in separate rooms or something?”

Bast either had no idea what he was saying or didn’t care. Kaelan would have bet on the latter even though he’d suspected Bast understood English from time to time.

“If he keeps this up, I’m going to start thinking he’s jealous,” Max agreed. “Did he jump down onto us from the top of the desk?”

Kaelan looked at the shelf over Seshat, which was crowded with books, a solitary bookend that was useless because the books were doing a better job holding it up than the other way around, and a stack of papers balanced so precariously he had to think Bast would have knocked them down if he’d been anywhere in the vicinity. “Is he taking up flying as a hobby?”

“Hey, if it replaces the one where he claws the back of the bookcase in the living room when he thinks we’re not looking, I’m all for it.” Max pushed the chair back into place.

“I was thinking we could give him some tree trunks, let him do his thing, then sell the pieces on eBay. You know, like that elephant that paints.” Bast gave Kaelan a haughty look and disappeared into the hallway. “It was a compliment!”

“You’re going to pay for that,” Max said.

“So what’s new?” Kaelan ran his fingers over the faint scars on his hand, wondering as he’d done before why they’d never healed the way his other scars had. “I’ve been paying in blood since the first time I met him.”

Max shook his head. “All those years, and we’ve been fighting Jannes without knowing it.”

“He knew,” Kaelan said. “And he’s been fucking playing with us. Gah. I hate that.” He drew in a breath, shaken by anger, the emotion sweeping up on him out of nowhere like a summer storm. He began to pace, rubbing his fist against his palm, picturing grinding it into flesh. “The ritual’s tomorrow night. I still say we don’t wait. Don’t dance to his tune. Mount an assault on him, lure him out. No, don’t touch me, don’t.”

Ignoring him, Max grabbed Kaelan’s arms and pulled him into a hold less comforting than the one Bast had interrupted. More like a prison guard subduing an inmate. Max was strong and amplifying that strength with a trickle of power; Kaelan sensed it. Being held when he was simmering with fury made Kaelan’s anger mount to the point where one more second of being denied the ability to move freely, even by Max, and he would explode. Power roiled within him, seeking an outlet. He craved that violent, satisfying clash with Jannes so much. Needed Hopper to be safe, Max’s brother gone. Needed to be with Max in that time they kept talking about, when this was all over.

“Let go of me.” It came out cold, a threat, not a request.

“Not until you’ve calmed down.”

“Fuck you.” Kaelan used his power to push Max away, but Max came right back at him. Rather than be grabbed, Kaelan closed his fist on Max’s shirtsleeve and held him in place, then gave up and wrestled him to the floor, pinning him down with his body weight. If Max had fought him, Kaelan wouldn’t have succeeded—Max would come out on top every time—but Max let him do it, looking up at him patiently.

“Feel better?” Max asked.

“Fuck you,” Kaelan repeated, but it didn’t have the same anger behind it this time.

“If that’s what you need. Anything, as long as it doesn’t mean letting you hurt yourself or go off without me.”

“I already said I wouldn’t do that.” Kaelan knew deep down the possibility existed that he might; he had that much self-awareness, at least. “What if we can’t get Hopper back?”

“We will.” Max’s gaze searched his.

“But if we can’t.” He wasn’t sure what he was saying. He couldn’t live with himself if Hopper died. It was proof he shouldn’t get involved with anyone, even as friends. People whose lives were wrapped up with his got fucked over and killed.

“We will,” Max said again. He slid a hand up Kaelan’s side, the only move he could make with Kaelan pinning him to the floor. “It’s gonna be okay.”

As suddenly as it came, the anger left him. Blue skies, sun shining, birds chirping in blossom-laden trees. Exhausted by the emotional ride he’d taken, Kaelan nodded and rolled off Max.

“I feel weird,” he said, addressing his words to the ceiling.

“You’re under a lot of stress.”

Max’s diplomacy didn’t irritate him, but Kaelan sensed if he let it, then it would. That anything Max said to console or comfort him would be like sandpaper on his skin.

Now that was weird.

“Check the shields,” Kaelan said, scrambling to his feet. “Now. Any weakness, any hole.”

“You think Jannes is projecting at you? Trying to wear you down?”

“Yeah. He’s got Hopper with him, Max. Hopper knows how revved up I’ll be to save him and how you’ll be trying to stop me. What better way to send us into the fight on edge with each other than to have us spend today fighting?”

“It’s a good theory, but my shields are solid. I might not be able to portal like you, but when it comes to shielding, I like to think I’m adequate.”

Max sounded huffy, even resentful, and Kaelan howled. “There? See? You’re getting pissed with me for no reason. You’re a shielding genius. But maybe he’s doing this in a subtle way, slow seepage, not a full-frontal attack. He could have an army of his slave casters throwing everything they’ve got at us, targeting us where we’re vulnerable.” He rubbed his forehead, trying to think, his head pounding as if he could hear Jannes hammering against his defenses, trying to break them down. “Rafe. He’s a weak link too.”

“Gee, thanks,” Rafe said from the doorway. “Sorry about being a mere mortal and all that.”

“That’s not what he meant,” Max said, and Kaelan frowned.

“It kind of is.” He frowned again. “I mean, not like that, more like none of us are invincible. Jannes is powerful, and he’s got a lot of people on his side. Even if some of them are idiots like those guys last night, there’s strength in numbers. And he knows where we are and how to get to us. I’d be stunned if he doesn’t know you’re here too.”

Rafe grimaced. “I’m pretty sure I’m a blip on his radar compared to you two. Am I wrong?”

Max looked at Kaelan. “Still not finding anything.”

“Maybe you’re not looking for the right thing.” Kaelan knew he was being hardheaded, but he’d feel better if he could come up with an explanation for why they were so on edge that was a little more complicated than stress made them assholes.

“I do,” Max said.

“What are you talking about?” Rafe asked. “Or is this another one of those things you can’t tell me?”

“I think there’s something wrong with the shields,” Kaelan said. “Max doesn’t agree.”

“It’s not that I don’t agree it’s possible. I’m saying I can’t find anything,” Max said. “Seshat, can you tell if the shields are solid?”

There was a pause long enough for Kaelan to tap his foot twice before he controlled it. He knew when he got like this, all nervous energy, bouncing off the walls like a kid on a sugar high, it drove Max mad.

The shields are solid and holding,” Seshat reported. “But they aren’t impervious.

“What the hell does that mean?” Rafe demanded. “And who’re you talking to?”

“Seshat’s our computer,” Max answered. “She’s… Well, think of her as sentient.”

Rafe rolled his eyes. “No.”

“Then shut up and let her finish,” Kaelan snapped.

If they were impervious, no light would penetrate, no air. They’re designed to repel magical attacks. If Jannes were to saturate the atmosphere around the top floors of the building with a mood-altering chemical and hold it in place with a shield, that could work.

“Shit!” Kaelan pictured it: a shield sandwich with a layer of whatever concoction Jannes had whipped up. “It might have been there for days, working its way through.” He kicked his chair, sending it flying across the room. “Why is he always three steps ahead of us?”

“We’re all heading for the same finish line, and he can’t cross it without us.”

“Yes, he can. He doesn’t need an audience when he slashes Hopper’s throat.”

Max shook his head. “Yeah, but he wants it. And what Jannes wants, he gets. Us horrified, grieving, defeated. You get the idea. Frosting on his cake.”

Asshole.” Kaelan imagined his hand around Jannes’s throat, squeezing the life out of him. “I want him dead.”

“No arguments from me,” Max said.

Rafe looked shocked. “You’re not serious.”

“You have no idea how serious I am,” Kaelan said grimly. “Okay, so what now? We’ve got to get out of here.” He thought about what they’d have to take with them. If they had their phones, Seshat could stay where she was safe and still help, but there had to be other things they’d need.

“Wait, first I have to stay here, and now we can’t stay here? And you’re both fine with the idea of murder?” Rafe had passed the point where he got on Kaelan’s nerves and was well into the territory of infuriating.

“Go up to the kitchen and pack some food,” Max told him. “Stuff that’s easy to eat and won’t go bad.”

Rafe hesitated but then went. Kaelan waited until he was out of earshot before saying, “There’s hardly anything in the kitchen that fits those specifications. And we can get food wherever we are. We don’t need to take it with us.”

“I know. I wanted to avoid the inevitable argument.”

“If it’s inevitable, you’re putting it off, not avoiding it,” Kaelan said.

“Semantics. Love it when you talk dirty.”

“Oh God. Is this thing between us all down to whatever poison we’ve been breathing?” Kaelan blurted the words, which bypassed his brain entirely, because who dreamed up shit like that?

The stricken look on Max’s face underlined his misery. “Is that why you won’t let this mean anything?”

“No! Look, forget it, please? Scrub what I said out of your mind, because I’m a fucking idiot.”

Air analysis complete,” Seshat announced. “Trace levels of a mild mood enhancer discovered. Extrapolation of parts per thousand currently compared with the daily samples over the previous ten days indicates that the concentration only reached a level sufficient to be effective in the past twelve hours. I would have picked it up at noon when the test is normally run.

“We test the air? Since when do we test the air?” Kaelan knew it wasn’t important, but he was floundering, hit by the realization that a tiny part of him had wanted that escape route. God, why couldn’t he commit fully to this relationship? He loved Max. He’d die for him without a second’s regret, but telling him, laying himself open was too difficult. He couldn’t do it. It was as if he thought once he spoke, everything would change for the worse. His mom had loved his dad once, and look how that had worked out for her.

“Air purity, humidity, temperature. All part of the building’s basic maintenance.” Max gave him an exasperated look. “You own it too. How can you not know all this?”

“I have to let you be in charge of some of it,” Kaelan said, sticking out his tongue, but weirdly he felt better. Max was nothing like his father, who couldn’t be counted on to keep a job longer than two weeks or even to remember to buy milk. It was okay to trust Max.

Which meant he was the one who was fucked up. No surprise, but it would have been nice to be able to blame something else. He could’ve lived without the reminder that he was damaged.

Although hey, on the plus side, he wouldn’t have to live with it for very long if they lost.

Max had been watching him. Now he came over and kissed Kaelan, fast and hard. “You were right,” he said. “Now let’s get out of here. Grab anything you need, and we’ll go.”

“What about Bast?”

“Seshat, is Bast being influenced by the mood enhancer?” Max asked, and this time it only took seconds for the computer to answer.

No. The mood enhancer is chemically designed to affect humans. No effect on the genus Felis.

“See? He’ll be fine here.”

“Where are we going?” Rafe asked, coming back into the room with a reusable shopping bag in his hand. “And you have nothing in your kitchen, by the way. Most of what’s in here is canned soda.”

“I’m not telling either of you where we’re going,” Kaelan said. “To be on the safe side.”

Max raised his eyebrows. “The bugs were disabled.”

“Yeah? How do we know Jannes didn’t plant something on him?” Kaelan demanded, jerking his chin at Rafe.

No devices detected,” Seshat said.

“Even so.” Kaelan wasn’t backing down on this.

“What about our phones?” Rafe asked. “With GPS tracking, you could send us from here to Kathmandu, and he can just wait for us to get to where we’re going, then find us.”

Max cleared his throat, sounding apologetic as he spoke. “Uh, yours, maybe. But our phones don’t have GPS. They’re not phones in the same way yours is. They never need charging, always have a signal, and we can’t lose them.”

“They’re magic,” Rafe said flatly. “Sorry if I’m being dense, but wouldn’t that make them even easier for him to track?”

“Shit,” Kaelan said, which seemed to be all the answer Rafe needed. A flicker of satisfaction passed over his face. It wasn’t gloating, Kaelan decided, more pleasure that he’d contributed something useful. “We need those phones.”

“Got it,” Max said, snapping his fingers. “We fit them with a shield that doesn’t hide them as much as make them look normal.”

“You can do that?” Rafe asked.

“Everything gives off a signal,” Max explained, simplifying considerably. “Your phone makes a quiet beep. Our phones give off bells, whistles, and a marching band. I persuade the phones to beep, and Jannes can’t see them because they’re surrounded by identical beeps.”

“Needle in a haystack?” Rafe asked.

Max grinned. “Even better. A straw in a haystack.”

Kaelan handed over his phone and let Max do his thing. To Rafe, his brother was holding two phones, a furrow between his eyebrows as he concentrated. Kaelan felt what Max was doing, the complex casting licking at his skin like candle flames, warmly arousing. When the casting was complete, he wanted nothing more than to drag Max someplace quiet and share the heat. Instead, he opened a portal. None of their usual hideouts would do. All had to be considered compromised. But he’d memorized dozens of portal locations, and if he chose one at random, then another, and another and bounced them around, no one could track them.

Not even Jannes.

Chapter Seventeen

Magnus!

We need to keep on top of ordering. That tiny old lady—you know, the one who smells like a combination of Tic Tacs and dracaena resin?—keeps buying more and more cone incense every time she’s in. I don’t know what she could possibly be doing with it all. Unless she’s lighting ten cones at once, there aren’t enough hours in the day for her to be burning through it at the rate she is. Pun intended. Anyway, she prefers the Kamini Passion Potion, but she’ll settle for Hem’s Precious Amber or Opium in a pinch. Please note that none of these are the dragon’s blood she smells like. Frankly, I’m afraid to ask.

Oh, also, we’re running low on apothecary bottles (blue and red), and that Healing Circle that meets over at the coffeehouse on Main St. wants more chakra stone sets.

(Yes, I know there’s wax all over the altar cloth on the corner display table. Someone, who shall not be named, knocked over a candle. I’ll bring my iron in tomorrow and take care of it.)

— Joely

[Written on a torn-out piece of notebook paper in sparkly green gel ink. All i’s are dotted with hearts.]

“Stay away from the windows,” Kaelan snapped at Rafe.

Max lifted his head from Wainwright’s notes and sized up the situation. Kaelan was beyond stressed, and Rafe was being stubborn. That wasn’t atypical of the Kaelan Max knew, or the Rafe he’d once known, who apparently hadn’t changed much over the years. “Go sit down,” he suggested to Rafe, in a more conciliatory tone than Kaelan would likely manage. Rafe went into the bathroom instead, closing the door behind him with a little more force than necessary.

“He’s being a jerk,” Kaelan said. He went over to where Rafe had been, near the hotel windows that were covered with a large ceiling-to-floor blackout curtain, and adjusted the fabric even though it didn’t need to be adjusted.

Jerk or not, Rafe had done Max the favor of removing the stitches from his shoulder, and it was hard not to be grateful for that. “He’s out of his element,” Max said. Not that Kaelan needed to be reminded of that. “But yeah. He is being a jerk.”

Kaelan resumed his pacing. At least the hotel suite, which Max had paid for in cash, along with a hefty deposit “in case of damages,” was big enough to allow for it. There was a living area with a couch, two armchairs, and a desk; two bedrooms; a bathroom; and a small kitchenette with a microwave and minifridge. The kitchen was useless; all they’d brought was the canned soda. Max figured they could order in a pizza or something later.

“Maybe we shouldn’t have told him everything.” Kaelan screwed up his face. “Everything was a hell of a lot.”

“Yeah, but it stopped him from asking questions.”

Laying it out in brief, undramatic sentences hadn’t done much to make the whole world-ending-tomorrow scenario seem less scary. Rafe had refused to believe them, then gotten angry and demanded somebody do something, and gotten angrier still when every suggestion he made—like calling in the cops, the army, assassins, anything—was dismissed. It hadn’t been fun.

“It got me thinking, though,” Kaelan said a little too brightly.

Max pushed the papers he was studying aside and gave Kaelan his full attention. “Hmm?”

“Rafe was right about one thing. Sitting here watching the clock tick down to doomsday and doing nothing is a bad idea.”

“So what did you have in mind?” Whatever it was had better not involve Kaelan in a suicidal plan with zero chance of working. Max was tired of that ongoing argument.

“Reduce the numbers,” Kaelan said promptly. “Jannes relies on his team. That’s his weakness. He doesn’t do anything himself. Maybe once he did, but he’s gotten lazy over the centuries or scared of the Netherhells, and who can blame him? So we force him to.”

Interested despite his misgivings, Max cocked his head, considering that idea and the man in front of him. Kaelan’s body language was that of a racehorse quivering at the start line, but a steely determination under the restlessness impressed him. And yeah, turned him on too. He loved the dangerous glint in Kaelan’s eyes, the sizzle of power lighting him up. “How?”

“Take his slaves away from him,” Kaelan said. “One at a time if we have to. Track them down, pick them off one by one. When Jannes doesn’t have anyone left to do his dirty work for him, he won’t have any choice but to screw himself over. Or abandon his plan entirely. Either way, we win.”

“Track them down how?” Max was already formulating some ideas himself, but he wanted to hear what Kaelan was thinking.

“Well, for one thing, I think we need to get into the warehouse he’s going to use for the spell and see what we can do. Create some kind of booby traps. At the least scope out the place so we know what to expect.”

Max nodded. “You don’t think he’ll have some people there already? Keeping an eye on the building?”

“I’m sure he will. But it won’t be everyone.”

“The place is shielded to kingdom come,” Max said. He was throwing out objections for the heck of it now, wanting to cover all their bases.

Kaelan shrugged. “I’m willing to bet he thinks we’re too scared to try. Maybe he thinks we’re so stupid we can’t figure out where the final casting’s supposed to happen.”

Yeah. The thought of Jannes’s contemptuous dismissal of them as a threat set off a slow burn in Max’s gut. Jannes’s arrogance was staggering, even given his vast experience of casting. Pricking that particular balloon would be satisfying as hell.

“We don’t have much time.”

“Then we should get moving.” Kaelan’s smile was wolfish, a wide grin, pure anticipation and hunger.

“Maybe you should fill me in on where the hell we’re moving.”

Rafe had an annoying habit of coming into a room at the precise moment needed to hear something significant. Unless he’d been eavesdropping. Max could understand wanting to be in the loop.

“You’re staying here,” Kaelan told him. “We’re going on a bear hunt. And we’re gonna catch some big ones.”

Rafe shook his head, his exasperation with Kaelan plain. He clearly wasn’t happy with Max’s taste in partners, but Max couldn’t remember the last time his family’s opinion of him or his lifestyle had mattered to him. “What’s he talking about, Max?”

“We’re going to whittle down Jannes’s resources. Take away his support and see if he can stand alone.”

To his surprise, Rafe nodded, approval smoothing away the frown marring his forehead. “Makes sense. But I can help.”

“How?” Kaelan asked, blunt to the point of rudeness. “Show me your shield. Create a fireball.”

Rafe laughed. “You’re so limited. Is that the only way you can deal with a problem? Throw some sparkle and glitter at it? I’ve got news for you, Tinker Bell. In my world knowledge is power, and when it comes to Jannes, I know a lot. Want a list of his closest advisors, his dream team? I’ve got names, addresses, everything.”

Kaelan narrowed his eyes. “I’ll let the Tinker Bell crack go if you prove it by showing me a list with Maria Vargas’s name on it. She’s inner circle.”

“I can give you that,” Rafe said calmly. “But I need a way to access my computer.”

Within half an hour, with Seshat’s help, they had everything they needed, and a grudging respect for Rafe had replaced Kaelan’s irritation. Rafe wrote the information down, and Max burned the neatly written words into his memory. He heard Kaelan muttering some of the names and addresses under his breath too.

“Why can’t it be this easy to stop the fucking ritual?” Kaelan asked.

Rafe glanced at the notes Max had been making, now scattered over the hotel desk. “This is a complicated ritual, right? That’s what you’ve been telling me.”

“More than complicated,” Max agreed. “Totally new. Which is why it’s so hard to stop it—we’re not sure how he’s going to do it.”

Tracing his finger over a map Max had printed out, Rafe said, “Too bad you can’t shift these. What are they called, ley lines?”

“Yeah, too bad,” Max said without thinking. Then he blinked. It felt as if time had stopped, which was a disturbing thought under the circumstances. “Wait. What did you say?”

Rafe stared at him. “I said, too bad you can’t move the ley lines. That’d fuck up his plans, wouldn’t it?”

“You’re talking about ley lines,” Kaelan said. “Straight tracks. They connect places with mystical significance. Pure energy, constantly flowing. You can’t divert them, like changing the course of a river with a few stones.” He widened his eyes. “Can you?”

“I would have said no, impossible, but we’re trying to stop someone tying time into knots. I’m losing track of what is and isn’t doable.” Max picked up a pencil, then put it down again. “See this pencil? It’s straight. You can’t bend it without breaking it.”

“You’re not talking about wood and graphite,” Rafe said. He seemed as caught up by the idea as Kaelan. Was it desperation or genuine hope? Max wasn’t sure how he felt. Tired. His eyes burned. They were certainties. Was he worried? He supposed he should be. And his thoughts were wandering again when he should be focused. “Energy is fluid. You can bend light and heat.”

“Yeah,” Kaelan said. “And we wouldn’t need to do it for long or move it much. A second or two at the crucial moment, an inch to the side of where the sacrifice is taking place—okay, a couple of feet to be on the safe side.”

“And tell me how we do it,” Max said. “Because I’m damned if I know.”

“I’ll figure it out.” It was hard to tell if Kaelan thought he could do it, or if he was being his typical stubborn self. “But people can divert rivers. There has to be a way to divert ley lines too.”

“If time’s that limited, you’d better stop standing around here talking and start doing something,” Rafe said.

“You’re right.” Kaelan came closer to stare at the list on the desk, slipping an arm around Max’s waist and leaning against him as he read. “Warehouse first?”

“Yeah. If things go south, we’ll use up the most energy there.” If it got to the point where they were running close to empty, their chance for scoping out the spell location would be shot, and they couldn’t risk that. “Rafe, stay here.” He hesitated, then pulled his phone from his pocket and set it on the desk. “If we aren’t back by tomorrow night, things are going to hell. Get as far from here as you can. Run and don’t look back.”

It was useless as far as suggestions went, but it was the best he had to offer. His brother looked at him uncertainly. Max wished they had the kind of relationship where they’d hug, or pat each other on the back, even, but they didn’t. They probably never would.

“Be careful,” Rafe said finally, and Max nodded.

“We will.”

The warehouse was guarded and oozing menace, as if Jannes’s purpose had already tainted every brick, every rusting girder, but as Kaelan had suspected, it was unshielded.

“Four of them outside and at least one inside, maybe more,” Kaelan said into Max’s ear. They were cloaked from view, but a caster with skill could sense magic being used nearby. With any luck, the guards weren’t at that level. “You know what we need?” Before Max replied, Kaelan continued, “We need Hallister’s trick of operating inside a portal. With that, we could pick off the four outside one by one, and they’d never see us.”

“Hallister didn’t seem keen on sharing.”

“Hallister can kiss my ass,” Kaelan said. “He’s still talking care of Magnus, right?”

“As far as I know.”

“Then let’s take the invalid a get-well card.”

Max stared at the guard lounging against the warehouse wall, chewing gum and kicking idly at stones, his projected boredom disguising the way he continually scanned his surroundings. It wouldn’t be easy to dispatch him without making some noise, and bringing all the guards to one place would leave the two of them outnumbered. That was riskier than Kaelan experimenting with a new technique, though in the past some of those experiments had ended with spectacularly dire results.

“Let’s do it.”

They were outside the door of Magnus’s store in less than a minute, Kaelan banging on it with more force than necessary. It was glass and would break under the right conditions, leaving Magnus and Hallister unprotected from mundane attack. Max wasn’t sure Kaelan was worrying about that just then.

Hallister came to the door hesitantly, peering around the edge of the CLOSED UNTIL FURTHER NOTICE: DEATH IN THE FAMILY sign that had been taped to the other side of the glass. Once he saw it was them, he let them in, then locked the door again behind them. “Can’t be too careful,” he said.

“We weren’t sure the shields would still let us in,” Max explained, and Hallister nodded.

“Magnus is out back. Come on.”

“How is he?” Kaelan asked.

Hallister shrugged. He wore a shirt that probably belonged to Magnus; it was at least two sizes too big. “Someone he trusted betrayed him. How do you think he is?” He raised his eyebrows. “Want a clue? Depressed.”

“Understandable,” Kaelan said.

The room trashed in the confrontation with Jannes had been tidied into a semblance of order. Some pieces of furniture were missing, and most of the flat surfaces were empty of anything that might have been either functional or decorative. Magnus was sitting in a padded chair with a mug perched on the arm of it.

“I didn’t expect to see you two again,” Magnus said. His voice was low and rough, and he didn’t look as if he’d been sleeping.

“I think we hoped you wouldn’t have to.” Max wanted to be honest, so he plowed ahead, turning to Hallister. “We need your help.”

Hallister rolled his eyes halfheartedly. “Remember how well that didn’t turn out last time?”

“Nothing that puts you at risk,” Kaelan told him. “We need to take out a lot of people without exposing ourselves or tripping alarms. We’re on the clock here; we only have until tomorrow night.”

Realization dawned on Hallister’s face, followed by wry amusement. He moved to stand by Magnus, his stance protective, possessive. “I should have known better than to flaunt my secret in front of you like that. Showing off. My fatal flaw.”

“It shouldn’t be a secret,” Kaelan said, “and what you can do is fucking huge. I’m in awe. And yeah, I do want to know. I’ll trade you a few tricks of mine, but right now I’m asking you to teach me how to cast inside a portal. Put me under a geas to never use it against you or yours if you like, or memwipe me after so I forget I ever knew it.” That was a rash promise considering what they’d been through, but it was hard to fault Kaelan for making it. “We need an edge. We’ve got to weaken Jannes by taking out his crew, and there’s a lot of them and only two of us.” He paused, the rapid fire of his words fading to a slow, measured beat as he repeated, “Only two of us.”

“Hallister?” Magnus reached out and clutched his friend’s hand. “Please? We can’t do much, but this we can do.”

“You mean I can do it,” Hallister snapped. He bit his lip, indecision twisting his face, then gave a resigned sigh and patted Magnus’s hand, a quick, reassuring caress. “Teaching was never my thing. I get impatient with stupidity.”

“I’m a fast study,” Kaelan promised him. “And if you yell at me, I won’t yell back. Want to take me somewhere quiet and fill me in?”

“Yeah. Come on.”

They disappeared into another room, leaving Max with Magnus.

“Despite what he says, he’s a good teacher,” Magnus said. “Sit, please.”

Max perched himself on the couch, not planning to get comfortable. “How are you?”

“You don’t want to hear a list of my complaints.” Magnus gestured as if he were talking about an inconvenient rainfall on a planned picnic day instead of the discovery that a close friend had been deceiving him. “I’m fine. Hallister’s been patient with me.”

“Somehow I find that hard to believe,” Max said, glancing in the direction Hallister and Kaelan had gone. He heard them talking, though not what they were saying.

Magnus shook his head. “All that bluster is a front.”

Despite knowing Kaelan, who concealed a multitude of emotions under brash confidence and a wide smile, Max settled for a grunt that Magnus could interpret how he liked. Bluster and kindness aside, he sensed a genuine indifference to most of humanity. Hallister might make exceptions for his friends, but Max bet if he rounded those friends up, they’d consist of the man he sat beside and no one else.

“Really,” Magnus insisted, enough emphasis behind the word that Max found himself wondering. With a mental shrug, he decided to be as blunt as Kaelan and ask.

“You and Hallister—were you lovers?”

He’d startled Magnus, but the man recovered between one breath and the next. “I don’t know whether to refuse to answer because you’re prying, or applaud you for being perceptive. Yes, a long time ago. But for an even longer time we were at odds with each other. We reconciled as friends a few years back. We’ve mellowed with age, I suppose.”

“Why did you break up?” Max knew he was pushing, but conversation was better than straining to listen to what Kaelan was doing. If Hallister endangered Kaelan or hurt him, Max would make him regret it.

“I’m not sure we were ever together. Hallister thought casters were superior beings. He had this arrogance, and it wasn’t attractive taken to extremes.”

The explanation was brief, but the bitterness behind it was fresh and strong.

“I don’t think we’re better, but we are different,” Max said. “And I think we have these powers for a reason. Maybe we’re guardians of humanity, but we’re not its rulers.”

“Guardians need to do more than keep watch. Do you resent us for not helping you more?” Magnus spread his hands, a graceful gesture with a touch of the theatrical, but there was regret in his eyes. “To be honest, I think we wanted to at first. It seemed exciting. Something out of a legend with us the heroes. But the reality was a shock. It shouldn’t have been, I suppose. None of the stories I’ve read had villains who were easy to defeat, and there were always casualties.”

“Kaelan and I have more experience on the practical side, I guess,” Max replied, “but Jannes is something else again. I’ve faced Netherhells demons and been scared, but that guy makes them look like kittens playing with a ball.”

He spared Bast a thought. Bast would never be described as cute, but he had his playful moments, racing around the apartment fast enough that he was a blur, darting from room to room chasing shadows.

“Whatever happens, don’t blame yourself,” Magnus said.

Max grimaced. “Thanks for the vote of confidence.”

“That’s not what I mean,” Magnus said. Max nodded. Even if he didn’t know Magnus well, any friend of Wainwright’s was a friend of his, or something similar. “The odds are against you, that’s all.”

“We’re hoping this trick of Hallister’s can help us even them out.” Max hesitated, then asked, “Have you ever heard of anyone moving ley lines?”

The disbelieving look Magnus gave him made Max’s stomach twist. “No,” Magnus said. “Do you think it’s possible?”

“I was hoping you could tell me.”

Magnus reached for his mug, peered into it, then set it aside again without drinking from it. “I don’t need to ask why you’d want to,” he said. “It’d take a hell of a lot of power.”

“True.”

“And even then, if you got one to move, I suspect it’d shift back into place when you were done.”

Max hadn’t thought of that. “That might not matter. It wouldn’t have to stay moved for long.”

A spark of interest in his eyes made Magnus look younger. “Just long enough to disrupt the ritual?”

“Yeah.”

“You’d need more power than the two of you could muster, especially if you’ll be occupied with fighting. A shift like that would require concentrated power and purpose coming from a place of calm.”

“I don’t see us having time to sit and meditate in the middle of a battle to the death.”

“No,” Magnus agreed. “But if we knew when you needed the shift to occur, those of us interested in seeing the sun rise on our world in a few days’ time, not one dreamed up by a madman, could meditate for you.”

“We can give you a time,” Max said, “but I think you’re right and it’d take an almighty amount of power. How many casters would it take to move a ley line?”

“That sounds like the start of a joke. I’m still not sure it’s possible. What ley lines are we talking about anyway?”

“Does it matter?”

Magnus frowned. “Well, of course it does! They’re all distinct and possessed of their own personality. Some were used by troops marching to battle, others by traders. Some are blood drenched; others lead to the light.”

He stood with an effort, his face paling. “I have an atlas showing the major ones in my library. Top shelf, of course, so you’ll have to get it down for me.”

“Tell me where it is, and I’ll find it,” Max promised.

On a normal day—or what passed for normal as far as he and Kaelan were concerned—the sight of Magnus’s library would’ve left him spellbound. An entire wall of bookshelves went floor to almost ceiling, every shelf packed full with books. Some of the shelves also had books balanced across the tops of the others.

The atlas was a hardcover and tall enough that it went right to the bottom of the shelf above it. It was unassuming, covered in a beige fabric reminiscent of linen, but as soon as Max had it down off the shelf, stretching to reach it, he knew it was the right one. Closed, it was like any other book. Open, it radiated magic, making his fingertips tingle.

Tempted to start examining it, Max took the book back to Magnus and handed it to him, not letting go until he was sure Magnus had a grip on its not inconsiderable weight. “Thanks,” Magnus said, already smoothing his palm over one of the pages, then turning the next one. “Around here somewhere. Ah, here. See?”

Max did. The book’s magic illuminated the ley lines on the page Magnus had found. The map showed the entire area, all New England, so the lines were fine and crisscrossed each other.

“Which ones are we talking about?” Magnus asked.

Max began to tell him, then paused. It would be rude not to trust Magnus, but with everything that had happened, especially Joely’s betrayal, he didn’t trust anyone except Kaelan.

“No, you’re right,” Magnus said, breaking the silence. “Best not to tell me. I’ll tell you what I know of the ones nearby; then you can use whichever information is most useful to you.”

Grateful for Magnus’s easy grasp of the situation, Max nodded. “You’ll need to know when the time comes, of course. I’ll arrange a timedrop.”

It was a simple casting and more reliable than any mundane method Max knew. At the precise time he chose, Magnus would receive a message, spoken into his ear, audible only to him. If Magnus was asleep or unable to hear it, the message would repeat until Magnus said, Heard and understood.

“Make it early enough that I have time to pass the word around,” Magnus said. “If it’s going to work, we all need to be focused on the objective at the same time and not pulling in different directions. Literally. You need to tell us which ley line junction we’re talking about, and then if you want it moving to the left or right, east or west. You get the picture.”

“How many casters do you see getting involved?” Going off the small number who’d attended the meeting in the store, Max thought five or six would be the most he could hope for.

And that wouldn’t be enough.

“A few hundred, I’d hope. Word’s been spreading about what’s at stake,” Magnus told him. “Wainwright’s death shocked people, but Jannes’s casting is a different matter. Once they accepted it wasn’t a rumor but fact, they were horrified.”

“Hundreds? God. Really?” Max asked, and Magnus smiled, pleasure at Max’s shock brightening his face. “I didn’t think there’d be so many. We’re so isolated.”

“We are and we aren’t,” Magnus said, ignoring Max’s eye roll. “You’re young, and you came to this world late on. Yes, we operate alone, but we’re a gossipy bunch too, and we don’t need to be in the same room to talk. You and your friend have been the subject of endless speculation since you met. A winter- and a summer-solstice caster joining forces? It’s not unheard of, but it’s rare. And potentially unstable.” He screwed up his mouth as if he’d bitten into the world’s most sour lemon. “I should know.”

“You and Hallister?” Max guessed.

“Some things are better left unsaid.” Which was a confirmation if Max had ever heard one.

Hallister and Kaelan came back into the room then. It wasn’t until the crackle of magic stopped that Max realized it had been in the background the whole time. “We’re good,” Kaelan said, though he didn’t look happy.

“My ears are burning.” Hallister looked at Magnus with an eyebrow lifted; the second eyebrow joined it when he saw the atlas balanced on Magnus’s knees.

“You always think everyone is talking about you,” Magnus said blandly, then focused his attention on Max again. “Send me that message when you know what you want to do. I’ll make the arrangements.”

Hallister sighed. “I’m not going to like this, am I?”

“Probably not, and I don’t know what they’re talking about either,” Kaelan said. “You good?” he asked Max.

“Ready when you are.”

“Thanks,” Max said to Magnus, then glanced at Hallister to include him too. “We’ll be in touch.”

“Good luck.” Magnus glanced at Hallister, who had perched himself on the arm of Magnus’s chair, and Hallister patted his shoulder.

“You too,” Kaelan said. He waited until they were outside before saying, “Okay, never tell him I said so, but Hallister’s a fucking genius. It’s so simple. I could teach you in fifteen minutes, but I never would have thought of it in a million years on my own.”

“I’m sure you would have,” Max said loyally. “Magnus is going to try to organize a bunch of casters to help shift the ley lines when we’re ready. No idea if it’ll work.”

“It’s worth a shot.” Kaelan pulled Max in for a quick hug, strong arms tight and reassuring around Max’s body, the feel of him thrilling under any circumstances. “Let’s get this show on the road. Ready?”

Max stepped back to give Kaelan room to cast the portal. It looked like any other portal when it opened, but once they were inside, it felt different in some difficult-to-define way.

No, maybe not so hard to define—he could breathe. Not even Hallister could alter the nature of a portal and introduce light and air, but the casting he’d taught Kaelan added a bubble of air around the caster that didn’t disappear or need replenishing when the caster stepped inside the portal. In effect, when Max was inside, that bubble was as much a part of him as his hands or feet. Simple idea, but the creation of the casting to achieve it was pure genius. No wonder Kaelan had been impressed.

The first guard was a yard to their left, still projecting an air of boredom, but with the opening of the portal he’d stiffened, senses telling him something had changed.

Kaelan launched a cloud of gas, pale green, murky. It surrounded the man, and he fought to hold his breath, flailing as he tried to step out of it. The cloud moved with him, and when he opened his mouth, either to breathe or call for help, the soporific did its work, and he slumped to the ground. It was a great spell for taking out an opponent without injury, and one they rarely used because, like pepper spray, it was prone to blow back on its caster. Casting from inside the portal, it was the perfect offense.

“Now what?” Max asked. The enforced unconsciousness would last for anywhere from an hour to three, depending on body weight and amount inhaled, but it wouldn’t take the guard out of the picture altogether.

“We can’t kill him. So we put him in a place he can’t get out of using magic or mundane means, and set up controlled doses of the gas for the next forty-eight hours. That won’t hurt him, and we’ll be able to release him well before that.” Kaelan raised his eyebrows. “The safe room in one of our hideouts?”

“Works for me.” Max didn’t have to ask which hideout Kaelan was thinking of. There was a cave they’d come across in the Berkshires when they’d been experimenting with portals. It was deep underground, completely inaccessible to anyone but a caster, and had a series of honeycombs leading to the surface that provided plenty of air.

The other two guards outside the building were simple to dispatch. Kaelan was right—Hallister was a genius, or at least he’d had a moment of genius when it came to this. Being able to cast while still inside the portal was so helpful. It didn’t hurt that the second and third guards weren’t experienced enough to realize Max and Kaelan were practically on top of them before it was too late.

The casters inside the warehouse proved more of a challenge because they were inside an enclosed space, and it would have been impossible to take any of them out without the others seeing what was happening. The first hit the floor quietly, but several of the others were moving toward them before Kaelan managed anything else.

“Hold your breath,” he told Max, who obeyed as Kaelan hit one with gas, then shoved Max out of the way as another sent a bolt of magic at them.

Max rolled and adjusted their shields at the same time, making sure they wouldn’t breathe in the gas. He came up onto his knees and checked that Kaelan was okay. Kaelan had a hand raised and was watching as the guard who’d shot at them, surrounded by gas, collapsed to the floor.

That left one, and he’d ducked behind a staircase. “Give it up,” Max called to him. “You’re on your own.”

“Not for long, asshole. I asked for backup. Jannes will have another team here before you can make it to the nearest exit.” The scorn seemed genuine, and the bolt of power the guard sent at them, deflecting it off a metal post, was definitely not an illusion.

And thinking about illusions gave Max an idea.

“Keep him talking,” he said under his breath to Kaelan, who nodded.

Max eyed the setup. If he projected the image of a portal where the guard could see it, but far enough away that the men emerging wouldn’t be immediately recognizable, that might work.

“Yeah?” Kaelan called back. “Don’t see them, and that’s because Jannes doesn’t rescue anyone who fails. He’ll send them when you’re dead like everyone else. That’s your punishment for letting him down.”

“He wouldn’t do that.”

“We saw him watch Andor burn in balefire and laugh,” Kaelan yelled. “And we saw Trent get sucked into the Netherhells, paying the price for what Jannes made him do. Jannes is using you. All of you.”

Casting complete in his head, Max sketched out a sigil, reinforcing it with his will. This had to look convincing, not an airy simulation done for fun. A portal opened, men stepping out of it, grim-faced and burly. Kaelan hissed out a breath, preparing to do battle, but released it when Max touched his arm reassuringly.

The guard broke free of his hiding place and ran toward what he assumed were reinforcements. “Over there! If we fan out, we can surround them.”

He faltered when the first man walked through him, an insubstantial figure, disappearing at a touch as Max let the illusion fade. He jerked around, eyes wide with accusation, but that moment of hesitation was all Kaelan needed. He went with the more traditional sphere of energy this time, knocking the final guard’s feet out from under him. The sharp smack as the man’s head hit the floor made Max wince, but he still waited to see if the guard moved.

Kaelan didn’t; he was already at the man’s side, hand in the guy’s hair as his fingertips searched for injury. His expression when he looked at Max and shook his head was distant, carefully schooled.

“He’s dead,” Kaelan said unnecessarily, voice flat.

They didn’t have time to deal with this now—not with the body, and not with Kaelan’s guilt, though knowing Kaelan, he’d insist he was fine. “We’ll put him with the others.”

Kaelan shrugged Max’s hand off his shoulder. “You think he was telling the truth about the backup?” He glanced around at the other guards as if they held the answer.

“Hard to say. We surprised them. He might have been bluffing. Still, better get this place cleaned up and get out of here.”

“Be on the safe side,” Kaelan agreed.

A quick search of the guards’ pockets let them cross six names off the list Rafe had made. It was good to get confirmation that Rafe’s information was on the money. The seventh guard had no identification on him, so chances were he was on the list too, and they didn’t know which one he was.

Dumping the bodies through the portal into the hideout was easy, with judicious use of power to help. Max found himself reveling in the opportunity to use the talents he had freely, without worrying that he’d get caught. Once he’d grasped under Wainwright’s tutelage that what some called magic was at heart an ability to manipulate mass and energy with his mind, so many avenues had opened up. Avenues that fear of discovery had closed off again.

“There,” Kaelan said, surveying the men lying in a row and checking his watch, presumably to make sure the next scheduled dose of gas wasn’t imminent. Max had cast a light so they could see what they were doing, and the cave smelled of damp and dust. “All done.”

He wasn’t looking at the one corpse among the group, but Max didn’t point that out. They didn’t have time to deal with guilt, and it had to count for something that Kaelan’s intention had been relatively benign.

“I’m assuming they have scheduled check-ins, so Jannes might already know they’re missing,” Max said. “We should stay away from there and pick off some of the higher-level casters at home.”

Kaelan nodded, his expression distant.

“Hey,” Max said, torn between awareness of the clock ticking and his concern for Kaelan. “It was an accident. And he was no angel.”

“You don’t know that. Maybe he’d just started to work for Jannes.”

“No,” Max told him. “Jannes wouldn’t trust a newbie to guard the warehouse, and he’d be careful to pick people already committed to evil. Easier to influence. Now snap out of it. If you’re brooding and second-guessing yourself, you’re putting me, you, and the plan in danger.”

Anger sparked some life into Kaelan’s eyes, but it faded to wry amusement. “Tough love? Is that it?”

“You could call it that. Not sure the adjective’s necessary.”

“Okay. Yeah. You’re right. So who’s next?”

Max studied the paper in his hand. “Ginger Inslee. This one’s close by, at least. Foster Road. Jannes doesn’t seem to mind how far he makes people commute. I can’t believe he had casters on call in New Zealand.”

“Foster? That’s over near that pizza place with the weird toppings,” Kaelan said. It didn’t come as a surprise that Kaelan needed no more than a street name. He had a strange, almost photographic memory for locations, which Max had always assumed had something to do with his talent for portals. “Let’s go.”

The portal opened in the yard beside a well-kept house. Max glanced around, but they were out of sight; only someone passing by in front of the house at that moment would have seen their sudden appearance.

“Relax,” Kaelan said. “I didn’t want to put us inside.”

“So what do we do now? Knock on the front door and pretend we’re recruiting for our church? Or break in around the back?”

Kaelan seemed to consider both of these suggestions with more seriousness than they deserved. “I don’t think I could pull off the church thing, but yeah, knock on the door and hope she doesn’t suspect anything before we can take her out.”

Max peered around the corner of the house. “No car in the driveway. She might not be home.”

“Might as well try knocking, then,” Kaelan said and strode for the front door.

Uneasy, his skin prickling with a sense of wrongness, Max hurried after him.

“Knock, knock, who’s there?” Kaelan murmured and raised his hand to rap against a door stained dark and varnished to the point where it looked wet.

“Wait,” Max said, or tried to. The word stuck in his throat. It wasn’t his imagination; Ginger had booby-trapped the area in front of her door, sealing them in a bubble that slowed their movements to a crawl. It was a sophisticated casting but one requiring a vast amount of power, and unless she was working with a team, she couldn’t sustain the bubble for long. As a form of defense, it was useful—seal an enemy up and run like hell for the nearest portal. Max doubted Ginger planned to run. Inside the bubble, they were helpless. She could open the door, drive a knife into their hearts, then release the casting and watch them die.

He had to throw a shield around them, one that would snap into existence the moment the bubble burst, but shields took time to create, and what normally took seconds would require minutes inside the bubble.

It didn’t matter. He had to try. Moving sluggishly, though he strove to hurry, Max sketched out the start of a sigil, aware of Kaelan attempting a casting beside him, his face set in grim lines. As Max completed the first sweeping line of a basic shield, the door opened, fast enough from his perspective that Ginger seemed to appear from nowhere, winking into view and startling him.

They’d come here expecting to squash Ginger like a bug, but they weren’t the predators after all.

They were flies caught in a web, and the spider was heading their way.

Chapter Eighteen

Casters often ask what the purpose is of our organization. Put simply it is this: to provide a way for every caster to research their ancestors. For a nominal membership fee, we provide access to untold thousands of records, stretching back centuries, and we have the spellware to make your family tree flourish!

Don’t believe us? Here are testimonials from some VERY satisfied customers!

I always knew my gift for scrying came from somewhere, and thanks to you, I discovered my second cousin once removed’s great-great-grandmother was Althea Cumble, who predicted the moon landing! Next time I tell my husband to take his umbrella because it looks like rain, you can bet he’ll listen!

Mrs. Janet A. [Pennsylvania]

It was with no small delight that I confirmed what I have always known to be the truth and found Merlin himself was a distant relative of mine. Ridiculed by my fellow casters though I have been in the past, I will now be able to point to the bound copy of my family tree (in view of the momentous revelation, I chose the Platinum Package, with the book bound in vellum and each significant relative’s name in gold leaf—a truly impressive tome).

I look forward to their cries of astonishment and groveling apologies.

Many thanks,

Professor M. [London]

[Flyer from the Genealogical Society for Casters.]

A woman who had to be Ginger Inslee opened the door while Kaelan was still struggling to fight against her spell. He was moving at half speed, cursing his impulsivity. He should have listened to Max, should have looked before he leaped and all that. Now they were caught in invisible molasses with Ginger looking at them through narrowed eyes.

Anyone who worked for Jannes was not to be trusted.

If something happened to Max, it would be all Kaelan’s fault.

Damn it, even his thoughts were slow and disconnected, and the harder he tried to break free, the worse the effect got. Ginger said something, but he couldn’t understand her; her voice seemed unnaturally high and fast, as if someone had sped up the audio. Then she lifted her hand, again moving so rapidly that he could barely comprehend what was happening, and a jolt of energy hit them, knocking them backward off the front porch and onto the ground.

Kaelan pushed himself up, grass rough under his palms, and looked for Max, who was already on his feet and had shields up around them. Ginger had blown her initial defensive spell in the attack, which meant he could move again, for real. She’d also slammed the door shut. “What the hell was that?” he asked Max.

“You know what it was,” Max said, glancing at him. “You okay?”

“Yeah. What now?”

Max eyed the door, his expression thoughtful. “Not sure. Why are we still breathing?”

“Does it matter?”

“Yeah, I think it does.”

If it mattered to Max, then it mattered to Kaelan. He sorted through the possibilities, shuffling them like a deck of cards, and put the ace on the table. “Under orders not to. Jannes wants us there tomorrow night, watching and suffering.”

“I agree, but I think there’s more to it than that.” Max raised his voice. “You’re listening—I know you are—so listen to this theory, Ginger. You’re terrified that one more death—hell, dropping a piece of litter—is all it’ll take to send you to the Netherhells. That trap was defensive, and you didn’t leave us in it for long. You’re scared.”

Okay, Kaelan’s theory had been a ten, or a jack, because Max’s made Ginger open the door again. She was shielded so thickly the air around her shimmered, but she faced them without flinching.

“Or I’m merciful, and I don’t kill unless I’m forced to do it,” she said.

“That was on my list,” Kaelan said. “Right at the bottom.”

She shrugged. “Probably the best place to put it. In my line of work, I get forced on a weekly basis.”

Bravado or truth? Kaelan couldn’t read her well enough to be sure. Some shields people were born with.

“Why are you here?” Ginger gestured at herself, from the auburn hair that was her sole claim to beauty, down to her feet, shoved into sensible navy shoes with a modest heel. A forgettable middle-aged woman, invisible because of her age and looks. Most people would pass by on the street without registering her existence. Unless they were casters. “I’m no one special. Why not go after Jannes?” She smiled. “Silly me. He’d obliterate you. Like last time.”

“Yeah, we’re terrified,” Kaelan said. “Listen, we don’t want to hurt you.” The crack as the guard’s head hit concrete echoed in his memory, a sharp, sickening sound, and he schooled his face not to wince. “We really don’t. Just, well, take your piece off the chessboard, I guess.”

“Interesting way of putting it. So how do you see it ending? Two queens against a king or two kings against a queen?” Ginger leaned against the door frame. “There’s a difference.”

“The queen is the most powerful piece, but the king’s the most important one. Jannes sees himself as both,” Max told her. “We’re trying to stop him, not play games.”

“Yeah, and that I don’t get. Why stop him? Why not join him? He’s going to do something no caster has ever been able to do before. He’s making history.” Her voice rang with sincerity and fervent admiration, the change from cynical amusement jarring. “He’s going to make this world the perfect place it was meant to be. How can you not want to help him do that?”

Kaelan couldn’t hold back the look of disbelief he gave her. “Are you kidding me? What did he tell you he’s doing?” It shouldn’t have come as a surprise to find out Jannes wasn’t being truthful with all the people he had working for him, but Kaelan wondered what kind of story Jannes had told her and why she’d believed it.

Unless, of course, he’d used magic to compel her trust.

God, sometimes he was so fucking stupid. Obviously that was what Jannes did whenever it was necessary, whenever he came across someone he knew would be useful to him but might not buy into playing bad guy, no matter how tempting the promise of rewards. Which meant that some of Jannes’s team weren’t on his side; they were puppets and potentially victims, not villains.

It also meant that Jannes might be racking up more negative karma than they’d been anticipating, which could work out in their favor. On the other hand, if he’d been doing it all these years without getting dragged back to the Netherhells, that might mean he was somehow managing to fly under the radar. How that was possible was a mystery to Kaelan, but he didn’t have time to worry about it right then.

“Why do you think you can lie to me?” Ginger asked.

“Why do you think we’d want to?” Max countered. “What would be the point?”

“I can think of plenty of reasons,” she said, ticking them off on her fingers. “You’re stupid, you’re evil, you have some kind of grudge against Jannes, or you want to take credit for his idea. Want me to continue?”

“Do we look stupid?” Kaelan asked. “Or evil?”

She rolled her eyes. “How does someone ‘look’ stupid?”

“You’re doing a pretty good job,” Kaelan muttered.

“There’s no need to be rude, young man.”

“You’re too young to call us that,” Max said with the effortless courtesy Kaelan could never get the hang of. “Or we’re too old. Either way, we’re equals. And as one caster to another, I swear I’m not lying, but I realize you’re going to be suspicious of anything we say or do because of your loyalty to Jannes. A loyalty he’s coerced from you with a casting, but again, you’re not going to believe that.” He spread his hands. “Test me. If you need to do a casting compelling me to speak the truth, I’ll submit to it.”

“The hell you will,” Kaelan said. “Suppose she slips in a suggestion to kill me?”

“I wouldn’t do that,” Ginger said. She flushed, the color vivid against her pale skin. “When I said I’d killed people, it was to scare you. I put flies out of the window instead of swatting them.”

“Yeah, well, Jannes gets his kicks pulling their wings off,” Kaelan said bluntly. “Or making someone else do it while he watches, because that’s how he operates. He gets suck—people loyal to him to do the dirty work. Then they suffer the consequences, and he reaps the benefits. He’s slick, amoral, and the sacrifice he’s got planned tomorrow is a boy I count as a friend, who trusted me to keep him safe, so believe me when I say there’s nothing I wouldn’t do to save Hopper.”

Her eyes—a faded gray, reddened as if she was low on sleep—opened wide. “Hopper? But he’s fine! Jannes adores him. I’ve never seen him relax around anyone the way he does around that boy.”

“That’s because he’s got Hopper under some kind of spell. We saw him on the news. He sounded like a robot. He wasn’t himself.”

Ginger looked uncertain. “But he seemed so happy. And Jannes likes him. I know he does.”

“Jannes is fond of anyone he can manipulate,” Max said.

“I’m not an idiot.” Ginger blinked and glanced around, as if remembering they were standing out in front of her house, less than ten feet from the street, where anyone could see them. She seemed to make up her mind. “Come inside.”

“Seriously?” Kaelan asked.

She shrugged. “Or not. If I wanted to hurt you, I would have done it already. I could have. I’m not letting my shields down, though.”

There was something about her that Kaelan trusted; he wasn’t sure why. Max’s eyes told him he was willing to go along with Ginger’s request too. “Okay.”

The house was neat but not obsessively so. An empty coffee mug sat on an end table, and a newspaper was strewn across the couch, the sport and entertainment pages untouched and the business and politics sections spread out. The air smelled stale, as if it’d been some time since a window was opened, an air conditioner humming away, pumping cold air around.

“I’m sorry for the mess,” Ginger said, staring at the newspaper with a distracted frown. “I’ve been working such long hours. I can’t remember the last time I had a day off, though I suppose…” Her voice trailed off. “When did I have a day off?” She transferred her troubled gaze to them. “Sunday? People in offices don’t work on Sunday, do they?”

“What is it that you do?” Max’s question was put so casually that Ginger answered automatically.

“Why, I’m Jannes’s secretary. Oh, it says I’m an administrative assistant on the door, but I’m not ashamed to be a secretary. I’m a trusted employee. I’ve been with Jannes for years.” She fixed them with a stern look. “He has never, not once, forgotten my birthday.”

“Yeah, he’s a prince,” Kaelan said. “How did you find him?”

“I didn’t. He found me. I was at my last job for a while. Okay, too long, but that’s how it goes. You figure you’ll be somewhere for a year or so while you keep looking for something better, and the next thing you know, it’s been eight years, and the water’s been getting hot so long you haven’t noticed it’s boiling.” Ginger picked at a ragged fingernail. “I was the frog. And then one day I clicked my e-mail, and there was a job offer from him. I didn’t know until I went through his office door that he was a caster.”

“Shields,” Max said. “On purpose, I’m sure. And he found out all about you before he ever sent that e-mail.”

“He didn’t,” Ginger protested. “He was as surprised as I was.”

“That’s what he wanted you to think. That it was all a coincidence.” Kaelan fought back anger. “Nothing with him is a coincidence. He was grooming you.”

“You make him sound like some kind of predator. He’s not. He’s a good man. You don’t know him the way I do.”

“He’s been pulling the wool over your eyes for years,” Max said. “You’re the frog again, and we’re here to tell you the water’s boiling. If you don’t get out now, you’re cooked, and trust me, the Netherhells are even hotter.”

“But even if you were right, and you’re not, I haven’t done anything. I answer the phones and do the paperwork and talk to the accountants.” Ginger seemed incapable of believing that they were telling the truth.

“Jannes has been sacrificing children on ley line junctions all around the city,” Max said. “Tomorrow night, he’s going to slit Hopper’s throat—no, sorry, get someone else to slit Hopper’s throat—and perform an incredibly dangerous casting.”

“No.” She shook her head hard enough that her hair swung. “He’s doing a casting, yes, a wonderful one, but it’s not dangerous; it’s just new. And killing children? How could you say something so awful?”

She sounded genuinely distressed by the possibility.

“Okay, so what will this new-and-improved casting do?” Kaelan asked, frustration boiling up. God, this was like wrestling a pillow into a case too small for it.

“It will fix everything,” she said. “All the problems we can agree shouldn’t exist—people hungry, dying, being hurt by war and disease.”

“How?” Kaelan prodded. “Think, Ginger. How? We’re all casters, and we know we can do a lot of stuff that looks incredible, but we can’t fix things on a global scale, and even if we could, there’s the whole question of if we should.”

Her face twisted, conflict and bewilderment showing. Then her features smoothed out to a complacent smile. “Jannes will fix everything,” she said.

“Every time you push her to challenge the facts, a Reset button gets pressed,” Max said, not bothering to lower his voice. “We’re not getting through to her. I’m not sure there’s anything left of her. She’s swinging from confident and aggressive to meek and sweet, and probably none of them are the real Ginger. He’s fucked with her head so much that her personality’s turned to scrambled eggs.”

“Considering all the other stuff he’s fine with, I guess this is his idea of fun.” Kaelan rubbed the back of his neck. “Did you ever meet a kid named Darius?”

“Darius?” Ginger repeated. Confusion clouded her eyes again, and for a moment Kaelan was sure she would say yes, she remembered Darius. But she said, “No, I don’t think so. Is he a friend of Hopper’s?”

“Yeah, and he’s dead,” Kaelan snapped. “We saw Jannes kill him.” Well, have him killed, but that was an unimportant detail. “Hopper’s next.”

Ginger frowned, still radiating a weird sense of fake peace, as if someone had painted her face on. “Hopper’s a nice boy. I’ve never seen Jannes relax around anyone the way he does around him.” It was practically word for word what she’d said before.

“There she goes again,” Max said, looking as if he wanted to punch something. “Come on. We’re wasting our time.”

“And leave her here?” Kaelan asked.

“Maybe she’ll forget us,” Max suggested. “Out of sight, out of mind?”

“What if she doesn’t?”

“She seems so harmless. But yeah, you’re probably right. She can go in the hideout with the others until this is over.” Max sounded resigned.

“We can get something out of it, at least.” Kaelan went over to Ginger and crouched beside her, putting himself in an unthreatening position and giving her a friendly smile. It was fake, but if she worked for Jannes, she saw plenty of them. “Ginger, can you tell us anything about the casting tomorrow? Time, place, anything?”

They knew those details already, but it never hurt to make sure.

Ginger confirmed the location and time as Kaelan had expected, then added, “I’m going to be there. It’s an honor, but between us, I think I deserve it, don’t you?”

“How many other people are being honored?” Max asked, his voice strained. Kaelan glanced back at him. Max looked a breath away from throwing up. “How many, Ginger?”

“There’s me and Joshua, oh, and Boyd.” She rambled through a list of names, totting them up on her fingers, before smiling. “Thirteen of us for the circle, and some guards, of course. Jannes always has those. He’s an important man.”

Thirteen wasn’t considered unlucky by casters, but it was a significant number, holding power. Kaelan didn’t have a clue why. Casters like Wainwright studied reasons; casters like him concentrated on the practical applications.

And now he knew why Max looked ill. Jannes didn’t need an audience that big, but if he wanted to amplify the spell by drawing on the power thirteen casters loyal to him could provide, one would be useful. And he’d leave all thirteen acolytes dead, drained of life force.

It shouldn’t matter. If Jannes succeeded, everyone would die, their timeline destroyed as Jannes compelled another to become reality, but there was something about Ginger trotting off to be slaughtered that made Kaelan want to punch Jannes hard.

“Are they all as close to Jannes as you are?” he asked.

“No,” Ginger said, looking thoughtful. “I guess I’m special.”

Kaelan refrained from telling her how special she was and stood. “Well, we have to be going.”

Ginger asked, “Aren’t you going to wish us luck?”

“Not so much,” Max said, and they stepped back and held their breaths before Kaelan hit her with a small dose of the magical gas.

“Okay, unless there’s an extra Luke we don’t know, we’ve already taken down at least four of Jannes’s thirteen,” Kaelan said as they put her limp body inside the hideout. “Not that he wouldn’t be able to manage what he’s got planned on less. Thirteen would be better, though.”

“I wouldn’t count on him not having a backup plan,” Max said. “He’s probably got a list as long as your arm of people he can call in at the last minute, in case something goes wrong.”

“Then we’d better get moving and take down as many of them as we can,” Kaelan said.

They spent the next few hours doing that and managed to remove another eight casters from the equation, but doing so didn’t make Kaelan feel any more secure. The hideout where they were piling the unconscious bodies was getting crowded, and it seemed like wasted effort.

“We’re emptying the ocean with a teaspoon,” he told Max, kicking a foot out of the way. He wasn’t gentle. That particular caster had gotten in a kick that had connected with Max’s thigh.

“More like a bucket. Limited number of casters in the world. Most of them aren’t suitable for Jannes’s purposes, or they’re strong enough that he’d have trouble controlling them. It’s helping.”

The clipped words could’ve given the impression that Max was irritated, but he followed them up by resting his hand on the back of Kaelan’s neck, squeezing gently. “It’s helping,” he repeated. “Come here.”

Being kissed surrounded by unconscious bodies and one corpse had to reduce the romance to nil, but for all the lack of ambience, the kiss helped steady Kaelan to the point where optimism crept back.

“We’re pissing him off,” he said, kissing Max’s throat where the skin was warm over the pulse. “He’s wondering where his minions have gotten to and why he has to make his own coffee all of a sudden.”

The snort of laughter from Max lifted Kaelan’s spirits higher. “Something like that, babe. Okay, so what’s next?”

“I’m hungry, in case the noises my stomach’s been making for the last ten minutes weren’t a big enough clue, so food is next. Want to check in on your brother and grab room service?” Max had to be past the point of needing food too. Casting burned a lot of calories, and it wasn’t unheard of for casters to pass out from a combination of hunger and exhaustion.

“Sure,” Max said.

Rafe’s reaction when they appeared in the hotel suite would have been comical if Kaelan weren’t so tired. As it was, he only grinned when Rafe started sideways where he’d been lying too close to the edge of the couch and ended up on the floor with a muffled thud and some not so muffled swearing. “Fuck! Jesus Christ.” Rafe got up, looking as if he wasn’t sure how to feel—angry, annoyed, relieved—as Kaelan went to riffle through the hotel desk for a room-service menu. “Are you guys okay?”

“Don’t we look it?” Max sat down on the couch, then let gravity take him and flopped onto his back. “Tired.”

Kaelan came up with the menu, encased in a fake leather folder. “What do you want?” he asked Max, scanning the options.

“I don’t care. A burger and a salad?”

“We can do that. Rafe, you want anything?”

Rafe shook his head. “I had a sandwich a couple of hours ago.”

“Was it any good?” Kaelan didn’t hold out a lot of hope when it came to hotel restaurants, though right then he wouldn’t be too fussy.

“Surprisingly, it was fine. Fries were salty.”

Max lifted his head. “Yes, please. Salt.”

“You’re probably dehydrated. Have something to drink.”

“There’s ice water in the jug,” Rafe said. “And a six-pack of beer in the fridge.”

A beer sounded good, but Kaelan didn’t think room service usually delivered six-packs. “Tell me you didn’t go out or use your credit card, because if we have to bug out of here, I’m leaving you behind.”

“I’m not an idiot.” The glare Rafe sent his way was easy to shrug off. Kaelan had grown up with a man who threw shoes, books, even beer bottles at him when drunk. Filthy looks? Not a problem. “I gave the room-service guy a twenty, and he got the beer for me.”

“In that case, I’ll be happy to help you drink them,” Kaelan said, heading for the fridge.

“How can you stand being around him?” Rafe demanded, rounding on Max. “You’re too old to be rebelling by pretending to be with someone unsuitable to piss off your family. Teenagers do that. Grow up.”

“This isn’t rebellion, and there’s no one on the planet who suits me better than Kaelan,” Max said without opening his eyes, his voice level, even bored, as if stating something so obvious it didn’t need saying. Kaelan could defend himself, but hearing Max do it was undeniably a turn-on. He had tingles. Jesus. “When this is over, you’ll go back to pretending you’re an only child, so what the hell has it got to do with you anyway?”

“I was thinking you’d be ready to give up all this and go back to a normal life,” Rafe said.

Kaelan’s heart sank. The one thing, the only thing he had was Max. Imagining what his world would be like without Max was impossible. At least that was what he told himself, because it was completely possible, more impossibly depressing. It took him from hungry to sick in three seconds flat.

“You’d be thinking wrong,” Max said. He still hadn’t moved, and somehow that was as reassuring to Kaelan as his words. “This is my life.”

“Why?” Rafe asked.

Max lifted his head and looked at Rafe. “Look,” he said. “I didn’t choose this, but it’s who I am. I wouldn’t give it back even if I could, and I can’t. Don’t waste time thinking how I’m going to save the world and then go back to Mom and Dad like a dutiful son. That’s not happening.”

Rafe and Max looked at each other steadily for much longer than Kaelan found comfortable, but finally Rafe nodded and went to pour a glass of water, then brought it to Max and offered it to him. Max had to sit up to take it, and when he did, it was as if they’d come to some kind of agreement.

Emotions unsettled, Kaelan picked up the phone and dialed room service. He ordered a green salad, fruit, and two burger plates that came with cheese and fries. “Do you have any energy drinks?” he asked.

“No, sorry,” the guy on the other end of the line said. “We have orange juice and cranberry juice, but that’s as close as it gets.”

“Yeah, okay. I’ll take one of each. Thanks.”

“You two sure eat a lot without it showing,” Rafe said after the meal had been delivered and consumed. He seemed to be making an effort to be friendly, though it came off as forced. “Is that a side effect of the, uh, the magic thing? Shame you can’t market it as a diet plan.”

Kaelan let Max deal with that one.

“What we do might not seem physical like lifting weights or running, but it burns up a hell of a lot of energy,” Max said. “We spent the day opening portal after portal and taking out casters who weren’t polite enough to roll over and let us capture them. We’re running on fumes, Kaelan especially. And no, not because he’s weaker than me. Because he’s a genius with portals, and he created ninety percent of them today.”

Rafe shot Kaelan a sidelong glance. “I get cranky when I don’t eat.”

“I get cranky when people try to persuade my boyfriend he’s better off without me.” Kaelan heaved a sigh. “And you were trying to be nice, and I lashed out. Sorry.” He ran his tongue over his lips, tasting salt because the fries had been everything Rafe had promised. “I need dessert.”

“To sweeten you up?” Rafe asked, his voice dry but not hostile. “Have two. With extra chocolate sauce.”

Kaelan groaned. “Don’t. Now I’m in the mood for something gooey and sticky.”

“Hey! TMI. Get a room,” Rafe said, and though it was a truce that probably wouldn’t last, all three of them were laughing at the same time at the same joke.

They might not have a lot of time left, so it would have to do.

“Let’s take a look at this list again,” Max said, standing to dig it out of his pocket. The piece of paper was already tattered from repeated foldings and was torn in one place from the stub of pencil Max had used to cross names out. He handed it to Kaelan, who did his best to smooth it out across his knees.

“Still seven names on here,” Kaelan said. “Plus however many more we don’t even know exist.”

“Then we’d better get back to work.” Max’s jaw was set the way it did when he was prepared to do something he wasn’t looking forward to.

“Or grab a quick catnap,” Kaelan suggested. He didn’t think Max would agree, but it was worth a try.

Predictably, Max shook his head. “No time. Every caster we can take out of this equation increases our chances of stopping Jannes.”

“And saving Hopper.” Kaelan drained the last few drops from his glass of juice and set the glass down. “Okay.”

“Rafe, we might not have enough time to come back here before the ritual,” Max said.

“I’m not going to say you two have the easier job, but waiting is going to be torture.” Rafe raked his fingers through his hair, messing it up more than tidying it. “There has to be something I can do. Can’t we call in a tip to the police about a dead body at the warehouse? If they turn up, sirens wailing, it might scare Jannes off, and this is a one-shot deal, yes? He doesn’t do it at the right time and place, it won’t work.”

“That’s true, but he doesn’t care,” Max said. “He’ll have the place shielded and covered with glamour castings. All he has to do is make a door look like a wall and vice versa. The cops would try to batter down solid brick and get nowhere.”

“So how are you going to get in?” Rafe asked.

“We’ll portal in early,” Max said. “Get a good vantage point, take out more guards, hide ourselves behind a cloak so he’s not sure where we are.”

How early?” Rafe’s persistence made Kaelan uneasy. Their plan was shaky enough without someone shoving at it. “Because if I was Jannes, I’d have that place locked up tight as a drum right now.”

“It wasn’t shielded earlier when we took out the guards,” Kaelan noted.

Rafe turned to face him. “And now the guards are missing. You tipped your hand that you knew where the ritual was happening. I get what you’ve told me about him wanting you there so he can gloat, but that’s the cherry on the cake. I think he wanted to be sure you had the address, and now that he is, that door’s not opening for you.” He held up his hands, an apologetic gesture. “He can gloat over you being outside, hammering at the door as you hear your friend screaming, and run no risk of you screwing things up. Win-win.”

“Listing the potential flaws in the only plan we have isn’t reassuring,” Kaelan said.

“I’m not trying to be reassuring,” Rafe said. “I’m trying to help.”

“By making us feel like idiots?” Kaelan asked. He knew he sounded angry and made no attempt not to. “How is that helpful?”

“That’s not what he’s trying to do,” Max protested, and yeah, that was too much. Kaelan didn’t expect better from Rafe, who’d been a shitty brother since long before they’d met, but he sure as hell did from Max.

“Don’t you start,” Kaelan told Max. “This isn’t the time for what-ifs. This is the time for actual, helpful suggestions, not forays into fantasyland.”

“I’m only saying—” Rafe started.

“Well, don’t. Don’t say anything unless it’s going to help.”

Rafe didn’t back down. Not an inch. “If it means you’re prepared for a setback instead of caught off guard with no time to work around it, I’d say I was helping!” He pointed at the place the portal had opened. “Go on. Try to get into the warehouse. If you still can, great, but do something to make sure you’ll be able to do it tomorrow. You need a small space, right? So build in an open portal, and when he shields the place, it’ll, oh, I don’t know, flow around it.” Rafe grimaced. “I’m not explaining this very well, but is it possible?”

“Keeping it open would be a huge energy drain. I’m not even sure they can stay fixed that long,” Max said, the dubious tone he used soothing Kaelan because Rafe’s face fell at Max’s words, the hope leaving his eyes. “They’re more like lightning flashes—they appear, you go through them, they close. They’re not a door you can wedge open, and they’re strictly one-way.”

And how fucking childish was Kaelan being, taking pleasure in Rafe’s disappointment? Rafe wanted to help. That wasn’t a sin. Castigating himself for being a bigger asshole than Rafe, Kaelan made an effort to consider Rafe’s plan objectively. His thoughts became words, muttered under his breath, then spoken, with the brothers watching him, Rafe blankly, Max with dawning comprehension.

“Yeah. A fixed portal. Why not? It’s just extending what Hallister does. Sure, he only stays in one for a few minutes, but if he can do it for a few minutes, why not a few hours, a few days?”

“Can you do that?” Even though Max’s doubtful voice was directed at him now, Kaelan didn’t crumple the way Rafe had. He knew his abilities, and this would work.

“I’m going to run it by Hallister first. I think we’d need to compensate for the portal wanting to close, because that’s its nature, and kind of beat it into submission, but I think so.” Kaelan nodded at Rafe. “Your idea. You’ll get the credit for it. Thanks.”

“You’re welcome.” Rafe gave him a hesitant smile. “Even if I don’t know what I did.”

“You looked at it a new way,” Kaelan told him. “We’re taught how to do the basics by someone, and they pass their limitations and misconceptions on to us. Max and I spend as much time as we can experimenting, and by the sounds of it, so does Hallister, but we don’t share, you see? Someone could’ve figured this out in Australia a decade ago.”

“That seems inefficient,” Rafe said, his disapproval plain.

“It is, but it’s also a safeguard against a caster learning too much, becoming too powerful,” Max said.

“Even so.” Rafe broke off. “Not the time for a discussion on ethics and education.”

There was probably never going to be a time for that discussion as far as Kaelan was concerned, but Max would be into it under the right circumstances. And while Max and Rafe were arguing the finer points of ethics, Kaelan would be learning everything he could. He couldn’t imagine a world in which he’d start worrying about becoming too powerful. He was no Jannes. He didn’t want to take over the world. He liked the challenge.

“Can you find me Magnus’s phone number?” he asked Max. “If we’re gonna give this a shot, I want to ask him a few questions first.”

“Sure, here. It’s in my phone.” Max handed it over.

By the time Kaelan hung up the phone, Rafe and Max were deep in conversation, sitting on the couch, bent over a notepad that Max had scribbled on. “And then the portal comes out here. I mean, I don’t know the science to it, just the end result.”

“I don’t know if it even is science,” Rafe said.

“We don’t have time to hash that one out,” Kaelan said.

Max caught his eye and mouthed, When this is over, making Kaelan grin. That had become their mantra. His smile faded. It was also a convenient way to postpone discussing thorny issues, but if events didn’t go well tomorrow, Max would die thinking Kaelan didn’t love him.

And he did. Oh, the hell with it.

“I love you,” he told Max and watched color, rich and hot, bloom in Max’s cheeks.

Rafe cleared his throat. “Okay. I’m going to take a shower. Nothing like hanging around an air-conditioned hotel room all day to work up a sweat.”

He left, but Kaelan barely noticed. Max had all his attention. He saw the color recede in Max’s face, the wondering look in Max’s green eyes alter to confusion, and said it again. “I love you. I do. I can’t let us go into the fight tomorrow without telling you.”

God knew what he’d expected Max’s reaction to be, but it wasn’t the long silence followed by words that sounded brittle as dry twigs. “And if we weren’t facing death, you’d have kept it to yourself? Or is it something you think I want to hear, and a kind lie is your last gift to me? Is that it?”

Kaelan’s stomach twisted into a cold knot. He desperately wanted to leave the room; physically slamming the door would be satisfying, but a portal would be quicker. His fingers itched with the urge to cast. “Don’t.” He wanted to say more, to ask how Max could say it, could think it.

Max knew him better than that.

Didn’t he?

“Don’t what?” Max asked, getting to his feet. Kaelan waited for there to be more to the question, for Max to help him, but Max stood there, face a careful mask.

“Don’t,” he tried. His throat closed up, thick with emotion. Finally he said, “It’s not a lie.”

“No?”

Kaelan shook his head.

“What’s the truth, then?” Max asked.

Kaelan swallowed. His eyes brimmed, but he refused to blink. “I love you,” he whispered. “Like crazy. But. I don’t know how to tell you. I never learned, and…” He gave in, closing his eyes, hot tears sliding down his cheeks. “I’m sorry.” Max deserved so much better, not a total fuckup like him.

He didn’t hear Max move, but he felt Max’s arm around his back, pulling him close. He fought it, trying to move away. He wasn’t entitled to Max’s comfort.

“Stop,” Max said. “Let me.”

He obeyed, hating himself for needing the physical comfort and trying to make up for it with nearly impossible words. “Love you. I do, so much. I want to tell you. It isn’t supposed to be this hard.

“No one ever said it’d be easy either, but no, it shouldn’t be hard.” Max hesitated, shifting his weight so that the two of them were stable, grounded physically, even if Kaelan’s emotions were a flurry of snowflakes in a storm. “Loving someone isn’t your problem. You love me; you love Hopper. No, it’s trusting yourself to let go. You’re always holding back in case something goes wrong.” Max stroked Kaelan’s back, gentling him the way he did with Bast when there was a storm and Bast’s fur stood on end, his eyes glittering. “You can trust me. With everything. Your fears, your body, your heart, all of it. I’ll keep it safe, and you do the same for me. That’s love. And that’s simple.”

It wasn’t simple. It was the furthest fucking thing from simple. It was huge; it swelled up inside Kaelan as if it didn’t belong, choked him, made his heart pound and his hands shake. He clutched at Max until the smooth fabric of Max’s shirt was taut against his back and shoulders. “I trust you.”

“I know.” Max’s fingers couldn’t tangle in Kaelan’s too-short hair, but his hand was big enough to cradle the back of Kaelan’s skull. He drew Kaelan closer, and Kaelan didn’t fight it, pressed his face into the hollow of Max’s shoulder, let fabric and skin absorb his tears. “It’s you. You can do this, babe. Let go of the control and accept that I’m here for you, all the way. You already know how to fall.” Max turned his head and murmured his next words into Kaelan’s ear. “Let me catch you.”

Whatever little bit of control Kaelan had been holding on to evaporated. He hugged Max and nodded, and when Max kissed the side of his head, he turned his face, mouth seeking Max’s lips with a desperation that scared him. Max kissed him again, one hand still on the back of Kaelan’s head. “Love you,” Kaelan muttered between kisses.

“It means a lot to hear you say it,” Max told him, sounding as shaken as Kaelan. That helped to steady Kaelan somehow. Knowing this wasn’t a walk in the park for Max either—Max, whose lovers usually came with an expiry date comparable to a carton of milk. “We’re going to have time. All the time in the world to make this work between us.”

“Yeah,” Kaelan said. He wasn’t sure he believed it, but he’d be damned if he gave Jannes the victory by not believing it, so yeah, he did. Totally. “We will.”

Chapter Nineteen

Magnus,

I don’t know why you’re being so difficult. I mean, I get that you’re living in this fantasy world where everyone’s equal, but that doesn’t mean it’s reasonable for you to expect everyone else to play fairy tale with you. I don’t blame mundanes for being dull and blind and uneducated—well, okay, I do blame them for being uneducated, but it’s not their fault that they have no talent. I just want them to keep to themselves and interact with me as little as possible. Is that too much to ask?

We could still do those things we talked about. You wouldn’t miss the mundane world that much; I’d do my best to keep you occupied. Even if we were on some remote island somewhere. We could build that little house with two rooms in the back for books, and the upstairs loft with the big bed, and the kitchen with the oven set into the wall so we could bake that bread you like so much. What’s it called? It has some weird name, something Swedish or Finnish. I know you always said the cardamom was traditional and not about lust, and I know you know I never believed it.

I’m not sorry. I still wish things were different. If you change your mind, you remember how to get in touch with me.

— Hallister

[Found tucked in among Magnus Oak’s papers after his death.]

Kaelan was pacing again, and it was driving Max crazy. Not that he blamed Kaelan for being on edge—under the circumstances, being calm would have been harder to understand—but the repetitive back-and-forth was shredding Max’s nerves. “Would you sit down?” he asked, even though it hadn’t worked last time.

“Sure. Sorry.” Kaelan sat next to Max on the couch but was up again half a minute later. “I can’t,” he apologized. “How can you?”

“Trying to conserve energy,” Max said. It was partially that and partially that he wanted to be focused, and he focused better when he was still. “It’s okay. Do what you need to do.”

“What time is it?”

“Two minutes since the last time you asked.” Max checked his watch again anyway.

Kaelan pivoted on his heel and paused. “Maybe go now?”

“Six more minutes. We agreed.” With the open portal tucked into a corner of the warehouse, invisible to Jannes and his team, it made sense to wait until immediately before the casting was supposed to take place.

“Go anyway,” Rafe said from his chair by the wall, well away from the window. A magazine lay open across his lap, but it’d been a while since he’d turned a page. “Because any more of this, and I’ll kill you before Jannes does.”

Kaelan whirled around, his glare ferocious. “Not funny.”

“Sorry.” Rafe tossed the magazine in the direction of a low table. The magazine struck the table, then slid to the floor, pages fluttering. “Waiting is hard, but I’m going to sit here doing nothing but wait, wondering if my life is going to wink out between one breath and the next. At least you two get to do something.”

“Fight and die? Yeah, I can’t wait,” Kaelan snapped.

“We’ll send Magnus the coordinates, then go,” Max said. “Kaelan, do you want to do that, and I’ll, uh…”

Kaelan glanced from Rafe to Max, picking up on Max’s unspoken request for a moment alone with his brother to say good-bye.

“Sure. I’ll be right back.”

He went into the bedroom Max and he were using because it had a king-size bed instead of two queens and let the door close behind him, the heavy thud loud in the silence Kaelan’s departure had created.

“There’s no point,” Rafe said before Max spoke, amusement lightening his expression. “If you fail, I won’t care what you said to me, and if you win, you can tell me then.”

“I’m still going to say it.”

“You don’t have to.”

“Still.” Max took a deep breath, reminding himself that this couldn’t be as hard for him as the conversation he and Kaelan had had earlier had been for Kaelan, and went on. “I want to make sure there’re no hard feelings.”

“Yeah? That’s not the kind of thing that convinces me you’re sane,” Rafe said. “No hard feelings? Seriously?”

“You know what I mean,” Max said.

Rafe grinned and ducked his head. “I know you don’t want to go into this with us hating each other, but we don’t. That doesn’t mean I get why you had to do any of this in the first place. You’ve said that you didn’t have a choice, but that’s hard to see from where I’m sitting. You don’t understand why Mom and Dad were so pissed off that you walked away from an expensive education and a solid career.”

“That’s not how it happened,” Max said. He didn’t want to admit that Rafe was right. He found it difficult to imagine a time when he wouldn’t care anymore that his parents had disowned him for not doing what they wanted him to, but assuming any of them had a future, maybe they’d all make up and be a happy family again.

Or not. As long as he had Kaelan, that was enough for him.

“For what it’s worth, I think they’ll get over it eventually,” Rafe said. “I’ll do what I can to help.”

“I appreciate that.”

Max pictured himself at Sunday lunch, his father presiding over a table laden with heavy, rich food his mother would pick at while chattering about how little Max was eating. The food itself seemed designed to leave the diners with indigestion, but it’d been his father’s remorselessly jovial questioning that’d tied Max’s stomach in knots from childhood. He’d been quizzed on his schoolwork, his romantic life, and his progress in whatever sport was in season, as if the answers were something his father had a right to know, no matter how personal.

There would be no space for Kaelan at the table. His father’s questions would reveal Kaelan’s humble origins—unacceptable; his casting ability—not to be spoken of; and his complete and utter lack of respect for everything Max’s family revered. And that would be the third strike.

On the other hand, it would be amusing to watch his father meet Kaelan. Kaelan wouldn’t give a fuck what Max’s family thought of him. He’d shown that in his dealings with Rafe.

Even though his family’s love had proved to be conditional upon him giving up something as much a part of him as his green eyes, he missed them at times. He wanted to be part of the family again, but on his terms, accepted as a caster with as much grace and support as they’d shown about his bisexuality.

“You’re frowning,” Rafe said, as if Max couldn’t feel the ache across his forehead. “Look on the bright side. They can’t disown you twice.”

He laughed. His brother had a point. “Yeah. So…”

“No hugging,” Rafe told him. “Be careful out there.”

“I will,” Max said as the bedroom door opened. He glanced at Kaelan as instinctively as breathing, smiled, and amended his words to, “We will.”

“We’d better go.” Kaelan’s eyes were more than a little bit wild. Max knew what that meant, and not for the first time, he was grateful to be on Kaelan’s side. “Time is short. Ticktock.”

“Right.” Max hesitated, then offered his hand to his brother. If they weren’t going to hug, they could shake, at least. Rafe’s answering grip was solid and warm in his and provided more comfort than Max would have guessed. “See you soon.”

“I’ll be here,” Rafe said.

Max patted his pockets once more to verify that he had his phone and Hopper’s bracelet, retrieved at the last minute before they’d left home, and walked to the open portal in the corner. Rafe had avoided looking at it or walking close to it, as if the faint shimmer could somehow draw him inside.

“Magnus says they’re ready to move mountains,” Kaelan said, sounding distracted as he joined Max on the portal threshold. Max hoped the portal didn’t respond to Kaelan’s mood and snap shut on them. “I think they’re excited at the idea it’ll work without thinking about the consequences. I mean, suppose ley lines aren’t meant to be moved? Suppose that does more damage than Jannes’s actions? What if we’re the reason the world ends, not him, and the prophecy is wrong?”

Max grabbed Kaelan’s shoulders, pulled him around, and kissed him. “It’s not going to be us who ends the world. We’re going to save it. And then we are going on vacation somewhere, and we’re going to wake up next to each other every morning and see the sun rise on a world that exists because we saved it, and we won’t tell anyone, but we’ll know, and we’ll do everything we can to take care of it because it’s a beautiful world, and you’re the most beautiful person in it, and I love you.”

Kaelan looked taken aback at first, but by the time Max had finished, he was smiling. Close enough that their noses were almost touching, he said, “Let’s go fuck with Jannes like he’s never been fucked with before. We’re going to surprise the hell out of him and screw up all his plans. Am I right?”

“You’re right,” Max said.

They stepped into the portal and out the other side into the shielded and cloaked area Kaelan had sketched, and into a firefight. Max barely had time to see Hopper standing surrounded by squat candles, unrestrained, before a preset shock wave casting knocked him and Kaelan off their feet. It was the magical equivalent of a bomb, Max thought as he heaved air into his lungs and crawled up onto his hands and knees. “Okay?” he asked Kaelan, who’d ended up against the wall behind him but was already on his knees.

“Yeah. So much for the element of surprise,” Kaelan said grimly.

“Unless they don’t know where we are.” A shock wave casting like that had probably been meant to trigger when anyone portaled in or messed with the warehouse’s shields. It had been set up in advance, and since they were tucked into a corner, they might not be obvious yet. Max didn’t expect that to last.

Staying down, he blinked away the dust the explosion had driven into his eyes, knuckling them impatiently until he could see. The casters Jannes planned to use as a human battery stood in a circle, holding hands. Max couldn’t see all their faces, but the ones in his line of sight were blank and emotionless, as if the compulsion they were under was strong enough to wipe out all personality.

Jannes was nowhere. That was worrying.

“I’ll portal down,” Kaelan whispered. “Now that we’re inside, I can move around. Grab Hopper fast.”

That idea was insanely dangerous, and Max restrained himself from grabbing Kaelan’s arm to keep him where he was. “Who’d fight you. He’s under Jannes’s control, and he wants to be where he is.”

“So he fights me! I’m bigger.”

“He’s bait. Don’t bite the hook.”

Kaelan growled, the sound reminding Max of Bast when he was prevented from leaping at a fly. “We have to do something.

“Perhaps you could work on your last words,” Jannes said and stepped out of emptiness to smile down at them. Max threw a shield around them, encompassing the one Kaelan already had up so that they had a double layer of protection. At the same time, Kaelan tried to hit Jannes with an attack, but it didn’t so much bounce off as dissolve as soon as it came into contact with Jannes’s personal shields.

“That’s so cute,” Jannes said as Kaelan gamely tried again. “You thinking you could hurt me.”

“We’re gonna hurt you,” Kaelan snarled. He lifted both hands together and attacked Jannes a third time, with no change in results.

“Feel free to keep trying,” Jannes said with a smile. “Exhaust yourself.”

Kaelan steeled himself for another attack. Max reached out and touched his arm, murmuring, “He’s right,” and Kaelan clenched his hand into a fist and relented.

“Even cuter,” Jannes said. “He does listen to you, doesn’t he?”

“Better me than someone like you.” Max curled his fingers into Kaelan’s sleeve and held on, as much for his comfort as Kaelan’s. If Jannes wanted to kill them, both their shields wouldn’t save them, not with the power Jannes had. “Those people down there don’t know what they’ve gotten themselves into.”

“That doesn’t matter,” Jannes said dismissively. “They’re tools, a means to an end.”

“The end of the world,” Kaelan said, and Jannes laughed.

“Do you think that’s my intention?”

“No,” Max said, answering for Kaelan. “I honestly don’t think it is. Why would you want to destroy a world you can control and own? But that’s what’s going to happen if you perform this casting. Time could completely unravel. Everyone you know could cease to exist. There are reasons these kinds of castings with created sigils are prohibited.”

“It’s a theory casters have held for centuries, I’ll give you that.” Jannes shrugged, wide shoulders rolling under the expensive jacket he wore. Dressing for a sacrifice seemingly demanded designer suits and well-polished Italian leather shoes. “I see it as a safeguard to prevent lesser talents from attempting an admittedly risky casting. I approve of it. But when it comes to a caster of my power, my ability, it’s as ludicrous a prohibition as expecting a Tour de France rider to equip his bike with training wheels.”

“You are so fucking arrogant,” Kaelan said, his words flat and devoid of heat, as if the enormity of the situation had drained his anger. “You think you’re special. Why? Tell me one impressive casting you’ve done solo without relying on the power of others. I bet you can’t. You’re soft. Lazy. Take away your support group of zombie casters and you’re mediocre at best. Oh, you’re pretty good at compulsions, but they’re not challenging, now are they?”

“In”—Jannes glanced casually at his wristwatch, a deliberate showcasing of how confident he was that they weren’t a threat—“a few minutes, you’ll see how powerful I am. And that’s not arrogance.”

“Only because you’re deluded,” Kaelan said.

“I will prove you wrong.” Jannes spoke pleasantly, as if they were at a cocktail party discussing the skill of the caterers.

Kaelan shook his head. “No, you misunderstood me. I mean, yeah, you’re deluded about how powerful you are, but that’s not what I meant.”

“No?”

“No,” Kaelan said. “Because you don’t have a few minutes. You’re going to be dead before then.” Without further warning, he threw himself at Jannes, something glinting in his opposite hand as he swung it down low at Jannes’s side. A knife. What the hell?

Jannes looked surprised and then pained as the knife made contact with his body, but a swift gesture of his arm, and a casting struck Kaelan with enough force that he slammed into the wall. The knife skittered onto the floor near Jannes’s feet. Max started to move, but something solid came across his throat, choking him. One of Jannes’s zombies had sneaked up on them from behind and now had Max physically restrained. Why mess around with magic when physical strength would do?

Max didn’t have eyes for anyone but Kaelan, lying unmoving on the floor, face turned away. He struggled against the man who had hold of him, but it was fruitless. Where did Jannes find these guys, Brutes “R” Us?

“Don’t let him go,” Jannes said, pressing against his bleeding wound as another of his casters—bonus ones, not the ones from the circle, who wouldn’t chance stepping away so close to the time—joined him and bent to examine his injury. “At least one of them has to be conscious to see the end result of all this work.”

Why? Max wanted to ask, not because he didn’t know the answer but for the sheer satisfaction of making Jannes admit they’d given him difficulties. Sure, for most of the time, they’d been unwittingly disrupting his schemes, but by doing their jobs they’d been the grit in the machine, and that had to gall Jannes so fucking much.

Being taken away from Kaelan when he was hurt drove Max to expend every ounce of energy he had on fighting to free himself, but lack of oxygen hampered his efforts. His vision grayed out, black spots swimming in front of him, and the pressure against his windpipe eased only when he’d been dragged down a flight of metal stairs to where the ritual was about to start and dumped onto the floor.

Bruised from coming into contact with metal railings and walls, Max sucked in deep, whooping breaths, needing to clear his head and think. Kaelan was down but not dead. Max would know if he was alone in the world, and he wasn’t. Jannes, incredibly stupid though it was, had left Kaelan with one guard. If Kaelan regained consciousness, that guard was going to wish he was twins. Triplets.

A guard kicked him in the side after an order from Jannes, and he felt a rib crack, a caster’s awareness telling him that the bone hadn’t split, at least, jagged edges protruding. Just a hairline crack. God, it still hurt. The pain steadied him once it’d ebbed from that first white-hot flash to a dull, vicious throb, keeping him in the present. He cast a thin shield, barely perceptible, wrapping it around his body like a child’s security blanket. It was tenuous enough to be overlooked, but it would absorb any future kicks.

Then he got to his feet. He wasn’t groveling before Jannes. He was an Ancaster. Ancasters stood tall.

Even when their bones were broken and their hopes along with them.

“Move again, and I’ll douse you in balefire,” Jannes said, an edge to the words that left no room for the comfortable belief that he was making an idle threat. He held the knife Kaelan had cut him with, testing the blade with his thumb. “Hm. Pity I can’t use this on your young friend here.” He gestured at Hopper, who was standing peacefully as if nothing was wrong. “It would be rather fitting, somehow.”

“Why can’t you?” Max asked. His voice sounded wrong, rasping through his swollen throat, but he ignored it because he knew it wouldn’t last long either way.

The look Jannes gave him was withering. “Don’t pretend to be stupid.”

Max figured it had been worth a try. Better that Jannes underestimate him. “It isn’t too late to change your mind.”

“Make sure he watches,” Jannes said, and the guard settled a hand on Max’s trapezius and squeezed hard enough to make him wince. “Time check?”

Another guard announced, “Three minutes.”

That meant they had one and a half until Magnus and the other casters moved—or tried to move—the ley line, assuming everything went according to plan. Max couldn’t count on that, though. He’d made his best guess when to schedule the casting: too early, and Jannes might be able to figure a way around it in time. Too late, and…well, it would be too late.

“Hopper, come here,” Jannes ordered, and Hopper blinked like a mannequin coming to life and obeyed without question. “Turn around. You remember your friend Max?”

It was hideously wrong to have Hopper looking at him through a mask of pleased interest, through eyes that held no recognition, though his response was natural enough. “Of course I do. Hi, Max.”

Unseen by Hopper, Jannes made a gesture with his finger, and a man holding a large, curved ritual knife stepped closer behind Hopper, knife held low near his thigh.

“You know who’s your friend, Hopper? Kaelan. He’s upstairs. Jannes hurt him.”

There was a flicker of concern on Hopper’s face, but it was gone again in a flash. “Jannes wouldn’t do that.”

“He’s hurt me,” Max said and tilted his chin up, exposing the marks on his throat.

“I didn’t touch him,” Jannes said, speaking the literal truth and sliding away from genuine honesty. He was so fucking good at that, Max reflected. “And I’m not hurting him now. You can see that, Hopper. And soon you’ll see so much more. Wonders beyond the telling.”

Uncertainty clouded eyes Max was used to seeing alive with intelligence. He preferred them that way. Jannes had killed Darius, but Darius had died knowing who he was. Hopper wouldn’t have that, and he’d die still believing in Jannes. Max would’ve bet every cent of his money that Jannes viewed that as merciful.

Hopper smiled, that blank loyalty unwavering again as the man behind him settled a hand on his shoulder. “Everything’s going to be fine,” he said, parroting the words as he’d been told to repeat them.

Max wished he knew how to break the compulsion the boy was under. Other than killing Jannes, of course, which was impossible without Kaelan unless some kind of freakish opportunity presented itself. “It’s not,” he said anyway, and that was when the ground rumbled under his feet. It was subtle but difficult to ignore, a magical scraping of power line against the earth below like fingernails on a blackboard.

“What was that?” someone from the circle asked.

“Earthquake?” one of the women suggested.

Jannes’s expression made it clear to Max that he knew something bigger was going down, but for some reason the man tried to deny it. “Everything’s fine. Time check?”

Hearing him echoing Hopper’s words drove a shiver down Max’s spine, and the guard behind him dug his thumb into Max’s neck harder as a warning.

“One minute,” the guard from before answered. “Showtime.”

But several of the casters in the circle looked worried, doubtful. Even if Jannes wanted to pretend nothing had changed, they knew. They might not understand—if Max were in their shoes, shifted ley lines wouldn’t have been anywhere near the top of his list to explain what they’d felt either—but they could sense that something was different.

“Now!” Jannes snapped.

The guard with the knife had an avid gleam in his eyes, as if slitting Hopper’s throat would give him more than the pleasure of a job well done. Not everyone in the room was helping Jannes because they’d been compelled to do so, by the look of it. And though it was difficult to tell with so many casters throwing off a low-level buzz of talent, the guard didn’t seem to have any casting ability at all.

Interesting. Was Jannes worried his assassin might get taken to the Netherhells before the fatal blow was struck, and had decided it was safer to employ someone for whom the only risk was getting caught?

It didn’t mean the guard was vulnerable. Jannes had shielded him, as anyone but an idiot would’ve done, but it was a basic shield and, from Max’s perspective, as useful as a blanket would be to ward off a bullet. He could get through it without breaking a sweat, and the guard would be exposed for a split second, long enough for Max to strike before the blade bit into Hopper’s flesh.

As plans went, it had a certain desperate simplicity to it.

The casters got it together enough to begin what they needed to do. Unsurprisingly, it started with a group chant. The wording was a little bit different than Max had expected—whether because Jannes didn’t know what he was doing, or because he did, Max wasn’t sure. The air shivered with the first stirrings of the magic, and Max saw the guard’s hand tighten on Hopper’s shoulder. Hopper didn’t notice at all. His face showed only mild curiosity and anticipation, like an older kid waiting to see the birthday present he already knew was coming.

A couple of the casters faltered. Jannes gave them a look that could have melted stone and said loudly, “Focus, people. I know you don’t want to disappoint me.”

They managed to finish their brief chant without screwing it up, from what Max could tell. The ring of power that traveled around the circle through their linked hands was almost visible. Max felt it under his skin, the prickle of it making his hair stand on end.

The instant the guard holding Hopper raised his knife, Max acted. He shattered the guard’s weak shielding and hit the man’s shoulder with a carefully aimed bolt of power that would mean little to a caster but would shock the hell out of a mundane.

Predictably, the man cried out and fumbled his grip on the ritual knife. Max lost track of what happened, because the big guy who’d been restraining him shifted an arm around his throat, and the need to breathe became all-consuming. Max sizzled some magic into his shielding, enough to distract the man and loosen his hold, and took advantage of the distraction. He half turned and lifted his knee into the guard’s crotch. The guy went pale around the mouth, and the strength left his arms, but it turned out he’d been all that was holding Max up, and the next thing Max knew, he was on the floor, and Jannes was standing behind Hopper with the ritual blade poised at Hopper’s jugular.

Max couldn’t move. There wasn’t time.

A black, shrieking mass appeared on Jannes’s head and shoulder. Bast.

Surprise held Max in its grasp for the space of time it took to draw in a breath. Then he was free of it. How Bast had gotten here didn’t matter. That he was here, fighting alongside Max and repaying a debt five years in the owing, did.

A circle of three breaking the hold of the dark caster on the threads of time…

Three. Max, Kaelan—and Bast. It clicked into place in Max’s head, and he knew he’d solved that particular riddle.

Jannes howled at a higher pitch than the cat, flailing wildly at an animal nature had equipped with claws to cling to branches and defend territory. Bast clung. Bast bit. Bast raked claws over flesh, scoring skin until Jannes’s face was wet with blood, his eyes blinded with it.

With an inhuman howl of agony and rage, Jannes dropped the knife and reached up to grab the cat. Max knocked the weapon away with a flick of power, then took Hopper’s arm, pulling the startled boy behind him.

“We have to help him!” Hopper said urgently, but he frowned as he said it, the urgency fading. “That cat… I know him.”

A shimmer caught Max’s eye, and he turned his head, seeing a portal form. Kaelan staggered out of it, hand outstretched for balance, his face pale but determined. “Sure you do. You’re his cat sitter. The only one besides Max and me he’ll let tickle his belly.”

Bast didn’t look remotely cuddly now.

“Complete the casting!” Jannes yelled, struggling to push Bast away from his face and failing. Bast was everywhere at once, a swarm of cats instead of one.

The guard Max had kneed in the groin was still lying on the floor, clutching himself, but the one who had been poised to kill Hopper had recovered from Max’s attack enough that he seemed to be contemplating whether to go after the ritual knife five feet away or retrieve Hopper.

“Don’t even think about it,” Kaelan said to him, hand twisting into Hopper’s shirt, Max suspected, both to protect Hopper and to keep himself upright. “Magnus?” he asked Max.

“Yeah.” It was the best answer Max could give without revealing their plan.

“Jannes,” Hopper said. He stared at Jannes, now on his knees and still trying to fight off the determined Bast. “I should help him.”

“No.” Kaelan shook Hopper and almost fell as a result. Max reached to steady him automatically, even as he turned his head to check out the circle of casters and what they were up to. He glanced back at Jannes in time to see the man finally get hold of the cat and fling him away. Kaelan made a hasty gesture, a portal opened in Bast’s path, and the cat disappeared into it.

Jannes was on his feet again, more focused on his casters than on Max and Kaelan or even Hopper. “Now! Hurry!”

“Something’s wrong,” one of them protested. “I don’t know what.”

“Just do it!” Jannes shouted.

“We can’t find the locus!” the woman snapped and broke free of the circle to confront Jannes, stalking over to him with long strides. Seemingly indifferent to Jannes’s gory face, she poked him in the chest, sending him stumbling back a step. “It’s gone. And you’re out of time. So what’re you going to do now?”

Brushing away the blood trickling into his eyes, Jannes drew himself up. “How dare you speak to me like that? Back to your place!”

She began to move, the aggression in her eyes fading, but after two steps, she halted and turned back. “No! The things you’ve made me do… I remember them now.” Face twisted in horror, she backed away, not toward the circle, but away from Jannes. “You’ve been controlling me. Using me. Using me to do everything you wanted.”

“For the casting,” Jannes said, his voice deep, compelling. “Laura, I know this isn’t easy, but it will be worth it in the end. So much good will come of this, and those who’ve given their blood will be honored, their names remembered, I swear it.”

“Lies,” she hissed. “So many lies.”

“You shouldn’t be behaving this way,” Jannes told her, his bewilderment plain. He glared at Max and Kaelan. “Your doing?”

“Nope. This is on you. You’re juggling too many balls,” Kaelan said, not troubling to hide his satisfaction. “Ever tried to keep a strong compulsion going on this many casters before, when they’re surrounded by this much raw energy? They’re trying to break free of you, every single one of them. They know what you’ve doomed them to, and they’re scared to death. Give it up. You’ve missed your window, and the power boost you needed isn’t going to happen either.”

A few of the casters were already backing away, their expressions a mixture of distaste and confusion. Max didn’t stop them. It was hard to assess how responsible they were for their actions, but if they’d been willing participants from the beginning, they would get what was coming to them sooner or later. He and Kaelan didn’t need to be the ones to provide it.

Jannes grabbed on to Laura’s throat. She didn’t try to push his hand away physically; she made an impatient gesture and removed his hand with a jolt of magic that had him wincing.

“His shields are down,” Max hissed at Kaelan, forming an attack as he spoke. He didn’t know when Jannes’s shields had collapsed, and he didn’t care; he wanted to take advantage of the situation.

As always, Kaelan’s reflexes were impressive. Even as Max’s strike hit Jannes, Kaelan’s was hurtling toward him, and they hit him one-two as if it had been planned that way instead of coincidental. The first blow made Jannes stagger backward, and with the second he lost his balance and fell. Max was ready for the return attack and had a solid shield protecting Kaelan, Hopper, and himself before the magic left Jannes’s fingers.

“You’re mine,” Jannes told Laura as she turned to go.

“Not anymore,” she said and opened a portal. Across the floor, other casters exchanged glances, then winked out of view. It reminded Max of when he and Kaelan had asked Magnus’s friends for help and watched caster after caster vanish. Knowing how it felt to be abandoned didn’t mean he had a shred of sympathy for Jannes.

Jannes raised his hand and threw a fireball after the final caster, but threatening though it looked sizzling through the air, by the time it reached its intended target, the caster had gone.

“Did that help?” Kaelan asked. “How about stamping your feet for an encore?”

“Kaelan, don’t.” Max couldn’t shake the sense that this wasn’t over, and Jannes looked far from defeated. In fact, with the deep scratches on his face and hands, the blood spattering the designer suit, he looked like a creature from legend, his harsh features carved from stone, not flesh.

“He killed Darius,” Kaelan said. “And all those other people to get what he wanted. Now I’m supposed to be nice to him? Feel sorry for him?”

“What’s going on?” Hopper asked. Some semblance of awareness was back in his eyes.

“Long story,” Max told him. “Hang tight for now.” Jannes was getting to his feet, and Kaelan looked as if he wanted to attack him again.

“You think you’re not going to get what you deserve?” Kaelan asked Jannes.

“I know I will,” Jannes said, with more control than Max would have guessed he had left in him. That made him nervous. “You seem to think that’s some kind of punishment, when in fact it’s the opposite.”

Kaelan grimaced. “Yeah, I’m sure the universe is going to give you a gold crown and a billion dollars. Because you’ve been such a good boy.”

“You make one mistake after another.” Jannes’s expression went from calculating to darkly pleased, and Max’s stomach twisted with the sensation that he’d been right when he didn’t want to be. “You think I failed to have a backup plan?”

“It’s too late to kill Hopper,” Max said.

Hopper yelped. “Huh? Say what? Yes, it fucking is too late. When was it ever the right time?”

“Keep your yammering pet quiet,” Jannes said, his contempt for Hopper plain. Where were the TV crews now? “Humans. Limited, stupid, short-lived ants. How can you stand to be around them?”

Hopper drew an outraged breath. Max waved him quiet before the boy did or said something to provoke Jannes into attacking him. Looked at coldly, if Jannes did attack Hopper, it might be enough to doom him, but Max wasn’t taking any chances with Hopper’s well-being.

“Casters are human too,” he said. Keep him talking; spin this out. Make sure Jannes can’t complete his plan. “We have an ability most people don’t. It doesn’t make us better than them.”

Jannes snorted and stepped back, taking small paces that wavered from side to side as if he was dizzy. “Don’t be ridiculous. Of course it does.” He paused, delight shining from his eyes, and planted his feet. “Ah, here it is. You moved the ley lines, didn’t you? Not far, but who would have ever supposed it was possible? I can understand why those pathetic excuses for casters couldn’t sense it. Look!”

Shit. The efforts of Magnus and his team had never been intended to last for long, just long enough. And their casting worked, and was still working, amazing though that was, but Jannes didn’t seem to care that the moment he’d planned for had passed. He pointed at the floor, and Max looked down warily. Blood smeared by Jannes’s shoes lay on the concrete. No sigils, no circle, just a mundane splatter, but did the trappings of magic matter as much as most casters thought they did? Wasn’t it enough that there was blood?

“See?” Jannes asked. “Blood was spilled on the locus. My blood. By an animal you stole from me, whose death should have marked the start of my journey. When this is over and I’ve left this version of the world behind, I’ll take pleasure in knowing your cat has ceased to exist.” He grinned, red speckling his teeth. “Along with the two of you, of course.”

Max’s brain was racing, and if Kaelan’s face was any indication, his was too. “Why?” he blurted out. “Why are you doing this?” It was a stupid question; he wanted to keep Jannes talking if possible.

“For the best reason in the world.” Jannes was still wearing that smile, the one that made Max feel vaguely ill. “To stop you from winning. I can’t prevent the prophecy that you’ll destroy me from coming true in this timeline, but in a world where you three don’t exist or never met? I’ll remain immortal. And I like living. After two thousand years, you could say it’s become a habit.”

Jannes was running scared? The prey, not the hunter? That was a lot for Max to wrap his head around. Faced with a prophecy foretelling his doom, he’d be desperate, yeah, but the lengths to which Jannes had gone to avoid being tossed back into the Netherhells were staggering.

“What if you can’t pull this off?” Kaelan asked. “What if you end up dead, a burned-out husk of a former caster?” It didn’t sound like much of a threat in comparison to an eternity in the Netherhells, but Max didn’t blame Kaelan for not mentioning that instead. Jannes didn’t need to be reminded what was at stake here.

“It must be difficult for men with your limited abilities to imagine,” Jannes said mockingly, and mocking was good—it meant he was distracted. That was what they wanted. “But I’ve never failed at anything in a very long life. And I don’t intend to begin now.”

The tendrils of Jannes’s magic reached down into the tacky blood smeared on the floor; Max tracked them with his senses. Jannes’s shields were back up, the blood he needed there, the junction of the ley lines trembling under his feet.

Shit. It wasn’t only the ley lines that were trembling; it was the whole fucking building. Dust hazed the air, softening the outlines of every girder and pillar.

“Get Hopper out of here,” Max told Kaelan, barely moving his lips, trusting Kaelan to understand his muttered words.

Without replying, Kaelan opened a portal behind Hopper with a focused surge of power that raised the hairs on the back of Max’s neck as it passed through him. Hopper whirled around, startled, but before he protested, Kaelan sent another blast at him, pushing him through the portal with what must have felt to Hopper like a giant invisible hand. The portal snicked closed a moment later, before the fireball Jannes had launched could follow Hopper through.

“Too slow, O master of time,” Kaelan said with a smile as mocking as any Jannes had given them. “He’s safe. It’s two against one, and I don’t care if that’s an unfair fight.”

The air behind Jannes sparkled, light catching the dust motes. Bast appeared, stepping out of a cat-sized portal, every whisker bristling, his tail swaying.

“Will you look at that?” Kaelan said. “So that’s how he does it!”

It wasn’t the time to laugh, but Max wanted to, a bubble of amusement rising inside him. They’d been so careful to keep Bast safe behind locked doors, so puzzled when he showed up as if by magic. And that was exactly what it’d been.

Bast padded over to join them and sat down, nonchalantly cocking one leg in the air and applying his tongue to his butt. Max didn’t doubt for one second it was the feline equivalent of a raised middle finger.

The tremors increased, an ominous crack opening in the concrete pillar to Max’s left, running in a jagged line to the base.

“Stop what you’re doing,” he told Jannes. “Stop it before it’s too late.”

“That’s the beauty of it.” Jannes wiped the corner of his mouth, but it didn’t leave him any cleaner. As far as Max was concerned, he’d never be clean. “Once this is done, once I’m free of you and that damned prophecy, it will never be too late again.”

“That’s only because you’re delusional,” Kaelan said. He followed this up with a series of attacks that bounced off Jannes’s renewed shields as if they were nothing more than thrown pebbles.

Jannes laughed. “Yes, please, by all means. Tire yourself out.”

“Delusional,” Kaelan repeated. “You think I can’t do this for hours? I’m well rested, well fed. I might not have your talent for trapping people in webs like flies, but I’m strong. I’m gonna outlast you.” He sent another volley of magic, missile-shaped bolts this time, and Max sent more power into their shields as Jannes returned fire.

Bast arched his back and hissed. There was a deep, almost painful creak of metal somewhere in the building, and a fresh rain of concrete dust.

“You think you’re distracting me, but you aren’t,” Jannes said. His hands flexed, and a column of light shot up through him. It wasn’t a circle, but it surrounded him, and Max was suddenly sure it would act like one for Jannes’s purposes. A glance at the floor showed it was Jannes’s blood creating and containing the magic.

Kaelan fired more power at Jannes. “Is that a circle? Can he do that?”

“Seems he can,” Max said grimly. The floor underneath them shivered, then buckled upward. A jagged crack off to their right was wide enough to fit a chair into.

Jannes unleashed a stream of words, Latin by the sounds of it, but Max only caught a phrase here and there. The noise around them was building, the earth beneath them, disturbed by the ley line shifts and the flux of energy flowing through it, heaving as if it was trying to rid itself of their intrusion.

“Is Magnus still holding?” Kaelan called to Max, obviously being vague on purpose. “If he stops, that could help.”

Debris flew through the air, colliding with their shields and bounding off, but absorbed into the maelstrom around Jannes, feeding the chaos. Max shook his head. “How the hell do we tell him to stop?”

“Easy.” Kaelan conjured up a message ball, a small silvery sphere that looked like a tacky Christmas tree ornament. He spoke into it. “Magnus, way to go, but stop the casting. We haven’t won, but Jannes has found the new locus. Pull the plug, huh?”

He tossed the ball into a portal the same size as it and gave Max a cocky grin. In the early days that grin had irritated Max, but he’d learned to see it as what it was—a need for approval expressed in a way that didn’t leave Kaelan exposed. He smiled back, then reached down to scoop Bast into his arms. Lifting the cat with a cracked rib wasn’t easy; Bast was heavy, but Max managed it, and the three of them stood, locked in a bubble of calm at the eye of the storm.

Jannes glanced at them. Max was pretty sure Jannes had a vague idea of what Kaelan had done with the message ball. The energy in the tunnel he stood in didn’t dissipate, though, not at all. If anything, it kept getting stronger. The floor under their feet was shuddering, and a series of new cracks had opened up, snaking in a variety of directions.

“Anything I send at him will feed it,” Kaelan said. He had to raise his voice to be heard.

Max nodded. Any attacks they made were worse than useless and gave Jannes more power to work with. They had to think of a way to do the opposite. “Can you make a portal and throw him into it?”

“Not with that thing around him!” Kaelan gestured at Jannes, who looked as if he was caught in the middle of a tornado inside a snow globe.

Something new was happening. The energy had built to some kind of peak, and instead of the situation getting more intense, a switch flipped. The raging sound went muffled, though the air continued to swirl wildly around them.

Inside his circle, Jannes started to flicker. There wasn’t a better word for it. One second he was there long enough to move; the next he had winked out of existence, only to reappear a moment later. Bast clearly disapproved; he dug his claws into Max’s arm and hissed.

“What the hell is he doing?” Kaelan demanded, as if Max had the answer and was keeping quiet.

Max began to point out that this was new to him too, when he noticed the way Jannes was changing. “Look at him. Sometimes he’s old, sometimes younger. He’s different every time. Clothes, hair; blood, no blood.”

“He’s cycling through the possible timelines,” Kaelan said, disbelief sharpening his voice. “Or maybe realities. Like a guy with a remote in his hand, channel flipping until he gets to the big game.”

“And when he does, when he chooses—”

“We don’t exist,” Kaelan finished.

Max shuddered, clinging to this life, his life, as if force of will could keep Jannes from going through with what had to be the most self-centered fucking plan in the history of the universe. He wasn’t thinking solely about himself, or Kaelan. This went beyond them. If dying could stop Jannes, he’d do it, and he knew Kaelan would too.

Maybe not Bast.

Even as he thought it, the cat squirmed, forcing Max to drop him or risk a slash from claws that were disturbingly free of blood. At least Bast had licked them clean out of sight.

“We’re pure of heart, right? Cleansed and all that shit?” Kaelan demanded.

“Yeah, I guess.”

“Then why can’t we touch him? Why is he stronger? Centuries of practice, yes, but there has to be a limit to his powers even so. He’s not a god. He’s still human. Kind of.”

“Life sucks,” Max replied. It was all he had.

“No,” Kaelan said. “No, uh-uh, no way. No.” Bast turned his head and looked up at Kaelan’s face as if he understood what was happening. Kaelan cupped his hands together, summoning power between them, then held a palm toward Jannes and released the magic in a crackling stream like lightning.

Kaelan’s magic hit Jannes’s circle. It wasn’t absorbed, and it didn’t penetrate the outer rim, but Max thought he sensed something different.

It wasn’t Jannes who was different; it was what Kaelan was doing with the magic.

Almost immediately Kaelan began to show the strain of his effort. He set his jaw, determined, stubborn, and the whole time the magic poured out of him. And Jannes’s circle started to break apart. Max watched the safety glass of a car’s windows become small, individual shapes in an excruciatingly slow form of stop-motion animation and knew it might be enough to save them, but not in time.

Kaelan must have known too. His lightning bolt of magic faltered, and he threw Max a desperate look and his free hand. His lips formed words that Max couldn’t hear; he had to try again. “Help me,” he shouted.

Max was good at shields, but that wasn’t what was required now. Still, everything a caster did was energy manipulation. If he could funnel it into a shield, strengthening it, supporting it, he could do the same for Kaelan.

Kaelan, Max’s gift from whatever fates watched over casters, the perfect match for him, even if it’d taken them both so long to figure it out. Losing Kaelan would kill him. Losing this battle could kill everyone.

Max drew in a single breath and released his power from the chains Wainwright had taught him to use and his native caution had needed to feel safe. Raw power was unpredictable, wildly dangerous, but Kaelan could take it, any amount of it, and shape it to his will. The two of them, summer- and winter-solstice children, defense and attack, calm and fury. Together they formed a perfect whole, balanced in a way Jannes could never be, purified by their love and trust.

A rush of power rose within him, and he threw it all at Kaelan. His feet left the floor, his body arching in an explosion of pleasure, intense to the point of being close to unbearable. He couldn’t be the conduit for this much energy for long, but Kaelan wouldn’t need long.

The bolt struck Kaelan, and he screamed, exultant, loud enough to pierce the howl of wind and crack of stone.

He rose to join Max in the air, gripping Max’s hands. The pleasure didn’t lessen, but the intensity did, giving a tidal wave a safe channel in which to flow.

Inside his circle, Jannes was winking in and out of existence. Kaelan’s renewed magical lightning hit the circle, and it lit up again, cracking faster now. Fast enough? Max wasn’t sure.

Kaelan’s eyes were dark as he fed their combined energies into the attack. “We’re going to end you!” he shouted, and Jannes stopped, scowling at Kaelan. The ground underneath them shuddered so violently that they ended up on their knees, Max with one hand on the concrete to steady himself. With a snap, the ley lines returned to their original position.

Thank you, Magnus.

Jannes’s circle, significantly damaged by the force of their attack, disintegrated as the ley lines moved, and he shrieked with rage, lifting a hand to fire magic fueled with anger and the remnants of his casting at them. It hit Max’s shield with enough power to destroy it—damn, damn—and knock him flat onto his back. Max gasped for air and rolled onto his side to see what was happening. Kaelan was unmoving nearby, crumpled on the floor as if his strings had been cut, and Bast was nowhere to be seen.

“Kaelan.” Max crawled over to him and touched him.

Jannes screamed. It sounded different this time, not anger but terror.

Max didn’t want to look away from Kaelan, but that sound compelled him to turn his head. His breath caught in his throat. Swirling around Jannes was a host of figures, some of them indistinct, others solid, none of them living.

At least Max hoped they weren’t. They bore the marks of what had killed them: fire, blades, bullets, rope, poison… Some were mangled as if they’d fallen from a building or been crushed. The sight was horrific, but Max couldn’t avert his gaze, pity filling him. So much pain, and God, some of them were barely adults.

“No!” Jannes struck at a woman missing half her skull. “I didn’t shoot you! It wasn’t me! Go after Brennan!”

She mouthed two words, Your orders, and put her hand on his shoulder. Jannes threw back his head as if he’d received an electric shock, his body contorting. So briefly Max wasn’t sure he’d seen it, the woman stood whole, and it was Jannes with the fatal gunshot wound marring his head. Then the woman dissipated, gray smoke blown away, and Jannes, panting, surrounded, stared up at a tall man, his throat gaping open like a smile.

“God,” Kaelan said, pushing himself up on his hands. “I think…I think they’re his victims. I recognize some of them. It’s like they’re…laying their deaths on him.”

“About fucking time.”

The crowd around Jannes surrounded him, hiding him from view, but nothing blocked his screams. Max was glad they couldn’t see what was happening to him. By the sounds, it got bad fast, to the point where Jannes couldn’t do much more than gurgle in agony.

“They didn’t come from the Netherhells,” Kaelan said. “Are they ghosts? There’re thousands of them! Look. It’s hard to see some of them. They’re close to invisible. Are they his first victims, maybe?”

“Must be.” Max had never heard of ghosts coming back to get revenge on someone who was surely destined for the Netherhells, but it was as reasonable a suggestion as any other. Maybe they’d been stuck somewhere between life and death, waiting for Jannes’s time when they’d avenge their deaths and be free to go…wherever the dead went when things were over.

As Jannes’s victims repaid him for his sins one by one and then left, fading away, Max realized the last person waiting in line was Darius. A Darius with a wound at his throat, his front soaked with blood, and his eyes two burning coals in his face.

“No,” Kaelan whispered. Max put a hand on his shoulder, helpless to offer more comfort in that moment. Darius leaned down and brushed his fingers across Jannes’s arm. Jannes jerked at his touch and made the kind of sound you’d expect from someone whose throat had been destroyed, blood pouring from him. He lay in a pool of blood so large it couldn’t be real. He’d be dead already; he couldn’t have had that much blood in him before this had started.

Darius straightened and turned to look at them. He was uninjured again, though there was still something wrong with his eyes, but when he took a step closer, Kaelan’s hand clutched Max’s arm hard enough that it hurt.

“I’m sorry,” Kaelan choked out. “I tried to save you.”

“He knows,” Max said. He was sure it was true. Darius didn’t seem angry or sad, just peaceful, as if now that Jannes had taken on the injury that had caused his death, he was satisfied justice had been served.

Darius nodded, smiled, and dissipated the same way the others had. Now alone in the building with Jannes, Max and Kaelan had little choice but to look at the man on the floor, twitching and giving the occasional desperate gasp for air. Jannes couldn’t even scream anymore.

But worse was to come with the final judgment for the evil Jannes had caused to be done by others in his name. Max and Kaelan had watched Jannes’s man get taken away, but his dispatch had been a peaceful one by comparison.

Jannes fought the demons that rose from the quaking floor, weakly, but to the end. Part of Max felt a grudging admiration for the man’s tenacity, part of him felt pity, but mostly he was filled with a somber satisfaction.

In the moments before he was dragged to the Netherhells and an eternity of much-deserved suffering, Jannes sent them a hateful glare, no remorse, no guilt showing. Just inimical loathing, as if he blamed them for everything he’d endured and what was to come.

Drawing Kaelan close, looking to give and receive comfort from the contact, Max watched as Jannes disappeared, taken by jailers insubstantial as mist, strong as death. Something told him there’d be no escape for Jannes this time.

When he turned his gaze to Kaelan, Kaelan was staring resolutely at the place where Jannes had been too, as if he’d needed to see it. “Hey,” Max said, resting his hand on the curve of Kaelan’s shoulder. “He’s gone. That’s it. We did it.”

“Yeah.” Kaelan swallowed and forced his face into a smile that didn’t look remotely convincing. “You okay?”

Ignoring the sharp stab of pain from his cracked rib, Max said, “Am I okay? I’m not the one who kept getting knocked down.” He ran a hand through Kaelan’s hair, finding a solid egg on the back of his skull. Touching it made Kaelan wince. “Sorry.”

“I’m fine.” Sitting up a little more, Kaelan glanced around. “Where’s Bast?”

Everything had been so crazed Max had lost track of him. “I don’t know. Bast!”

“Pretty sure he’s not going to start coming when we call,” Kaelan said. He managed to get to his feet, swaying in a manner Max found somewhat alarming, then did the same thing Max had done and called Bast’s name. When a minute had gone by with no response, Kaelan asked in a low voice, “You don’t think he…?”

“No,” Max said. He wasn’t sure he believed it, but saying it made him feel better. “He probably bailed when things got dicey. You know how cats are.”

“Right.” Kaelan didn’t sound convinced.

“The last time I saw him, he was fine.” Max couldn’t remember when that had been.

“Did you see Darius?” Kaelan asked. The question seemed genuine, as if he wasn’t sure, and that worried Max. He stepped closer and took Kaelan’s face between his hands, studying his eyes. Kaelan’s pupils looked okay, but what did Max know?

“I saw him. I saw all of them.”

“Okay.” Kaelan nodded, the bob of his head continuing longer than it should, as if stopping it took more effort than doing it. “Wiped out,” he offered. “Gonna catch me?”

Even with the warning, Max didn’t expect Kaelan to pass out cold, but he did.

Caster’s crash.

And with the way the building was shaking around them, gravity and weakened supports combining to make their location hazardous, it was time to go.

Time to discover what happened when it was all over, because it finally was.

Chapter Twenty

Top Vacation Destinations for the Magically Inclined

• Stonehenge: The remains of this ring of standing stones, located in Wiltshire, England, are one of the most visited tourist attractions in the world. The Heelstone, which lies outside the primary entrance to the henge, designates the spot at which a caster standing within the circle can see the sun rising on the day of the summer solstice. While it’s no longer permitted for visitors to walk among the stones themselves for preservation reasons, the dedicated caster can make arrangements for this to be possible through contacting a member of the Celtica Coven of Druids (see footnotes).

• Devil’s Triangle: More commonly known as the Bermuda Triangle, this is a poorly defined area in the western part of the North Atlantic that has long fascinated the public because of the mysterious disappearances of ships and aircraft that are reported to have occurred within its (ill designated) borders. No US government agency maps describe the area, but several easily obtainable maps mark it plainly for casters’ eyes. While mundane explanations for the Triangle include things like compass variations, the Gulf Stream, and stormy weather, casters know a number of ley lines cross in that region, making it a prime spot for more powerful castings and spellwork.

• Salem, Massachusetts: The location of the infamous witch trials of the early 1690s is a popular tourist destination for those who believe that the girls on trial were witches and those who believe it to be a cautionary tale of religious extremism taken to absurd heights alike. Most casters will find museums such as the Salem Witch Museum and the Witch Dungeon Museum to be appalling wastes of their time and money, but the dedicated scholar may be able to extract valuable knowledge from the details provided in some of the more obscure literature. There are those who posit that at least one of the Salem Town magistrates was in fact a caster who was manipulating the accused girls for magical gain.

• Ica, Peru: This city, located approximately three hundred kilometers from Lima, is a destination rich with educational opportunities for mundanes and casters, though of course the latter will be able to experience a level of insight unknown to the former. An unusual museum of Ica stones is located in the city’s main square; this collection is extremely controversial because some of the etched stones depict modern maps and activities that, if the stones’ professed age is true, would demonstrate a shockingly accurate prediction of the future. Skeptics claim that the stones are a hoax, but among the casters’ community it is believed the stones are authentic. Some casters have reported experiencing curious impressions while viewing or touching the stones.

[Online article published at Craft & Life, February 2011.]

Kaelan remembered waking up, or sort of waking up, a couple of times. Once, he was sitting on the side of a bed between Hopper and Max. They were talking, but he couldn’t make sense of the words. He let the rumble of their voices fill his head and heard someone else’s voice nearby. Familiar, but he didn’t know who it was.

Then he was being pushed down onto a bed. He murmured what might have been a complaint, even though all he wanted to do was sleep.

“It’s okay,” Max’s voice reassured him. “Everything’s fine, I promise.”

It better be, Kaelan thought and closed his eyes again, breathing in the scent of their laundry detergent.

He dreamed about Jannes laughing, Darius dead and furious that Kaelan hadn’t stopped his sacrifice, Hopper begging for help. He knew he was dreaming, but somehow that didn’t help. He couldn’t wake up no matter how firmly he told himself to. It wasn’t until he saw Max’s lifeless body crumpled on the ground, blood streaming from his open, unseeing eyes, that Kaelan sat bolt upright with a shout. He fought whoever grabbed hold of him, struggling.

“Kaelan, it’s me,” Max said, and Kaelan turned in his arms and hugged him tightly. “Hey. Broken rib. Not so hard. You’re okay. I’m here.”

“I dreamed—” Kaelan started, then stopped because saying it out loud was impossible, terrifying. “I love you. Did I say it before?” Had he dreamed that too?

“You did,” Max confirmed. “Look at me.”

Kaelan didn’t want to let go of Max, but he pulled back to do as Max asked. Max’s eyes were worried, but softened after studying his for a few moments.

“You crashed hard,” Max said.

“No kidding. I feel like I got run over by a truck.” Kaelan remembered something. “Bast. Is he okay?” The cat jumped up onto the bed and rubbed his jaw against the covers that were draped over Kaelan’s feet. “There you are. You scared me.”

Bast gave him a haughty look.

“He was here when we got home,” Max said. “Standing over his food bowl and tapping a paw, waiting for me to fill it with wet food, not crunchy stuff.”

“Was I dreaming the part where he can portal? I wasn’t, was I? Shit, all those times we wondered why his litter box was clean and thought there was something wrong with him, and he was probably portaling to the Sahara desert and using that.”

Max stroked Bast’s head, then scratched behind an ear, drawing out a purr strong enough that the bed vibrated. “I guess he picked up some tricks along the way. Or all cats can do it.”

The purr cut off. Bast clearly wasn’t happy with that idea.

Seshat’s voice interrupted them. “Now that Kaelan is awake, I have left silent mode. You have received e-mail messages from Hopper and Rafe in the past fifteen minutes. Both men are well and have checked out of the hotel suite. Rafe has returned to his house to, and I quote, deal with a shitload of glass and pray it didn’t rain. Hopper wants to see you later.”

“He’s had a hell of a week,” Kaelan said. “Losing his friend, learning about casters, having his mind and body controlled by a man who planned to cut his throat and end the world… Last month, his biggest problem was someone buying a leather jacket he liked from the thrift store before he could save up enough money for it.”

“We said when this was over, we’d do something for Hopper. If the first item on the list is therapy, we can handle that. It’d have to be a caster therapist, though.”

“Yeah. We can find one.” There was something about the way Max ran his fingertips through Kaelan’s hair, trying to tuck strands that were too short behind Kaelan’s ear, that seemed off somehow. “What?”

“Your hair,” Max said.

“It can’t be time for a cut yet,” Kaelan said, puzzled.

“Mine too. Look.” Max turned his head and bent lower, and Kaelan saw what he was talking about. All along Max’s temples, his hair, previously strawberry blond, was shot through with white.

“What the hell?”

Max nodded. “I know. I wouldn’t have noticed it on me right away, I don’t think, but when I saw yours, I had to check in the mirror.”

It made sense that Kaelan’s dark hair would show the silver more easily. “I guess last night took a lot out of us.”

“Literally.” Max hesitated, then added, “I could be imagining it, but I think I might have more wrinkles.”

“Nah.” Kaelan brushed his fingertips lightly along the thin skin around Max’s eye. “You’re gorgeous. What about me? Think I’m gonna need a face-lift by the time I’m thirty-five?”

Max leaned in and kissed him, lips a little bit dry but no less comforting for it. “No way. Anyway, it could be temporary.”

Kaelan had his doubts; it didn’t seem like the time to voice them. “I’m just glad it’s over. ‘When this is over.’ How many times did we say that? And did you believe it would be? That we’d win?”

“I had to,” Max said simply. When Kaelan waited and didn’t say anything else, he added, “Didn’t I?”

“Yeah.” Kaelan gave him an inquiring glance. “That was a lot to put on your shoulders.” He didn’t enjoy imagining it, Max optimistically dragging him toward a future where they didn’t die.

Max shook his head. “It wasn’t like that. You were with me.”

“Not the way I should have been. I only cared about making sure Jannes ended up dead.” That had been his main focus—seeing that Jannes got the punishment he deserved. It was what had kept him moving forward. Well, that and safeguarding Hopper and Max.

Huh. Maybe he wasn’t as fucked up as he’d thought.

“You think I don’t know what you care about?” Max asked. He leaned down close enough that their noses almost touched “I know. I know you.

“Thank God somebody does,” Kaelan said fervently and lifted his chin to kiss Max. Max tasted of toothpaste, and it made Kaelan aware that his breath must be less than pleasant, considering how hard he’d crashed. “I should brush my teeth.”

“You’re not moving from this bed.” The lazy assurance in Max’s voice sent a tingle up Kaelan’s spine. It promised so much, and he knew Max could and would deliver. “Sure, we’ve got errands to run, like putting all those unconscious casters back where they came from, but they can wait. I’m going to feed you pancakes drenched in syrup, maple and chocolate, with raspberries on the side. I picked them from a wood in England, and they’re still warm from the sun. It’s raining here. Guess the weather’s not aware it’s a special day.”

“Pancakes? It is? England?”

Max put a stop to the disjointed questions emerging from Kaelan’s mouth as fast as he thought them with a kiss, as sweet as the promised breakfast, as hot as Kaelan hoped the coffee would be.

“Yes, three times. Any more questions?”

“When do we eat?” Kaelan murmured against Max’s lips.

When Max had gone to get the food, convincing Bast to go with him by promising the cat his breakfast—a second breakfast, Kaelan was sure—Kaelan took advantage of the time alone to strip off his clothes and toss them toward Max’s closet to get them out of the way. His throw fell short, and his jeans ended up several feet from the open closet door, but that was fine. He wanted Max’s sheets against his bare skin. His shoes and socks were nowhere to be seen, even though he couldn’t remember removing them. Max must have done that.

Max came back and paused in the doorway, taking in the sight of Kaelan naked above where he’d artfully draped the sheet at his waistline, then the clothes on the floor. “Nice aim,” he said and walked over to the bed with the tray of food, which, if Kaelan’s nose didn’t mislead him, included the coffee he needed as much as air at that point.

“Sorry,” Kaelan said cheerfully, not meaning it. As reality sank in and he realized they’d done it, and Jannes was history, he felt giddy. “Please tell me there’s coffee.”

“Of course there’s coffee.” Max settled the tray on the bed and handed over a mug. Kaelan cradled it between his palms and inhaled the scent, then swallowed some greedily.

“Oh, that’s good. You make the best coffee.”

“I got the beans from Kenya,” Max said, then grinned when Kaelan choked on his mouthful of coffee. “Okay, maybe the supermarket did. But if it made you smile the way you did after that first sip, I’d have gone there on foot to get them if I had to.”

“You’re romantic,” Kaelan discovered. “How did I not know that?”

He’d seen Max take women out for expensive meals or shows, but he’d never seen him give a woman flowers. Every Valentine’s Day, Max had been careful to be without a date, as if he didn’t want to pretend affection he didn’t feel for someone transitory in his life.

“When it comes to you, I am.” Max raised his eyebrows, a darker gold than his hair, the arch as elegant as everything else of his. “Is that a problem? I swear I won’t get mushy, but this is my first time in love, and I’ve got a lot of catching up to do.”

Kaelan’s heart did something bizarre and almost painful. He started to rest his hand over it, then changed his mind and grabbed Max’s hand instead, pressing it to his skin as he set the coffee cup down on the bedside table. “Feel that?”

“What?” Max looked puzzled.

“I don’t know. It’s new.” His heart was thudding as if he’d run a mile, and his cock was hardening. Max’s hand was cool against his chest. “I think it’s you.”

Max frowned, but he still seemed more confused than worried. “I’m giving you a panic attack?”

“No. A little. Not in a bad way.” Was this what love felt like? Scary and thrilling and amazing and scary? Had he mentioned scary? “I didn’t know being in love would do this to me.”

“Welcome to the real world,” Max said with a smile. “It’s new for me too.”

Kaelan processed that and decided he liked the idea of them starting the journey at the same point. Their abilities complemented each other rather than matching, so the competitive streak they had in spades never flared to life. In this area, it might’ve been a problem if one of them had greater experience. “Do you think everything’s going to be okay? Not us. I mean…everything.”

“Of course it is.” There was something behind Max’s eyes that told Kaelan he wasn’t being entirely truthful.

“Except for the part where there’s something you’re not telling me.” Sudden panic had Kaelan’s heart pounding again. “Please tell me he’s really gone.”

“Stop freaking out,” Max told him. “Yes, he’s really gone. We saw him get dragged to the Netherhells. There’s no coming back from that.”

“Then what is it?”

Max sighed. “Hallister texted me earlier. It’s probably nothing.”

“Right, because it’s always ‘nothing.’” Kaelan wished Max would just get to the point instead of beating around the bush. “Tell me.”

“Magnus thinks there could be consequences to some of what we did. Moving the nexus of the ley lines even temporarily. Jannes’s casting. It’s complicated, but it seems like the nexus we were dealing with ended up more powerful as a result of what happened. We aren’t sure what that means yet.”

“Ugh. Can’t we be happy for, like, five minutes?”

“That’s why I wasn’t going to tell you about it yet. Put it out of your mind. We don’t know enough to be worried.”

“Easy for you to say. Do you realize what this could mean? Good stuff like access to power, sure, but that kind of power is appealing to more than just us. Hartford could end up a hotbed of demonic activity! There could be—” Kaelan had no choice but to stop talking, because Max kissed him again, and this time Max didn’t stop. His mouth was determined and so fucking good at distracting Kaelan, and Kaelan was really happy to be distracted. “Mm,” he said when Max finally pulled away. “What was I saying?”

“You were telling me how much you love me,” Max said with a grin.

“Right. And I was going to tell you I’m starving.”

“I know,” Max said patiently. “That’s why there’s pancakes and fruit. And I added whipped cream because you’ve earned it.”

“That’s not what I’m hungry for.”

Max glanced down at the sheet Kaelan’s erection was pushing up, his lips quirking. “Yeah, well, you’re eating first, and by that I mean what’s on the plate. Caster’s crash hit you hard.”

Since when did Max get to be the responsible adult? Well, okay, since day one, but it still didn’t seem fair that after all the waiting, Kaelan was being made to wait some more. He leaned back against the pillows and turned a sulky pout into a blown kiss. “Fine. Feed me.”

The slow smile that lit up Max’s face like sunrise did nothing to damp down Kaelan’s rising arousal. The fact that Max had made breakfast wearing only a robe that he shrugged out of and tossed aside didn’t either. God, Max really was a summer child. His skin held the warmth of the sun in it, radiating from him, making Kaelan want to touch and kiss it, take that heat inside him. “Spoiling you is high on my to-do list, at least for today. I’d love to.”

He loved to tease Kaelan too, apparently, because he took his time loading a bite of pancake and raspberries onto the fork before raising it to Kaelan’s mouth. It tasted heavenly, sweet and buttery with a hint of maple syrup, and Kaelan didn’t try too hard to avoid ending up with whipped cream on his upper lip. He chewed, swallowed, and pouted again. “Your spoiling needs some work. Little help here?”

“I didn’t get the memo about your arms being broken,” Max said, but he licked the whipped cream from Kaelan’s mouth.

Playing along, Kaelan followed Max’s lips as Max pulled away until he was out of reach, then pouted some more.

“Stop that,” Max said sternly, though his eyes were twinkling. “You’re going to get everything you want.”

That made Kaelan smile. He’d already gotten everything he wanted, at least for now. This was the icing on the cake. Pancake. “I can’t help it if I’m impatient. It’s delicious. And I’m hungry.”

“I can tell.” Max slid his right hand from Kaelan’s knee up along his inner thigh, reaching his cock, using his left hand to feed Kaelan more pancake at the same time.

Kaelan whimpered and bit down on the fork hard enough that his teeth hurt. He couldn’t talk through the mouthful of food, and he couldn’t keep his eyes open when Max’s hand squeezed his shaft with the perfect amount of pressure. He did manage to swallow the bite without choking. “And you’re evil.”

“This is news?” Max put down the fork, chose a raspberry from the plate and studied it, then popped it into his mouth. “Mm. Well worth the trip.”

“Mine!”

“The raspberries or me?” Max asked, taking another berry.

“Both!” Kaelan had been reduced to monosyllables, but they were getting the message over.

With deliberation, Max dragged a dark red raspberry, every tiny, individual globe of it plump with juice, through a mound of cream. “Yours,” he said thoughtfully. “Well, let me give you what belongs to you, then.”

He pushed the raspberry into Kaelan’s mouth, chasing it with a kiss, his tongue sliding through the richness of cream and the tart, intense juice to flick against Kaelan’s. As his tongue delved deeper, his hand tightened, and that was a message that didn’t take a single word to be read loud and clear. If Max was Kaelan’s, then Kaelan belonged just as much to Max.

He wouldn’t have it any other way.

Kaelan was too impatient to keep his hands to himself anymore. He grabbed Max’s hip and felt the solid heft of him, reassuring and not close enough, because there was all this space between them, air and a layer of sheet and the stupid breakfast tray that was down near Kaelan’s knee and was preventing him from pulling Max down to lie beside him. Or on top of him. That would be good too.

“Fuck it,” Kaelan growled. He half sat, kissing Max along the way for good measure, and pushed the tray down to the far corner of the bed with his foot, then curled toward Max and kissed the sweet spot where Max’s thigh and stomach met, where the skin was stretched thin and sensitive.

Max shivered. “Not that I’m complaining,” he said breathlessly, “but you were supposed to eat breakfast.”

“There’s something else I need more.” Kaelan licked the head of Max’s cock, then ran his lips over the soft skin.

“You can’t need it more than I do,” Max said, the muttered words heartfelt.

“Good to know,” Kaelan said, covering his pleasure. Though why did he have to pretend Max’s emotions didn’t mean anything? That worked for his casual flings when he hadn’t needed to fake the expected superficiality. But this was Max. His best friend. His lover. The most perfect man in existence as far as Kaelan was concerned. He deserved openness and an unreserved, no-holds-barred expression of Kaelan’s emotions.

No, Kaelan corrected himself. Of my love. Jesus, I’ve got to get used to saying it.

Max touched Kaelan’s cheek with his fingertips, drawing Kaelan out of his reverie and back to the present, with Max’s neglected erection a bare inch from his mouth. “Where did you go?”

Bestowing a penitent kiss on the head of Max’s cock, Kaelan answered truthfully. “I was thinking how perfect you are. How lucky I am. How much I love you. That kind of thing.”

It got easier to say every time he did it, and every time the words slipped past his lips, he experienced a starburst of happiness, rainbow bright.

“I’m not objecting to any of that, but you need to learn to multitask,” Max said with a teasing grin. “Me frustrated isn’t pretty. There could be whimpering. Begging, even. Wild promises about taking over your share of the cooking for a week if you get back to what you were doing.”

God, he’d love to hear Max make soft, needy sounds, his voice rich with arousal. “How about I unfrustrate you? Do I still get to hear you whimper?”

“That’s not a word.”

“Sure it is. Let me define it for you.” After a swift upward glance to see the expression on Max’s face—glazed eyes, flushed cheeks; oh yeah, perfect, just fucking perfect—Kaelan drew his tongue through the slick translucent fluid beading the tip of Max’s cock like condensation on a cold beer.

Max inhaled. “Love you so fucking much.”

“Yeah.” Kaelan swiped his tongue over the same spot, the salt-bitter taste of Max lingering, and concentrated on Max’s reactions, subtle as they were. If he’d been able to take Max’s pulse, he was certain it would have been quick and determined. As it was, he had to focus on the sound of Max’s breathing, the eager clutch of his hand, and his murmured encouragement.

“That’s so good.”

Kaelan slid his lips down Max’s shaft, cradling the head of Max’s cock against the soft inside of his cheek. He was careful with his teeth, though Max wouldn’t mind a touch of pain with his pleasure, and filed away Max’s gasp when his stubbled jaw scraped Max’s inner thigh. Like that, do you?

He hadn’t forgotten Max confiding that he enjoyed it rough, but this wasn’t the time for that. Not with the beat of the rain against the windows, as soothing as a lullaby, and the bruises and knocks of the fight the day before, slow to heal with his energy levels depleted, leaving an echo of pain in his flesh.

So he kept his movements unhurried, bestowing on Max the most leisurely blowjob he’d ever given, because he could now; they had time. He lapped and licked, rolled the wet shaft against his face, breathing on the damp skin and making Max shiver, then jacked him for a while, never taking his gaze away from eyes the dark green of a tropical ocean.

They moved on the bed, Max sometimes kneeling, sometimes on his back, as Kaelan drew out the encounter, ignoring the insistent throb of his cock because it could wait, the same as Max.

“Enough,” Max said when Kaelan’s jaw was aching, his lips rubbery. “Need to come. In you, on you, don’t care.”

“I care,” Kaelan said. He sat up and reached for the lube, doing his best to ignore Max’s hand on him, because if he let himself concentrate on it, he’d go off before they got around to the main event. “I want you in me. Now.”

“Yeah? Give me that.” Max gestured for the lube and squeezed some onto his fingers before pressing Kaelan down into the mattress and opening him with more patience than Kaelan would have managed if their positions had been reversed. “Easy there.”

“You were the one who said you needed to come.” Kaelan gasped and lifted his hips. “God, fuck me already.”

“I don’t want to fuck you,” Max said, rubbing over Kaelan’s prostate with a fingertip, teasing him.

“What?” Kaelan didn’t manage to sound outraged.

Max leaned in and kissed him. “I want to love you. You gonna let me do that?” He looked down at Kaelan with so much tenderness that Kaelan wanted to squirm away, make a joke. But for once Kaelan didn’t let himself do that. Not only did Max deserve better, but Kaelan wanted to give it to him.

“Yeah,” he whispered. “I’ll let you. I want you to.”

“Thank you,” Max said with his lips warm against Kaelan’s throat.

That Kaelan’s love was worth something, wanted by someone, still seemed a ridiculous idea. His body, his skills as a caster, sure, yes, but he was as much a street rat as Hopper at heart, no matter how many dollars were stashed away in his bank account these days. The years of living off begrudging charity, going to bed hungry and waking up hungrier, too cold in the winter, too hot in the summer, were hard to push away.

Maybe he shouldn’t. They were part of what had helped him win the fight against Jannes—that stubborn determination to survive and his hatred of bullies. He needed to add in what he was now and count the happy years too. They were as real as the early years, and they’d shaped him as much, if with a gentler touch.

Max had changed him with his friendship and generosity. He’d shared his life with a stranger as if he’d known this day would come, when the two of them would lie in a bed, aching with love and desire.

Had Max known? Some casters saw the future clearly; others operated on vague hunches, learning to interpret them. Maybe what Max had experienced was one of those feelings. Kaelan didn’t want to ask.

The past was done with, the future theirs to create. And now, right now, Max was filling him, making him fly, and this was their time, every moment of it.

~ * ~ The End ~ * ~