Work Text:
Sanji arrived at Ngurah Rai Airport - Bali just past noon, as the sky shattered into gold despite the lingering drizzle. The humid breeze tugged at his collar as he stepped out of the terminal, dragging a suitcase far too light for what this weekend might turn into. A driver from the villa was already waiting, holding a small sign that read, “Guest of Nami – Sudamala Resort.”
The ride to Sanur was quiet. The By Pass Ngurah Rai stretched long beneath flickering streetlights, revealing the occasional flower stall, a shrine at a sharp turn, and the silhouette of a mountain half-swallowed by mist. Sanji leaned his head against the car window, letting his mind drift toward a past he wasn’t sure he was ready to face again.
Sanji hadn’t even stepped past the open-air lobby when the heat hit him like a soft, perfumed slap. Not the Paris heat—dry, spiteful, and smug—but a warm coastal hug laced with frangipani, sea breeze, and the low thrum of Gamelan music playing somewhere in the distance. He blinked up at the carved wooden beams above him, exhaled, and tried not to look like he hadn’t slept for eighteen hours.
The staff welcomed him with a cool towel and a drink he couldn’t pronounce. Everything smelled like lemongrass and money. The resort was beautiful—no, unfairly beautiful. Like something out of a destination wedding catalog. Palm shadows danced along the terracotta tiles, and tucked between the pathways were private villas with pools so serene it made Sanji feel out of place just existing nearby.
The villa was small but elegant, tucked between frangipani gardens and seaside screw pine trees. Nami had booked it for all of them—“so we can rest before the big day,” she’d said cheerfully in the group chat. But the neatly lined-up rooms felt too spacious, too clean of the past.
Sanji opened his suitcase and laid out the white linen suit he would wear to the wedding tomorrow. His hand paused over the inner pocket where he kept his cigarettes. But he didn’t light one. Not now.
The rain started just as he stepped out of the bathroom. Not a storm. Not even proper rain. Just that kind of indecisive drizzle that taps politely on the glass doors and clings to the frangipani leaves like it has nowhere else to be. It’s the kind of rain that sneaks up on you—quiet, gentle, and somehow sad.
The thought comes uninvited. So does the ache that follows it. He leans against the glass, letting his forehead rest against it for a moment.
"Zoro’s in Nusa Penida already. I gave him the groomsmen kit too. Just dont punch him.”
Sanji read again the message Nami had sent earlier. He stared at the message. The name alone sent a ripple through his chest—faint, but undeniable. He should’ve known. Of course Zoro wouldn’t miss the wedding. Of course fate, in all its ironic cruelty, would bring them back to the same island.
Why does it always rain when it’s supposed to be beautiful?
He stepped out onto the veranda, eyes on the low tide retreating under a sky already bruised with night. The rain—a quiet drizzle, almost soundless, like a question he never got the chance to ask. And in the air, that unmistakable Bali scent, salt from the sea, incense from the temple next door, and memories that refused to burn out.
The evening deepened, and the sea withdrew like a breath held too long. From where he stand, Sanji watched as fishermen’s boats bobbed lazily offshore, their silhouettes softened by the dimming sky. The beach below was nearly deserted, save for a lone dog picking its way across the sand, and a pair of lanterns glowing gently at the edge of a beach café—barefoot tourists sipping cocktails, unaware of the ghost Sanji had brought with him.
The memory hits him before he can stop it.
It was one a half year ago. Jakarta, quiet in that late-hour haze.
"You still hungry?"
Zoro tilted his head back just enough to meet his eyes. “No. Still full from that noodles you bullied me into eating.”
“Tch. You liked it.”
A shrug. “It was alright.”
“You finished two bowls.”
Zoro smirked, eyes closing again. “Shut up.”
Sanji leaned forward, resting his chin on the edge of the mattress. “You know,” he murmured, “Sometimes I forget how peaceful it can be. Just… this.”
Zoro didn’t reply immediately. But his hand reached up—just slightly—and found Sanji’s, resting between them on the bed. He didn’t squeeze. Didn’t pull. Just placed his fingers there, like a quiet I’m here.
And that was enough.
Because in this city, in this small apartement, in this one room with cracked white walls and fluorescent lighting—this was the only place they could breathe without being watched. Where Sanji could take off the mask, where Zoro didn’t have to play it cool, and where no one cared if one of them reached across the bed in the middle of the night just to feel skin.
The rain had stopped completely now. But the world still felt hushed.
“Stay the night,” Zoro said.
Sanji smiled. “I always do.”
The wind skimmed his cheek like a whisper from another life. As if the sea itself remembered. Sanji breathed in deep—slow, steady—and for a moment, he stayed there, suspended between past and present. Then, with the light dimming and the air cooling around his bare arms, he stepped back into the room. The door slid shut behind him, quiet as the space Zoro once filled.
His phone buzzed once—just a message from Luffy about the welcome dinner. But for one suspended second, his heart raced like it could’ve been someone else. It wasn’t. Of course it wasn’t.
Sanji tossed the phone onto the dresser, face-down.
He peeled off his overshirt, draped it over a chair, then walked to the bathroom just to splash water on his face—cold, bracing, a poor substitute for clarity. When he looked up, his reflection blinked back at him: hair mussed, cheeks a little pink from the heat, expression somewhere between tired and trying not to remember.
"Get it together," he muttered.
He ran a towel over his face and stepped back out into the room.
The sky was darker now, the gamelan gone, replaced by the distant sound of motorbikes weaving down coastal roads. In the dim glass reflection, he almost imagined another silhouette beside him.
He shook his head.
No use chasing ghosts.
Still—his hand lifted, hovered at the side of his own arm, like it remembered the weight of someone else’s touch.
Just muscle memory. Just Jakarta. Just a different time.
With a breath that tasted like salt and something almost like longing, he turned away.
"Focus on the wedding," he told himself under his breath. “Focus on now.”
But even as he lay down on the crisp white sheets, his body facing the empty half of the bed, he knew: some parts of the past never quite stay buried.
Especially not when they’re already here.
---
The sun dipped low over Sanur beach, gilding the waves with liquid gold. A breeze rolled in, warm and scented faintly of lemongrass and salt. Paper lanterns swayed from the frangipani trees above, and long tables had been set out in the sand—white linens, flickering candles, small floral centerpieces that looked plucked straight from the surrounding jungle.
The welcome dinner had begun. And Sanji, shoes loosened, shirt sleeves rolled up, wine glass untouched, was pretending to listen to Brook’s story about getting lost in the Uluwatu temple.
“...and then I realized, I was talking to a statue. For twenty minutes! Yohohoho!”
Polite laughter rose around the table. Sanji smiled faintly.
He hadn’t touched the grilled tuna on his plate. He’d helped the caterer prep it earlier that day, because he couldn’t stay still—not when Zoro was somewhere nearby, probably already in Sanur, probably watching the same sunset through different eyes.
Nami was glowing. She sat at the far end of the table next to Luffy, a vision in white and gold. Her hand never left his. They laughed easily, with the careless joy of two people about to say forever in front of a priest.
Someone clinked their glass for a toast. Champagne flutes lifted into the salty air. Sanji raised his, drank nothing, and looked away—out to the ocean, past the candlelight, to where the dark was creeping in. The stars would be out soon.
And all he could think of was Jakarta. A year ago.
It was raining.
Not the dramatic kind. Just a quiet drizzle, steady and fine, misting the windows of the apartment and beading on the iron railing of the balcony where Sanji stood, one hand in his pocket, the other holding a half-burnt cigarette.
Behind him, Zoro was silent.
They’d argued earlier. About the silence. About how it had been weeks since they laughed without something clenched behind their teeth. About how Sanji had been pulling away, retreating behind work, behind late nights, behind a growing fear he couldn’t explain.
“I don’t want to do this anymore,” Sanji had said. Quietly. With the kind of calm that felt rehearsed. “I think I need to go.”
Zoro hadn’t said stay. Not right away. Maybe not at all.
He’d stood there, jaw tight, fists in his hoodie pockets, saying nothing while Sanji packed his bag—slowly, with shaking hands, as if part of him was still hoping Zoro would change his mind.
But Zoro didn’t know how to ask someone to stay. Especially not someone who looked that tired, that far away already.
So Sanji left.
The elevator door closed. Zoro didn’t chase.
A breeze lifted off the sea, salty and warm, and Sanji blinked. The Jakarta rain dissolved.
Somewhere behind him, silverware clinked, and a soft acoustic set had started under the palm trees. A love song. Of course.
Sanji stood, brushing grass off his linen pants. He stepped past the last of the lanterns, toward the edge of the garden. He needed air. Or distance. Or a place where that apartment door wasn’t still closing in his chest.
A few meters away, near the beach path, someone stood alone with their back turned. Broad shoulders. Dark tan. A tank top, rucksack slung low on one arm.
Zoro.
Sanji stopped walking.
The music carried on. The ocean whispered. And for a long, suspended second, neither of them moved.
Zoro hadn’t turned yet.
Sanji could’ve walked away. No one would notice. The shadows were generous here, and the music gave him cover. But he didn’t. Couldn’t.
He took a slow step forward.
Zoro shifted slightly, like he felt it—felt him—before he saw anything. Then he turned, just enough for the candlelight to catch on his jawline. The same scar, the same unreadable expression, the same maddening calm.
They stared. A heartbeat. Two. Then, Zoro spoke. Voice low. Not cautious—Zoro was never cautious—but weighted.
“Still pretending you don’t smoke?”
Sanji blinked. He hadn’t expected that. And gods, that was the line? That was the first thing? He huffed a laugh, faint but real. “Still pretending you don’t care?”
That earned him a ghost of a smirk. Familiar. Dangerous. The kind that unraveled him once, slowly, with patience and bad timing.
Zoro stepped closer, toes sinking slightly into the sand. “You look good.”
“I’m not here for compliments.”
“I didn’t say it for you.”
Sanji rolled his eyes and looked away—out to the ocean, where the tide was pulling in like memory. “Nami said you checked in today.”
Zoro shrugged. “Caught the early boat. Didn’t think I’d be invited to this part.”
“She invited everyone.”
“But not everyone broke your heart.”
Silence stretched between them like a pulled thread. Neither moved.
Then, softer, “I wasn’t the only one bleeding,” Sanji said.
“No,” Zoro agreed. “You just got to walk away from it.”
Sanji clenched his jaw. He felt that one. Too much.
The music behind them shifted—an old love song in a language neither of them spoke. A breeze stirred the paper lanterns above.
Finally, Sanji asked, not looking at him, “Why are you here, Zoro?”
Zoro’s voice was steady, too steady. “Because Nami threatened to un-groomsman me.”
“That’s not what I meant.”
Zoro hesitated. Then, simply added. “Because I thought I could handle it. Seeing you.”
“And?”
“I was wrong.”
Sanji closed his eyes for a moment, just long enough to remember how to breathe. And when he opened them, Zoro was still there. Waiting.
They ended up sitting on the sand. Not too close, not too far. The tide was gentle, brushing over their feet like a memory too faint to sting. Sanji lit a cigarette. The flame flickered in the breeze before it caught. Zoro didn’t say anything—just watched him through half-lidded eyes.
“Feels weird,” Sanji said, smoke trailing lazily from his lips. “Seeing everyone again.”
Zoro hummed. “Didn’t think Brook would still have dreads.”
Sanji huffed a small laugh. “Or that Jinbe would become a golf dad.”
“Franky’s still Franky though,” Zoro added. “Loud as ever.”
A silence settled. Not awkward. Just… full.
Sanji glanced sideways. “I heard you moved to Nusa Penida.”
“Yeah. Got tired of Jakarta. Too loud.”
“You always said that,” Sanji said, voice quieter now. “Even when we were still working at the firm.”
Zoro nodded, eyes on the horizon. “And you always said you’d never go back to France.”
“Well,” Sanji exhaled, “turns out I lie sometimes.”
Sanji leaned back, one arm bracing against the sand, cigarette burning low between his fingers. He didn’t look at Zoro when he said, “I waited, you know. For you to say something.”
Zoro was quiet for a while. The kind of quiet that made you think he was choosing words. But the truth was, he wasn’t sure there were any good ones. “I thought staying was enough,” Zoro finally said. “I thought… being there was the way I showed it.”
Sanji let out a small, tired laugh. Not bitter—just tired. “You’re good at being there. I’ll give you that.”
The waves whispered in the background.
Zoro looked down at his hands, then back at Sanji. “You didn’t even say goodbye.”
“I did,” Sanji replied. “You just weren’t listening.”
That hit something.
Zoro didn’t flinch, but something in his jaw shifted. He turned toward the sea, watching a boat’s silhouette pass the horizon. “So you left. And went back to a country you swore you hated.”
Sanji smiled faintly. “Turns out I hated staying for the wrong reasons more.”
Zoro looked at him then. Really looked. And for a moment, Sanji looked back.
“What about the right reasons?” Zoro asked.
Sanji’s gaze dropped. He crushed the cigarette into the sand, careful, slow. “The right reasons never asked me to stay.”
Zoro didn’t argue. He couldn’t.
Sanji stood first, brushing the sand off his pants. “Anyway. Dinner’s probably cold by now. Luffy’ll be upset if I show up empty-handed.”
Zoro got up too, slower. “He won’t care.”
Sanji shrugged. “I do.”
Sanji and Zoro were still walking slowly up from the beach, their steps out of sync—but not completely apart either. There was still too much left unsaid.
Near the path that led back toward the resort, Nami appeared—arms crossed, expression unreadable, a glass of fresh coconut water in one hand. She must’ve seen everything from the patio steps.
“Finally,” she said, voice light but cutting. “You two done being vague and tragic?”
Sanji immediately looked away. “Damn it, Nami.”
Zoro glanced at her briefly, face unreadable. But his steps slowed, like he knew he was about to be flayed alive by passive aggression.
Nami stood, leaning against the bamboo post of the stall. “You know, Luffy still thinks you just ‘got busy with work in Europe’, Sanji.”
Sanji sighed. “Let him think that.”
“Robin suspects the truth,” Nami added, her voice softer now—less like a challenge, more like a reminder. “But she won’t say anything unless you do.”
Zoro cut in, tone flat. “You told Nami.”
Sanji shrugged. “She figured it out before I did.”
Nami gave a small smile. “Someone had to. You were both so obvious. Staying late at the office, always showing up with two coffees in the morning. Cooking in the pantry even though the office had great catering.”
Sanji answered lightly, “That was for everyone.”
“You never cooked for Brook.”
Sanji shot her a look. Zoro snorted. But something softened between them.
Nami sighed. “You guys ruined a perfectly good work environment with your breakup, you know.”
“Oh, for god’s sake,” Sanji groaned, trying to hold back a bitter laugh. “We didn’t mean to.”
“But you didn’t try to talk, either,” Nami shot back. “You both just… disappeared.”
Silence settled. The ocean breeze swept Nami’s hair back as she looked at them—gently, but sharp as a blade.
“You know, Zoro,” she said, half-joking, half-cutting, “he only left because he thought you didn’t love him. And you—” she pointed her straw at Sanji, “—you left without even asking if he would’ve come with you.”
Nami leaned in slightly, one hand still loosely holding her glass, the other brushing stray hair from her face as the breeze picked up. "I’m not here to fix anything," she said calmly, her eyes shifting between the two of them. “But I am asking you both to stop pretending like none of it ever happened.”
She let the silence linger for a moment. The sound of waves and distant laughter from the beach filled the gap.
“I’ve known you idiots too long,” she added with a small, knowing smile. “I’m not asking for a confession or a grand gesture. Just… don’t ruin my vacation by lying to yourselves. Not in front of me.”
Sanji opened his mouth, but nothing came out.
Zoro didn’t speak either. But he looked at Sanji, and Sanji looked back.
---
Sanji had been up since dawn.
Not because he had to be—but because he wanted everything to go right. Luffy might be the groom, but that didn’t mean Sanji could sit still while the catering team debated where to set the oyster bar. Or when the delivery guy tried to bring soda in plastic bottles into a beachside wedding.
So, in true Sanji fashion, he’d solved it all before breakfast. He’d double-checked the reception table flowers, sweet-talked the pastry chef into redoing the writing on the cake (“It’s 'Nami & Luffy', not 'Luffy & Nami', you heathen”), and made sure every bottle of chilled rosé was lined up like soldiers ready for battle.
By the time he finished fixing his own suit and taming the last rebellious strand of blond hair, it was well past the time he was supposed to check on the groom.
Sanji straightened his cuffs as he approached the groomsmen's room, feet silent against the tiled floor. A quick knock. No answer.
He frowned. "Oi, Luffy?" he called softly, nudging the door open.
The room was mostly quiet. A few jackets hung by the wall, a tie draped over the back of a chair. Sunlight streamed in lazily from the balcony, catching specks of dust in the air.
But no Luffy.
Just one man, seated at the edge of the bed, elbows on his knees, the undone collar of his white shirt gaping slightly at the throat. He looked up.
Sanji stopped mid-step.
“Zoro?” he blinked.
Zoro blinked back, looking very much like someone who had not planned to be caught alone, unsupervised, or semi-creased.
"...He left already?" Sanji asked, looking around the room.
Zoro shrugged. “Mumbled something about going to see the setup. Took off ten minutes ago.”
Sanji clicked his tongue. “Of course he did. Idiot’s probably barefoot near the pool.”
Zoro smirked faintly. “Said he’d marry her wet if he had to.”
Sanji let out a helpless laugh and walked further into the room, eyes scanning Zoro’s half-ready state. “Your tie.”
“What about it?”
He said now, quiet and sharp. “If you’re not going to wear the damn tie, at least iron it.”
“I don’t own an iron,” Zoro replied, which made Sanji laugh despite himself.
"Still allergic to asking for help?” Sanji said, voice light as he turned.
Zoro didn’t answer. He just stood there, sheepish, eyes flicking from the window to the floor to Sanji’s hands, which had gone still by his waist.
It was quiet for a beat too long.
Sanji sighed and stepped forward, fingers already lifting the collar of Zoro’s shirt.
“Come here, idiot. You’ll strangle yourself if you do this wrong.”
Zoro didn’t move at first, but when Sanji tugged him gently by the lapels, he obeyed. Close enough that Sanji could smell the faint citrus of the resort soap and the sun still lingering on Zoro’s skin.
His fingers worked quickly—loop, fold, pull—muscle memory from years of fussing with ties in fancier kitchens than this. But now, each tug brought them closer. The knot tightened between them like something unspoken.
Zoro watched him the whole time. Didn’t say a word.
Sanji glanced up briefly and immediately regretted it. That look—quiet, unreadable, warm around the edges—was a landmine. The kind you don’t know you’ve stepped on until it’s too late.
“There,” he muttered, smoothing the fabric down Zoro’s chest with a practiced flick. “Now you look almost respectable.”
Zoro didn’t answer. He just kept looking at him.
And Sanji, curse him, had to look away first. Sanji stepped back, palms pressing against the windowsill. The sea was glinting out there like nothing had changed.
“…You okay?” Zoro asked.
“Yeah.”
“You’re lying.”
Sanji huffed. “You’re observant. I’ll alert the press.”
A pause. Then Zoro said, quieter, “You’ve been weird since last night.”
And there it is, Sanji thought.
The night before, they'd stayed up late, alone under one of the canopy tents after the rehearsal dinner. There was laughter, stupid teasing, an almost-bruise of a moment when Zoro had looked at him and said, “You nervous for tomorrow?” And Sanji had replied, “Why would I be? I’m not the one tying the knot.”
But maybe he was. Not to a person, but to a past version of himself. To a future he wasn’t sure how to name yet. Something about watching Luffy and Nami choose each other so fully—it made the air inside him crackle.
The sun cast a golden veil across the ocean, soft and slow, as if the island itself was holding its breath. Bali in late afternoon—when the light went syrupy and the wind carried the smell of frangipani—was already unfairly beautiful.
Sanji had seen Luffy take on the impossible—clients, chaos, deadlines, even politics—without ever breaking stride. But somehow, watching him fidget nervously at the altar—thumbs tugging at the edge of his sash, grin wobbling at the edges—felt rarer than all of that combined.
Sanji could smell the faint trace of Zoro’s cologne—something warm and woody and stubbornly familiar. A breeze passed, flicking the hem of his linen blazer, and for a second, their sleeves brushed. Zoro didn’t flinch. But he didn’t lean in either. And that, somehow, stung more than being pushed away.
The ceremony had begun with the soft rustle of waves and string instruments. Chairs lined the aisle like petals on the wind, and the sun was kind enough to hang low and golden, just the right amount of dramatic.
Usopp was already sweating, trying not to cry. Franky had straightened his bowtie with a trembling hand. Sanji kept his posture perfect, bouquet of fans tucked under one arm—yes, fans. Everyone needed one in this Bali heat, and he’d handed them out like party favors before the ceremony started. Charming, always.
But his eyes stayed on Luffy.
And then—there she was. Nami.
Every head turned, every breath held, and Sanji felt it again, that weird twisty pride in his chest. She looked stunning. But it wasn’t just the dress or the sunset catching on her hair. It was the way she walked. Like she knew exactly who she was and where she was going. Like the world could end in an hour and she’d still take her time down that aisle.
Luffy visibly choked back a sob, half-laughing, wiping his cheek with the back of his hand in the middle of it.
"She’s so pretty," he whispered too loudly. A few guests giggled. The officiant smiled indulgently.
Sanji leaned over just a bit. "Try not to shout your inner monologue."
Luffy turned to him, eyes shining. "Sanji. She’s so pretty."
Sanji chuckled under his breath. “I know, Luffy.”
The vows were equal parts ridiculous and heartfelt. Luffy promised to always share his food, even meat. Nami promised to always remind him to wear sunblock and not to trade the family rice cooker for a monkey again. At some point, someone sniffled loudly, Usopp again, and Sanji found himself swallowing hard.
And then came the kiss.
It wasn’t delicate. It was messy, a little too enthusiastic, and Nami had to cup Luffy’s cheeks to guide him so he didn’t knock their foreheads together—but it was full of joy. Honest. Loud. Them.
The guests erupted in cheers. Someone in the back popped a confetti cannon. Chopper was crying openly. Robin clapped with perfect grace. Brook shouted something about love transcending death.
And Sanji?
He smiled. Wide. Bright.
Because that’s what you do when your best friend gets married under the Balinese sky and means every damn word of his silly, chaotic vows.
After the ceremony, the guests had moved to the open-air reception deck, where the view overlooked the sea like something out of a fantasy book. String lights twinkled overhead. The sound of waves mixed with Brook’s guitar and the clinking of wine glasses. A breeze carried the scent of salt and frangipani.
Sanji stood near the bar, sipping something citrusy with a splash of gin. His shirt sleeves were rolled up, hair slightly mussed, a little sweat on his neck—not that he minded. It was a good kind of chaos. His kind of party.
“ALRIIIGHT!” Nami’s voice rang out over the laughter. “Single ladies, get ready! It’s bouquet time!”
There was a shuffle of excitement as the women gathered at the center—Robin, Vivi, Kaya, some of Nami’s old friends from Sweden who’d flown in. Even a few daring guys hovered on the edge of the crowd, pretending not to care.
Sanji, of course, stayed far from the danger zone. He was far too dignified for flower warfare.
But then—
“Luffy,” Nami said sweetly, turning to her husband, “throw it for me. Just for fun.”
“OKAY!!” Luffy grinned, grabbed the bouquet, and—
YEETED it.
Like. Full. Force. The bouquet went flying like it had a personal vendetta.
“LUFFY!!!” Nami shrieked, arms flailing.
Guests ducked. Drinks were spilled. Chopper screamed.
And across the deck, Sanji turned just in time to—
WHUMP.
—catch the bouquet with his face.
There was a beat of silence.
And then a roar of laughter.
Sanji stood frozen, petals in his hair, bouquet cradled against his chest like he’d just caught a cannonball.
Zoro’s voice came from behind him, slow and smug, “…Guess you’re next, huh?”
Sanji turned, eyes narrow. “Say that again, mosshead brain.”
Zoro raised an eyebrow. “I said—” He stepped closer, plucked a stray flower petal off Sanji’s cheek, “—you look real cute holding that.”
Sanji’s ears went a bit pink. “Shut up.”
But he didn’t throw the bouquet away either.
Nami blinked.
Luffy blinked.
Everyone blinked.
Then Usopp—bless him—broke the silence, "Wait wait wait, Sanji caught it?!"
Heads turned. Sanji was still frozen mid-catch, bouquet clutched in his hands like it might explode. Zoro was already halfway across the lawn, not looking back.
Luffy grinned, eyes sparkling. “Hehehe… nice catch, Sanji!”
“I—wait—I didn’t even mean to—!”
But Nami had that gleam in her eye. “Well, it’s tradition.”
Sanji paled. “What tradition?!”
“You caught the bouquet,” she said sweetly. “That means you’re next.”
“Next to what?!” he demanded, eyes wide.
“Get married,” Nami and Robin chimed, deadly in sync.
The bouquet still hung in Sanji’s hands when Nami blinked, lips twitching.
But before anyone could say more, Luffy piped up—of course he did—“Naaaami! That throw was weak! Do it again!!”
“Yeah!” Usopp chimed in, fully encouraging the chaos. “C’mon, that was a practice round!”
“What—” Sanji started, but Nami had already plucked the flowers right out of his stunned grip.
“Oops. My bad.” She winked. “Sorry, Sanji.”
Before he could protest, she spun on her heel with all the grace of a queen, lifted the bouquet high—and chucked it over her shoulder with lethal precision.
Robin caught it. Without blinking. Without moving a single extra muscle. Two fingers, mid-sip of champagne. A slow smirk curled on her lips.
The crowd cheered. Luffy howled with delight.
The laughter didn’t stop for a while.
Luffy was already halfway onto a table doing a victory dance to Brook’s guitar, Nami chasing him with her heels in hand, Robin twirling the bouquet like she’d planned this outcome all along. Wine was flowing. Someone handed Franky a mic—mistake. He was now crooning something vaguely Sinatra-adjacent while the rest of the crew fell into impromptu swing dancing.
Sanji smiled. Laughed, even. Took another sip of his drink.
But somewhere in between Usopp’s dramatic reenactment of the “Bouquet Strike of Doom” and Chopper trying to give him emergency flower-removal treatment, the noise started to blur at the edges. Not in a bad way. Just… muffled. Like a song he used to love playing too softly in another room.
He excused himself politely from a group trying to get him to slow dance. Handed his glass to someone without looking. Took one last glance at the glittering reception, where his friends—his family—glowed under fairy lights and Bali stars.
Then he slipped away.
No one noticed. They rarely did when he didn’t want them to. Years of navigating chaos with a smile—at family dinners, work events, too many rooms where he didn’t quite fit—had taught him how to disappear without making a sound. He passed the pool, where reflections shimmered like oil paintings. Down a narrow, sandy path, past a line of torches flickering low. The music faded, replaced by the soft hush of waves.
And suddenly, it was just him again.
Sand underfoot. Salt in the air. The horizon spilling ink across the sea.
He loosened his tie, tucked his hands into his pockets, and started walking barefoot toward the water. Away from the lights. Toward the breeze.
Letting it all settle. Letting himself feel it.
He walked for a while without thinking. No destination, no urgency. Just the pull of the waves and the hush of night settling on his shoulders like a shawl.
The lights of the resort dimmed behind him, swallowed by distance and dunes.
Here, it was quieter. Just the sound of water folding over sand. The scent of seafoam and frangipani. The sky painted in bruised lilac and gold, a slow exhale from the sun as it dipped into the sea.
Sanji stopped when the tide kissed his feet. He stood still. Let it wash over him again.
The view was... unfair. The kind of beauty that asked nothing and promised everything. Not just the landscape, but this whole life—this second chance.
And yet.
He could still feel the weight of Zoro’s gaze from earlier. Could still hear the echo of Luffy’s teasing voice, the way the bouquet had landed in his hands like fate was giggling behind a curtain.
He took a deep breath, then let it go. A small smile found its way to his lips. Quiet. Real.
“Bali, huh...” he murmured to the waves. “You didn’t have to go this hard.”
Another wave swept in, soaking the hem of his pants. He didn’t move. He just stood there, alone with the surf, letting the wind play with his hair. For once, not thinking about tomorrow. Not worrying about how he looked, or what anyone expected of him. Not bracing for someone to leave. Just here. Just now. Breathing.
Behind him the sound of the celebration had long since been swallowed by the tide.
Sanji walked without shoes, the grass turning to sand beneath his feet, still slightly damp from the earlier drizzle. The path curved gently between low-hanging trees, lantern light from the resort now a distant, golden hum behind him. He hadn’t looked back. Didn’t need to.
Because he heard the second pair of footsteps.
Zoro didn’t say anything—not when Sanji left the bouquet chaos behind, not when he drifted alone toward the beach like he was sleepwalking, and not now, as they both stepped off the path into a patch of soft shadow tucked between a bend in the coast and a crooked screw pine tree. Here, the sea sounded louder. Closer. Like it knew.
Sanji stopped. Let the silence settle.
Behind him, Zoro did too.
For a long moment, it was just the ocean, the rustle of leaves overhead, and the lingering warmth of the day melting into night. And then—
“Don’t leave again.”
Zoro’s voice was quiet, but solid. Not a plea. A choice.
Sanji turned his head, the corner of his mouth twitching. “You gonna chase me next time?”
Zoro’s eyes caught the faint moonlight. “I shouldn’t have let you go the first time.”
There was a pause. Not quite heavy. Just… real.
Sanji looked out at the water, where a fisherman’s boat blinked far offshore. “You never said anything, you know.”
“I didn’t know how.”
“You still don’t.”
“Then let me show you.”
And before Sanji could say something sharp, or clever, or catastrophically defensive, Zoro stepped forward—one hand brushing his, just the way he used to. Testing. Asking.
Sanji didn’t move away.
The space between them disappeared like it always did. Like gravity never really stopped pulling them in. Zoro leaned in—not fast, not like the movies, but slow and deliberate, like he was making sure it wasn’t a mistake this time.
Their lips met, soft and sure. No fireworks. Just warmth. Salt. And that familiar, infuriating, grounding presence that had once kept Sanji from unraveling in a city that never slowed down.
When they parted, Sanji’s breath caught. He whispered, “Why now?”
Zoro looked at him, unwavering. “So you don’t have a reason to run.”
And the thing was—he didn’t.
Not tonight.
Not with the Bali breeze around them, the scent of salt and screw pine and wedding flowers drifting from far behind. Not with Zoro standing here, eyes finally open, hands no longer hiding what they held.
Sanji let out a breath that felt like it had waited a year to leave.
And for the first time in a long time, he smiled.
“Next time, just say it, alright? I’m not a damn mind reader,” he muttered, a little sharper than he intended. “If you love me, say it. Don’t just—look at me like that.”
Zoro didn’t answer right away. The silence stretched—not tense, but weighty. Measured. Then, with a slow exhale, Zoro said, voice low but firm, "Then listen this time—because I’m saying it now.”
A pause.
“I love you.”
And just like that, Sanji blinked. Froze. The breeze lifted the loose strands of his hair but he couldn’t move—like someone had just tilted the entire world sideways and expected him to keep walking straight.
“…Huh?”
His voice cracked embarrassingly. A second too late, he looked away and coughed into his hand, trying to collect whatever dignity he had left.
“Dumbass,” he mumbled, ears turning bright pink. “You’re not supposed to say it like that. With your stupid face. And your voice. And—ugh. Shut up. I hate you.”
Zoro just chuckled, hands in his pockets, the most smug and satisfied bastard in the tropics.
“You’re welcome.”
---
