Preheat oven to 350 degrees. Line two 12-slot cupcake pans with parchment liners.
In a large bowl, beat the butter and sugar until fluffy, about 3-4 minutes. Beat in the eggs, one at a time, until fully incorporated. Whip in the vanilla, vinegar, dye, and Greek yogurt. Add the flour, cocoa powder, baking soda, and salt. With the mixer running, slowly stream in the buttermilk, mixing until just combined. Do not overmix.
Using an ice cream scoop or cup measure, divide the batter evenly among the cupcake slots, filling 2/3 of the way to the top. Bake 30-35 minutes until the center is set and an inserted toothpick emerges with just a few moist crumbs. Let cool in the pans for 10 minutes, then transfer the cupcakes to a wire rack. Cool completely.
When the cupcakes are cooled, make the frosting. In a bowl, whip the cream cheese, butter, and vanilla on low speed until combined. Add in 4 cups of powdered sugar and mix to combine, then increase the speed to medium high and whip until very light and fluffy. If needed, pour in more sugar 1/4 cup at a time until the frosting is soft and spreadable.
Attach desired tip to an icing back. Pipe a good heap of frosting atop each cupcake, swirling and curling and all that shits as you please.