{"id":19,"date":"2026-06-27T06:45:21","date_gmt":"2026-06-27T06:45:21","guid":{"rendered":"https:\/\/gk.egyandeep.in\/?p=19"},"modified":"2026-06-27T06:45:21","modified_gmt":"2026-06-27T06:45:21","slug":"newquiz","status":"publish","type":"post","link":"https:\/\/gk.egyandeep.in\/?p=19","title":{"rendered":"newquiz"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"hi\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n    <title>Egyandeep Quiz Portal<\/title>\n    <!-- Google Fonts for Clean Hindi Typography -->\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Mukta:wght@300;400;600;700&#038;family=Poppins:wght@300;400;600&#038;display=swap\" rel=\"stylesheet\">\n    <style>\n        :root {\n            --primary-color: #4facfe;\n            --secondary-color: #00f2fe;\n            --text-dark: #333333;\n            --text-light: #ffffff;\n            --glass-bg: rgba(255, 255, 255, 0.15);\n            --glass-border: rgba(255, 255, 255, 0.3);\n            --glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);\n            --correct-color: #28a745;\n            --wrong-color: #dc3545;\n            --unattempted-color: #6c757d;\n        }\n\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n            user-select: none; \/* Prevent text selection *\/\n        }\n\n        body {\n            font-family: 'Mukta', 'Poppins', sans-serif;\n            background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);\n            background-size: 400% 400%;\n            animation: gradientBG 15s ease infinite;\n            min-height: 100vh;\n            color: var(--text-dark);\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            overflow-x: hidden;\n        }\n\n        @keyframes gradientBG {\n            0% { background-position: 0% 50%; }\n            50% { background-position: 100% 50%; }\n            100% { background-position: 0% 50%; }\n        }\n\n        .glass-panel {\n            background: var(--glass-bg);\n            backdrop-filter: blur(12px);\n            -webkit-backdrop-filter: blur(12px);\n            border: 1px solid var(--glass-border);\n            border-radius: 20px;\n            box-shadow: var(--glass-shadow);\n            padding: 2rem;\n            width: 95%;\n            max-width: 800px;\n            margin: 20px auto;\n            position: relative;\n            z-index: 10;\n        }\n\n        h1, h2, h3 { font-family: 'Poppins', sans-serif; color: #fff; text-shadow: 1px 1px 2px rgba(0,0,0,0.2); text-align: center; margin-bottom: 1rem; }\n        h2 { font-size: 1.5rem; }\n        \n        .institution-badge {\n            position: absolute;\n            top: -15px;\n            left: 50%;\n            transform: translateX(-50%);\n            background: rgba(0, 0, 0, 0.7);\n            color: white;\n            padding: 5px 15px;\n            border-radius: 20px;\n            font-size: 0.8rem;\n            letter-spacing: 1px;\n        }\n\n        \/* Forms & Inputs *\/\n        input[type=\"text\"] {\n            width: 100%;\n            padding: 12px 15px;\n            margin: 15px 0;\n            border-radius: 10px;\n            border: 1px solid rgba(255,255,255,0.5);\n            background: rgba(255,255,255,0.8);\n            font-size: 1.1rem;\n            font-family: 'Mukta', sans-serif;\n            transition: all 0.3s;\n        }\n        input[type=\"text\"]:focus {\n            outline: none;\n            box-shadow: 0 0 10px rgba(255,255,255,0.8);\n            background: #fff;\n        }\n\n        \/* Buttons *\/\n        .btn {\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n            color: white;\n            border: none;\n            padding: 12px 25px;\n            border-radius: 25px;\n            font-size: 1.1rem;\n            cursor: pointer;\n            transition: transform 0.2s, box-shadow 0.2s;\n            display: inline-block;\n            margin: 5px;\n            font-family: 'Poppins', sans-serif;\n        }\n        .btn:hover {\n            transform: translateY(-2px);\n            box-shadow: 0 5px 15px rgba(0,0,0,0.3);\n        }\n        .btn:disabled {\n            background: #ccc;\n            cursor: not-allowed;\n            transform: none;\n            box-shadow: none;\n        }\n        .btn-outline {\n            background: transparent;\n            border: 2px solid white;\n            color: white;\n        }\n        \n        \/* Screens *\/\n        .screen { display: none; animation: fadeIn 0.5s ease; }\n        .screen.active { display: block; }\n        \n        @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\n\n        \/* Quiz Header *\/\n        .quiz-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 20px;\n            padding-bottom: 15px;\n            border-bottom: 1px solid rgba(255,255,255,0.3);\n        }\n        \n        .progress-container { flex-grow: 1; margin: 0 20px; }\n        .progress-text { font-size: 0.9rem; color: #fff; text-align: center; margin-bottom: 5px; }\n        .progress-bar { width: 100%; height: 8px; background: rgba(0,0,0,0.1); border-radius: 4px; overflow: hidden; }\n        .progress-fill { height: 100%; background: #4facfe; width: 0%; transition: width 0.3s ease; }\n\n        \/* Timer *\/\n        .timer-circle {\n            position: relative; width: 60px; height: 60px; border-radius: 50%;\n            background: conic-gradient(#fff 100%, transparent 0);\n            display: flex; justify-content: center; align-items: center;\n            box-shadow: 0 2px 10px rgba(0,0,0,0.2);\n        }\n        .timer-circle::before {\n            content: \"\"; position: absolute; inset: 5px; border-radius: 50%; background: var(--glass-bg); backdrop-filter: blur(5px);\n        }\n        .timer-text { position: relative; font-weight: bold; font-size: 0.9rem; color: #fff; }\n\n        \/* Question Area *\/\n        .question-text {\n            font-size: 1.4rem; color: #fff; margin-bottom: 20px; text-shadow: 1px 1px 2px rgba(0,0,0,0.2); line-height: 1.5;\n        }\n        .options-container { display: flex; flex-direction: column; gap: 12px; }\n        .option {\n            background: rgba(255, 255, 255, 0.85);\n            padding: 15px 20px;\n            border-radius: 12px;\n            cursor: pointer;\n            transition: all 0.2s;\n            border: 2px solid transparent;\n            font-size: 1.1rem;\n            display: flex; align-items: center;\n        }\n        .option:hover { background: #fff; transform: translateX(5px); }\n        .option.selected { border-color: var(--primary-color); background: #e0f4ff; box-shadow: 0 0 10px rgba(79, 172, 254, 0.5); }\n        .option input { display: none; }\n\n        \/* Quiz Controls *\/\n        .quiz-controls {\n            display: flex; justify-content: space-between; margin-top: 25px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,0.3);\n        }\n\n        \/* Results Screen *\/\n        .stats-grid {\n            display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin: 20px 0;\n        }\n        .stat-card {\n            background: rgba(255,255,255,0.2); padding: 15px; border-radius: 10px; text-align: center; color: white;\n        }\n        .stat-card h4 { font-size: 0.9rem; margin-bottom: 5px; opacity: 0.9; }\n        .stat-card p { font-size: 1.4rem; font-weight: bold; }\n        .score-circle-container { display: flex; justify-content: center; margin: 20px 0; }\n        .score-circle {\n            width: 120px; height: 120px; border-radius: 50%;\n            background: conic-gradient(#4facfe 0%, rgba(255,255,255,0.2) 0%);\n            display: flex; justify-content: center; align-items: center; position: relative;\n        }\n        .score-circle::before {\n            content: \"\"; position: absolute; inset: 10px; border-radius: 50%; background: #333; \/* Fallback *\/\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        }\n        .score-text { position: relative; font-size: 1.8rem; font-weight: bold; color: white; }\n\n        \/* Review Screen *\/\n        .review-card {\n            background: rgba(255,255,255,0.9); margin-bottom: 15px; padding: 15px; border-radius: 10px;\n        }\n        .review-card h4 { color: #333; text-align: left; text-shadow: none; font-size: 1.1rem; margin-bottom: 10px; }\n        .review-option { padding: 8px 12px; margin-bottom: 5px; border-radius: 5px; background: #f0f0f0; color: #333; font-size: 1rem; }\n        .review-option.correct { background: var(--correct-color); color: white; }\n        .review-option.wrong { background: var(--wrong-color); color: white; }\n        \n        \/* Modals *\/\n        .modal-overlay {\n            position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.8);\n            display: none; justify-content: center; align-items: center; z-index: 100;\n        }\n        .modal-content { background: white; padding: 30px; border-radius: 15px; text-align: center; max-width: 400px; }\n        .modal-content h3 { color: #dc3545; text-shadow: none; }\n        .modal-content p { color: #333; margin: 15px 0; }\n\n        @media (max-width: 600px) {\n            .glass-panel { padding: 1.5rem; width: 90%; }\n            .stats-grid { grid-template-columns: 1fr; }\n            .quiz-controls { flex-direction: column; gap: 10px; }\n            .quiz-controls button { width: 100%; }\n        }\n\n        \/* Hide elements during print (for PDF generation) *\/\n        @media print {\n            body { background: white; animation: none; }\n            .glass-panel { display: none !important; }\n            #print-certificate-area { display: block !important; }\n        }\n        #print-certificate-area { display: none; width: 100%; text-align: center; padding: 50px; }\n    <\/style>\n<\/head>\n<body>\n\n    <!-- Main Application Container -->\n    <div class=\"glass-panel\" id=\"app-container\">\n        <div class=\"institution-badge\" id=\"inst-badge\">egyandeep.com<\/div>\n\n        <!-- 1. Welcome Screen -->\n        <div id=\"welcome-screen\" class=\"screen active\">\n            <h1 id=\"ui-quiz-name\">\u0915\u094d\u0935\u093f\u091c\u093c \u0915\u093e \u0928\u093e\u092e<\/h1>\n            <h3 id=\"ui-quiz-subject\" style=\"font-weight:300;\">\u0935\u093f\u0937\u092f: \u0938\u093e\u092e\u093e\u0928\u094d\u092f \u091c\u094d\u091e\u093e\u0928<\/h3>\n            <div style=\"margin-top: 30px; text-align: center;\">\n                <p style=\"color: white; margin-bottom: 10px; text-shadow: 1px 1px 2px rgba(0,0,0,0.3);\">\u0915\u094d\u0935\u093f\u091c\u093c \u0936\u0941\u0930\u0942 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0905\u092a\u0928\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902:<\/p>\n                <input type=\"text\" id=\"student-name\" placeholder=\"\u0905\u092a\u0928\u093e \u092a\u0942\u0930\u093e \u0928\u093e\u092e \u092f\u0939\u093e\u0901 \u0932\u093f\u0916\u0947\u0902...\" autocomplete=\"off\">\n                <button class=\"btn\" style=\"width: 100%; margin-top: 15px; padding: 15px;\" onclick=\"initQuiz()\">Start Quiz \/ \u0915\u094d\u0935\u093f\u091c\u093c \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902<\/button>\n            <\/div>\n            <div style=\"margin-top: 20px; font-size: 0.85rem; color: rgba(255,255,255,0.8); text-align: center;\">\n                <p>\u26a0\ufe0f <strong>\u0928\u093f\u0930\u094d\u0926\u0947\u0936:<\/strong> \u092f\u0939 \u090f\u0915 \u0938\u0941\u0930\u0915\u094d\u0937\u093f\u0924 \u092a\u0930\u0940\u0915\u094d\u0937\u093e \u0939\u0948\u0964 \u0915\u094d\u0935\u093f\u091c\u093c \u0915\u0947 \u0926\u094c\u0930\u093e\u0928 \u0938\u094d\u0915\u094d\u0930\u0940\u0928 \u0938\u0947 \u092c\u093e\u0939\u0930 \u091c\u093e\u0928\u0947, \u091f\u0948\u092c \u092c\u0926\u0932\u0928\u0947 \u092f\u093e \u0928\u0915\u0932 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0928\u0947 \u092a\u0930 \u092a\u0930\u0940\u0915\u094d\u0937\u093e \u0938\u094d\u0935\u0924\u0903 \u0938\u092c\u092e\u093f\u091f \u0939\u094b \u091c\u093e\u090f\u0917\u0940\u0964<\/p>\n            <\/div>\n        <\/div>\n\n        <!-- 2. Quiz Screen -->\n        <div id=\"quiz-screen\" class=\"screen\">\n            <div class=\"quiz-header\">\n                <div class=\"timer-circle\" id=\"timer-ui\">\n                    <div class=\"timer-text\" id=\"time-text\">20:00<\/div>\n                <\/div>\n                <div class=\"progress-container\">\n                    <div class=\"progress-text\">\u092a\u094d\u0930\u0936\u094d\u0928 <span id=\"current-q-num\">1<\/span> \/ 20<\/div>\n                    <div class=\"progress-bar\">\n                        <div class=\"progress-fill\" id=\"progress-fill\"><\/div>\n                    <\/div>\n                <\/div>\n                <div style=\"color:white; font-size: 0.8rem; text-align: right;\">\n                    <span id=\"attempted-count\">0<\/span> Attempted\n                <\/div>\n            <\/div>\n\n            <div class=\"question-area\">\n                <div class=\"question-text\" id=\"question-text\">\u092a\u094d\u0930\u0936\u094d\u0928 \u092f\u0939\u093e\u0901 \u0926\u093f\u0916\u093e\u0908 \u0926\u0947\u0917\u093e?<\/div>\n                <div class=\"options-container\" id=\"options-container\">\n                    <!-- Options injected dynamically -->\n                <\/div>\n            <\/div>\n\n            <div class=\"quiz-controls\">\n                <button class=\"btn btn-outline\" id=\"btn-prev\" onclick=\"prevQuestion()\">Previous \/ \u092a\u093f\u091b\u0932\u093e<\/button>\n                <button class=\"btn\" id=\"btn-next\" onclick=\"nextQuestion()\">Next \/ \u0905\u0917\u0932\u093e<\/button>\n                <button class=\"btn\" id=\"btn-submit\" style=\"display:none; background: #28a745;\" onclick=\"confirmSubmit()\">Submit Quiz \/ \u0938\u092c\u092e\u093f\u091f \u0915\u0930\u0947\u0902<\/button>\n            <\/div>\n        <\/div>\n\n        <!-- 3. Results Screen -->\n        <div id=\"result-screen\" class=\"screen\">\n            <h2>\u092a\u0930\u0940\u0915\u094d\u0937\u093e \u092a\u0930\u093f\u0923\u093e\u092e (Results)<\/h2>\n            <div style=\"text-align: center; color: white; margin-bottom: 10px;\">\n                <p><strong>\u091b\u093e\u0924\u094d\u0930 \u0915\u093e \u0928\u093e\u092e:<\/strong> <span id=\"res-name\"><\/span><\/p>\n                <p><strong>\u0915\u094d\u0935\u093f\u091c\u093c:<\/strong> <span id=\"res-quiz\"><\/span><\/p>\n            <\/div>\n\n            <div class=\"score-circle-container\">\n                <div class=\"score-circle\" id=\"score-circle-ui\">\n                    <div class=\"score-text\" id=\"res-score-main\">0%<\/div>\n                <\/div>\n            <\/div>\n            \n            <h3 id=\"res-remark\" style=\"color: #ffeb3b; margin-top: -10px;\">Remark<\/h3>\n\n            <div class=\"stats-grid\">\n                <div class=\"stat-card\">\n                    <h4>\u0915\u0941\u0932 \u0905\u0902\u0915<\/h4>\n                    <p><span id=\"res-score\">0<\/span> \/ 20<\/p>\n                <\/div>\n                <div class=\"stat-card\">\n                    <h4>\u0938\u091f\u0940\u0915\u0924\u093e (Accuracy)<\/h4>\n                    <p><span id=\"res-accuracy\">0<\/span>%<\/p>\n                <\/div>\n                <div class=\"stat-card\" style=\"background: rgba(40, 167, 69, 0.3);\">\n                    <h4>\u0938\u0939\u0940 \u0909\u0924\u094d\u0924\u0930<\/h4>\n                    <p id=\"res-correct\">0<\/p>\n                <\/div>\n                <div class=\"stat-card\" style=\"background: rgba(220, 53, 69, 0.3);\">\n                    <h4>\u0917\u0932\u0924 \u0909\u0924\u094d\u0924\u0930<\/h4>\n                    <p id=\"res-wrong\">0<\/p>\n                <\/div>\n                <div class=\"stat-card\">\n                    <h4>\u091b\u0942\u091f\u0947 \u0939\u0941\u090f \u092a\u094d\u0930\u0936\u094d\u0928<\/h4>\n                    <p id=\"res-unattempted\">0<\/p>\n                <\/div>\n                <div class=\"stat-card\">\n                    <h4>\u0932\u093f\u092f\u093e \u0917\u092f\u093e \u0938\u092e\u092f<\/h4>\n                    <p id=\"res-time\">00:00<\/p>\n                <\/div>\n            <\/div>\n\n            <div style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 20px;\">\n                <button class=\"btn\" onclick=\"showReview()\">Answer Key \/ \u0909\u0924\u094d\u0924\u0930 \u0915\u0941\u0902\u091c\u0940<\/button>\n                <button class=\"btn\" onclick=\"downloadCertificatePNG()\">Download PNG Certificate<\/button>\n                <button class=\"btn btn-outline\" onclick=\"printPDFCertificate()\">Print PDF Certificate<\/button>\n            <\/div>\n        <\/div>\n\n        <!-- 4. Review Screen -->\n        <div id=\"review-screen\" class=\"screen\">\n            <h2>Answer Key (\u0909\u0924\u094d\u0924\u0930 \u0915\u0941\u0902\u091c\u0940)<\/h2>\n            <div id=\"review-container\" style=\"max-height: 60vh; overflow-y: auto; padding-right: 10px;\">\n                <!-- Review cards injected dynamically -->\n            <\/div>\n            <div style=\"text-align: center; margin-top: 20px;\">\n                <button class=\"btn\" onclick=\"switchScreen('result-screen')\">Back to Results \/ \u0935\u093e\u092a\u0938 \u091c\u093e\u090f\u0902<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Modals & Hidden Elements -->\n    <div class=\"modal-overlay\" id=\"cheat-modal\">\n        <div class=\"modal-content\">\n            <h3>\u091a\u0947\u0924\u093e\u0935\u0928\u0940! (Warning!)<\/h3>\n            <p>\u0906\u092a\u0928\u0947 \u0938\u094d\u0915\u094d\u0930\u0940\u0928 \u092c\u0926\u0932\u0940 \u0939\u0948 \u092f\u093e \u092b\u0941\u0932\u0938\u094d\u0915\u094d\u0930\u0940\u0928 \u0938\u0947 \u092c\u093e\u0939\u0930 \u0928\u093f\u0915\u0932\u0947 \u0939\u0948\u0902\u0964 \u092f\u0939 \u090f\u0915 \u0938\u0941\u0930\u0915\u094d\u0937\u093f\u0924 \u092a\u0930\u0940\u0915\u094d\u0937\u093e \u0939\u0948\u0964<\/p>\n            <p style=\"font-weight: bold;\">\u0909\u0932\u094d\u0932\u0902\u0918\u0928 \u0938\u0902\u0916\u094d\u092f\u093e: <span id=\"cheat-count\"><\/span> \/ 3<\/p>\n            <p style=\"font-size: 0.85rem; color: #666;\">3 \u092c\u093e\u0930 \u0909\u0932\u094d\u0932\u0902\u0918\u0928 \u0915\u0930\u0928\u0947 \u092a\u0930 \u092a\u0930\u0940\u0915\u094d\u0937\u093e \u0938\u094d\u0935\u0924\u0903 \u0938\u092e\u093e\u092a\u094d\u0924 \u0939\u094b \u091c\u093e\u090f\u0917\u0940\u0964<\/p>\n            <button class=\"btn\" onclick=\"resumeAfterCheat()\">\u0938\u092e\u091d \u0917\u092f\u093e (I Understand)<\/button>\n        <\/div>\n    <\/div>\n\n    <div class=\"modal-overlay\" id=\"confirm-submit-modal\">\n        <div class=\"modal-content\">\n            <h3 style=\"color: #333;\">\u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902 (Confirm)<\/h3>\n            <p>\u0915\u094d\u092f\u093e \u0906\u092a \u0935\u093e\u0915\u0908 \u0915\u094d\u0935\u093f\u091c\u093c \u0938\u092c\u092e\u093f\u091f \u0915\u0930\u0928\u093e \u091a\u093e\u0939\u0924\u0947 \u0939\u0948\u0902?<\/p>\n            <button class=\"btn\" onclick=\"submitQuiz()\">\u0939\u093e\u0901, \u0938\u092c\u092e\u093f\u091f \u0915\u0930\u0947\u0902 (Yes)<\/button>\n            <button class=\"btn btn-outline\" style=\"color:#333; border-color:#333;\" onclick=\"document.getElementById('confirm-submit-modal').style.display='none'\">\u0928\u0939\u0940\u0902 (No)<\/button>\n        <\/div>\n    <\/div>\n\n    <!-- Canvas for PNG Certificate Generation -->\n    <canvas id=\"cert-canvas\" width=\"800\" height=\"600\" style=\"display:none;\"><\/canvas>\n\n    <!-- HTML Layout for PDF Print -->\n    <div id=\"print-certificate-area\">\n        <div style=\"border: 10px solid #4facfe; padding: 40px; border-radius: 10px; background: #f9f9f9;\">\n            <h1 style=\"color: #333; font-size: 3rem; margin-bottom: 10px; text-shadow:none;\">Certificate of Quiz Success<\/h1>\n            <h3 style=\"color: #666; font-size: 1.5rem; text-shadow:none; margin-bottom: 40px;\">egyandeep.com<\/h3>\n            \n            <p style=\"font-size: 1.2rem; color: #444;\">This is proudly presented to<\/p>\n            <h2 id=\"print-name\" style=\"color: #4facfe; font-size: 2.5rem; border-bottom: 2px solid #ccc; display: inline-block; padding-bottom: 5px; margin: 20px 0; text-shadow:none;\">Student Name<\/h2>\n            \n            <p style=\"font-size: 1.2rem; color: #444; margin-bottom: 10px;\">for successfully completing the assessment:<\/p>\n            <h3 id=\"print-quiz-name\" style=\"color: #333; font-size: 1.8rem; text-shadow:none;\">Quiz Name<\/h3>\n            <p id=\"print-quiz-sub\" style=\"font-size: 1.1rem; color: #666; margin-bottom: 30px;\">Subject<\/p>\n            \n            <div style=\"display: flex; justify-content: space-around; margin-top: 40px; color: #333;\">\n                <div>\n                    <p style=\"font-size: 1.5rem; font-weight: bold;\" id=\"print-score\">0%<\/p>\n                    <p>Score<\/p>\n                <\/div>\n                <div>\n                    <p style=\"font-size: 1.5rem; font-weight: bold;\" id=\"print-remark\">Remark<\/p>\n                    <p>Performance<\/p>\n                <\/div>\n                <div>\n                    <p style=\"font-size: 1.2rem; font-weight: bold;\" id=\"print-date\">Date<\/p>\n                    <p>Date Completed<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        \/\/ ==========================================\n        \/\/ 1. CONFIGURATION & VARIABLES\n        \/\/ ==========================================\n        const CONFIG = {\n            quizName: \"\u0938\u093e\u092e\u093e\u0928\u094d\u092f \u0935\u093f\u091c\u094d\u091e\u093e\u0928 \u090f\u0935\u0902 \u092a\u0930\u094d\u092f\u093e\u0935\u0930\u0923 \u092a\u094d\u0930\u0936\u094d\u0928\u094b\u0924\u094d\u0924\u0930\u0940\",\n            quizSubject: \"\u0935\u093f\u091c\u094d\u091e\u093e\u0928, \u092a\u0930\u094d\u092f\u093e\u0935\u0930\u0923 \u0914\u0930 \u091c\u0940\u0935 \u0935\u093f\u091c\u094d\u091e\u093e\u0928\",\n            institution: \"egyandeep.com\",\n            timeLimitSeconds: 20 * 60, \/\/ 20 minutes\n            questionsToSelect: 20,\n            maxCheatViolations: 3\n        };\n\n        document.getElementById('ui-quiz-name').innerText = CONFIG.quizName;\n        document.getElementById('ui-quiz-subject').innerText = \"\u0935\u093f\u0937\u092f: \" + CONFIG.quizSubject;\n\n        \/\/ ==========================================\n        \/\/ 2. QUIZ DATA (RAW TEXT FORMAT AS REQUESTED)\n        \/\/ ==========================================\n        \/\/ You can paste the rest of your 100 questions here in this exact text format.\n        const rawQuestionsText = `\nQ1. \u091c\u0948\u0935 \u0935\u093f\u0935\u093f\u0927\u0924\u093e \u0915\u093e \u0915\u094d\u092f\u093e \u0905\u0930\u094d\u0925 \u0939\u0948?\nA. \u0915\u0947\u0935\u0932 \u092a\u094c\u0927\u094b\u0902 \u0915\u0940 \u0938\u0902\u0916\u094d\u092f\u093e\nB. \u0915\u0947\u0935\u0932 \u091c\u0902\u0924\u0941\u0913\u0902 \u0915\u0940 \u092a\u094d\u0930\u091c\u093e\u0924\u093f\u092f\u093e\u0901\nC. \u0935\u093f\u0936\u0947\u0937 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u092e\u0947\u0902 \u092a\u093e\u090f \u091c\u093e\u0928\u0947 \u0935\u093e\u0932\u0947 \u092a\u094c\u0927\u094b\u0902 \u0914\u0930 \u091c\u0902\u0924\u0941\u0913\u0902 \u0915\u0940 \u0935\u093f\u0935\u093f\u0927\u0924\u093e\nD. \u0915\u0947\u0935\u0932 \u0935\u0928\u094b\u0902 \u0915\u093e \u0915\u094d\u0937\u0947\u0924\u094d\u0930\u092b\u0932\nAnswer: C\n\nQ2. \u092a\u0915\u094d\u0937\u093f\u092f\u094b\u0902 \u0915\u0940 \u091a\u0939\u091a\u0939\u093e\u0939\u091f (\u0915\u0932\u0930\u0935) \u0915\u0947 \u092c\u093e\u0930\u0947 \u092e\u0947\u0902 \u0915\u094d\u092f\u093e \u0938\u0924\u094d\u092f \u0939\u0948?\nA. \u0938\u092d\u0940 \u092a\u0915\u094d\u0937\u0940 \u090f\u0915 \u091c\u0948\u0938\u093e \u0917\u093e\u0924\u0947 \u0939\u0948\u0902\nB. \u092a\u094d\u0930\u0924\u094d\u092f\u0947\u0915 \u092a\u0915\u094d\u0937\u0940 \u0915\u093e \u0905\u092a\u0928\u093e \u0935\u093f\u0936\u093f\u0937\u094d\u091f \u0915\u0932\u0930\u0935 \u0939\u094b\u0924\u093e \u0939\u0948\nC. \u092a\u0915\u094d\u0937\u0940 \u0906\u0935\u093e\u091c \u0928\u0939\u0940\u0902 \u0915\u0930\u0924\u0947\nD. \u092a\u0915\u094d\u0937\u0940 \u0915\u0947\u0935\u0932 \u0938\u0941\u092c\u0939 \u0917\u093e\u0924\u0947 \u0939\u0948\u0902\nAnswer: B\n\nQ3. \u092a\u094c\u0927\u0947 \u0914\u0930 \u091c\u0902\u0924\u0941 \u090f\u0915-\u0926\u0942\u0938\u0930\u0947 \u092a\u0930 \u0915\u0948\u0938\u0947 \u0928\u093f\u0930\u094d\u092d\u0930 \u0939\u0948\u0902?\nA. \u0915\u0947\u0935\u0932 \u092d\u094b\u091c\u0928 \u0915\u0947 \u0932\u093f\u090f\nB. \u0915\u0947\u0935\u0932 \u0906\u0936\u094d\u0930\u092f \u0915\u0947 \u0932\u093f\u090f\nC. \u092d\u094b\u091c\u0928, \u0906\u0936\u094d\u0930\u092f \u0914\u0930 \u092c\u0940\u091c\u094b\u0902 \u0915\u0947 \u092b\u0948\u0932\u093e\u0935 \u0915\u0947 \u0932\u093f\u090f\nD. \u0935\u0947 \u0928\u093f\u0930\u094d\u092d\u0930 \u0928\u0939\u0940\u0902 \u0939\u0948\u0902\nAnswer: C\n\nQ4. \u0915\u094b\u092e\u0932 \u0914\u0930 \u0939\u0930\u0947 \u0924\u0928\u0947 \u0935\u093e\u0932\u0947 \u091b\u094b\u091f\u0947 \u092a\u094c\u0927\u094b\u0902 \u0915\u094b \u0915\u094d\u092f\u093e \u0915\u0939\u0924\u0947 \u0939\u0948\u0902?\nA. \u0935\u0943\u0915\u094d\u0937\nB. \u091d\u093e\u0921\u093c\u0940\nC. \u0936\u093e\u0915 (Herb)\nD. \u0932\u0924\u093e\nAnswer: C\n\nQ5. \u0917\u0941\u0932\u093e\u092c \u0915\u093e \u092a\u094c\u0927\u093e \u0915\u093f\u0938 \u0936\u094d\u0930\u0947\u0923\u0940 \u092e\u0947\u0902 \u0906\u0924\u093e \u0939\u0948?\nA. \u0936\u093e\u0915\nB. \u091d\u093e\u0921\u093c\u0940\nC. \u0935\u0943\u0915\u094d\u0937\nD. \u0935\u093f\u0938\u0930\u094d\u092a\u0940 \u0932\u0924\u093e\nAnswer: B\n\nQ6. \u0935\u0943\u0915\u094d\u0937\u094b\u0902 \u0915\u0940 \u0936\u093e\u0916\u093e\u090f\u0901 \u0924\u0928\u0947 \u092a\u0930 \u0915\u0939\u093e\u0901 \u0938\u0947 \u0928\u093f\u0915\u0932\u0924\u0940 \u0939\u0948\u0902?\nA. \u092d\u0942\u092e\u093f \u0915\u0947 \u0920\u0940\u0915 \u090a\u092a\u0930 \u0938\u0947\nB. \u0924\u0928\u0947 \u0915\u0947 \u090a\u092a\u0930\u0940 \u092d\u093e\u0917 \u0938\u0947\nC. \u0915\u0947\u0935\u0932 \u091c\u0921\u093c\u094b\u0902 \u0938\u0947\nD. \u0936\u093e\u0916\u093e\u090f\u0902 \u0928\u0939\u0940\u0902 \u0939\u094b\u0924\u0940\u0902\nAnswer: B\n\nQ7. \u0935\u0947 \u092a\u094c\u0927\u0947 \u091c\u094b \u0938\u0939\u093e\u092f\u0924\u093e \u0932\u0947\u0915\u0930 \u090a\u092a\u0930 \u091a\u095d\u0924\u0947 \u0939\u0948\u0902, \u0915\u094d\u092f\u093e \u0915\u0939\u0932\u093e\u0924\u0947 \u0939\u0948\u0902?\nA. \u0935\u093f\u0938\u0930\u094d\u092a\u0940 \u0932\u0924\u093e\nB. \u0906\u0930\u094b\u0939\u0940 \u0932\u0924\u093e (Climber)\nC. \u0936\u093e\u0915\nD. \u091d\u093e\u0921\u093c\u0940\nAnswer: B\n\nQ8. \u092a\u0924\u094d\u0924\u093f\u092f\u094b\u0902 \u092a\u0930 \u0926\u093f\u0916\u0928\u0947 \u0935\u093e\u0932\u0940 \u092a\u0924\u0932\u0940 \u0930\u0947\u0916\u093e\u0913\u0902 \u0915\u094b \u0915\u094d\u092f\u093e \u0915\u0939\u0924\u0947 \u0939\u0948\u0902?\nA. \u0936\u093f\u0930\u093e\u090f\u0902 (Veins)\nB. \u091c\u095c\u0947\u0902\nC. \u0924\u0928\u093e\nD. \u092b\u0942\u0932\nAnswer: A\n\nQ9. \u0936\u093f\u0930\u093e\u0913\u0902 \u0926\u094d\u0935\u093e\u0930\u093e \u092c\u0928\u093e\u090f \u0917\u090f \u092a\u0948\u091f\u0930\u094d\u0928 \u0915\u094b \u0915\u094d\u092f\u093e \u0915\u0939\u093e \u091c\u093e\u0924\u093e \u0939\u0948?\nA. \u091c\u095c \u0924\u0902\u0924\u094d\u0930\nB. \u0936\u093f\u0930\u093e-\u0935\u093f\u0928\u094d\u092f\u093e\u0938 (Venation)\nC. \u092a\u094d\u0930\u0915\u093e\u0936 \u0938\u0902\u0936\u094d\u0932\u0947\u0937\u0923\nD. \u0938\u092e\u0942\u0939 \u092c\u0928\u093e\u0928\u093e\nAnswer: B\n\nQ10. \u092e\u0941\u0916\u094d\u092f \u091c\u0921\u093c \u0914\u0930 \u091b\u094b\u091f\u0940 \u092a\u093e\u0930\u094d\u0936\u094d\u0935 \u091c\u0921\u093c\u094b\u0902 \u0935\u093e\u0932\u0947 \u0924\u0902\u0924\u094d\u0930 \u0915\u094b \u0915\u094d\u092f\u093e \u0915\u0939\u0924\u0947 \u0939\u0948\u0902?\nA. \u091d\u0915\u0921\u093c\u093e \u091c\u0921\u093c\nB. \u092e\u0942\u0938\u0932\u093e \u091c\u0921\u093c (Tap Root)\nC. \u0939\u0935\u093e\u0908 \u091c\u0921\u093c\nD. \u0930\u0947\u0936\u0947\u0926\u093e\u0930 \u091c\u0921\u093c\nAnswer: B\n\nQ11. \u092c\u0940\u091c \u0906\u0935\u0930\u0923 \u0915\u0947 \u0905\u0902\u0926\u0930 \u0915\u0947 \u092d\u093e\u0917\u094b\u0902 \u0915\u094b \u0915\u094d\u092f\u093e \u0915\u0939\u0924\u0947 \u0939\u0948\u0902?\nA. \u091c\u0921\u093c\nB. \u092c\u0940\u091c\u092a\u0924\u094d\u0930 (Cotyledon)\nC. \u0924\u0928\u093e\nD. \u0936\u093f\u0930\u093e\nAnswer: B\n\nQ12. \u091c\u093f\u0928 \u092c\u0940\u091c\u094b\u0902 \u092e\u0947\u0902 \u0926\u094b \u092c\u0940\u091c\u092a\u0924\u094d\u0930 \u0939\u094b\u0924\u0947 \u0939\u0948\u0902, \u0909\u0928\u094d\u0939\u0947\u0902 \u0915\u094d\u092f\u093e \u0915\u0939\u0924\u0947 \u0939\u0948\u0902?\nA. \u090f\u0915\u092c\u0940\u091c\u092a\u0924\u094d\u0930\u0940\nB. \u0926\u094d\u0935\u093f\u092c\u0940\u091c\u092a\u0924\u094d\u0930\u0940 (Dicot)\nC. \u092c\u0939\u0941\u092c\u0940\u091c\u092a\u0924\u094d\u0930\u0940\nD. \u0907\u0928\u092e\u0947\u0902 \u0938\u0947 \u0915\u094b\u0908 \u0928\u0939\u0940\u0902\nAnswer: B\n\nQ13. \u0935\u0939 \u0938\u094d\u0925\u093e\u0928 \u091c\u0939\u093e\u0901 \u092a\u094c\u0927\u0947 \u0914\u0930 \u091c\u0902\u0924\u0941 \u0930\u0939\u0924\u0947 \u0939\u0948\u0902, \u0915\u094d\u092f\u093e \u0915\u0939\u0932\u093e\u0924\u093e \u0939\u0948?\nA. \u0918\u0930\nB. \u0906\u0935\u093e\u0938 (Habitat)\nC. \u092a\u093f\u0902\u091c\u0930\u093e\nD. \u092e\u0948\u0926\u093e\u0928\nAnswer: B\n\nQ14. \u092e\u091b\u0932\u0940 \u091c\u0932 \u092e\u0947\u0902 \u0915\u093f\u0938\u0915\u0940 \u0938\u0939\u093e\u092f\u0924\u093e \u0938\u0947 \u0924\u0948\u0930\u0924\u0940 \u0939\u0948?\nA. \u091f\u093e\u0902\u0917\u094b\u0902\nB. \u092a\u0916\u094b\u0902 (Fins)\nC. \u092a\u0902\u0916\u094b\u0902\nD. \u092a\u0942\u0902\u091b\nAnswer: B\n\nQ15. \u091c\u0932 \u0914\u0930 \u0925\u0932 \u0926\u094b\u0928\u094b\u0902 \u092a\u0930 \u0930\u0939\u0928\u0947 \u0935\u093e\u0932\u0947 \u091c\u0902\u0924\u0941\u0913\u0902 \u0915\u094b \u0915\u094d\u092f\u093e \u0915\u0939\u0924\u0947 \u0939\u0948\u0902?\nA. \u0925\u0932\u0940\u092f\nB. \u091c\u0932\u0940\u092f\nC. \u0909\u092d\u092f\u091a\u0930 (Amphibian)\nD. \u092a\u0915\u094d\u0937\u0940\nAnswer: C\n\nQ16. \u091c\u0940\u0935\u094b\u0902 \u0915\u0940 \u0935\u0947 \u0935\u093f\u0936\u093f\u0937\u094d\u091f \u0935\u093f\u0936\u0947\u0937\u0924\u093e\u090f\u0901 \u091c\u094b \u0909\u0928\u094d\u0939\u0947\u0902 \u091c\u0940\u0935\u093f\u0924 \u0930\u0939\u0928\u0947 \u092e\u0947\u0902 \u0938\u0915\u094d\u0937\u092e \u092c\u0928\u093e\u0924\u0940 \u0939\u0948\u0902, \u0915\u094d\u092f\u093e \u0915\u0939\u0932\u093e\u0924\u0940 \u0939\u0948\u0902?\nA. \u0935\u093f\u0915\u093e\u0938\nB. \u0905\u0928\u0941\u0915\u0942\u0932\u0928 (Adaptation)\nC. \u092a\u0930\u093f\u0935\u0930\u094d\u0924\u0928\nD. \u0938\u092e\u0942\u0939\u0928\nAnswer: B\n\nQ17. \u092e\u0930\u0941\u0938\u094d\u0925\u0932\u0940\u092f \u092a\u094c\u0927\u094b\u0902 (\u091c\u0948\u0938\u0947 \u0928\u093e\u0917\u092b\u0928\u0940) \u0915\u093e \u0924\u0928\u093e \u0915\u0948\u0938\u093e \u0939\u094b\u0924\u093e \u0939\u0948?\nA. \u092a\u0924\u0932\u093e\nB. \u092e\u093e\u0902\u0938\u0932 \u0914\u0930 \u092e\u094b\u091f\u093e\nC. \u0939\u0930\u093e \u0914\u0930 \u0915\u094b\u092e\u0932\nD. \u0938\u0942\u0916\u093e\nAnswer: B\n\nQ18. \u0917\u0930\u094d\u092e \u092e\u0930\u0941\u0938\u094d\u0925\u0932 \u0915\u0947 \u090a\u0901\u091f \u0915\u0947 \u092a\u0948\u0930\u094b\u0902 \u0915\u0940 \u0935\u093f\u0936\u0947\u0937\u0924\u093e \u0915\u094d\u092f\u093e \u0939\u0948?\nA. \u091b\u094b\u091f\u0947 \u0914\u0930 \u092a\u0924\u0932\u0947\nB. \u0932\u0902\u092c\u0947 \u0914\u0930 \u091a\u094c\u0921\u093c\u0947 \u0916\u0941\u0930 \u0935\u093e\u0932\u0947\nC. \u092a\u0902\u091c\u0947 \u092f\u0941\u0915\u094d\u0924\nD. \u092c\u0939\u0941\u0924 \u0915\u094b\u092e\u0932\nAnswer: B\n\nQ19. '\u0938\u093e\u0907\u0932\u0947\u0902\u091f \u0935\u0948\u0932\u0940' \u0915\u0939\u093e\u0901 \u0938\u094d\u0925\u093f\u0924 \u0939\u0948?\nA. \u0924\u092e\u093f\u0932\u0928\u093e\u0921\u0941\nB. \u0915\u0947\u0930\u0932\nC. \u0915\u0930\u094d\u0928\u093e\u091f\u0915\nD. \u0930\u093e\u091c\u0938\u094d\u0925\u093e\u0928\nAnswer: B\n\nQ20. \u0938\u093e\u0932\u093f\u092e \u0905\u0932\u0940 \u0915\u094b \u0915\u093f\u0938 \u0928\u093e\u092e \u0938\u0947 \u091c\u093e\u0928\u093e \u091c\u093e\u0924\u093e \u0939\u0948?\nA. \u092d\u093e\u0930\u0924 \u0915\u093e \u091c\u0932 \u092a\u0941\u0930\u0941\u0937\nB. \u092d\u093e\u0930\u0924 \u0915\u093e \u092a\u0915\u094d\u0937\u0940 \u092a\u0941\u0930\u0941\u0937 (Bird Man of India)\nC. \u092e\u093f\u0938\u093e\u0907\u0932 \u092e\u0948\u0928\nD. \u0932\u094c\u0939 \u092a\u0941\u0930\u0941\u0937\nAnswer: B\n\nQ21. \u092d\u093e\u0930\u0924 \u092e\u0947\u0902 '\u092c\u093e\u0918 \u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e' (Project Tiger) \u0915\u093f\u0938 \u0935\u0930\u094d\u0937 \u0936\u0941\u0930\u0942 \u0939\u0941\u0908?\nA. 1983\nB. 1973\nC. 1993\nD. 2003\nAnswer: B\n\nQ22. \u0938\u094d\u0925\u093e\u0928\u0940\u092f \u0938\u092e\u0941\u0926\u093e\u092f\u094b\u0902 \u0926\u094d\u0935\u093e\u0930\u093e \u0938\u0902\u0930\u0915\u094d\u0937\u093f\u0924 \u0935\u0928 \u0915\u094d\u092f\u093e \u0915\u0939\u0932\u093e\u0924\u0947 \u0939\u0948\u0902?\nA. \u0938\u0930\u0915\u093e\u0930\u0940 \u091c\u0902\u0917\u0932\nB. \u092a\u0935\u093f\u0924\u094d\u0930 \u0909\u092a\u0935\u0928 (Sacred Groves)\nC. \u092c\u0917\u0940\u091a\u0947\nD. \u0916\u0947\u0924\nAnswer: B\n\nQ23. \u092a\u094c\u0927\u094b\u0902 \u0914\u0930 \u091c\u0902\u0924\u0941\u0913\u0902 \u0915\u094b \u0938\u092e\u093e\u0928\u0924\u093e\u0913\u0902 \u0914\u0930 \u0935\u093f\u092d\u093f\u0928\u094d\u0928\u0924\u093e\u0913\u0902 \u0915\u0947 \u0906\u0927\u093e\u0930 \u092a\u0930 \u0935\u094d\u092f\u0935\u0938\u094d\u0925\u093f\u0924 \u0915\u0930\u0928\u093e \u0915\u094d\u092f\u093e \u0915\u0939\u0932\u093e\u0924\u093e \u0939\u0948?\nA. \u0916\u0947\u0924\u0940\nB. \u0938\u092e\u0942\u0939\u0928 (Grouping)\nC. \u0915\u091f\u093e\u0908\nD. \u091a\u093f\u0924\u094d\u0930\u0915\u093e\u0930\u0940\nAnswer: B\n\nQ24. \u0938\u091c\u0940\u0935 \u091c\u0917\u0924 \u092e\u0947\u0902 \u0935\u093f\u0935\u093f\u0927\u0924\u093e \u0915\u093e \u092e\u0941\u0916\u094d\u092f \u092d\u093e\u0917 \u0915\u094d\u092f\u093e \u0939\u0948?\nA. \u0915\u0947\u0935\u0932 \u0936\u0939\u0930\nB. \u091c\u0948\u0935 \u0935\u093f\u0935\u093f\u0927\u0924\u093e\nC. \u0915\u0947\u0935\u0932 \u0938\u0921\u093c\u0915\u0947\u0902\nD. \u0915\u0947\u0935\u0932 \u0915\u0902\u092a\u094d\u092f\u0942\u091f\u0930\nAnswer: B\n\nQ25. '\u091c\u0948\u0935 \u0938\u0902\u092a\u0926\u093e' \u0915\u094d\u092f\u093e \u0939\u0948?\nA. \u0927\u0928 \u0914\u0930 \u0926\u094c\u0932\u0924\nB. \u0939\u092e\u093e\u0930\u0947 \u0906\u0938\u092a\u093e\u0938 \u0915\u0940 \u092a\u094d\u0930\u093e\u0915\u0943\u0924\u093f\u0915 \u0935\u0928\u0938\u094d\u092a\u0924\u093f \u0914\u0930 \u091c\u0940\u0935-\u091c\u0902\u0924\u0941\nC. \u0915\u0947\u0935\u0932 \u0938\u094b\u0928\u093e\nD. \u0915\u0947\u0935\u0932 \u092c\u0948\u0902\u0915 \u092c\u0948\u0932\u0947\u0902\u0938\nAnswer: B\n        `;\n\n        \/\/ ==========================================\n        \/\/ 3. PARSER & DATA PROCESSING\n        \/\/ ==========================================\n        function parseQuestions(rawText) {\n            const blocks = rawText.trim().split(\/Q\\d+\\.\\s+\/).filter(b => b.trim() !== \"\");\n            let parsed = [];\n            \n            blocks.forEach(block => {\n                const lines = block.split('\\n').map(l => l.trim()).filter(l => l !== \"\");\n                if (lines.length < 6) return; \/\/ Needs Q, 4 options, Ans\n\n                const questionText = lines[0];\n                let optionsData = {};\n                let correctAnsLetter = \"\";\n\n                for(let i=1; i<lines.length; i++) {\n                    let line = lines[i];\n                    if(line.startsWith(\"A. \")) optionsData['A'] = line.substring(3).trim();\n                    else if(line.startsWith(\"B. \")) optionsData['B'] = line.substring(3).trim();\n                    else if(line.startsWith(\"C. \")) optionsData['C'] = line.substring(3).trim();\n                    else if(line.startsWith(\"D. \")) optionsData['D'] = line.substring(3).trim();\n                    else if(line.startsWith(\"Answer:\")) correctAnsLetter = line.split(\":\")[1].trim();\n                }\n\n                if(optionsData['A'] &#038;&#038; correctAnsLetter) {\n                    parsed.push({\n                        q: questionText,\n                        options: [optionsData['A'], optionsData['B'], optionsData['C'], optionsData['D']],\n                        correctText: optionsData[correctAnsLetter]\n                    });\n                }\n            });\n            return parsed;\n        }\n\n        \/\/ Shuffle utility\n        function shuffleArray(array) {\n            let curId = array.length;\n            while (0 !== curId) {\n                let randId = Math.floor(Math.random() * curId);\n                curId -= 1;\n                let tmp = array[curId];\n                array[curId] = array[randId];\n                array[randId] = tmp;\n            }\n            return array;\n        }\n\n        \/\/ ==========================================\n        \/\/ 4. STATE MANAGEMENT\n        \/\/ ==========================================\n        let studentName = \"\";\n        let quizActive = false;\n        let cheatViolations = 0;\n        let timerInterval;\n        let timeRemaining = CONFIG.timeLimitSeconds;\n        \n        let allQuestions = [];\n        let selectedQuestions = [];\n        let currentQuestionIndex = 0;\n        let userAnswers = []; \/\/ stores text of selected option\n\n        \/\/ ==========================================\n        \/\/ 5. CORE QUIZ LOGIC\n        \/\/ ==========================================\n        function initQuiz() {\n            const nameInput = document.getElementById('student-name').value.trim();\n            if(!nameInput) {\n                alert(\"\u0915\u0943\u092a\u092f\u093e \u0915\u094d\u0935\u093f\u091c\u093c \u0936\u0941\u0930\u0942 \u0915\u0930\u0928\u0947 \u0938\u0947 \u092a\u0939\u0932\u0947 \u0905\u092a\u0928\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902\u0964\");\n                return;\n            }\n            studentName = nameInput;\n\n            \/\/ Parse and Prepare Questions\n            allQuestions = parseQuestions(rawQuestionsText);\n            if(allQuestions.length < CONFIG.questionsToSelect) {\n                console.warn(`Not enough questions. Using ${allQuestions.length} instead of ${CONFIG.questionsToSelect}`);\n            }\n            \n            \/\/ Randomize selection\n            let shuffledPool = shuffleArray([...allQuestions]);\n            let qCount = Math.min(CONFIG.questionsToSelect, shuffledPool.length);\n            selectedQuestions = shuffledPool.slice(0, qCount);\n\n            \/\/ Randomize options for each question\n            selectedQuestions.forEach(q => {\n                q.shuffledOptions = shuffleArray([...q.options]);\n            });\n\n            userAnswers = new Array(selectedQuestions.length).fill(null);\n\n            \/\/ Setup UI\n            switchScreen('quiz-screen');\n            requestFullScreen();\n            \n            quizActive = true;\n            currentQuestionIndex = 0;\n            timeRemaining = CONFIG.timeLimitSeconds;\n            \n            startTimer();\n            renderQuestion();\n            updateProgress();\n        }\n\n        function renderQuestion() {\n            const qData = selectedQuestions[currentQuestionIndex];\n            document.getElementById('current-q-num').innerText = currentQuestionIndex + 1;\n            document.getElementById('question-text').innerText = `Q${currentQuestionIndex + 1}. ${qData.q}`;\n            \n            const optionsContainer = document.getElementById('options-container');\n            optionsContainer.innerHTML = \"\";\n\n            qData.shuffledOptions.forEach((optText, idx) => {\n                const isSelected = userAnswers[currentQuestionIndex] === optText;\n                const optDiv = document.createElement('div');\n                optDiv.className = `option ${isSelected ? 'selected' : ''}`;\n                optDiv.innerHTML = `\n                    <input type=\"radio\" name=\"quiz-option\" value=\"${idx}\">\n                    <span>${optText}<\/span>\n                `;\n                optDiv.onclick = () => selectOption(optText);\n                optionsContainer.appendChild(optDiv);\n            });\n\n            \/\/ Buttons logic\n            document.getElementById('btn-prev').disabled = currentQuestionIndex === 0;\n            \n            if (currentQuestionIndex === selectedQuestions.length - 1) {\n                document.getElementById('btn-next').style.display = 'none';\n                document.getElementById('btn-submit').style.display = 'inline-block';\n            } else {\n                document.getElementById('btn-next').style.display = 'inline-block';\n                document.getElementById('btn-submit').style.display = 'none';\n            }\n        }\n\n        function selectOption(optText) {\n            userAnswers[currentQuestionIndex] = optText;\n            renderQuestion(); \/\/ re-render to show selected state\n            updateProgress();\n        }\n\n        function nextQuestion() {\n            if(currentQuestionIndex < selectedQuestions.length - 1) {\n                currentQuestionIndex++;\n                renderQuestion();\n            }\n        }\n\n        function prevQuestion() {\n            if(currentQuestionIndex > 0) {\n                currentQuestionIndex--;\n                renderQuestion();\n            }\n        }\n\n        function updateProgress() {\n            let attempted = userAnswers.filter(a => a !== null).length;\n            document.getElementById('attempted-count').innerText = attempted;\n            \n            let percent = ((currentQuestionIndex + 1) \/ selectedQuestions.length) * 100;\n            document.getElementById('progress-fill').style.width = `${percent}%`;\n        }\n\n        \/\/ ==========================================\n        \/\/ 6. TIMER LOGIC\n        \/\/ ==========================================\n        function startTimer() {\n            timerInterval = setInterval(() => {\n                timeRemaining--;\n                let m = Math.floor(timeRemaining \/ 60).toString().padStart(2, '0');\n                let s = (timeRemaining % 60).toString().padStart(2, '0');\n                document.getElementById('time-text').innerText = `${m}:${s}`;\n                \n                let percent = (timeRemaining \/ CONFIG.timeLimitSeconds) * 100;\n                document.getElementById('timer-ui').style.background = `conic-gradient(#fff ${percent}%, transparent 0)`;\n\n                if(timeRemaining <= 0) {\n                    clearInterval(timerInterval);\n                    alert(\"\u0938\u092e\u092f \u0938\u092e\u093e\u092a\u094d\u0924! \u0906\u092a\u0915\u0940 \u0915\u094d\u0935\u093f\u091c\u093c \u0938\u094d\u0935\u0924\u0903 \u0938\u092c\u092e\u093f\u091f \u0915\u0940 \u091c\u093e \u0930\u0939\u0940 \u0939\u0948\u0964\");\n                    submitQuiz();\n                }\n            }, 1000);\n        }\n\n        \/\/ ==========================================\n        \/\/ 7. SUBMIT &#038; RESULTS\n        \/\/ ==========================================\n        function confirmSubmit() {\n            document.getElementById('confirm-submit-modal').style.display = 'flex';\n        }\n\n        function submitQuiz() {\n            quizActive = false;\n            clearInterval(timerInterval);\n            document.getElementById('confirm-submit-modal').style.display = 'none';\n            exitFullScreen();\n\n            let score = 0;\n            let correct = 0;\n            let wrong = 0;\n            let unattempted = 0;\n\n            selectedQuestions.forEach((q, idx) => {\n                let uAns = userAnswers[idx];\n                if(uAns === null) {\n                    unattempted++;\n                } else if(uAns === q.correctText) {\n                    score++;\n                    correct++;\n                } else {\n                    wrong++;\n                }\n            });\n\n            let percentage = Math.round((score \/ selectedQuestions.length) * 100);\n            let accuracy = (correct + wrong) > 0 ? Math.round((correct \/ (correct + wrong)) * 100) : 0;\n            \n            let timeTakenSec = CONFIG.timeLimitSeconds - timeRemaining;\n            let tm = Math.floor(timeTakenSec \/ 60).toString().padStart(2, '0');\n            let ts = (timeTakenSec % 60).toString().padStart(2, '0');\n\n            \/\/ Calculate Remark\n            let remark = \"\";\n            if(percentage >= 95) remark = \"Excellent (\u0909\u0924\u094d\u0915\u0943\u0937\u094d\u091f)\";\n            else if(percentage >= 90) remark = \"Very Very Good (\u0905\u0924\u093f \u0909\u0924\u094d\u0924\u092e)\";\n            else if(percentage >= 85) remark = \"Very Good (\u092c\u0939\u0941\u0924 \u0905\u091a\u094d\u091b\u093e)\";\n            else if(percentage >= 70) remark = \"Good (\u0905\u091a\u094d\u091b\u093e)\";\n            else if(percentage >= 60) remark = \"Nice (\u0920\u0940\u0915 \u0939\u0948)\";\n            else if(percentage >= 40) remark = \"It Could Be Better (\u092c\u0947\u0939\u0924\u0930 \u0939\u094b \u0938\u0915\u0924\u093e \u0925\u093e)\";\n            else if(percentage >= 33) remark = \"Sufficient (\u092a\u0930\u094d\u092f\u093e\u092a\u094d\u0924)\";\n            else remark = \"Needs Improvement (\u0938\u0941\u0927\u093e\u0930 \u0915\u0940 \u0906\u0935\u0936\u094d\u092f\u0915\u0924\u093e \u0939\u0948)\";\n\n            \/\/ Update DOM\n            document.getElementById('res-name').innerText = studentName;\n            document.getElementById('res-quiz').innerText = CONFIG.quizName;\n            document.getElementById('res-score-main').innerText = `${percentage}%`;\n            document.getElementById('score-circle-ui').style.background = `conic-gradient(#4facfe ${percentage}%, rgba(255,255,255,0.2) 0%)`;\n            \n            document.getElementById('res-remark').innerText = remark;\n            document.getElementById('res-score').innerText = score;\n            document.getElementById('res-accuracy').innerText = accuracy;\n            document.getElementById('res-correct').innerText = correct;\n            document.getElementById('res-wrong').innerText = wrong;\n            document.getElementById('res-unattempted').innerText = unattempted;\n            document.getElementById('res-time').innerText = `${tm}m ${ts}s`;\n\n            \/\/ Prepare Print PDF variables\n            document.getElementById('print-name').innerText = studentName;\n            document.getElementById('print-quiz-name').innerText = CONFIG.quizName;\n            document.getElementById('print-quiz-sub').innerText = CONFIG.quizSubject;\n            document.getElementById('print-score').innerText = `${percentage}%`;\n            document.getElementById('print-remark').innerText = remark.split(\" \")[0]; \/\/ Main english word\n            document.getElementById('print-date').innerText = new Date().toLocaleDateString();\n\n            switchScreen('result-screen');\n        }\n\n        \/\/ ==========================================\n        \/\/ 8. REVIEW SYSTEM\n        \/\/ ==========================================\n        function showReview() {\n            const container = document.getElementById('review-container');\n            container.innerHTML = \"\";\n\n            selectedQuestions.forEach((q, idx) => {\n                let uAns = userAnswers[idx];\n                let isCorrect = uAns === q.correctText;\n                let isUnattempted = uAns === null;\n\n                let card = document.createElement('div');\n                card.className = \"review-card\";\n                card.innerHTML = `<h4>Q${idx+1}. ${q.q}<\/h4>`;\n\n                q.options.forEach(opt => {\n                    let optClass = \"review-option\";\n                    if (opt === q.correctText) {\n                        optClass += \" correct\"; \/\/ Green\n                    } else if (opt === uAns && !isCorrect) {\n                        optClass += \" wrong\"; \/\/ Red\n                    }\n                    \n                    card.innerHTML += `<div class=\"${optClass}\">${opt} ${opt===uAns ? '(Your Answer)' : ''}<\/div>`;\n                });\n\n                container.appendChild(card);\n            });\n\n            switchScreen('review-screen');\n        }\n\n        \/\/ ==========================================\n        \/\/ 9. ANTI-CHEATING SYSTEM\n        \/\/ ==========================================\n        function requestFullScreen() {\n            let elem = document.documentElement;\n            if (elem.requestFullscreen) elem.requestFullscreen().catch(e=>{});\n            else if (elem.webkitRequestFullscreen) elem.webkitRequestFullscreen().catch(e=>{});\n            else if (elem.msRequestFullscreen) elem.msRequestFullscreen().catch(e=>{});\n        }\n        function exitFullScreen() {\n            if (document.exitFullscreen) document.exitFullscreen().catch(e=>{});\n            else if (document.webkitExitFullscreen) document.webkitExitFullscreen().catch(e=>{});\n        }\n\n        function showCheatWarning() {\n            if(!quizActive) return;\n            cheatViolations++;\n            if(cheatViolations >= CONFIG.maxCheatViolations) {\n                alert(\"\u0906\u092a\u0928\u0947 \u0905\u0927\u093f\u0915\u0924\u092e \u091a\u0947\u0924\u093e\u0935\u0928\u0940 \u0938\u0940\u092e\u093e \u092a\u093e\u0930 \u0915\u0930 \u0932\u0940 \u0939\u0948\u0964 \u0915\u094d\u0935\u093f\u091c\u093c \u0938\u094d\u0935\u0924\u0903 \u0938\u092c\u092e\u093f\u091f \u0915\u0940 \u091c\u093e \u0930\u0939\u0940 \u0939\u0948\u0964\");\n                submitQuiz();\n            } else {\n                document.getElementById('cheat-count').innerText = cheatViolations;\n                document.getElementById('cheat-modal').style.display = 'flex';\n            }\n        }\n\n        function resumeAfterCheat() {\n            document.getElementById('cheat-modal').style.display = 'none';\n            requestFullScreen();\n        }\n\n        \/\/ Listeners for cheating\n        document.addEventListener('visibilitychange', () => {\n            if(document.hidden && quizActive) showCheatWarning();\n        });\n        window.addEventListener('blur', () => {\n            if(quizActive) showCheatWarning();\n        });\n        document.addEventListener('fullscreenchange', () => {\n            if(!document.fullscreenElement && quizActive) showCheatWarning();\n        });\n\n        \/\/ Prevent Right Click, Copy, Paste\n        document.addEventListener('contextmenu', e => { if(quizActive) e.preventDefault(); });\n        document.addEventListener('copy', e => { if(quizActive) e.preventDefault(); });\n        document.addEventListener('paste', e => { if(quizActive) e.preventDefault(); });\n        \n        \/\/ Prevent Shortcuts (F12, Ctrl+U, Ctrl+C, etc)\n        document.addEventListener('keydown', e => {\n            if(!quizActive) return;\n            if (e.key === 'F12' || \n                (e.ctrlKey && e.shiftKey && (e.key === 'I' || e.key === 'C' || e.key === 'J')) || \n                (e.ctrlKey && (e.key === 'u' || e.key === 'U' || e.key === 'c' || e.key === 'C' || e.key === 'v' || e.key === 'V'))) {\n                e.preventDefault();\n            }\n        });\n\n        \/\/ Warn before reload\n        window.addEventListener('beforeunload', (e) => {\n            if(quizActive) {\n                e.preventDefault();\n                e.returnValue = \"By this action you could lose your progress. Confirm resubmission.\";\n                return e.returnValue;\n            }\n        });\n\n        \/\/ ==========================================\n        \/\/ 10. CERTIFICATE GENERATION\n        \/\/ ==========================================\n        function downloadCertificatePNG() {\n            const canvas = document.getElementById('cert-canvas');\n            const ctx = canvas.getContext('2d');\n            \n            \/\/ Draw Background\n            ctx.fillStyle = \"#ffffff\";\n            ctx.fillRect(0, 0, canvas.width, canvas.height);\n            \n            \/\/ Draw Border\n            ctx.strokeStyle = \"#4facfe\";\n            ctx.lineWidth = 15;\n            ctx.strokeRect(20, 20, canvas.width - 40, canvas.height - 40);\n\n            \/\/ Draw Inner Border\n            ctx.strokeStyle = \"rgba(79, 172, 254, 0.3)\";\n            ctx.lineWidth = 2;\n            ctx.strokeRect(30, 30, canvas.width - 60, canvas.height - 60);\n\n            \/\/ Text Setup\n            ctx.textAlign = \"center\";\n            \n            \/\/ Title\n            ctx.fillStyle = \"#333333\";\n            ctx.font = \"bold 36px Arial, sans-serif\";\n            ctx.fillText(\"CERTIFICATE OF QUIZ SUCCESS\", canvas.width \/ 2, 100);\n\n            \/\/ Subtitle\n            ctx.fillStyle = \"#666666\";\n            ctx.font = \"20px Arial, sans-serif\";\n            ctx.fillText(\"Proudly presented by \" + CONFIG.institution, canvas.width \/ 2, 140);\n\n            \/\/ Presented To\n            ctx.fillStyle = \"#555555\";\n            ctx.font = \"italic 24px Arial, sans-serif\";\n            ctx.fillText(\"This is to certify that\", canvas.width \/ 2, 220);\n\n            \/\/ Student Name\n            ctx.fillStyle = \"#4facfe\";\n            ctx.font = \"bold 45px Arial, sans-serif\";\n            ctx.fillText(studentName.toUpperCase(), canvas.width \/ 2, 280);\n\n            \/\/ Details\n            ctx.fillStyle = \"#444444\";\n            ctx.font = \"22px Arial, sans-serif\";\n            ctx.fillText(\"has successfully completed the assessment:\", canvas.width \/ 2, 340);\n            \n            ctx.fillStyle = \"#333333\";\n            ctx.font = \"bold 28px Arial, sans-serif\";\n            ctx.fillText(CONFIG.quizName, canvas.width \/ 2, 390);\n\n            \/\/ Stats\n            ctx.font = \"20px Arial, sans-serif\";\n            ctx.fillStyle = \"#555\";\n            let percentage = document.getElementById('res-score-main').innerText;\n            let remark = document.getElementById('res-remark').innerText.split(\" \")[0]; \/\/ get english word\n            \n            ctx.fillText(`Score: ${percentage}  |  Performance: ${remark}`, canvas.width \/ 2, 450);\n            \n            ctx.font = \"16px Arial, sans-serif\";\n            ctx.fillText(`Date: ${new Date().toLocaleDateString()}`, canvas.width \/ 2, 520);\n\n            \/\/ Download Trigger\n            const link = document.createElement('a');\n            link.download = `Certificate_${studentName.replace(\/\\s+\/g, '_')}.png`;\n            link.href = canvas.toDataURL(\"image\/png\");\n            link.click();\n        }\n\n        function printPDFCertificate() {\n            window.print();\n        }\n\n        \/\/ Utils\n        function switchScreen(screenId) {\n            document.querySelectorAll('.screen').forEach(s => s.classList.remove('active'));\n            document.getElementById(screenId).classList.add('active');\n        }\n\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Egyandeep Quiz Portal egyandeep.com \u0915\u094d\u0935\u093f\u091c\u093c \u0915\u093e \u0928\u093e\u092e \u0935\u093f\u0937\u092f: \u0938\u093e\u092e\u093e\u0928\u094d\u092f \u091c\u094d\u091e\u093e\u0928 \u0915\u094d\u0935\u093f\u091c\u093c \u0936\u0941\u0930\u0942 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0905\u092a\u0928\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902: Start Quiz \/ \u0915\u094d\u0935\u093f\u091c\u093c \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902 \u26a0\ufe0f \u0928\u093f\u0930\u094d\u0926\u0947\u0936: \u092f\u0939 \u090f\u0915 \u0938\u0941\u0930\u0915\u094d\u0937\u093f\u0924 \u092a\u0930\u0940\u0915\u094d\u0937\u093e \u0939\u0948\u0964 \u0915\u094d\u0935\u093f\u091c\u093c \u0915\u0947 \u0926\u094c\u0930\u093e\u0928 \u0938\u094d\u0915\u094d\u0930\u0940\u0928 \u0938\u0947 \u092c\u093e\u0939\u0930 \u091c\u093e\u0928\u0947, \u091f\u0948\u092c \u092c\u0926\u0932\u0928\u0947 \u092f\u093e \u0928\u0915\u0932 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0928\u0947 \u092a\u0930 \u092a\u0930\u0940\u0915\u094d\u0937\u093e \u0938\u094d\u0935\u0924\u0903 \u0938\u092c\u092e\u093f\u091f \u0939\u094b \u091c\u093e\u090f\u0917\u0940\u0964 20:00 \u092a\u094d\u0930\u0936\u094d\u0928 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-19","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/gk.egyandeep.in\/index.php?rest_route=\/wp\/v2\/posts\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gk.egyandeep.in\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gk.egyandeep.in\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gk.egyandeep.in\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gk.egyandeep.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19"}],"version-history":[{"count":1,"href":"https:\/\/gk.egyandeep.in\/index.php?rest_route=\/wp\/v2\/posts\/19\/revisions"}],"predecessor-version":[{"id":20,"href":"https:\/\/gk.egyandeep.in\/index.php?rest_route=\/wp\/v2\/posts\/19\/revisions\/20"}],"wp:attachment":[{"href":"https:\/\/gk.egyandeep.in\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gk.egyandeep.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gk.egyandeep.in\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}