XO, Kitty drops Kitty Song Covey (Anna Cathcart) into KISS, the same school her mother once attended, with one goal in mind: love. What begins as a long-distance reunion with Dae (Min-yeong Choi) quickly unravels into something far messier, as fake relationships, hidden romances, and unexpected feelings start to overlap. Kitty arrives thinking she understands love. Instead, she finds herself caught between what she planned and what she feels.
With season 3 recently released on Netflix, XO, Kitty leans even deeper into shifting dynamics, unresolved tension, and second chances. Some relationships begin as strategies. Others fall apart because no one says what they really mean. And a few, quietly, feel like they might last.
11 Stella and Min Ho
Stella and Min Ho start off like a classic opposites-attract setup. She stands up to his father, and Min Ho gets caught up in the idea of doing the same. There’s even a hint of charm in how she tries to meet him halfway. But the illusion cracks fast.
Their entire relationship is built on a lie, with Stella’s real identity and motives hiding underneath every interaction. It turns what could have been a match into a not genuine connection. Instead of chemistry, it feels like a setup waiting to collapse. And when it does, there’s nothing real left to hold onto.
10 Yuri and Juliana
Yuri and Juliana move between friendship and something deeper, but never in a way that feels easy. Their relationship is a hidden one, shaped by the need to keep parts of themselves private from their families. It carries the weight of a forbidden love, built on quiet moments instead of open ones.
There’s real feeling there, but it keeps getting buried under doubt and silence. Juliana questions where she stands. Yuri avoids saying too much. When Yuri kisses Kitty, it doesn’t come out of nowhere, but it still hits hard. For Juliana, it confirms everything she’s been trying not to think about.
They don’t fall apart because they stop caring; they can’t be fully honest with each other. Even in season 3, with Juliana moving forward with Praveena, there’s still a trace of tension between her and Yuri.
9 Kitty and Praveena
Kitty and Praveena emerge from a phase of exploration. In season 2, Kitty is figuring out her bisexuality, and Praveena meets her at that moment. They go on a string of fun, easy dates. There’s laughter and a sense that things don’t have to be complicated. Praveena’s adventurous side matches Kitty’s energy, which makes their connection feel natural from the start.
But that ease doesn’t last. Praveena notices what Kitty is still holding onto. The attraction for Yuri never fully leaves, and it starts to show in the spaces between them. Kitty tries to move forward, but she’s not completely honest about where she stands. That gap matters.
What they have is genuine, just not aligned. It works better as friendship than romance, like two people who met at the right time but for a different reason.
8 Madison and Min Ho
Madison and Min Ho are a fling, plain and simple. They both know it, and that’s what makes it work, at least for a while. There’s chemistry, a lot of it, but it stays on the surface. They’re drawn to the chase, to the fun of it, without pretending it’s something deeper. And when Min Ho starts wanting more, they don’t drag it out. They end things cleanly. It’s rare to see something this casual handled with that kind of clarity. Not every relationship needs to be serious to mean something, even if it doesn’t last.
7 Q and Florian
Q and Florian start off as one of Kitty’s matchmaking wins, the kind that actually lands. It felt easy from the beginning. Q finally gets the guy he likes, and Florian meets him there with patience and attention. Their relationship leans into that ideal space, light, affectionate, almost untouched by drama. It’s the kind of pairing you root for without thinking twice.
But cracks begin to show beneath the surface. Communication never quite catches up to their feelings. When Florian admits to cheating on tests to stay at KISS, it shifts the ground completely. It’s not just about breaking a rule. It’s about values, about how far someone is willing to go and who it affects along the way.
They don’t break because the feeling disappears. They break because Q draws a line. For him, friendship and integrity come first, even if it costs him the relationship. It’s quiet, but it says everything about who Q is as a person.
6 Eunice and Dae
Eunice and Dae come together through something as structured as a class duet, but what follows feels more organic than expected. They’re thrown into one space, then turned into rivals, expected to compete even as their connection starts to take shape. That tension could have pulled them apart, but instead, it adds weight to what’s already there.
They’re driven by the same goals, grounded in music, and fueled by a quiet need to prove themselves. There’s an ease in how they understand each other. Watching Dae’s quiet yearning turn into something more direct, the way he starts to pursue Eunice without hesitation, makes their dynamic easy to invest in.
5 Kitty and Dae
Kitty and Dae are first love in its clearest form, built on history, long-distance calls, and the kind of certainty that feels unshakable at first. Kitty arrives at KISS holding onto that version of them, only to be thrown off when she finds Dae in a relationship with Yuri, even if it turns out to be fake. That moment alone shifts everything she thought she knew.
There are real efforts to meet each other halfway. When Dae opens up about his struggles, including his financial situation, Kitty doesn’t hesitate. She stays, listens, and chooses him anyway. But where they falter is in how they communicate. They assume too quickly, react too fast, and miss the chance to simply be honest. It’s frustrating in a way that feels familiar, like watching two people care deeply but keep missing the mark.
Their breakup doesn’t erase what they had. They step back without resentment, still showing up for each other, still supporting whatever comes next. Not every first love is meant to last, but this one leaves both of them better for it.
4 Kitty and Yuri
Kitty and Yuri don’t walk in as a love story. They start off butting heads, all sharp edges and side glances, like they’re waiting for the other shoe to drop. Then, somewhere along the way, the walls come down. Not in big, dramatic ways, but in quiet choices. Yuri shows up. Kitty listens. Trust slips in before either of them can name it.
It’s exploration, but it doesn’t feel like dipping a toe in the water. It feels like being pulled under without warning. Even when Kitty is still with Dae, her attention keeps circling back to Yuri. You can see the writing on the wall before they do. When they finally cross that line, it lands exactly where it should. And then Yuri goes back to what she knows, trying to patch things up with Juliana, leaving Kitty holding onto something that never quite got the chance to be.
3 Jiwon and Alex
Jiwon and Alex feel like a story that’s already in motion before anyone notices. Kitty steps in thinking she’s setting her aunt up with her teacher, only to realize they’ve already found their way to each other.
In season 3, things shift quickly. What they’ve kept quiet turns into something they can’t ignore, especially with a surprise pregnancy changing the pace of everything. There’s no time to hesitate. They face it together. When it’s time to tell Jiwon’s grandmother, Alex doesn’t step back or leave her to handle the news alone. He’s right there beside her, showing up in a way that makes everything clear without needing to say much.
2 Q and Jin
Q and Jin don’t ease into each other. They start as rivals on the track, all competition and ego, trading jabs and pranks like it’s part of the game. Somewhere in the middle of that back-and-forth, Jin misreads the situation and assumes they’re flirting. That confusion throws Q off just enough to take a step back and look at things differently. Jin adjusts. Q meets him halfway. What follows is a genuine connection that feels earned, built on actually listening to each other instead of guessing.
Season 3 puts that to the test. Marius re-enters Q’s life, trying to pick up where they left off, but it only makes things clearer. Q chooses Jin, not just in words but in effort, trying to prove what they have is real. Jin, more guarded this time, doesn’t rush back in, but he doesn’t walk away either. With Q leaving for USC, there’s a quiet urgency to them, like they both know this matters and want to get it right while they can.