Preheat oven to 350°F (175°C). Grease three 9-inch round cake pans, line bottoms with parchment paper, and grease again.
In a large bowl, whisk together flour, sugar, baking soda, salt, and cocoa powder for at least 30 seconds until evenly distributed. Set aside.
In another large bowl, whisk together oil, buttermilk, eggs, vanilla, and vinegar. Add purple gel food coloring (and optional red coloring) and whisk until color is completely uniform.
Pour wet ingredients into dry ingredients and mix on low speed until just combined and smooth. Scrape down bowl to ensure everything is incorporated.
Divide batter evenly among prepared pans (about 2 cups per pan). Tap pans gently on counter to release air bubbles.
Bake for 25-28 minutes until toothpick inserted in center comes out with just a few moist crumbs. Cool in pans for 10 minutes, then turn out onto cooling racks and cool completely.
Beat softened cream cheese and butter together for 2-3 minutes until smooth and fluffy. Add vanilla and salt, then gradually add powdered sugar one cup at a time, beating until light and fluffy.
Place first cake layer on serving plate, spread ¾ cup frosting on top. Add second layer, frost, then add third layer. Apply thin crumb coat over entire cake and refrigerate 15-20 minutes.
Apply remaining frosting in a thick layer over top and sides. Smooth with offset spatula and decorate as desired with berries, flowers, or sprinkles.