{"id":874,"date":"2026-04-27T07:51:50","date_gmt":"2026-04-27T02:21:50","guid":{"rendered":"https:\/\/qsh.in\/boards\/wbbse\/?p=874"},"modified":"2026-08-18T20:29:44","modified_gmt":"2026-08-18T14:59:44","slug":"thermal-phenomena","status":"publish","type":"post","link":"https:\/\/qsh.in\/boards\/wbbse\/class-x\/physical-science\/thermal-phenomena\/","title":{"rendered":"\u09a4\u09be\u09aa\u09c7\u09b0 \u0998\u099f\u09a8\u09be \u09b8\u09ae\u09c2\u09b9 &#8211; \u09a6\u09b6\u09ae \u09b6\u09cd\u09b0\u09c7\u09a3\u09bf\u09b0 \u09ad\u09cc\u09a4 \u09ac\u09bf\u099c\u09cd\u099e\u09be\u09a8 \u0985\u09a7\u09cd\u09af\u09be\u09df \u09ea"},"content":{"rendered":"<p>\u09a6\u09b6\u09ae \u09b6\u09cd\u09b0\u09c7\u09a3\u09bf\u09b0 \u09ad\u09cc\u09a4\u09ac\u09bf\u099c\u09cd\u099e\u09be\u09a8\u09c7\u09b0 \u099a\u09a4\u09c1\u09b0\u09cd\u09a5 \u0985\u09a7\u09cd\u09af\u09be\u09af\u09bc\u09c7 \u09a4\u09cb\u09ae\u09be\u09a6\u09c7\u09b0 \u09b8\u09cd\u09ac\u09be\u0997\u09a4! \u09a4\u09cb\u09ae\u09b0\u09be \u0995\u09bf \u0995\u0996\u09a8\u09cb \u09ad\u09c7\u09ac\u09c7 \u09a6\u09c7\u0996\u09c7\u099b \u0995\u09c7\u09a8 \u0997\u09cb\u09b0\u09c1\u09b0 \u0997\u09be\u09a1\u09bc\u09bf\u09b0 \u0995\u09be\u09a0\u09c7\u09b0 \u099a\u09be\u0995\u09be\u09af\u09bc \u09b2\u09cb\u09b9\u09be\u09b0 \u09ac\u09c7\u09a1\u09bc \u09aa\u09b0\u09be\u09a8\u09cb\u09b0 \u09b8\u09ae\u09af\u09bc \u09a4\u09be\u0995\u09c7 \u0997\u09b0\u09ae \u0995\u09b0\u09be \u09b9\u09af\u09bc? \u0985\u09a5\u09ac\u09be \u0995\u09be\u0981\u099a\u09c7\u09b0 \u09ac\u09cb\u09a4\u09b2\u09c7\u09b0 \u09a7\u09be\u09a4\u09ac \u099b\u09bf\u09aa\u09bf \u0986\u099f\u0995\u09c7 \u0997\u09c7\u09b2\u09c7 \u098f\u0995\u099f\u09c1 \u0997\u09b0\u09ae \u0995\u09b0\u09b2\u09c7\u0987 \u0995\u09c7\u09a8 \u09b8\u09b9\u099c\u09c7 \u0996\u09c1\u09b2\u09c7 \u09af\u09be\u09af\u09bc? \u098f\u09b0 \u0989\u09a4\u09cd\u09a4\u09b0 \u09b2\u09c1\u0995\u09bf\u09af\u09bc\u09c7 \u0986\u099b\u09c7 <strong>\u09a4\u09be\u09aa\u09c0\u09af\u09bc \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3\u09c7\u09b0 (Thermal Expansion)<\/strong> \u09ae\u09a7\u09cd\u09af\u09c7\u0964 \u09a4\u09be\u09aa \u09a6\u09bf\u09b2\u09c7 \u0995\u09a0\u09bf\u09a8, \u09a4\u09b0\u09b2 \u098f\u09ac\u0982 \u0997\u09cd\u09af\u09be\u09b8\u09c0\u09af\u09bc\u2014 \u09b8\u09ac \u09aa\u09a6\u09be\u09b0\u09cd\u09a5\u09c7\u09b0\u0987 \u0986\u09af\u09bc\u09a4\u09a8 \u09ac\u09c3\u09a6\u09cd\u09a7\u09bf \u09aa\u09be\u09af\u09bc\u0964 \u098f\u0987 \u0985\u09a7\u09cd\u09af\u09be\u09af\u09bc\u09c7 \u0986\u09ae\u09b0\u09be <strong>\u0995\u09a0\u09bf\u09a8\u09c7\u09b0 \u09a4\u09bf\u09a8 \u09aa\u09cd\u09b0\u0995\u09be\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 (\u09a6\u09c8\u09b0\u09cd\u0998\u09cd\u09af, \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0 \u0993 \u0986\u09af\u09bc\u09a4\u09a8)<\/strong>, <strong>\u09a4\u09b0\u09b2\u09c7\u09b0 \u0986\u09aa\u09be\u09a4 \u0993 \u09aa\u09cd\u09b0\u0995\u09c3\u09a4 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3<\/strong> \u098f\u09ac\u0982 <strong>\u09a4\u09be\u09aa\u09c7\u09b0 \u09aa\u09b0\u09bf\u09ac\u09b9\u09a8 (Heat Conduction)<\/strong> \u09a8\u09bf\u09af\u09bc\u09c7 \u09ac\u09bf\u09b8\u09cd\u09a4\u09be\u09b0\u09bf\u09a4 \u0993 \u09b8\u09b9\u099c \u0986\u09b2\u09cb\u099a\u09a8\u09be \u0995\u09b0\u09ac\u0964<\/p>\n<h2>\u09b8\u09c2\u099a\u09bf\u09aa\u09a4\u09cd\u09b0 : \u09a4\u09be\u09aa\u09c7\u09b0 \u0998\u099f\u09a8\u09be \u09b8\u09ae\u09c2\u09b9<\/h2>\n<ul class=\"chapter-index\">\n<li>\u09aa\u09b0\u09cd\u09ac \u09e7: <a href=\"\/boards\/wbbse\/class-x\/physical-science\/expansion-of-solids\/\">\u0995\u09a0\u09bf\u09a8 \u09aa\u09a6\u09be\u09b0\u09cd\u09a5\u09c7\u09b0 \u09a4\u09be\u09aa\u09c0\u09af\u09bc \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u098f\u09ac\u0982 \u09ac\u09be\u09b8\u09cd\u09a4\u09ac \u099c\u09c0\u09ac\u09a8\u09c7 \u098f\u09b0 \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u0997\u00a0<\/a><\/li>\n<li>\u09aa\u09b0\u09cd\u09ac \u09e8: <a href=\"\/boards\/wbbse\/class-x\/physical-science\/expansion-of-liquids-and-gases\/\">\u09a4\u09b0\u09b2 \u0993 \u0997\u09cd\u09af\u09be\u09b8\u09c7\u09b0 \u09a4\u09be\u09aa\u09c0\u09af\u09bc \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3\u00a0<\/a><\/li>\n<li>\u09aa\u09b0\u09cd\u09ac \u09e9: <a href=\"\/boards\/wbbse\/class-x\/physical-science\/heat-conduction\/\">\u09a4\u09be\u09aa\u09c7\u09b0 \u09aa\u09b0\u09bf\u09ac\u09b9\u09a8 \u098f\u09ac\u0982 \u09a4\u09be\u09aa \u09aa\u09b0\u09bf\u09ac\u09be\u09b9\u09bf\u09a4\u09be\u0999\u09cd\u0995<\/a><\/li>\n<\/ul>\n<div class=\"infographic-container-sci\">\n<div class=\"info-title-sci\">\u09a4\u09be\u09aa\u09c7\u09b0 \u0998\u099f\u09a8\u09be \u09b8\u09ae\u09c2\u09b9 \u098f\u0995\u09a8\u099c\u09b0\u09c7<\/div>\n<div class=\"nodes-wrapper-sci\">\n<div class=\"node-sci\">\n<h4>\u0995\u09a0\u09bf\u09a8\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \ud83d\udee4\ufe0f<\/h4>\n<p>\u09a4\u09be\u09aa \u09a6\u09bf\u09b2\u09c7 \u0995\u09a0\u09bf\u09a8 \u09aa\u09a6\u09be\u09b0\u09cd\u09a5\u09c7\u09b0 \u09a6\u09c8\u09b0\u09cd\u0998\u09cd\u09af (Linear), \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09ab\u09b2 (Superficial) \u098f\u09ac\u0982 \u0986\u09af\u09bc\u09a4\u09a8 (Volumetric)\u2014 \u098f\u0987 \u09a4\u09bf\u09a8 \u09aa\u09cd\u09b0\u0995\u09be\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3\u0987 \u0998\u099f\u09c7\u0964<\/p>\n<\/div>\n<div class=\"node-sci\">\n<h4>\u09a6\u09cd\u09ac\u09bf-\u09a7\u09be\u09a4\u09ac \u09aa\u09be\u09a4 \ud83c\udf21\ufe0f<\/h4>\n<p>\u09a6\u09c1\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \u09a7\u09be\u09a4\u09c1\u09b0 \u09aa\u09be\u09a4\u0995\u09c7 \u0986\u099f\u0995\u09c7 \u0989\u09a4\u09cd\u09a4\u09aa\u09cd\u09a4 \u0995\u09b0\u09b2\u09c7 \u09a4\u09be \u09ac\u09c7\u0981\u0995\u09c7 \u09af\u09be\u09af\u09bc, \u0995\u09be\u09b0\u09a3 \u09a7\u09be\u09a4\u09c1 \u09a6\u09c1\u099f\u09bf\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u09b8\u09ae\u09be\u09a8 \u09b9\u09af\u09bc \u09a8\u09be\u0964 \u098f\u099f\u09bf \u09ab\u09be\u09af\u09bc\u09be\u09b0 \u0985\u09cd\u09af\u09be\u09b2\u09be\u09b0\u09cd\u09ae \u09ac\u09be \u09a5\u09be\u09b0\u09cd\u09ae\u09cb\u09b8\u09cd\u099f\u09cd\u09af\u09be\u099f\u09c7 \u09ac\u09cd\u09af\u09ac\u09b9\u09c3\u09a4 \u09b9\u09af\u09bc\u0964<\/p>\n<\/div>\n<div class=\"node-sci\">\n<h4>\u09a4\u09b0\u09b2\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \ud83d\udca7<\/h4>\n<p>\u09a4\u09b0\u09b2\u0995\u09c7 \u09aa\u09be\u09a4\u09cd\u09b0\u09c7 \u09b0\u09c7\u0996\u09c7 \u0997\u09b0\u09ae \u0995\u09b0\u09a4\u09c7 \u09b9\u09af\u09bc \u09ac\u09b2\u09c7 \u098f\u09b0 \u09a6\u09c1\u099f\u09bf \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u09a6\u09c7\u0996\u09be \u09af\u09be\u09af\u09bc: \u0986\u09aa\u09be\u09a4 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 (Apparent) \u098f\u09ac\u0982 \u09aa\u09cd\u09b0\u0995\u09c3\u09a4 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 (Real)\u0964<\/p>\n<\/div>\n<div class=\"node-sci\">\n<h4>\u09a4\u09be\u09aa\u09c7\u09b0 \u09aa\u09b0\u09bf\u09ac\u09b9\u09a8 \ud83d\udd25<\/h4>\n<p>\u09af\u09c7 \u09aa\u09a6\u09cd\u09a7\u09a4\u09bf\u09a4\u09c7 \u0995\u09a0\u09bf\u09a8 \u09aa\u09a6\u09be\u09b0\u09cd\u09a5\u09c7\u09b0 \u0989\u09b7\u09cd\u09a3\u09a4\u09b0 \u0985\u0982\u09b6 \u09a5\u09c7\u0995\u09c7 \u09b6\u09c0\u09a4\u09b2\u09a4\u09b0 \u0985\u0982\u09b6\u09c7 \u09a4\u09be\u09aa \u09aa\u09b0\u09bf\u09ac\u09be\u09b9\u09bf\u09a4 \u09b9\u09af\u09bc \u0995\u09bf\u09a8\u09cd\u09a4\u09c1 \u0995\u09a3\u09be\u0997\u09c1\u09b2\u09cb\u09b0 \u09b8\u09cd\u09a5\u09be\u09a8\u099a\u09cd\u09af\u09c1\u09a4\u09bf \u0998\u099f\u09c7 \u09a8\u09be, \u09a4\u09be\u0995\u09c7 \u09a4\u09be\u09aa\u09c7\u09b0 \u09aa\u09b0\u09bf\u09ac\u09b9\u09a8 \u09ac\u09b2\u09c7\u0964<\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3>\u0997\u09c1\u09b0\u09c1\u09a4\u09cd\u09ac\u09aa\u09c2\u09b0\u09cd\u09a3 \u09aa\u09cd\u09b0\u09b6\u09cd\u09a8\u09cb\u09a4\u09cd\u09a4\u09b0 (FAQ)<\/h3>\n<div class=\"faq-section\">\n<details>\n<summary><strong>\u09e7. \u09a4\u09be\u09aa\u09c0\u09af\u09bc \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u0995\u09be\u0995\u09c7 \u09ac\u09b2\u09c7? \u0995\u09cb\u09a8\u09cd \u09aa\u09a6\u09be\u09b0\u09cd\u09a5\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u09b8\u09ac\u099a\u09c7\u09af\u09bc\u09c7 \u09ac\u09c7\u09b6\u09bf \u09b9\u09af\u09bc?<\/strong><\/summary>\n<p>\u09a4\u09be\u09aa \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u0997\u09c7\u09b0 \u09ab\u09b2\u09c7 \u09aa\u09a6\u09be\u09b0\u09cd\u09a5\u09c7\u09b0 \u0986\u0995\u09be\u09b0 \u09ac\u09be \u0986\u09af\u09bc\u09a4\u09a8 \u09ac\u09c3\u09a6\u09cd\u09a7\u09bf \u09aa\u09be\u0993\u09af\u09bc\u09be\u09b0 \u0998\u099f\u09a8\u09be\u0995\u09c7 \u09a4\u09be\u09aa\u09c0\u09af\u09bc \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 (Thermal Expansion) \u09ac\u09b2\u09c7\u0964 \u0995\u09a0\u09bf\u09a8\u09c7\u09b0 \u09a4\u09c1\u09b2\u09a8\u09be\u09af\u09bc \u09a4\u09b0\u09b2\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u09ac\u09c7\u09b6\u09bf \u09b9\u09af\u09bc, \u0986\u09b0 \u09a4\u09b0\u09b2\u09c7\u09b0 \u09a4\u09c1\u09b2\u09a8\u09be\u09af\u09bc \u0997\u09cd\u09af\u09be\u09b8\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u09b8\u09ac\u099a\u09c7\u09af\u09bc\u09c7 \u09ac\u09c7\u09b6\u09bf \u09b9\u09af\u09bc\u0964<\/p>\n<\/details>\n<details>\n<summary><strong>\u09e8. \u0995\u09a0\u09bf\u09a8 \u09aa\u09a6\u09be\u09b0\u09cd\u09a5\u09c7\u09b0 \u0995\u09af\u09bc \u09aa\u09cd\u09b0\u0995\u09be\u09b0 \u09a4\u09be\u09aa\u09c0\u09af\u09bc \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u09a6\u09c7\u0996\u09be \u09af\u09be\u09af\u09bc?<\/strong><\/summary>\n<p>\u0995\u09a0\u09bf\u09a8 \u09aa\u09a6\u09be\u09b0\u09cd\u09a5\u09c7\u09b0 \u09a8\u09bf\u09b0\u09cd\u09a6\u09bf\u09b7\u09cd\u099f \u0986\u0995\u09be\u09b0 \u0993 \u0986\u09af\u09bc\u09a4\u09a8 \u09a5\u09be\u0995\u09be\u09af\u09bc \u098f\u09b0 \u09a4\u09bf\u09a8 \u09aa\u09cd\u09b0\u0995\u09be\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u09a6\u09c7\u0996\u09be \u09af\u09be\u09af\u09bc\u2014 \u09e7. \u09a6\u09c8\u09b0\u09cd\u0998\u09cd\u09af \u09ac\u09be \u09b0\u09c8\u0996\u09bf\u0995 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3, \u09e8. \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u098f\u09ac\u0982 \u09e9. \u0986\u09af\u09bc\u09a4\u09a8 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3\u0964<\/p>\n<\/details>\n<details>\n<summary><strong>\u09e9. \u09a6\u09cd\u09ac\u09bf-\u09a7\u09be\u09a4\u09ac \u09aa\u09be\u09a4 (Bimetallic Strip) \u0995\u09c0?<\/strong><\/summary>\n<p>\u09b8\u09ae\u09be\u09a8 \u09a6\u09c8\u09b0\u09cd\u0998\u09cd\u09af \u0993 \u09ac\u09c7\u09a6\u09af\u09c1\u0995\u09cd\u09a4 \u09a6\u09c1\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \u09a7\u09be\u09a4\u09c1\u09b0 \u09aa\u09be\u09a4\u0995\u09c7 (\u09af\u09c7\u09ae\u09a8- \u09b2\u09cb\u09b9\u09be \u0993 \u09aa\u09bf\u09a4\u09b2) \u09b0\u09bf\u09ad\u09c7\u099f \u0995\u09b0\u09c7 \u0986\u099f\u0995\u09c7 \u09af\u09c7 \u09af\u09c1\u0997\u09cd\u09ae \u09aa\u09be\u09a4 \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc, \u09a4\u09be\u0995\u09c7 \u09a6\u09cd\u09ac\u09bf-\u09a7\u09be\u09a4\u09ac \u09aa\u09be\u09a4 \u09ac\u09b2\u09c7\u0964 \u098f\u0995\u09c7 \u0989\u09a4\u09cd\u09a4\u09aa\u09cd\u09a4 \u0995\u09b0\u09b2\u09c7 \u09af\u09c7 \u09a7\u09be\u09a4\u09c1\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u0997\u09c1\u09a3\u09be\u0999\u09cd\u0995 \u09ac\u09c7\u09b6\u09bf, \u09aa\u09be\u09a4\u099f\u09bf \u09a4\u09be\u09b0 \u0989\u09b2\u099f\u09cb \u09a6\u09bf\u0995\u09c7 \u09ac\u09c7\u0981\u0995\u09c7 \u09af\u09be\u09af\u09bc\u0964<\/p>\n<\/details>\n<details>\n<summary><strong>\u09ea. \u09a4\u09b0\u09b2\u09c7\u09b0 \u09aa\u09cd\u09b0\u0995\u09c3\u09a4 \u0993 \u0986\u09aa\u09be\u09a4 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3\u09c7\u09b0 \u09ae\u09a7\u09cd\u09af\u09c7 \u09b8\u09ae\u09cd\u09aa\u09b0\u09cd\u0995 \u0995\u09c0?<\/strong><\/summary>\n<p>\u09af\u09c7\u09b9\u09c7\u09a4\u09c1 \u09a4\u09b0\u09b2\u0995\u09c7 \u09aa\u09be\u09a4\u09cd\u09b0\u09c7 \u09b0\u09c7\u0996\u09c7 \u0997\u09b0\u09ae \u0995\u09b0\u09a4\u09c7 \u09b9\u09af\u09bc, \u09a4\u09be\u0987 \u09a4\u09b0\u09b2\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09aa\u09be\u09a4\u09cd\u09b0\u09c7\u09b0\u0993 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u0998\u099f\u09c7\u0964 \u09a4\u09b0\u09b2\u09c7\u09b0 \u09aa\u09cd\u09b0\u0995\u09c3\u09a4 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 = \u09a4\u09b0\u09b2\u09c7\u09b0 \u0986\u09aa\u09be\u09a4 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 + \u09aa\u09be\u09a4\u09cd\u09b0\u09c7\u09b0 \u0986\u09af\u09bc\u09a4\u09a8 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3\u0964 \u0986\u09aa\u09be\u09a4 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u0985\u09aa\u09c7\u0995\u09cd\u09b7\u09be \u09aa\u09cd\u09b0\u0995\u09c3\u09a4 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u09a4\u09b0\u09b2\u09c7\u09b0 \u09a8\u09bf\u099c\u09b8\u09cd\u09ac \u09a7\u09b0\u09cd\u09ae\u0964<\/p>\n<\/details>\n<details>\n<summary><strong>\u09eb. \u09a4\u09be\u09aa \u09aa\u09b0\u09bf\u09ac\u09be\u09b9\u09bf\u09a4\u09be\u0999\u09cd\u0995 (Coefficient of Thermal Conductivity) \u0995\u09be\u0995\u09c7 \u09ac\u09b2\u09c7?<\/strong><\/summary>\n<p>\u098f\u0995\u0995 \u09ac\u09c7\u09a7 \u0993 \u098f\u0995\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09ab\u09b2 \u09ac\u09bf\u09b6\u09bf\u09b7\u09cd\u099f \u0995\u09cb\u09a8\u09cb \u09aa\u09be\u09a4\u09c7\u09b0 \u09a6\u09c1\u0987 \u09ac\u09bf\u09aa\u09b0\u09c0\u09a4 \u09aa\u09c3\u09b7\u09cd\u09a0\u09c7\u09b0 \u0989\u09b7\u09cd\u09a3\u09a4\u09be\u09b0 \u09aa\u09be\u09b0\u09cd\u09a5\u0995\u09cd\u09af 1 \u09a1\u09bf\u0997\u09cd\u09b0\u09bf \u09b9\u09b2\u09c7, \u09b8\u09cd\u09a5\u09bf\u09b0 \u0985\u09ac\u09b8\u09cd\u09a5\u09be\u09af\u09bc \u09aa\u09be\u09a4\u09c7\u09b0 \u098f\u0995 \u09aa\u09c3\u09b7\u09cd\u09a0 \u09a5\u09c7\u0995\u09c7 \u0985\u09aa\u09b0 \u09aa\u09c3\u09b7\u09cd\u09a0\u09c7 \u09b2\u09ae\u09cd\u09ac\u09ad\u09be\u09ac\u09c7 1 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1\u09c7 \u09af\u09c7 \u09aa\u09b0\u09bf\u09ae\u09be\u09a3 \u09a4\u09be\u09aa \u09aa\u09b0\u09bf\u09ac\u09be\u09b9\u09bf\u09a4 \u09b9\u09af\u09bc, \u09a4\u09be\u0995\u09c7 \u0993\u0987 \u0989\u09aa\u09be\u09a6\u09be\u09a8\u09c7\u09b0 \u09a4\u09be\u09aa \u09aa\u09b0\u09bf\u09ac\u09be\u09b9\u09bf\u09a4\u09be\u0999\u09cd\u0995 \u09ac\u09b2\u09c7\u0964<\/p>\n<\/details>\n<\/div>\n<style>#h5g-wrap-874 { 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-874 .h5g-toolbar { display: flex; justify-content: space-between; align-items: center; padding: 12px 20px; background: #1f2937; border-bottom: 1px solid #374151; }\n#h5g-wrap-874 .h5g-title { color: #f3f4f6; font-weight: 600; font-size: 14px; letter-spacing: 0.5px; text-transform: uppercase; }\n#h5g-wrap-874 .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-874 .h5g-fs-btn:hover { background: #2563eb; }\n#h5g-wrap-874 .h5g-fs-btn svg { width: 16px; height: 16px; fill: currentColor; }\n#h5g-wrap-874 .h5g-fs-btn.exit-mode { background: #166534; padding: 6px 12px; font-size: 12px; }\n#h5g-wrap-874 .h5g-fs-btn.exit-mode:hover { background: #14532d; }\n#h5g-wrap-874 .h5g-iframe-container { width: 100%; height: 75vh; min-height: 550px; max-height: 700px; position: relative; background: #000; }\n#h5g-wrap-874 iframe { width: 100%; height: 100%; border: none; display: block; }\n@media (max-width: 480px) {\n    #h5g-wrap-874 .h5g-iframe-container { min-height: 600px; }\n}\n#h5g-wrap-874:fullscreen { max-width: 100%; width: 100%; height: 100%; margin: 0; border-radius: 0; display: flex; flex-direction: column; }\n#h5g-wrap-874:fullscreen .h5g-iframe-container { height: 100%; flex-grow: 1; min-height: 0; max-height: none; }\n#h5g-wrap-874:-webkit-full-screen { max-width: 100%; width: 100%; height: 100%; margin: 0; border-radius: 0; display: flex; flex-direction: column; }\n#h5g-wrap-874:-webkit-full-screen .h5g-iframe-container { height: 100%; flex-grow: 1; min-height: 0; max-height: none; }\n#h5g-wrap-874:-ms-fullscreen { max-width: 100%; width: 100%; height: 100%; margin: 0; border-radius: 0; display: flex; flex-direction: column; }\n#h5g-wrap-874:-ms-fullscreen .h5g-iframe-container { height: 100%; flex-grow: 1; min-height: 0; max-height: none; }<\/style><div id=\"h5g-wrap-874\" class=\"h5g-wrapper\">  <div class=\"h5g-toolbar\">    <div class=\"h5g-title\">\u09a4\u09be\u09aa\u09c7\u09b0 \u0998\u099f\u09a8\u09be \u09b8\u09ae\u09c2\u09b9 \u2013 \u09a6\u09b6\u09ae \u09b6\u09cd\u09b0\u09c7\u09a3\u09bf\u09b0 \u09ad\u09cc\u09a4 \u09ac\u09bf\u099c\u09cd\u099e\u09be\u09a8 \u0985\u09a7\u09cd\u09af\u09be\u09df \u09ea<\/div>    <button id=\"h5g-fs-btn-874\" 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-874\" 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-color: #0f172a;\r\n    --surface-color: rgba(30, 41, 59, 0.95);\r\n    --primary-color: #3b82f6;\r\n    --primary-hover: #2563eb;\r\n    --success-color: #10b981;\r\n    --error-color: #ef4444;\r\n    --text-main: #f8fafc;\r\n    --text-muted: #94a3b8;\r\n    --header-height: 45px;\r\n    --font-family: system-ui, -apple-system, sans-serif;\r\n}\r\n\r\n* { box-sizing: border-box; margin: 0; padding: 0; -webkit-font-smoothing: antialiased; }\r\n\r\nbody {\r\n    font-family: var(--font-family); background-color: var(--bg-color); color: var(--text-main);\r\n    overflow: hidden; height: 100vh; width: 100vw;\r\n    touch-action: manipulation; -webkit-tap-highlight-color: transparent; user-select: none;\r\n}\r\n\r\n.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }\r\n\r\n#sim-root { display: flex; flex-direction: column; height: 100%; position: relative; }\r\n\r\n\/* \u0995\u09ae\u09aa\u09cd\u09af\u09be\u0995\u09cd\u099f \u09b9\u09c7\u09a1\u09be\u09b0 *\/\r\n.sim-header {\r\n    height: var(--header-height); background: #020617; display: flex; align-items: center; justify-content: space-between;\r\n    padding: 0 10px; border-bottom: 1px solid #334155; z-index: 50;\r\n}\r\n\r\n.main-tabs { display: flex; gap: 6px; }\r\n.main-tab-btn {\r\n    background: transparent; color: var(--text-muted); border: none; padding: 6px 12px;\r\n    border-radius: 6px; font-weight: 700; font-size: 0.9rem; cursor: pointer; transition: 0.3s;\r\n}\r\n.main-tab-btn.active { background: rgba(59, 130, 246, 0.15); color: #38bdf8; }\r\n\r\n.tts-btn { padding: 4px 10px; background: #334155; color: #fff; border: 1px solid #475569; border-radius: 4px; font-size: 0.8rem; cursor: pointer; }\r\n.tts-btn.active { background: var(--success-color); border-color: var(--success-color); }\r\n\r\n\/* \u09b8\u09c7\u0995\u09b6\u09a8 \u099f\u0997\u09b2 *\/\r\n.app-section { display: none; flex-direction: column; flex-grow: 1; height: calc(100vh - var(--header-height)); overflow: hidden; }\r\n.app-section.active { display: flex; }\r\n\r\n\/* ================= \u09b2\u09cd\u09af\u09be\u09ac \u09b8\u09bf\u09ae\u09c1\u09b2\u09c7\u099f\u09b0 ================= *\/\r\n#experiment-area { flex-grow: 1; position: relative; background: #0f172a; }\r\n.experiment-container { position: absolute; inset: 0; display: flex; flex-direction: column; padding: 8px 8px 120px 8px; opacity: 0; visibility: hidden; transition: opacity 0.3s; }\r\n.experiment-container.active { opacity: 1; visibility: visible; }\r\n.exp-title { font-size: 0.95rem; font-weight: 700; margin-bottom: 6px; text-align: center; color: #cbd5e1; }\r\n.canvas-wrapper { flex-grow: 1; border-radius: 8px; position: relative; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); background: radial-gradient(circle at center, #1e293b 0%, #020617 100%); overflow: hidden; }\r\ncanvas { width: 100% !important; height: 100% !important; display: block; border-radius: 8px; }\r\n\r\n\/* \u0995\u09ae\u09aa\u09cd\u09af\u09be\u0995\u09cd\u099f \u09a1\u0995 *\/\r\n.control-dock {\r\n    position: absolute; bottom: 0; width: 100%; background: var(--surface-color); backdrop-filter: blur(12px);\r\n    border-top: 1px solid rgba(255,255,255,0.1); padding: 10px; display: flex; flex-direction: column; gap: 10px; z-index: 20;\r\n    box-shadow: 0 -4px 15px rgba(0,0,0,0.5);\r\n}\r\n.module-nav { display: flex; gap: 6px; }\r\n.nav-btn { flex: 1; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); color: var(--text-muted); padding: 8px; border-radius: 6px; font-weight: 600; font-size: 0.85rem; cursor: pointer; }\r\n.nav-btn.active { background: var(--primary-color); color: #fff; border-color: var(--primary-hover); }\r\n\r\n.controls-row { display: flex; gap: 12px; align-items: flex-end; }\r\n.control-item { flex: 1; display: flex; flex-direction: column; gap: 4px; }\r\nlabel { font-size: 0.8rem; font-weight: 600; color: #cbd5e1; }\r\ninput[type=&quot;range&quot;] { width: 100%; height: 28px; background: transparent; appearance: none; outline: none; }\r\ninput[type=&quot;range&quot;]::-webkit-slider-runnable-track { width: 100%; height: 6px; background: #334155; border-radius: 3px; }\r\ninput[type=&quot;range&quot;]::-webkit-slider-thumb { appearance: none; width: 22px; height: 22px; border-radius: 50%; background: #38bdf8; margin-top: -8px; border: 2px solid #fff; cursor: pointer; }\r\nselect { width: 100%; padding: 6px 8px; background: #020617; color: #fff; border: 1px solid #475569; border-radius: 6px; font-size: 0.85rem; outline: none; }\r\n\r\n\/* ================= \u0997\u09c7\u09ae \u09b8\u09cd\u099f\u09be\u0987\u09b2 ================= *\/\r\n.game-layout { display: flex; flex-direction: column; height: 100%; padding: 12px; background: radial-gradient(circle at top, #1e293b 0%, #0f172a 100%); }\r\n.game-instruction { text-align: center; color: #cbd5e1; font-size: 0.9rem; margin-bottom: 15px; padding: 8px; background: rgba(255,255,255,0.05); border-radius: 8px; }\r\n\r\n.target-boxes { display: flex; gap: 10px; margin-bottom: 20px; position: relative; }\r\n.target-box {\r\n    flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;\r\n    background: rgba(30, 41, 59, 0.8); border: 2px dashed #475569; border-radius: 10px; padding: 15px 5px;\r\n    cursor: pointer; transition: all 0.2s; min-height: 120px;\r\n}\r\n.target-box.success { border-color: var(--success-color); background: rgba(16, 185, 129, 0.2); border-style: solid; }\r\n.target-box.error { border-color: var(--error-color); background: rgba(239, 68, 68, 0.2); animation: shake 0.4s; }\r\n.box-icon { font-size: 2rem; margin-bottom: 5px; }\r\n.box-label { font-weight: 700; font-size: 0.9rem; color: #e2e8f0; }\r\n\r\n\/* \u0985\u09cd\u09af\u09be\u09a8\u09bf\u09ae\u09c7\u099f\u09c7\u09a1 \u09b8\u09bf\u09b2\u09c7\u0995\u09b6\u09a8 \u0987\u09a8\u09cd\u09a1\u09bf\u0995\u09c7\u099f\u09b0 (Visual Hint) *\/\r\n.tap-hint {\r\n    position: absolute; top: -15px; left: 50%; transform: translateX(-50%);\r\n    font-size: 2rem; pointer-events: none; z-index: 100;\r\n    animation: tap-bounce 1s infinite; text-shadow: 0 2px 10px rgba(0,0,0,0.5);\r\n}\r\n\r\n.active-card-area { flex-grow: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; padding-bottom: 20px; }\r\n.game-progress { font-size: 0.8rem; color: #94a3b8; margin-bottom: 8px; font-weight: 600; }\r\n\r\n.pop-up-card {\r\n    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); color: #fff;\r\n    padding: 20px 16px; border-radius: 12px; text-align: center; font-size: 1.1rem; font-weight: 700;\r\n    width: 100%; max-width: 350px; box-shadow: 0 10px 20px rgba(0,0,0,0.5); border: 2px solid #60a5fa;\r\n    animation: slideUpFade 0.4s ease-out forwards;\r\n}\r\n.pop-up-card.placing { animation: placeUp 0.3s ease-in forwards; }\r\n\r\n.game-complete-screen { text-align: center; background: #1e293b; padding: 25px; border-radius: 12px; border: 2px solid var(--success-color); width: 100%; max-width: 350px; }\r\n.game-complete-screen h3 { color: var(--success-color); font-size: 1.3rem; margin-bottom: 10px; }\r\n.action-btn { background: var(--primary-color); color: white; border: none; padding: 10px 20px; border-radius: 6px; font-weight: 700; cursor: pointer; margin-top: 10px;}\r\n.hidden { display: none !important; }\r\n\r\n\/* \u099f\u09cb\u09b8\u09cd\u099f \u09ab\u09bf\u09a1\u09ac\u09cd\u09af\u09be\u0995 *\/\r\n.toast {\r\n    position: absolute; top: 60px; left: 50%; transform: translateX(-50%); width: 90%; max-width: 350px;\r\n    background: var(--error-color); color: #fff; padding: 10px 14px; border-radius: 6px; font-size: 0.9rem; font-weight: 600;\r\n    text-align: center; box-shadow: 0 10px 20px rgba(0,0,0,0.5); z-index: 100; transition: 0.3s;\r\n}\r\n.toast.success { background: var(--success-color); }\r\n.toast.hidden { opacity: 0; pointer-events: none; transform: translate(-50%, -20px); }\r\n\r\n\/* \u0985\u09cd\u09af\u09be\u09a8\u09bf\u09ae\u09c7\u09b6\u09a8 *\/\r\n@keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-6px); } 75% { transform: translateX(6px); } }\r\n@keyframes slideUpFade { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n@keyframes placeUp { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-80px) scale(0.6); } }\r\n@keyframes tap-bounce {\r\n    0% { transform: translate(-50%, 0) scale(1); opacity: 0.8; }\r\n    50% { transform: translate(-50%, 15px) scale(0.9); opacity: 1; }\r\n    100% { transform: translate(-50%, 0) scale(1); opacity: 0.8; }\r\n}&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;!DOCTYPE html&gt;\r\n&lt;html lang=&quot;bn&quot;&gt;\r\n&lt;head&gt;\r\n    &lt;meta charset=&quot;UTF-8&quot;&gt;\r\n    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot;&gt;\r\n    &lt;title&gt;\u09a4\u09be\u09aa\u09c0\u09af\u09bc \u0998\u099f\u09a8\u09be\u09b8\u09ae\u09c2\u09b9 | QSH&lt;\/title&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n    &lt;div id=&quot;sim-root&quot;&gt;\r\n        <!-- \u09a8\u09c7\u09aa\u09a5\u09cd\u09af\u09c7 \u09ad\u09af\u09bc\u09c7\u09b8 \u0985\u09cd\u09af\u09be\u09a8\u09be\u0989\u09a8\u09cd\u09b8\u09be\u09b0 -->\r\n        &lt;div id=&quot;tts-announcer&quot; class=&quot;sr-only&quot; aria-live=&quot;polite&quot;&gt;&lt;\/div&gt;\r\n        &lt;div id=&quot;feedback-toast&quot; class=&quot;toast hidden&quot;&gt;&lt;\/div&gt;\r\n\r\n        <!-- \u0995\u09ae\u09aa\u09cd\u09af\u09be\u0995\u09cd\u099f \u09b9\u09c7\u09a1\u09be\u09b0 -->\r\n        &lt;header class=&quot;sim-header&quot;&gt;\r\n            &lt;div class=&quot;main-tabs&quot;&gt;\r\n                &lt;button class=&quot;main-tab-btn active&quot; data-target=&quot;sect-lab&quot;&gt;\ud83d\udd2c \u09b2\u09cd\u09af\u09be\u09ac&lt;\/button&gt;\r\n                &lt;button class=&quot;main-tab-btn&quot; data-target=&quot;sect-game&quot;&gt;\ud83c\udfae \u0997\u09c7\u09ae&lt;\/button&gt;\r\n            &lt;\/div&gt;\r\n            &lt;button id=&quot;tts-toggle&quot; class=&quot;tts-btn&quot;&gt;\ud83d\udd0a \u09b6\u09ac\u09cd\u09a6 \u09ac\u09a8\u09cd\u09a7&lt;\/button&gt;\r\n        &lt;\/header&gt;\r\n\r\n        <!-- ========================================== -->\r\n        <!-- \u09b8\u09c7\u0995\u09b6\u09a8 \u09e7: \u09b2\u09cd\u09af\u09be\u09ac \u09b8\u09bf\u09ae\u09c1\u09b2\u09c7\u099f\u09b0                    -->\r\n        <!-- ========================================== -->\r\n        &lt;section id=&quot;sect-lab&quot; class=&quot;app-section active&quot;&gt;\r\n            <!-- \u09b2\u09cd\u09af\u09be\u09ac \u0995\u09cd\u09af\u09be\u09a8\u09ad\u09be\u09b8 \u098f\u09b0\u09bf\u09af\u09bc\u09be -->\r\n            &lt;main id=&quot;experiment-area&quot;&gt;\r\n                &lt;div class=&quot;experiment-container active&quot; id=&quot;exp1-solids&quot;&gt;\r\n                    &lt;div class=&quot;exp-title&quot;&gt;\u0995\u09a0\u09bf\u09a8\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3&lt;\/div&gt;\r\n                    &lt;div class=&quot;canvas-wrapper&quot;&gt;&lt;canvas id=&quot;solidsCanvas&quot;&gt;&lt;\/canvas&gt;&lt;\/div&gt;\r\n                &lt;\/div&gt;\r\n                &lt;div class=&quot;experiment-container&quot; id=&quot;exp2-liquids&quot;&gt;\r\n                    &lt;div class=&quot;exp-title&quot;&gt;\u09a4\u09b0\u09b2\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3&lt;\/div&gt;\r\n                    &lt;div class=&quot;canvas-wrapper&quot;&gt;&lt;canvas id=&quot;liquidsCanvas&quot;&gt;&lt;\/canvas&gt;&lt;\/div&gt;\r\n                &lt;\/div&gt;\r\n                &lt;div class=&quot;experiment-container&quot; id=&quot;exp3-conduction&quot;&gt;\r\n                    &lt;div class=&quot;exp-title&quot;&gt;\u09a4\u09be\u09aa\u09c7\u09b0 \u09aa\u09b0\u09bf\u09ac\u09b9\u09a8&lt;\/div&gt;\r\n                    &lt;div class=&quot;canvas-wrapper&quot;&gt;&lt;canvas id=&quot;conductionCanvas&quot;&gt;&lt;\/canvas&gt;&lt;\/div&gt;\r\n                &lt;\/div&gt;\r\n            &lt;\/main&gt;\r\n\r\n            <!-- \u0995\u09ae\u09aa\u09cd\u09af\u09be\u0995\u09cd\u099f \u0995\u09a8\u09cd\u099f\u09cd\u09b0\u09cb\u09b2 \u09a1\u0995 -->\r\n            &lt;footer class=&quot;control-dock&quot;&gt;\r\n                &lt;nav class=&quot;module-nav&quot;&gt;\r\n                    &lt;button class=&quot;nav-btn active&quot; data-exp=&quot;exp1-solids&quot;&gt;\u0995\u09a0\u09bf\u09a8&lt;\/button&gt;\r\n                    &lt;button class=&quot;nav-btn&quot; data-exp=&quot;exp2-liquids&quot;&gt;\u09a4\u09b0\u09b2&lt;\/button&gt;\r\n                    &lt;button class=&quot;nav-btn&quot; data-exp=&quot;exp3-conduction&quot;&gt;\u09aa\u09b0\u09bf\u09ac\u09b9\u09a8&lt;\/button&gt;\r\n                &lt;\/nav&gt;\r\n                \r\n                &lt;div class=&quot;controls-row&quot;&gt;\r\n                    &lt;div class=&quot;control-item&quot;&gt;\r\n                        &lt;label&gt;\u09a4\u09be\u09aa\u09ae\u09be\u09a4\u09cd\u09b0\u09be: &lt;span id=&quot;temp-val&quot;&gt;\u09e8\u09eb&lt;\/span&gt;\u00b0C&lt;\/label&gt;\r\n                        &lt;input type=&quot;range&quot; id=&quot;temp-slider&quot; min=&quot;0&quot; max=&quot;200&quot; value=&quot;25&quot; step=&quot;1&quot;&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=&quot;control-item&quot;&gt;\r\n                        &lt;label&gt;\u0989\u09aa\u09be\u09a6\u09be\u09a8 \u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8&lt;\/label&gt;\r\n                        &lt;select id=&quot;material-select&quot;&gt;\r\n                            &lt;option value=&quot;iron&quot;&gt;\u09b2\u09cb\u09b9\u09be \/ \u099c\u09b2&lt;\/option&gt;\r\n                            &lt;option value=&quot;copper&quot;&gt;\u09a4\u09be\u09ae\u09be \/ \u0985\u09cd\u09af\u09be\u09b2\u0995\u09cb\u09b9\u09b2&lt;\/option&gt;\r\n                            &lt;option value=&quot;aluminum&quot;&gt;\u0985\u09cd\u09af\u09be\u09b2\u09c1\u09ae\u09bf\u09a8\u09bf\u09af\u09bc\u09be\u09ae \/ \u09ac\u09c7\u09a8\u099c\u09bf\u09a8&lt;\/option&gt;\r\n                            &lt;option value=&quot;bimetallic&quot;&gt;\u09a6\u09cd\u09ac\u09bf-\u09a7\u09be\u09a4\u09ac \u09aa\u09be\u09a4&lt;\/option&gt;\r\n                        &lt;\/select&gt;\r\n                    &lt;\/div&gt;\r\n                &lt;\/div&gt;\r\n            &lt;\/footer&gt;\r\n        &lt;\/section&gt;\r\n\r\n        <!-- ========================================== -->\r\n        <!-- \u09b8\u09c7\u0995\u09b6\u09a8 \u09e8: \u0995\u09be\u09b0\u09cd\u09a1 \u0997\u09c7\u09ae                         -->\r\n        <!-- ========================================== -->\r\n        &lt;section id=&quot;sect-game&quot; class=&quot;app-section&quot;&gt;\r\n            &lt;div class=&quot;game-layout&quot;&gt;\r\n                &lt;div class=&quot;game-instruction&quot;&gt;\r\n                    \u09a8\u09bf\u099a\u09c7\u09b0 \u0998\u099f\u09a8\u09be\u099f\u09bf \u09aa\u09dc\u09cb \u098f\u09ac\u0982 \u0989\u09aa\u09b0\u09c7\u09b0 \u09b8\u09a0\u09bf\u0995 \u09ac\u0995\u09cd\u09b8\u09c7 \u099f\u09cd\u09af\u09be\u09aa \u0995\u09b0\u09cb\u0964\r\n                &lt;\/div&gt;\r\n                \r\n                <!-- \u099f\u09be\u09b0\u09cd\u0997\u09c7\u099f \u09ac\u0995\u09cd\u09b8 -->\r\n                &lt;div class=&quot;target-boxes&quot; id=&quot;target-boxes-container&quot;&gt;\r\n                    <!-- CSS Animated Hint Indicator -->\r\n                    &lt;div class=&quot;tap-hint&quot; id=&quot;tap-hint&quot;&gt;\ud83d\udc46&lt;\/div&gt;\r\n                    \r\n                    &lt;div class=&quot;target-box&quot; data-category=&quot;solid&quot;&gt;\r\n                        &lt;div class=&quot;box-icon&quot;&gt;\ud83e\uddf1&lt;\/div&gt;\r\n                        &lt;div class=&quot;box-label&quot;&gt;\u0995\u09a0\u09bf\u09a8\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3&lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=&quot;target-box&quot; data-category=&quot;fluid&quot;&gt;\r\n                        &lt;div class=&quot;box-icon&quot;&gt;\ud83d\udca7&lt;\/div&gt;\r\n                        &lt;div class=&quot;box-label&quot;&gt;\u09a4\u09b0\u09b2\/\u0997\u09cd\u09af\u09be\u09b8\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3&lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                &lt;\/div&gt;\r\n\r\n                <!-- \u09aa\u09aa-\u0986\u09aa \u0995\u09be\u09b0\u09cd\u09a1 \u098f\u09b0\u09bf\u09af\u09bc\u09be -->\r\n                &lt;div class=&quot;active-card-area&quot;&gt;\r\n                    &lt;div class=&quot;card-stack&quot; id=&quot;card-stack&quot;&gt;\r\n                        &lt;div class=&quot;game-progress&quot; id=&quot;game-progress&quot;&gt;\u09aa\u09cd\u09b0\u09b6\u09cd\u09a8 \u09e7 \/ \u09ec&lt;\/div&gt;\r\n                        &lt;div class=&quot;pop-up-card&quot; id=&quot;active-card&quot;&gt;\r\n                            <!-- JS \u09a6\u09cd\u09ac\u09be\u09b0\u09be \u09a1\u09be\u09af\u09bc\u09a8\u09be\u09ae\u09bf\u0995 \u099f\u09c7\u0995\u09cd\u09b8\u099f \u0986\u09b8\u09ac\u09c7 -->\r\n                        &lt;\/div&gt;\r\n                    &lt;\/div&gt;\r\n                    &lt;div class=&quot;game-complete-screen hidden&quot; id=&quot;game-complete&quot;&gt;\r\n                        &lt;h3&gt;\ud83c\udf89 \u09a6\u09be\u09b0\u09c1\u09a8 \u0996\u09c7\u09b2\u09c7\u099b\u09cb!&lt;\/h3&gt;\r\n                        &lt;p&gt;\u09a4\u09c1\u09ae\u09bf \u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u09ac \u09ae\u09bf\u09b2\u09bf\u09df\u09c7\u099b\u09cb\u0964&lt;\/p&gt;\r\n                        &lt;button class=&quot;action-btn&quot; id=&quot;restart-game-btn&quot;&gt;\u0986\u09ac\u09be\u09b0 \u0996\u09c7\u09b2\u09c1\u09a8&lt;\/button&gt;\r\n                    &lt;\/div&gt;\r\n                &lt;\/div&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/section&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&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: 874,\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: 874, 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;(function() {\r\n    &quot;use strict&quot;;\r\n\r\n    \/\/ --- \u0997\u09cd\u09b2\u09cb\u09ac\u09be\u09b2 \u09b8\u09cd\u099f\u09c7\u099f ---\r\n    const state = {\r\n        activeTab: 'sect-lab',\r\n        startTime: Date.now(),\r\n        ttsEnabled: false,\r\n        \/\/ \u09b2\u09cd\u09af\u09be\u09ac \u09b8\u09cd\u099f\u09c7\u099f\r\n        lab: { temp: 25, lastTemp: 25, material: 'iron', experiment: 'exp1-solids' },\r\n        \/\/ \u0997\u09c7\u09ae \u09b8\u09cd\u099f\u09c7\u099f\r\n        game: { currentIndex: 0, isAnimating: false, toastTimeout: null }\r\n    };\r\n\r\n    const $ = (id) =&gt; document.getElementById(id);\r\n    const $$ = (selector) =&gt; document.querySelectorAll(selector);\r\n\r\n    \/\/ --- \u09ad\u09af\u09bc\u09c7\u09b8 \u0993 \u099f\u09cb\u09b8\u09cd\u099f \u09ab\u09bf\u09a1\u09ac\u09cd\u09af\u09be\u0995 (\u09ac\u09be\u0982\u09b2\u09be) ---\r\n    function announce(text, isError = false) {\r\n        $('tts-announcer').textContent = text;\r\n        if (state.ttsEnabled &amp;&amp; 'speechSynthesis' in window) {\r\n            window.speechSynthesis.cancel();\r\n            const utterance = new SpeechSynthesisUtterance(text);\r\n            utterance.lang = 'bn-IN';\r\n            utterance.pitch = isError ? 0.9 : 1.0;\r\n            window.speechSynthesis.speak(utterance);\r\n        }\r\n    }\r\n\r\n    function showToast(message, type = 'error') {\r\n        const toast = $('feedback-toast');\r\n        clearTimeout(state.game.toastTimeout);\r\n        toast.textContent = message;\r\n        toast.className = `toast ${type}`;\r\n        announce(message, type === 'error');\r\n        state.game.toastTimeout = setTimeout(() =&gt; { toast.classList.add('hidden'); }, 3500);\r\n    }\r\n\r\n    function engToBngNum(num) {\r\n        const bngDigits = ['\u09e6','\u09e7','\u09e8','\u09e9','\u09ea','\u09eb','\u09ec','\u09ed','\u09ee','\u09ef'];\r\n        return num.toString().split('').map(d =&gt; bngDigits[d] || d).join('');\r\n    }\r\n\r\n    \/\/ ==========================================\r\n    \/\/ \u09e7. \u099f\u09cd\u09af\u09be\u09ac \u0995\u09a8\u09cd\u099f\u09cd\u09b0\u09cb\u09b2\r\n    \/\/ ==========================================\r\n    $$('.main-tab-btn').forEach(btn =&gt; {\r\n        btn.addEventListener('pointerdown', (e) =&gt; {\r\n            e.preventDefault();\r\n            $$('.main-tab-btn').forEach(b =&gt; b.classList.remove('active'));\r\n            $$('.app-section').forEach(s =&gt; s.classList.remove('active'));\r\n            \r\n            btn.classList.add('active');\r\n            state.activeTab = btn.dataset.target;\r\n            $(state.activeTab).classList.add('active');\r\n            \r\n            announce(state.activeTab === 'sect-lab' ? &quot;\u09b2\u09cd\u09af\u09be\u09ac \u099a\u09be\u09b2\u09c1 \u09b9\u09af\u09bc\u09c7\u099b\u09c7&quot; : &quot;\u0997\u09c7\u09ae \u099a\u09be\u09b2\u09c1 \u09b9\u09af\u09bc\u09c7\u099b\u09c7&quot;);\r\n        });\r\n    });\r\n\r\n    $('tts-toggle').addEventListener('pointerdown', (e) =&gt; {\r\n        e.preventDefault();\r\n        state.ttsEnabled = !state.ttsEnabled;\r\n        e.target.classList.toggle('active');\r\n        e.target.textContent = state.ttsEnabled ? '\ud83d\udd0a \u09b6\u09ac\u09cd\u09a6 \u099a\u09be\u09b2\u09c1' : '\ud83d\udd0a \u09b6\u09ac\u09cd\u09a6 \u09ac\u09a8\u09cd\u09a7';\r\n        if(state.ttsEnabled) announce(&quot;\u09b6\u09ac\u09cd\u09a6 \u099a\u09be\u09b2\u09c1 \u09b9\u09af\u09bc\u09c7\u099b\u09c7&quot;);\r\n    });\r\n\r\n    \/\/ ==========================================\r\n    \/\/ \u09e8. \u09b2\u09cd\u09af\u09be\u09ac \u09b8\u09bf\u09ae\u09c1\u09b2\u09c7\u099f\u09b0 \u09b2\u099c\u09bf\u0995 (\u0989\u099a\u09cd\u099a\u09ae\u09be\u09a8\u09c7\u09b0 \u0995\u09cd\u09af\u09be\u09a8\u09ad\u09be\u09b8)\r\n    \/\/ ==========================================\r\n    const labPhysics = {\r\n        alpha: { iron: 25, copper: 45, aluminum: 60, bimetallic: 0 }, \r\n        gammaFluid: { iron: 800, copper: 2500, aluminum: 3500 },\r\n        k: { iron: 80, copper: 400, aluminum: 235, bimetallic: 100 }\r\n    };\r\n\r\n    const contexts = {};\r\n    function initCanvas(canvasId) {\r\n        const canvas = $(canvasId);\r\n        if (!canvas) return null;\r\n        const ctx = canvas.getContext('2d', { alpha: false });\r\n        contexts[canvasId] = { canvas, ctx, w: 0, h: 0 };\r\n        \r\n        const resize = () =&gt; {\r\n            const rect = canvas.parentElement.getBoundingClientRect();\r\n            const dpr = window.devicePixelRatio || 1;\r\n            canvas.width = rect.width * dpr; canvas.height = rect.height * dpr;\r\n            contexts[canvasId].w = rect.width; contexts[canvasId].h = rect.height;\r\n            ctx.scale(dpr, dpr);\r\n        };\r\n        resize();\r\n        new ResizeObserver(resize).observe(canvas.parentElement);\r\n    }\r\n    initCanvas('solidsCanvas'); initCanvas('liquidsCanvas'); initCanvas('conductionCanvas');\r\n\r\n    function drawLab() {\r\n        if (state.activeTab !== 'sect-lab') return;\r\n        \r\n        if (state.lab.experiment === 'exp1-solids') {\r\n            const { ctx, w, h } = contexts['solidsCanvas'];\r\n            ctx.fillStyle = '#0f172a'; ctx.fillRect(0, 0, w, h);\r\n            const dT = state.lab.temp - 25;\r\n            const baseL = w * 0.55; const baseH = 45;\r\n            const x = (w - baseL) \/ 2; const y = h * 0.35;\r\n\r\n            if (state.lab.material === 'bimetallic') {\r\n                const bend = dT * 0.6;\r\n                ctx.lineCap = 'round'; ctx.lineWidth = 18;\r\n                ctx.beginPath(); ctx.moveTo(x, y + 9); ctx.quadraticCurveTo(x + baseL\/2, y + 9 - bend, x + baseL, y + 9);\r\n                ctx.strokeStyle = '#94a3b8'; ctx.stroke();\r\n                ctx.beginPath(); ctx.moveTo(x, y - 9); ctx.quadraticCurveTo(x + baseL\/2, y - 9 - bend, x + baseL, y - 9);\r\n                ctx.strokeStyle = '#d97706'; ctx.stroke();\r\n                ctx.fillStyle = '#38bdf8'; ctx.font = 'bold 14px sans-serif'; ctx.textAlign = 'center';\r\n                ctx.fillText(dT &gt; 0 ? '\u09a4\u09be\u09ae\u09be\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u09ac\u09c7\u09b6\u09bf, \u09b2\u09cb\u09b9\u09be \u09ad\u09bf\u09a4\u09b0\u09c7\u09b0 \u09a6\u09bf\u0995\u09c7 \u09ac\u09be\u0981\u0995\u099b\u09c7' : '\u09a6\u09cd\u09ac\u09bf-\u09a7\u09be\u09a4\u09ac \u09aa\u09be\u09a4', w\/2, y + 50 + Math.abs(bend\/2));\r\n            } else {\r\n                const expF = 1 + (labPhysics.alpha[state.lab.material] * dT * 0.005);\r\n                ctx.strokeStyle = 'rgba(255,255,255,0.3)'; ctx.lineWidth = 2; ctx.strokeRect(x, y, baseL, baseH);\r\n                ctx.fillStyle = state.lab.material === 'copper' ? '#d97706' : (state.lab.material === 'iron' ? '#94a3b8' : '#e2e8f0');\r\n                const expL = baseL * expF; ctx.fillRect(w\/2 - expL\/2, y, expL, baseH);\r\n                ctx.fillStyle = '#38bdf8'; ctx.font = 'bold 15px sans-serif'; ctx.textAlign = 'center';\r\n                const pct = ((expF - 1) * 100).toFixed(1);\r\n                ctx.fillText(`\u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3: ${engToBngNum(pct)}%`, w\/2, y + baseH + 30);\r\n            }\r\n        } \r\n        else if (state.lab.experiment === 'exp2-liquids') {\r\n            if(state.lab.material === 'bimetallic') return;\r\n            const { ctx, w, h } = contexts['liquidsCanvas'];\r\n            ctx.fillStyle = '#0f172a'; ctx.fillRect(0, 0, w, h);\r\n            const flaskW = 100; const flaskH = h * 0.6;\r\n            const x = w\/2 - flaskW\/2; const y = h * 0.75 - flaskH;\r\n            const dT = state.lab.temp - 25;\r\n            \r\n            const contExp = 1 + (30 * dT * 0.001); \r\n            const liqExp = 1 + (labPhysics.gammaFluid[state.lab.material] * dT * 0.0002);\r\n            const apparentLevel = Math.max(10, (flaskH * 0.3) * (liqExp \/ contExp));\r\n\r\n            ctx.fillStyle = state.lab.material === 'copper' ? 'rgba(244, 63, 94, 0.85)' : 'rgba(56, 189, 248, 0.85)';\r\n            ctx.fillRect(x + 2, y + flaskH - apparentLevel, flaskW - 4, apparentLevel);\r\n            ctx.strokeStyle = '#cbd5e1'; ctx.lineWidth = 3; ctx.strokeRect(x, y, flaskW, flaskH);\r\n            ctx.fillStyle = '#38bdf8'; ctx.font = 'bold 15px sans-serif'; ctx.textAlign = 'center';\r\n            ctx.fillText(`\u09a4\u09b0\u09b2\u09c7\u09b0 \u0986\u09aa\u09be\u09a4 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3`, w\/2, y + flaskH + 25);\r\n        }\r\n        else if (state.lab.experiment === 'exp3-conduction') {\r\n            const { ctx, w, h } = contexts['conductionCanvas'];\r\n            ctx.fillStyle = '#0f172a'; ctx.fillRect(0, 0, w, h);\r\n            const barW = w * 0.8; const barH = 60;\r\n            const x = (w - barW) \/ 2; const y = h * 0.35 - barH \/ 2;\r\n            \r\n            const grad = ctx.createLinearGradient(x, y, x + barW, y);\r\n            const tInt = state.lab.temp \/ 200; \r\n            grad.addColorStop(0, `rgb(${Math.min(255, 50 + 205 * tInt)}, 40, 40)`); \r\n            grad.addColorStop(1, `rgb(40, 40, 200)`); \r\n            ctx.fillStyle = grad; ctx.fillRect(x, y, barW, barH);\r\n            \r\n            const k = labPhysics.k[state.lab.material];\r\n            const ag = (k \/ 80) * (state.lab.temp \/ 25);\r\n            ctx.fillStyle = 'rgba(255, 255, 255, 0.9)';\r\n            for (let i = 0; i &lt; 40; i++) {\r\n                ctx.beginPath();\r\n                ctx.arc(x + Math.random()*barW + (Math.random()-0.5)*ag, y + Math.random()*barH + (Math.random()-0.5)*ag, 2.5, 0, Math.PI*2);\r\n                ctx.fill();\r\n            }\r\n            ctx.fillStyle = '#38bdf8'; ctx.font = 'bold 15px sans-serif'; ctx.textAlign = 'center';\r\n            ctx.fillText(`\u09aa\u09b0\u09bf\u09ac\u09be\u09b9\u09bf\u09a4\u09be\u0999\u09cd\u0995 (k): ${engToBngNum(k)}`, w\/2, y + barH + 30);\r\n        }\r\n    }\r\n\r\n    let tempTimeout;\r\n    $('temp-slider').addEventListener('input', (e) =&gt; {\r\n        state.lab.temp = parseInt(e.target.value);\r\n        $('temp-val').textContent = engToBngNum(state.lab.temp);\r\n        clearTimeout(tempTimeout);\r\n        tempTimeout = setTimeout(() =&gt; {\r\n            if (state.lab.temp &gt; state.lab.lastTemp) announce(&quot;\u09a4\u09be\u09aa \u09ac\u09c3\u09a6\u09cd\u09a7\u09bf\u09a4\u09c7 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u0993 \u0986\u09a3\u09ac\u09bf\u0995 \u099a\u09be\u099e\u09cd\u099a\u09b2\u09cd\u09af \u09ac\u09be\u09a1\u09bc\u099b\u09c7\u0964&quot;);\r\n            else if (state.lab.temp &lt; state.lab.lastTemp) announce(&quot;\u09a4\u09be\u09aa \u0995\u09ae\u09be\u09af\u09bc \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u0993 \u0986\u09a3\u09ac\u09bf\u0995 \u099a\u09be\u099e\u09cd\u099a\u09b2\u09cd\u09af \u09b9\u09cd\u09b0\u09be\u09b8 \u09aa\u09be\u099a\u09cd\u099b\u09c7\u0964&quot;);\r\n            state.lab.lastTemp = state.lab.temp;\r\n        }, 500);\r\n    });\r\n\r\n    $('material-select').addEventListener('change', (e) =&gt; {\r\n        state.lab.material = e.target.value;\r\n    });\r\n\r\n    $$('.module-nav .nav-btn').forEach(btn =&gt; {\r\n        btn.addEventListener('pointerdown', (e) =&gt; {\r\n            e.preventDefault();\r\n            $$('.module-nav .nav-btn').forEach(b =&gt; b.classList.remove('active'));\r\n            $$('.experiment-container').forEach(c =&gt; c.classList.remove('active'));\r\n            btn.classList.add('active');\r\n            state.lab.experiment = btn.dataset.exp;\r\n            $(state.lab.experiment).classList.add('active');\r\n        });\r\n    });\r\n\r\n    \/\/ ==========================================\r\n    \/\/ \u09e9. \u0997\u09c7\u09ae \u09b2\u099c\u09bf\u0995 (\u0995\u09be\u09b0\u09cd\u09a1 \u09b8\u09b0\u09cd\u099f\u09bf\u0982 \u0993 \u09a1\u09be\u09af\u09bc\u09a8\u09be\u09ae\u09bf\u0995 \u09aa\u09aa-\u0986\u09aa)\r\n    \/\/ ==========================================\r\n    const gameCards = [\r\n        { cat: 'solid', text: '\u0997\u09cb\u09b0\u09c1\u09b0 \u0997\u09be\u09a1\u09bc\u09bf\u09b0 \u0995\u09be\u09a0\u09c7\u09b0 \u099a\u09be\u0995\u09be\u09af\u09bc \u09b2\u09cb\u09b9\u09be\u09b0 \u09ac\u09c7\u09a1\u09bc \u0997\u09b0\u09ae \u0995\u09b0\u09c7 \u09aa\u09b0\u09be\u09a8\u09cb', hint: '\u09b2\u09cb\u09b9\u09be \u0995\u09a0\u09bf\u09a8 \u09aa\u09a6\u09be\u09b0\u09cd\u09a5, \u0997\u09b0\u09ae \u0995\u09b0\u09b2\u09c7 \u09a4\u09be \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4 \u09b9\u09af\u09bc\u0964' },\r\n        { cat: 'fluid', text: '\u099c\u09b2 \u0997\u09b0\u09ae \u09b9\u09af\u09bc\u09c7 \u09ac\u09be\u09b7\u09cd\u09aa \u09b9\u09af\u09bc\u09c7 \u0986\u0995\u09be\u09b6\u09c7 \u0989\u09a1\u09bc\u09c7 \u09af\u09be\u0993\u09af\u09bc\u09be', hint: '\u098f\u099f\u09bf \u09a4\u09b0\u09b2 \u09a5\u09c7\u0995\u09c7 \u0997\u09cd\u09af\u09be\u09b8\u09c7 \u0985\u09ac\u09b8\u09cd\u09a5\u09be\u09b0 \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0993 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3\u0964' },\r\n        { cat: 'solid', text: '\u09ab\u09be\u09af\u09bc\u09be\u09b0 \u0985\u09cd\u09af\u09be\u09b2\u09be\u09b0\u09cd\u09ae\u09c7 \u09a6\u09cd\u09ac\u09bf-\u09a7\u09be\u09a4\u09ac \u09aa\u09be\u09a4 \u09ac\u09c7\u0981\u0995\u09c7 \u09af\u09be\u0993\u09af\u09bc\u09be', hint: '\u09a6\u09c1\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \u0995\u09a0\u09bf\u09a8 \u09a7\u09be\u09a4\u09c1\u09b0 \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u0986\u09b2\u09be\u09a6\u09be \u09b9\u09df \u09ac\u09b2\u09c7 \u098f\u099f\u09bf \u09ac\u09be\u0981\u0995\u09c7\u0964' },\r\n        { cat: 'solid', text: '\u0995\u09be\u0981\u099a\u09c7\u09b0 \u09ac\u09cb\u09a4\u09b2\u09c7\u09b0 \u0986\u099f\u0995\u09c7 \u09a5\u09be\u0995\u09be \u09a7\u09be\u09a4\u09ac \u099b\u09bf\u09aa\u09bf \u0997\u09b0\u09ae \u0995\u09b0\u09c7 \u0996\u09cb\u09b2\u09be', hint: '\u0995\u09be\u0981\u099a\u09c7\u09b0 \u099a\u09c7\u09af\u09bc\u09c7 \u09a7\u09be\u09a4\u09ac \u099b\u09bf\u09aa\u09bf\u09b0 (\u0995\u09a0\u09bf\u09a8) \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3 \u09ac\u09c7\u09b6\u09bf \u09b9\u09af\u09bc\u0964' },\r\n        { cat: 'fluid', text: '\u09a5\u09be\u09b0\u09cd\u09ae\u09cb\u09ae\u09bf\u099f\u09be\u09b0\u09c7\u09b0 \u09aa\u09be\u09b0\u09a6 \u0989\u09aa\u09b0\u09c7\u09b0 \u09a6\u09bf\u0995\u09c7 \u0993\u09a0\u09be', hint: '\u09a4\u09be\u09aa\u09c7 \u09a4\u09b0\u09b2 \u09aa\u09a6\u09be\u09b0\u09cd\u09a5\u09c7\u09b0 (\u09aa\u09be\u09b0\u09a6\u09c7\u09b0) \u0986\u09af\u09bc\u09a4\u09a8 \u09ac\u09c3\u09a6\u09cd\u09a7\u09bf \u09aa\u09be\u09af\u09bc\u0964' },\r\n        { cat: 'solid', text: '\u09b0\u09c7\u09b2\u09b2\u09be\u0987\u09a8\u09c7\u09b0 \u099c\u09cb\u09a1\u09bc\u09c7\u09b0 \u09ae\u09c1\u0996\u09c7 \u09ab\u09be\u0981\u0995 \u09b0\u09be\u0996\u09be', hint: '\u09b0\u09cb\u09a6\u09c7\u09b0 \u09a4\u09be\u09aa\u09c7 \u09b2\u09cb\u09b9\u09be\u09b0 \u09b2\u09be\u0987\u09a8 (\u0995\u09a0\u09bf\u09a8) \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4 \u09b9\u09af\u09bc\u0964' }\r\n    ];\r\n\r\n    let shuffledCards = [];\r\n\r\n    function initGameData() {\r\n        \/\/ \u09aa\u09cd\u09b0\u09b6\u09cd\u09a8\u0997\u09c1\u09b2\u09cb \u098f\u09b2\u09cb\u09ae\u09c7\u09b2\u09cb \u0995\u09b0\u09be \u09b9\u09b2\u09cb\r\n        shuffledCards = [...gameCards].sort(() =&gt; Math.random() - 0.5);\r\n        state.game.currentIndex = 0;\r\n        $('game-complete').classList.add('hidden');\r\n        $('card-stack').classList.remove('hidden');\r\n        \r\n        \/\/ GameController Hook (Start)\r\n        if (window.GameController &amp;&amp; typeof window.GameController.saveScore === 'function') {\r\n            window.GameController.saveScore(0, 0, { event: &quot;game_started&quot; });\r\n        }\r\n        \r\n        renderNextCard();\r\n    }\r\n\r\n    function renderNextCard() {\r\n        if (state.game.currentIndex &gt;= shuffledCards.length) {\r\n            $('card-stack').classList.add('hidden');\r\n            $('game-complete').classList.remove('hidden');\r\n            $('tap-hint').classList.add('hidden'); \/\/ \u09b9\u09be\u0987\u09a1 \u0987\u09a8\u09cd\u09a1\u09bf\u0995\u09c7\u099f\u09b0\r\n            showToast(&quot;\u0985\u09ad\u09bf\u09a8\u09a8\u09cd\u09a6\u09a8! \u0997\u09c7\u09ae \u09b8\u09ae\u09cd\u09aa\u09c2\u09b0\u09cd\u09a3 \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964&quot;, 'success');\r\n            \r\n            \/\/ GameController Hook (Complete)\r\n            if (window.GameController &amp;&amp; typeof window.GameController.saveScore === 'function') {\r\n                const time = Math.floor((Date.now() - state.startTime) \/ 1000);\r\n                window.GameController.saveScore(100, time, { level: 1, accuracy: 100, event: &quot;game_completed&quot; });\r\n            }\r\n            return;\r\n        }\r\n\r\n        const cardData = shuffledCards[state.game.currentIndex];\r\n        const cardEl = $('active-card');\r\n        \r\n        cardEl.className = 'pop-up-card';\r\n        cardEl.textContent = cardData.text;\r\n        cardEl.dataset.cat = cardData.cat;\r\n        \r\n        $('game-progress').textContent = `\u09aa\u09cd\u09b0\u09b6\u09cd\u09a8 ${engToBngNum(state.game.currentIndex + 1)} \/ ${engToBngNum(shuffledCards.length)}`;\r\n        \r\n        \/\/ \u0985\u09cd\u09af\u09be\u09a8\u09bf\u09ae\u09c7\u099f\u09c7\u09a1 \u09b9\u09bf\u09a8\u09cd\u099f \u09b0\u09bf\u09b8\u09cd\u099f\u09be\u09b0\u09cd\u099f\r\n        const hint = $('tap-hint');\r\n        hint.classList.remove('hidden');\r\n        hint.style.animation = 'none';\r\n        void hint.offsetWidth; \r\n        hint.style.animation = 'tap-bounce 1s infinite';\r\n\r\n        announce(`\u09aa\u09cd\u09b0\u09b6\u09cd\u09a8: ${cardData.text}\u0964 \u0989\u09aa\u09b0\u09c7\u09b0 \u09b8\u09a0\u09bf\u0995 \u09ac\u0995\u09cd\u09b8\u09c7 \u099f\u09cd\u09af\u09be\u09aa \u0995\u09b0\u09cb\u0964`);\r\n    }\r\n\r\n    \/\/ \u09ac\u0995\u09cd\u09b8\u09c7 \u099f\u09cd\u09af\u09be\u09aa \u0995\u09b0\u09be\u09b0 \u0987\u09ad\u09c7\u09a8\u09cd\u099f\r\n    $$('.target-box').forEach(box =&gt; {\r\n        box.addEventListener('pointerdown', (e) =&gt; {\r\n            e.preventDefault();\r\n            if (state.game.isAnimating || state.activeTab !== 'sect-game' || state.game.currentIndex &gt;= shuffledCards.length) return;\r\n\r\n            const selectedCat = box.dataset.category;\r\n            const currentCard = shuffledCards[state.game.currentIndex];\r\n            const cardEl = $('active-card');\r\n\r\n            state.game.isAnimating = true;\r\n\r\n            if (selectedCat === currentCard.cat) {\r\n                \/\/ \u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0\r\n                box.classList.add('success');\r\n                cardEl.classList.add('placing');\r\n                $('tap-hint').classList.add('hidden'); \/\/ \u09b8\u09a0\u09bf\u0995 \u09b9\u09b2\u09c7 \u09b9\u09be\u09a4 \u09b2\u09c1\u0995\u09bf\u09df\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\r\n                announce(&quot;\u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0!&quot;, false);\r\n\r\n                setTimeout(() =&gt; {\r\n                    box.classList.remove('success');\r\n                    state.game.currentIndex++;\r\n                    state.game.isAnimating = false;\r\n                    renderNextCard();\r\n                }, 350); \r\n            } else {\r\n                \/\/ \u09ad\u09c1\u09b2 \u0989\u09a4\u09cd\u09a4\u09b0\r\n                box.classList.add('error');\r\n                showToast(`\u09ad\u09c1\u09b2! ${currentCard.hint}`, 'error');\r\n\r\n                setTimeout(() =&gt; {\r\n                    box.classList.remove('error');\r\n                    state.game.isAnimating = false;\r\n                }, 500);\r\n            }\r\n        });\r\n    });\r\n\r\n    $('restart-game-btn').addEventListener('pointerdown', (e) =&gt; {\r\n        e.preventDefault();\r\n        initGameData();\r\n    });\r\n\r\n    \/\/ --- \u09b2\u09c1\u09aa ---\r\n    function loop() {\r\n        drawLab();\r\n        requestAnimationFrame(loop);\r\n    }\r\n    \r\n    \/\/ \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09be\r\n    initGameData();\r\n    requestAnimationFrame(loop);\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-874';\n    var btnId  = 'h5g-fs-btn-874';\n    var gameId = 874;\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>\u09a6\u09b6\u09ae \u09b6\u09cd\u09b0\u09c7\u09a3\u09bf\u09b0 \u09ad\u09cc\u09a4\u09ac\u09bf\u099c\u09cd\u099e\u09be\u09a8\u09c7\u09b0 \u099a\u09a4\u09c1\u09b0\u09cd\u09a5 \u0985\u09a7\u09cd\u09af\u09be\u09af\u09bc\u09c7 \u09a4\u09cb\u09ae\u09be\u09a6\u09c7\u09b0 \u09b8\u09cd\u09ac\u09be\u0997\u09a4! \u09a4\u09cb\u09ae\u09b0\u09be \u0995\u09bf \u0995\u0996\u09a8\u09cb \u09ad\u09c7\u09ac\u09c7 \u09a6\u09c7\u0996\u09c7\u099b \u0995\u09c7\u09a8 \u0997\u09cb\u09b0\u09c1\u09b0 \u0997\u09be\u09a1\u09bc\u09bf\u09b0 \u0995\u09be\u09a0\u09c7\u09b0 \u099a\u09be\u0995\u09be\u09af\u09bc \u09b2\u09cb\u09b9\u09be\u09b0 \u09ac\u09c7\u09a1\u09bc \u09aa\u09b0\u09be\u09a8\u09cb\u09b0 \u09b8\u09ae\u09af\u09bc \u09a4\u09be\u0995\u09c7 \u0997\u09b0\u09ae \u0995\u09b0\u09be \u09b9\u09af\u09bc? \u0985\u09a5\u09ac\u09be \u0995\u09be\u0981\u099a\u09c7\u09b0 \u09ac\u09cb\u09a4\u09b2\u09c7\u09b0 \u09a7\u09be\u09a4\u09ac \u099b\u09bf\u09aa\u09bf \u0986\u099f\u0995\u09c7 \u0997\u09c7\u09b2\u09c7 \u098f\u0995\u099f\u09c1 \u0997\u09b0\u09ae \u0995\u09b0\u09b2\u09c7\u0987 \u0995\u09c7\u09a8 \u09b8\u09b9\u099c\u09c7 \u0996\u09c1\u09b2\u09c7 \u09af\u09be\u09af\u09bc? \u098f\u09b0 \u0989\u09a4\u09cd\u09a4\u09b0 \u09b2\u09c1\u0995\u09bf\u09af\u09bc\u09c7 \u0986\u099b\u09c7 \u09a4\u09be\u09aa\u09c0\u09af\u09bc \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09a3\u09c7\u09b0 (Thermal Expansion) \u09ae\u09a7\u09cd\u09af\u09c7\u0964 \u09a4\u09be\u09aa \u09a6\u09bf\u09b2\u09c7 \u0995\u09a0\u09bf\u09a8, \u09a4\u09b0\u09b2 \u098f\u09ac\u0982 \u0997\u09cd\u09af\u09be\u09b8\u09c0\u09af\u09bc\u2014 \u09b8\u09ac [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-874","post","type-post","status-publish","format-standard","hentry","category-class-x-physical-science"],"_links":{"self":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/874","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=874"}],"version-history":[{"count":4,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/874\/revisions"}],"predecessor-version":[{"id":1137,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/874\/revisions\/1137"}],"wp:attachment":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/media?parent=874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/categories?post=874"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/tags?post=874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}