[It's like time stops. When they're standing in silence and the cover of darkness, he suddenly realizes or maybe senses before it happens that he's not going to be able to take the way out this time. After all, it dragged something out of Shiro that he never would have admitted to Keith otherwise. So when the words surround then both, when the light returns, Keith looks at it long enough to read his own thoughts looking back at him (wide-eyed, still, surprised at being laid bare this way) and then he closes his eyes. He pulls away, maybe not entirely but enough that there's a bit of a distance when he looks back up at Shiro with pained but honest eyes.
Even if Shiro doesn't finish the question, the only way he could walk away from this now is by outright lying in some way and that's the one thing Keith refuses to do. He faces this head on as anything else, even as his entire body suddenly feels like he's trembling. He wondered all this time how much Shiro had understood before. Maybe in the end... It has to come from Keith himself now.
At first the only thing he gives is a nod, resigned, admitting but then- his voice is soft and rough at once.]
Shiro.
[He feels everything caught in his throat and still. And still.] Shiro, I-
Yes. That's the reason why. That's always been... [Fuck, he never wanted to push this on you and it almost sounds like an apology and something he suddenly desperately needs to convey.] I love you.
[It happens at the same time as the words change again, the last time this will be a secret: I've loved him almost as long as I've known him. I can't tell him.]