Make the dough: In the bowl of a stand mixer whisk together the flour, sugar, salt, and instant yeast. Add the cold water, cold milk, and the 3 tablespoons softened unsalted butter. Mix with the dough hook on speed 2 for 3–4 minutes until a smooth ball forms.
First rise: Cover the bowl with plastic wrap and let the dough rise in a warm place (75–90°F) until nearly doubled, about 1½–2 hours.
Shape and chill dough: Cover a cutting board with plastic wrap and tip the risen dough onto it. Massage or press the dough into a 10½-inch square, cover with plastic, and refrigerate 1–2 hours until firm.
Pound the butter: Cut the 1¼ cups cold butter lengthwise into ½-inch slabs. Arrange on parchment to form a 5-inch square, cover, and roll or pound into a 7½-inch square, trimming and rearranging as needed. Chill until fully cold.
Encase the butter: Place the butter square at a diagonal on the chilled dough so the butter corners point to the middle of each side. Fold the dough over to fully enclose the butter, pressing seams to seal.
Turn 1: On a lightly floured surface, roll the dough into an 8 × 24-inch rectangle, keeping edges straight. Brush off excess flour and fold into thirds like a letter. Freeze 20 minutes or refrigerate 1 hour.
Turn 2: Repeat rolling to 8 × 24 inches in the same direction, brush off excess flour, and fold into thirds. Cover and freeze 20 minutes or refrigerate 1 hour (you may refrigerate overnight here if needed).
Turn 3: Repeat the rolling and folding one more time to create the final fold. Place the dough on a baking sheet, cover tightly with plastic wrap, and refrigerate overnight or up to 2 days (or freeze).
Roll the dough for cutting: Remove the dough and let it warm slightly on a floured counter. Roll into a strip 8 inches wide by 44 inches long, trimming so the final length is 40 inches.
Cut triangles: Mark the top edge at 5-inch intervals (7 marks) and the bottom offset by 2½ inches then every 5 inches (8 marks). Use a ruler and knife or pizza cutter to cut diagonal lines from top marks to bottom marks to form 15 triangles.
Shape croissants: Cut a ½-inch slit at the base of each triangle, gently stretch each triangle to about 10 inches, then roll tightly from base to tip into croissant shapes. Place on two parchment-lined rimmed baking sheets, spacing evenly.
Egg wash and proof: Whisk together 1 whole egg, 1 egg yolk, and a pinch of salt. Brush the croissants with some of the egg wash. Cover and refrigerate any remaining wash. Let croissants proof uncovered at room temperature (70–75°F) about 1–2 hours until noticeably larger but not doubled.
Bake: Brush croissants again with the remaining egg wash. Bake in a 425°F oven on the top and bottom thirds for 10 minutes, rotate pans, then bake another 8–10 minutes until deep golden brown.
Cool: Transfer baked croissants to a wire rack and cool to room temperature before serving.