{"id":27076,"date":"2026-08-25T09:09:32","date_gmt":"2026-08-25T03:39:32","guid":{"rendered":"https:\/\/qsh.in\/boards\/wbbse\/?p=27076"},"modified":"2026-08-25T11:03:38","modified_gmt":"2026-08-25T05:33:38","slug":"two-digit-subtraction-with-borrow","status":"publish","type":"post","link":"https:\/\/qsh.in\/boards\/wbbse\/mental-math\/two-digit-subtraction-with-borrow\/","title":{"rendered":"\u09e8-\u0985\u0999\u09cd\u0995\u09c7\u09b0 \u09ac\u09bf\u09af\u09bc\u09cb\u0997 (\u09a7\u09be\u09b0 \u09ac\u09be \u0995\u09cd\u09af\u09be\u09b0\u09bf \u09b8\u09b9): Pragyan Explorer!"},"content":{"rendered":"<p>\u09ae\u09c7\u09a8\u09cd\u099f\u09be\u09b2 \u09ae\u09cd\u09af\u09be\u09a5 \u0995\u09cb\u09b0\u09cd\u09b8\u09c7\u09b0 \u0985\u09b7\u09cd\u099f\u09ae \u09a6\u09bf\u09a8\u09c7 \u09a4\u09cb\u09ae\u09be\u09a6\u09c7\u09b0 \u09b8\u09cd\u09ac\u09be\u0997\u09a4 \u099c\u09be\u09a8\u09be\u0987! \u09ae\u09be\u09a8\u09b8\u09bf\u0995 \u0997\u09a3\u09bf\u09a4\u09c7\u09b0 \u09b8\u09ac\u099a\u09c7\u09af\u09bc\u09c7 \u09ac\u09a1\u09bc \u09ac\u09be\u09a7\u09be \u09b9\u09b2\u09cb <strong>\u2018\u0995\u09cd\u09af\u09be\u09b0\u09bf \u09b8\u09b9 \u09ac\u09bf\u09af\u09bc\u09cb\u0997\u2019 (Subtraction with Borrowing)<\/strong>\u0964 \u09af\u09c7\u09ae\u09a8: \u09ed\u09e8 \u2013 \u09e9\u09ee\u0964 \u0996\u09be\u09a4\u09be\u09af\u09bc \u0995\u09b0\u09be\u09b0 \u09b8\u09ae\u09af\u09bc \u0986\u09ae\u09b0\u09be \u09e8 \u0995\u09c7 \u09e7\u09e8 \u09a7\u09b0\u09c7 \u09a7\u09be\u09b0 \u09a8\u09bf\u09af\u09bc\u09c7 \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09bf, \u0995\u09bf\u09a8\u09cd\u09a4\u09c1 \u09ac\u09cd\u09b0\u09c7\u09a8\u09c7 \u098f\u0987 \u099a\u09bf\u09a4\u09cd\u09b0\u099f\u09bf \u09a7\u09b0\u09c7 \u09b0\u09be\u0996\u09be \u0996\u09c1\u09ac \u0995\u09a0\u09bf\u09a8\u0964<\/p>\n<p>\u09a4\u09be\u0987 \u0986\u099c \u0986\u09ae\u09b0\u09be \u0996\u09be\u09a4\u09be\u09b0 \u09a8\u09bf\u09af\u09bc\u09ae \u09ae\u09a8 \u09a5\u09c7\u0995\u09c7 \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac! \u098f\u0987 \u09aa\u09be\u09a0\u09c7 \u0986\u09ae\u09b0\u09be \u09aa\u09cd\u09b0\u09a5\u09be\u0997\u09a4 \u09a8\u09bf\u09af\u09bc\u09ae \u09a5\u09c7\u0995\u09c7 \u09ac\u09c7\u09b0 \u09b9\u09af\u09bc\u09c7 \u098f\u09b8\u09c7 <strong>\u09b0\u09be\u0989\u09a8\u09cd\u09a1\u09bf\u0982 (Rounding) \u09ac\u09be \u0995\u09cd\u09b7\u09a4\u09bf\u09aa\u09c2\u09b0\u09a3 \u0995\u09cc\u09b6\u09b2\u09c7\u09b0<\/strong> \u09ae\u09be\u09a7\u09cd\u09af\u09ae\u09c7 \u0996\u09c1\u09ac \u09a6\u09cd\u09b0\u09c1\u09a4 \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09a4\u09c7 \u09b6\u09bf\u0996\u09ac\u0964<\/p>\n<h2>\u09ac\u09bf\u09af\u09bc\u09cb\u0997\u0995\u09c7 \u09b8\u09b9\u099c \u0995\u09b0\u09be\u09b0 \u099c\u09be\u09a6\u09c1\u0995\u09b0\u09c0 \u0995\u09cc\u09b6\u09b2<\/h2>\n<h3>\u09e7. \u09b0\u09be\u0989\u09a8\u09cd\u09a1\u09bf\u0982 \u09ac\u09be \u0993\u09ad\u09be\u09b0-\u09b8\u09be\u09ac\u099f\u09cd\u09b0\u09be\u0995\u09b6\u09a8 \u0995\u09cc\u09b6\u09b2 (Rounding Method)<\/h3>\n<p>\u098f\u099f\u09bf \u0995\u09cd\u09af\u09be\u09b0\u09bf \u09b8\u09b9 \u09ac\u09bf\u09af\u09bc\u09cb\u0997\u09c7\u09b0 \u09b8\u09c7\u09b0\u09be \u0995\u09cc\u09b6\u09b2\u0964 \u09af\u09c7 \u09b8\u0982\u0996\u09cd\u09af\u09be\u099f\u09bf \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7, \u09b8\u09c7\u099f\u09bf\u0995\u09c7 \u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0 \u09a6\u09b6\u0995\u09c7\u09b0 \u0998\u09b0\u09c7 \u09a8\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u0993, \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09cb, \u0986\u09b0 \u09af\u09a4\u099f\u09c1\u0995\u09c1 \u09ac\u09c7\u09b6\u09bf \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09c7\u099b\u09cb \u09a4\u09be \u0986\u09ac\u09be\u09b0 \u09af\u09cb\u0997 \u0995\u09b0\u09c7 \u09a6\u09be\u0993\u0964<\/p>\n<p><strong>\u0989\u09a6\u09be\u09b9\u09b0\u09a3: \u09ed\u09e8 \u2013 \u09e9\u09ee = ?<\/strong><\/p>\n<ul>\n<li><strong>\u09a7\u09be\u09aa \u09e7:<\/strong> \u09e9\u09ee \u09b8\u0982\u0996\u09cd\u09af\u09be\u099f\u09bf \u09ea\u09e6-\u098f\u09b0 \u0996\u09c1\u09ac \u0995\u09be\u099b\u09be\u0995\u09be\u099b\u09bf\u0964 \u09a4\u09be\u0987 \u09ae\u09a8\u09c7 \u09ae\u09a8\u09c7 \u09e9\u09ee-\u098f\u09b0 \u099c\u09be\u09af\u09bc\u0997\u09be\u09af\u09bc \u09ea\u09e6 \u09a7\u09b0\u09cb\u0964<\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e8:<\/strong> \u09ed\u09e8 \u09a5\u09c7\u0995\u09c7 \u09ea\u09e6 \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09cb: <strong>\u09ed\u09e8 \u2013 \u09ea\u09e6 = \u09e9\u09e8<\/strong> (\u098f\u099f\u09bf \u09ae\u09c1\u0996\u09c7 \u09ae\u09c1\u0996\u09c7 \u0995\u09b0\u09be \u0996\u09c1\u09ac \u09b8\u09b9\u099c)\u0964<\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e9:<\/strong> \u09af\u09c7\u09b9\u09c7\u09a4\u09c1 \u09a4\u09c1\u09ae\u09bf \u09e9\u09ee-\u098f\u09b0 \u09ac\u09a6\u09b2\u09c7 \u09ea\u09e6 \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09c7\u099b\u09cb (\u0985\u09b0\u09cd\u09a5\u09be\u09ce \u09e8 \u09ac\u09c7\u09b6\u09bf \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09c7 \u09ab\u09c7\u09b2\u09c7\u099b\u09cb), \u09a4\u09be\u0987 \u098f\u09ac\u09be\u09b0 \u09b8\u09c7\u0987 \u09e8 \u09ab\u09c7\u09b0\u09a4 \u09a6\u09be\u0993 \u09ac\u09be \u09af\u09cb\u0997 \u0995\u09b0\u09cb: <strong>\u09e9\u09e8 + \u09e8 = \u09e9\u09ea<\/strong>\u0964<\/li>\n<\/ul>\n<h3>\u09e8. \u09b8\u0982\u0996\u09cd\u09af\u09be \u09ad\u09be\u0999\u09be\u09b0 \u0995\u09cc\u09b6\u09b2 (The Splitting Method)<\/h3>\n<p>\u0986\u0997\u09c7\u09b0 \u09a6\u09bf\u09a8\u09c7 \u09b6\u09c7\u0996\u09be\u09a8\u09cb \u0995\u09cc\u09b6\u09b2\u099f\u09bf \u098f\u0996\u09be\u09a8\u09c7\u0993 \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09be \u09af\u09be\u09af\u09bc, \u09a4\u09ac\u09c7 \u098f\u0996\u09be\u09a8\u09c7 \u09e7\u09e6-\u098f\u09b0 \u098f\u0995\u099f\u09bf \u09ac\u09cd\u09b0\u09bf\u099c \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7\u0964<\/p>\n<p><strong>\u0989\u09a6\u09be\u09b9\u09b0\u09a3: \u09ee\u09e9 \u2013 \u09ea\u09ec = ?<\/strong><\/p>\n<ul>\n<li><strong>\u09a7\u09be\u09aa \u09e7:<\/strong> \u09ea\u09ec \u0995\u09c7 \u09ad\u09c7\u0999\u09c7 \u09ea\u09e6 \u098f\u09ac\u0982 \u09ec \u0995\u09b0\u09cb\u0964<\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e8:<\/strong> \u09aa\u09cd\u09b0\u09a5\u09ae\u09c7 \u09a6\u09b6\u0995 \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09cb: <strong>\u09ee\u09e9 \u2013 \u09ea\u09e6 = \u09ea\u09e9<\/strong>\u0964<\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e9:<\/strong> \u098f\u09ac\u09be\u09b0 \u09ea\u09e9 \u09a5\u09c7\u0995\u09c7 \u09ec \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09cb\u0964 (\u09ea\u09e9 \u2013 \u09e9 = \u09ea\u09e6, \u098f\u09ac\u0982 \u09ea\u09e6 \u2013 \u09e9 = \u09e9\u09ed)\u0964 \u0989\u09a4\u09cd\u09a4\u09b0: <strong>\u09e9\u09ed<\/strong>\u0964<\/li>\n<\/ul>\n<h2>\u09aa\u09cd\u09b0\u09cd\u09af\u09be\u0995\u099f\u09bf\u09b8 \u0997\u09c7\u09ae: Pragyan Lunar Surface Operations<\/h2>\n<p>\u0995\u09cd\u09af\u09be\u09b0\u09bf \u09b8\u09b9 \u09ac\u09bf\u09df\u09cb\u0997\u09c7\u09b0 \u09b8\u09cd\u09aa\u09bf\u09a1 \u09ac\u09be\u09dc\u09be\u09a4\u09c7 \u0986\u099c \u09a4\u09c1\u09ae\u09bf ISRO-\u098f\u09b0 <strong>\u09aa\u09cd\u09b0\u099c\u09cd\u099e\u09be\u09a8 \u09b0\u09cb\u09ad\u09be\u09b0 (Pragyan Rover)<\/strong> \u0995\u09a8\u09cd\u099f\u09cd\u09b0\u09cb\u09b2 \u0995\u09b0\u09c7 \u099a\u09be\u0981\u09a6\u09c7\u09b0 \u09ac\u09c1\u0995\u09c7 \u09b8\u09a4\u09cd\u09af\u09bf\u0995\u09be\u09b0\u09c7\u09b0 \u09ac\u09c8\u099c\u09cd\u099e\u09be\u09a8\u09bf\u0995 \u0985\u09ad\u09bf\u09af\u09be\u09a8 \u099a\u09be\u09b2\u09be\u09ac\u09c7!<\/p>\n<h3>\u0995\u09c0\u09ad\u09be\u09ac\u09c7 \u0996\u09c7\u09b2\u09ac\u09c7?<\/h3>\n<ul>\n<li>\u0997\u09c7\u09ae\u099f\u09bf \u09b6\u09c1\u09b0\u09c1 \u09b9\u09b2\u09c7 \u09a4\u09cb\u09ae\u09be\u09b0 \u09b0\u09cb\u09ad\u09be\u09b0\u099f\u09bf \u09ac\u09bf\u0995\u09cd\u09b0\u09ae \u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09be\u09b0 \u09a5\u09c7\u0995\u09c7 \u09ac\u09c7\u09b0\u09bf\u09df\u09c7 \u099a\u09be\u0981\u09a6\u09c7\u09b0 \u09ae\u09be\u099f\u09bf\u09a4\u09c7 \u099a\u09b2\u09a4\u09c7 \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09ac\u09c7\u0964 \u0986\u0995\u09be\u09b6\u09c7\u09b0 \u09a6\u09bf\u0995\u09c7 \u09a4\u09be\u0995\u09be\u09b2\u09c7 \u09a6\u09c7\u0996\u09a4\u09c7 \u09aa\u09be\u09ac\u09c7 \u0986\u09ae\u09be\u09a6\u09c7\u09b0 \u09a8\u09c0\u09b2 \u0997\u09cd\u09b0\u09b9\u2014 \u09aa\u09c3\u09a5\u09bf\u09ac\u09c0\u0964<\/li>\n<li>\u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09a8\u09c7\u09b0 \u09a1\u09be\u09a8\u09a6\u09bf\u0995\u09c7 <strong>\u2018ISRO NAV-COM\u2019<\/strong> \u09aa\u09cd\u09af\u09be\u09a8\u09c7\u09b2\u09c7 \u098f\u0995\u099f\u09bf \u09e8-\u0985\u0999\u09cd\u0995\u09c7\u09b0 \u0995\u09cd\u09af\u09be\u09b0\u09bf-\u09b8\u09b9 \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u09a6\u09c7\u0993\u09df\u09be \u09a5\u09be\u0995\u09ac\u09c7 (\u09af\u09c7\u09ae\u09a8: \u09ee\u09e7 \u2013 \u09ea\u09ec = ?)\u0964 \u09b8\u09c7\u0996\u09be\u09a8\u09c7 \u09b8\u09be\u09b9\u09be\u09af\u09cd\u09af \u0995\u09b0\u09be\u09b0 \u099c\u09a8\u09cd\u09af \u09b0\u09be\u0989\u09a8\u09cd\u09a1\u09bf\u0982 \u099f\u09cd\u09b0\u09bf\u0995\u099f\u09bf\u0993 \u09b2\u09c7\u0996\u09be \u09a5\u09be\u0995\u09ac\u09c7\u0964<\/li>\n<li>\u09a4\u09cb\u09ae\u09be\u09b0 \u09b8\u09be\u09ae\u09a8\u09c7 \u099a\u09be\u0981\u09a6\u09c7\u09b0 \u09aa\u09be\u09a5\u09b0 (Lunar Rock) \u0986\u09b8\u09a4\u09c7 \u09a5\u09be\u0995\u09ac\u09c7\u0964 <strong>\u09ef \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1\u09c7\u09b0<\/strong> \u09ae\u09a7\u09cd\u09af\u09c7 \u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0\u099f\u09bf \u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8 \u0995\u09b0\u09c7 \u09a8\u09c7\u09ad\u09bf\u0997\u09c7\u09b6\u09a8 \u09a1\u09c7\u099f\u09be \u09b2\u0995 \u0995\u09b0\u09cb\u0964<\/li>\n<li>\u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0 \u09a6\u09bf\u09b2\u09c7 \u09b0\u09cb\u09ad\u09be\u09b0\u099f\u09bf \u09aa\u09be\u09a5\u09b0\u09c7\u09b0 \u0995\u09be\u099b\u09c7 \u0997\u09bf\u09df\u09c7 <strong>\u0995\u09cd\u09af\u09be\u09ae\u09c7\u09b0\u09be \u0993 \u09b2\u09c7\u099c\u09be\u09b0 (LIBS)<\/strong> \u09ab\u09be\u09df\u09be\u09b0 \u0995\u09b0\u09ac\u09c7, \u09b0\u09cb\u09ac\u09cb\u099f\u09bf\u0995 \u09b9\u09be\u09a4 \u09a6\u09bf\u09df\u09c7 <strong>\u09ae\u09be\u099f\u09bf\u09b0 \u09a8\u09ae\u09c1\u09a8\u09be (Soil Sample)<\/strong> \u09b8\u0982\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09ac\u09c7 \u098f\u09ac\u0982 \u09b8\u09be\u09a5\u09c7 \u09b8\u09be\u09a5\u09c7 \u09a4\u09be\u09b0 \u0985\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09c7\u09a8\u09be \u09a6\u09bf\u09df\u09c7 \u09aa\u09c3\u09a5\u09bf\u09ac\u09c0\u09a4\u09c7 ISRO-\u098f\u09b0 \u0995\u09be\u099b\u09c7 <strong>\u09a1\u09c7\u099f\u09be \u099f\u09cd\u09b0\u09be\u09a8\u09cd\u09b8\u09ae\u09bf\u099f<\/strong> \u0995\u09b0\u09ac\u09c7!<\/li>\n<li>\u09b9\u09bf\u09b8\u09be\u09ac \u0995\u09b0\u09a4\u09c7 \u0996\u09c1\u09ac \u09a6\u09c7\u09b0\u09bf \u0995\u09b0\u09b2\u09c7 \u09ac\u09be \u09ad\u09c1\u09b2 \u0989\u09a4\u09cd\u09a4\u09b0 \u09a6\u09bf\u09b2\u09c7 \u09b0\u09cb\u09ad\u09be\u09b0\u099f\u09bf \u09aa\u09be\u09a5\u09b0\u09c7 \u09a7\u09be\u0995\u09cd\u0995\u09be \u0996\u09be\u09ac\u09c7 \u098f\u09ac\u0982 \u09ac\u09cd\u09af\u09be\u099f\u09be\u09b0\u09bf \u0995\u09ae\u09c7 \u09af\u09be\u09ac\u09c7\u0964<\/li>\n<\/ul>\n<p>\u09ac\u09cd\u09af\u09be\u099f\u09be\u09b0\u09bf \u09b6\u09c7\u09b7 \u09b9\u0993\u09df\u09be\u09b0 \u0986\u0997\u09c7\u0987 \u09e7\u09eb\u099f\u09bf \u09b8\u09cd\u09af\u09be\u09ae\u09cd\u09aa\u09b2 \u09b8\u0982\u0997\u09cd\u09b0\u09b9 \u0993 \u09a1\u09c7\u099f\u09be \u099f\u09cd\u09b0\u09be\u09a8\u09cd\u09b8\u09ae\u09bf\u099f \u0995\u09b0\u09c7 \u09a4\u09cb\u09ae\u09be\u09b0 \u09ae\u09bf\u09b6\u09a8\u099f\u09bf \u09b8\u09ab\u09b2 \u0995\u09b0\u09cb\u0964 \u0996\u09be\u09a4\u09be-\u0995\u09b2\u09ae \u09a6\u09c2\u09b0\u09c7 \u09b8\u09b0\u09bf\u09df\u09c7 \u098f\u0996\u09a8\u0987 \u098f\u0995\u09cd\u09b8\u09aa\u09cd\u09b2\u09cb\u09b0\u09c7\u09b6\u09a8 \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09cb!<\/p>\n    <div id=\"qsh-27076-239\" class=\"qsh-sim-frame-wrap\" style=\"--qsh-aspect: 1\/1;\">\n        <div class=\"qsh-sim-bar\">\n            <div class=\"qsh-sim-label\"><span class=\"qsh-dot\"><\/span> Interactive Simulator<\/div>\n            <div class=\"qsh-sim-controls\">\n                <button type=\"button\" class=\"qsh-sim-btn qsh-btn-reload\" onclick=\"document.getElementById('if-qsh-27076-239').srcdoc = document.getElementById('if-qsh-27076-239').srcdoc;\" aria-label=\"Restart\">\n                    <svg viewbox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"currentColor\"><path d=\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"><\/path><\/svg>\n                <\/button>\n                <button type=\"button\" class=\"qsh-sim-btn qsh-btn-fs\" id=\"fs-btn-qsh-27076-239\" aria-label=\"Fullscreen\">\n                    <svg viewbox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"currentColor\"><path d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"><\/path><\/svg>\n                    <span>Expand<\/span>\n                <\/button>\n            <\/div>\n        <\/div>\n        <div class=\"qsh-sim-viewport\">\n            <iframe id=\"if-qsh-27076-239\" srcdoc=\"&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;&lt;base href=&quot;https:\/\/qsh.in\/boards\/wbbse\/&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot;&gt;&lt;style&gt;*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;touch-action:manipulation;background:#0b0f19;color:#f8fafc;font-family:system-ui,-apple-system,sans-serif;}&lt;\/style&gt;&lt;style&gt;:root {\r\n    --bg-space: #020617;\r\n    --navy-glass: rgba(15, 23, 42, 0.85);\r\n    --border-cyan: rgba(56, 189, 248, 0.4);\r\n    --primary-cyan: #38bdf8;\r\n    --isro-orange: #f97316;\r\n    --signal-green: #22c55e;\r\n    --danger-red: #ef4444;\r\n    --text-pure: #f8fafc;\r\n    --text-muted: #94a3b8;\r\n    --font-stem: &quot;Exo 2&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif;\r\n}\r\n\r\n#sim-root * {\r\n    box-sizing: border-box;\r\n    margin: 0;\r\n    padding: 0;\r\n    user-select: none;\r\n    -webkit-user-select: none;\r\n}\r\n\r\n#sim-root {\r\n    position: relative;\r\n    width: 100%;\r\n    max-width: 850px;\r\n    height: 85vh;\r\n    height: 85dvh;\r\n    min-height: 600px;\r\n    max-height: 940px;\r\n    margin: 0.5rem auto;\r\n    background-color: var(--bg-space);\r\n    overflow: hidden;\r\n    touch-action: manipulation;\r\n    -webkit-tap-highlight-color: transparent;\r\n    font-family: var(--font-stem);\r\n    border-radius: 18px;\r\n    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(56, 189, 248, 0.2);\r\n    display: flex;\r\n    flex-direction: column;\r\n}\r\n\r\n\/* Deep Space Backdrop *\/\r\n#lunar-sky {\r\n    position: absolute;\r\n    inset: 0;\r\n    z-index: 0;\r\n    overflow: hidden;\r\n    background: radial-gradient(circle at top right, #0f172a 0%, #020617 100%);\r\n}\r\n.stars-layer {\r\n    position: absolute;\r\n    width: 200%;\r\n    height: 200%;\r\n    background-repeat: repeat;\r\n}\r\n.stars-far {\r\n    background-image: radial-gradient(1px 1px at 20px 30px, #ffffff, rgba(0,0,0,0)),\r\n                      radial-gradient(1.5px 1.5px at 80px 120px, #cbd5e1, rgba(0,0,0,0));\r\n    background-size: 150px 150px;\r\n    opacity: 0.6;\r\n    animation: driftStars 150s linear infinite;\r\n}\r\n.stars-near {\r\n    background-image: radial-gradient(2px 2px at 40px 140px, #38bdf8, rgba(0,0,0,0));\r\n    background-size: 250px 250px;\r\n    opacity: 0.8;\r\n    animation: driftStars 80s linear infinite;\r\n}\r\n@keyframes driftStars {\r\n    from { transform: translateY(0) translateX(0); }\r\n    to { transform: translateY(-50px) translateX(-50px); }\r\n}\r\n\r\n\/* Earth on the Horizon (Target for Radio Waves) *\/\r\n.earth-horizon {\r\n    position: absolute;\r\n    top: 5%;\r\n    right: 5%;\r\n    width: 140px;\r\n    height: 140px;\r\n    border-radius: 50%;\r\n    background: radial-gradient(circle at 30% 30%, #0ea5e9 0%, #1e3a8a 60%, #020617 100%);\r\n    box-shadow: 0 0 40px rgba(14,165,233,0.4), inset -10px -10px 20px rgba(0,0,0,0.8);\r\n    opacity: 0.9;\r\n    z-index: 1;\r\n}\r\n.earth-clouds {\r\n    position: absolute; width: 200%; height: 200%; top: -50%; left: -50%;\r\n    background-image: radial-gradient(rgba(255,255,255,0.4) 10%, transparent 40%), radial-gradient(rgba(255,255,255,0.3) 15%, transparent 50%);\r\n    background-size: 80px 80px, 120px 120px; filter: blur(3px); animation: spin-clouds 60s linear infinite;\r\n}\r\n@keyframes spin-clouds { 100% { transform: rotate(360deg); } }\r\n\r\n.earth-horizon::after {\r\n    content: ''; position: absolute; top: 20%; left: 15%; width: 45%; height: 35%;\r\n    background: #4ade80; border-radius: 40%; filter: blur(5px); opacity: 0.7;\r\n}\r\n\r\n#earth-ground-station {\r\n    position: absolute;\r\n    top: 50%; left: 50%; transform: translate(-50%, -50%);\r\n    width: 10px; height: 10px; border-radius: 50%;\r\n    background: #4ade80; box-shadow: 0 0 30px #4ade80, 0 0 60px #22c55e;\r\n    opacity: 0; transition: opacity 0.3s; z-index: 5;\r\n}\r\n.receiving-data { animation: pulse-receive 1s infinite alternate; }\r\n@keyframes pulse-receive { 0% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); } 100% { opacity: 1; transform: translate(-50%, -50%) scale(2.5); } }\r\n\r\n\/* 3D Lunar Surface Viewport *\/\r\n#scene-viewport { flex: 1 1 auto; position: relative; width: 100%; z-index: 1; perspective: 800px; overflow: hidden;}\r\n#lunar-canvas { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 10; pointer-events: none; }\r\n\r\n\/* Glassmorphism Panel *\/\r\n.glass-panel { background: rgba(15, 23, 42, 0.85); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid var(--border-cyan); box-shadow: 0 12px 35px rgba(0, 0, 0, 0.7); }\r\n\r\n\/* ISRO Command Panel (Top Left) Always Visible *\/\r\n#navcom-dock {\r\n    position: absolute; top: 6%; left: 4%;\r\n    border-radius: 14px; padding: 1rem 1.2rem;\r\n    z-index: 20; text-align: center; width: auto; min-width: 240px;\r\n    border-left: 4px solid var(--isro-orange);\r\n}\r\n.navcom-header {\r\n    display: flex; align-items: center; justify-content: center; gap: 8px;\r\n    font-size: 0.75rem; font-weight: 800; letter-spacing: 1px; color: var(--text-muted); margin-bottom: 0.5rem;\r\n}\r\n.status-blip {\r\n    width: 8px; height: 8px; border-radius: 50%; background-color: var(--signal-green);\r\n    box-shadow: 0 0 8px var(--signal-green); animation: blip 1.5s infinite alternate;\r\n}\r\n@keyframes blip { 0% { opacity: 0.4; } 100% { opacity: 1; } }\r\n\r\n#math-display { \r\n    display: flex; align-items: center; justify-content: center; gap: 10px;\r\n    font-size: clamp(2.6rem, 6vw, 3.6rem); font-weight: 900; color: var(--text-pure); \r\n    font-family: ui-monospace, monospace; text-shadow: 0 0 15px rgba(248,250,252,0.4);\r\n}\r\n.glow-text { color: var(--text-pure); text-shadow: 0 0 20px var(--primary-cyan); }\r\n.calc-op { color: var(--isro-orange); font-size: clamp(2.2rem, 5vw, 3rem); }\r\n.calc-target { color: var(--primary-cyan); animation: targetPulse 1s infinite alternate; }\r\n@keyframes targetPulse { 0% { opacity: 0.7; transform: scale(0.96); } 100% { opacity: 1; transform: scale(1.05); } }\r\n\r\n\/* Pedagogical Hint Text *\/\r\n.pedagogy-hint {\r\n    font-size: 1rem; color: #fde047; font-weight: 800; margin-top: 5px;\r\n    padding: 6px 12px; background: rgba(202, 138, 4, 0.2); border-radius: 8px;\r\n    display: inline-block; animation: hint-pulse 2s infinite alternate; letter-spacing: 1px;\r\n}\r\n@keyframes hint-pulse { 0% { opacity: 0.7; } 100% { opacity: 1; text-shadow: 0 0 8px #fde047; } }\r\n\r\n\/* Dynamic Timer Bar *\/\r\n.countdown-bar-frame { width: 100%; height: 8px; background: rgba(0, 0, 0, 0.8); border-radius: 4px; margin-top: 15px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.2); }\r\n#countdown-progress { height: 100%; width: 100%; background: var(--signal-green); box-shadow: 0 0 8px var(--signal-green); transition: width 0.1s linear, background-color 0.3s; }\r\n\r\n\/* Pragyan Rover Animation *\/\r\n#rover-container {\r\n    position: absolute; bottom: 8%; left: 50%;\r\n    width: clamp(160px, 40vw, 240px); transform: translateX(-50%); z-index: 15;\r\n    transform-origin: bottom center;\r\n}\r\n.rover-idle { transform: translateY(0); }\r\n.rover-drive { animation: rover-bump 0.3s infinite alternate linear; }\r\n@keyframes rover-bump { 0% { transform: translateY(0); } 100% { transform: translateY(-4px); } }\r\n\r\n.wheel-hub { transform-origin: center; }\r\n.rover-drive .wheel-hub { animation: spin-wheel 1s infinite linear; }\r\n@keyframes spin-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\r\n\r\n\/* Scanner Pulses *\/\r\n.laser-lens { animation: lens-pulse 0.5s infinite alternate; }\r\n@keyframes lens-pulse { 0% { fill: #0284c7; } 100% { fill: #38bdf8; filter: drop-shadow(0 0 8px #38bdf8); } }\r\n#antenna-bulb.transmit { animation: transmit-pulse 0.2s infinite alternate; fill: #facc15; filter: drop-shadow(0 0 10px #fde047);}\r\n@keyframes transmit-pulse { 0% { transform: scale(1); } 100% { transform: scale(1.6); } }\r\n\r\n\/* APXS Arm Animation on Correct Answer *\/\r\n#apxs-arm-group { transform-origin: 60px 100px; transition: transform 0.6s ease-in-out; }\r\n.apxs-scan { transform: rotate(-40deg); }\r\n.apxs-scan #apxs-sensor { filter: drop-shadow(0 0 20px #ef4444); fill: #f87171; }\r\n\r\n.rover-crash { animation: r-crash 0.5s ease-in-out; filter: sepia(1) hue-rotate(-50deg) saturate(3); }\r\n@keyframes r-crash { 0%, 100% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(calc(-50% - 15px)) rotate(-5deg); } 75% { transform: translateX(calc(-50% + 15px)) rotate(5deg); } }\r\n\r\n\/* Dust Trail *\/\r\n#rover-dust-trail { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 80%; height: 20px; background: radial-gradient(ellipse, rgba(148,163,184,0.4) 0%, transparent 70%); filter: blur(4px); animation: dust-plume 0.5s infinite alternate; z-index: -1;}\r\n@keyframes dust-plume { 0% { opacity: 0.6; transform: translateX(-50%) scale(1); } 100% { opacity: 0.9; transform: translateX(-50%) scale(1.2); } }\r\n\r\n\/* Tractor Beam (Collection Effect) *\/\r\n#tractor-beam {\r\n    position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%);\r\n    width: 80px; height: 0; background: linear-gradient(to top, rgba(56,189,248,0.7), transparent);\r\n    clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);\r\n    z-index: 12; opacity: 0; transform-origin: bottom center;\r\n}\r\n.beam-active { animation: suck-mineral 1s ease-out; }\r\n@keyframes suck-mineral { 0% { height: 0; opacity: 1; } 40% { height: 180px; opacity: 1; } 100% { height: 180px; opacity: 0; } }\r\n\r\n\/* Hit Flash Layer *\/\r\n#collision-flash { position: absolute; inset: 0; background: #ef4444; opacity: 0; z-index: 25; pointer-events: none; transition: opacity 0.1s; }\r\n.flash-active { opacity: 0.3 !important; }\r\n\r\n\/* HUD Header Deck *\/\r\n#hud-deck {\r\n    position: relative; z-index: 20; padding: 0.8rem 1rem;\r\n    display: flex; justify-content: space-between; align-items: flex-start;\r\n    background: linear-gradient(180deg, rgba(2, 6, 23, 0.95) 0%, transparent 100%); pointer-events: none;\r\n}\r\n.telemetry-card { display: flex; flex-direction: column; align-items: flex-start; }\r\n.center-card { flex: 1; max-width: 320px; margin: 0 1rem; align-items: center; }\r\n.align-right { align-items: flex-end; }\r\n.hud-tag { font-size: 0.7rem; letter-spacing: 1px; font-weight: 800; color: var(--text-muted); margin-bottom: 4px; text-shadow: 0 1px 2px #000; }\r\n.hud-val { font-size: 1.2rem; font-weight: 900; letter-spacing: 0.5px; }\r\n.text-cyan { color: var(--primary-cyan); text-shadow: 0 0 10px rgba(56,189,248,0.5); }\r\n\r\n\/* Progress Bar *\/\r\n.progress-bar-wrapper { display: flex; align-items: center; justify-content: center; width: 100%; }\r\n.progress-bar-bg { width: 100%; max-width: 250px; height: 16px; background: rgba(0,0,0,0.6); border: 2px solid #64748b; border-radius: 8px; overflow: hidden; }\r\n.progress-bar-fill { height: 100%; width: 0%; background: linear-gradient(90deg, #38bdf8, #818cf8); box-shadow: inset 0 2px 5px rgba(255,255,255,0.3); transition: width 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); }\r\n\r\n#health-grid { display: flex; gap: 4px; font-size: 1.2rem; filter: drop-shadow(0 0 5px var(--signal-green)); }\r\n.sig-node { opacity: 0.2; filter: grayscale(1); transition: all 0.3s; }\r\n.sig-node.active { opacity: 1; filter: grayscale(0); }\r\n\r\n\/* Control Dock *\/\r\n#control-dock {\r\n    position: relative; z-index: 20; width: 100%; margin-top: auto;\r\n    padding: 1rem 1rem calc(1.2rem + env(safe-area-inset-bottom, 12px));\r\n    background: linear-gradient(0deg, rgba(2,6,23,0.98) 60%, rgba(2,6,23,0.7) 100%);\r\n    border-top: 2px solid var(--border-cyan); display: flex; flex-direction: column; align-items: center;\r\n}\r\n.dock-caption { font-size: 0.85rem; font-weight: 800; color: #cbd5e1; letter-spacing: 0.5px; margin-bottom: 1rem; text-shadow: 0 1px 2px #000; }\r\n.keypad-grid { display: flex; justify-content: center; gap: 1.5rem; width: 100%; max-width: 500px; }\r\n.nav-key {\r\n    flex: 1; aspect-ratio: 1.3\/1; max-width: 130px;\r\n    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);\r\n    border: 2px solid #38bdf8; border-radius: 12px; color: var(--text-pure);\r\n    cursor: pointer; box-shadow: 0 6px 0 #0284c7, 0 12px 20px rgba(0, 0, 0, 0.6), inset 2px 2px 8px rgba(255,255,255,0.1);\r\n    display: flex; justify-content: center; align-items: center; transition: all 0.1s ease;\r\n}\r\n.key-val { font-size: clamp(2.4rem, 6vw, 3.2rem); font-weight: 900; font-family: ui-monospace, monospace; text-shadow: 0 3px 6px rgba(0,0,0,0.8); pointer-events: none;}\r\n.nav-key:active { transform: translateY(6px); box-shadow: 0 0 0 #0284c7; border-color: var(--primary-cyan); }\r\n.nav-key.key-correct { border-color: var(--signal-green) !important; background: linear-gradient(135deg, #059669, #14532d) !important; box-shadow: 0 0 25px var(--signal-green) !important; }\r\n.nav-key.key-wrong { border-color: var(--danger-red) !important; background: linear-gradient(135deg, #991b1b, #450a0a) !important; box-shadow: 0 0 25px var(--danger-red) !important; }\r\n\r\n\/* Floating HUD Text *\/\r\n#feedback-layer { position: absolute; inset: 0; pointer-events: none; z-index: 40; }\r\n.float-msg { position: absolute; left: 50%; top: 48%; transform: translate(-50%, -50%); font-size: 2.2rem; font-weight: 900; text-align: center; animation: msgFloat 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards; }\r\n@keyframes msgFloat { 0% { opacity: 0; transform: translate(-50%, 0) scale(0.8); } 20% { opacity: 1; transform: translate(-50%, -20px) scale(1.2); } 100% { opacity: 0; transform: translate(-50%, -100px) scale(1); } }\r\n\r\n\/* Modals *\/\r\n.modal-veil { position: absolute; inset: 0; background: rgba(2, 6, 23, 0.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); z-index: 100; display: flex; justify-content: center; align-items: center; padding: 1.5rem; }\r\n.modal-veil.hidden { display: none; }\r\n.modal-card { background: var(--navy-glass); border: 2px solid var(--border-cyan); border-radius: 20px; padding: 2.5rem 1.8rem; text-align: center; max-width: 480px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.9); }\r\n.modal-badge { display: inline-block; padding: 6px 14px; background: rgba(249, 115, 22, 0.2); border: 1px solid var(--isro-orange); color: var(--isro-orange); border-radius: 999px; font-size: 0.8rem; font-weight: 900; letter-spacing: 1px; margin-bottom: 1.2rem; }\r\n.modal-title-text { font-size: 2.6rem; font-weight: 900; color: var(--text-pure); margin-bottom: 1.2rem; letter-spacing: 1px; text-shadow: 0 0 15px rgba(56,189,248,0.5);}\r\n.modal-desc-text { font-size: 1.05rem; line-height: 1.6; color: var(--text-muted); margin-bottom: 2.5rem; }\r\n.launch-btn { background: linear-gradient(135deg, #f97316 0%, #c2410c 100%); border: 3px solid #fdba74; border-radius: 999px; color: #ffffff; font-size: 1.4rem; font-weight: 900; letter-spacing: 1px; padding: 1.2rem 3rem; cursor: pointer; box-shadow: 0 8px 0 #7c2d12, 0 15px 30px rgba(249, 115, 22, 0.5); transition: all 0.1s ease; }\r\n.launch-btn:active { transform: translateY(8px); box-shadow: 0 0 0 #7c2d12; }\r\n.start-pulse { animation: pulse-btn 1.5s infinite; }\r\n@keyframes pulse-btn { 0% { transform: scale(1); } 50% { transform: scale(1.05); box-shadow: 0 8px 0 #7c2d12, 0 25px 40px rgba(249, 115, 22, 0.7); } 100% { transform: scale(1); } }&lt;\/style&gt;&lt;\/head&gt;&lt;body&gt;&lt;div id=&quot;sim-root&quot; data-phase=&quot;1&quot;&gt;\r\n    <!-- Lunar Sky Background -->\r\n    &lt;div id=&quot;lunar-sky&quot;&gt;\r\n        &lt;div class=&quot;stars-layer stars-far&quot;&gt;&lt;\/div&gt;\r\n        &lt;div class=&quot;stars-layer stars-near&quot;&gt;&lt;\/div&gt;\r\n        <!-- Distant Earth in the lunar sky -->\r\n        &lt;div class=&quot;earth-horizon&quot;&gt;\r\n            &lt;div class=&quot;earth-clouds&quot;&gt;&lt;\/div&gt;\r\n            <!-- Signal Receiver Glow on Earth -->\r\n            &lt;div id=&quot;earth-ground-station&quot;&gt;&lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n\r\n    <!-- 3D Game Viewport -->\r\n    &lt;div id=&quot;scene-viewport&quot;&gt;\r\n        <!-- Canvas Environment (Rugged Surface Line, Rocks, Minerals, Lasers, Radio Waves) -->\r\n        &lt;canvas id=&quot;lunar-canvas&quot;&gt;&lt;\/canvas&gt;\r\n\r\n        <!-- Pragyan Rover Vector Rig -->\r\n        &lt;div id=&quot;rover-container&quot;&gt;\r\n            <!-- Soil Extraction Beam -->\r\n            &lt;div id=&quot;tractor-beam&quot;&gt;&lt;\/div&gt;\r\n            \r\n            &lt;svg id=&quot;pragyan-rover&quot; viewBox=&quot;0 0 240 180&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;\r\n                &lt;defs&gt;\r\n                    &lt;linearGradient id=&quot;goldFoil&quot; x1=&quot;0%&quot; y1=&quot;0%&quot; x2=&quot;100%&quot; y2=&quot;100%&quot;&gt;\r\n                        &lt;stop offset=&quot;0%&quot; stop-color=&quot;#fef08a&quot; \/&gt;\r\n                        &lt;stop offset=&quot;40%&quot; stop-color=&quot;#f59e0b&quot; \/&gt;\r\n                        &lt;stop offset=&quot;100%&quot; stop-color=&quot;#b45309&quot; \/&gt;\r\n                    &lt;\/linearGradient&gt;\r\n                    &lt;filter id=&quot;roverShadow&quot;&gt;\r\n                        &lt;feDropShadow dx=&quot;0&quot; dy=&quot;10&quot; stdDeviation=&quot;5&quot; flood-opacity=&quot;0.7&quot;\/&gt;\r\n                    &lt;\/filter&gt;\r\n                &lt;\/defs&gt;\r\n\r\n                <!-- Ground Shadow -->\r\n                &lt;ellipse cx=&quot;120&quot; cy=&quot;165&quot; rx=&quot;80&quot; ry=&quot;12&quot; fill=&quot;rgba(0,0,0,0.6)&quot; filter=&quot;blur(3px)&quot;\/&gt;\r\n\r\n                &lt;g id=&quot;rover-animated-group&quot; class=&quot;rover-idle&quot; filter=&quot;url(#roverShadow)&quot;&gt;\r\n                    <!-- Vertical Solar Array Panel -->\r\n                    &lt;rect x=&quot;70&quot; y=&quot;10&quot; width=&quot;50&quot; height=&quot;80&quot; fill=&quot;#0f172a&quot; stroke=&quot;#b45309&quot; stroke-width=&quot;3&quot;\/&gt;\r\n                    &lt;line x1=&quot;82.5&quot; y1=&quot;10&quot; x2=&quot;82.5&quot; y2=&quot;90&quot; stroke=&quot;#334155&quot; stroke-width=&quot;1&quot;\/&gt;\r\n                    &lt;line x1=&quot;95&quot; y1=&quot;10&quot; x2=&quot;95&quot; y2=&quot;90&quot; stroke=&quot;#334155&quot; stroke-width=&quot;1&quot;\/&gt;\r\n                    &lt;line x1=&quot;107.5&quot; y1=&quot;10&quot; x2=&quot;107.5&quot; y2=&quot;90&quot; stroke=&quot;#334155&quot; stroke-width=&quot;1&quot;\/&gt;\r\n                    &lt;line x1=&quot;70&quot; y1=&quot;36&quot; x2=&quot;120&quot; y2=&quot;36&quot; stroke=&quot;#334155&quot; stroke-width=&quot;1&quot;\/&gt;\r\n                    &lt;line x1=&quot;70&quot; y1=&quot;62&quot; x2=&quot;120&quot; y2=&quot;62&quot; stroke=&quot;#334155&quot; stroke-width=&quot;1&quot;\/&gt;\r\n\r\n                    <!-- Main Chassis -->\r\n                    &lt;rect x=&quot;40&quot; y=&quot;85&quot; width=&quot;140&quot; height=&quot;35&quot; fill=&quot;url(#goldFoil)&quot; stroke=&quot;#78350f&quot; stroke-width=&quot;2&quot;\/&gt;\r\n                    &lt;rect x=&quot;40&quot; y=&quot;90&quot; width=&quot;140&quot; height=&quot;5&quot; fill=&quot;#fde047&quot; opacity=&quot;0.4&quot;\/&gt;\r\n                    \r\n                    <!-- ISRO Tricolor -->\r\n                    &lt;rect x=&quot;150&quot; y=&quot;95&quot; width=&quot;20&quot; height=&quot;6&quot; fill=&quot;#f97316&quot;\/&gt;\r\n                    &lt;rect x=&quot;150&quot; y=&quot;101&quot; width=&quot;20&quot; height=&quot;6&quot; fill=&quot;#ffffff&quot;\/&gt;\r\n                    &lt;circle cx=&quot;160&quot; cy=&quot;104&quot; r=&quot;2.5&quot; fill=&quot;#1e3a8a&quot;\/&gt;\r\n                    &lt;rect x=&quot;150&quot; y=&quot;107&quot; width=&quot;20&quot; height=&quot;6&quot; fill=&quot;#16a34a&quot;\/&gt;\r\n\r\n                    <!-- Communication Antenna -->\r\n                    &lt;g id=&quot;comm-antenna&quot;&gt;\r\n                        &lt;line x1=&quot;50&quot; y1=&quot;85&quot; x2=&quot;40&quot; y2=&quot;40&quot; stroke=&quot;#cbd5e1&quot; stroke-width=&quot;3&quot; stroke-linecap=&quot;round&quot;\/&gt;\r\n                        &lt;circle cx=&quot;40&quot; cy=&quot;40&quot; r=&quot;5&quot; fill=&quot;#e2e8f0&quot;\/&gt;\r\n                        &lt;circle cx=&quot;40&quot; cy=&quot;40&quot; r=&quot;3&quot; fill=&quot;#38bdf8&quot; id=&quot;antenna-bulb&quot;\/&gt;\r\n                    &lt;\/g&gt;\r\n\r\n                    <!-- LIBS Laser Instrument -->\r\n                    &lt;rect x=&quot;150&quot; y=&quot;70&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;#475569&quot; rx=&quot;2&quot;\/&gt;\r\n                    &lt;circle cx=&quot;160&quot; cy=&quot;77&quot; r=&quot;4&quot; fill=&quot;#38bdf8&quot; class=&quot;laser-lens&quot;\/&gt;\r\n                    &lt;rect x=&quot;165&quot; y=&quot;95&quot; width=&quot;10&quot; height=&quot;15&quot; fill=&quot;#334155&quot; rx=&quot;1&quot;\/&gt;\r\n\r\n                    <!-- Alpha Particle X-ray Spectrometer (APXS) Arm -->\r\n                    &lt;g id=&quot;apxs-arm-group&quot;&gt;\r\n                        &lt;path id=&quot;apxs-arm&quot; d=&quot;M 60 100 L 20 110 L 25 130&quot; fill=&quot;none&quot; stroke=&quot;#64748b&quot; stroke-width=&quot;6&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;\/&gt;\r\n                        &lt;circle cx=&quot;25&quot; cy=&quot;130&quot; r=&quot;8&quot; fill=&quot;#ef4444&quot; id=&quot;apxs-sensor&quot;\/&gt;\r\n                    &lt;\/g&gt;\r\n\r\n                    <!-- Rocker-Bogie Suspension -->\r\n                    &lt;path d=&quot;M 60 120 L 45 150 M 110 120 L 110 150 M 160 120 L 175 150&quot; stroke=&quot;#1e293b&quot; stroke-width=&quot;8&quot; stroke-linecap=&quot;round&quot;\/&gt;\r\n                    &lt;path d=&quot;M 45 150 L 110 150 L 175 150&quot; stroke=&quot;#334155&quot; stroke-width=&quot;6&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;\/&gt;\r\n                    \r\n                    <!-- Solid Wheels -->\r\n                    &lt;circle cx=&quot;45&quot; cy=&quot;150&quot; r=&quot;18&quot; fill=&quot;#cbd5e1&quot; stroke=&quot;#475569&quot; stroke-width=&quot;4&quot;\/&gt;\r\n                    &lt;circle cx=&quot;45&quot; cy=&quot;150&quot; r=&quot;12&quot; fill=&quot;#0f172a&quot;\/&gt;\r\n                    &lt;circle cx=&quot;110&quot; cy=&quot;150&quot; r=&quot;18&quot; fill=&quot;#cbd5e1&quot; stroke=&quot;#475569&quot; stroke-width=&quot;4&quot;\/&gt;\r\n                    &lt;circle cx=&quot;110&quot; cy=&quot;150&quot; r=&quot;12&quot; fill=&quot;#0f172a&quot;\/&gt;\r\n                    &lt;circle cx=&quot;175&quot; cy=&quot;150&quot; r=&quot;18&quot; fill=&quot;#cbd5e1&quot; stroke=&quot;#475569&quot; stroke-width=&quot;4&quot;\/&gt;\r\n                    &lt;circle cx=&quot;175&quot; cy=&quot;150&quot; r=&quot;12&quot; fill=&quot;#0f172a&quot;\/&gt;\r\n                    \r\n                    <!-- Wheel Hubs\/Spokes -->\r\n                    &lt;g class=&quot;wheel-hub&quot;&gt;\r\n                        &lt;line x1=&quot;45&quot; y1=&quot;138&quot; x2=&quot;45&quot; y2=&quot;162&quot; stroke=&quot;#94a3b8&quot; stroke-width=&quot;3&quot;\/&gt;\r\n                        &lt;line x1=&quot;33&quot; y1=&quot;150&quot; x2=&quot;57&quot; y2=&quot;150&quot; stroke=&quot;#94a3b8&quot; stroke-width=&quot;3&quot;\/&gt;\r\n                        &lt;circle cx=&quot;45&quot; cy=&quot;150&quot; r=&quot;4&quot; fill=&quot;#f59e0b&quot;\/&gt;\r\n                    &lt;\/g&gt;\r\n                    &lt;g class=&quot;wheel-hub&quot;&gt;\r\n                        &lt;line x1=&quot;110&quot; y1=&quot;138&quot; x2=&quot;110&quot; y2=&quot;162&quot; stroke=&quot;#94a3b8&quot; stroke-width=&quot;3&quot;\/&gt;\r\n                        &lt;line x1=&quot;98&quot; y1=&quot;150&quot; x2=&quot;122&quot; y2=&quot;150&quot; stroke=&quot;#94a3b8&quot; stroke-width=&quot;3&quot;\/&gt;\r\n                        &lt;circle cx=&quot;110&quot; cy=&quot;150&quot; r=&quot;4&quot; fill=&quot;#f59e0b&quot;\/&gt;\r\n                    &lt;\/g&gt;\r\n                    &lt;g class=&quot;wheel-hub&quot;&gt;\r\n                        &lt;line x1=&quot;175&quot; y1=&quot;138&quot; x2=&quot;175&quot; y2=&quot;162&quot; stroke=&quot;#94a3b8&quot; stroke-width=&quot;3&quot;\/&gt;\r\n                        &lt;line x1=&quot;163&quot; y1=&quot;150&quot; x2=&quot;187&quot; y2=&quot;150&quot; stroke=&quot;#94a3b8&quot; stroke-width=&quot;3&quot;\/&gt;\r\n                        &lt;circle cx=&quot;175&quot; cy=&quot;150&quot; r=&quot;4&quot; fill=&quot;#f59e0b&quot;\/&gt;\r\n                    &lt;\/g&gt;\r\n                &lt;\/g&gt;\r\n            &lt;\/svg&gt;\r\n        &lt;\/div&gt;\r\n\r\n        <!-- High-Tech ISRO Command Panel (Always Visible) -->\r\n        &lt;aside id=&quot;navcom-dock&quot; class=&quot;glass-panel&quot;&gt;\r\n            &lt;div class=&quot;navcom-header&quot;&gt;\r\n                &lt;div class=&quot;status-blip&quot;&gt;&lt;\/div&gt;\r\n                &lt;span&gt;ISRO LUNAR OPERATIONS&lt;\/span&gt;\r\n            &lt;\/div&gt;\r\n            \r\n            &lt;div id=&quot;math-display&quot;&gt;\r\n                &lt;span id=&quot;num-a&quot; class=&quot;calc-text&quot;&gt;\u09e6\u09e6&lt;\/span&gt;\r\n                &lt;span class=&quot;calc-op&quot;&gt;\u2212&lt;\/span&gt;\r\n                &lt;span id=&quot;num-b&quot; class=&quot;calc-text&quot;&gt;\u09e6\u09e6&lt;\/span&gt;\r\n                &lt;span class=&quot;calc-op&quot;&gt;=&lt;\/span&gt;\r\n                &lt;span id=&quot;calc-unknown&quot; class=&quot;calc-target&quot;&gt;?&lt;\/span&gt;\r\n            &lt;\/div&gt;\r\n            <!-- Pedagogical Hint Area (Rounding Technique) -->\r\n            &lt;div id=&quot;math-hint&quot; class=&quot;pedagogy-hint&quot;&gt;\u099f\u09cd\u09b0\u09bf\u0995: \u09e6 - \u09e6 + \u09e6&lt;\/div&gt;\r\n            <!-- Dynamic Timer Bar -->\r\n            &lt;div class=&quot;countdown-bar-frame&quot;&gt;\r\n                &lt;div id=&quot;countdown-progress&quot;&gt;&lt;\/div&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/aside&gt;\r\n\r\n        <!-- Screen Hit Flash -->\r\n        &lt;div id=&quot;collision-flash&quot;&gt;&lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n\r\n    <!-- HUD (Heads Up Display) -->\r\n    &lt;header id=&quot;hud-deck&quot;&gt;\r\n        &lt;div class=&quot;telemetry-card&quot;&gt;\r\n            &lt;span class=&quot;hud-tag&quot;&gt;\u09b0\u09cb\u09ad\u09be\u09b0 \u09b8\u09cd\u099f\u09cd\u09af\u09be\u099f\u09be\u09b8&lt;\/span&gt;\r\n            &lt;span class=&quot;hud-val text-cyan&quot; id=&quot;disp-phase&quot;&gt;\u098f\u0997\u09bf\u09df\u09c7 \u09af\u09be\u099a\u09cd\u099b\u09c7...&lt;\/span&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div class=&quot;telemetry-card center-card&quot;&gt;\r\n            &lt;span class=&quot;hud-tag&quot;&gt;\u0996\u09a8\u09bf\u099c \u09b8\u0982\u0997\u09cd\u09b0\u09b9 (DATA SAMPLES)&lt;\/span&gt;\r\n            &lt;div class=&quot;progress-bar-wrapper&quot;&gt;\r\n                &lt;div class=&quot;progress-bar-bg&quot;&gt;\r\n                    &lt;div class=&quot;progress-bar-fill&quot; id=&quot;progress-bar&quot;&gt;&lt;\/div&gt;\r\n                &lt;\/div&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div class=&quot;telemetry-card align-right&quot;&gt;\r\n            &lt;span class=&quot;hud-tag&quot;&gt;\u09ac\u09cd\u09af\u09be\u099f\u09be\u09b0\u09bf (POWER)&lt;\/span&gt;\r\n            &lt;div id=&quot;health-grid&quot;&gt;\r\n                &lt;span class=&quot;sig-node active&quot;&gt;\ud83d\udd0b&lt;\/span&gt;\r\n                &lt;span class=&quot;sig-node active&quot;&gt;\ud83d\udd0b&lt;\/span&gt;\r\n                &lt;span class=&quot;sig-node active&quot;&gt;\ud83d\udd0b&lt;\/span&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/header&gt;\r\n\r\n    <!-- Floating Text Feedback Layer -->\r\n    &lt;div id=&quot;feedback-layer&quot;&gt;&lt;\/div&gt;\r\n\r\n    <!-- Thumb Zone Interaction Controls -->\r\n    &lt;footer id=&quot;control-dock&quot;&gt;\r\n        &lt;div class=&quot;dock-caption&quot;&gt;\u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0 \u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8 \u0995\u09b0\u09c7 \u09aa\u09be\u09a5\u09b0 \u09b8\u09cd\u0995\u09cd\u09af\u09be\u09a8 \u0995\u09b0\u09cb:&lt;\/div&gt;\r\n        &lt;div class=&quot;keypad-grid&quot;&gt;\r\n            &lt;button class=&quot;nav-key&quot; id=&quot;key-0&quot; data-idx=&quot;0&quot;&gt;\r\n                &lt;span class=&quot;key-val&quot;&gt;\u09e6\u09e6&lt;\/span&gt;\r\n            &lt;\/button&gt;\r\n            &lt;button class=&quot;nav-key&quot; id=&quot;key-1&quot; data-idx=&quot;1&quot;&gt;\r\n                &lt;span class=&quot;key-val&quot;&gt;\u09e6\u09e6&lt;\/span&gt;\r\n            &lt;\/button&gt;\r\n            &lt;button class=&quot;nav-key&quot; id=&quot;key-2&quot; data-idx=&quot;2&quot;&gt;\r\n                &lt;span class=&quot;key-val&quot;&gt;\u09e6\u09e6&lt;\/span&gt;\r\n            &lt;\/button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/footer&gt;\r\n\r\n    <!-- Mission Briefing Modal -->\r\n    &lt;div id=&quot;mission-modal&quot; class=&quot;modal-veil&quot;&gt;\r\n        &lt;div class=&quot;modal-card&quot;&gt;\r\n            &lt;div class=&quot;modal-badge&quot;&gt;ISRO LUNAR SURFACE MISSION&lt;\/div&gt;\r\n            &lt;h1 class=&quot;modal-title&quot; id=&quot;modal-title-text&quot;&gt;PRAGYAN EXPLORER&lt;\/h1&gt;\r\n            &lt;p class=&quot;modal-desc&quot; id=&quot;modal-desc-text&quot;&gt;\r\n                \u09e8-\u0985\u0999\u09cd\u0995\u09c7\u09b0 \u09ac\u09bf\u09af\u09bc\u09cb\u0997 (\u09a7\u09be\u09b0 \u09ac\u09be \u0995\u09cd\u09af\u09be\u09b0\u09bf \u09b8\u09b9)\u0964&lt;br&gt;\r\n                \u0996\u09be\u09a4\u09be\u09b0 \u09a8\u09bf\u09af\u09bc\u09ae \u09ad\u09c1\u09b2\u09c7 \u09af\u09be\u0993! &lt;b&gt;\u09b0\u09be\u0989\u09a8\u09cd\u09a1\u09bf\u0982 \u0995\u09cc\u09b6\u09b2&lt;\/b&gt; \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09cb (\u09af\u09c7\u09ae\u09a8: \u09ed\u09e8 - \u09e9\u09ee = \u09ed\u09e8 - \u09ea\u09e6 + \u09e8 = \u09e9\u09ea)\u0964 \u09a6\u09cd\u09b0\u09c1\u09a4 \u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0 \u09a6\u09bf\u09df\u09c7 \u099a\u09be\u0981\u09a6\u09c7\u09b0 \u09ae\u09be\u099f\u09bf \u09b8\u09cd\u0995\u09cd\u09af\u09be\u09a8 \u0995\u09b0\u09cb \u098f\u09ac\u0982 \u09a1\u09c7\u099f\u09be \u09aa\u09c3\u09a5\u09bf\u09ac\u09c0\u09a4\u09c7 \u09aa\u09be\u09a0\u09be\u0993!\r\n            &lt;\/p&gt;\r\n            &lt;button id=&quot;btn-start&quot; class=&quot;launch-btn start-pulse&quot;&gt;\u09ae\u09bf\u09b6\u09a8 \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09cb&lt;\/button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;&lt;script&gt;\n        window.GameController = {\n            saveScore: function(score, time, extraData) {\n                window.parent.postMessage({\n                    action: 'qsh_save_score',\n                    sim_id: 27076,\n                    score: score,\n                    time: time || 0,\n                    meta: extraData || {}\n                }, 'https:\/\/qsh.in\/boards\/wbbse');\n            }\n        };\n    &lt;\/script&gt;&lt;script&gt;(() =&gt; {\r\n    \/\/ -----------------------------------------------------------\r\n    \/\/ NUMERAL CONVERSION &amp; CONFIG\r\n    \/\/ -----------------------------------------------------------\r\n    const EN_TO_BN = { '0': '\u09e6', '1': '\u09e7', '2': '\u09e8', '3': '\u09e9', '4': '\u09ea', '5': '\u09eb', '6': '\u09ec', '7': '\u09ed', '8': '\u09ee', '9': '\u09ef' };\r\n    function toBn(numStr) {\r\n        return String(numStr).split('').map(c =&gt; EN_TO_BN[c] || c).join('');\r\n    }\r\n\r\n    const Config = {\r\n        totalSteps: 15,               \r\n        initialTimeLimit: 12.0,       \r\n        minTimeLimit: 8.0,            \r\n        timeDecayPerStep: 0.25,       \r\n        maxLives: 3,\r\n        spawnDistance: 1200\r\n    };\r\n\r\n    const State = {\r\n        isPlaying: false,\r\n        stepIndex: 0,\r\n        lives: Config.maxLives,\r\n        startTime: 0,\r\n        totalAttempts: 0,\r\n        correctAttempts: 0,\r\n        currentNumA: 0,\r\n        currentNumB: 0,\r\n        correctAnswer: 0,\r\n        roundingHintStr: &quot;&quot;,\r\n        timeRemaining: Config.initialTimeLimit,\r\n        timeLimit: Config.initialTimeLimit,\r\n        isProcessing: false,\r\n        particles: [],\r\n        lasers: [],\r\n        radioWaves: [],\r\n        obsZ: 0, \r\n        obsState: 'approaching',\r\n        speed: 1.0,\r\n        score: 0,\r\n        lastTime: 0,\r\n        terrainOffsetX: 0\r\n    };\r\n\r\n    \/\/ -----------------------------------------------------------\r\n    \/\/ DOM CACHE\r\n    \/\/ -----------------------------------------------------------\r\n    const DOM = {\r\n        root: document.getElementById('sim-root'),\r\n        canvas: document.getElementById('lunar-canvas'),\r\n        ctx: document.getElementById('lunar-canvas') ? document.getElementById('lunar-canvas').getContext('2d') : null,\r\n        dispPhase: document.getElementById('disp-phase'),\r\n        progFill: document.getElementById('progress-bar'),\r\n        healthNodes: document.querySelectorAll('.sig-node'),\r\n        navConsole: document.getElementById('navcom-dock'),\r\n        numA: document.getElementById('num-a'),\r\n        numB: document.getElementById('num-b'),\r\n        calcUnknown: document.getElementById('calc-unknown'),\r\n        mathHint: document.getElementById('math-hint'),\r\n        countdownProgress: document.getElementById('countdown-progress'),\r\n        keys: [document.getElementById('key-0'), document.getElementById('key-1'), document.getElementById('key-2')],\r\n        feedbackLayer: document.getElementById('feedback-layer'),\r\n        rover: document.getElementById('rover-animated-group'),\r\n        apxsArmGroup: document.getElementById('apxs-arm-group'),\r\n        tractorBeam: document.getElementById('tractor-beam'),\r\n        hitFlash: document.getElementById('collision-flash'),\r\n        modal: document.getElementById('mission-modal'),\r\n        modalTitle: document.getElementById('modal-title-text'),\r\n        modalDesc: document.getElementById('modal-desc-text'),\r\n        btnIgnite: document.getElementById('btn-start'),\r\n        earthReceiver: document.getElementById('earth-ground-station'),\r\n        antennaBulb: document.getElementById('antenna-bulb')\r\n    };\r\n\r\n    \/\/ -----------------------------------------------------------\r\n    \/\/ SCI-FI WEB AUDIO &amp; ENGLISH SPEECH ENGINE\r\n    \/\/ -----------------------------------------------------------\r\n    const AudioEngine = {\r\n        ctx: null,\r\n        droneGain: null,\r\n        droneOsc1: null,\r\n        droneOsc2: null,\r\n        speechEngine: window.speechSynthesis || null,\r\n\r\n        init() {\r\n            if (!this.ctx) {\r\n                const AudioCtx = window.AudioContext || window.webkitAudioContext;\r\n                if (AudioCtx) this.ctx = new AudioCtx();\r\n            }\r\n            if (this.ctx &amp;&amp; this.ctx.state === 'suspended') {\r\n                this.ctx.resume();\r\n            }\r\n            this.startAmbienceDrone();\r\n        },\r\n\r\n        startAmbienceDrone() {\r\n            if (!this.ctx || this.droneOsc1) return;\r\n            try {\r\n                this.droneGain = this.ctx.createGain();\r\n                this.droneGain.gain.setValueAtTime(0.04, this.ctx.currentTime);\r\n\r\n                const filter = this.ctx.createBiquadFilter();\r\n                filter.type = 'lowpass';\r\n                filter.frequency.setValueAtTime(120, this.ctx.currentTime);\r\n\r\n                this.droneOsc1 = this.ctx.createOscillator();\r\n                this.droneOsc1.type = 'sawtooth';\r\n                this.droneOsc1.frequency.setValueAtTime(45, this.ctx.currentTime);\r\n\r\n                this.droneOsc2 = this.ctx.createOscillator();\r\n                this.droneOsc2.type = 'sine';\r\n                this.droneOsc2.frequency.setValueAtTime(45.5, this.ctx.currentTime);\r\n\r\n                this.droneOsc1.connect(filter);\r\n                this.droneOsc2.connect(filter);\r\n                filter.connect(this.droneGain);\r\n                this.droneGain.connect(this.ctx.destination);\r\n\r\n                this.droneOsc1.start();\r\n                this.droneOsc2.start();\r\n            } catch (e) {\r\n                console.warn('Audio Drone could not start', e);\r\n            }\r\n        },\r\n\r\n        playLaser() {\r\n            if (!this.ctx) return;\r\n            const osc = this.ctx.createOscillator(); const gain = this.ctx.createGain();\r\n            osc.type = 'sawtooth'; osc.frequency.setValueAtTime(1200, this.ctx.currentTime); osc.frequency.exponentialRampToValueAtTime(100, this.ctx.currentTime + 0.3);\r\n            gain.gain.setValueAtTime(0.3, this.ctx.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, this.ctx.currentTime + 0.3);\r\n            const filter = this.ctx.createBiquadFilter(); filter.type = 'highpass'; filter.frequency.value = 1000;\r\n            osc.connect(filter); filter.connect(gain); gain.connect(this.ctx.destination); osc.start(); osc.stop(this.ctx.currentTime + 0.3);\r\n        },\r\n\r\n        playShatter() {\r\n            if (!this.ctx) return;\r\n            const osc = this.ctx.createOscillator(); const gain = this.ctx.createGain();\r\n            osc.type = 'square'; osc.frequency.setValueAtTime(300, this.ctx.currentTime); osc.frequency.exponentialRampToValueAtTime(40, this.ctx.currentTime + 0.5);\r\n            gain.gain.setValueAtTime(0.6, this.ctx.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, this.ctx.currentTime + 0.5);\r\n            osc.connect(gain); gain.connect(this.ctx.destination); osc.start(); osc.stop(this.ctx.currentTime + 0.5);\r\n        },\r\n\r\n        playDrill() {\r\n            if (!this.ctx) return;\r\n            const osc = this.ctx.createOscillator(); const gain = this.ctx.createGain();\r\n            osc.type = 'square'; osc.frequency.setValueAtTime(150, this.ctx.currentTime);\r\n            gain.gain.setValueAtTime(0.5, this.ctx.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, this.ctx.currentTime + 0.5);\r\n            osc.connect(gain); gain.connect(this.ctx.destination); osc.start(); osc.stop(this.ctx.currentTime + 0.5);\r\n        },\r\n\r\n        playTransmit() {\r\n            if (!this.ctx) return;\r\n            const osc = this.ctx.createOscillator(); const gain = this.ctx.createGain();\r\n            osc.type = 'sine'; osc.frequency.setValueAtTime(800, this.ctx.currentTime); osc.frequency.linearRampToValueAtTime(1600, this.ctx.currentTime + 0.3);\r\n            gain.gain.setValueAtTime(0.3, this.ctx.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, this.ctx.currentTime + 0.3);\r\n            osc.connect(gain); gain.connect(this.ctx.destination); osc.start(); osc.stop(this.ctx.currentTime + 0.3);\r\n        },\r\n\r\n        playAlarm() {\r\n            if (!this.ctx) return;\r\n            const osc = this.ctx.createOscillator(); const gain = this.ctx.createGain();\r\n            osc.type = 'sawtooth'; osc.frequency.setValueAtTime(250, this.ctx.currentTime); osc.frequency.linearRampToValueAtTime(100, this.ctx.currentTime + 0.4);\r\n            gain.gain.setValueAtTime(0.7, this.ctx.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, this.ctx.currentTime + 0.4);\r\n            osc.connect(gain); gain.connect(this.ctx.destination); osc.start(); osc.stop(this.ctx.currentTime + 0.4);\r\n        },\r\n\r\n        speakEN(phrase) {\r\n            if (!this.speechEngine) return;\r\n            this.speechEngine.cancel();\r\n            const utter = new SpeechSynthesisUtterance(phrase);\r\n            utter.lang = 'en-US';\r\n            utter.pitch = 0.95;\r\n            utter.rate = 1.1;\r\n            this.speechEngine.speak(utter);\r\n        }\r\n    };\r\n\r\n    \/\/ -----------------------------------------------------------\r\n    \/\/ CANVAS DPI SCALING\r\n    \/\/ -----------------------------------------------------------\r\n    let width = 0, height = 0, cx = 0, cy = 0;\r\n    function resizeCanvas() {\r\n        if (!DOM.canvas || !DOM.ctx) return;\r\n        const rect = DOM.canvas.parentElement.getBoundingClientRect();\r\n        const dpr = window.devicePixelRatio || 1;\r\n        DOM.canvas.width = rect.width * dpr;\r\n        DOM.canvas.height = rect.height * dpr;\r\n        width = rect.width;\r\n        height = rect.height;\r\n        cx = width \/ 2;\r\n        cy = height * 0.45;\r\n        DOM.ctx.setTransform(1, 0, 0, 1, 0, 0);\r\n        DOM.ctx.scale(dpr, dpr);\r\n    }\r\n\r\n    \/\/ -----------------------------------------------------------\r\n    \/\/ HEALTH &amp; GAME OVER\r\n    \/\/ -----------------------------------------------------------\r\n    function updateLives() {\r\n        DOM.healthNodes.forEach((node, idx) =&gt; {\r\n            if (idx &lt; State.lives) node.classList.add('active');\r\n            else node.classList.remove('active');\r\n        });\r\n        if (State.lives &lt;= 0) {\r\n            endGame('\u09b0\u09cb\u09ad\u09be\u09b0 \u09ac\u09cd\u09af\u09be\u099f\u09be\u09b0\u09bf \u09a1\u09c7\u09a1!');\r\n        }\r\n    }\r\n\r\n    function endGame(titleText) {\r\n        State.isPlaying = false;\r\n        if(DOM.rover) {\r\n            DOM.rover.classList.remove('rover-drive');\r\n            DOM.rover.classList.add('rover-idle');\r\n        }\r\n        \r\n        const accuracy = State.totalAttempts &gt; 0 ? Math.round((State.correctAttempts \/ State.totalAttempts) * 100) : 0;\r\n        const timeSpent = Math.floor((Date.now() - State.startTime) \/ 1000);\r\n        \r\n        if (DOM.modal) {\r\n            if (DOM.modalTitle) DOM.modalTitle.textContent = titleText;\r\n            if (DOM.modalDesc) DOM.modalDesc.innerHTML = `\u09b2\u09c1\u09a8\u09be\u09b0 \u09ae\u09bf\u09b6\u09a8 \u09b6\u09c7\u09b7!&lt;br&gt;\u09b8\u09a0\u09bf\u0995\u09a4\u09be\u09b0 \u09b9\u09be\u09b0: &lt;b&gt;${toBn(accuracy)}%&lt;\/b&gt;&lt;br&gt;\u09b8\u09ae\u09df \u09b2\u09c7\u0997\u09c7\u099b\u09c7: &lt;b&gt;${toBn(timeSpent)}&lt;\/b&gt; \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1`;\r\n            if (DOM.btnIgnite) DOM.btnIgnite.textContent = &quot;\u09a8\u09a4\u09c1\u09a8 \u09ae\u09bf\u09b6\u09a8 \u09b6\u09c1\u09b0\u09c1&quot;;\r\n            DOM.modal.classList.remove('hidden');\r\n        }\r\n\r\n        if(State.lives &gt; 0) {\r\n            AudioEngine.speakEN(&quot;Mission accomplished. Outstanding performance.&quot;);\r\n        } else {\r\n            AudioEngine.speakEN(&quot;Mission aborted. Power depleted.&quot;);\r\n        }\r\n\r\n        if (window.GameController &amp;&amp; typeof window.GameController.saveScore === 'function') {\r\n            window.GameController.saveScore(State.score, timeSpent, { level: `Day8-BorrowSub-Pragyan`, accuracy: accuracy });\r\n        }\r\n    }\r\n\r\n    \/\/ -----------------------------------------------------------\r\n    \/\/ MATH GENERATOR (Borrow Subtraction -&gt; Rounding Focus)\r\n    \/\/ -----------------------------------------------------------\r\n    function generateProblem() {\r\n        let aTens, bTens, aUnits, bUnits, A, B, ans;\r\n        let loopGuard = 0;\r\n\r\n        \/\/ Force a borrow condition: aUnits &lt; bUnits\r\n        do {\r\n            aTens = Math.floor(Math.random() * 7) + 3;          \/\/ 3 to 9\r\n            bTens = Math.floor(Math.random() * (aTens - 1)) + 1; \/\/ 1 to aTens-1\r\n            aUnits = Math.floor(Math.random() * 8) + 1;          \/\/ 1 to 8\r\n            bUnits = Math.floor(Math.random() * (9 - aUnits)) + aUnits + 1; \/\/ Strictly &gt; aUnits\r\n            \r\n            A = aTens * 10 + aUnits;\r\n            B = bTens * 10 + bUnits;\r\n            ans = A - B;\r\n            loopGuard++;\r\n        } while ((A === State.currentA &amp;&amp; B === State.currentB) &amp;&amp; loopGuard &lt; 20);\r\n\r\n        State.currentA = A; State.currentB = B; State.correctAnswer = ans;\r\n\r\n        \/\/ Calculate Hint details\r\n        const roundUpB = (bTens + 1) * 10;\r\n        const compensation = roundUpB - B;\r\n        State.roundingHintStr = `\u099f\u09cd\u09b0\u09bf\u0995: ${toBn(A)} - ${toBn(roundUpB)} + ${toBn(compensation)}`;\r\n\r\n        if (DOM.numA) DOM.numA.textContent = toBn(A);\r\n        if (DOM.numB) DOM.numB.textContent = toBn(B);\r\n        if (DOM.calcUnknown) DOM.calcUnknown.textContent = '?';\r\n        if (DOM.mathHint) DOM.mathHint.textContent = State.roundingHintStr;\r\n\r\n        \/\/ Timer scaling strictly 12s -&gt; 8s\r\n        State.timeLimit = Math.max(\r\n            Config.minTimeLimit,\r\n            Config.initialTimeLimit - (State.correctAttempts * Config.timeDecayPerStep)\r\n        );\r\n        State.timeRemaining = State.timeLimit;\r\n\r\n        \/\/ Generate Options\r\n        const optionSet = new Set([State.correctAnswer]);\r\n        const err1 = (aTens - bTens) * 10 + (bUnits - aUnits);\r\n        if (err1 !== State.correctAnswer &amp;&amp; err1 &gt; 0 &amp;&amp; err1 &lt; 100) optionSet.add(err1);\r\n        const err2 = State.correctAnswer + 10;\r\n        if (err2 !== State.correctAnswer &amp;&amp; err2 &lt; 100) optionSet.add(err2);\r\n\r\n        while (optionSet.size &lt; 3) {\r\n            const offset = (Math.floor(Math.random() * 5) + 1) * (Math.random() &gt; 0.5 ? 1 : -1);\r\n            const val = State.correctAnswer + offset;\r\n            if (val &gt; 0 &amp;&amp; val &lt; 100) optionSet.add(val);\r\n        }\r\n\r\n        const shuffledOptions = Array.from(optionSet).sort(() =&gt; Math.random() - 0.5);\r\n\r\n        DOM.keys.forEach((btn, idx) =&gt; {\r\n            if (btn) {\r\n                const span = btn.querySelector('.key-val');\r\n                if (span) span.textContent = toBn(shuffledOptions[idx]);\r\n                btn.dataset.val = shuffledOptions[idx];\r\n                btn.classList.remove('key-correct', 'key-wrong');\r\n            }\r\n        });\r\n\r\n        \/\/ Setup the rock obstacle for this problem\r\n        State.targetRockX = width + 150;\r\n        State.obsState = 'approaching';\r\n        State.speed = 1.0 + (State.correctAttempts * 0.05);\r\n        if (DOM.dispPhase) DOM.dispPhase.textContent = '\u09aa\u09be\u09a5\u09b0 \u09b8\u09cd\u0995\u09cd\u09af\u09be\u09a8\u09bf\u0982...';\r\n        if (DOM.rover) {\r\n            DOM.rover.classList.remove('rover-idle');\r\n            DOM.rover.classList.add('rover-drive');\r\n        }\r\n    }\r\n\r\n    \/\/ -----------------------------------------------------------\r\n    \/\/ VISUALS &amp; PARTICLES\r\n    \/\/ -----------------------------------------------------------\r\n    function updateMissionProgression() {\r\n        const progressPct = State.stepIndex \/ Config.totalSteps;\r\n        \r\n        if (DOM.progFill) DOM.progFill.style.width = `${progressPct * 100}%`;\r\n\r\n        if (State.stepIndex &gt;= Config.totalSteps) {\r\n            setTimeout(() =&gt; {\r\n                endGame('\u09ae\u09bf\u09b6\u09a8 \u09b8\u09ab\u09b2!');\r\n            }, 1000);\r\n        }\r\n    }\r\n\r\n    function showFeedbackBadge(text, isPositive) {\r\n        if (!DOM.feedbackLayer) return;\r\n        const el = document.createElement('div');\r\n        el.className = 'float-msg';\r\n        el.style.color = isPositive ? '#38bdf8' : '#ef4444';\r\n        el.style.textShadow = isPositive ? '0 0 20px #0ea5e9' : '0 0 20px #f87171';\r\n        el.textContent = text;\r\n        DOM.feedbackLayer.appendChild(el);\r\n        setTimeout(() =&gt; el.remove(), 1200);\r\n    }\r\n\r\n    function spawnShatterDebris() {\r\n        \/\/ Glowing Minerals\r\n        for(let i=0; i&lt;25; i++) {\r\n            State.particles.push({\r\n                x: cx + 120, y: height * 0.7,\r\n                vx: (Math.random() - 0.5) * 600, vy: (Math.random() - 0.5) * 600 - 200,\r\n                life: 1.0, size: Math.random() * 5 + 3,\r\n                color: i%2===0 ? '#38bdf8' : '#fbbf24', type: 'crystal'\r\n            });\r\n        }\r\n        \/\/ Rock Shards\r\n        const rockColors = ['#475569', '#334155', '#1e293b'];\r\n        for(let i=0; i&lt;15; i++) {\r\n            State.particles.push({\r\n                x: cx + 120 + (Math.random()-0.5)*50, y: height * 0.7 + (Math.random()-0.5)*50,\r\n                vx: (Math.random() - 0.5) * 400, vy: (Math.random() - 0.5) * 400 - 150,\r\n                life: 1.0, size: Math.random() * 15 + 8,\r\n                color: rockColors[Math.floor(Math.random() * rockColors.length)], type: 'stone'\r\n            });\r\n        }\r\n    }\r\n\r\n    function spawnDust() {\r\n        for(let i=0; i&lt;30; i++) {\r\n            State.particles.push({\r\n                x: cx, y: height * 0.75,\r\n                vx: (Math.random() - 0.5) * 800, vy: (Math.random() - 0.5) * 800 - 200,\r\n                life: 1.0, size: Math.random() * 30 + 10,\r\n                color: 'rgba(148,163,184,0.6)', type: 'dust'\r\n            });\r\n        }\r\n    }\r\n\r\n    \/\/ --- Action Sequences ---\r\n    function fireLaser() {\r\n        State.lasers.push({\r\n            x: cx + 40, y: height - 160, \r\n            targetX: cx + 120, targetY: height * 0.7, life: 1.0\r\n        });\r\n        AudioEngine.playLaser();\r\n    }\r\n\r\n    function collectAndTransmit() {\r\n        if(DOM.apxsArmGroup) {\r\n            DOM.apxsArmGroup.classList.add('apxs-scan');\r\n            setTimeout(() =&gt; DOM.apxsArmGroup.classList.remove('apxs-scan'), 1000);\r\n        }\r\n        if(DOM.tractorBeam) {\r\n            DOM.tractorBeam.classList.remove('beam-active');\r\n            void DOM.tractorBeam.offsetWidth;\r\n            DOM.tractorBeam.classList.add('beam-active');\r\n        }\r\n        AudioEngine.playDrill();\r\n        \r\n        setTimeout(() =&gt; {\r\n            if(DOM.antennaBulb) DOM.antennaBulb.classList.add('transmit');\r\n            if(DOM.earthReceiver) DOM.earthReceiver.classList.add('receiving-data');\r\n            \r\n            State.radioWaves.push({ x: cx - 20, y: height - 200, radius: 10, life: 1.0 });\r\n            AudioEngine.playTransmit();\r\n            \r\n            setTimeout(() =&gt; {\r\n                if(DOM.antennaBulb) DOM.antennaBulb.classList.remove('transmit');\r\n                if(DOM.earthReceiver) DOM.earthReceiver.classList.remove('receiving-data');\r\n            }, 600);\r\n        }, 500);\r\n    }\r\n\r\n    \/\/ -----------------------------------------------------------\r\n    \/\/ USER INPUT PROCESSING\r\n    \/\/ -----------------------------------------------------------\r\n    function triggerError(message) {\r\n        State.lives--; updateLives();\r\n        \r\n        if(DOM.rover) {\r\n            DOM.rover.classList.remove('rover-crash', 'rover-drive', 'rover-idle');\r\n            void DOM.rover.offsetWidth;\r\n            DOM.rover.classList.add('rover-crash');\r\n        }\r\n        if(DOM.hitFlash) {\r\n            DOM.hitFlash.classList.add('flash-active');\r\n            setTimeout(() =&gt; DOM.hitFlash.classList.remove('flash-active'), 200);\r\n        }\r\n        \r\n        AudioEngine.playAlarm();\r\n        AudioEngine.speakEN(message === &quot;\u09b8\u09ae\u09df \u09b6\u09c7\u09b7!&quot; ? &quot;Timeout warning.&quot; : &quot;Warning, obstacle impact.&quot;);\r\n        showFloatingText(message, false);\r\n        spawnDust();\r\n        \r\n        State.isProcessing = true; \r\n        \r\n        setTimeout(() =&gt; {\r\n            State.isProcessing = false;\r\n            if(DOM.rover) DOM.rover.classList.add('rover-drive');\r\n            if(State.lives &gt; 0) generateProblem();\r\n        }, 1200);\r\n    }\r\n\r\n    function handleAnswer(btnElement) {\r\n        if (!State.isPlaying || State.isProcessing || State.obsState !== 'approaching') return;\r\n        \r\n        State.totalAttempts++;\r\n        const selected = parseInt(btnElement.dataset.val, 10);\r\n        State.isProcessing = true;\r\n        \r\n        if (selected === State.correctAnswer) {\r\n            State.correctAttempts++;\r\n            State.stepIndex++;\r\n            State.score += Math.floor(Math.random() * 5) + 15;\r\n            \r\n            btnElement.classList.add('key-correct');\r\n            State.obsState = 'shattered';\r\n            if (DOM.dispPhase) DOM.dispPhase.textContent = '\u09a1\u09c7\u099f\u09be \u099f\u09cd\u09b0\u09be\u09a8\u09cd\u09b8\u09ae\u09bf\u09b6\u09a8';\r\n            if (DOM.rover) {\r\n                DOM.rover.classList.remove('rover-drive');\r\n                DOM.rover.classList.add('rover-idle');\r\n            }\r\n            \r\n            fireLaser();\r\n            \r\n            setTimeout(() =&gt; {\r\n                AudioEngine.playShatter();\r\n                spawnShatterDebris();\r\n                \r\n                setTimeout(() =&gt; {\r\n                    collectAndTransmit();\r\n                    const voiceConfirmations = ['Mineral collected. Transmitting data.', 'Analysis complete. Sending to Earth.', 'Data link established.'];\r\n                    if (Math.random() &gt; 0.3) AudioEngine.speakEN(voiceConfirmations[Math.floor(Math.random() * voiceConfirmations.length)]);\r\n                    showFeedbackBadge('\u09a1\u09c7\u099f\u09be \u099f\u09cd\u09b0\u09be\u09a8\u09cd\u09b8\u09ae\u09bf\u099f \u09b8\u09ab\u09b2!', true);\r\n                    updateMissionProgression();\r\n                }, 300);\r\n                \r\n                setTimeout(() =&gt; {\r\n                    btnElement.classList.remove('key-correct');\r\n                    State.isProcessing = false;\r\n                    if(State.stepIndex &lt; Config.totalSteps &amp;&amp; State.lives &gt; 0) generateProblem();\r\n                }, 1600); \r\n            }, 200);\r\n\r\n        } else {\r\n            btnElement.classList.add('key-wrong');\r\n            State.obsState = 'crashed';\r\n            triggerError(&quot;\u09a7\u09be\u0995\u09cd\u0995\u09be \u09b2\u09be\u0997\u09b2\u09cb!&quot;);\r\n            setTimeout(() =&gt; { btnElement.classList.remove('key-wrong'); }, 800);\r\n        }\r\n    }\r\n\r\n    \/\/ -----------------------------------------------------------\r\n    \/\/ PHYSICS LOOP\r\n    \/\/ -----------------------------------------------------------\r\n    function updatePhysics(dtSec) {\r\n        if (State.isPlaying &amp;&amp; !State.isProcessing &amp;&amp; State.obsState === 'approaching') {\r\n            State.timeRemaining -= dtSec;\r\n\r\n            if (DOM.countdownProgress) {\r\n                const fraction = Math.max(0, State.timeRemaining \/ State.timeLimit);\r\n                DOM.countdownProgress.style.width = `${fraction * 100}%`;\r\n                if (fraction &gt; 0.5) DOM.countdownProgress.style.backgroundColor = '#4ade80';\r\n                else if (fraction &gt; 0.25) DOM.countdownProgress.style.backgroundColor = '#facc15';\r\n                else DOM.countdownProgress.style.backgroundColor = '#ef4444';\r\n            }\r\n\r\n            if (State.timeRemaining &lt;= 0) {\r\n                State.obsState = 'crashed';\r\n                triggerError(&quot;\u09b8\u09ae\u09df \u09b6\u09c7\u09b7!&quot;);\r\n            }\r\n        }\r\n\r\n        const moveStep = State.speed * 300 * dtSec; \r\n        \r\n        if (State.obsState === 'approaching' &amp;&amp; !State.isProcessing) {\r\n            State.targetRockX -= moveStep;\r\n            State.terrainOffsetX += moveStep;\r\n            if (State.targetRockX &lt;= cx + 120) { \r\n                State.obsState = 'crashed';\r\n                triggerError(&quot;\u0996\u09c1\u09ac \u09a7\u09c0\u09b0\u0997\u09a4\u09bf!&quot;);\r\n            }\r\n        } else if (State.obsState === 'shattered' || State.obsState === 'crashed') {\r\n            State.targetRockX -= moveStep * 3; \r\n            State.terrainOffsetX += moveStep * 3; \r\n        }\r\n\r\n        for (let i = State.particles.length - 1; i &gt;= 0; i--) {\r\n            let p = State.particles[i];\r\n            p.x += p.vx * dtSec; p.y += p.vy * dtSec; \r\n            if(p.type === 'stone') p.vy += 800 * dtSec; \r\n            if(p.type === 'dust') { p.size += dtSec*10; p.life -= dtSec*0.8; }\r\n            else p.life -= dtSec * 1.5;\r\n            if (p.life &lt;= 0) State.particles.splice(i, 1);\r\n        }\r\n\r\n        for (let i = State.lasers.length - 1; i &gt;= 0; i--) {\r\n            State.lasers[i].life -= dtSec * 6;\r\n            if (State.lasers[i].life &lt;= 0) State.lasers.splice(i, 1);\r\n        }\r\n        for (let i = State.radioWaves.length - 1; i &gt;= 0; i--) {\r\n            State.radioWaves[i].radius += dtSec * 300;\r\n            State.radioWaves[i].life -= dtSec * 1.5;\r\n            if (State.radioWaves[i].life &lt;= 0) State.radioWaves.splice(i, 1);\r\n        }\r\n    }\r\n\r\n    function renderCanvas() {\r\n        if (!DOM.ctx) return;\r\n        DOM.ctx.clearRect(0, 0, width, height);\r\n\r\n        \/\/ Draw Rugged Lunar Horizon Curve\r\n        DOM.ctx.fillStyle = '#1e293b';\r\n        DOM.ctx.beginPath();\r\n        DOM.ctx.moveTo(0, height);\r\n        \r\n        for(let x = 0; x &lt;= width; x += 15) {\r\n            let y = height * 0.75 + Math.sin((x + State.terrainOffsetX) * 0.015) * 20 + Math.cos((x + State.terrainOffsetX) * 0.03) * 10;\r\n            if (x === 0) DOM.ctx.moveTo(x, y);\r\n            else DOM.ctx.lineTo(x, y);\r\n        }\r\n        DOM.ctx.lineTo(width, height);\r\n        DOM.ctx.fill();\r\n        \r\n        DOM.ctx.strokeStyle = '#475569';\r\n        DOM.ctx.lineWidth = 4;\r\n        DOM.ctx.stroke();\r\n\r\n        \/\/ Draw Target Lunar Rock\r\n        if (State.obsState !== 'shattered' &amp;&amp; State.targetRockX &gt; -100) {\r\n            DOM.ctx.save();\r\n            let rx = State.targetRockX;\r\n            let ry = height * 0.75 + Math.sin((rx + State.terrainOffsetX) * 0.015) * 20 + Math.cos((rx + State.terrainOffsetX) * 0.03) * 10 - 15;\r\n            \r\n            \/\/ Ground Shadow\r\n            DOM.ctx.fillStyle = 'rgba(0,0,0,0.7)';\r\n            DOM.ctx.beginPath();\r\n            DOM.ctx.ellipse(rx, ry + 15, 35, 10, 0, 0, Math.PI * 2);\r\n            DOM.ctx.fill();\r\n\r\n            \/\/ Realistic Rock Polygon\r\n            DOM.ctx.fillStyle = '#475569';\r\n            DOM.ctx.beginPath();\r\n            DOM.ctx.moveTo(rx - 25, ry + 10);\r\n            DOM.ctx.lineTo(rx - 20, ry - 20);\r\n            DOM.ctx.lineTo(rx + 5, ry - 35);\r\n            DOM.ctx.lineTo(rx + 30, ry - 15);\r\n            DOM.ctx.lineTo(rx + 25, ry + 15);\r\n            DOM.ctx.closePath();\r\n            DOM.ctx.fill();\r\n            \r\n            DOM.ctx.fillStyle = '#334155';\r\n            DOM.ctx.beginPath();\r\n            DOM.ctx.moveTo(rx - 25, ry + 10);\r\n            DOM.ctx.lineTo(rx + 5, ry - 35);\r\n            DOM.ctx.lineTo(rx, ry + 15);\r\n            DOM.ctx.closePath();\r\n            DOM.ctx.fill();\r\n            \r\n            \/\/ Craters on rock\r\n            DOM.ctx.fillStyle = '#1e293b';\r\n            DOM.ctx.beginPath();\r\n            DOM.ctx.ellipse(rx - 5, ry - 10, 5, 8, Math.PI\/4, 0, Math.PI * 2);\r\n            DOM.ctx.fill();\r\n            DOM.ctx.restore();\r\n        }\r\n\r\n        \/\/ Draw Lasers\r\n        DOM.ctx.shadowBlur = 15; DOM.ctx.shadowColor = '#38bdf8'; DOM.ctx.lineWidth = 6; DOM.ctx.strokeStyle = '#38bdf8';\r\n        State.lasers.forEach(laser =&gt; {\r\n            DOM.ctx.globalAlpha = laser.life;\r\n            DOM.ctx.beginPath(); DOM.ctx.moveTo(laser.x, laser.y); DOM.ctx.lineTo(laser.targetX, laser.targetY); DOM.ctx.stroke();\r\n            DOM.ctx.lineWidth = 2; DOM.ctx.strokeStyle = '#fff'; DOM.ctx.stroke();\r\n        });\r\n        \r\n        \/\/ Draw Radio Waves\r\n        DOM.ctx.shadowBlur = 0; DOM.ctx.lineWidth = 3; DOM.ctx.strokeStyle = '#facc15';\r\n        State.radioWaves.forEach(w =&gt; {\r\n            DOM.ctx.globalAlpha = w.life;\r\n            DOM.ctx.beginPath(); DOM.ctx.arc(w.x, w.y, w.radius, Math.PI, Math.PI * 2); DOM.ctx.stroke();\r\n        });\r\n\r\n        DOM.ctx.globalAlpha = 1.0;\r\n\r\n        \/\/ Draw Particles\r\n        State.particles.forEach(p =&gt; {\r\n            DOM.ctx.globalAlpha = Math.max(0, p.life);\r\n            DOM.ctx.fillStyle = p.color;\r\n            DOM.ctx.beginPath();\r\n            if (p.type === 'stone') {\r\n                DOM.ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);\r\n            } else if (p.type === 'crystal') {\r\n                DOM.ctx.shadowBlur = 15; DOM.ctx.shadowColor = p.color;\r\n                DOM.ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);\r\n            } else if (p.type === 'dust') {\r\n                DOM.ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);\r\n            }\r\n            DOM.ctx.fill();\r\n            DOM.ctx.shadowBlur = 0;\r\n        });\r\n        DOM.ctx.globalAlpha = 1.0;\r\n    }\r\n\r\n    function gameLoop(timestamp) {\r\n        if (!State.isPlaying) return;\r\n        const dt = timestamp - State.lastTime; State.lastTime = timestamp;\r\n        if (dt &lt; 100) { updatePhysics(dt); renderCanvas(); }\r\n        requestAnimationFrame(gameLoop);\r\n    }\r\n\r\n    function startGame() {\r\n        AudioEngine.init(); resizeCanvas();\r\n        State.isPlaying = true; State.score = 0; State.lives = Config.maxLives;\r\n        State.stepIndex = 0; State.totalAttempts = 0; State.correctAttempts = 0; State.startTime = Date.now();\r\n        State.particles = []; State.lasers = []; State.radioWaves = []; \r\n        State.isProcessing = false; State.speed = 1.0; State.terrainOffsetX = 0;\r\n        \r\n        updateLives();\r\n        updateMissionProgression();\r\n        \r\n        if (DOM.modal) DOM.modal.classList.add('hidden');\r\n        if (DOM.btnIgnite) DOM.btnIgnite.classList.remove('start-pulse');\r\n        \r\n        AudioEngine.speakEN('Pragyan Rover deployed. Commencing surface scan operations.');\r\n\r\n        State.lastTime = performance.now();\r\n        generateProblem();\r\n        requestAnimationFrame(gameLoop);\r\n    }\r\n\r\n    \/\/ -----------------------------------------------------------\r\n    \/\/ EVENT HOOKS\r\n    \/\/ -----------------------------------------------------------\r\n    const initSimulator = () =&gt; {\r\n        window.addEventListener('resize', resizeCanvas);\r\n        \r\n        DOM.keys.forEach(btn =&gt; {\r\n            if (btn) {\r\n                btn.addEventListener('pointerdown', (e) =&gt; {\r\n                    e.preventDefault(); handleAnswer(btn);\r\n                    if(navigator.vibrate) navigator.vibrate(15);\r\n                });\r\n            }\r\n        });\r\n\r\n        if (DOM.btnIgnite) {\r\n            DOM.btnIgnite.addEventListener('pointerdown', (e) =&gt; { e.preventDefault(); startGame(); });\r\n        }\r\n\r\n        resizeCanvas();\r\n    };\r\n\r\n    if (document.readyState === 'loading') {\r\n        document.addEventListener('DOMContentLoaded', initSimulator);\r\n    } else {\r\n        initSimulator();\r\n    }\r\n})();&lt;\/script&gt;&lt;\/body&gt;&lt;\/html&gt;\" sandbox=\"allow-scripts allow-forms allow-same-origin allow-pointer-lock\" allow=\"fullscreen; accelerometer; gyroscope\" allowfullscreen><\/iframe>\n        <\/div>\n    <\/div>\n    <script data-cfasync=\"false\">\n    (function() {\n        var wrap = document.getElementById('qsh-27076-239');\n        var btn  = document.getElementById('fs-btn-qsh-27076-239');\n        if (!wrap || !btn) return;\n        btn.addEventListener('click', function() {\n            if (!document.fullscreenElement) {\n                if (wrap.requestFullscreen) wrap.requestFullscreen();\n                else if (wrap.webkitRequestFullscreen) wrap.webkitRequestFullscreen();\n            } else {\n                if (document.exitFullscreen) document.exitFullscreen();\n            }\n        });\n        document.addEventListener('fullscreenchange', function() {\n            if (document.fullscreenElement === wrap) {\n                btn.classList.add('is-active');\n                btn.querySelector('span').textContent = 'Exit';\n            } else {\n                btn.classList.remove('is-active');\n                btn.querySelector('span').textContent = 'Expand';\n            }\n        });\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"<p>\u09ae\u09c7\u09a8\u09cd\u099f\u09be\u09b2 \u09ae\u09cd\u09af\u09be\u09a5 \u0995\u09cb\u09b0\u09cd\u09b8\u09c7\u09b0 \u0985\u09b7\u09cd\u099f\u09ae \u09a6\u09bf\u09a8\u09c7 \u09a4\u09cb\u09ae\u09be\u09a6\u09c7\u09b0 \u09b8\u09cd\u09ac\u09be\u0997\u09a4 \u099c\u09be\u09a8\u09be\u0987! \u09ae\u09be\u09a8\u09b8\u09bf\u0995 \u0997\u09a3\u09bf\u09a4\u09c7\u09b0 \u09b8\u09ac\u099a\u09c7\u09af\u09bc\u09c7 \u09ac\u09a1\u09bc \u09ac\u09be\u09a7\u09be \u09b9\u09b2\u09cb \u2018\u0995\u09cd\u09af\u09be\u09b0\u09bf \u09b8\u09b9 \u09ac\u09bf\u09af\u09bc\u09cb\u0997\u2019 (Subtraction with Borrowing)\u0964 \u09af\u09c7\u09ae\u09a8: \u09ed\u09e8 \u2013 \u09e9\u09ee\u0964 \u0996\u09be\u09a4\u09be\u09af\u09bc \u0995\u09b0\u09be\u09b0 \u09b8\u09ae\u09af\u09bc \u0986\u09ae\u09b0\u09be \u09e8 \u0995\u09c7 \u09e7\u09e8 \u09a7\u09b0\u09c7 \u09a7\u09be\u09b0 \u09a8\u09bf\u09af\u09bc\u09c7 \u09ac\u09bf\u09af\u09bc\u09cb\u0997 \u0995\u09b0\u09bf, \u0995\u09bf\u09a8\u09cd\u09a4\u09c1 \u09ac\u09cd\u09b0\u09c7\u09a8\u09c7 \u098f\u0987 \u099a\u09bf\u09a4\u09cd\u09b0\u099f\u09bf \u09a7\u09b0\u09c7 \u09b0\u09be\u0996\u09be \u0996\u09c1\u09ac \u0995\u09a0\u09bf\u09a8\u0964 \u09a4\u09be\u0987 \u0986\u099c \u0986\u09ae\u09b0\u09be \u0996\u09be\u09a4\u09be\u09b0 \u09a8\u09bf\u09af\u09bc\u09ae \u09ae\u09a8 \u09a5\u09c7\u0995\u09c7 \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac! \u098f\u0987 \u09aa\u09be\u09a0\u09c7 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-27076","post","type-post","status-publish","format-standard","hentry","category-mental-math-tricks"],"_links":{"self":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/27076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/comments?post=27076"}],"version-history":[{"count":4,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/27076\/revisions"}],"predecessor-version":[{"id":27080,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/27076\/revisions\/27080"}],"wp:attachment":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/media?parent=27076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/categories?post=27076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/tags?post=27076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}