Rupee gains Rs 2.96 against US dollar