In a mixing bowl, combine wheat flour, semolina, and salt. Rub in the ghee with your fingertips until the mixture looks like coarse crumbs. The flour should clump when pressed—this ensures flakiness.
Add milk gradually to form a stiff, smooth dough. A firm dough prevents soggy, oily shakarpara. Cover and rest for 15–20 minutes.
Divide dough into two balls. Lightly grease your surface or dust with a pinch of flour.
Roll one portion into an even sheet about 1/4 inch (6 mm) thick. Keep thickness uniform so pieces fry evenly.
Use a sharp knife or pizza cutter to slice into 1-inch diamonds or squares.
Heat oil on medium. Test with a small dough piece—it should rise slowly with gentle bubbles. Too hot oil browns the outside and leaves the inside undercooked.
Fry in small batches. Stir occasionally so pieces color evenly. Cook 5–7 minutes per batch until golden and crisp.
Drain on a rack or paper towels. Let them cool completely. Cooling sets the crunch.
In a pan, combine sugar and water. Bring to a simmer and cook until you reach a sticky, one-string consistency. When you pinch a drop between thumb and forefinger and pull apart, it should form a thin string.
Stir in cardamom and saffron. Turn off the heat but keep the syrup warm—it thickens as it cools.
Add cooled, fried shakarpara to the warm syrup. Toss quickly and gently so every piece gets a glossy coat.
Spread on a parchment-lined tray. Separate clumps with a fork while the coating sets. As the syrup crystallizes, you’ll get that classic sugary shell.