Adrian is a star hockey player by day and a secret OnlyFans creator by night. When his biggest online crush, a faceless but dangerously alluring creator, finally messages him for a collaboration, he jumps at the chance. But when they meet, Adrian is stunned to discover his mystery crush is none other than Julian Callahan—his biggest rival on the ice. Furious and embarrassed, he’s ready to walk away, but Julian refuses to let him go. What starts as a clash of pride and dominance soon turns into something far more dangerous. As tension rises and their secret meetings grow more intense, Adrian finds himself trapped between the rivalry he’s always known and the desire he never saw coming. But when their secret threatens to be exposed, he must decide—stay in the game or risk it all for the one man he swore to hate.
もっと見るThe door opened slowly. Adrian didn’t move. Julian stood in the doorway, shadowed by the dim hallway light, one hand still on the handle. His expression was unreadable—somewhere between cautious and defiant. The kind of look someone wore when they had just taken a leap they weren’t sure they’d survive. He stepped inside without waiting to be invited. Adrian’s mouth was dry. “You just filmed that.” Julian’s eyes didn’t leave his. “Yeah.” “You were outside my door.” Julian nodded. “Still am.” A silence settled between them like a fog. Heavy. Dense. Unrelenting. Adrian looked away first, heart pounding so hard it felt like something was trying to claw its way out of his chest. “What do you want from me?” he asked, voice low. Julian stepped closer, slow and deliberate. “I don’t want anything from you. I want you.” Adrian’s throat tightened. “You don’t get to say that like it’s simple.” “It is simple,” Julian said, his voice softer now. “You’re just afraid it might be real.” A
Adrian didn’t move. The door opened just wide enough for someone to slip through. For one suspended second, no one came in. Then Julian stepped inside. Same hoodie he wore at practice. Same confident posture. But this wasn’t the version of him that tossed insults across the ice or smirked in the locker room. This Julian was quieter. More dangerous. Like the air shifted when he crossed the threshold. Adrian’s breath caught. Julian shut the door behind him without saying a word. Then he leaned back against it, like he had all the time in the world. “You watched it,” he said. Adrian swallowed. “Yeah.” Julian’s gaze swept over him. “And?” Adrian crossed his arms, as if that could hold everything in. “You showed up at my door.” “You said you wanted real.” “I didn’t mean tonight.” Julian pushed off the door, taking one slow step forward. “You didn’t say that.” “Julian,” Adrian warned. “I’m not here to make a move, if that’s what you’re panicking about.” Julian stopped in the ce
Chapter 11 Adrian didn’t sleep. He lay on his back, staring at the ceiling, his phone on his chest like a weight he couldn’t get rid of. The voice message played on loop in his head. The way Viper had said his name. The breath. The heat behind the words. The way it had sounded exactly like— No. He still couldn’t say it. Couldn’t let that thought settle. But the fear was no longer about being wrong. It was about being right. At some point near dawn, he got up and took a cold shower. He didn’t want to feel warm. He didn’t want to feel anything. He dressed slowly, hoodie over his head, eyes heavy, limbs tight. Everything felt too loud, too bright, too close. As he crossed campus, he typed a message. Then erased it. Then typed again. We need to talk. In person. He stared at the screen for a long time before hitting send. It didn’t take long. Where? The bleachers. After practice. Come alone. He didn’t wait for a reply. He couldn’t. — Practice was unbearable. Julian acted li
Adrian stared at the screen long after it had gone black. He’d watched the video twice, then a third time, pausing at the exact frame where the duffel bag appeared—barely lit, sitting innocently in the background of MidnightViper’s latest upload. But it wasn’t innocent. Not to Adrian. Not when it had the same faded team sticker from their locker room, the one only their equipment manager used. He’d seen that bag before. Every damn day. Adrian slammed his laptop shut, chest tight. “No,” he whispered. “No, this can’t—” He didn’t finish the sentence. Didn’t want to say the name echoing in his head. The possibility alone made his skin crawl with heat and confusion. Because if Julian Carter was MidnightViper… He stood abruptly, knocking over his chair in the process. He needed air. Space. Sanity. ⸻ Practice was hell the next morning. Adrian skated like he had concrete in his skates, missing passes, fumbling shots he could usually land in his sleep. Coach barked at him three times
Adrian couldn’t breathe. The phone screen stared back at him, mocking his denial. The bracelet in Julian’s blurry group photo—thin, braided black leather—was identical to the one MidnightViper had worn in last night’s video. Same curve. Same clasp. Same subtle silver accent at the end. It could be coincidence. Had to be. But it wasn’t the first time his gut had twisted like this. And no matter how hard he tried to ignore it, Julian kept pulling at threads he didn’t know existed. “Get a grip,” Adrian muttered, tossing the phone onto his bed. It bounced once, landing face down like even it was ashamed of him. He paced the small dorm room, hoodie half-zipped, heart pounding against his ribs like it was trying to break out. He’d been following MidnightViper for months now—watching, subscribing, obsessing. There was no way Julian Carter, of all people, could be the man behind those videos. The universe wasn’t that cruel. And yet… Julian’s voice had slipped out raw and deep during tod
The film room buzzed with lazy energy—half the team slouched in their chairs, fiddling with their phones, pretending to care about game footage. The projector lit up the dim space in pale blue, highlighting frozen frames of last night’s game. Adrian sat in the second row, elbows on his knees, barely blinking. Not because he cared about the analysis—but because Julian Carter was sitting one chair over. Close. Too close. Their legs brushed once. Julian didn’t move. Coach rewound the same clip for the third time. “Here—see this? Reed fumbles the pass under pressure. Julian, why does that happen?” Julian didn’t even glance at Adrian. “He hesitated. Thought too much.” A few of the guys chuckled. Coach nodded. “Exactly. You play fast, or you don’t play at all.” Adrian gritted his teeth. Julian had said it casually, but it stung. Not just because it was true—but because it sounded exactly like something MidnightViper had said in a recent post: “Hesitation kills momentum. You either
Adrian skated like he wanted to break something. The cold bite of the rink didn’t clear his head the way it usually did. Not when Julian Carter kept circling like a hawk, always just close enough to be noticed, just far enough to stay out of reach. It wasn’t just that MidnightViper had messaged him again last night—it was what he’d said. “I already have. You just didn’t know it was me.” Adrian hadn’t slept. Had barely eaten. He couldn’t stop replaying it. The voice, the body language, the phrasing. It was all Julian. His gut told him so. But his brain? His brain was still trying to catch up. Now they were being forced into 2-on-2 drills, and Coach had deliberately paired them together. Of course. “Work together,” Coach barked. “You two act like you’ve got magnets stuck to your chests. Figure it out or sit.” Adrian didn’t look at Julian as they skated to center ice. He didn’t need to—he could feel that smug presence hovering beside him. “You gonna keep avoiding eye contact,” Jul
Adrian couldn’t unsee it. The scar. The voice. The posture. The soft rasp at the end of a laugh. The hoodie pulled low. The way MidnightViper leaned against his desk in the newest video—head tilted, lip caught between his teeth, like he wasn’t even aware he was doing it. Julian Carter did that exact same thing. He’d seen it after practice, in the locker room, when Julian thought no one was looking. Adrian had replayed the video four times. No, five. He slammed his laptop shut and leaned back against the pillows, fingers pressed to his temple like he could squeeze the thoughts out of his head. This was insane. He was spiraling. MidnightViper couldn’t be Julian. There was no way someone like Carter—golden boy, team sweetheart, hockey’s favorite PR angel—would moonlight as a faceless OnlyFans creator who whispered confessions into the camera like he was peeling his soul open. Except… what if he was? ** At practice the next day, Julian was quiet. Not silent—Julian never
“You want us to do what?” Adrian stared at Coach like he’d just grown a second head. Coach didn’t flinch. “Youth clinic. This Saturday. You and Carter are co-hosting.” Adrian looked to Julian, who was slouched in his seat with one brow raised like this was news to him, too. Coach’s eyes flicked between them. “You two need to figure out how to work together before you ruin more practices. The kids will love it. You’ll fake it for an hour. Everyone wins.” Julian opened his mouth—probably to say something smug—but Adrian beat him to it. “This is punishment.” “This is team-building,” Coach corrected. “Be there at nine. Sharp.” ** Adrian regretted showing up the second he walked into the rink that Saturday morning. The lobby was swarming with kids in oversized jerseys and too-big helmets, parents with coffee cups and phone cameras ready to capture every second. Julian was already on the ice, crouching beside a wide-eyed six-year-old, tying their skates like he’d been born for it. O
“You have a problem.” Adrian muttered the words as he flicked his phone open with muscle memory. MidnightViper had posted. Again. The glow of the screen lit his face in the dark. He was supposed to be sleeping. Hell, he’d promised himself last night that he was done. No more watching. No more… whatever this was. Yet here he was. Midnight. Again. He tapped the new post. No hesitation. Just a weak sense of shame buried under anticipation. The teaser clip was already playing. No face. Just a hand gripping the hem of a black shirt. Smooth pull. Slow reveal. Toned muscle. And then—that voice. “You’ve been waiting, haven’t you?” Adrian’s jaw tightened. Damn him. Every time. The voice wasn’t deep. Not rough. It was smooth—dangerous. Casual, like it knew your secrets before you told them. Like it didn’t need to shout to control the room. Adrian adjusted his grip on the phone, heat crawling up his neck. He didn’t move. Didn’t touch himself. He never did. Watching was enough. Always w...
Welcome to GoodNovel world of fiction. If you like this novel, or you are an idealist hoping to explore a perfect world, and also want to become an original novel author online to increase income, you can join our family to read or create various types of books, such as romance novel, epic reading, werewolf novel, fantasy novel, history novel and so on. If you are a reader, high quality novels can be selected here. If you are an author, you can obtain more inspiration from others to create more brilliant works, what's more, your works on our platform will catch more attention and win more admiration from readers.
コメント