{"id":3181,"date":"2026-04-23T12:08:37","date_gmt":"2026-04-23T08:08:37","guid":{"rendered":"https:\/\/windowedu.in\/blog\/?p=3181"},"modified":"2026-04-23T13:47:37","modified_gmt":"2026-04-23T09:47:37","slug":"pyqscert-maths-activity-1-1","status":"publish","type":"post","link":"https:\/\/windowedu.in\/blog\/?p=3181","title":{"rendered":"pyq+scert maths activity 1.1"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"ml\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0\">\n<title>WindopEdu \u2014 BODMAS &#038; \u0d2a\u0d42\u0d7c\u0d23\u0d4d\u0d23\u0d38\u0d02\u0d16\u0d4d\u0d2f\u0d15\u0d7e<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Noto+Sans+Malayalam:wght@400;600;700;900&#038;family=Space+Mono:wght@400;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n  :root {\n    --navy: #0d1b2a;\n    --navy2: #132337;\n    --navy3: #1a3050;\n    --gold: #f4b942;\n    --gold2: #ffd166;\n    --teal: #06d6a0;\n    --teal2: #0ac4a0;\n    --red: #ef476f;\n    --white: #f0f4f8;\n    --text: #e8edf2;\n    --muted: #7a9ab8;\n    --card: rgba(255,255,255,0.06);\n    --border: rgba(255,255,255,0.1);\n  }\n\n  * { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }\n\n  body {\n    background: var(--navy);\n    color: var(--text);\n    font-family: 'Noto Sans Malayalam', sans-serif;\n    min-height: 100vh;\n    overflow-x: hidden;\n    position: relative;\n  }\n\n  \/* Math symbols background *\/\n  body::before {\n    content: '';\n    position: fixed;\n    inset: 0;\n    background-image: \n      radial-gradient(ellipse at 20% 20%, rgba(6,214,160,0.08) 0%, transparent 60%),\n      radial-gradient(ellipse at 80% 80%, rgba(244,185,66,0.07) 0%, transparent 60%);\n    pointer-events: none;\n    z-index: 0;\n  }\n\n  .math-bg {\n    position: fixed;\n    inset: 0;\n    pointer-events: none;\n    z-index: 0;\n    overflow: hidden;\n    opacity: 0.05;\n    font-family: 'Space Mono', monospace;\n    font-size: 1.4rem;\n    color: var(--teal);\n    display: flex;\n    flex-wrap: wrap;\n    gap: 28px;\n    padding: 20px;\n    align-content: flex-start;\n  }\n\n  #windopedu-app {\n    position: relative;\n    z-index: 1;\n    max-width: 480px;\n    margin: 0 auto;\n    min-height: 100vh;\n    display: flex;\n    flex-direction: column;\n  }\n\n  \/* \u2500\u2500 SCREENS \u2500\u2500 *\/\n  .screen { display: none; flex-direction: column; min-height: 100vh; padding: 20px 16px; animation: fadeIn 0.35s ease; }\n  .screen.active { display: flex; }\n  @keyframes fadeIn { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }\n\n  \/* \u2500\u2500 HEADER \u2500\u2500 *\/\n  .app-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 12px 0 20px;\n  }\n\n  .logo {\n    font-family: 'Space Mono', monospace;\n    font-weight: 700;\n    font-size: 1.1rem;\n    color: var(--gold);\n    letter-spacing: 0.05em;\n  }\n\n  .logo span { color: var(--teal); }\n\n  .hud {\n    display: flex;\n    gap: 10px;\n    align-items: center;\n  }\n\n  .xp-badge {\n    background: linear-gradient(135deg, var(--gold), #e8a020);\n    color: var(--navy);\n    font-family: 'Space Mono', monospace;\n    font-weight: 700;\n    font-size: 0.75rem;\n    padding: 5px 10px;\n    border-radius: 20px;\n    letter-spacing: 0.03em;\n  }\n\n  .streak-badge {\n    background: rgba(239,71,111,0.18);\n    border: 1px solid rgba(239,71,111,0.4);\n    color: #ff6b9d;\n    font-size: 0.8rem;\n    padding: 5px 10px;\n    border-radius: 20px;\n    font-family: 'Space Mono', monospace;\n  }\n\n  \/* \u2500\u2500 HOME SCREEN \u2500\u2500 *\/\n  .hero-card {\n    background: linear-gradient(135deg, var(--navy3), #0d2a3d);\n    border: 1px solid var(--border);\n    border-radius: 20px;\n    padding: 28px 22px;\n    margin-bottom: 24px;\n    position: relative;\n    overflow: hidden;\n  }\n\n  .hero-card::before {\n    content: 'BODMAS';\n    position: absolute;\n    right: -10px;\n    top: 50%;\n    transform: translateY(-50%);\n    font-family: 'Space Mono', monospace;\n    font-size: 5rem;\n    font-weight: 700;\n    color: rgba(6,214,160,0.06);\n    letter-spacing: -0.05em;\n    line-height: 1;\n  }\n\n  .session-tag {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.65rem;\n    color: var(--teal);\n    letter-spacing: 0.15em;\n    text-transform: uppercase;\n    margin-bottom: 8px;\n    opacity: 0.9;\n  }\n\n  .hero-title {\n    font-size: 1.5rem;\n    font-weight: 900;\n    line-height: 1.3;\n    color: var(--white);\n    margin-bottom: 6px;\n  }\n\n  .hero-sub {\n    font-size: 0.9rem;\n    color: var(--muted);\n    line-height: 1.6;\n  }\n\n  .progress-row {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n  }\n\n  .progress-bar {\n    flex: 1;\n    height: 6px;\n    background: rgba(255,255,255,0.1);\n    border-radius: 3px;\n    overflow: hidden;\n  }\n\n  .progress-fill {\n    height: 100%;\n    background: linear-gradient(90deg, var(--teal), var(--gold));\n    border-radius: 3px;\n    transition: width 0.5s ease;\n  }\n\n  .progress-label {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.7rem;\n    color: var(--muted);\n  }\n\n  \/* \u2500\u2500 SECTION HEADING \u2500\u2500 *\/\n  .section-label {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.65rem;\n    letter-spacing: 0.2em;\n    text-transform: uppercase;\n    color: var(--muted);\n    margin-bottom: 12px;\n    padding-left: 2px;\n  }\n\n  \/* \u2500\u2500 ACTIVITY CARDS (Home) \u2500\u2500 *\/\n  .activity-grid {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    margin-bottom: 24px;\n  }\n\n  .act-card {\n    background: var(--card);\n    border: 1px solid var(--border);\n    border-radius: 14px;\n    padding: 16px 18px;\n    display: flex;\n    align-items: center;\n    gap: 14px;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    position: relative;\n    overflow: hidden;\n    min-height: 72px;\n  }\n\n  .act-card:active { transform: scale(0.97); }\n  .act-card:hover { border-color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.09); }\n\n  .act-card.concept { border-left: 3px solid #4cc9f0; }\n  .act-card.speed { border-left: 3px solid var(--gold); }\n  .act-card.accuracy { border-left: 3px solid var(--teal); }\n  .act-card.done { opacity: 0.55; }\n\n  .act-icon {\n    width: 48px;\n    height: 48px;\n    border-radius: 12px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 1.5rem;\n    flex-shrink: 0;\n  }\n\n  .concept .act-icon { background: rgba(76,201,240,0.12); }\n  .speed .act-icon { background: rgba(244,185,66,0.12); }\n  .accuracy .act-icon { background: rgba(6,214,160,0.12); }\n\n  .act-info { flex: 1; }\n\n  .act-name {\n    font-weight: 700;\n    font-size: 0.95rem;\n    color: var(--white);\n    margin-bottom: 3px;\n  }\n\n  .act-desc {\n    font-size: 0.78rem;\n    color: var(--muted);\n    line-height: 1.4;\n  }\n\n  .act-xp {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.7rem;\n    font-weight: 700;\n    color: var(--gold);\n    background: rgba(244,185,66,0.1);\n    padding: 3px 8px;\n    border-radius: 10px;\n  }\n\n  .act-done-mark {\n    position: absolute;\n    top: 8px;\n    right: 10px;\n    font-size: 0.7rem;\n    color: var(--teal);\n    font-family: 'Space Mono', monospace;\n  }\n\n  \/* \u2500\u2500 BUTTONS \u2500\u2500 *\/\n  .btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    padding: 16px 24px;\n    border-radius: 14px;\n    border: none;\n    font-family: 'Noto Sans Malayalam', sans-serif;\n    font-size: 1rem;\n    font-weight: 700;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    min-height: 52px;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n  }\n\n  .btn-primary {\n    background: linear-gradient(135deg, var(--teal), #04c592);\n    color: var(--navy);\n  }\n\n  .btn-primary:active { transform: scale(0.97); }\n\n  .btn-gold {\n    background: linear-gradient(135deg, var(--gold), #e8a020);\n    color: var(--navy);\n  }\n\n  .btn-outline {\n    background: transparent;\n    border: 1.5px solid var(--border);\n    color: var(--text);\n  }\n\n  .btn-outline:hover { border-color: rgba(255,255,255,0.3); }\n\n  .btn:active { transform: scale(0.97); }\n\n  \/* \u2500\u2500 BACK BUTTON \u2500\u2500 *\/\n  .back-btn {\n    background: none;\n    border: none;\n    color: var(--muted);\n    font-size: 1.4rem;\n    cursor: pointer;\n    padding: 8px;\n    margin-left: -8px;\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    font-family: 'Noto Sans Malayalam', sans-serif;\n    font-size: 0.85rem;\n  }\n\n  \/* \u2500\u2500 ACTIVITY SCREEN \u2500\u2500 *\/\n  .act-header {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    margin-bottom: 24px;\n  }\n\n  .act-title-block { flex: 1; }\n\n  .act-screen-name {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.65rem;\n    letter-spacing: 0.15em;\n    text-transform: uppercase;\n    margin-bottom: 4px;\n  }\n\n  .act-screen-name.concept { color: #4cc9f0; }\n  .act-screen-name.speed { color: var(--gold); }\n  .act-screen-name.accuracy { color: var(--teal); }\n\n  .act-screen-title {\n    font-size: 1.1rem;\n    font-weight: 800;\n    color: var(--white);\n  }\n\n  .q-counter {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.75rem;\n    color: var(--muted);\n    background: var(--card);\n    border: 1px solid var(--border);\n    padding: 6px 12px;\n    border-radius: 20px;\n  }\n\n  \/* \u2500\u2500 QUESTION CARD \u2500\u2500 *\/\n  .q-card {\n    background: var(--card);\n    border: 1px solid var(--border);\n    border-radius: 18px;\n    padding: 22px 20px;\n    margin-bottom: 20px;\n  }\n\n  .q-label {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.65rem;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n    color: var(--muted);\n    margin-bottom: 10px;\n  }\n\n  .q-text {\n    font-size: 1.05rem;\n    font-weight: 600;\n    line-height: 1.65;\n    color: var(--white);\n  }\n\n  .q-math {\n    font-family: 'Space Mono', monospace;\n    font-size: 1.15rem;\n    color: var(--gold2);\n    margin: 10px 0;\n    line-height: 1.6;\n  }\n\n  \/* \u2500\u2500 OPTIONS \u2500\u2500 *\/\n  .options-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px;\n    margin-bottom: 16px;\n  }\n\n  .opt-btn {\n    background: var(--card);\n    border: 1.5px solid var(--border);\n    border-radius: 14px;\n    padding: 16px 12px;\n    color: var(--text);\n    font-family: 'Space Mono', monospace;\n    font-size: 0.95rem;\n    font-weight: 700;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    min-height: 60px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    position: relative;\n    overflow: hidden;\n  }\n\n  .opt-btn:active { transform: scale(0.96); }\n\n  .opt-btn.selected { border-color: var(--teal); background: rgba(6,214,160,0.12); color: var(--teal); }\n  .opt-btn.correct { border-color: var(--teal); background: rgba(6,214,160,0.2); color: var(--teal); }\n  .opt-btn.wrong { border-color: var(--red); background: rgba(239,71,111,0.15); color: var(--red); }\n  .opt-btn:disabled { cursor: default; }\n\n  .opt-btn::before {\n    content: attr(data-label);\n    position: absolute;\n    top: 6px;\n    left: 8px;\n    font-size: 0.55rem;\n    color: var(--muted);\n    letter-spacing: 0.05em;\n  }\n\n  \/* \u2500\u2500 FEEDBACK CARD \u2500\u2500 *\/\n  .feedback-card {\n    border-radius: 14px;\n    padding: 16px 18px;\n    margin-bottom: 16px;\n    display: none;\n    animation: slideUp 0.3s ease;\n  }\n\n  .feedback-card.show { display: block; }\n  @keyframes slideUp { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }\n\n  .feedback-card.correct { background: rgba(6,214,160,0.1); border: 1px solid rgba(6,214,160,0.3); }\n  .feedback-card.wrong { background: rgba(239,71,111,0.1); border: 1px solid rgba(239,71,111,0.3); }\n\n  .feedback-title {\n    font-weight: 800;\n    font-size: 0.95rem;\n    margin-bottom: 6px;\n  }\n\n  .feedback-card.correct .feedback-title { color: var(--teal); }\n  .feedback-card.wrong .feedback-title { color: var(--red); }\n\n  .feedback-text {\n    font-size: 0.85rem;\n    line-height: 1.65;\n    color: var(--text);\n  }\n\n  .step-list {\n    margin-top: 8px;\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n  }\n\n  .step-item {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.8rem;\n    color: var(--gold2);\n    padding: 4px 0;\n    border-bottom: 1px solid rgba(255,255,255,0.06);\n  }\n\n  \/* \u2500\u2500 TRUE\/FALSE SWIPE \u2500\u2500 *\/\n  .tf-card {\n    background: linear-gradient(135deg, var(--navy3), #0d2a3d);\n    border: 1px solid var(--border);\n    border-radius: 20px;\n    padding: 28px 22px;\n    margin-bottom: 20px;\n    text-align: center;\n  }\n\n  .tf-statement {\n    font-size: 1.05rem;\n    font-weight: 700;\n    line-height: 1.6;\n    color: var(--white);\n    margin-bottom: 6px;\n  }\n\n  .tf-math {\n    font-family: 'Space Mono', monospace;\n    font-size: 1.1rem;\n    color: var(--gold2);\n    margin: 10px 0;\n  }\n\n  .tf-buttons {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 12px;\n    margin-top: 20px;\n  }\n\n  .tf-btn {\n    padding: 18px;\n    border-radius: 14px;\n    border: 2px solid;\n    font-family: 'Noto Sans Malayalam', sans-serif;\n    font-size: 1.05rem;\n    font-weight: 800;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    min-height: 60px;\n  }\n\n  .tf-btn.true-btn { border-color: var(--teal); color: var(--teal); background: rgba(6,214,160,0.08); }\n  .tf-btn.false-btn { border-color: var(--red); color: var(--red); background: rgba(239,71,111,0.08); }\n  .tf-btn:active { transform: scale(0.96); }\n  .tf-btn.selected-correct { background: rgba(6,214,160,0.25); }\n  .tf-btn.selected-wrong { background: rgba(239,71,111,0.25); }\n\n  \/* \u2500\u2500 STEP SORTER \u2500\u2500 *\/\n  .steps-container {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    margin-bottom: 16px;\n  }\n\n  .step-drag {\n    background: var(--card);\n    border: 1.5px solid var(--border);\n    border-radius: 12px;\n    padding: 14px 16px;\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    cursor: grab;\n    user-select: none;\n    font-size: 0.88rem;\n    line-height: 1.5;\n    color: var(--text);\n    transition: all 0.2s;\n  }\n\n  .step-drag.dragging { opacity: 0.5; border-style: dashed; }\n  .step-drag.over { border-color: var(--teal); background: rgba(6,214,160,0.08); }\n\n  .drag-handle {\n    color: var(--muted);\n    font-size: 1.1rem;\n    flex-shrink: 0;\n  }\n\n  .step-num {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.75rem;\n    font-weight: 700;\n    color: var(--navy);\n    background: var(--muted);\n    width: 24px;\n    height: 24px;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n  }\n\n  \/* \u2500\u2500 ERROR SPOTTER \u2500\u2500 *\/\n  .err-steps {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    margin-bottom: 16px;\n  }\n\n  .err-step {\n    background: var(--card);\n    border: 1.5px solid var(--border);\n    border-radius: 12px;\n    padding: 14px 16px;\n    cursor: pointer;\n    transition: all 0.2s;\n    display: flex;\n    align-items: flex-start;\n    gap: 10px;\n  }\n\n  .err-step:active { transform: scale(0.98); }\n  .err-step.highlighted { border-color: var(--gold); background: rgba(244,185,66,0.08); }\n  .err-step.wrong-pick { border-color: var(--red); background: rgba(239,71,111,0.1); animation: shake 0.3s ease; }\n  .err-step.correct-pick { border-color: var(--teal); background: rgba(6,214,160,0.12); }\n\n  @keyframes shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-4px)} 75%{transform:translateX(4px)} }\n\n  .err-step-num {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.72rem;\n    font-weight: 700;\n    color: var(--muted);\n    flex-shrink: 0;\n    margin-top: 2px;\n  }\n\n  .err-step-content {\n    font-family: 'Space Mono', monospace;\n    font-size: 0.88rem;\n    color: var(--text);\n    line-height: 1.5;\n  }\n\n  \/* \u2500\u2500 RAPID FIRE \u2500\u2500 *\/\n  .rf-timer {\n    width: 80px;\n    height: 80px;\n    border-radius: 50%;\n    border: 3px solid var(--border);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    margin: 0 auto 20px;\n    position: relative;\n    font-family: 'Space Mono', monospace;\n    font-size: 1.6rem;\n    font-weight: 700;\n    color: var(--gold);\n  }\n\n  .rf-timer svg {\n    position: absolute;\n    inset: -3px;\n    transform: rotate(-90deg);\n  }\n\n  .rf-timer circle {\n    fill: none;\n    stroke-width: 3;\n    stroke-linecap: round;\n    transition: stroke-dashoffset 1s linear, stroke 0.3s;\n  }\n\n  .rf-q {\n    text-align: center;\n    font-family: 'Space Mono', monospace;\n    font-size: 1.8rem;\n    font-weight: 700;\n    color: var(--white);\n    margin-bottom: 20px;\n  }\n\n  .rf-options {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px;\n  }\n\n  .rf-opt {\n    background: var(--card);\n    border: 1.5px solid var(--border);\n    border-radius: 14px;\n    padding: 18px;\n    text-align: center;\n    font-family: 'Space Mono', monospace;\n    font-size: 1.1rem;\n    font-weight: 700;\n    color: var(--text);\n    cursor: pointer;\n    transition: all 0.15s ease;\n    min-height: 60px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .rf-opt:active { transform: scale(0.96); }\n  .rf-opt.rf-correct { background: rgba(6,214,160,0.2); border-color: var(--teal); color: var(--teal); }\n  .rf-opt.rf-wrong { background: rgba(239,71,111,0.15); border-color: var(--red); color: var(--red); }\n\n  \/* \u2500\u2500 RESULT SCREEN \u2500\u2500 *\/\n  .result-screen {\n    text-align: center;\n    padding: 30px 20px;\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .result-emoji { font-size: 4rem; margin-bottom: 16px; }\n\n  .result-title {\n    font-size: 1.8rem;\n    font-weight: 900;\n    color: var(--gold);\n    margin-bottom: 8px;\n  }\n\n  .result-sub {\n    color: var(--muted);\n    font-size: 0.9rem;\n    line-height: 1.6;\n    margin-bottom: 28px;\n  }\n\n  .result-stats {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 12px;\n    width: 100%;\n    margin-bottom: 28px;\n  }\n\n  .stat-box {\n    background: var(--card);\n    border: 1px solid var(--border);\n    border-radius: 14px;\n    padding: 16px 10px;\n    text-align: center;\n  }\n\n  .stat-val {\n    font-family: 'Space Mono', monospace;\n    font-size: 1.5rem;\n    font-weight: 700;\n    margin-bottom: 4px;\n  }\n\n  .stat-val.gold { color: var(--gold); }\n  .stat-val.teal { color: var(--teal); }\n  .stat-val.red { color: var(--red); }\n\n  .stat-label { font-size: 0.72rem; color: var(--muted); }\n\n  \/* \u2500\u2500 CONFETTI \u2500\u2500 *\/\n  #confetti-container {\n    position: fixed;\n    top: 0; left: 0; right: 0;\n    pointer-events: none;\n    z-index: 999;\n    overflow: hidden;\n    height: 100vh;\n  }\n\n  .confetti-piece {\n    position: absolute;\n    width: 8px;\n    height: 12px;\n    top: -20px;\n    animation: fall linear forwards;\n    border-radius: 2px;\n  }\n\n  @keyframes fall {\n    to { transform: translateY(110vh) rotate(720deg); opacity: 0; }\n  }\n\n  \/* \u2500\u2500 TOAST \u2500\u2500 *\/\n  .toast {\n    position: fixed;\n    bottom: 24px;\n    left: 50%;\n    transform: translateX(-50%) translateY(80px);\n    background: var(--navy3);\n    border: 1px solid var(--border);\n    border-radius: 12px;\n    padding: 12px 20px;\n    font-size: 0.9rem;\n    font-weight: 600;\n    color: var(--white);\n    z-index: 100;\n    transition: transform 0.3s ease;\n    white-space: nowrap;\n    box-shadow: 0 8px 30px rgba(0,0,0,0.4);\n  }\n\n  .toast.show { transform: translateX(-50%) translateY(0); }\n\n  \/* \u2500\u2500 XP POPUP \u2500\u2500 *\/\n  .xp-popup {\n    position: fixed;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%) scale(0);\n    background: linear-gradient(135deg, var(--gold), #e8a020);\n    color: var(--navy);\n    font-family: 'Space Mono', monospace;\n    font-size: 1.5rem;\n    font-weight: 700;\n    padding: 16px 28px;\n    border-radius: 16px;\n    z-index: 200;\n    pointer-events: none;\n    box-shadow: 0 12px 40px rgba(244,185,66,0.4);\n    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.2s;\n  }\n\n  .xp-popup.show { transform: translate(-50%, -50%) scale(1); }\n  .xp-popup.hide { transform: translate(-50%, -80%) scale(0.8); opacity: 0; }\n\n  \/* \u2500\u2500 DIVIDER \u2500\u2500 *\/\n  .divider {\n    height: 1px;\n    background: var(--border);\n    margin: 16px 0;\n  }\n\n  \/* PSC TIP *\/\n  .psc-tip {\n    background: rgba(244,185,66,0.08);\n    border: 1px solid rgba(244,185,66,0.2);\n    border-left: 3px solid var(--gold);\n    border-radius: 10px;\n    padding: 12px 14px;\n    font-size: 0.82rem;\n    line-height: 1.6;\n    color: var(--text);\n    margin-bottom: 16px;\n    display: none;\n  }\n\n  .psc-tip.show { display: block; }\n  .psc-tip strong { color: var(--gold); }\n\n  \/* Completion badge *\/\n  .done-badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 4px;\n    background: rgba(6,214,160,0.12);\n    border: 1px solid rgba(6,214,160,0.3);\n    color: var(--teal);\n    font-family: 'Space Mono', monospace;\n    font-size: 0.65rem;\n    padding: 3px 8px;\n    border-radius: 20px;\n    margin-top: 6px;\n  }\n\n  .home-btn-row {\n    margin-top: auto;\n    padding-top: 20px;\n  }\n<\/style>\n<\/head>\n<body>\n\n<div class=\"math-bg\" aria-hidden=\"true\">\n  + &#8211; \u00d7 \u00f7 = ( ) [ ] { } % \u221a \u00b2 \u00b3 \u2211 \u03c0 > < \u2260 \u2264 \u2265 \u221e + - \u00d7 \u00f7 = ( ) % \u221a + - \u00d7 \u00f7 = ( ) \u00b2\n  + - \u00d7 \u00f7 BODMAS = % \u221a ( ) [ ] + - \u00d7 \u00f7 = % \u221a \u00b2 \u00b3 \u2211 \u2260 \u2264 \u2265 + - \u00d7 \u00f7 = % \u221a \u221e + - \u00d7 \u00f7\n<\/div>\n\n<div id=\"confetti-container\"><\/div>\n<div class=\"toast\" id=\"toast\"><\/div>\n<div class=\"xp-popup\" id=\"xp-popup\">+10 XP \u2b50<\/div>\n\n<div id=\"windopedu-app\">\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 HOME SCREEN -->\n  <div class=\"screen active\" id=\"screen-home\">\n    <div class=\"app-header\">\n      <div class=\"logo\">Windop<span>Edu<\/span><\/div>\n      <div class=\"hud\">\n        <div class=\"xp-badge\" id=\"hud-xp\">0 XP<\/div>\n        <div class=\"streak-badge\" id=\"hud-streak\">\ud83d\udd25 0<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"hero-card\">\n      <div class=\"session-tag\">SESSION 1 &#038; 2<\/div>\n      <div class=\"hero-title\">BODMAS &amp; \u0d2a\u0d42\u0d7c\u0d23\u0d4d\u0d23\u0d38\u0d02\u0d16\u0d4d\u0d2f\u0d15\u0d7e<\/div>\n      <div class=\"hero-sub\">Integers, Sign Rules, Vinculum, Block Method<\/div>\n      <div class=\"progress-row\">\n        <div class=\"progress-bar\">\n          <div class=\"progress-fill\" id=\"overall-progress\" style=\"width:0%\"><\/div>\n        <\/div>\n        <div class=\"progress-label\" id=\"progress-label\">0\/5 \u0d2a\u0d42\u0d7c\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3e\u0d2f\u0d3f<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"section-label\">\ud83d\udcd7 Concept &amp; Logic<\/div>\n    <div class=\"activity-grid\">\n      <div class=\"act-card concept\" id=\"card-tf\" onclick=\"goActivity('tf')\">\n        <div class=\"act-icon\">\ud83d\udd00<\/div>\n        <div class=\"act-info\">\n          <div class=\"act-name\">True\/False Property<\/div>\n          <div class=\"act-desc\">\u0d1a\u0d3f\u0d39\u0d4d\u0d28 \u0d28\u0d3f\u0d2f\u0d2e\u0d19\u0d4d\u0d19\u0d7e \u0d36\u0d30\u0d3f\u0d2f\u0d4b \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4b?<\/div>\n        <\/div>\n        <div class=\"act-xp\">+10 XP<\/div>\n      <\/div>\n      <div class=\"act-card concept\" id=\"card-sorter\" onclick=\"goActivity('sorter')\">\n        <div class=\"act-icon\">\ud83d\udccb<\/div>\n        <div class=\"act-info\">\n          <div class=\"act-name\">Step Sorter<\/div>\n          <div class=\"act-desc\">BODMAS \u0d18\u0d1f\u0d4d\u0d1f\u0d19\u0d4d\u0d19\u0d7e \u0d15\u0d4d\u0d30\u0d2e\u0d24\u0d4d\u0d24\u0d3f\u0d7d \u0d05\u0d1f\u0d41\u0d15\u0d4d\u0d15\u0d41\u0d15<\/div>\n        <\/div>\n        <div class=\"act-xp\">+15 XP<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"section-label\">\u26a1 Speed Boosters<\/div>\n    <div class=\"activity-grid\">\n      <div class=\"act-card speed\" id=\"card-rapid\" onclick=\"goActivity('rapid')\">\n        <div class=\"act-icon\">\u26a1<\/div>\n        <div class=\"act-info\">\n          <div class=\"act-name\">Rapid Fire<\/div>\n          <div class=\"act-desc\">10 \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d3f\u0d7d BODMAS \u0d15\u0d23\u0d15\u0d4d\u0d15\u0d41\u0d15\u0d7e<\/div>\n        <\/div>\n        <div class=\"act-xp\">+20 XP<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"section-label\">\ud83c\udfaf Accuracy &amp; Skill<\/div>\n    <div class=\"activity-grid\">\n      <div class=\"act-card accuracy\" id=\"card-error\" onclick=\"goActivity('error')\">\n        <div class=\"act-icon\">\ud83d\udd0d<\/div>\n        <div class=\"act-info\">\n          <div class=\"act-name\">Error Spotter<\/div>\n          <div class=\"act-desc\">\u0d24\u0d46\u0d31\u0d4d\u0d31\u0d41\u0d33\u0d4d\u0d33 Step \u0d15\u0d23\u0d4d\u0d1f\u0d46\u0d24\u0d4d\u0d24\u0d41\u0d15<\/div>\n        <\/div>\n        <div class=\"act-xp\">+15 XP<\/div>\n      <\/div>\n      <div class=\"act-card accuracy\" id=\"card-psc\" onclick=\"goActivity('psc')\">\n        <div class=\"act-icon\">\ud83d\udcdd<\/div>\n        <div class=\"act-info\">\n          <div class=\"act-name\">PSC Practice<\/div>\n          <div class=\"act-desc\">\u0d2e\u0d41\u0d7b \u0d35\u0d7c\u0d37 \u0d1a\u0d4b\u0d26\u0d4d\u0d2f\u0d19\u0d4d\u0d19\u0d7e \u2014 Option Elimination<\/div>\n        <\/div>\n        <div class=\"act-xp\">+20 XP<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"home-btn-row\"><\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 TRUE\/FALSE SCREEN -->\n  <div class=\"screen\" id=\"screen-tf\">\n    <div class=\"app-header\">\n      <button class=\"back-btn\" onclick=\"goHome()\">\u2190 \u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d<\/button>\n      <div class=\"hud\">\n        <div class=\"xp-badge\" id=\"tf-xp-badge\">0 XP<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"act-header\">\n      <div class=\"act-title-block\">\n        <div class=\"act-screen-name concept\">Concept &amp; Logic<\/div>\n        <div class=\"act-screen-title\">True\/False Property \ud83d\udd00<\/div>\n      <\/div>\n      <div class=\"q-counter\" id=\"tf-counter\">1\/5<\/div>\n    <\/div>\n\n    <div class=\"tf-card\" id=\"tf-card\">\n      <div class=\"q-label\">\u0d08 statement \u0d36\u0d30\u0d3f\u0d2f\u0d4b \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4b?<\/div>\n      <div class=\"tf-statement\" id=\"tf-stmt\"><\/div>\n      <div class=\"tf-math\" id=\"tf-math\"><\/div>\n    <\/div>\n\n    <div class=\"tf-buttons\">\n      <button class=\"tf-btn true-btn\" id=\"tf-true\" onclick=\"tfAnswer(true)\">\u2713 \u0d36\u0d30\u0d3f<\/button>\n      <button class=\"tf-btn false-btn\" id=\"tf-false\" onclick=\"tfAnswer(false)\">\u2717 \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d<\/button>\n    <\/div>\n\n    <div class=\"feedback-card\" id=\"tf-feedback\">\n      <div class=\"feedback-title\" id=\"tf-fb-title\"><\/div>\n      <div class=\"feedback-text\" id=\"tf-fb-text\"><\/div>\n    <\/div>\n\n    <div class=\"psc-tip\" id=\"tf-tip\"><\/div>\n\n    <div style=\"margin-top:auto; padding-top:16px;\">\n      <button class=\"btn btn-primary\" id=\"tf-next\" onclick=\"tfNext()\" style=\"display:none\">\u0d05\u0d1f\u0d41\u0d24\u0d4d\u0d24 \u0d1a\u0d4b\u0d26\u0d4d\u0d2f\u0d02 \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 STEP SORTER SCREEN -->\n  <div class=\"screen\" id=\"screen-sorter\">\n    <div class=\"app-header\">\n      <button class=\"back-btn\" onclick=\"goHome()\">\u2190 \u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d15\u0d4d<\/button>\n      <div class=\"hud\">\n        <div class=\"xp-badge\" id=\"sorter-xp-badge\">0 XP<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"act-header\">\n      <div class=\"act-title-block\">\n        <div class=\"act-screen-name concept\">Concept &amp; Logic<\/div>\n        <div class=\"act-screen-title\">Step Sorter \ud83d\udccb<\/div>\n      <\/div>\n      <div class=\"q-counter\" id=\"sorter-counter\">1\/3<\/div>\n    <\/div>\n\n    <div class=\"q-card\">\n      <div class=\"q-label\">\u0d1a\u0d4b\u0d26\u0d4d\u0d2f\u0d02<\/div>\n      <div class=\"q-math\" id=\"sorter-q\"><\/div>\n      <div class=\"q-text\" style=\"font-size:0.85rem; color:var(--muted); margin-top:6px;\">\u0d24\u0d3e\u0d34\u0d46 \u0d09\u0d33\u0d4d\u0d33 Steps \u0d36\u0d30\u0d3f\u0d2f\u0d3e\u0d2f \u0d15\u0d4d\u0d30\u0d2e\u0d24\u0d4d\u0d24\u0d3f\u0d7d Drag \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d4d \u0d05\u0d1f\u0d41\u0d15\u0d4d\u0d15\u0d41\u0d15<\/div>\n    <\/div>\n\n    <div class=\"steps-container\" id=\"sorter-steps\"><\/div>\n\n    <div class=\"feedback-card\" id=\"sorter-feedback\">\n      <div class=\"feedback-title\" id=\"sorter-fb-title\"><\/div>\n      <div class=\"feedback-text\" id=\"sorter-fb-text\"><\/div>\n    <\/div>\n\n    <div class=\"psc-tip\" id=\"sorter-tip\"><\/div>\n\n    <div style=\"margin-top:auto; padding-top:16px; display:flex; gap:10px;\">\n      <button class=\"btn btn-outline\" id=\"sorter-check\" onclick=\"sorterCheck()\">\u2713 \u0d09\u0d24\u0d4d\u0d24\u0d30\u0d02 \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15<\/button>\n      <button class=\"btn btn-primary\" id=\"sorter-next\" onclick=\"sorterNext()\" style=\"display:none; flex:1;\">\u0d05\u0d1f\u0d41\u0d24\u0d4d\u0d24 \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 RAPID FIRE SCREEN -->\n  <div class=\"screen\" id=\"screen-rapid\">\n    <div class=\"app-header\">\n      <button class=\"back-btn\" onclick=\"goHome()\">\u2190 \u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d15\u0d4d<\/button>\n      <div class=\"hud\">\n        <div class=\"xp-badge\" id=\"rf-xp-badge\">0 XP<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"act-header\">\n      <div class=\"act-title-block\">\n        <div class=\"act-screen-name speed\">Speed Booster<\/div>\n        <div class=\"act-screen-title\">Rapid Fire \u26a1<\/div>\n      <\/div>\n      <div class=\"q-counter\" id=\"rf-counter\">1\/6<\/div>\n    <\/div>\n\n    <div class=\"rf-timer\" id=\"rf-timer-display\">\n      <svg width=\"86\" height=\"86\" viewBox=\"0 0 86 86\">\n        <circle id=\"rf-timer-bg\" cx=\"43\" cy=\"43\" r=\"40\" stroke=\"rgba(255,255,255,0.08)\" stroke-width=\"3\"\/>\n        <circle id=\"rf-timer-arc\" cx=\"43\" cy=\"43\" r=\"40\" stroke=\"#f4b942\" stroke-width=\"3\"\n          stroke-dasharray=\"251.2\" stroke-dashoffset=\"0\"\/>\n      <\/svg>\n      <span id=\"rf-timer-num\">10<\/span>\n    <\/div>\n\n    <div class=\"rf-q\" id=\"rf-question\">?<\/div>\n\n    <div class=\"rf-options\" id=\"rf-options\"><\/div>\n\n    <div class=\"feedback-card\" id=\"rf-feedback\" style=\"margin-top:12px;\">\n      <div class=\"feedback-title\" id=\"rf-fb-title\"><\/div>\n      <div class=\"feedback-text\" id=\"rf-fb-text\"><\/div>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 ERROR SPOTTER SCREEN -->\n  <div class=\"screen\" id=\"screen-error\">\n    <div class=\"app-header\">\n      <button class=\"back-btn\" onclick=\"goHome()\">\u2190 \u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d15\u0d4d<\/button>\n      <div class=\"hud\">\n        <div class=\"xp-badge\" id=\"err-xp-badge\">0 XP<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"act-header\">\n      <div class=\"act-title-block\">\n        <div class=\"act-screen-name accuracy\">Accuracy &amp; Skill<\/div>\n        <div class=\"act-screen-title\">Error Spotter \ud83d\udd0d<\/div>\n      <\/div>\n      <div class=\"q-counter\" id=\"err-counter\">1\/3<\/div>\n    <\/div>\n\n    <div class=\"q-card\">\n      <div class=\"q-label\">\u0d07\u0d24\u0d3f\u0d7d \u0d12\u0d30\u0d41 Step-\u0d7d \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d \u0d09\u0d23\u0d4d\u0d1f\u0d4d \u2014 \u0d0f\u0d24\u0d4d Step \u0d06\u0d23\u0d4d \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d?<\/div>\n      <div class=\"q-math\" id=\"err-q\"><\/div>\n    <\/div>\n\n    <div class=\"err-steps\" id=\"err-steps\"><\/div>\n\n    <div class=\"feedback-card\" id=\"err-feedback\">\n      <div class=\"feedback-title\" id=\"err-fb-title\"><\/div>\n      <div class=\"feedback-text\" id=\"err-fb-text\"><\/div>\n    <\/div>\n\n    <div class=\"psc-tip\" id=\"err-tip\"><\/div>\n\n    <div style=\"margin-top:auto; padding-top:16px;\">\n      <button class=\"btn btn-primary\" id=\"err-next\" onclick=\"errNext()\" style=\"display:none\">\u0d05\u0d1f\u0d41\u0d24\u0d4d\u0d24 \u0d1a\u0d4b\u0d26\u0d4d\u0d2f\u0d02 \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 PSC PRACTICE SCREEN -->\n  <div class=\"screen\" id=\"screen-psc\">\n    <div class=\"app-header\">\n      <button class=\"back-btn\" onclick=\"goHome()\">\u2190 \u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d15\u0d4d<\/button>\n      <div class=\"hud\">\n        <div class=\"xp-badge\" id=\"psc-xp-badge\">0 XP<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"act-header\">\n      <div class=\"act-title-block\">\n        <div class=\"act-screen-name accuracy\">PSC Practice<\/div>\n        <div class=\"act-screen-title\">Option Eliminator \ud83d\udcdd<\/div>\n      <\/div>\n      <div class=\"q-counter\" id=\"psc-counter\">1\/3<\/div>\n    <\/div>\n\n    <div class=\"q-card\">\n      <div class=\"q-label\">\u0d1a\u0d4b\u0d26\u0d4d\u0d2f\u0d02<\/div>\n      <div class=\"q-math\" id=\"psc-q-math\"><\/div>\n      <div class=\"q-text\" id=\"psc-q-text\"><\/div>\n    <\/div>\n\n    <div class=\"options-grid\" id=\"psc-options\"><\/div>\n\n    <div class=\"feedback-card\" id=\"psc-feedback\">\n      <div class=\"feedback-title\" id=\"psc-fb-title\"><\/div>\n      <div class=\"feedback-text\" id=\"psc-fb-text\"><\/div>\n      <div class=\"step-list\" id=\"psc-steps\"><\/div>\n    <\/div>\n\n    <div class=\"psc-tip\" id=\"psc-tip\"><\/div>\n\n    <div style=\"margin-top:auto; padding-top:16px;\">\n      <button class=\"btn btn-primary\" id=\"psc-next\" onclick=\"pscNext()\" style=\"display:none\">\u0d05\u0d1f\u0d41\u0d24\u0d4d\u0d24 \u0d1a\u0d4b\u0d26\u0d4d\u0d2f\u0d02 \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 RESULT SCREEN -->\n  <div class=\"screen\" id=\"screen-result\">\n    <div class=\"app-header\">\n      <div class=\"logo\">Windop<span>Edu<\/span><\/div>\n    <\/div>\n    <div class=\"result-screen\">\n      <div class=\"result-emoji\" id=\"result-emoji\">\ud83c\udfc6<\/div>\n      <div class=\"result-title\" id=\"result-title\">\u0d2e\u0d3f\u0d15\u0d1a\u0d4d\u0d1a \u0d2a\u0d4d\u0d30\u0d15\u0d1f\u0d28\u0d02!<\/div>\n      <div class=\"result-sub\" id=\"result-sub\">\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d08 Activity \u0d2d\u0d02\u0d17\u0d3f\u0d2f\u0d3e\u0d2f\u0d3f \u0d2a\u0d42\u0d7c\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d3f!<\/div>\n      <div class=\"result-stats\">\n        <div class=\"stat-box\">\n          <div class=\"stat-val gold\" id=\"res-xp\">0<\/div>\n          <div class=\"stat-label\">XP \u0d28\u0d47\u0d1f\u0d3f<\/div>\n        <\/div>\n        <div class=\"stat-box\">\n          <div class=\"stat-val teal\" id=\"res-correct\">0<\/div>\n          <div class=\"stat-label\">\u0d36\u0d30\u0d3f \u0d09\u0d24\u0d4d\u0d24\u0d30\u0d02<\/div>\n        <\/div>\n        <div class=\"stat-box\">\n          <div class=\"stat-val red\" id=\"res-wrong\">0<\/div>\n          <div class=\"stat-label\">\u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d<\/div>\n        <\/div>\n      <\/div>\n      <button class=\"btn btn-gold\" onclick=\"goHome()\" style=\"max-width:320px\">\ud83c\udfe0 Home-\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d41\u0d2a\u0d4b\u0d15\u0d41\u0d15<\/button>\n      <div style=\"height:12px;\"><\/div>\n      <button class=\"btn btn-outline\" id=\"retry-btn\" style=\"max-width:320px\">\u21ba \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15<\/button>\n    <\/div>\n  <\/div>\n\n<\/div><!-- \/windopedu-app -->\n\n<script>\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ STATE\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nlet totalXP = 0;\nlet streak = 0;\nlet completedActivities = new Set();\nlet currentActivity = null;\nlet currentQ = 0;\nlet sessionCorrect = 0;\nlet sessionWrong = 0;\nlet sessionXP = 0;\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ DATA\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nconst TF_DATA = [\n  {\n    stmt: \"(-) \u00d7 (-) = (+)\",\n    math: \"\u0d09\u0d26\u0d3e: (-3) \u00d7 (-4) = 12\",\n    answer: true,\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: \u0d17\u0d41\u0d23\u0d28\u0d24\u0d4d\u0d24\u0d3f\u0d7d\/\u0d39\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d7d \u0d2e\u0d48\u0d28\u0d38\u0d4d \u0d1a\u0d3f\u0d39\u0d4d\u0d28\u0d02 \u0d07\u0d30\u0d1f\u0d4d\u0d1f \u0d24\u0d35\u0d23 \u0d35\u0d28\u0d4d\u0d28\u0d3e\u0d7d \u0d09\u0d24\u0d4d\u0d24\u0d30\u0d02 \u0d0e\u0d2a\u0d4d\u0d2a\u0d4b\u0d34\u0d41\u0d02 Positive \u0d06\u0d15\u0d41\u0d02.\"\n  },\n  {\n    stmt: \"(-) \u00d7 (+) = (+)\",\n    math: \"\u0d09\u0d26\u0d3e: (-5) \u00d7 (3) = ?\",\n    answer: false,\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: Negative \u00d7 Positive = Negative. \u0d12\u0d31\u0d4d\u0d31 \u0d2e\u0d48\u0d28\u0d38\u0d4d \u2192 \u0d09\u0d24\u0d4d\u0d24\u0d30\u0d02 Negative.\"\n  },\n  {\n    stmt: \"BODMAS-\u0d7d \u0d17\u0d41\u0d23\u0d28\u0d02 (\u00d7) \u0d15\u0d42\u0d1f\u0d4d\u0d1f\u0d32\u0d3f\u0d28\u0d4d (+ ) \u0d2e\u0d41\u0d7b\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d23\u0d02\",\n    math: \"\u0d09\u0d26\u0d3e: 5 + 3 \u00d7 2 = 5 + 6 = 11 \u2713\",\n    answer: true,\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: BODMAS = Brackets \u2192 Of \u2192 Division \u2192 Multiplication \u2192 Addition \u2192 Subtraction. \u0d17\u0d41\u0d23\u0d28\u0d02, \u0d39\u0d30\u0d23\u0d02 \u2014 \u0d07\u0d1f\u0d24\u0d4d\u0d24\u0d41\u0d28\u0d3f\u0d28\u0d4d\u0d28\u0d4d \u0d35\u0d32\u0d24\u0d4d\u0d24\u0d4b\u0d1f\u0d4d\u0d1f\u0d4d \u0d15\u0d4d\u0d30\u0d2e\u0d24\u0d4d\u0d24\u0d3f\u0d7d.\"\n  },\n  {\n    stmt: \"Vinculum (\u0d2c\u0d3e\u0d7c) \u2014 \u0d2c\u0d4d\u0d30\u0d3e\u0d15\u0d4d\u0d15\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d4d \u0d36\u0d47\u0d37\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d23\u0d02\",\n    math: \"V-BODMAS: Vinculum \u0d06\u0d26\u0d4d\u0d2f\u0d02!\",\n    answer: false,\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: V-BODMAS-\u0d7d Vinculum (\u0d12\u0d30\u0d41 \u0d38\u0d02\u0d16\u0d4d\u0d2f\u0d15\u0d4d\u0d15\u0d4d \u0d2e\u0d41\u0d15\u0d33\u0d3f\u0d32\u0d46 \u0d2c\u0d3e\u0d7c) \u0d0f\u0d31\u0d4d\u0d31\u0d35\u0d41\u0d02 \u0d06\u0d26\u0d4d\u0d2f\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d23\u0d02 \u2014 \u0d2c\u0d4d\u0d30\u0d3e\u0d15\u0d4d\u0d15\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d41\u0d02 \u0d2e\u0d41\u0d7b\u0d2a\u0d4d.\"\n  },\n  {\n    stmt: \"(-6) \u00f7 (-2) = -3\",\n    math: \"Negative \u00f7 Negative = ?\",\n    answer: false,\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: (-6) \u00f7 (-2) = +3. \u0d30\u0d23\u0d4d\u0d1f\u0d41\u0d02 Negative \u0d06\u0d2f\u0d3e\u0d7d \u0d09\u0d24\u0d4d\u0d24\u0d30\u0d02 Positive. (-6) \u00f7 (+2) = -3 \u0d06\u0d15\u0d41\u0d02.\"\n  }\n];\n\nconst SORTER_DATA = [\n  {\n    q: \"[(-12) + 4] \u00f7 [(-5) + 3] = ?\",\n    steps: [\n      \"\u0d39\u0d30\u0d23\u0d02: (-8) \u00f7 (-2) = 4\",\n      \"\u0d06\u0d26\u0d4d\u0d2f \u0d2c\u0d4d\u0d30\u0d3e\u0d15\u0d4d\u0d15\u0d31\u0d4d\u0d31\u0d4d: (-12) + 4 = -8\",\n      \"\u0d30\u0d23\u0d4d\u0d1f\u0d3e\u0d02 \u0d2c\u0d4d\u0d30\u0d3e\u0d15\u0d4d\u0d15\u0d31\u0d4d\u0d31\u0d4d: (-5) + 3 = -2\"\n    ],\n    order: [1, 2, 0],\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: \u0d12\u0d30\u0d47 \u0d24\u0d30\u0d02 \u0d2c\u0d4d\u0d30\u0d3e\u0d15\u0d4d\u0d15\u0d31\u0d4d\u0d31\u0d4d \u0d12\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d27\u0d3f\u0d15\u0d02 \u0d09\u0d23\u0d4d\u0d1f\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d \u0d07\u0d1f\u0d24\u0d4d\u0d24\u0d41\u0d28\u0d3f\u0d28\u0d4d\u0d28\u0d4d \u0d35\u0d32\u0d24\u0d4d\u0d24\u0d4b\u0d1f\u0d4d\u0d1f\u0d4d \u0d15\u0d4d\u0d30\u0d2e\u0d24\u0d4d\u0d24\u0d3f\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d23\u0d02.\"\n  },\n  {\n    q: \"100 + 50 \u00f7 2 \u00d7 3 - 25 \u00d7 2 = ?\",\n    steps: [\n      \"\u0d15\u0d42\u0d1f\u0d4d\u0d1f\u0d7d\/\u0d15\u0d41\u0d31\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d7d: 100 + 75 - 50 = 125\",\n      \"50 \u00f7 2 = 25, \u0d2a\u0d3f\u0d28\u0d4d\u0d28\u0d46 25 \u00d7 3 = 75\",\n      \"25 \u00d7 2 = 50\"\n    ],\n    order: [1, 2, 0],\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: Block Method \u2014 \u00f7 \u00d7 \u0d2d\u0d3e\u0d17\u0d19\u0d4d\u0d19\u0d7e \u0d2a\u0d4d\u0d30\u0d24\u0d4d\u0d2f\u0d47\u0d15\u0d02 Block \u0d06\u0d2f\u0d3f \u0d15\u0d23\u0d15\u0d4d\u0d15\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d4d \u0d36\u0d47\u0d37\u0d02 + \u2212 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15.\"\n  },\n  {\n    q: \"25 \u2212 [20 \u2212 {10 \u2212 (7 \u2212 2)}] = ?\",\n    steps: [\n      \"\u0d0f\u0d31\u0d4d\u0d31\u0d35\u0d41\u0d02 \u0d09\u0d33\u0d4d\u0d33\u0d3f\u0d32\u0d46 (): 7 \u2212 2 = 5\",\n      \"{}: 10 \u2212 5 = 5\",\n      \"[]: 20 \u2212 5 = 15\",\n      \"\u0d05\u0d35\u0d38\u0d3e\u0d28\u0d02: 25 \u2212 15 = 10\"\n    ],\n    order: [0, 1, 2, 3],\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: Nested \u0d2c\u0d4d\u0d30\u0d3e\u0d15\u0d4d\u0d15\u0d31\u0d4d\u0d31\u0d4d \u2192 \u0d0f\u0d31\u0d4d\u0d31\u0d35\u0d41\u0d02 \u0d09\u0d33\u0d4d\u0d33\u0d3f\u0d7d \u0d28\u0d3f\u0d28\u0d4d\u0d28\u0d4d \u0d2a\u0d41\u0d31\u0d24\u0d4d\u0d24\u0d47\u0d15\u0d4d\u0d15\u0d4d: ( ) \u2192 { } \u2192 [ ].\"\n  }\n];\n\nconst RAPID_DATA = [\n  { q: \"(-3) \u00d7 (-4) = ?\", opts: [\"12\", \"-12\", \"7\", \"-7\"], ans: 0, exp: \"Neg \u00d7 Neg = Pos \u2192 3\u00d74=12\" },\n  { q: \"(-15) \u00f7 3 = ?\", opts: [\"-5\", \"5\", \"-45\", \"45\"], ans: 0, exp: \"Neg \u00f7 Pos = Neg \u2192 15\u00f73=5\" },\n  { q: \"5 + 3 \u00d7 2 = ?\", opts: [\"16\", \"11\", \"10\", \"13\"], ans: 1, exp: \"BODMAS: \u00d7 \u0d06\u0d26\u0d4d\u0d2f\u0d02 \u2192 5+6=11\" },\n  { q: \"(-8) \u2212 (\u221210) = ?\", opts: [\"\u22122\", \"2\", \"18\", \"\u221218\"], ans: 1, exp: \"\u2212(\u221210) = +10 \u2192 \u22128+10=2\" },\n  { q: \"18 \u00f7 (\u22122) \u00d7 (\u22123) = ?\", opts: [\"\u221227\", \"27\", \"3\", \"\u22123\"], ans: 1, exp: \"18\u00f7(\u22122)=\u22129, then \u22129\u00d7(\u22123)=+27\" },\n  { q: \"2 \u00d7 [3 + (4\u22121)] = ?\", opts: [\"12\", \"10\", \"14\", \"16\"], ans: 2, exp: \"Inner: 4\u22121=3, then 3+3=6, then 2\u00d76=12... wait: 3+3=6, 2\u00d76=12 \u2014 opt A=12\" }\n];\n\/\/ Fix last question\nRAPID_DATA[5] = { q: \"2 \u00d7 [3 + (4\u22121)] = ?\", opts: [\"12\", \"10\", \"14\", \"8\"], ans: 0, exp: \"(): 4\u22121=3 \u2192 []: 3+3=6 \u2192 2\u00d76=12\" };\n\nconst ERROR_DATA = [\n  {\n    q: \"[(-15) \u00f7 (-3)] \u00d7 [(-2) \u2212 1] = ?\",\n    steps: [\n      { text: \"Step 1: (-15) \u00f7 (-3) = -5\", wrong: true },\n      { text: \"Step 2: (-2) \u2212 1 = -3\", wrong: false },\n      { text: \"Step 3: (-5) \u00d7 (-3) = 15\", wrong: false }\n    ],\n    wrongIdx: 0,\n    fb: \"Step 1-\u0d7d \u0d06\u0d23\u0d4d \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d! (-15) \u00f7 (-3) = +5 \u0d06\u0d15\u0d23\u0d02 (Neg \u00f7 Neg = Pos). Step 3-\u0d7d -5 \u0d09\u0d33\u0d4d\u0d33\u0d24\u0d4d \u0d15\u0d4a\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d24\u0d4d\u0d24\u0d30\u0d02 -15 \u0d06\u0d15\u0d41\u0d02.\",\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: \u0d1a\u0d4b\u0d26\u0d4d\u0d2f\u0d24\u0d4d\u0d24\u0d3f\u0d7d Negative \u00f7 Negative \u0d15\u0d23\u0d4d\u0d1f\u0d3e\u0d7d \u0d09\u0d1f\u0d7b \u0d1a\u0d3f\u0d39\u0d4d\u0d28\u0d02 + \u0d06\u0d15\u0d4d\u0d15\u0d3f \u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d41\u0d15.\"\n  },\n  {\n    q: \"15 + 3 \u00d7 2 \u2212 10 \u00f7 5 = ?\",\n    steps: [\n      { text: \"Step 1: 15 + 3 = 18 (\u0d15\u0d42\u0d1f\u0d4d\u0d1f\u0d7d \u0d06\u0d26\u0d4d\u0d2f\u0d02)\", wrong: true },\n      { text: \"Step 2: 18 \u00d7 2 = 36\", wrong: false },\n      { text: \"Step 3: 36 \u2212 10 \u00f7 5 = 34\", wrong: false }\n    ],\n    wrongIdx: 0,\n    fb: \"Step 1 \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d! BODMAS-\u0d7d \u00f7 \u00d7 \u0d06\u0d26\u0d4d\u0d2f\u0d02. \u0d36\u0d30\u0d3f: 3\u00d72=6, 10\u00f75=2, \u0d36\u0d47\u0d37\u0d02 15+6\u22122=19.\",\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: \u0d2c\u0d4d\u0d30\u0d3e\u0d15\u0d4d\u0d15\u0d31\u0d4d\u0d31\u0d4d \u0d07\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24 \u0d1a\u0d4b\u0d26\u0d4d\u0d2f\u0d24\u0d4d\u0d24\u0d3f\u0d7d \u00d7 \u00f7 \u0d06\u0d26\u0d4d\u0d2f\u0d02, + \u2212 \u0d12\u0d1f\u0d41\u0d35\u0d3f\u0d7d.\"\n  },\n  {\n    q: \"[(-8) \u2212 (\u221210)] + [(\u22126) \u00f7 2] = ?\",\n    steps: [\n      { text: \"Step 1: (\u22128) \u2212 (\u221210) = \u221218 (\u2212 \u2212 = \u221218?)\", wrong: true },\n      { text: \"Step 2: (\u22126) \u00f7 2 = \u22123\", wrong: false },\n      { text: \"Step 3: \u221218 + (\u22123) = \u221221 (Step 1 \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d)\", wrong: false }\n    ],\n    wrongIdx: 0,\n    fb: \"Step 1 \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d! (\u22128) \u2212 (\u221210) = \u22128 + 10 = +2. \u0d30\u0d23\u0d4d\u0d1f\u0d4d Minus \u0d12\u0d30\u0d41\u0d2e\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d35\u0d28\u0d4d\u0d28\u0d3e\u0d7d Plus \u0d06\u0d15\u0d41\u0d02.\",\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: a \u2212 (\u2212b) = a + b. \u0d07\u0d24\u0d4d \u0d12\u0d30\u0d41 common mistake! Negative \u0d06\u0d26\u0d4d\u0d2f\u0d02 \u0d2a\u0d4d\u0d32\u0d38\u0d4d \u0d06\u0d15\u0d4d\u0d15\u0d3f \u0d13\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d15.\"\n  }\n];\n\nconst PSC_DATA = [\n  {\n    q: \"[(-12) + 4] \u00f7 [(-5) + 3] = ?\",\n    opts: [\"-4\", \"4\", \"2\", \"-2\"],\n    ans: 1,\n    steps: [\"Step 1: (\u221212)+4 = \u22128\", \"Step 2: (\u22125)+3 = \u22122\", \"Step 3: (\u22128)\u00f7(\u22122) = +4\"],\n    elimination: \"A, D-\u0d7d \u22124, \u22122 \u2192 \u0d39\u0d30\u0d23\u0d02 Neg\u00f7Neg=Pos \u0d06\u0d23\u0d4d, Positive \u0d06\u0d15\u0d23\u0d02 \u2192 A,D \u0d12\u0d34\u0d3f\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d02. C-\u0d2f\u0d3f\u0d7d 2 \u2192 \u0d18\u0d1f\u0d15\u0d19\u0d4d\u0d19\u0d7e \u0d28\u0d4b\u0d15\u0d4d\u0d15\u0d3f\u0d2f\u0d3e\u0d7d 8\u00f72=4, 2 \u0d05\u0d32\u0d4d\u0d32. \u2234 B = 4 \u2713\",\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: \u0d09\u0d24\u0d4d\u0d24\u0d30\u0d02 Positive \u0d06\u0d23\u0d4b Negative \u0d06\u0d23\u0d4b \u0d06\u0d26\u0d4d\u0d2f\u0d02 \u0d24\u0d40\u0d30\u0d41\u0d2e\u0d3e\u0d28\u0d3f\u0d15\u0d4d\u0d15\u0d42 \u2014 \u0d05\u0d24\u0d4d \u0d2e\u0d3e\u0d24\u0d4d\u0d30\u0d02 \u0d28\u0d4b\u0d15\u0d4d\u0d15\u0d3f 2 Options \u0d12\u0d34\u0d3f\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d02!\"\n  },\n  {\n    q: \"100 + 50 \u00f7 2 \u00d7 3 \u2212 25 \u00d7 2 = ?\",\n    opts: [\"225\", \"125\", \"150\", \"175\"],\n    ans: 1,\n    steps: [\"Block 1: 100\", \"Block 2: 50\u00f72\u00d73 = 25\u00d73 = 75\", \"Block 3: 25\u00d72 = 50\", \"Final: 100+75\u221250 = 125\"],\n    elimination: \"A=225 \u2192 100+ \u0d12\u0d15\u0d4d\u0d15\u0d46 \u0d15\u0d42\u0d1f\u0d3f\u0d2f\u0d3e\u0d7d 225 \u0d06\u0d15\u0d3f\u0d32\u0d4d\u0d32 (Block Method \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d42). C=150 \u2192 100+75=175 \u0d2e\u0d3e\u0d24\u0d4d\u0d30\u0d02; 50 \u0d15\u0d42\u0d1f\u0d3f \u0d15\u0d41\u0d31\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d23\u0d02. B=125 \u2713\",\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: Block Method \u2014 +, \u2212 \u0d1a\u0d3f\u0d39\u0d4d\u0d28\u0d02 \u0d15\u0d3e\u0d23\u0d41\u0d2e\u0d4d\u0d2a\u0d4b\u0d7e block-\u0d09\u0d15\u0d7e \u0d09\u0d23\u0d4d\u0d1f\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15; \u0d13\u0d30\u0d4b block-\u0d09\u0d02 \u00f7 \u00d7 \u0d06\u0d26\u0d4d\u0d2f\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d15.\"\n  },\n  {\n    q: \"15 + 3 \u00d7 2 \u2212 10 \u00f7 5 = ?\",\n    opts: [\"17\", \"19\", \"21\", \"15\"],\n    ans: 1,\n    steps: [\"10\u00f75 = 2\", \"3\u00d72 = 6\", \"15 + 6 \u2212 2 = 19\"],\n    elimination: \"D=15 \u2192 + \u0d09\u0d23\u0d4d\u0d1f\u0d4d, 15 \u0d2e\u0d3e\u0d24\u0d4d\u0d30\u0d02 \u0d06\u0d15\u0d3f\u0d32\u0d4d\u0d32. A=17 \u2192 15+6=21; 21\u22122=19 (17 \u0d05\u0d32\u0d4d\u0d32). C=21 \u2192 \u0d15\u0d41\u0d31\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d47\u0d23\u0d4d\u0d1f\u0d24\u0d4d miss \u0d06\u0d2f\u0d3f. B=19 \u2713\",\n    tip: \"PSC \u0d28\u0d41\u0d31\u0d41\u0d19\u0d4d\u0d19\u0d4d: Unit Digit Method: 15+6=21, 21\u22122=19. \u0d05\u0d35\u0d38\u0d3e\u0d28 \u0d05\u0d15\u0d4d\u0d15\u0d02 9 \u2192 Option B \u0d2e\u0d3e\u0d24\u0d4d\u0d30\u0d02 9-\u0d7d \u0d05\u0d35\u0d38\u0d3e\u0d28\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41!\"\n  }\n];\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ NAVIGATION\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction showScreen(id) {\n  document.querySelectorAll('.screen').forEach(s => s.classList.remove('active'));\n  document.getElementById('screen-' + id).classList.add('active');\n  window.scrollTo(0, 0);\n}\n\nfunction goHome() {\n  updateHomeProgress();\n  showScreen('home');\n  updateHUD();\n}\n\nfunction goActivity(act) {\n  currentActivity = act;\n  currentQ = 0;\n  sessionCorrect = 0;\n  sessionWrong = 0;\n  sessionXP = 0;\n\n  if (act === 'tf') initTF();\n  else if (act === 'sorter') initSorter();\n  else if (act === 'rapid') initRapid();\n  else if (act === 'error') initError();\n  else if (act === 'psc') initPSC();\n}\n\nfunction updateHUD() {\n  document.getElementById('hud-xp').textContent = totalXP + ' XP';\n  document.getElementById('hud-streak').textContent = '\ud83d\udd25 ' + streak;\n}\n\nfunction updateActivityXPBadge(id) {\n  const el = document.getElementById(id);\n  if (el) el.textContent = sessionXP + ' XP';\n}\n\nfunction updateHomeProgress() {\n  const total = 5;\n  const done = completedActivities.size;\n  document.getElementById('overall-progress').style.width = (done \/ total * 100) + '%';\n  document.getElementById('progress-label').textContent = done + '\/' + total + ' \u0d2a\u0d42\u0d7c\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3e\u0d2f\u0d3f';\n\n  ['tf','sorter','rapid','error','psc'].forEach(act => {\n    const card = document.getElementById('card-' + act);\n    if (card) {\n      if (completedActivities.has(act)) {\n        card.classList.add('done');\n        if (!card.querySelector('.act-done-mark')) {\n          const m = document.createElement('div');\n          m.className = 'act-done-mark';\n          m.textContent = '\u2713 Done';\n          card.appendChild(m);\n        }\n      }\n    }\n  });\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ XP & FEEDBACK HELPERS\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction awardXP(pts, isCorrect) {\n  totalXP += pts;\n  sessionXP += pts;\n  if (isCorrect) {\n    streak++;\n    sessionCorrect++;\n  } else {\n    streak = 0;\n    sessionWrong++;\n  }\n  updateHUD();\n  showXPPopup(isCorrect ? '+' + pts + ' XP \u2b50' : '\u0d06\u0d26\u0d4d\u0d2f\u0d02 \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d42!', isCorrect);\n}\n\nfunction showXPPopup(msg, positive) {\n  const el = document.getElementById('xp-popup');\n  el.textContent = msg;\n  el.style.background = positive\n    ? 'linear-gradient(135deg,#f4b942,#e8a020)'\n    : 'linear-gradient(135deg,#ef476f,#c73060)';\n  el.style.color = positive ? '#0d1b2a' : '#fff';\n  el.classList.remove('hide');\n  el.classList.add('show');\n  setTimeout(() => {\n    el.classList.remove('show');\n    el.classList.add('hide');\n    setTimeout(() => el.classList.remove('hide'), 300);\n  }, 900);\n}\n\nfunction showToast(msg) {\n  const t = document.getElementById('toast');\n  t.textContent = msg;\n  t.classList.add('show');\n  setTimeout(() => t.classList.remove('show'), 2000);\n}\n\nfunction showResult(actKey, xpPerActivity) {\n  completedActivities.add(actKey);\n  document.getElementById('res-xp').textContent = sessionXP;\n  document.getElementById('res-correct').textContent = sessionCorrect;\n  document.getElementById('res-wrong').textContent = sessionWrong;\n\n  const pct = sessionCorrect \/ (sessionCorrect + sessionWrong);\n  let emoji = pct >= 0.8 ? '\ud83c\udfc6' : pct >= 0.5 ? '\ud83d\udc4d' : '\ud83d\udcda';\n  let title = pct >= 0.8 ? '\u0d05\u0d38\u0d4d\u0d38\u0d7d!' : pct >= 0.5 ? '\u0d28\u0d28\u0d4d\u0d28\u0d3e\u0d2f\u0d3f!' : '\u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d42!';\n  let sub = pct >= 0.8\n    ? '\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d08 Activity-\u0d7d \u0d09\u0d17\u0d4d\u0d30\u0d7b \u0d2a\u0d4d\u0d30\u0d15\u0d1f\u0d28\u0d02 \u0d15\u0d3e\u0d34\u0d4d\u0d1a\u0d35\u0d1a\u0d4d\u0d1a\u0d41! \ud83c\udf89'\n    : '\u0d13\u0d30\u0d4b \u0d36\u0d4d\u0d30\u0d2e\u0d24\u0d4d\u0d24\u0d3f\u0d32\u0d41\u0d02 \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d15\u0d42\u0d1f\u0d41\u0d24\u0d7d \u0d2e\u0d3f\u0d15\u0d1a\u0d4d\u0d1a\u0d24\u0d3e\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41.';\n\n  document.getElementById('result-emoji').textContent = emoji;\n  document.getElementById('result-title').textContent = title;\n  document.getElementById('result-sub').textContent = sub;\n\n  document.getElementById('retry-btn').onclick = () => goActivity(actKey);\n\n  if (pct >= 0.8) launchConfetti();\n\n  updateHomeProgress();\n  showScreen('result');\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ CONFETTI\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction launchConfetti() {\n  const container = document.getElementById('confetti-container');\n  container.innerHTML = '';\n  const colors = ['#f4b942','#06d6a0','#4cc9f0','#ef476f','#ffd166','#06d6a0'];\n  for (let i = 0; i < 60; i++) {\n    const p = document.createElement('div');\n    p.className = 'confetti-piece';\n    p.style.left = Math.random() * 100 + 'vw';\n    p.style.background = colors[Math.floor(Math.random() * colors.length)];\n    p.style.animationDuration = (1.5 + Math.random() * 2) + 's';\n    p.style.animationDelay = (Math.random() * 0.8) + 's';\n    p.style.transform = 'rotate(' + (Math.random() * 360) + 'deg)';\n    p.style.width = (6 + Math.random() * 6) + 'px';\n    p.style.height = (10 + Math.random() * 8) + 'px';\n    container.appendChild(p);\n    setTimeout(() => p.remove(), 4000);\n  }\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ TRUE \/ FALSE ACTIVITY\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction initTF() {\n  showScreen('tf');\n  renderTF();\n}\n\nfunction renderTF() {\n  const d = TF_DATA[currentQ];\n  document.getElementById('tf-stmt').textContent = d.stmt;\n  document.getElementById('tf-math').textContent = d.math;\n  document.getElementById('tf-counter').textContent = (currentQ + 1) + '\/' + TF_DATA.length;\n\n  const fb = document.getElementById('tf-feedback');\n  fb.className = 'feedback-card';\n  document.getElementById('tf-tip').className = 'psc-tip';\n  document.getElementById('tf-next').style.display = 'none';\n\n  const tb = document.getElementById('tf-true');\n  const fb2 = document.getElementById('tf-false');\n  tb.disabled = false;\n  fb2.disabled = false;\n  tb.className = 'tf-btn true-btn';\n  fb2.className = 'tf-btn false-btn';\n}\n\nfunction tfAnswer(ans) {\n  const d = TF_DATA[currentQ];\n  const correct = ans === d.answer;\n  const tb = document.getElementById('tf-true');\n  const fb2 = document.getElementById('tf-false');\n\n  tb.disabled = true;\n  fb2.disabled = true;\n\n  if (correct) {\n    awardXP(10, true);\n    document.getElementById('tf-feedback').className = 'feedback-card correct show';\n    document.getElementById('tf-fb-title').textContent = '\u2705 \u0d36\u0d30\u0d3f! (+10 XP)';\n    document.getElementById('tf-fb-text').textContent = d.math;\n    if (ans) tb.classList.add('selected-correct');\n    else fb2.classList.add('selected-correct');\n  } else {\n    awardXP(0, false);\n    document.getElementById('tf-feedback').className = 'feedback-card wrong show';\n    document.getElementById('tf-fb-title').textContent = '\u274c \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d!';\n    const correctAns = d.answer ? '\u0d36\u0d30\u0d3f (True)' : '\u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d (False)';\n    document.getElementById('tf-fb-text').textContent = '\u0d36\u0d30\u0d3f \u0d09\u0d24\u0d4d\u0d24\u0d30\u0d02: ' + correctAns + '. ' + d.math;\n    if (ans) tb.classList.add('selected-wrong');\n    else fb2.classList.add('selected-wrong');\n  }\n\n  const tipEl = document.getElementById('tf-tip');\n  tipEl.innerHTML = '<strong>\ud83d\udca1 PSC Tip:<\/strong> ' + d.tip;\n  tipEl.className = 'psc-tip show';\n\n  document.getElementById('tf-next').style.display = 'flex';\n  updateActivityXPBadge('tf-xp-badge');\n}\n\nfunction tfNext() {\n  currentQ++;\n  if (currentQ >= TF_DATA.length) {\n    showResult('tf', 10);\n  } else {\n    renderTF();\n  }\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ STEP SORTER ACTIVITY\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nlet sorterCurrentOrder = [];\nlet dragSrcIdx = null;\n\nfunction initSorter() {\n  showScreen('sorter');\n  renderSorter();\n}\n\nfunction renderSorter() {\n  const d = SORTER_DATA[currentQ];\n  document.getElementById('sorter-q').textContent = d.q;\n  document.getElementById('sorter-counter').textContent = (currentQ + 1) + '\/' + SORTER_DATA.length;\n\n  \/\/ Shuffle steps\n  sorterCurrentOrder = [...d.steps.keys()].sort(() => Math.random() - 0.5);\n\n  document.getElementById('sorter-feedback').className = 'feedback-card';\n  document.getElementById('sorter-tip').className = 'psc-tip';\n  document.getElementById('sorter-check').style.display = 'flex';\n  document.getElementById('sorter-next').style.display = 'none';\n\n  renderSorterSteps(d);\n}\n\nfunction renderSorterSteps(d) {\n  const container = document.getElementById('sorter-steps');\n  container.innerHTML = '';\n  sorterCurrentOrder.forEach((origIdx, pos) => {\n    const step = document.createElement('div');\n    step.className = 'step-drag';\n    step.draggable = true;\n    step.dataset.pos = pos;\n    step.innerHTML = `<span class=\"drag-handle\">\u283f<\/span><span class=\"step-num\">${pos + 1}<\/span><span>${d.steps[origIdx]}<\/span>`;\n\n    step.addEventListener('dragstart', e => {\n      dragSrcIdx = pos;\n      step.classList.add('dragging');\n      e.dataTransfer.effectAllowed = 'move';\n    });\n    step.addEventListener('dragend', () => step.classList.remove('dragging'));\n    step.addEventListener('dragover', e => { e.preventDefault(); step.classList.add('over'); });\n    step.addEventListener('dragleave', () => step.classList.remove('over'));\n    step.addEventListener('drop', e => {\n      e.preventDefault();\n      step.classList.remove('over');\n      const targetPos = parseInt(step.dataset.pos);\n      if (dragSrcIdx !== null && dragSrcIdx !== targetPos) {\n        [sorterCurrentOrder[dragSrcIdx], sorterCurrentOrder[targetPos]] = [sorterCurrentOrder[targetPos], sorterCurrentOrder[dragSrcIdx]];\n        renderSorterSteps(SORTER_DATA[currentQ]);\n      }\n    });\n\n    \/\/ Touch support (swap on tap)\n    step.addEventListener('click', () => {\n      if (dragSrcIdx === null) {\n        dragSrcIdx = pos;\n        step.style.border = '2px solid var(--gold)';\n      } else if (dragSrcIdx === pos) {\n        dragSrcIdx = null;\n        step.style.border = '';\n      } else {\n        [sorterCurrentOrder[dragSrcIdx], sorterCurrentOrder[pos]] = [sorterCurrentOrder[pos], sorterCurrentOrder[dragSrcIdx]];\n        dragSrcIdx = null;\n        renderSorterSteps(SORTER_DATA[currentQ]);\n      }\n    });\n\n    container.appendChild(step);\n  });\n}\n\nfunction sorterCheck() {\n  const d = SORTER_DATA[currentQ];\n  const correct = JSON.stringify(sorterCurrentOrder) === JSON.stringify(d.order);\n\n  if (correct) {\n    awardXP(15, true);\n    document.getElementById('sorter-feedback').className = 'feedback-card correct show';\n    document.getElementById('sorter-fb-title').textContent = '\u2705 \u0d36\u0d30\u0d3f\u0d2f\u0d3e\u0d2f \u0d15\u0d4d\u0d30\u0d2e\u0d02! (+15 XP)';\n    document.getElementById('sorter-fb-text').textContent = 'BODMAS logic \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d18\u0d1f\u0d4d\u0d1f\u0d19\u0d4d\u0d19\u0d7e \u0d15\u0d4d\u0d30\u0d2e\u0d24\u0d4d\u0d24\u0d3f\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41!';\n  } else {\n    awardXP(0, false);\n    document.getElementById('sorter-feedback').className = 'feedback-card wrong show';\n    document.getElementById('sorter-fb-title').textContent = '\u274c \u0d15\u0d4d\u0d30\u0d2e\u0d02 \u0d36\u0d30\u0d3f\u0d2f\u0d32\u0d4d\u0d32';\n    document.getElementById('sorter-fb-text').textContent = '\u0d36\u0d30\u0d3f\u0d2f\u0d3e\u0d2f \u0d15\u0d4d\u0d30\u0d2e\u0d02: ' + d.order.map(i => d.steps[i]).join(' \u2192 ');\n  }\n\n  const tipEl = document.getElementById('sorter-tip');\n  tipEl.innerHTML = '<strong>\ud83d\udca1 PSC Tip:<\/strong> ' + d.tip;\n  tipEl.className = 'psc-tip show';\n\n  document.getElementById('sorter-check').style.display = 'none';\n  document.getElementById('sorter-next').style.display = 'flex';\n  updateActivityXPBadge('sorter-xp-badge');\n}\n\nfunction sorterNext() {\n  currentQ++;\n  if (currentQ >= SORTER_DATA.length) {\n    showResult('sorter', 15);\n  } else {\n    dragSrcIdx = null;\n    renderSorter();\n  }\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ RAPID FIRE ACTIVITY\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nlet rfTimer = null;\nlet rfTimeLeft = 10;\nlet rfAnswered = false;\n\nfunction initRapid() {\n  showScreen('rapid');\n  rfAnswered = false;\n  renderRapid();\n}\n\nfunction renderRapid() {\n  const d = RAPID_DATA[currentQ];\n  document.getElementById('rf-counter').textContent = (currentQ + 1) + '\/' + RAPID_DATA.length;\n  document.getElementById('rf-question').textContent = d.q;\n\n  const optsEl = document.getElementById('rf-options');\n  optsEl.innerHTML = '';\n  d.opts.forEach((opt, i) => {\n    const btn = document.createElement('div');\n    btn.className = 'rf-opt';\n    btn.textContent = opt;\n    btn.onclick = () => rfAnswer(i);\n    optsEl.appendChild(btn);\n  });\n\n  document.getElementById('rf-feedback').className = 'feedback-card';\n  rfAnswered = false;\n  startRFTimer();\n}\n\nfunction startRFTimer() {\n  clearInterval(rfTimer);\n  rfTimeLeft = 10;\n  updateRFTimer();\n  rfTimer = setInterval(() => {\n    rfTimeLeft--;\n    updateRFTimer();\n    if (rfTimeLeft <= 0) {\n      clearInterval(rfTimer);\n      if (!rfAnswered) {\n        rfAnswer(-1);\n      }\n    }\n  }, 1000);\n}\n\nfunction updateRFTimer() {\n  document.getElementById('rf-timer-num').textContent = rfTimeLeft;\n  const arc = document.getElementById('rf-timer-arc');\n  const circumference = 251.2;\n  const offset = circumference * (1 - rfTimeLeft \/ 10);\n  arc.style.strokeDashoffset = offset;\n  arc.style.stroke = rfTimeLeft <= 3 ? '#ef476f' : rfTimeLeft <= 6 ? '#f4b942' : '#06d6a0';\n}\n\nfunction rfAnswer(idx) {\n  if (rfAnswered) return;\n  rfAnswered = true;\n  clearInterval(rfTimer);\n\n  const d = RAPID_DATA[currentQ];\n  const correct = idx === d.ans;\n  const opts = document.querySelectorAll('.rf-opt');\n\n  opts.forEach((o, i) => {\n    o.style.pointerEvents = 'none';\n    if (i === d.ans) o.classList.add('rf-correct');\n    else if (i === idx && !correct) o.classList.add('rf-wrong');\n  });\n\n  if (correct) {\n    awardXP(10, true);\n    document.getElementById('rf-feedback').className = 'feedback-card correct show';\n    document.getElementById('rf-fb-title').textContent = '\u26a1 Fast & Correct! (+10 XP)';\n  } else {\n    awardXP(0, false);\n    document.getElementById('rf-feedback').className = 'feedback-card wrong show';\n    document.getElementById('rf-fb-title').textContent = idx === -1 ? '\u23f1\ufe0f Time Out!' : '\u274c \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d!';\n  }\n  document.getElementById('rf-fb-text').textContent = d.exp;\n  updateActivityXPBadge('rf-xp-badge');\n\n  setTimeout(() => {\n    currentQ++;\n    if (currentQ >= RAPID_DATA.length) {\n      showResult('rapid', 10);\n    } else {\n      renderRapid();\n    }\n  }, 1800);\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ ERROR SPOTTER ACTIVITY\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction initError() {\n  showScreen('error');\n  renderError();\n}\n\nfunction renderError() {\n  const d = ERROR_DATA[currentQ];\n  document.getElementById('err-q').textContent = d.q;\n  document.getElementById('err-counter').textContent = (currentQ + 1) + '\/' + ERROR_DATA.length;\n\n  const container = document.getElementById('err-steps');\n  container.innerHTML = '';\n  d.steps.forEach((step, i) => {\n    const el = document.createElement('div');\n    el.className = 'err-step';\n    el.innerHTML = `<span class=\"err-step-num\">Step ${i + 1}<\/span><span class=\"err-step-content\">${step.text}<\/span>`;\n    el.onclick = () => errTap(i, el);\n    container.appendChild(el);\n  });\n\n  document.getElementById('err-feedback').className = 'feedback-card';\n  document.getElementById('err-tip').className = 'psc-tip';\n  document.getElementById('err-next').style.display = 'none';\n}\n\nfunction errTap(idx, el) {\n  const d = ERROR_DATA[currentQ];\n  const allSteps = document.querySelectorAll('.err-step');\n  allSteps.forEach(s => s.style.pointerEvents = 'none');\n\n  if (idx === d.wrongIdx) {\n    el.classList.add('correct-pick');\n    awardXP(15, true);\n    document.getElementById('err-feedback').className = 'feedback-card correct show';\n    document.getElementById('err-fb-title').textContent = '\ud83d\udd0d \u0d36\u0d30\u0d3f \u0d15\u0d23\u0d4d\u0d1f\u0d46\u0d24\u0d4d\u0d24\u0d3f! (+15 XP)';\n  } else {\n    el.classList.add('wrong-pick');\n    allSteps[d.wrongIdx].classList.add('correct-pick');\n    awardXP(0, false);\n    document.getElementById('err-feedback').className = 'feedback-card wrong show';\n    document.getElementById('err-fb-title').textContent = '\u274c Step ' + (d.wrongIdx + 1) + '-\u0d7d \u0d06\u0d23\u0d4d \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d!';\n  }\n\n  document.getElementById('err-fb-text').textContent = d.fb;\n  const tipEl = document.getElementById('err-tip');\n  tipEl.innerHTML = '<strong>\ud83d\udca1 PSC Tip:<\/strong> ' + d.tip;\n  tipEl.className = 'psc-tip show';\n\n  document.getElementById('err-next').style.display = 'flex';\n  updateActivityXPBadge('err-xp-badge');\n}\n\nfunction errNext() {\n  currentQ++;\n  if (currentQ >= ERROR_DATA.length) {\n    showResult('error', 15);\n  } else {\n    renderError();\n  }\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ PSC PRACTICE ACTIVITY\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction initPSC() {\n  showScreen('psc');\n  renderPSC();\n}\n\nfunction renderPSC() {\n  const d = PSC_DATA[currentQ];\n  document.getElementById('psc-q-math').textContent = d.q;\n  document.getElementById('psc-q-text').textContent = '';\n  document.getElementById('psc-counter').textContent = (currentQ + 1) + '\/' + PSC_DATA.length;\n\n  const optsEl = document.getElementById('psc-options');\n  optsEl.innerHTML = '';\n  const labels = ['A', 'B', 'C', 'D'];\n  d.opts.forEach((opt, i) => {\n    const btn = document.createElement('button');\n    btn.className = 'opt-btn';\n    btn.textContent = opt;\n    btn.setAttribute('data-label', labels[i]);\n    btn.onclick = () => pscAnswer(i, btn);\n    optsEl.appendChild(btn);\n  });\n\n  document.getElementById('psc-feedback').className = 'feedback-card';\n  document.getElementById('psc-steps').innerHTML = '';\n  document.getElementById('psc-tip').className = 'psc-tip';\n  document.getElementById('psc-next').style.display = 'none';\n}\n\nfunction pscAnswer(idx, btn) {\n  const d = PSC_DATA[currentQ];\n  const correct = idx === d.ans;\n\n  document.querySelectorAll('.opt-btn').forEach((b, i) => {\n    b.disabled = true;\n    if (i === d.ans) b.classList.add('correct');\n    else if (i === idx && !correct) b.classList.add('wrong');\n  });\n\n  if (correct) {\n    awardXP(20, true);\n    document.getElementById('psc-feedback').className = 'feedback-card correct show';\n    document.getElementById('psc-fb-title').textContent = '\u2705 \u0d36\u0d30\u0d3f! (+20 XP)';\n  } else {\n    awardXP(0, false);\n    document.getElementById('psc-feedback').className = 'feedback-card wrong show';\n    document.getElementById('psc-fb-title').textContent = '\u274c \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d4d! \u0d36\u0d30\u0d3f Option: ' + ['A','B','C','D'][d.ans];\n  }\n  document.getElementById('psc-fb-text').textContent = d.elimination;\n\n  const stepsEl = document.getElementById('psc-steps');\n  d.steps.forEach(s => {\n    const el = document.createElement('div');\n    el.className = 'step-item';\n    el.textContent = s;\n    stepsEl.appendChild(el);\n  });\n\n  const tipEl = document.getElementById('psc-tip');\n  tipEl.innerHTML = '<strong>\ud83d\udca1 PSC Tip:<\/strong> ' + d.tip;\n  tipEl.className = 'psc-tip show';\n\n  document.getElementById('psc-next').style.display = 'flex';\n  updateActivityXPBadge('psc-xp-badge');\n}\n\nfunction pscNext() {\n  currentQ++;\n  if (currentQ >= PSC_DATA.length) {\n    showResult('psc', 20);\n  } else {\n    renderPSC();\n  }\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ INIT\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nupdateHUD();\nupdateHomeProgress();\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>WindopEdu \u2014 BODMAS &#038; \u0d2a\u0d42\u0d7c\u0d23\u0d4d\u0d23\u0d38\u0d02\u0d16\u0d4d\u0d2f\u0d15\u0d7e + &#8211; \u00d7 \u00f7 = ( ) [ ] { } % \u221a \u00b2 \u00b3 \u2211 \u03c0 > < \u2260 \u2264 \u2265 \u221e + - \u00d7 \u00f7 = ( ) % \u221a + - \u00d7 \u00f7 = ( ) \u00b2 + - \u00d7 \u00f7 BODMAS = % \u221a ( ) [&hellip;]\n<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","om_disable_all_campaigns":false,"_uag_custom_page_level_css":"","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3181","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"aioseo_notices":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"ocean-thumb-m":false,"ocean-thumb-ml":false,"ocean-thumb-l":false},"uagb_author_info":{"display_name":"raghumadambath","author_link":"https:\/\/windowedu.in\/blog\/?author=1"},"uagb_comment_info":0,"uagb_excerpt":"WindopEdu \u2014 BODMAS &#038; \u0d2a\u0d42\u0d7c\u0d23\u0d4d\u0d23\u0d38\u0d02\u0d16\u0d4d\u0d2f\u0d15\u0d7e + &#8211; \u00d7 \u00f7 = ( ) [ ] { } % \u221a \u00b2 \u00b3 \u2211 \u03c0 > < \u2260 \u2264 \u2265 \u221e + - \u00d7 \u00f7 = ( ) % \u221a + - \u00d7 \u00f7 = ( ) \u00b2 + - \u00d7 \u00f7 BODMAS = % \u221a ( )&hellip;","_links":{"self":[{"href":"https:\/\/windowedu.in\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/windowedu.in\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/windowedu.in\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/windowedu.in\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/windowedu.in\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3181"}],"version-history":[{"count":2,"href":"https:\/\/windowedu.in\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3181\/revisions"}],"predecessor-version":[{"id":3183,"href":"https:\/\/windowedu.in\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3181\/revisions\/3183"}],"wp:attachment":[{"href":"https:\/\/windowedu.in\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/windowedu.in\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/windowedu.in\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}