{"id":1001,"date":"2026-05-17T23:52:38","date_gmt":"2026-05-17T23:52:38","guid":{"rendered":"https:\/\/museum.wiserighteous.org\/?page_id=1001"},"modified":"2026-05-17T23:57:24","modified_gmt":"2026-05-17T23:57:24","slug":"museum-test-prep-app-emile-zola","status":"publish","type":"page","link":"https:\/\/museum.wiserighteous.org\/index.php\/museum-test-prep-app-emile-zola\/","title":{"rendered":"Museum Test Prep App &#8211; \u00c9mile Zola"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">\n    <title>Museum Test Prep App | \u00c9mile Zola \u2022 SAT \u2022 PSAT \u2022 ACT<\/title>\n    <!-- Font Awesome for icons -->\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\">\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        body {\n            background: #1e2a2a;\n            font-family: 'Georgia', 'Times New Roman', Times, serif;\n            color: #2c2b28;\n            line-height: 1.5;\n            padding: 20px;\n        }\n\n        .museum-container {\n            max-width: 1400px;\n            margin: 0 auto;\n            background: #fef8ea;\n            border-radius: 28px;\n            box-shadow: 0 20px 35px rgba(0,0,0,0.3), 0 0 0 1px #b89870 inset;\n            overflow: hidden;\n        }\n\n        .hero {\n            background: linear-gradient(135deg, #2a4a4a 0%, #1a2e2e 100%);\n            padding: 1.8rem 2.5rem;\n            border-bottom: 6px solid #e0c87a;\n            color: #f5e7cf;\n            display: flex;\n            align-items: center;\n            gap: 20px;\n            flex-wrap: wrap;\n        }\n        .hero-text {\n            flex: 2;\n        }\n        .hero h1 {\n            font-size: 2rem;\n            letter-spacing: 1px;\n            font-weight: 600;\n        }\n        .hero h1 i {\n            color: #e0c87a;\n            margin-right: 10px;\n        }\n        .hero h1 .app-badge {\n            font-size: 0.8rem;\n            background: #e0c87a33;\n            padding: 0.2rem 0.8rem;\n            border-radius: 40px;\n            margin-left: 12px;\n            vertical-align: middle;\n        }\n        .hero p {\n            font-size: 1rem;\n            font-style: italic;\n            margin-top: 0.5rem;\n            opacity: 0.85;\n        }\n        .hero-portrait {\n            flex: 0 0 100px;\n            text-align: center;\n            background: #e0c87a30;\n            padding: 8px;\n            border-radius: 50%;\n            border: 2px solid #e0c87a;\n        }\n        .hero-portrait i {\n            font-size: 3.5rem;\n            color: #ecd9b4;\n        }\n        .hero-portrait p {\n            font-size: 0.65rem;\n            margin-top: 5px;\n        }\n\n        .flex-main {\n            display: flex;\n            flex-wrap: wrap;\n        }\n        .article-panel {\n            flex: 1.6;\n            min-width: 280px;\n            padding: 2rem 2rem 2rem 2.2rem;\n            background: #fffaf2;\n            border-right: 1px solid #ecd9b4;\n        }\n        .game-sat-panel {\n            flex: 1.2;\n            min-width: 350px;\n            background: #f9efdf;\n            padding: 2rem 1.8rem;\n            display: flex;\n            flex-direction: column;\n            gap: 1.5rem;\n        }\n\n        .article-panel h2 {\n            font-size: 1.8rem;\n            border-left: 7px solid #e0c87a;\n            padding-left: 1rem;\n            margin: 0.75rem 0 1rem 0;\n            color: #2a4a4a;\n        }\n        .article-panel h2 i {\n            color: #e0c87a;\n            margin-right: 10px;\n        }\n        .article-panel h3 {\n            font-size: 1.3rem;\n            margin: 1.4rem 0 0.5rem 0;\n            color: #8b5a2b;\n            font-weight: 600;\n        }\n        .article-panel p {\n            margin-bottom: 0.9rem;\n            text-align: justify;\n        }\n        .inset-quote {\n            background: #e9e0cf;\n            padding: 0.8rem 1.3rem;\n            border-left: 4px solid #e0c87a;\n            margin: 1.2rem 0;\n            border-radius: 12px;\n            font-weight: 500;\n        }\n        .reference-list {\n            font-size: 0.8rem;\n            margin-top: 1.5rem;\n            border-top: 1px dashed #cfbc93;\n            padding-top: 1rem;\n            color: #5e4b2b;\n        }\n        .timeline-item {\n            margin: 12px 0;\n            padding-left: 20px;\n            border-left: 3px solid #e0c87a;\n        }\n        .timeline-year {\n            font-weight: bold;\n            color: #8b5a2b;\n        }\n\n        \/* Mode Selection & Quiz Styles *\/\n        .mode-selector {\n            background: white;\n            border-radius: 28px;\n            padding: 1.2rem;\n            text-align: center;\n            box-shadow: 0 4px 12px rgba(0,0,0,0.1);\n        }\n        .mode-buttons {\n            display: flex;\n            gap: 12px;\n            justify-content: center;\n            margin-top: 12px;\n            flex-wrap: wrap;\n        }\n        .mode-btn {\n            flex: 1;\n            min-width: 90px;\n            padding: 12px;\n            border: none;\n            border-radius: 60px;\n            font-weight: bold;\n            font-size: 1rem;\n            cursor: pointer;\n            transition: 0.2s;\n            font-family: inherit;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            gap: 8px;\n        }\n        .mode-btn.sat {\n            background: #1e3a2f;\n            color: white;\n        }\n        .mode-btn.psat {\n            background: #2c5f6e;\n            color: white;\n        }\n        .mode-btn.act {\n            background: #8b5a2b;\n            color: white;\n        }\n        .mode-btn:hover {\n            transform: translateY(-2px);\n            filter: brightness(1.05);\n        }\n        .mode-btn.active {\n            box-shadow: 0 0 0 3px #ffd966;\n        }\n        .quiz-header {\n            background: linear-gradient(145deg, #2a4a4a, #1a2e2e);\n            color: white;\n            padding: 1rem;\n            border-radius: 28px;\n            text-align: center;\n        }\n        .score-area {\n            font-size: 1.6rem;\n            font-weight: bold;\n            background: #00000055;\n            display: inline-block;\n            padding: 0.2rem 1.2rem;\n            border-radius: 40px;\n            margin-top: 8px;\n        }\n        .question-card {\n            background: white;\n            border-radius: 28px;\n            padding: 1.5rem;\n            box-shadow: 0 8px 18px rgba(0,0,0,0.1);\n        }\n        .question-text {\n            font-size: 1.1rem;\n            font-weight: 700;\n            margin-bottom: 1.2rem;\n            background: #fdf4e0;\n            padding: 12px;\n            border-radius: 20px;\n            border-left: 5px solid #e0c87a;\n        }\n        .options-list {\n            display: flex;\n            flex-direction: column;\n            gap: 10px;\n            margin-bottom: 1.5rem;\n        }\n        .opt-btn {\n            background: #efe2cf;\n            border: 2px solid #cfb37a;\n            padding: 10px 14px;\n            border-radius: 60px;\n            font-family: 'Segoe UI', 'Georgia', serif;\n            font-size: 0.9rem;\n            text-align: left;\n            cursor: pointer;\n            transition: 0.2s;\n        }\n        .opt-btn i {\n            margin-right: 10px;\n        }\n        .opt-btn:hover:not(:disabled) {\n            background: #e2cfb0;\n        }\n        .opt-btn.correct-highlight {\n            background: #a5d6a5;\n            border-color: #2e7d32;\n        }\n        .opt-btn.wrong-highlight {\n            background: #ef9a9a;\n            border-color: #c62828;\n        }\n        .opt-btn:disabled {\n            cursor: default;\n            opacity: 0.8;\n        }\n        .feedback {\n            margin-top: 15px;\n            padding: 12px;\n            border-radius: 20px;\n            background: #f3efdf;\n            font-size: 0.9rem;\n            border-left: 5px solid #e0c87a;\n        }\n        .next-btn, .restart-btn {\n            background: #846c3e;\n            border: none;\n            color: white;\n            font-weight: bold;\n            padding: 10px;\n            border-radius: 40px;\n            font-size: 1rem;\n            cursor: pointer;\n            margin-top: 10px;\n            width: 100%;\n        }\n        .next-btn:hover, .restart-btn:hover {\n            background: #5f4a2a;\n        }\n        .game-status {\n            font-size: 0.75rem;\n            text-align: center;\n            background: #e2d5bd;\n            padding: 6px;\n            border-radius: 50px;\n            margin-top: 8px;\n        }\n        footer {\n            text-align: center;\n            padding: 1rem;\n            background: #dfd2b6;\n            font-size: 0.7rem;\n            color: #4a3a22;\n        }\n        .disclaimer {\n            font-size: 0.65rem;\n            text-align: center;\n            margin-top: 8px;\n            color: #6b5a3e;\n        }\n        @media (max-width: 780px) {\n            .hero h1 { font-size: 1.3rem; }\n            .hero-portrait { flex-basis: 70px; }\n            .hero-portrait i { font-size: 2.2rem; }\n        }\n    <\/style>\n<\/head>\n<body>\n<div class=\"museum-container\">\n    <div class=\"hero\">\n        <div class=\"hero-text\">\n            <h1><i class=\"fas fa-feather-alt\"><\/i> \u00c9mile Zola <span class=\"app-badge\"><i class=\"fas fa-mobile-alt\"><\/i> Museum Test Prep App<\/span><\/h1>\n            <p><i class=\"fas fa-exclamation-triangle\"><\/i> French novelist, intellectual \u2014 \u201cJ\u2019Accuse\u2026!\u201d | Dreyfus Affair, defender of truth and justice<\/p>\n        <\/div>\n        <div class=\"hero-portrait\">\n            <i class=\"fas fa-book\"><\/i>\n            <p><i class=\"fas fa-shield-alt\"><\/i> Righteousness Hall<\/p>\n        <\/div>\n    <\/div>\n\n    <div class=\"flex-main\">\n        <div class=\"article-panel\">\n            <h2><i class=\"fas fa-scroll\"><\/i> \u00c9mile Zola \u2014 France (1840\u20131902)<\/h2>\n            <p>\u00c9mile Zola was a French novelist, journalist, and public intellectual who became one of the most prominent defenders of justice and truth during the Dreyfus Affair in France. Through his writings and public advocacy, Zola challenged political corruption, judicial injustice, and rising antisemitism within French society. Although widely known for his influential literary works, Zola\u2019s greatest act of civic courage occurred when he used his public voice to expose a wrongful conviction within the French military and government. His famous open letter \u201cJ\u2019Accuse\u2026!\u201d became one of the most powerful statements of moral protest in modern history and helped transform the Dreyfus Affair into a national debate about justice, equality, and the rule of law.<\/p>\n            \n            <div class=\"inset-quote\">\n                <i class=\"fas fa-quote-left\"><\/i> \u201cJ\u2019Accuse\u2026!\u201d \u2014 open letter published in L\u2019Aurore on January 13, 1898, directly accusing military officials of wrongfully convicting Alfred Dreyfus.\n            <\/div>\n\n            <h3><i class=\"fas fa-microscope\"><\/i> Historical Context: The Dreyfus Affair<\/h3>\n            <div class=\"timeline-item\">\n                <span class=\"timeline-year\"><i class=\"fas fa-calendar-alt\"><\/i> 1894 \u2013 Arrest of Alfred Dreyfus<\/span>\n                <p>French army officer Alfred Dreyfus was wrongly convicted of treason based on weak and questionable evidence. Antisemitism played a major role in shaping public opinion against him.<\/p>\n            <\/div>\n            <div class=\"timeline-item\">\n                <span class=\"timeline-year\"><i class=\"fas fa-gavel\"><\/i> Military Cover\u2011up<\/span>\n                <p>Officials within the army and government worked to protect the original verdict, even as evidence emerged that Dreyfus was innocent.<\/p>\n            <\/div>\n            <div class=\"timeline-item\">\n                <span class=\"timeline-year\"><i class=\"fas fa-exclamation\"><\/i> January 13, 1898 \u2013 \u201cJ\u2019Accuse\u2026!\u201d<\/span>\n                <p>Zola published his open letter accusing high\u2011ranking officials of conspiracy and wrongful conviction. He was prosecuted for libel and forced into temporary exile in England.<\/p>\n            <\/div>\n            <div class=\"timeline-item\">\n                <span class=\"timeline-year\"><i class=\"fas fa-flag-checkered\"><\/i> 1906 \u2013 Full Exoneration<\/span>\n                <p>Dreyfus was fully exonerated and reinstated in the French army, thanks in large part to the public pressure generated by Zola and other advocates.<\/p>\n            <\/div>\n\n            <h3><i class=\"fas fa-church\"><\/i> Righteous Act: \u201cJ\u2019Accuse\u2026!\u201d and the Defense of Justice<\/h3>\n            <p>\u00c9mile Zola&#8217;s most significant righteous act was his decision to publish \u201cJ\u2019Accuse\u2026!\u201d despite knowing it would provoke intense backlash. In the letter, he directly accused military and government authorities of wrongfully convicting Dreyfus and deliberately concealing evidence. He knew the letter would lead to his own prosecution, but he believed that truth and justice were more important than personal safety. His actions triggered a national political crisis, forced a broader investigation, and ultimately helped exonerate Dreyfus \u2014 establishing a new model for public intellectuals as defenders of truth.<\/p>\n\n            <h3><i class=\"fas fa-comment-dots\"><\/i> Legacy: Speaking Truth to Power<\/h3>\n            <p>\u00c9mile Zola is remembered not only as a major figure in French literature but also as a powerful example of moral courage in public life. The Dreyfus Affair helped establish a new role for public intellectuals \u2014 individuals who use their influence to defend truth, justice, and democratic principles. Today, Zola&#8217;s actions are widely regarded as a defining example of speaking truth to power and standing against injustice even at great personal risk. His legacy continues to inspire advocates for human rights, legal fairness, and the rule of law around the world.<\/p>\n\n            <div class=\"reference-list\">\n                <i class=\"fas fa-book-open\"><\/i> <strong>References:<\/strong> Brown (1995), Burns (1991), Horne (2001), Pag\u00e8s (2010).\n            <\/div>\n        <\/div>\n\n        <div class=\"game-sat-panel\">\n            <div class=\"mode-selector\">\n                <i class=\"fas fa-graduation-cap\"><\/i> <strong>Choose Your Exam<\/strong>\n                <div class=\"mode-buttons\">\n                    <button id=\"modeSAT\" class=\"mode-btn sat\"><i class=\"fab fa-sat\"><\/i> SAT<\/button>\n                    <button id=\"modePSAT\" class=\"mode-btn psat\"><i class=\"fas fa-pen-fancy\"><\/i> PSAT<\/button>\n                    <button id=\"modeACT\" class=\"mode-btn act\"><i class=\"fas fa-bolt\"><\/i> ACT<\/button>\n                <\/div>\n            <\/div>\n            <div class=\"quiz-header\">\n                <h3 id=\"modeTitle\"><i class=\"fas fa-brain\"><\/i> SAT \u2726 Truth &#038; Justice Righteousness Prep<\/h3>\n                <div class=\"score-area\"><i class=\"fas fa-star\"><\/i> Score: <span id=\"scoreValue\">0<\/span> \/ 600<\/div>\n            <\/div>\n            <div class=\"question-card\" id=\"quizContainer\">\n                <div id=\"dynamicQuestionArea\"><\/div>\n                <div id=\"feedbackArea\" class=\"feedback\"><i class=\"fas fa-info-circle\"><\/i> Select an exam mode above to begin.<\/div>\n                <button id=\"nextButton\" class=\"next-btn\" style=\"display: none;\"><i class=\"fas fa-arrow-right\"><\/i> Next Question<\/button>\n                <button id=\"restartButton\" class=\"restart-btn\"><i class=\"fas fa-undo-alt\"><\/i> Restart Quiz<\/button>\n                <div class=\"game-status\"><i class=\"fas fa-hourglass-half\"><\/i> 6 questions per exam \u2022 \u00c9mile Zola: J\u2019Accuse\u2026!, Dreyfus Affair, moral courage<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <footer>\n        <i class=\"fas fa-feather-alt\"><\/i> Museum Test Prep App | SAT \u2022 PSAT \u2022 ACT modes | \u00c9mile Zola \u2014 Righteous Act: \u201cJ\u2019Accuse\u2026!\u201d and the Defense of Justice\n        <div class=\"disclaimer\">\n            <i class=\"fas fa-balance-scale\"><\/i> SAT, PSAT, and ACT are registered trademarks of their respective owners. This educational tool is not affiliated with or endorsed by College Board or ACT Inc. All questions are original and based on historical content.\n        <\/div>\n    <\/footer>\n<\/div>\n\n<script>\n    \/\/ ========== \u00c9MILE ZOLA QUESTION BANKS ==========\n    \/\/ Themes: Dreyfus Affair, wrongful conviction, military cover-up, \u201cJ\u2019Accuse\u2026!\u201d, libel prosecution, temporary exile, exoneration of Dreyfus (1906)\n    \n    const SAT_QUESTIONS = [\n        { topic: \"J\u2019Accuse\u2026!\", text: \"\u00c9mile Zola\u2019s open letter \u201cJ\u2019Accuse\u2026!\u201d (1898) was written to:\", options: [\"Praise the French military\", \"Directly accuse high\u2011ranking officials of wrongfully convicting Alfred Dreyfus and concealing evidence\", \"Promote his own literary career\", \"Support the army\u2019s verdict\"], correct: 1, explanation: \"Zola\u2019s letter named specific officials and argued the case represented a grave miscarriage of justice.\" },\n        { topic: \"Consequences for Zola\", text: \"After publishing \u201cJ\u2019Accuse\u2026!\u201d, Zola was:\", options: [\"Celebrated by the government\", \"Prosecuted for libel, convicted, and forced into temporary exile in England\", \"Given a medal\", \"Ignored by the authorities\"], correct: 1, explanation: \"Zola knew he would face prosecution but believed truth was more important than personal safety.\" },\n        { topic: \"Wrongfully Accused Officer\", text: \"The French army officer who was wrongfully convicted of treason in 1894 was:\", options: [\"Charles de Gaulle\", \"Alfred Dreyfus\", \"Henri P\u00e9tain\", \"Georges Clemenceau\"], correct: 1, explanation: \"Dreyfus was a Jewish officer whose wrongful conviction exposed deep antisemitism and judicial corruption.\" },\n        { topic: \"Role of Antisemitism\", text: \"Antisemitism played a major role in the Dreyfus Affair because:\", options: [\"Dreyfus was Jewish, and prejudice influenced public opinion and the original trial\", \"The case had nothing to do with religion\", \"Only non\u2011Jews were involved\", \"Zola was Jewish\"], correct: 0, explanation: \"Dreyfus\u2019s religion made him a target and fueled prejudice that helped sustain the wrongful conviction.\" },\n        { topic: \"Final Outcome\", text: \"Alfred Dreyfus was fully exonerated and reinstated in the French army in:\", options: [\"1898\", \"1902\", \"1906\", \"1910\"], correct: 2, explanation: \"After years of pressure and a new investigation, Dreyfus was officially exonerated in 1906.\" },\n        { topic: \"Legacy Impact\", text: \"Zola\u2019s actions during the Dreyfus Affair helped establish:\", options: [\"A new role for public intellectuals as defenders of truth and justice\", \"Military censorship\", \"The monarchy in France\", \"Religious persecution\"], correct: 0, explanation: \"Zola demonstrated that writers and thinkers could use their influence to challenge powerful institutions and demand justice.\" }\n    ];\n\n    const PSAT_QUESTIONS = [\n        { topic: \"Zola's Country\", text: \"\u00c9mile Zola was a novelist and activist from which country?\", options: [\"Germany\", \"France\", \"England\", \"Italy\"], correct: 1, explanation: \"He was a French writer and public intellectual.\" },\n        { topic: \"Letter Title\", text: \"What was the title of Zola\u2019s famous open letter defending Alfred Dreyfus?\", options: [\"\u201cI Accuse\u201d\", \"\u201cJ\u2019Accuse\u2026!\u201d\", \"\u201cThe Truth\u201d\", \"\u201cThe Wrongful Conviction\u201d\"], correct: 1, explanation: \"\u201cJ\u2019Accuse\u2026!\u201d (French for \u201cI accuse\u201d) was published in the newspaper L\u2019Aurore.\" },\n        { topic: \"Newspaper\", text: \"Zola\u2019s open letter was published in which French newspaper?\", options: [\"Le Figaro\", \"L\u2019Aurore\", \"Le Monde\", \"Le Parisien\"], correct: 1, explanation: \"The letter appeared on the front page of L\u2019Aurore on January 13, 1898.\" },\n        { topic: \"Wrongful Conviction Year\", text: \"Alfred Dreyfus was wrongfully convicted of treason in which year?\", options: [\"1890\", \"1894\", \"1898\", \"1902\"], correct: 1, explanation: \"The original conviction occurred in 1894, setting off the long\u2011running Dreyfus Affair.\" },\n        { topic: \"Exoneration Year\", text: \"Dreyfus was fully exonerated in:\", options: [\"1898\", \"1902\", \"1906\", \"1914\"], correct: 2, explanation: \"After years of public pressure and reinvestigation, he was exonerated in 1906.\" },\n        { topic: \"Zola\u2019s Profession\", text: \"In addition to being a journalist and activist, Zola was a well\u2011known:\", options: [\"Military general\", \"Novelist\", \"Painter\", \"Musician\"], correct: 1, explanation: \"He was one of France\u2019s most respected novelists and a leading figure in the naturalist literary movement.\" }\n    ];\n\n    const ACT_QUESTIONS = [\n        { topic: \"Birth Year\", text: \"\u00c9mile Zola was born in which year?\", options: [\"1830\", \"1840\", \"1850\", \"1860\"], correct: 1, explanation: \"He was born in 1840 in Paris, France.\" },\n        { topic: \"Publication Date\", text: \"Zola\u2019s \u201cJ\u2019Accuse\u2026!\u201d was published on:\", options: [\"January 13, 1898\", \"July 14, 1899\", \"December 25, 1900\", \"May 1, 1901\"], correct: 0, explanation: \"The letter appeared on January 13, 1898, sparking a national crisis.\" },\n        { topic: \"Temporary Exile\", text: \"After being prosecuted for libel, Zola fled to:\", options: [\"Germany\", \"England\", \"Spain\", \"Italy\"], correct: 1, explanation: \"He took refuge in England to avoid imprisonment, continuing to advocate for Dreyfus.\" },\n        { topic: \"Military Rank\", text: \"Alfred Dreyfus was an officer in which branch of the French military?\", options: [\"Navy\", \"Army (artillery officer)\", \"Air Force\", \"Foreign Legion\"], correct: 1, explanation: \"Dreyfus was a captain in the French army artillery corps.\" },\n        { topic: \"Libel Charge\", text: \"Zola was charged with criminal libel because:\", options: [\"He attacked the president\", \"He directly accused military officials of conspiracy and wrongdoing\", \"He revealed state secrets\", \"He refused to pay taxes\"], correct: 1, explanation: \"The letter named specific officials, leading to legal action for defamation.\" },\n        { topic: \"Modern Significance\", text: \"The Dreyfus Affair helped establish the modern concept of the public intellectual \u2014 someone who:\", options: [\"Remains politically neutral\", \"Uses their influence to speak truth and challenge injustice\", \"Only writes fiction\", \"Avoids controversy\"], correct: 1, explanation: \"Zola\u2019s example inspired later generations to see moral advocacy as part of intellectual life.\" }\n    ];\n\n    let currentMode = \"SAT\";\n    let currentQuestions = [...SAT_QUESTIONS];\n    let currentIndex = 0;\n    let playerScore = 0;\n    let quizAnswered = false;\n    let selectedOptIdx = null;\n    let totalPerMode = 6;\n\n    const dynamicArea = document.getElementById(\"dynamicQuestionArea\");\n    const feedbackDiv = document.getElementById(\"feedbackArea\");\n    const nextBtn = document.getElementById(\"nextButton\");\n    const restartBtn = document.getElementById(\"restartButton\");\n    const scoreSpan = document.getElementById(\"scoreValue\");\n    const modeTitle = document.getElementById(\"modeTitle\");\n\n    function updateScoreUI() {\n        scoreSpan.innerText = playerScore;\n    }\n\n    function loadMode(mode) {\n        currentMode = mode;\n        if (mode === \"SAT\") currentQuestions = [...SAT_QUESTIONS];\n        else if (mode === \"PSAT\") currentQuestions = [...PSAT_QUESTIONS];\n        else currentQuestions = [...ACT_QUESTIONS];\n        \n        let icon = mode === \"SAT\" ? '<i class=\"fab fa-sat\"><\/i>' : (mode === \"PSAT\" ? '<i class=\"fas fa-pen-fancy\"><\/i>' : '<i class=\"fas fa-bolt\"><\/i>');\n        modeTitle.innerHTML = `${icon} ${mode} \u2726 Truth & Justice Righteousness Prep`;\n        \n        currentIndex = 0;\n        playerScore = 0;\n        quizAnswered = false;\n        selectedOptIdx = null;\n        updateScoreUI();\n        nextBtn.style.display = \"none\";\n        feedbackDiv.innerHTML = `<i class=\"fas fa-check-circle\"><\/i> ${mode} mode activated. Answer 6 questions about \u00c9mile Zola, the Dreyfus Affair, and \u201cJ\u2019Accuse\u2026!\u201d.`;\n        renderQuestion();\n        \n        document.querySelectorAll('.mode-btn').forEach(btn => btn.classList.remove('active'));\n        if (mode === \"SAT\") document.getElementById(\"modeSAT\").classList.add('active');\n        if (mode === \"PSAT\") document.getElementById(\"modePSAT\").classList.add('active');\n        if (mode === \"ACT\") document.getElementById(\"modeACT\").classList.add('active');\n    }\n\n    function renderQuestion() {\n        if (currentIndex >= totalPerMode) {\n            dynamicArea.innerHTML = `\n                <div style=\"text-align:center; padding:20px;\">\n                    <i class=\"fas fa-trophy\" style=\"font-size:3rem; color:#e0c87a;\"><\/i>\n                    <h3>${currentMode} Complete!<\/h3>\n                    <p>Your score: ${playerScore} \/ ${totalPerMode*100}<\/p>\n                    <p><i class=\"fas fa-medal\"><\/i> ${getFinalMessage()}<\/p>\n                    <i class=\"fas fa-sync-alt\"><\/i> Switch exam mode or press Restart.\n                <\/div>\n            `;\n            nextBtn.style.display = \"none\";\n            quizAnswered = true;\n            return;\n        }\n\n        const q = currentQuestions[currentIndex];\n        let optionsHtml = '';\n        const letters = ['A', 'B', 'C', 'D'];\n        q.options.forEach((opt, idx) => {\n            let disabledAttr = quizAnswered ? 'disabled' : '';\n            let extraClass = '';\n            if (quizAnswered) {\n                if (idx === q.correct) extraClass = 'correct-highlight';\n                else if (idx === selectedOptIdx && idx !== q.correct) extraClass = 'wrong-highlight';\n            }\n            optionsHtml += `\n                <button class=\"opt-btn ${extraClass}\" data-opt-index=\"${idx}\" ${disabledAttr}>\n                    <i class=\"fas ${idx === 0 ? 'fa-circle' : (idx === 1 ? 'fa-dot-circle' : (idx === 2 ? 'fa-record-vinyl' : 'fa-stop'))}\"><\/i>\n                    <strong>${letters[idx]}.<\/strong> ${escapeHtml(opt)}\n                <\/button>\n            `;\n        });\n\n        const progressHtml = `<div class=\"game-status\" style=\"margin-bottom:12px;\"><i class=\"fas fa-feather-alt\"><\/i> Question ${currentIndex+1} of ${totalPerMode} (${currentMode}) \u2022 <i class=\"fas fa-exclamation-triangle\"><\/i> ${q.topic}<\/div>`;\n        const questionHtml = `\n            ${progressHtml}\n            <div class=\"question-text\"><i class=\"fas fa-book\"><\/i> ${escapeHtml(q.text)}<\/div>\n            <div class=\"options-list\" id=\"optionsList\">${optionsHtml}<\/div>\n        `;\n        dynamicArea.innerHTML = questionHtml;\n\n        if (!quizAnswered) {\n            document.querySelectorAll('.opt-btn').forEach(btn => {\n                btn.addEventListener('click', (e) => {\n                    if (quizAnswered) return;\n                    const chosenIdx = parseInt(btn.getAttribute('data-opt-index'));\n                    handleAnswer(chosenIdx);\n                });\n            });\n        }\n    }\n\n    function handleAnswer(chosenIdx) {\n        if (quizAnswered) return;\n        const q = currentQuestions[currentIndex];\n        const isCorrect = (chosenIdx === q.correct);\n        selectedOptIdx = chosenIdx;\n        if (isCorrect) {\n            playerScore += 100;\n            updateScoreUI();\n            feedbackDiv.innerHTML = `<i class=\"fas fa-check-circle\" style=\"color:#2e7d32;\"><\/i> \u2705 ${q.explanation} <i class=\"fas fa-award\"><\/i> +100 points (${q.topic})`;\n        } else {\n            const correctLetter = String.fromCharCode(65 + q.correct);\n            const correctText = q.options[q.correct];\n            feedbackDiv.innerHTML = `<i class=\"fas fa-times-circle\" style=\"color:#b71c1c;\"><\/i> Incorrect. Correct answer: ${correctLetter}: ${escapeHtml(correctText)}.<br>\ud83d\udcd6 ${q.explanation} (${q.topic})`;\n        }\n        quizAnswered = true;\n        renderQuestion();\n        nextBtn.style.display = \"block\";\n    }\n\n    function nextQuestion() {\n        if (!quizAnswered && currentIndex < totalPerMode) {\n            feedbackDiv.innerHTML = `<i class=\"fas fa-exclamation-triangle\"><\/i> Please answer before continuing.`;\n            return;\n        }\n        if (currentIndex + 1 <= totalPerMode) {\n            currentIndex++;\n            quizAnswered = false;\n            selectedOptIdx = null;\n            nextBtn.style.display = \"none\";\n            if (currentIndex < totalPerMode) {\n                feedbackDiv.innerHTML = `<i class=\"fas fa-lightbulb\"><\/i> Read the article carefully, then choose the best answer.`;\n                renderQuestion();\n            } else {\n                renderQuestion();\n                nextBtn.style.display = \"none\";\n            }\n        }\n    }\n\n    function restartQuiz() {\n        loadMode(currentMode);\n    }\n\n    function getFinalMessage() {\n        let maxScore = totalPerMode * 100;\n        if (playerScore === maxScore) return `\ud83c\udfc6 Perfect ${currentMode} score! You understand Zola's moral courage, \u201cJ\u2019Accuse\u2026!\u201d, and the fight to exonerate Dreyfus.`;\n        if (playerScore >= 400) return `\ud83c\udf96\ufe0f Strong ${currentMode} readiness! \u201cTruth is on the march, and nothing will stop it\u201d \u2014 speaking truth to power.`;\n        return `\ud83d\udcdc Review the exhibit about the Dreyfus Affair, the open letter, and the role of the public intellectual.`;\n    }\n\n    function escapeHtml(str) {\n        return str.replace(\/[&<>]\/g, function(m) {\n            if (m === '&') return '&amp;';\n            if (m === '<') return '&lt;';\n            if (m === '>') return '&gt;';\n            return m;\n        });\n    }\n\n    document.getElementById(\"modeSAT\").addEventListener(\"click\", () => loadMode(\"SAT\"));\n    document.getElementById(\"modePSAT\").addEventListener(\"click\", () => loadMode(\"PSAT\"));\n    document.getElementById(\"modeACT\").addEventListener(\"click\", () => loadMode(\"ACT\"));\n    nextBtn.addEventListener(\"click\", nextQuestion);\n    restartBtn.addEventListener(\"click\", restartQuiz);\n    \n    loadMode(\"SAT\");\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Museum Test Prep App | \u00c9mile Zola \u2022 SAT \u2022 PSAT \u2022 ACT \u00c9mile Zola Museum Test Prep App French novelist, intellectual \u2014 \u201cJ\u2019Accuse\u2026!\u201d | Dreyfus Affair, defender of truth and justice Righteousness Hall \u00c9mile Zola \u2014 France (1840\u20131902) \u00c9mile Zola was a French novelist, journalist, and public intellectual who became one of the most [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1001","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/museum.wiserighteous.org\/index.php\/wp-json\/wp\/v2\/pages\/1001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/museum.wiserighteous.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/museum.wiserighteous.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/museum.wiserighteous.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/museum.wiserighteous.org\/index.php\/wp-json\/wp\/v2\/comments?post=1001"}],"version-history":[{"count":3,"href":"https:\/\/museum.wiserighteous.org\/index.php\/wp-json\/wp\/v2\/pages\/1001\/revisions"}],"predecessor-version":[{"id":1005,"href":"https:\/\/museum.wiserighteous.org\/index.php\/wp-json\/wp\/v2\/pages\/1001\/revisions\/1005"}],"wp:attachment":[{"href":"https:\/\/museum.wiserighteous.org\/index.php\/wp-json\/wp\/v2\/media?parent=1001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}