{"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:20:49","modified_gmt":"2026-08-25T05:50:49","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<style>#h5g-wrap-27076 { max-width: 800px; width: 100%; margin: 2rem auto; background: #111827; border-radius: 12px; box-shadow: 0 10px 25px rgba(0,0,0,0.15); overflow: hidden; font-family: system-ui, -apple-system, sans-serif; }\n#h5g-wrap-27076 .h5g-toolbar { display: flex; justify-content: space-between; align-items: center; padding: 12px 20px; background: #1f2937; border-bottom: 1px solid #374151; }\n#h5g-wrap-27076 .h5g-title { color: #f3f4f6; font-weight: 600; font-size: 14px; letter-spacing: 0.5px; text-transform: uppercase; }\n#h5g-wrap-27076 .h5g-fs-btn { background: #3b82f6; color: #fff; border: none; padding: 8px 14px; border-radius: 6px; font-size: 13px; font-weight: 600; cursor: pointer; display: flex; align-items: center; gap: 8px; transition: background 0.2s ease; }\n#h5g-wrap-27076 .h5g-fs-btn:hover { background: #2563eb; }\n#h5g-wrap-27076 .h5g-fs-btn svg { width: 16px; height: 16px; fill: currentColor; }\n#h5g-wrap-27076 .h5g-fs-btn.exit-mode { background: #166534; padding: 6px 12px; font-size: 12px; }\n#h5g-wrap-27076 .h5g-fs-btn.exit-mode:hover { background: #14532d; }\n#h5g-wrap-27076 .h5g-iframe-container { width: 100%; height: 75vh; min-height: 550px; max-height: 700px; position: relative; background: #000; }\n#h5g-wrap-27076 iframe { width: 100%; height: 100%; border: none; display: block; }\n@media (max-width: 480px) {\n    #h5g-wrap-27076 .h5g-iframe-container { min-height: 600px; }\n}\n#h5g-wrap-27076:fullscreen { max-width: 100%; width: 100%; height: 100%; margin: 0; border-radius: 0; display: flex; flex-direction: column; }\n#h5g-wrap-27076:fullscreen .h5g-iframe-container { height: 100%; flex-grow: 1; min-height: 0; max-height: none; }\n#h5g-wrap-27076:-webkit-full-screen { max-width: 100%; width: 100%; height: 100%; margin: 0; border-radius: 0; display: flex; flex-direction: column; }\n#h5g-wrap-27076:-webkit-full-screen .h5g-iframe-container { height: 100%; flex-grow: 1; min-height: 0; max-height: none; }\n#h5g-wrap-27076:-ms-fullscreen { max-width: 100%; width: 100%; height: 100%; margin: 0; border-radius: 0; display: flex; flex-direction: column; }\n#h5g-wrap-27076:-ms-fullscreen .h5g-iframe-container { height: 100%; flex-grow: 1; min-height: 0; max-height: none; }<\/style><div id=\"h5g-wrap-27076\" class=\"h5g-wrapper\">  <div class=\"h5g-toolbar\">    <div class=\"h5g-title\">\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!<\/div>    <button id=\"h5g-fs-btn-27076\" class=\"h5g-fs-btn\" type=\"button\" aria-label=\"Toggle fullscreen\">      <svg viewbox=\"0 0 24 24\"><path d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"><\/path><\/svg>      <span>Full Screen<\/span>    <\/button>  <\/div>  <div class=\"h5g-iframe-container\">    <iframe id=\"h5g-iframe-27076\" srcdoc=\"&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset=&quot;UTF-8&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;base href=&quot;https:\/\/qsh.in\/boards\/wbbse\/&quot;&gt;&lt;style&gt;html, body { width: 100%; height: 100%; margin: 0; padding: 0; background: transparent; touch-action: none; overflow: hidden; -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; }&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 *\/\r\n.earth-horizon {\r\n    position: absolute;\r\n    top: 6%;\r\n    right: 6%;\r\n    width: 130px;\r\n    height: 130px;\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.95;\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.isro-text {\r\n    position: absolute;\r\n    top: 25%; left: 50%; transform: translate(-50%, -50%);\r\n    color: #fde047; font-size: 0.75rem; font-weight: 900; letter-spacing: 2px;\r\n    text-shadow: 0 0 5px #ca8a04; z-index: 6;\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) *\/\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    transition: opacity 0.3s, transform 0.3s;\r\n}\r\n#navcom-dock.hidden {\r\n    opacity: 0; pointer-events: none; transform: translateY(-10px);\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.calc-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.35s infinite alternate linear; }\r\n@keyframes rover-bump { 0% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(-4px) rotate(0.5deg); } }\r\n\r\n\/* Scanner and Camera Lens 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\/* 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; text-shadow: 0 0 20px #000; }\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;game-container&quot; style=&quot;width:100%;height:100%;display:flex;justify-content:center;align-items:center;&quot;&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 -->\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            &lt;div class=&quot;isro-text&quot;&gt;ISRO&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 (Drawn Red 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            &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;linearGradient id=&quot;solarPanel&quot; x1=&quot;0%&quot; y1=&quot;0%&quot; x2=&quot;100%&quot; y2=&quot;0%&quot;&gt;\r\n                        &lt;stop offset=&quot;0%&quot; stop-color=&quot;#0f172a&quot; \/&gt;\r\n                        &lt;stop offset=&quot;50%&quot; stop-color=&quot;#1e293b&quot; \/&gt;\r\n                        &lt;stop offset=&quot;100%&quot; stop-color=&quot;#0f172a&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-color=&quot;#020617&quot; flood-opacity=&quot;0.8&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;url(#solarPanel)&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 (Static to prevent SVG origin bugs) -->\r\n                    <!-- Back Wheel -->\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;10&quot; fill=&quot;#1e293b&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                    <!-- Middle Wheel -->\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;10&quot; fill=&quot;#1e293b&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                    <!-- Front Wheel -->\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;10&quot; fill=&quot;#1e293b&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;\/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 \u09aa\u09be\u09a5\u09b0 \u09b8\u09cd\u0995\u09cd\u09af\u09be\u09a8 \u0995\u09b0\u09c7 \u09b8\u09be\u09df\u09c7\u09a8\u09cd\u09b8 \u09a1\u09c7\u099f\u09be ISRO \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;\/div&gt;&lt;script&gt;window.GameController = {\n    saveScore: function(score, time, extraData) {\n        try {\n            window.parent.postMessage({\n                action: 'h5g_save_score',\n                game_id: 27076,\n                score: score,\n                time: time || 0,\n                meta: extraData || {}\n            }, '*');\n        } catch (e) {}\n    },\n    getBestScore: function(callback) {\n        var reqId = 'req_' + Date.now() + '_' + Math.floor(Math.random() * 100000);\n        var done = false;\n        function handler(e) {\n            if (done) return;\n            if (e.data &amp;&amp; e.data.action === 'h5g_best_score' &amp;&amp; e.data.req_id === reqId) {\n                done = true;\n                window.removeEventListener('message', handler);\n                try { callback(e.data.score, e.data.runs); } catch (err) {}\n            }\n        }\n        window.addEventListener('message', handler);\n        try {\n            window.parent.postMessage({ action: 'h5g_get_best', game_id: 27076, req_id: reqId }, '*');\n        } catch (e) {}\n        setTimeout(function() {\n            if (!done) {\n                done = true;\n                window.removeEventListener('message', handler);\n                try { callback(null, 0); } catch (err) {}\n            }\n        }, 2000);\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    };\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        currentA: 0,\r\n        currentB: 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        rockStartX: 0,\r\n        rockEndX: 0,\r\n        targetRockX: -1000, \r\n        obsState: 'none', \r\n        terrainOffsetX: 0,\r\n        score: 0,\r\n        lastTime: 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        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\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 RESIZE\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        if(DOM.navConsole) {\r\n            DOM.navConsole.classList.add('hidden');\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) {\r\n                DOM.btnIgnite.textContent = &quot;\u09a8\u09a4\u09c1\u09a8 \u09ae\u09bf\u09b6\u09a8 \u09b6\u09c1\u09b0\u09c1&quot;;\r\n                DOM.btnIgnite.classList.add('start-pulse');\r\n            }\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 \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        do {\r\n            aTens = Math.floor(Math.random() * 7) + 3;          \r\n            bTens = Math.floor(Math.random() * (aTens - 1)) + 1; \r\n            aUnits = Math.floor(Math.random() * 8) + 1;          \r\n            bUnits = Math.floor(Math.random() * (9 - aUnits)) + aUnits + 1; \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        const roundUpB = (bTens + 1) * 10;\r\n        const compensation = roundUpB - B;\r\n        let hintStr = `\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.mathHint) DOM.mathHint.textContent = hintStr;\r\n\r\n        \/\/ Ensure Math Panel is always visible\r\n        if (DOM.navConsole) {\r\n            DOM.navConsole.classList.remove('hidden');\r\n        }\r\n\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        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 label = btn.querySelector('.key-val');\r\n                if (label) label.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 target rock based on screen width\r\n        State.rockStartX = width + 100;\r\n        State.rockEndX = cx + 80; \r\n        State.obsState = 'approaching';\r\n        \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        for(let i=0; i&lt;25; i++) {\r\n            State.particles.push({\r\n                x: State.targetRockX, 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        const rockColors = ['#475569', '#334155', '#1e293b'];\r\n        for(let i=0; i&lt;15; i++) {\r\n            State.particles.push({\r\n                x: State.targetRockX + (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: State.targetRockX, 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        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-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        showFeedbackBadge(message, false);\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.remove('rover-crash');\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 = '\u09ac\u09bf\u09b6\u09cd\u09b2\u09c7\u09b7\u09a3 \u09b9\u099a\u09cd\u099b\u09c7...';\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                    if (DOM.dispPhase) DOM.dispPhase.textContent = '\u09a1\u09c7\u099f\u09be \u099f\u09cd\u09b0\u09be\u09a8\u09cd\u09b8\u09ae\u09bf\u099f \u09b9\u099a\u09cd\u099b\u09c7...';\r\n                    collectAndTransmit();\r\n                    const voiceConfirmations = ['Mineral collected.', 'Analysis complete.', 'Data linked.'];\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;\u09ad\u09c1\u09b2 \u09b9\u09bf\u09b8\u09be\u09ac!&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            \/\/ Sync rock position exactly with time to guarantee clickability\r\n            let timeProgress = 1 - (State.timeRemaining \/ State.timeLimit);\r\n            timeProgress = Math.max(0, Math.min(1, timeProgress));\r\n            State.targetRockX = State.rockStartX - (State.rockStartX - State.rockEndX) * timeProgress;\r\n            State.terrainOffsetX += 150 * dtSec;\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        } else if (State.obsState === 'crashed') {\r\n            State.targetRockX -= 400 * dtSec;\r\n            State.terrainOffsetX += 400 * dtSec;\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            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 Drawn Red Line Lunar Horizon\r\n        DOM.ctx.fillStyle = '#1e293b';\r\n        DOM.ctx.beginPath();\r\n        DOM.ctx.moveTo(0, height);\r\n        \r\n        let groundYBase = height * 0.75;\r\n        for(let x = 0; x &lt;= width; x += 15) {\r\n            let y = groundYBase + Math.sin((x + State.terrainOffsetX) * 0.015) * 20 + Math.cos((x + State.terrainOffsetX) * 0.03) * 10;\r\n            if (x === 0) DOM.ctx.lineTo(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        \/\/ Red Drawn Line Surface\r\n        DOM.ctx.beginPath();\r\n        for(let x = 0; x &lt;= width; x += 15) {\r\n            let y = groundYBase + 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.strokeStyle = '#ef4444'; \r\n        DOM.ctx.lineWidth = 4;\r\n        DOM.ctx.stroke();\r\n\r\n        \/\/ Draw Realistic Lunar Rock\r\n        if (State.obsState !== 'shattered' &amp;&amp; State.targetRockX &gt; -100 &amp;&amp; State.targetRockX &lt; width + 200) {\r\n            DOM.ctx.save();\r\n            let rx = State.targetRockX;\r\n            let ry = groundYBase + Math.sin((rx + State.terrainOffsetX) * 0.015) * 20 + Math.cos((rx + State.terrainOffsetX) * 0.03) * 10 - 15;\r\n            \r\n            \/\/ Rock 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            \/\/ Rock Shape\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            \/\/ Rock Texture\/Shadowing\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 \/ 1000); 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.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        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        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                \/\/ Using standard click for reliable cross-device interaction\r\n                btn.addEventListener('click', (e) =&gt; {\r\n                    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('click', (e) =&gt; { 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;\" scrolling=\"no\" allowfullscreen=\"true\" allow=\"fullscreen; autoplay; gamepad; accelerometer; gyroscope; clipboard-write\"><\/iframe>  <\/div><\/div><script data-cfasync=\"false\" data-no-optimize=\"1\">(function() {\n    'use strict';\n\n    var wrapId = 'h5g-wrap-27076';\n    var btnId  = 'h5g-fs-btn-27076';\n    var gameId = 27076;\n\n    var wrap = document.getElementById(wrapId);\n    var btn  = document.getElementById(btnId);\n    if (!wrap || !btn) return;\n\n    var svgExpand   = '<svg viewBox=\"0 0 24 24\"><path d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\/>';\n    var svgContract = '<svg viewBox=\"0 0 24 24\"><path d=\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"\/>';\n\n    function getFsEl() {\n        return document.fullscreenElement\n            || document.webkitFullscreenElement\n            || document.msFullscreenElement\n            || null;\n    }\n\n    btn.addEventListener('click', function() {\n        var fsEl = getFsEl();\n        if (!fsEl) {\n            if (wrap.requestFullscreen) { var p = wrap.requestFullscreen(); if (p && p.catch) p.catch(function(){}); }\n            else if (wrap.webkitRequestFullscreen) { wrap.webkitRequestFullscreen(); }\n            else if (wrap.msRequestFullscreen) { wrap.msRequestFullscreen(); }\n        } else {\n            if (document.exitFullscreen) { var p2 = document.exitFullscreen(); if (p2 && p2.catch) p2.catch(function(){}); }\n            else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); }\n            else if (document.msExitFullscreen) { document.msExitFullscreen(); }\n        }\n    });\n\n    function syncButton() {\n        var fsEl = getFsEl();\n        if (fsEl === wrap) {\n            btn.classList.add('exit-mode');\n            btn.innerHTML = svgContract + ' <span>Exit';\n        } else {\n            btn.classList.remove('exit-mode');\n            btn.innerHTML = svgExpand + ' <span>Full Screen';\n        }\n    }\n\n    document.addEventListener('fullscreenchange', syncButton);\n    document.addEventListener('webkitfullscreenchange', syncButton);\n    document.addEventListener('MSFullscreenChange', syncButton);\n\n    \/* ---- Global listener: added once per page ---- *\/\n    if (!window.h5gListenerAdded) {\n        window.h5gListenerAdded = true;\n\n        function isTrustedFrame(src) {\n            var frames = document.querySelectorAll('iframe[id^=\"h5g-iframe-\"]');\n            for (var i = 0; i < frames.length; i++) {\n                if (frames[i].contentWindow === src) return true;\n            }\n            return false;\n        }\n\n        function readScores() {\n            try { return JSON.parse(localStorage.getItem('h5g_user_scores') || '{}'); }\n            catch (e) { return {}; }\n        }\n\n        function writeScores(obj) {\n            try { localStorage.setItem('h5g_user_scores', JSON.stringify(obj)); }\n            catch (e) {}\n        }\n\n        \/\/ Migrate flat\/old entries -> { last, best, runs }\n        function normalize(entry) {\n            if (!entry) return { last: null, best: null, runs: 0 };\n            if (entry.last !== undefined || entry.best !== undefined) return entry;\n            return { last: entry, best: entry, runs: 1 };\n        }\n\n        window.addEventListener('message', function(event) {\n            if (!event.data || !event.data.action) return;\n            if (!isTrustedFrame(event.source)) return;\n\n            var action = event.data.action;\n            var gid    = String(event.data.game_id);\n\n            if (action === 'h5g_save_score') {\n                var store = readScores();\n                var entry = normalize(store[gid]);\n                var payload = {\n                    score: Number(event.data.score) || 0,\n                    time: Number(event.data.time) || 0,\n                    meta: event.data.meta || {},\n                    saved_at: new Date().toISOString()\n                };\n                entry.last = payload;\n                entry.runs = (entry.runs || 0) + 1;\n                if (!entry.best || payload.score > Number(entry.best.score)) {\n                    entry.best = payload;\n                }\n                store[gid] = entry;\n                writeScores(store);\n\n                try {\n                    event.source.postMessage({\n                        action: 'h5g_score_saved',\n                        game_id: gid,\n                        is_best: entry.best === payload,\n                        best: entry.best.score\n                    }, '*');\n                } catch (e) {}\n\n            } else if (action === 'h5g_get_best') {\n                var store2 = readScores();\n                var e2 = normalize(store2[gid]);\n                try {\n                    event.source.postMessage({\n                        action: 'h5g_best_score',\n                        req_id: event.data.req_id,\n                        game_id: gid,\n                        score: e2.best ? e2.best.score : null,\n                        runs: e2.runs || 0\n                    }, '*');\n                } catch (e) {}\n            }\n        });\n    }\n})();<\/script>\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}]}}