{"id":27086,"date":"2026-08-25T22:22:32","date_gmt":"2026-08-25T16:52:32","guid":{"rendered":"https:\/\/qsh.in\/boards\/wbbse\/?p=27086"},"modified":"2026-08-25T22:31:01","modified_gmt":"2026-08-25T17:01:01","slug":"multiplying-with-zeros","status":"publish","type":"post","link":"https:\/\/qsh.in\/boards\/wbbse\/mental-math\/multiplying-with-zeros\/","title":{"rendered":"\u09b6\u09c2\u09a8\u09cd\u09af\u09c7\u09b0 \u09b2\u09c1\u0995\u09cb\u099a\u09c1\u09b0\u09bf \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995! (Treasure Cave)"},"content":{"rendered":"<p>\u0986\u099c\u0995\u09c7\u09b0 \u09ae\u09bf\u09b6\u09a8 \u0996\u09c1\u09ac \u09b0\u09cb\u09ae\u09be\u099e\u09cd\u099a\u0995\u09b0! \u09a4\u09c1\u09ae\u09bf \u098f\u09b8\u09c7 \u09aa\u09dc\u09c7\u099b\u09cb \u098f\u0995 \u09b0\u09b9\u09b8\u09cd\u09af\u09ae\u09df \u0997\u09c1\u09aa\u09cd\u09a4\u09a7\u09a8\u09c7\u09b0 \u0997\u09c1\u09b9\u09be\u09b0 \u09b8\u09be\u09ae\u09a8\u09c7\u0964 \u098f\u0987 \u0997\u09c1\u09b9\u09be\u09b0 \u09a6\u09b0\u099c\u09be\u09df \u09ac\u09dc \u09ac\u09dc \u09b8\u0982\u0996\u09cd\u09af\u09be\u09b0 \u0997\u09c1\u09a3\u09c7\u09b0 \u09a4\u09be\u09b2\u09be \u09b2\u09be\u0997\u09be\u09a8\u09cb \u0986\u099b\u09c7\u0964 \u0997\u09c1\u09a3\u0997\u09c1\u09b2\u09cb\u09b0 \u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0 \u09a6\u09bf\u09a4\u09c7 \u09aa\u09be\u09b0\u09b2\u09c7\u0987 \u09aa\u09be\u09a5\u09b0\u09c7\u09b0 \u09a6\u09b0\u099c\u09be \u0996\u09c1\u09b2\u09c7 \u09af\u09be\u09ac\u09c7 \u098f\u09ac\u0982 \u09a4\u09c1\u09ae\u09bf \u09aa\u09c7\u09df\u09c7 \u09af\u09be\u09ac\u09c7 \u09b0\u09be\u09b6\u09bf \u09b0\u09be\u09b6\u09bf \u09b0\u09a4\u09cd\u09a8! \u0995\u09bf\u09a8\u09cd\u09a4\u09c1 \u098f\u09a4 \u09ac\u09dc \u0997\u09c1\u09a3 \u0996\u09be\u09a4\u09be-\u0995\u09b2\u09ae \u099b\u09be\u09dc\u09be \u0995\u09c0\u09ad\u09be\u09ac\u09c7 \u0995\u09b0\u09ac\u09c7?<\/p>\n<p>\u09ad\u09df \u09a8\u09c7\u0987, \u0986\u099c \u0986\u09ae\u09bf \u09a4\u09cb\u09ae\u09be\u0995\u09c7 \u09b6\u09c7\u0996\u09be\u09ac <strong>\u201c\u09b2\u09c1\u0995\u09cb\u099a\u09c1\u09b0\u09bf \u099c\u09bf\u09b0\u09cb\u201d (Hide and Seek Zeros)<\/strong> \u09a8\u09be\u09ae\u09c7\u09b0 \u098f\u0995\u099f\u09bf \u099c\u09be\u09a6\u09c1\u0995\u09b0\u09c0 \u099f\u09cd\u09b0\u09bf\u0995!<\/p>\n<h3>\u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u099f\u09cd\u09b0\u09bf\u0995: \u09b6\u09c2\u09a8\u09cd\u09af\u0995\u09c7 \u0986\u09dc\u09be\u09b2 \u0995\u09b0\u09be\u09b0 \u0995\u09cc\u09b6\u09b2 \u2728<\/h3>\n<p>\u09ac\u09dc \u09b8\u0982\u0996\u09cd\u09af\u09be\u09b0 \u0997\u09c1\u09a3\u09c7\u09b0 \u09ad\u09bf\u09a4\u09cd\u09a4\u09bf \u09b9\u09b2\u09cb \u09e7\u09e6, \u09e8\u09e6, \u09e7\u09e6\u09e6 \u09ac\u09be \u09e9\u09e6\u09e6 \u098f\u09b0 \u09ae\u09a4\u09cb \u09b6\u09c2\u09a8\u09cd\u09af-\u09af\u09c1\u0995\u09cd\u09a4 \u09b8\u0982\u0996\u09cd\u09af\u09be (Multiples of 10 &amp; 100)\u0964 \u0997\u09c1\u09a3\u09c7\u09b0 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 \u09b6\u09c2\u09a8\u09cd\u09af \u09a6\u09c7\u0996\u09b2\u09c7 \u09ad\u09df \u09aa\u09be\u0993\u09df\u09be\u09b0 \u0995\u09bf\u099b\u09c1 \u09a8\u09c7\u0987, \u09ac\u09b0\u0982 \u09b6\u09c2\u09a8\u09cd\u09af \u09a5\u09be\u0995\u09b2\u09c7 \u0997\u09c1\u09a3 \u0995\u09b0\u09be \u09b8\u09ac\u099a\u09c7\u09df\u09c7 \u09b8\u09b9\u099c!<\/p>\n<p><strong>\u09a8\u09bf\u09df\u09ae\u099f\u09bf \u09b9\u09b2\u09cb:<\/strong> \u09af\u0996\u09a8 \u0995\u09cb\u09a8\u09cb \u09b8\u0982\u0996\u09cd\u09af\u09be\u09b0 \u09b6\u09c7\u09b7\u09c7 \u09b6\u09c2\u09a8\u09cd\u09af \u09a5\u09be\u0995\u09c7, \u09a4\u0996\u09a8 \u09b8\u09be\u09ae\u09df\u09bf\u0995\u09ad\u09be\u09ac\u09c7 \u09b6\u09c2\u09a8\u09cd\u09af\u0997\u09c1\u09b2\u09cb\u0995\u09c7 \u09b2\u09c1\u0995\u09bf\u09df\u09c7 \u09b0\u09be\u0996\u09cb \u098f\u09ac\u0982 \u09b6\u09c1\u09a7\u09c1 \u09ae\u09c2\u09b2 \u09b8\u0982\u0996\u09cd\u09af\u09be\u0997\u09c1\u09b2\u09cb \u0997\u09c1\u09a3 \u0995\u09b0\u09cb\u0964 \u0997\u09c1\u09a3\u09ab\u09b2 \u09aa\u09be\u0993\u09df\u09be\u09b0 \u09aa\u09b0 \u09b2\u09c1\u0995\u09bf\u09df\u09c7 \u09b0\u09be\u0996\u09be \u09b6\u09c2\u09a8\u09cd\u09af\u0997\u09c1\u09b2\u09cb \u0986\u09ac\u09be\u09b0 \u09b6\u09c7\u09b7\u09c7 \u09ac\u09b8\u09bf\u09df\u09c7 \u09a6\u09be\u0993!<\/p>\n<p><strong>\u0989\u09a6\u09be\u09b9\u09b0\u09a3 \u09e7 \u09a6\u09c7\u0996\u09cb: \u09ed \u00d7 \u09ea\u09e6 = ?<\/strong><\/p>\n<ul>\n<li><strong>\u09a7\u09be\u09aa \u09e7:<\/strong> \u09ea\u09e6 \u098f\u09b0 \u09b6\u09c2\u09a8\u09cd\u09af (\u09e6) \u099f\u09bf\u0995\u09c7 \u09ae\u09a8\u09c7 \u09ae\u09a8\u09c7 \u09b2\u09c1\u0995\u09bf\u09df\u09c7 \u09ab\u09c7\u09b2\u09cb\u0964 \u098f\u0996\u09a8 \u0985\u0999\u09cd\u0995\u099f\u09bf \u09a6\u09be\u0981\u09dc\u09be\u09b2\u09cb: \u09ed \u00d7 \u09ea\u0964<\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e8:<\/strong> \u09a8\u09be\u09ae\u09a4\u09be \u09aa\u09dc\u09c7 \u09b9\u09bf\u09b8\u09be\u09ac \u0995\u09b0\u09cb: \u09ed \u00d7 \u09ea = <strong>\u09e8\u09ee<\/strong>\u0964<\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e9:<\/strong> \u098f\u09ac\u09be\u09b0 \u0993\u0987 \u09b2\u09c1\u0995\u09bf\u09df\u09c7 \u09b0\u09be\u0996\u09be \u098f\u0995\u099f\u09bf \u09b6\u09c2\u09a8\u09cd\u09af (\u09e6) \u09e8\u09ee \u098f\u09b0 \u09b6\u09c7\u09b7\u09c7 \u09ac\u09b8\u09bf\u09df\u09c7 \u09a6\u09be\u0993\u0964<\/li>\n<\/ul>\n<p>\u0989\u09a4\u09cd\u09a4\u09b0 \u09aa\u09c7\u09df\u09c7 \u0997\u09c7\u09b2\u09c7 \u2794 <strong>\u09e8\u09ee\u09e6<\/strong>!<\/p>\n<h3>\u098f\u0995\u09be\u09a7\u09bf\u0995 \u09b6\u09c2\u09a8\u09cd\u09af\u09c7\u09b0 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 \u0995\u09c0 \u0995\u09b0\u09ac\u09c7? \ud83e\udd14<\/h3>\n<p><strong>\u0989\u09a6\u09be\u09b9\u09b0\u09a3 \u09e8 \u09a6\u09c7\u0996\u09cb: \u09ec\u09e6\u09e6 \u00d7 \u09e9\u09e6\u09e6 = ?<\/strong><\/p>\n<ul>\n<li><strong>\u09a7\u09be\u09aa \u09e7:<\/strong> \u09ae\u09cb\u099f \u09ea\u099f\u09bf \u09b6\u09c2\u09a8\u09cd\u09af (\u09e6) \u09b2\u09c1\u0995\u09bf\u09df\u09c7 \u09ab\u09c7\u09b2\u09cb\u0964 \u09ac\u09be\u0995\u09bf \u09a5\u09be\u0995\u09c7 \u09b6\u09c1\u09a7\u09c1 \u09ec \u00d7 \u09e9\u0964<\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e8:<\/strong> \u0997\u09c1\u09a3 \u0995\u09b0\u09cb: \u09ec \u00d7 \u09e9 = <strong>\u09e7\u09ee<\/strong>\u0964<\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e9:<\/strong> \u098f\u09ac\u09be\u09b0 \u09e7\u09ee \u098f\u09b0 \u09b6\u09c7\u09b7\u09c7 \u0993\u0987 \u09ea\u099f\u09bf \u09b6\u09c2\u09a8\u09cd\u09af \u098f\u0995\u09b8\u09be\u09a5\u09c7 \u09ac\u09b8\u09bf\u09df\u09c7 \u09a6\u09be\u0993\u0964<\/li>\n<\/ul>\n<p>\u0989\u09a4\u09cd\u09a4\u09b0 \u09b9\u09b2\u09cb \u2794 <strong>\u09e7\u09ee\u09e6,\u09e6\u09e6\u09e6<\/strong> (\u098f\u0995 \u09b2\u0995\u09cd\u09b7 \u0986\u09b6\u09bf \u09b9\u09be\u099c\u09be\u09b0)! \u09a6\u09c7\u0996\u09b2\u09c7 \u09a4\u09cb \u0995\u09a4 \u09b8\u09b9\u099c\u09c7 \u09ac\u09dc \u09ac\u09dc \u0997\u09c1\u09a3 \u09b9\u09df\u09c7 \u0997\u09c7\u09b2\u09cb!<\/p>\n<h3>\u098f\u09ac\u09be\u09b0 \u09a4\u09cb\u09ae\u09be\u09b0 \u09aa\u09be\u09b2\u09be! \u09a6\u09b0\u099c\u09be \u0996\u09cb\u09b2! \ud83d\ude80<\/h3>\n<p>\u098f\u0996\u09a8 \u09a4\u09c1\u09ae\u09bf \u09a8\u09bf\u09df\u09ae\u099f\u09be \u099c\u09c7\u09a8\u09c7 \u0997\u09c7\u099b\u09cb\u0964 \u0996\u09be\u09a4\u09be-\u0995\u09b2\u09ae \u09a6\u09c2\u09b0\u09c7 \u09b8\u09b0\u09bf\u09df\u09c7 \u09b0\u09be\u0996\u09cb \u098f\u09ac\u0982 \u09a8\u09bf\u099a\u09c7 \u09a5\u09be\u0995\u09be \u0997\u09c7\u09ae\u099f\u09bf\u09a4\u09c7 <strong>\u201c\u0997\u09c1\u09b9\u09be\u09df \u09aa\u09cd\u09b0\u09ac\u09c7\u09b6 \u0995\u09b0\u09cb\u201d<\/strong> \u09ac\u09be\u099f\u09a8\u09c7 \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09cb\u0964 \u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09a8\u09c7 \u0997\u09c1\u09a3\u09c7\u09b0 \u0985\u0999\u09cd\u0995 \u098f\u09b2\u09c7\u0987 \u09b6\u09c2\u09a8\u09cd\u09af\u0997\u09c1\u09b2\u09cb\u0995\u09c7 \u09b2\u09c1\u0995\u09bf\u09df\u09c7 \u09ae\u09c2\u09b2 \u09b8\u0982\u0996\u09cd\u09af\u09be\u0997\u09c1\u09b2\u09cb \u0997\u09c1\u09a3 \u0995\u09b0\u09cb \u098f\u09ac\u0982 \u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0\u099f\u09bf \u09ac\u09c7\u099b\u09c7 \u09a8\u09be\u0993\u0964 \u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0 \u09a6\u09bf\u09b2\u09c7\u0987 \u09aa\u09be\u09a5\u09b0\u09c7\u09b0 \u09a6\u09b0\u099c\u09be \u0996\u09c1\u09b2\u09c7 \u09af\u09be\u09ac\u09c7!<\/p>\n<p>\u09a6\u09c7\u0996\u09bf \u09a4\u09c1\u09ae\u09bf \u0986\u099c \u0995\u09a4 \u09b0\u09a4\u09cd\u09a8 \u09b8\u0982\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09a4\u09c7 \u09aa\u09be\u09b0\u09cb! \u099a\u09b2\u09cb \u0996\u09c7\u09b2\u09bf\u2026<\/p>\n    <div id=\"qsh-27086-145\" class=\"qsh-sim-frame-wrap\" style=\"--qsh-aspect: 1\/1;\">\n        <div class=\"qsh-sim-bar\">\n            <div class=\"qsh-sim-label\"><span class=\"qsh-dot\"><\/span> Interactive Simulator<\/div>\n            <div class=\"qsh-sim-controls\">\n                <button type=\"button\" class=\"qsh-sim-btn qsh-btn-reload\" onclick=\"document.getElementById('if-qsh-27086-145').srcdoc = document.getElementById('if-qsh-27086-145').srcdoc;\" aria-label=\"Restart\">\n                    <svg viewbox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"currentColor\"><path d=\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"><\/path><\/svg>\n                <\/button>\n                <button type=\"button\" class=\"qsh-sim-btn qsh-btn-fs\" id=\"fs-btn-qsh-27086-145\" aria-label=\"Fullscreen\">\n                    <svg viewbox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"currentColor\"><path d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"><\/path><\/svg>\n                    <span>Expand<\/span>\n                <\/button>\n            <\/div>\n        <\/div>\n        <div class=\"qsh-sim-viewport\">\n            <iframe id=\"if-qsh-27086-145\" srcdoc=\"&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;&lt;base href=&quot;https:\/\/qsh.in\/boards\/wbbse\/&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot;&gt;&lt;style&gt;*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;touch-action:manipulation;background:#0b0f19;color:#f8fafc;font-family:system-ui,-apple-system,sans-serif;}&lt;\/style&gt;&lt;style&gt;#sim-root {\r\n    position: relative;\r\n    width: 100%;\r\n    height: 100vh;\r\n    min-height: 600px;\r\n    background-color: #0d0907;\r\n    color: #fff3e0;\r\n    font-family: 'Noto Sans Bengali', system-ui, sans-serif;\r\n    overflow: hidden;\r\n    display: flex;\r\n    flex-direction: column;\r\n    touch-action: manipulation;\r\n    -webkit-tap-highlight-color: transparent;\r\n    user-select: none;\r\n}\r\n\r\n.screen {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    display: none;\r\n    flex-direction: column;\r\n    justify-content: center;\r\n    align-items: center;\r\n    background: radial-gradient(circle at center, #2e1c12 0%, #0d0907 100%);\r\n    z-index: 10;\r\n}\r\n\r\n.screen.active {\r\n    display: flex;\r\n}\r\n\r\n#game-screen {\r\n    z-index: 1;\r\n    background: transparent;\r\n}\r\n\r\n.panel {\r\n    background: rgba(20, 10, 5, 0.9);\r\n    border: 2px solid #ff9100;\r\n    border-radius: 16px;\r\n    padding: 2rem;\r\n    max-width: 90%;\r\n    width: 500px;\r\n    text-align: center;\r\n    box-shadow: 0 0 40px rgba(255, 145, 0, 0.4);\r\n    backdrop-filter: blur(10px);\r\n}\r\n\r\n.panel h1 {\r\n    color: #ffb300;\r\n    margin-top: 0;\r\n    font-size: clamp(1.8rem, 5vw, 2.5rem);\r\n    text-shadow: 0 0 10px rgba(255, 179, 0, 0.5);\r\n}\r\n\r\n.panel p {\r\n    font-size: 1.1rem;\r\n    line-height: 1.6;\r\n    margin-bottom: 1.5rem;\r\n}\r\n\r\n.trick-box {\r\n    background: rgba(255, 145, 0, 0.15);\r\n    border-left: 4px solid #ffab00;\r\n    padding: 12px;\r\n    font-size: 1rem !important;\r\n    text-align: left;\r\n    color: #ffecb3;\r\n    border-radius: 0 8px 8px 0;\r\n}\r\n\r\n.action-btn {\r\n    background: linear-gradient(45deg, #ff9100, #ff6d00);\r\n    color: #fff;\r\n    border: none;\r\n    padding: 12px 35px;\r\n    font-size: 1.3rem;\r\n    border-radius: 8px;\r\n    cursor: pointer;\r\n    font-weight: bold;\r\n    transition: all 0.2s;\r\n    box-shadow: 0 5px 20px rgba(255, 109, 0, 0.5);\r\n}\r\n\r\n.action-btn:active {\r\n    transform: scale(0.95);\r\n    box-shadow: 0 2px 10px rgba(255, 109, 0, 0.5);\r\n}\r\n\r\n\/* HUD *\/\r\n#hud {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    padding: 15px 20px;\r\n    display: flex;\r\n    justify-content: space-between;\r\n    box-sizing: border-box;\r\n    font-size: 1.2rem;\r\n    font-weight: bold;\r\n    color: #ffd54f;\r\n    z-index: 5;\r\n    background: linear-gradient(to bottom, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0) 100%);\r\n    text-shadow: 2px 2px 4px #000;\r\n}\r\n\r\n\/* Energy Bar *\/\r\n#timer-container {\r\n    position: absolute;\r\n    top: 60px;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    width: 80%;\r\n    max-width: 400px;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 10px;\r\n    z-index: 5;\r\n}\r\n\r\n#timer-label {\r\n    font-size: 1rem;\r\n    font-weight: bold;\r\n    color: #00e5ff;\r\n    text-transform: uppercase;\r\n    text-shadow: 0 0 5px #00e5ff;\r\n}\r\n\r\n#timer-bar-wrap {\r\n    flex-grow: 1;\r\n    height: 14px;\r\n    background: rgba(0,0,0,0.7);\r\n    border-radius: 8px;\r\n    overflow: hidden;\r\n    border: 2px solid #00e5ff;\r\n    box-shadow: 0 0 10px rgba(0, 229, 255, 0.3);\r\n}\r\n\r\n#timer-bar {\r\n    width: 100%;\r\n    height: 100%;\r\n    background: linear-gradient(90deg, #00b0ff, #00e5ff);\r\n    transition: width 0.1s linear, background 0.3s;\r\n}\r\n\r\n\/* Problem Display *\/\r\n#problem-display {\r\n    position: absolute;\r\n    top: 100px;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    z-index: 5;\r\n    background: rgba(20, 10, 5, 0.85);\r\n    border: 2px solid #ff9100;\r\n    padding: 12px 40px;\r\n    border-radius: 12px;\r\n    backdrop-filter: blur(5px);\r\n    box-shadow: 0 5px 25px rgba(255, 145, 0, 0.4);\r\n}\r\n\r\n.problem-text {\r\n    font-size: clamp(2.2rem, 6vw, 3.2rem);\r\n    font-weight: bold;\r\n    color: #ffffff;\r\n    letter-spacing: 3px;\r\n    text-shadow: 0 0 15px rgba(255, 145, 0, 0.8);\r\n}\r\n\r\n\/* Canvas *\/\r\n#game-canvas {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    z-index: 2;\r\n    background: linear-gradient(to bottom, #1a0f0a 0%, #0d0603 100%);\r\n}\r\n\r\n\/* Control Dock *\/\r\n#control-dock {\r\n    position: absolute;\r\n    bottom: 25px;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    width: 95%;\r\n    max-width: 600px;\r\n    display: grid;\r\n    grid-template-columns: repeat(3, 1fr);\r\n    gap: 12px;\r\n    z-index: 10;\r\n}\r\n\r\n.option-btn {\r\n    background: rgba(46, 28, 20, 0.95);\r\n    border: 2px solid #ff9100;\r\n    color: #ffffff;\r\n    font-size: clamp(1.5rem, 4vw, 2.2rem);\r\n    padding: 15px 0;\r\n    border-radius: 12px;\r\n    cursor: pointer;\r\n    font-weight: bold;\r\n    transition: all 0.1s;\r\n    backdrop-filter: blur(8px);\r\n    box-shadow: 0 6px 15px rgba(0,0,0,0.6);\r\n}\r\n\r\n.option-btn:active {\r\n    background: #ff9100;\r\n    color: #000;\r\n    transform: scale(0.95);\r\n}\r\n\r\n.option-btn.correct {\r\n    background: #00e676;\r\n    color: #000;\r\n    border-color: #00e676;\r\n}\r\n\r\n.option-btn.wrong {\r\n    background: #ff1744;\r\n    color: #fff;\r\n    border-color: #ff1744;\r\n    animation: shake 0.3s;\r\n}\r\n\r\n@keyframes shake {\r\n    0%, 100% { transform: translateX(0); }\r\n    25% { transform: translateX(-6px); }\r\n    75% { transform: translateX(6px); }\r\n}&lt;\/style&gt;&lt;\/head&gt;&lt;body&gt;&lt;div id=&quot;sim-root&quot;&gt;\r\n    <!-- Start Screen -->\r\n    &lt;div id=&quot;start-screen&quot; class=&quot;screen active&quot;&gt;\r\n        &lt;div class=&quot;panel&quot;&gt;\r\n            &lt;h2&gt;\u0995\u09c7\u09ad \u09b0\u09be\u09a8\u09be\u09b0: \u0997\u09c1\u09aa\u09cd\u09a4\u09a7\u09a8\u09c7\u09b0 \u0996\u09cb\u0981\u099c\u09c7&lt;\/h2&gt;\r\n            &lt;p&gt;\u09a4\u09c1\u09ae\u09bf \u098f\u0995\u099f\u09bf \u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u0997\u09c1\u09b9\u09be\u09df \u09a6\u09cc\u09dc\u09be\u099a\u09cd\u099b\u09cb! \u09b8\u09be\u09ae\u09a8\u09c7 \u09aa\u09be\u09a5\u09b0\u09c7\u09b0 \u09ac\u09be\u09a7\u09be\u0964 \u09ac\u09be\u09a7\u09be \u09ad\u09be\u0999\u09a4\u09c7 \u09b9\u09b2\u09c7 \u09a4\u09cb\u09ae\u09be\u0995\u09c7 \u0997\u09c1\u09a3\u09c7\u09b0 \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u099f\u09cd\u09b0\u09bf\u0995 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7\u0964&lt;\/p&gt;\r\n            &lt;p class=&quot;trick-box&quot;&gt;&lt;strong&gt;\u09ac\u09c8\u09a6\u09bf\u0995 \u099f\u09cd\u09b0\u09bf\u0995:&lt;\/strong&gt; \u09b6\u09c2\u09a8\u09cd\u09af\u0997\u09c1\u09b2\u09cb\u0995\u09c7 (0) \u09b8\u09be\u09ae\u09df\u09bf\u0995\u09ad\u09be\u09ac\u09c7 \u09b2\u09c1\u0995\u09bf\u09df\u09c7 \u09b0\u09be\u0996\u09cb\u0964 \u09b6\u09c1\u09a7\u09c1 \u09ae\u09c2\u09b2 \u09b8\u0982\u0996\u09cd\u09af\u09be\u0997\u09c1\u09b2\u09cb \u0997\u09c1\u09a3 \u0995\u09b0\u09cb, \u09a4\u09be\u09b0\u09aa\u09b0 \u09b2\u09c1\u0995\u09be\u09a8\u09cb \u09b6\u09c2\u09a8\u09cd\u09af\u0997\u09c1\u09b2\u09cb \u0986\u09ac\u09be\u09b0 \u09b6\u09c7\u09b7\u09c7 \u09ac\u09b8\u09bf\u09df\u09c7 \u09a6\u09be\u0993!&lt;\/p&gt;\r\n            &lt;p&gt;\u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0 \u09a6\u09be\u0993, \u098f\u09a8\u09be\u09b0\u09cd\u099c\u09bf \u09ac\u09be\u09dc\u09be\u0993 \u098f\u09ac\u0982 \u09b8\u09cd\u09aa\u09bf\u09a1 \u09a1\u09cd\u09af\u09be\u09b6 \u0995\u09b0\u09c7 \u09aa\u09be\u09a5\u09b0 \u09ad\u09c7\u0999\u09c7 \u09ab\u09c7\u09b2\u09cb!&lt;\/p&gt;\r\n            &lt;button id=&quot;start-btn&quot; class=&quot;action-btn&quot;&gt;\u09a6\u09cc\u09dc \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09cb&lt;\/button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n\r\n    <!-- Game Screen -->\r\n    &lt;div id=&quot;game-screen&quot; class=&quot;screen&quot;&gt;\r\n        <!-- HUD -->\r\n        &lt;div id=&quot;hud&quot;&gt;\r\n            &lt;div class=&quot;hud-item&quot;&gt;\u09b8\u09cd\u0995\u09cb\u09b0: &lt;span id=&quot;score-display&quot;&gt;\u09e6&lt;\/span&gt;&lt;\/div&gt;\r\n            &lt;div class=&quot;hud-item&quot;&gt;\u09b2\u09c7\u09ad\u09c7\u09b2: &lt;span id=&quot;level-display&quot;&gt;\u09e7&lt;\/span&gt;&lt;\/div&gt;\r\n            &lt;div class=&quot;hud-item&quot;&gt;\u09b2\u09be\u0987\u09ab: &lt;span id=&quot;lives-display&quot;&gt;\u2764\ufe0f\u2764\ufe0f\u2764\ufe0f&lt;\/span&gt;&lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n        \r\n        <!-- Energy\/Timer Bar -->\r\n        &lt;div id=&quot;timer-container&quot;&gt;\r\n            &lt;div id=&quot;timer-label&quot;&gt;\u098f\u09a8\u09be\u09b0\u09cd\u099c\u09bf&lt;\/div&gt;\r\n            &lt;div id=&quot;timer-bar-wrap&quot;&gt;&lt;div id=&quot;timer-bar&quot;&gt;&lt;\/div&gt;&lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n\r\n        <!-- Problem Display -->\r\n        &lt;div id=&quot;problem-display&quot;&gt;\r\n            &lt;div class=&quot;problem-text&quot; id=&quot;math-problem&quot;&gt;\u09ec\u09e6 \u00d7 \u09ea\u09e6 = ?&lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n\r\n        <!-- Canvas for Animation -->\r\n        &lt;canvas id=&quot;game-canvas&quot;&gt;&lt;\/canvas&gt;\r\n\r\n        <!-- Controls \/ Numpad Dock (3 Options) -->\r\n        &lt;div id=&quot;control-dock&quot;&gt;\r\n            &lt;button class=&quot;option-btn&quot; data-index=&quot;0&quot;&gt;\u09e6&lt;\/button&gt;\r\n            &lt;button class=&quot;option-btn&quot; data-index=&quot;1&quot;&gt;\u09e6&lt;\/button&gt;\r\n            &lt;button class=&quot;option-btn&quot; data-index=&quot;2&quot;&gt;\u09e6&lt;\/button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n\r\n    <!-- Game Over Screen -->\r\n    &lt;div id=&quot;game-over-screen&quot; class=&quot;screen&quot;&gt;\r\n        &lt;div class=&quot;panel&quot;&gt;\r\n            &lt;h1 id=&quot;end-title&quot;&gt;\u0997\u09c1\u09b9\u09be\u09df \u0986\u099f\u0995\u09c7 \u0997\u09c7\u099b\u09cb!&lt;\/h1&gt;\r\n            &lt;p id=&quot;end-message&quot;&gt;\u09a4\u09cb\u09ae\u09be\u09b0 \u098f\u09a8\u09be\u09b0\u09cd\u099c\u09bf \u09b6\u09c7\u09b7 \u0985\u09a5\u09ac\u09be \u09a4\u09c1\u09ae\u09bf \u09aa\u09be\u09a5\u09b0\u09c7 \u09a7\u09be\u0995\u09cd\u0995\u09be \u0996\u09c7\u09df\u09c7\u099b\u09cb\u0964&lt;\/p&gt;\r\n            &lt;p&gt;\u09a4\u09cb\u09ae\u09be\u09b0 \u099a\u09c2\u09dc\u09be\u09a8\u09cd\u09a4 \u09b8\u09cd\u0995\u09cb\u09b0: &lt;span id=&quot;final-score&quot;&gt;\u09e6&lt;\/span&gt;&lt;\/p&gt;\r\n            &lt;button id=&quot;restart-btn&quot; class=&quot;action-btn&quot;&gt;\u0986\u09ac\u09be\u09b0 \u0996\u09c7\u09b2\u09cb&lt;\/button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;&lt;script&gt;\n        window.GameController = {\n            saveScore: function(score, time, extraData) {\n                window.parent.postMessage({\n                    action: 'qsh_save_score',\n                    sim_id: 27086,\n                    score: score,\n                    time: time || 0,\n                    meta: extraData || {}\n                }, 'https:\/\/qsh.in\/boards\/wbbse');\n            }\n        };\n    &lt;\/script&gt;&lt;script&gt;(function() {\r\n    'use strict';\r\n\r\n    \/\/ --- Utility: Bengali Numerals ---\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    \r\n    function toBengali(num) {\r\n        return num.toString().split('').map(d =&gt; EN_TO_BN[d] || d).join('');\r\n    }\r\n\r\n    \/\/ --- State &amp; Variables ---\r\n    let state = {\r\n        isPlaying: false,\r\n        score: 0,\r\n        level: 1,\r\n        lives: 3,\r\n        timeLeft: 12000,\r\n        maxTime: 12000,\r\n        lastTime: 0,\r\n        currentProblem: null,\r\n        correctIndex: 0,\r\n        sceneState: 'run', \/\/ run, dash, stumble\r\n        accuracy: { correct: 0, total: 0 }\r\n    };\r\n\r\n    \/\/ Animation &amp; Parallax Variables\r\n    let animPhase = 0;\r\n    let bgOffset = 0;\r\n    let fgOffset = 0;\r\n    let speed = 5;\r\n    let obstacleX = 1000;\r\n    let particles = [];\r\n    let speedLines = [];\r\n\r\n    \/\/ --- Audio System ---\r\n    const AudioCtx = window.AudioContext || window.webkitAudioContext;\r\n    let actx;\r\n\r\n    function initAudio() {\r\n        if (!actx) actx = new AudioCtx();\r\n        if (actx.state === 'suspended') actx.resume();\r\n    }\r\n\r\n    function playSound(type) {\r\n        if (!actx) return;\r\n        const osc = actx.createOscillator();\r\n        const gain = actx.createGain();\r\n        osc.connect(gain);\r\n        gain.connect(actx.destination);\r\n        const now = actx.currentTime;\r\n\r\n        if (type === 'dash') {\r\n            osc.type = 'sawtooth';\r\n            osc.frequency.setValueAtTime(200, now);\r\n            osc.frequency.exponentialRampToValueAtTime(800, now + 0.4);\r\n            gain.gain.setValueAtTime(0.3, now);\r\n            gain.gain.exponentialRampToValueAtTime(0.01, now + 0.4);\r\n            osc.start(now); osc.stop(now + 0.4);\r\n        } else if (type === 'smash') {\r\n            osc.type = 'square';\r\n            osc.frequency.setValueAtTime(100, now);\r\n            osc.frequency.exponentialRampToValueAtTime(20, now + 0.3);\r\n            gain.gain.setValueAtTime(0.5, now);\r\n            gain.gain.exponentialRampToValueAtTime(0.01, now + 0.3);\r\n            osc.start(now); osc.stop(now + 0.3);\r\n        } else if (type === 'stumble') {\r\n            osc.type = 'triangle';\r\n            osc.frequency.setValueAtTime(150, now);\r\n            osc.frequency.linearRampToValueAtTime(50, now + 0.4);\r\n            gain.gain.setValueAtTime(0.5, now);\r\n            gain.gain.linearRampToValueAtTime(0.01, now + 0.4);\r\n            osc.start(now); osc.stop(now + 0.4);\r\n        }\r\n    }\r\n\r\n    function announce(text) {\r\n        if ('speechSynthesis' in window) {\r\n            window.speechSynthesis.cancel();\r\n            const msg = new SpeechSynthesisUtterance(text);\r\n            msg.rate = 1.3; msg.pitch = 0.9; msg.lang = 'bn-IN'; \r\n            window.speechSynthesis.speak(msg);\r\n        }\r\n    }\r\n\r\n    \/\/ --- Canvas Rendering (Vector Art) ---\r\n    const canvas = document.getElementById('game-canvas');\r\n    const ctx = canvas.getContext('2d');\r\n    let animationId;\r\n\r\n    function resizeCanvas() {\r\n        const dpr = window.devicePixelRatio || 1;\r\n        const rect = canvas.parentElement.getBoundingClientRect();\r\n        canvas.width = rect.width * dpr;\r\n        canvas.height = rect.height * dpr;\r\n        ctx.scale(dpr, dpr);\r\n        canvas.style.width = `${rect.width}px`;\r\n        canvas.style.height = `${rect.height}px`;\r\n        obstacleX = rect.width + 100;\r\n    }\r\n\r\n    function createSparks(x, y, color) {\r\n        for (let i = 0; i &lt; 20; i++) {\r\n            particles.push({\r\n                x: x, y: y,\r\n                vx: (Math.random() - 0.5) * 15,\r\n                vy: (Math.random() - 0.5) * 15,\r\n                size: Math.random() * 6 + 2,\r\n                color: color,\r\n                life: 1.0,\r\n                decay: 0.03 + Math.random() * 0.03\r\n            });\r\n        }\r\n    }\r\n\r\n    function createSpeedLines(w, h) {\r\n        if(Math.random() &gt; 0.5) {\r\n            speedLines.push({\r\n                x: w,\r\n                y: Math.random() * h,\r\n                length: Math.random() * 100 + 50,\r\n                speed: Math.random() * 20 + 20\r\n            });\r\n        }\r\n    }\r\n\r\n    function drawExplorer(x, y, scale, stateType, timePhase) {\r\n        ctx.save();\r\n        ctx.translate(x, y);\r\n        ctx.scale(scale, scale);\r\n\r\n        \/\/ Animation logic\r\n        let legSwing = Math.sin(timePhase * 0.2) * 20;\r\n        let armSwing = Math.cos(timePhase * 0.2) * 20;\r\n        let bobbing = Math.abs(Math.sin(timePhase * 0.2)) * -5;\r\n        let lean = 0;\r\n\r\n        if (stateType === 'dash') {\r\n            legSwing = Math.sin(timePhase * 0.4) * 30;\r\n            armSwing = Math.cos(timePhase * 0.4) * 30;\r\n            lean = 20; \/\/ lean forward\r\n            \/\/ Glowing aura\r\n            ctx.shadowBlur = 20;\r\n            ctx.shadowColor = '#00e5ff';\r\n        } else if (stateType === 'stumble') {\r\n            legSwing = 0; armSwing = 0; lean = -20; \/\/ leaning back\r\n        }\r\n\r\n        ctx.translate(0, bobbing);\r\n        ctx.rotate((lean * Math.PI) \/ 180);\r\n\r\n        \/\/ Back Arm\r\n        ctx.strokeStyle = '#5d4037'; ctx.lineWidth = 8; ctx.lineCap = 'round';\r\n        ctx.beginPath(); ctx.moveTo(0, -30); ctx.lineTo(armSwing, -10); ctx.stroke();\r\n\r\n        \/\/ Back Leg\r\n        ctx.strokeStyle = '#263238'; ctx.lineWidth = 10;\r\n        ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(-legSwing, 30); ctx.lineTo(-legSwing - 5, 45); ctx.stroke();\r\n\r\n        \/\/ Torso \/ Backpack\r\n        ctx.fillStyle = '#4e342e'; \/\/ shirt\r\n        ctx.beginPath(); ctx.roundRect(-12, -40, 24, 45, 8); ctx.fill();\r\n        ctx.fillStyle = '#1b5e20'; \/\/ backpack\r\n        ctx.beginPath(); ctx.roundRect(-25, -35, 15, 30, 5); ctx.fill();\r\n        \r\n        \/\/ Head &amp; Hat\r\n        ctx.fillStyle = '#ffcc80'; \/\/ skin\r\n        ctx.beginPath(); ctx.arc(5, -55, 12, 0, Math.PI*2); ctx.fill();\r\n        ctx.fillStyle = '#3e2723'; \/\/ explorer hat\r\n        ctx.beginPath(); ctx.ellipse(5, -65, 25, 8, 0, 0, Math.PI*2); ctx.fill();\r\n        ctx.beginPath(); ctx.arc(5, -68, 12, Math.PI, 0); ctx.fill();\r\n\r\n        \/\/ Front Leg\r\n        ctx.strokeStyle = '#37474f'; ctx.lineWidth = 10;\r\n        ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(legSwing, 30); ctx.lineTo(legSwing + 5, 45); ctx.stroke();\r\n\r\n        \/\/ Front Arm (holding glowing torch\/artifact)\r\n        ctx.strokeStyle = '#6d4c41'; ctx.lineWidth = 8;\r\n        ctx.beginPath(); ctx.moveTo(0, -30); ctx.lineTo(-armSwing + 10, -15); ctx.lineTo(-armSwing + 25, -25); ctx.stroke();\r\n        \r\n        \/\/ Glowing Artifact in hand\r\n        ctx.fillStyle = stateType === 'dash' ? '#00e5ff' : '#ff9100';\r\n        ctx.beginPath(); ctx.arc(-armSwing + 25, -25, 6, 0, Math.PI*2); ctx.fill();\r\n        ctx.shadowBlur = 15; ctx.shadowColor = ctx.fillStyle; ctx.fill(); ctx.shadowBlur = 0;\r\n\r\n        ctx.restore();\r\n    }\r\n\r\n    function drawObstacle(x, y, scale, isBroken) {\r\n        ctx.save();\r\n        ctx.translate(x, y);\r\n        ctx.scale(scale, scale);\r\n\r\n        if (!isBroken) {\r\n            \/\/ Ancient Stone Pillar\r\n            ctx.fillStyle = '#263238';\r\n            ctx.beginPath();\r\n            ctx.moveTo(-20, 60); ctx.lineTo(-15, -80); ctx.lineTo(15, -80); ctx.lineTo(20, 60);\r\n            ctx.fill();\r\n            \r\n            \/\/ Glowing Runes\r\n            ctx.fillStyle = '#ff9100';\r\n            ctx.shadowBlur = 10; ctx.shadowColor = '#ff9100';\r\n            ctx.font = 'bold 24px Arial';\r\n            ctx.textAlign = 'center';\r\n            ctx.fillText('\u2716', 0, -40);\r\n            ctx.fillText('?', 0, 0);\r\n            ctx.fillText('\u2716', 0, 40);\r\n            ctx.shadowBlur = 0;\r\n        }\r\n        ctx.restore();\r\n    }\r\n\r\n    function drawBackground(w, h) {\r\n        \/\/ Deep Cave gradient\r\n        ctx.fillStyle = '#110a08';\r\n        ctx.fillRect(0, 0, w, h);\r\n\r\n        \/\/ Parallax Layer 1 (Far stalactites)\r\n        ctx.fillStyle = '#1a110d';\r\n        ctx.beginPath();\r\n        ctx.moveTo(0, 0);\r\n        for(let i=0; i&lt;w+100; i+=60) {\r\n            let y = 50 + Math.sin((i + bgOffset*0.2) * 0.05) * 40;\r\n            ctx.lineTo(i - (bgOffset*0.2)%60, y);\r\n        }\r\n        ctx.lineTo(w, 0); ctx.fill();\r\n\r\n        \/\/ Parallax Layer 2 (Mid ground pillars)\r\n        ctx.fillStyle = '#2b1c15';\r\n        ctx.beginPath();\r\n        ctx.moveTo(0, h);\r\n        for(let i=0; i&lt;w+150; i+=100) {\r\n            let y = h - 80 - Math.abs(Math.cos((i + bgOffset*0.5) * 0.03) * 60);\r\n            ctx.lineTo(i - (bgOffset*0.5)%100, y);\r\n        }\r\n        ctx.lineTo(w, h); ctx.fill();\r\n        \r\n        \/\/ Ground\r\n        ctx.fillStyle = '#3e2723';\r\n        ctx.fillRect(0, h - 40, w, 40);\r\n        \r\n        \/\/ Ground detail lines moving fast\r\n        ctx.strokeStyle = '#5d4037';\r\n        ctx.lineWidth = 3;\r\n        for(let i=0; i&lt;w; i+=80) {\r\n            ctx.beginPath();\r\n            ctx.moveTo((i - fgOffset) % w, h - 20);\r\n            ctx.lineTo(((i - fgOffset) % w) + 40, h - 20);\r\n            ctx.stroke();\r\n        }\r\n    }\r\n\r\n    function drawScene() {\r\n        const w = canvas.width \/ (window.devicePixelRatio || 1);\r\n        const h = canvas.height \/ (window.devicePixelRatio || 1);\r\n        \r\n        ctx.clearRect(0, 0, w, h);\r\n\r\n        \/\/ Update speeds based on state\r\n        if (state.sceneState === 'dash') {\r\n            speed = 25;\r\n            createSpeedLines(w, h);\r\n        } else if (state.sceneState === 'stumble') {\r\n            speed = 0;\r\n        } else {\r\n            speed = 6 + (state.level * 0.5); \/\/ base speed increases slightly with level\r\n        }\r\n\r\n        bgOffset += speed;\r\n        fgOffset += speed * 2;\r\n        animPhase += speed;\r\n\r\n        drawBackground(w, h);\r\n\r\n        \/\/ Draw Speed Lines (if dashing)\r\n        ctx.strokeStyle = 'rgba(0, 229, 255, 0.4)';\r\n        ctx.lineWidth = 2;\r\n        speedLines.forEach((line, index) =&gt; {\r\n            ctx.beginPath();\r\n            ctx.moveTo(line.x, line.y);\r\n            ctx.lineTo(line.x + line.length, line.y);\r\n            ctx.stroke();\r\n            line.x -= line.speed;\r\n            if (line.x &lt; -200) speedLines.splice(index, 1);\r\n        });\r\n\r\n        \/\/ Player Pos\r\n        let playerX = w * 0.25;\r\n        let playerY = h - 85;\r\n\r\n        \/\/ Obstacle Pos\r\n        if (state.sceneState === 'idle') {\r\n            \/\/ Move obstacle towards player based on time left\r\n            let distance = w * 0.8;\r\n            let timeRatio = state.timeLeft \/ state.maxTime;\r\n            obstacleX = playerX + (distance * timeRatio);\r\n            drawObstacle(obstacleX, h - 100, 1, false);\r\n        }\r\n\r\n        \/\/ Draw Player\r\n        drawExplorer(playerX, playerY, 1.2, state.sceneState, animPhase);\r\n\r\n        \/\/ Interaction Logic\r\n        if (state.sceneState === 'dash') {\r\n            \/\/ Smash obstacle\r\n            if (obstacleX &gt; playerX - 50) {\r\n                obstacleX -= speed * 2;\r\n                if (Math.abs(obstacleX - playerX) &lt; 50) {\r\n                    createSparks(obstacleX, h - 100, '#00e5ff');\r\n                    createSparks(obstacleX, h - 60, '#263238'); \/\/ Rock pieces\r\n                    playSound('smash');\r\n                    obstacleX = -500; \/\/ throw it away\r\n                } else if (obstacleX &gt; playerX) {\r\n                    drawObstacle(obstacleX, h - 100, 1, false); \/\/ still approaching briefly\r\n                }\r\n            }\r\n\r\n            \/\/ Draw Particles\r\n            particles.forEach(p =&gt; {\r\n                ctx.globalAlpha = p.life;\r\n                ctx.fillStyle = p.color;\r\n                ctx.beginPath(); ctx.arc(p.x, p.y, p.size, 0, Math.PI*2); ctx.fill();\r\n                p.x += p.vx - speed; \/\/ move back with background\r\n                p.y += p.vy;\r\n                p.vy += 0.5; \/\/ gravity\r\n                p.life -= p.decay;\r\n            });\r\n            ctx.globalAlpha = 1.0;\r\n            particles = particles.filter(p =&gt; p.life &gt; 0);\r\n        }\r\n\r\n        if (state.sceneState === 'stumble') {\r\n            ctx.fillStyle = 'rgba(255, 23, 68, 0.3)';\r\n            ctx.fillRect(0, 0, w, h);\r\n            drawObstacle(playerX + 40, h - 100, 1, false); \/\/ stopped right at obstacle\r\n        }\r\n    }\r\n\r\n    function gameLoop(timestamp) {\r\n        if (!state.isPlaying) return;\r\n        \r\n        if (!state.lastTime) state.lastTime = timestamp;\r\n        const dt = timestamp - state.lastTime;\r\n        state.lastTime = timestamp;\r\n\r\n        if (state.sceneState === 'idle') {\r\n            state.timeLeft -= dt;\r\n            const timerBar = document.getElementById('timer-bar');\r\n            const pct = Math.max(0, (state.timeLeft \/ state.maxTime) * 100);\r\n            timerBar.style.width = `${pct}%`;\r\n            \r\n            \/\/ Color shifts from Cyan to Red as it drains\r\n            if (pct &lt; 30) {\r\n                timerBar.style.background = 'linear-gradient(90deg, #ff1744, #ff5252)';\r\n            } else if (pct &lt; 60) {\r\n                timerBar.style.background = 'linear-gradient(90deg, #ff9100, #ffd54f)';\r\n            } else {\r\n                timerBar.style.background = 'linear-gradient(90deg, #00b0ff, #00e5ff)';\r\n            }\r\n\r\n            if (state.timeLeft &lt;= 0) {\r\n                handleAnswer(-1); \r\n            }\r\n        }\r\n\r\n        drawScene();\r\n        animationId = requestAnimationFrame(gameLoop);\r\n    }\r\n\r\n    \/\/ --- Game Logic ---\r\n    function generateProblem() {\r\n        let base1 = Math.floor(Math.random() * 8) + 2; \r\n        let base2 = Math.floor(Math.random() * 8) + 2; \r\n        \r\n        let zeros1 = (Math.random() &gt; 0.5) ? 1 : 2; \r\n        let zeros2 = (Math.random() &gt; 0.5) ? 1 : 2;\r\n\r\n        if (state.level &lt; 4) {\r\n            zeros2 = 0; \r\n            if (state.level &lt; 2) zeros1 = 1;\r\n        }\r\n\r\n        const num1 = base1 * Math.pow(10, zeros1);\r\n        const num2 = base2 * Math.pow(10, zeros2);\r\n        const correct = num1 * num2;\r\n        \r\n        const correctBaseMult = base1 * base2;\r\n        const totalZeros = zeros1 + zeros2;\r\n        \r\n        let wrong1 = correctBaseMult * Math.pow(10, Math.max(0, totalZeros - 1));\r\n        if (wrong1 === correct) wrong1 = correctBaseMult * Math.pow(10, totalZeros + 1);\r\n        \r\n        let wrong2 = correctBaseMult * Math.pow(10, totalZeros + 1);\r\n        \r\n        if (wrong1 === wrong2) wrong2 = (correctBaseMult + 1) * Math.pow(10, totalZeros);\r\n\r\n        let options = [correct, wrong1, wrong2];\r\n        options.sort(() =&gt; Math.random() - 0.5);\r\n\r\n        state.currentProblem = { num1, num2, correct, options };\r\n        state.correctIndex = options.indexOf(correct);\r\n\r\n        document.getElementById('math-problem').innerText = `${toBengali(num1)} \u00d7 ${toBengali(num2)} = ?`;\r\n        \r\n        const btns = document.querySelectorAll('.option-btn');\r\n        btns.forEach((btn, idx) =&gt; {\r\n            if(idx &lt; 3) {\r\n                btn.innerText = toBengali(options[idx]);\r\n                btn.className = 'option-btn'; \r\n            }\r\n        });\r\n\r\n        \/\/ Time represents distance to obstacle\r\n        state.maxTime = Math.max(4000, 10000 - (state.level * 300));\r\n        state.timeLeft = state.maxTime;\r\n        state.lastTime = performance.now();\r\n        state.sceneState = 'idle';\r\n        \r\n        obstacleX = canvas.width + 100;\r\n        particles = [];\r\n        speedLines = [];\r\n    }\r\n\r\n    function handleAnswer(selectedIndex) {\r\n        if (state.sceneState !== 'idle') return;\r\n        state.accuracy.total++;\r\n\r\n        const isCorrect = selectedIndex === state.correctIndex;\r\n        const btns = document.querySelectorAll('.option-btn');\r\n        \r\n        if (selectedIndex &gt;= 0) {\r\n            btns[selectedIndex].classList.add(isCorrect ? 'correct' : 'wrong');\r\n        }\r\n\r\n        if (isCorrect) {\r\n            state.sceneState = 'dash';\r\n            state.accuracy.correct++;\r\n            state.score += Math.ceil(state.timeLeft \/ 100) + 50; \/\/ Speed bonus\r\n            state.level++;\r\n            \r\n            playSound('dash');\r\n            announce(&quot;\u09b8\u09c1\u09aa\u09be\u09b0 \u09b8\u09cd\u09aa\u09bf\u09a1!&quot;);\r\n            \r\n            document.getElementById('score-display').innerText = toBengali(state.score);\r\n            document.getElementById('level-display').innerText = toBengali(state.level);\r\n            \r\n            \/\/ Dash animation duration\r\n            setTimeout(generateProblem, 1500);\r\n\r\n        } else {\r\n            state.sceneState = 'stumble';\r\n            state.lives--;\r\n            updateLivesUI();\r\n            \r\n            playSound('stumble');\r\n            announce(&quot;\u09a7\u09be\u0995\u09cd\u0995\u09be \u0996\u09c7\u09df\u09c7\u099b\u09cb!&quot;);\r\n            \r\n            if (state.correctIndex &gt;= 0) {\r\n                btns[state.correctIndex].classList.add('correct');\r\n            }\r\n\r\n            setTimeout(() =&gt; {\r\n                if (state.lives &gt; 0) {\r\n                    generateProblem();\r\n                } else {\r\n                    endGame();\r\n                }\r\n            }, 1500);\r\n        }\r\n    }\r\n\r\n    function updateLivesUI() {\r\n        let hearts = '';\r\n        for(let i=0; i&lt;state.lives; i++) hearts += '\u26a1'; \/\/ Using energy bolts for life\r\n        document.getElementById('lives-display').innerText = hearts || '\ud83d\udc80';\r\n    }\r\n\r\n    function startGame() {\r\n        initAudio();\r\n        state.isPlaying = true;\r\n        state.score = 0;\r\n        state.level = 1;\r\n        state.lives = 3;\r\n        state.accuracy = { correct: 0, total: 0 };\r\n        \r\n        updateLivesUI();\r\n        document.getElementById('score-display').innerText = toBengali(state.score);\r\n        document.getElementById('level-display').innerText = toBengali(state.level);\r\n        \r\n        document.querySelectorAll('.screen').forEach(s =&gt; s.classList.remove('active'));\r\n        document.getElementById('game-screen').classList.add('active');\r\n        \r\n        resizeCanvas();\r\n        generateProblem();\r\n        announce(&quot;\u09a6\u09cc\u09dc \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09cb!&quot;);\r\n        \r\n        if (!animationId) animationId = requestAnimationFrame(gameLoop);\r\n    }\r\n\r\n    function endGame() {\r\n        state.isPlaying = false;\r\n        cancelAnimationFrame(animationId);\r\n        animationId = null;\r\n        \r\n        document.querySelectorAll('.screen').forEach(s =&gt; s.classList.remove('active'));\r\n        document.getElementById('game-over-screen').classList.add('active');\r\n        document.getElementById('final-score').innerText = toBengali(state.score);\r\n        \r\n        if (window.GameController &amp;&amp; typeof window.GameController.saveScore === 'function') {\r\n            const acc = state.accuracy.total &gt; 0 ? Math.round((state.accuracy.correct \/ state.accuracy.total) * 100) : 0;\r\n            window.GameController.saveScore(state.score, state.level * 10, { level: state.level, accuracy: acc });\r\n        }\r\n    }\r\n\r\n    \/\/ --- Event Listeners ---\r\n    document.getElementById('start-btn').addEventListener('pointerdown', startGame);\r\n    document.getElementById('restart-btn').addEventListener('pointerdown', startGame);\r\n    \r\n    document.querySelectorAll('.option-btn').forEach(btn =&gt; {\r\n        btn.addEventListener('pointerdown', function(e) {\r\n            e.preventDefault();\r\n            const idx = parseInt(this.getAttribute('data-index'));\r\n            handleAnswer(idx);\r\n        });\r\n    });\r\n\r\n    window.addEventListener('resize', resizeCanvas);\r\n\r\n})();&lt;\/script&gt;&lt;\/body&gt;&lt;\/html&gt;\" sandbox=\"allow-scripts allow-forms allow-same-origin allow-pointer-lock\" allow=\"fullscreen; accelerometer; gyroscope\" allowfullscreen><\/iframe>\n        <\/div>\n    <\/div>\n    <script data-cfasync=\"false\">\n    (function() {\n        var wrap = document.getElementById('qsh-27086-145');\n        var btn  = document.getElementById('fs-btn-qsh-27086-145');\n        if (!wrap || !btn) return;\n        btn.addEventListener('click', function() {\n            if (!document.fullscreenElement) {\n                if (wrap.requestFullscreen) wrap.requestFullscreen();\n                else if (wrap.webkitRequestFullscreen) wrap.webkitRequestFullscreen();\n            } else {\n                if (document.exitFullscreen) document.exitFullscreen();\n            }\n        });\n        document.addEventListener('fullscreenchange', function() {\n            if (document.fullscreenElement === wrap) {\n                btn.classList.add('is-active');\n                btn.querySelector('span').textContent = 'Exit';\n            } else {\n                btn.classList.remove('is-active');\n                btn.querySelector('span').textContent = 'Expand';\n            }\n        });\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"<p>\u0986\u099c\u0995\u09c7\u09b0 \u09ae\u09bf\u09b6\u09a8 \u0996\u09c1\u09ac \u09b0\u09cb\u09ae\u09be\u099e\u09cd\u099a\u0995\u09b0! \u09a4\u09c1\u09ae\u09bf \u098f\u09b8\u09c7 \u09aa\u09dc\u09c7\u099b\u09cb \u098f\u0995 \u09b0\u09b9\u09b8\u09cd\u09af\u09ae\u09df \u0997\u09c1\u09aa\u09cd\u09a4\u09a7\u09a8\u09c7\u09b0 \u0997\u09c1\u09b9\u09be\u09b0 \u09b8\u09be\u09ae\u09a8\u09c7\u0964 \u098f\u0987 \u0997\u09c1\u09b9\u09be\u09b0 \u09a6\u09b0\u099c\u09be\u09df \u09ac\u09dc \u09ac\u09dc \u09b8\u0982\u0996\u09cd\u09af\u09be\u09b0 \u0997\u09c1\u09a3\u09c7\u09b0 \u09a4\u09be\u09b2\u09be \u09b2\u09be\u0997\u09be\u09a8\u09cb \u0986\u099b\u09c7\u0964 \u0997\u09c1\u09a3\u0997\u09c1\u09b2\u09cb\u09b0 \u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0 \u09a6\u09bf\u09a4\u09c7 \u09aa\u09be\u09b0\u09b2\u09c7\u0987 \u09aa\u09be\u09a5\u09b0\u09c7\u09b0 \u09a6\u09b0\u099c\u09be \u0996\u09c1\u09b2\u09c7 \u09af\u09be\u09ac\u09c7 \u098f\u09ac\u0982 \u09a4\u09c1\u09ae\u09bf \u09aa\u09c7\u09df\u09c7 \u09af\u09be\u09ac\u09c7 \u09b0\u09be\u09b6\u09bf \u09b0\u09be\u09b6\u09bf \u09b0\u09a4\u09cd\u09a8! \u0995\u09bf\u09a8\u09cd\u09a4\u09c1 \u098f\u09a4 \u09ac\u09dc \u0997\u09c1\u09a3 \u0996\u09be\u09a4\u09be-\u0995\u09b2\u09ae \u099b\u09be\u09dc\u09be \u0995\u09c0\u09ad\u09be\u09ac\u09c7 \u0995\u09b0\u09ac\u09c7? \u09ad\u09df \u09a8\u09c7\u0987, \u0986\u099c \u0986\u09ae\u09bf \u09a4\u09cb\u09ae\u09be\u0995\u09c7 \u09b6\u09c7\u0996\u09be\u09ac \u201c\u09b2\u09c1\u0995\u09cb\u099a\u09c1\u09b0\u09bf \u099c\u09bf\u09b0\u09cb\u201d (Hide [&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-27086","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\/27086","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=27086"}],"version-history":[{"count":1,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/27086\/revisions"}],"predecessor-version":[{"id":27087,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/27086\/revisions\/27087"}],"wp:attachment":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/media?parent=27086"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/categories?post=27086"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/tags?post=27086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}