Interestingly enough, I got the true ending on my first try. I really enjoyed reading and playing through this visual novel. I loved the contrast between the characters and the backgrounds, too! I did notice there was no apostrophe for Valentine's Day in the beginning, and the word anticipating was misspelled.
I also felt like I read a bunch of dependent clauses where they should have been connected to the starting sentences with a colon, comma, or em dash, or the sentences could have been turned into independent clauses with linking verbs or connected together with coordinating conjunctions.
These sentences wouldn't need a comma and should be worded as such below:
"But the thought of him spending time with anyone else makes my skin crawl."
"All of his favorite songs are my favorites, too."
This sentence here below could use an extra comma for added clarity:
"He keeps occupying my thoughts... all morning, afternoon, and night."
Otherwise, everything else seemed fine to me. The narration and story actually flowed well.
The dialogue between various characters and the characterization of the main character was well done, too, highlighting their different personalities and the different kinds of banters between them. Good job!
The story was evenly paced, too. The only thing that caught me off guard story-wise was when I chose how to deal with the antagonist of the story, and then it skips that interaction and jumps to Nyli's day with her crush. It had all of this build-up and rising action, and I felt like I missed the climax of the story somehow. Otherwise, I really enjoyed it.
Although, the way crush slides across the screen at the park could look more smooth or less abrupt. I don't know if it needs a hpunch or a vpunch after it or if the original sprite should have been hidden with a dissolve. It just didn't look quite right to me for whatever reason, but that's a minor nitpick.
You can also hide the quick menu with $ quick_menu = False during the moments when a player can choose a choice. You can equate it back to true afterwards to bring it back up on the screen.
Finally, the window icon can be changed from its default look. You can find it in the GUI folder. You can also remove the 1.0 from the main menu in the code where it states text "[config.version}": style "main_menu_version underneath screen main_menu() in screens.rpy. You would put two hashtags (#) in front of each of those two lines.