Work Text:
The setting sun cast a warm orange glow over Paris, spilling through the windows of the Grand Paris Hotel. Light refracted across the crystal chandeliers, scattering over the marble floors and dancing across Marinette’s lap as she sat, waiting.
The masquerade ball had been Chloé Bourgeois’ idea — a grand celebration to mark the end of their school term. Of course, she'd convinced her father to host it. When the invitation came, Marinette had declined without hesitation. There was no way she wanted to spend an evening watching Adrien Agreste be swarmed by admirers.
The only thing she regretted, really, was never telling him how she felt.
Years of quiet longing had passed. Now, with university on the horizon, Marinette had settled into her place in Adrien’s life: the friend zone. She didn’t resent it — he was still one of her best friends — but that didn’t mean she wanted to stand by while other girls draped themselves over him all night.
And yet, here she was.
Alya had convinced her, as Alya always could. “It’ll be good for you,” she’d said. “A night of mystery, dancing, and maybe some handsome stranger sweeping you off your feet? Worth it.”
Marinette sighed, glancing down at her dress. Deep red, sleek, and just a little too daring. She’d hesitated to wear it — it reminded her too much of Ladybug. But Alya had insisted.
Her hair was pinned back, a red-and-black mask hiding most of her face. She felt exposed, a little out of place, and maybe a little hopeful.
She watched the door, hands steady in her lap, so focused she hasn’t noticed as someone approached her until a shadow crossed her lap.
Marinette glanced up, expecting Alya only to freeze as she realized it was a boy.
He was standing with a subtle smirk on his face, wearing a sleek black suit and silver detailing and a black mask with pointed, feline-like corners. Her heart crashed against her ribs as his familiarity hit her square in the chest. Between his relaxed posture and his sparking green eyes, Marinette thought she was seeing things.
He titled his head down at her before extending a hand, murmuring, “Dance with me?”
His voice sent a jolt down her spine. It was smooth and playful in a way that made her lose her breath.
She hesitated for only a moment before placing her hand in his. He led her onto the dance floor just as the music switched to something a little softer, a little more romantic and definitely intimate. They moved together effortlessly, like they had done this a thousand times. He was graceful and completely at ease as he smiled at her, causing her heart to beat faster.
“So, uh, been here long? I, uh, don’t think I’ve seen you around.” She muttered, hoping her voice sounded steadier to him than she felt.
“Maybe you weren’t looking heard enough,” he replied before winking at her.
Her stomach flipped as he pulled her in closer, ignoring the crowd and the hammering of her heart as the room seemed to exist only for them.
“You’re… confident,” she said, biting her lip, watching him with amusement.
“Only because I’ve got the best dance partner in the room.”
She glanced away from him, feeling the heat on her cheeks. There was something about him. His voice, his charm. The way his fingers curled gently at her waist. It all tugged at her heart, almost sending shivers down her spine. She was sure she knew him, trusted him… glancing back up at his grin and his eyes, Marinette nearly gasped.
As the song shifted, he let her go but stayed close, purring in her ear.
“Thank you for dancing with me, Marinette.”
Her breath caught as he reached out, catching her hand, twirling her and as she moved, her gaze flicked to his hand where a silver ring glinted. Her thoughts spun and her heart felt like it might leap out of her chest.
“Oh… it’s you,” she murmured before she could stop herself.
He tilted his head with a small laugh, “Well, I’m glad you figured it out.”
She moved back slightly, watching him, “What I don’t understand is why you’d come here as your civilian self. Isn’t that a little risky, Kitty?”
His eyes went wide and his smiled faded slightly.
“I… you… uh, I should go,” he said, to quickly and a little too anxious.
“What?” She asked, startled as he turned, vanishing into the crowd before she could move.
She blinked, shoulders hutching before a voice rang out behind her arms colliding with her shoulders.
“Girl… what happened?” Alya laughed, snapping Marinette out of her daze.
Blinking in the direction he ran off to, Marinette glanced back seeing her best friend grinning.
“Here I thought you’d be all pouty when I got here, but no, you had to be arm and arm with Adrien. How did you not burst? Did you finally confess? Oh wait, is that why he ran because if—”
“Wait… what?” Marinette pulled away, rounding on her friend.
Alya smirked, “You do know that was Adrien, right? Tall, blond, gorgeous love of your life… Adrien?”
Marinette’s mouth fell open and it felt like all the air was sucked from her lungs. “That was Adrien?!”
“Uh, yeah?” Alya gave her a concerned look. “Don’t tell me you didn’t recognize him? I mean… sure he was wearing a mask, but how do you not know those green eyes?”
“I don’t… I…I mean… I thought he was someone else,” she mumbled.
Alya raised an eyebrow. “Who exactly did you think you were dancing with?”
Marinette buried her face in her hands.
“This can’t be happening,” she groaned, “I really messed up.”
Alya glanced towards the crowd and back at Marinette eyebrows pinched, “You’ve completely lost me, girl.”
“It doesn’t matter. I need… I got to go. Alya… I’ll…. Uh, See you later.” Marinette didn’t wait for a response as she hurried from the room. Her heart was in her throat. His smirk, his confidence, that stupid ring. She was sure he was Chat Noir, what she didn’t understand was why he didn’t correct her if he wasn’t?
***
Adrien had officially screwed up. When he approached Marinette for the dance, he thought she’d have recognized him. Nino and Alya had when he’d seen them outside. Sure, she was more confident, more relaxed around him than he was used to, but he just thought she was starting to open up to him.
Never in his wildest dreams would he had suspected she thought he was Chat Noir. That she’d figure out his identity. Sure, he’d been visiting her more at Chat lately, but this… wasn’t supposed to happen. He knew he had to talk to Marinette again. Convince her to keep his secret, but even worse than that… what was he supposed to tell Ladybug?
He stepped out of the hotel, breathing ragged as he contemplated his choices. Darting down the street, he turned into an alley way as Plagg appeared from his suit collar.
“Well, you really did it now, didn’t you?”
“Shut up, Plagg.” Adrien glared at his Kwami, eyes narrowed.
“Just saying, letting Pigtails figure out your identity… not your best move.”
“You could be a little helpful, you know.” Adrien leaned against the wall, closing his eyes, breathing deep to settle his nerves.
“Where’s the fun in that?” Plagg murmured the sound of footsteps interrupted them both. Adrien opened his eyes and darted further down the alley before calling on his transformation. He leaped up to the rooftop as Marinette rounded the corner, her dress billowing behind her, eyes wide and frantic.
He heard her murmur, “Come on, you stupid cat,” before she turned on her heel and started away.
Groaning softly, Chat didn’t think as he swooped down scooping her into his arms before bounding back to the rooftop. Her scream only silenced when she got sight of his eyes.
“Chat! What the hell?” Marinette shouted as he set her down on the rooftop. He paced in front of her, his hands flaying in front of him.
“Sorry! I’m sorry! I didn’t know what else to do!” His eyes dropped as his ears flattened against his head.
“How about not scaring me for starters?” Marinette glared before sighing, “I wasn’t wrong, was I?”
Chat’s ears remained flat as he shook his head watching her. He knew he could pretend he didn’t know what she was talking about, but he didn’t want to just lie to her. It wouldn’t be fair to her.
“And Alya wasn’t wrong either, I take it?” Chat’s eyes met hers, wide and fearful as he again shook his head, this time slower. Marinette closed her eyes briefly as she slipped to the rooftop groaning, “Oh kitty.”
“I’m sorry. I didn’t think you’d recognize me as anyone other than my… civilian self. I just thought you were getting more comfortable with… well, me.” Chat hunched down on his legs watching her.
Marinette didn’t speak right away.
She folded her arms, eyes narrowed as she took him in — ears flattened, tail twitching, guilt radiating off him in waves.
“So,” she breathed, watching him, “you’re Adrien.”
He nodded, ears twitching lower as he detransformed. Black suit, black mask and very guilty green eyes.
“And you thought it was a good idea to grab me off the street like some kind of medieval romance novel?”
“I panicked,” Adrien mumbled.
Plagg snorted. “He really did. No plan. Just swoop.”
“I thought you figured it out,” Adrien continued. “Back at the ball. You looked right at me like…like you knew. I didn’t want to make a scene, or worse, let you say something out loud where someone else might hear.”
She studied him carefully, her black and red mask pushed up into her hair now, revealing the full brunt of her piercing stare. He squirmed under it.
“You realize I’ve known who you were for maybe ten minutes,” she said, “and already I’ve been danced with, abandoned, and abducted.”
“Technically,” Plagg cut in, “you weren’t abducted. It was more like… relocated.”
Marinette raised a brow at him. “Do you want to be yeeted into the Seine?”
Plagg drifted behind Adrien with a grumble as Marinette turned back to Adrien, “You’re lucky I didn’t punch you.”
“I’d deserve it,” he mumbled, dragging a hand through his hair. “I honestly thought you just… finally felt comfortable around me. That maybe I wasn’t just Adrien, your friend, you know, background noise next to Alya or Nino or the rest of our class.”
“You’re not background noise, Adrien,” she whispered, her cheeks inflamed, but Adrien didn’t notice as he continued rambling.
“And then when you said you knew me, and you called me, Kitty, and… I thought maybe I’d just ruined everything. My identity. My relationship with you. And worst of all…”
He trailed off, visibly paling.
“…Ladybug is going to kill me,” he said, breathless. “She always told me to be careful. That keeping our identities secret was the most important rule. And I just completely blew it! I mean, I didn’t mean to —”
“Adrien.”
“— and she’s going to be furious, and then she’ll probably never trust me again, probably take away my Miraculous, and I wouldn’t blame her because she’s always had to be the careful one, and I’ve just gone and —”
“Adrien,” Marinette said again, this time more firmly.
He blinked at her, startled out of his spiral, “Sorry.”
“You don’t have to worry about Ladybug,” Marinette grinned, crossing her arms.
Adrien blinked. “Wait… what?”
“I mean,” she shrugged, stepping a little closer, “she already knows. And she’s… not mad.”
His face twisted in confusion — until realization slammed into him.
His mouth fell open. “No.”
She raised her eyebrows at him. “Yes.”
His legs gave out and he dropped into a crouch like a deflating balloon. “Oh my god.”
“You done?” Marinette asked, smirking just a little.
“I—you're—you’re Ladybug?!”
Plagg snorted. “This is my favorite day ever.”
Adrien stumbled back a step, completely wrecked. “I danced with Ladybug tonight and didn’t even know.” He groaned, dragging both hands through his hair. “You’re Ladybug. I’ve been shooting puns at you for years. I flirted with you as Chat. I flirted with you tonight.”
“You flirt with her every night.” Plagg added with a grin.
Marinette turned and gave the kwami a look that made him float behind Adrien for cover again.
She sighed and stood, brushing off her dress. “This doesn’t change the fact that you swooped down on me like a dramatic idiot.”
“I panicked!”
“You kidnapped me.”
“RE-LO-CAT-ED,” Plagg muttered.
Marinette shot him a look, then turned back to Adrien.
“I’m not mad,” she said, softer now. “Just… overwhelmed.”
“You’re really you,” he whispered.
“And you’re really you,” she teased gently, offering a small, reassuring smile.
He laughed — a little breathless, a little overwhelmed. “You’re not freaking out.”
“I am,” she said honestly. “Just... quietly.”
Adrien nodded. “Same.”
They stood there, quietly, eyes on each other like they may disappear if either moved, before Adrien sighed.
“I’ve always wondered,” he said softly, “if Ladybug ever saw me. Me, not just the mask.”
“I did,” she said, meeting his eyes. “Just… not all at once.”
He let out a long breath, before grinning.
“Does this mean I can call you ‘Bugaboo’ without getting scolded?” he asked, a little hopeful, a little cheeky.
She arched a brow. “Try it and I’ll dropkick you off this roof.”
“See, that’s how I know it’s you.”
They both laughed, letting the sound carry, the hope, the joy radiate as she stepped closer.
“We have a lot to figure out,” Marinette said, voice steady now. “But we’ll do it together.”
He nodded, eyes on her, soft and certain. “Together.”
***
They stood there, quiet and waiting before Marinette tilted her head, lips curving. “So… are you going to get me back to the ball or what?”
Adrien blinked. “Wait, you want to go back?”
She smirked. “I didn’t get all dressed up for nothing. Besides…” she let her fingers lightly brush his, “I think my mystery dance partner owes me a proper second dance. You know —one that doesn’t end in rooftop kidnapping.”
He chuckled, relief blooming in his chest. “Deal.”
He offered his hand as he transformed back into Chat, and she took it without hesitation.
He scooped her back into his arms as he leapt back down to the alleyway, the city dimming around them, their hearts still racing. Adrien set her down just before they reached the Grand Paris again, letting his transformation drop, smoothing his hair and adjusting the cat-like mask he still wore.
When they stepped back into the ballroom — fingers linked — the music swelled around them, warm and glittering. The lights danced like stardust across polished floors and sparkling gowns.
Alya spotted them instantly as she choked on her drink.
“Mari — MARINETTE! WHAT THE —” She lunged across the room, wide-eyed and flailing. “You disappeared, I thought you’d fallen in a sewer or been abducted by butterflies or—are you holding his —”
Marinette raised the other hand with perfect calm. “Later.”
“But —”
“Later, Alya.”
Alya’s jaw worked silently as Nino appeared at her side, gently taking her by the shoulders. “Breathe, babe.”
Still flustered, Alya let herself be dragged back, though her eyes stayed locked on the newly-linked hands as if they were made of pure chaos.
Marinette turned to Adrien, cheeks flushed, eyes shining. “Ready?”
He bowed with exaggerated flair. “May I have this dance, m’lady?”
Her eyes sparkled. “You may.”
They moved onto the floor, the music wrapping around them. Adrien spun her gently, her red dress swirling like petals in bloom. Their hands fit naturally, perfectly — as if they’d been dancing around this truth for years.
“I can’t believe I didn’t recognize you,” Adrien murmured.
“I can,” she teased, resting her hand lightly against his shoulder. “I’m very good at hiding.”
“You’re very good at messing with my head.”
She laughed softly. “That’s part of my charm.”
They danced like no one was watching, like they were the only two people in the room. Their masks still hid just enough to make it feel like a dream, like the world hadn’t fully caught up with the truth they now shared.
And then, the song shifted — slower, quieter. Adrien’s hands settled at her waist. Marinette’s arms circled his neck. Their movements slowed.
He looked at her, really looked.
“So… can I kiss you now?” he asked, low and a little breathless.
Marinette’s lips curved. “You can try.”
He didn’t need more encouragement.
He leaned down, guiding his lips to hers as the music circled the air around them. It was soft, gentle and perfect. Everything else — the masquerade, the ballroom, the years of confusion — fell away just like their masks.
It was just Adrien and Marinette and the beginning of something very real.
