{"id":4653,"date":"2026-08-03T16:48:31","date_gmt":"2026-08-03T07:48:31","guid":{"rendered":"https:\/\/nansiki.net\/2018\/?p=4653"},"modified":"2026-10-07T01:31:24","modified_gmt":"2026-10-06T16:31:24","slug":"%e7%90%86%e7%a7%91_%e7%94%9f%e7%89%a9_%e7%94%9f%e7%89%a9%e3%81%ae%e3%81%8b%e3%82%89%e3%81%a0%e3%81%ae%e3%81%a4%e3%81%8f%e3%82%8a","status":"publish","type":"post","link":"https:\/\/nansiki.net\/2018\/archives\/4653","title":{"rendered":"\u7406\u79d1_\u751f\u7269_\u751f\u7269\u306e\u304b\u3089\u3060\u306e\u3064\u304f\u308a"},"content":{"rendered":"<div class=\"veu_autoEyeCatchBox\"><img loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"572\" src=\"https:\/\/nansiki.net\/2018\/wp-content\/uploads\/2022\/02\/kuizu.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"\u30af\u30a4\u30ba\" srcset=\"https:\/\/nansiki.net\/2018\/wp-content\/uploads\/2022\/02\/kuizu.jpg 784w, https:\/\/nansiki.net\/2018\/wp-content\/uploads\/2022\/02\/kuizu-300x219.jpg 300w, https:\/\/nansiki.net\/2018\/wp-content\/uploads\/2022\/02\/kuizu-768x560.jpg 768w\" sizes=\"auto, (max-width: 784px) 100vw, 784px\" \/><\/div>\n<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>\u4e2d\u5b66\u751f\u7406\u79d1 \u4e00\u554f\u4e00\u7b54\uff08\u751f\u7269\u306e\u304b\u3089\u3060\u306e\u3064\u304f\u308a\uff09<\/title>\n    <style>\n        :root {\n            --primary-color: #2563eb;\n            --primary-hover: #1d4ed8;\n            --bg-color: #f8fafc;\n            --card-bg: #ffffff;\n            --text-color: #1e293b;\n            --border-color: #e2e8f0;\n            --gray-bg: #f1f5f9;\n            --success-color: #16a34a;\n            --danger-color: #dc2626;\n            --warning-color: #d97706;\n        }\n\n        * {\n            box-sizing: border-box;\n            margin: 0;\n            padding: 0;\n            font-family: 'Helvetica Neue', Arial, sans-serif;\n        }\n\n        body {\n            background-color: var(--bg-color);\n            color: var(--text-color);\n            line-height: 1.6;\n            padding: 20px;\n        }\n\n        .container {\n            max-width: 800px;\n            margin: 0 auto;\n            background-color: var(--card-bg);\n            border-radius: 12px;\n            box-shadow: 0 4px 6px -1px rgb(0 0 0 \/ 0.1), 0 2px 4px -2px rgb(0 0 0 \/ 0.1);\n            overflow: hidden;\n        }\n\n        header {\n            background-color: var(--primary-color);\n            color: white;\n            padding: 20px;\n            text-align: center;\n        }\n\n        header h1 {\n            font-size: 1.5rem;\n            margin-bottom: 5px;\n        }\n\n        .screen {\n            padding: 30px;\n            display: none;\n        }\n\n        .screen.active {\n            display: block;\n        }\n\n        \/* \u30b9\u30bf\u30fc\u30c8\u753b\u9762 *\/\n        .start-screen {\n            text-align: center;\n            padding: 40px 20px;\n        }\n\n        .start-screen h2 {\n            margin-bottom: 15px;\n            color: var(--text-color);\n            font-size: 1.4rem;\n        }\n\n        .start-screen p {\n            margin-bottom: 30px;\n            color: #64748b;\n        }\n\n        \/* \u30dc\u30bf\u30f3\u5171\u901a *\/\n        .btn {\n            background-color: var(--primary-color);\n            color: white;\n            border: none;\n            padding: 12px 28px;\n            font-size: 1rem;\n            border-radius: 6px;\n            cursor: pointer;\n            transition: background-color 0.2s;\n        }\n\n        .btn:hover {\n            background-color: var(--primary-hover);\n        }\n\n        .btn:disabled {\n            background-color: #cbd5e1;\n            cursor: not-allowed;\n        }\n\n        .btn-secondary {\n            background-color: #64748b;\n        }\n        .btn-secondary:hover {\n            background-color: #475569;\n        }\n\n        .btn-danger {\n            background-color: var(--danger-color);\n        }\n        .btn-danger:hover {\n            background-color: #b91c1c;\n        }\n\n        \/* \u30af\u30a4\u30ba\u30d8\u30c3\u30c0\u30fc *\/\n        .quiz-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            border-bottom: 2px solid var(--border-color);\n            padding-bottom: 15px;\n            margin-bottom: 20px;\n        }\n\n        .timer {\n            font-size: 1.2rem;\n            font-weight: bold;\n            color: var(--danger-color);\n            background-color: #fee2e2;\n            padding: 5px 12px;\n            border-radius: 20px;\n        }\n\n        \/* \u554f\u984c\u30a8\u30ea\u30a2 *\/\n        .question-meta {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 10px;\n        }\n\n        .question-number {\n            font-weight: bold;\n            color: #64748b;\n        }\n\n        .review-check-btn {\n            background: none;\n            border: 2px solid var(--warning-color);\n            color: var(--warning-color);\n            padding: 4px 10px;\n            border-radius: 4px;\n            cursor: pointer;\n            font-size: 0.85rem;\n            font-weight: bold;\n            transition: all 0.2s;\n        }\n\n        .review-check-btn.checked {\n            background-color: var(--warning-color);\n            color: white;\n        }\n\n        .question-text {\n            font-size: 1.15rem;\n            font-weight: bold;\n            margin-bottom: 20px;\n        }\n\n        .options-list {\n            display: flex;\n            flex-direction: column;\n            gap: 12px;\n            margin-bottom: 30px;\n        }\n\n        .option-item {\n            display: flex;\n            align-items: center;\n            padding: 12px 15px;\n            border: 2px solid var(--border-color);\n            border-radius: 8px;\n            cursor: pointer;\n            transition: all 0.2s;\n        }\n\n        .option-item:hover {\n            background-color: var(--gray-bg);\n            border-color: #94a3b8;\n        }\n\n        .option-item input[type=\"radio\"] {\n            margin-right: 10px;\n            transform: scale(1.2);\n        }\n\n        .option-item.selected {\n            border-color: var(--primary-color);\n            background-color: #eff6ff;\n        }\n\n        \/* \u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30a8\u30ea\u30a2 *\/\n        .quiz-nav {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 30px;\n            gap: 10px;\n        }\n\n        \/* \u554f\u984c\u30d1\u30ec\u30c3\u30c8 *\/\n        .palette-container {\n            border-top: 2px solid var(--border-color);\n            padding-top: 20px;\n        }\n\n        .palette-title {\n            font-size: 0.9rem;\n            color: #64748b;\n            margin-bottom: 10px;\n        }\n\n        .palette-grid {\n            display: grid;\n            grid-template-columns: repeat(10, 1fr);\n            gap: 8px;\n        }\n\n        .palette-btn {\n            aspect-ratio: 1;\n            border: 2px solid var(--border-color);\n            background-color: white;\n            border-radius: 6px;\n            font-weight: bold;\n            cursor: pointer;\n            position: relative;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: all 0.2s;\n        }\n\n        .palette-btn.current {\n            border-color: var(--primary-color);\n            box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);\n        }\n\n        .palette-btn.answered {\n            background-color: #e0f2fe;\n            border-color: #bae6fd;\n            color: #0369a1;\n        }\n\n        .palette-btn.review::after {\n            content: '\u2605';\n            position: absolute;\n            top: -6px;\n            right: -6px;\n            color: var(--warning-color);\n            font-size: 0.8rem;\n        }\n\n        \/* \u7d50\u679c\u753b\u9762 *\/\n        .result-header {\n            text-align: center;\n            margin-bottom: 25px;\n        }\n\n        .score-display {\n            font-size: 2rem;\n            font-weight: bold;\n            color: var(--primary-color);\n            margin: 10px 0;\n        }\n\n        .result-tabs {\n            display: flex;\n            gap: 10px;\n            margin-bottom: 20px;\n            border-bottom: 2px solid var(--border-color);\n            padding-bottom: 10px;\n            overflow-x: auto;\n        }\n\n        .tab-btn {\n            background: none;\n            border: none;\n            padding: 8px 16px;\n            font-size: 0.95rem;\n            font-weight: bold;\n            color: #64748b;\n            cursor: pointer;\n            border-radius: 20px;\n            transition: all 0.2s;\n            white-space: nowrap;\n        }\n\n        .tab-btn.active {\n            background-color: var(--primary-color);\n            color: white;\n        }\n\n        .result-list {\n            display: flex;\n            flex-direction: column;\n            gap: 15px;\n            margin-bottom: 30px;\n            max-height: 450px;\n            overflow-y: auto;\n            padding-right: 5px;\n        }\n\n        .result-card {\n            border: 2px solid var(--border-color);\n            border-radius: 8px;\n            padding: 15px;\n            background-color: white;\n        }\n\n        .result-card.correct {\n            border-left: 6px solid var(--success-color);\n        }\n\n        .result-card.incorrect {\n            border-left: 6px solid var(--danger-color);\n        }\n\n        .result-card-header {\n            display: flex;\n            justify-content: space-between;\n            margin-bottom: 8px;\n            font-size: 0.9rem;\n            font-weight: bold;\n        }\n\n        .badge-correct { color: var(--success-color); }\n        .badge-incorrect { color: var(--danger-color); }\n\n        .result-q-text {\n            font-weight: bold;\n            margin-bottom: 10px;\n        }\n\n        .result-answers {\n            font-size: 0.9rem;\n            margin-bottom: 10px;\n            background-color: var(--gray-bg);\n            padding: 8px 12px;\n            border-radius: 6px;\n        }\n\n        .explanation {\n            font-size: 0.9rem;\n            color: #475569;\n            border-top: 1px dashed var(--border-color);\n            padding-top: 8px;\n        }\n\n        .result-actions {\n            text-align: center;\n        }\n\n        @media (max-width: 600px) {\n            .palette-grid {\n                grid-template-columns: repeat(5, 1fr);\n            }\n            .quiz-nav {\n                flex-direction: column;\n                align-items: stretch;\n            }\n            .quiz-nav button {\n                width: 100%;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n\n    <div class=\"container\">\n        <header>\n            <h1>\u4e2d\u5b66\u751f\u7406\u79d1 \u4e00\u554f\u4e00\u7b54<\/h1>\n            <p>\u7b2c11\u56de \u751f\u7269\u306e\u304b\u3089\u3060\u306e\u3064\u304f\u308a<\/p>\n        <\/header>\n\n        <!-- \u2460 \u30b9\u30bf\u30fc\u30c8\u753b\u9762 -->\n        <div id=\"start-screen\" class=\"screen active start-screen\">\n            <h2>\u7b2c11\u56de \u751f\u7269\u306e\u304b\u3089\u3060\u306e\u3064\u304f\u308a \u30c6\u30b9\u30c8<\/h2>\n            <p>\u6e96\u5099\u304c\u3067\u304d\u307e\u3057\u305f\u3089\u300c\u30c6\u30b9\u30c8\u30b9\u30bf\u30fc\u30c8\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044\u3002<br>\uff08\u5236\u9650\u6642\u9593\uff1a10\u5206 \/ \u51fa\u984c\u6570\uff1a10\u554f\uff09<\/p>\n            <div>\n                <button id=\"start-btn\" class=\"btn\">\u30c6\u30b9\u30c8\u30b9\u30bf\u30fc\u30c8<\/button>\n            <\/div>\n        <\/div>\n\n        <!-- \u2461 \u30af\u30a4\u30ba\u753b\u9762 -->\n        <div id=\"quiz-screen\" class=\"screen\">\n            <div class=\"quiz-header\">\n                <span id=\"quiz-title-info\">\u751f\u7269\u306e\u304b\u3089\u3060\u306e\u3064\u304f\u308a \u30c6\u30b9\u30c8\u4e2d<\/span>\n                <div id=\"timer\" class=\"timer\">10:00<\/div>\n            <\/div>\n\n            <div class=\"question-meta\">\n                <span id=\"question-number\" class=\"question-number\">\u554f\u984c 1 \/ 10<\/span>\n                <button id=\"review-btn\" class=\"review-check-btn\">\u2606 \u898b\u76f4\u3057\u30c1\u30a7\u30c3\u30af<\/button>\n            <\/div>\n\n            <div id=\"question-text\" class=\"question-text\">\n                \u3053\u3053\u306b\u554f\u984c\u6587\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\n            <\/div>\n\n            <div id=\"options-list\" class=\"options-list\">\n                <!-- \u9078\u629e\u80a2\u304c\u52d5\u7684\u306b\u633f\u5165\u3055\u308c\u307e\u3059 -->\n            <\/div>\n\n            <div class=\"quiz-nav\">\n                <button id=\"prev-btn\" class=\"btn btn-secondary\">\u524d\u306e\u554f\u984c<\/button>\n                <button id=\"finish-early-btn\" class=\"btn btn-danger\">\u30c6\u30b9\u30c8\u7d42\u4e86<\/button>\n                <button id=\"next-btn\" class=\"btn\">\u6b21\u306e\u554f\u984c<\/button>\n            <\/div>\n\n            <div class=\"palette-container\">\n                <div class=\"palette-title\">\u554f\u984c\u30d1\u30ec\u30c3\u30c8\uff08\u30af\u30ea\u30c3\u30af\u3067\u30b8\u30e3\u30f3\u30d7\uff09<\/div>\n                <div id=\"palette-grid\" class=\"palette-grid\">\n                    <!-- \u30d1\u30ec\u30c3\u30c8\u30dc\u30bf\u30f3\u304c\u52d5\u7684\u306b\u633f\u5165\u3055\u308c\u307e\u3059 -->\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- \u2462 \u7d50\u679c\u753b\u9762 -->\n        <div id=\"result-screen\" class=\"screen\">\n            <div class=\"result-header\">\n                <h2>\u30c6\u30b9\u30c8\u7d50\u679c<\/h2>\n                <div id=\"score-display\" class=\"score-display\">\u5f97\u70b9: 0\u70b9 (0\/10\u554f\u6b63\u89e3)<\/div>\n                <p id=\"time-taken-display\">\u6240\u8981\u6642\u9593: 0\u52060\u79d2<\/p>\n            <\/div>\n\n            <div class=\"result-tabs\">\n                <button class=\"tab-btn active\" data-filter=\"all\">\u3059\u3079\u3066\u8868\u793a<\/button>\n                <button class=\"tab-btn\" data-filter=\"incorrect\">\u00d7 \u4e0d\u6b63\u89e3\u306e\u307f<\/button>\n                <button class=\"tab-btn\" data-filter=\"review\">\u2606 \u898b\u76f4\u3057\u30c1\u30a7\u30c3\u30af\u306e\u307f<\/button>\n            <\/div>\n\n            <div id=\"result-list\" class=\"result-list\">\n                <!-- \u7d50\u679c\u30ab\u30fc\u30c9\u304c\u52d5\u7684\u306b\u633f\u5165\u3055\u308c\u307e\u3059 -->\n            <\/div>\n\n            <div class=\"result-actions\">\n                <button id=\"restart-btn\" class=\"btn\">\u3082\u3046\u4e00\u5ea6\u6311\u6226\u3059\u308b<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        (function() {\n            const rawQuestions = [\n                {\n                    q: \"\u6d88\u5316\u3055\u308c\u305f\u990a\u5206\u3092\u6d88\u5316\u7ba1\u306e\u4e2d\u304b\u3089\u4f53\u5185\u3078\u53d6\u308a\u5165\u308c\u308b\u3053\u3068\u3092\u4f55\u3068\u3044\u3046\u304b\u3002\",\n                    options: [\"\u5438\u53ce\", \"\u6d88\u5316\", \"\u6392\u51fa\", \"\u4ee3\u8b1d\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u5c0f\u8178\u306a\u3069\u306e\u6d88\u5316\u7ba1\u3067\u5206\u89e3\u3055\u308c\u305f\u990a\u5206\u304c\u3001\u58c1\u3092\u901a\u3063\u3066\u4f53\u5185\uff08\u8840\u6db2\u306a\u3069\uff09\u306b\u3068\u308a\u3053\u307e\u308c\u308b\u73fe\u8c61\u3092\u300c\u5438\u53ce\u300d\u3068\u3044\u3044\u307e\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u30d2\u30c8\u306e\u5fc3\u81d3\u306e\u5185\u90e8\u306f\u5de6\u53f32\u3064\u306b\u308f\u304b\u308c\u3066\u3044\u308b\u304c\u3001\u305d\u308c\u305e\u308c\u306e\u4e0a\u5074\u306e\u90e8\u5c4b\u306f\u4f55\u3068\u3088\u3070\u308c\u308b\u304b\u3002\",\n                    options: [\"\u5fc3\u623f\", \"\u5fc3\u5ba4\", \"\u6bdb\u7d30\u8840\u7ba1\", \"\u52d5\u8108\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u30d2\u30c8\u306e\u5fc3\u81d3\u306f\u4e0a\u90e8\u306b\u300c\u5fc3\u623f\uff08\u53f3\u5fc3\u623f\u30fb\u5de6\u5fc3\u623f\uff09\u300d\u3001\u4e0b\u90e8\u306b\u300c\u5fc3\u5ba4\uff08\u53f3\u5fc3\u5ba4\u30fb\u5de6\u5fc3\u5ba4\uff09\u300d\u304c\u3042\u308a\u307e\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u7d44\u7e54\u6db2\u306b\u3044\u3064\u3082\u9178\u7d20\u3084\u6804\u990a\u5206\u3092\u88dc\u3046\u305f\u3081\u306b\u306f\u3001\u4f55\u304c\u5faa\u74b0\u3059\u308b\u3053\u3068\u304c\u5fc5\u8981\u304b\u3002\",\n                    options: [\"\u8840\u6db2\", \"\u30ea\u30f3\u30d1\u6db2\", \"\u80c6\u6c41\", \"\u3060\u6db2\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u7d30\u80de\u306e\u307e\u308f\u308a\u3092\u6e80\u305f\u3059\u7d44\u7e54\u6db2\u306b\u9178\u7d20\u3084\u990a\u5206\u3092\u88dc\u7d66\u3057\u7d9a\u3051\u308b\u305f\u3081\u306b\u306f\u3001\u8840\u7ba1\u5185\u3092\u300c\u8840\u6db2\u300d\u304c\u7d76\u3048\u305a\u5faa\u74b0\u3057\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u4e8c\u9178\u5316\u70ad\u7d20\u306f\u3001\u8840\u6db2\u306e\u4f55\u306b\u3088\u3063\u3066\u80ba\u306b\u904b\u3070\u308c\u3001\u4f53\u5916\u3078\u51fa\u3055\u308c\u3066\u3044\u308b\u304b\u3002\",\n                    options: [\"\u8840\u3057\u3087\u3046\", \"\u8d64\u8840\u7403\", \"\u767d\u8840\u7403\", \"\u8840\u5c0f\u677f\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u8840\u6db2\u306e\u6db2\u4f53\u6210\u5206\u3067\u3042\u308b\u300c\u8840\u3057\u3087\u3046\u300d\u304c\u3001\u990a\u5206\u3084\u4e0d\u8981\u7269\u3001\u305d\u3057\u3066\u4e8c\u9178\u5316\u70ad\u7d20\u3092\u6eb6\u304b\u3057\u3066\u904b\u3073\u307e\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u30d2\u30c8\u306e\u809d\u81d3\u306f\u3001\u8133\u3068\u3068\u3082\u306b\u4f53\u306e\u4e2d\u3067\u306f\u6700\u3082\u91cd\u3044\u3082\u306e\u306e1\u3064\u3067\u3042\u308b\u304c\u3001\u6210\u4eba\u3067\u304a\u3088\u305d\u3069\u306e\u304f\u3089\u3044\u306e\u8cea\u91cf\u304c\u3042\u308b\u304b\u3002\",\n                    options: [\"1kg\u4ee5\u4e0a\", \"200g\u301c450g\", \"50g\u4ee5\u4e0b\", \"500g\u301c750g\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u6210\u4eba\u306e\u809d\u81d3\u306f\u7d041kg\u301c1.2kg\u307b\u3069\u3042\u308a\u3001\u4f53\u5185\u6700\u5927\u306e\u81d3\u5668\u306e1\u3064\u3067\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u53ce\u7e2e\u3059\u308b\u529b\u304c\u3064\u3088\u304f\u3001\u3064\u304b\u308c\u306a\u3044\u3067\u3001\u3044\u3064\u307e\u3067\u3082\u53ce\u7e2e\u3092\u304f\u308a\u8fd4\u3059\u7b4b\u8089\u306f\u3069\u308c\u304b\u3002\",\n                    options: [\"\u5fc3\u81d3\u306e\u7b4b\u8089\", \"\u9aa8\u683c\u306b\u3064\u3044\u3066\u3044\u308b\u7b4b\u8089\", \"\u80c3\u3084\u8178\u306e\u7b4b\u8089\", \"\u6a2a\u9694\u819c\u306e\u7b4b\u8089\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u4e0d\u968f\u610f\u7b4b\u3067\u3042\u308a\u306a\u304c\u3089\u4f11\u307e\u305a\u53ce\u7e2e\u3092\u7d9a\u3051\u308b\u300c\u5fc3\u81d3\u306e\u7b4b\u8089\uff08\u5fc3\u7b4b\uff09\u300d\u306f\u3001\u75b2\u308c\u77e5\u3089\u305a\u3067\u5f37\u529b\u3067\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u30d2\u30c8\u306e\u8840\u6db2\u306e\u56fa\u5f62\u306e\u6210\u5206\uff08\u8840\u7403\uff09\u3092\u3059\u3079\u3066\u6319\u3052\u305f\u3082\u306e\u306f\u3069\u308c\u304b\u3002\",\n                    options: [\"\u8d64\u8840\u7403\u3001\u767d\u8840\u7403\u3001\u8840\u5c0f\u677f\", \"\u8d64\u8840\u7403\u3001\u8840\u3057\u3087\u3046\u3001\u30ea\u30f3\u30d1\u7403\", \"\u8840\u3057\u3087\u3046\u3001\u8840\u5c0f\u677f\u3001\u767d\u8840\u7403\", \"\u8d64\u8840\u7403\u306e\u307f\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u8840\u6db2\u306e\u56fa\u5f62\u6210\u5206\uff08\u8840\u7403\uff09\u306f\u3001\u300c\u8d64\u8840\u7403\u300d\u300c\u767d\u8840\u7403\u300d\u300c\u8840\u5c0f\u677f\u300d\u306e3\u7a2e\u985e\u3067\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u7b4b\u8089\u306e\u4e21\u7aef\u306b\u3042\u308a\u3001\u9aa8\u306b\u7b4b\u8089\u3092\u4ed8\u7740\u3055\u305b\u308b\u306f\u305f\u3089\u304d\u3092\u3057\u3066\u3044\u308b\u3082\u306e\u3092\u4f55\u3068\u3044\u3046\u304b\u3002\",\n                    options: [\"\u3051\u3093\", \"\u3058\u3093\u5e2f\", \"\u8edf\u9aa8\", \"\u95a2\u7bc0\u5305\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u9aa8\u3068\u7b4b\u8089\u3092\u3064\u306a\u3050\u4e08\u592b\u306a\u7d50\u5408\u7d44\u7e54\u3092\u300c\u3051\u3093\uff08\u8171\uff09\u300d\u3068\u3044\u3044\u307e\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u30bf\u30de\u30cd\u30ae\u306e\u8868\u76ae\u306e\u7d30\u80de\u306b\u306f\u307f\u3089\u308c\u3001\u307b\u304a\u306e\u7c98\u819c\uff08\u52d5\u7269\u7d30\u80de\uff09\u306e\u7d30\u80de\u306b\u306f\u898b\u3089\u308c\u306a\u3044\u3064\u304f\u308a\u3092\u4f55\u3068\u3044\u3046\u304b\u3002\",\n                    options: [\"\u7d30\u80de\u58c1\", \"\u6838\", \"\u7d30\u80de\u819c\", \"\u7d30\u80de\u8cea\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u690d\u7269\u7d30\u80de\u306b\u306f\u5916\u5074\u306b\u4e08\u592b\u306a\u300c\u7d30\u80de\u58c1\u300d\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u52d5\u7269\u7d30\u80de\u306b\u306f\u3042\u308a\u307e\u305b\u3093[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u6c57\u817a\u306e\u304a\u3082\u306a\u306f\u305f\u3089\u304d\u30922\u3064\u7b54\u3048\u3088\u3002\",\n                    options: [\"\u4e0d\u8981\u7269\u306e\u6392\u51fa\u3001\u4f53\u6e29\u306e\u8abf\u7bc0\", \"\u6804\u990a\u5206\u306e\u5438\u53ce\u3001\u547c\u5438\", \"\u8001\u5ec3\u7269\u306e\u8caf\u8535\u3001\u30db\u30eb\u30e2\u30f3\u5206\u6ccc\", \"\u514d\u75ab\u6297\u4f53\u306e\u751f\u6210\u3001\u6d88\u5316\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u6c57\u817a\u304b\u3089\u6c57\u3092\u5206\u6ccc\u3059\u308b\u3053\u3068\u3067\u3001\u4e0d\u8981\u7269\uff08\u5c3f\u7d20\u306a\u3069\uff09\u306e\u6392\u51fa\u3068\u3001\u6c17\u5316\u71b1\u306a\u3069\u306b\u3088\u308b\u300c\u4f53\u6e29\u306e\u8abf\u7bc0\u300d\u3092\u884c\u3063\u3066\u3044\u307e\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u4e8c\u9178\u5316\u70ad\u7d20\u3092\u591a\u304f\u3075\u304f\u3080\u3001\u6697\u8d64\u8272\u306e\u8840\u6db2\u3092\u4f55\u3068\u3044\u3046\u304b\u3002\",\n                    options: [\"\u9759\u8108\u8840\", \"\u52d5\u8108\u8840\", \"\u30ea\u30f3\u30d1\u6db2\", \"\u7d44\u7e54\u6db2\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u9178\u7d20\u304c\u5c11\u306a\u304f\u4e8c\u9178\u5316\u70ad\u7d20\u304c\u591a\u3044\u8840\u6db2\u3092\u300c\u9759\u8108\u8840\u300d\u3068\u3044\u3044\u307e\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u6697\u3044\u3068\u3053\u308d\u304b\u3089\u6025\u306b\u660e\u308b\u3044\u3068\u3053\u308d\u306b\u51fa\u308b\u3068\u601d\u308f\u305a\u76ee\u3092\u3064\u3076\u308b\u3002\u3053\u306e\u3088\u3046\u306a\u7121\u610f\u8b58\u306e\u53cd\u5fdc\u3092\u4f55\u3068\u3044\u3046\u304b\u3002\",\n                    options: [\"\u53cd\u5c04\", \"\u6761\u4ef6\u3065\u3051\", \"\u77e5\u899a\", \"\u968f\u610f\u904b\u52d5\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u523a\u6fc0\u306b\u5bfe\u3057\u3066\u7121\u610f\u8b58\u306b\u8d77\u3053\u308b\u7d20\u65e9\u3044\u53cd\u5fdc\u3092\u300c\u53cd\u5c04\u300d\u3068\u3044\u3044\u307e\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u611f\u899a\u5668\u5b98\u306b\u3042\u308a\u3001\u5916\u754c\u304b\u3089\u306e\u523a\u6fc0\u3092\u53d7\u3051\u3068\u308b\u7279\u5225\u306a\u7d30\u80de\u3092\u4f55\u3068\u3044\u3046\u304b\u3002\",\n                    options: [\"\u611f\u899a\u7d30\u80de\", \"\u904b\u52d5\u795e\u7d4c\", \"\u795e\u7d4c\u7d30\u80de\", \"\u53d7\u5bb9\u5668\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u76ee\u3084\u8033\u306a\u3069\u306e\u611f\u899a\u5668\u5b98\u306b\u306f\u3001\u523a\u6fc0\u3092\u53d7\u3051\u53d6\u308b\u300c\u611f\u899a\u7d30\u80de\u300d\u304c\u5b58\u5728\u3057\u307e\u3059[cite: 15, 21]\u3002\"\n                },\n                {\n                    q: \"\u5fc3\u81d3\u304b\u3089\u9001\u308a\u51fa\u3055\u308c\u308b\u8840\u6db2\u304c\u6d41\u308c\u308b\u8840\u7ba1\u3092\u4f55\u3068\u3044\u3046\u304b\u3002\",\n                    options: [\"\u52d5\u8108\", \"\u9759\u8108\", \"\u6bdb\u7d30\u8840\u7ba1\", \"\u30ea\u30f3\u30d1\u7ba1\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u5fc3\u81d3\u304b\u3089\u9001\u308a\u51fa\u3055\u308c\u308b\u8840\u6db2\u304c\u6d41\u308c\u308b\u8840\u7ba1\u3092\u300c\u52d5\u8108\u300d\u3001\u5fc3\u81d3\u3078\u623b\u308b\u8840\u6db2\u304c\u6d41\u308c\u308b\u8840\u7ba1\u3092\u300c\u9759\u8108\u300d\u3068\u3044\u3044\u307e\u3059[cite: 16, 22]\u3002\"\n                },\n                {\n                    q: \"\u6d88\u5316\u9175\u7d20\u306b\u3088\u3063\u3066\u3001\u30c7\u30f3\u30d7\u30f3\u306f\u6700\u7d42\u7684\u306b\u4f55\u306b\u5206\u89e3\u3055\u308c\u308b\u304b\u3002\",\n                    options: [\"\u30d6\u30c9\u30a6\u7cd6\", \"\u30a2\u30df\u30ce\u9178\", \"\u8102\u80aa\u9178\", \"\u30b0\u30ea\u30bb\u30ea\u30f3\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u30c7\u30f3\u30d7\u30f3\u306f\u3060\u6db2\u3084\u81b5\u6db2\u306a\u3069\u306e\u30a2\u30df\u30e9\u30fc\u30bc\u3084\u6d88\u5316\u9175\u7d20\u306b\u3088\u308a\u3001\u6700\u7d42\u7684\u306b\u300c\u30d6\u30c9\u30a6\u7cd6\u300d\u306b\u307e\u3067\u5206\u89e3\u3055\u308c\u307e\u3059[cite: 16, 21]\u3002\"\n                },\n                {\n                    q: \"\u4f53\u5185\u306b\u5165\u3063\u3066\u304d\u305f\u7d30\u83cc\u3084\u7570\u7269\u3092\u3068\u308a\u8fbc\u3093\u3067\u5206\u89e3\u3059\u308b\uff08\u98df\u4f5c\u7528\u306a\u3069\uff09\u306f\u305f\u3089\u304d\u306e\u3042\u308b\u8840\u7403\u306f\u4f55\u304b\u3002\",\n                    options: [\"\u767d\u8840\u7403\", \"\u8d64\u8840\u7403\", \"\u8840\u5c0f\u677f\", \"\u30ea\u30f3\u30d1\u7403\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u300c\u767d\u8840\u7403\u300d\u306f\u4f53\u5185\u306b\u4fb5\u5165\u3057\u305f\u7d30\u83cc\u3084\u30a6\u30a4\u30eb\u30b9\u306a\u3069\u306e\u7570\u7269\u3092\u98df\u3079\u3066\uff08\u98df\u4f5c\u7528\uff09\u9000\u6cbb\u3057\u307e\u3059[cite: 16, 21]\u3002\"\n                },\n                {\n                    q: \"\u5c3f\u7d20\u306a\u3069\u306e\u4e0d\u8981\u7269\u3092\u8840\u6db2\u4e2d\u304b\u3089\u3053\u3057\u51fa\u3059\uff08\u308d\u904e\u3059\u308b\uff09\u306f\u305f\u3089\u304d\u3092\u3082\u3064\u5668\u5b98\u306f\u3069\u3053\u304b\u3002\",\n                    options: [\"\u814e\u81d3\", \"\u809d\u81d3\", \"\u80ba\", \"\u80c3\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u8840\u6db2\u4e2d\u306e\u8001\u5ec3\u7269\uff08\u5c3f\u7d20\u306a\u3069\uff09\u3092\u3053\u3057\u51fa\u3057\u3066\u5c3f\u3092\u3064\u304f\u308b\u5668\u5b98\u306f\u300c\u814e\u81d3\u300d\u3067\u3059[cite: 16, 21]\u3002\"\n                },\n                {\n                    q: \"\u30bf\u30de\u30cd\u30ae\u306e\u6839\u306e\u7d30\u80de\u5206\u88c2\u3092\u89b3\u5bdf\u3059\u308b\u3068\u304d\u3001\u6839\u306e\u5148\u7aef\u3092\u6e29\u3081\u308b\u305f\u3081\u306b\u4f7f\u308f\u308c\u308b\u3046\u3059\u3044\u6db2\u4f53\u306f\u4f55\u304b\u3002\",\n                    options: [\"\u5869\u9178\", \"\u9162\u9178\u30ab\u30fc\u30df\u30f3\u6eb6\u6db2\", \"\u30e8\u30a6\u7d20\u6db2\", \"\u30a8\u30bf\u30ce\u30fc\u30eb\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u7d30\u80de\u540c\u58eb\u3092\u96e2\u308c\u3084\u3059\u304f\u3059\u308b\u305f\u3081\u306b\u300160\u2103\u7a0b\u5ea6\u306e\u3046\u3059\u3044\u300c\u5869\u9178\u300d\u306b\u6839\u3092\u3064\u3051\u3066\u51e6\u7406\u3057\u307e\u3059[cite: 16, 21]\u3002\"\n                },\n                {\n                    q: \"\u9162\u9178\u30ab\u30fc\u30df\u30f3\u6eb6\u6db2\u3084\u9162\u9178\u30aa\u30eb\u30bb\u30a4\u30f3\u6eb6\u6db2\u306b\u3088\u304f\u67d3\u307e\u308a\u3001\u907a\u4f1d\u5b50\u3092\u3075\u304f\u3093\u3067\u3044\u308b\u7d30\u80de\u306e\u90e8\u5206\u306f\u3069\u3053\u304b\u3002\",\n                    options: [\"\u6838\", \"\u8449\u7dd1\u4f53\", \"\u7d30\u80de\u58c1\", \"\u6db2\u80de\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u9162\u9178\u30ab\u30fc\u30df\u30f3\u6eb6\u6db2\u306a\u3069\u306f\u3001\u907a\u4f1d\u7269\u8cea\u3092\u591a\u304f\u542b\u3080\u300c\u6838\u300d\u3092\u8d64\u7d2b\u8272\u306b\u67d3\u3081\u51fa\u3057\u307e\u3059[cite: 16, 21]\u3002\"\n                },\n                {\n                    q: \"\u71b1\u3044\u3082\u306e\u306b\u3055\u308f\u3063\u305f\u3068\u304d\u624b\u3092\u3072\u3063\u3053\u3081\u308b\u53cd\u5c04\u306b\u304a\u3044\u3066\u3001\u76ae\u3075\u304c\u53d7\u3051\u3068\u3063\u305f\u523a\u6fc0\u306f\u3069\u306e\u3088\u3046\u306a\u7d4c\u8def\u3067\u4f1d\u308f\u308b\u304b\u3002\",\n                    options: [\"\u611f\u899a\u795e\u7d4c \u2192 \u305b\u304d\u305a\u3044 \u2192 \u904b\u52d5\u795e\u7d4c\", \"\u904b\u52d5\u795e\u7d4c \u2192 \u8133 \u2192 \u611f\u899a\u795e\u7d4c\", \"\u8133 \u2192 \u305b\u304d\u305a\u3044 \u2192 \u7b4b\u8089\", \"\u611f\u899a\u795e\u7d4c \u2192 \u8133 \u2192 \u7b4b\u8089\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u53cd\u5c04\u306e\u4e2d\u67a2\u306f\u8133\u3067\u306f\u306a\u304f\u300c\u305b\u304d\u305a\u3044\u300d\u3067\u3042\u308a\u3001\u611f\u899a\u795e\u7d4c\u304b\u3089\u305b\u304d\u305a\u3044\u3092\u901a\u3063\u3066\u904b\u52d5\u795e\u7d4c\u3078\u4f1d\u308f\u308a\u307e\u3059[cite: 16, 21]\u3002\"\n                },\n                {\n                    q: \"\u6700\u3082\u9178\u7d20\u306e\u591a\u304f\u3075\u304f\u307e\u308c\u305f\u8840\u6db2\u304c\u6d41\u308c\u308b\u8840\u7ba1\u306f\u3069\u3053\u304b\u3002\",\n                    options: [\"\u80ba\u9759\u8108\", \"\u80ba\u52d5\u8108\", \"\u5927\u52d5\u8108\", \"\u5927\u9759\u8108\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u80ba\u3067\u9178\u7d20\u3092\u305f\u3063\u3077\u308a\u53d7\u3051\u53d6\u3063\u305f\u8840\u6db2\u306f\u3001\u300c\u80ba\u9759\u8108\u300d\u3092\u901a\u3063\u3066\u5fc3\u81d3\u306e\u5de6\u5fc3\u623f\u306b\u623b\u308a\u307e\u3059[cite: 16, 21]\u3002\"\n                },\n                {\n                    q: \"1\u30641\u3064\u306e\u7d30\u80de\u3067\u884c\u308f\u308c\u3066\u304a\u308a\u3001\u9178\u7d20\u3092\u5229\u7528\u3057\u3066\u6804\u990a\u5206\u3092\u5206\u89e3\u3057\u3001\u30a8\u30cd\u30eb\u30ae\u30fc\u3092\u3068\u308a\u51fa\u3059\u4f5c\u7528\u3092\u4f55\u3068\u3044\u3046\u304b\u3002\",\n                    options: [\"\u5185\u547c\u5438\", \"\u5916\u547c\u5438\", \"\u5149\u5408\u6210\", \"\u84b8\u6563\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u80ba\u3067\u884c\u3046\u30ac\u30b9\u4ea4\u63db\u306f\u300c\u5916\u547c\u5438\u300d\u3001\u7d30\u80de\u30ec\u30d9\u30eb\u3067\u30a8\u30cd\u30eb\u30ae\u30fc\u3092\u53d6\u308a\u51fa\u3059\u547c\u5438\u3092\u300c\u5185\u547c\u5438\u300d\u3068\u3044\u3044\u307e\u3059[cite: 16, 21]\u3002\"\n                },\n                {\n                    q: \"\u30c7\u30f3\u30d7\u30f3\u3092\u7cd6\u306b\u5206\u89e3\u3059\u308b\u9175\u7d20\u3067\u3001\u30d2\u30c8\u306e\u3060\u6db2\u306b\u3075\u304f\u307e\u308c\u3066\u3044\u308b\u3082\u306e\u306f\u4f55\u304b\u3002\",\n                    options: [\"\u30a2\u30df\u30e9\u30fc\u30bc\", \"\u30da\u30d7\u30b7\u30f3\", \"\u30c8\u30ea\u30d7\u30b7\u30f3\", \"\u30ea\u30d1\u30fc\u30bc\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u3060\u6db2\u306b\u542b\u307e\u308c\u308b\u6d88\u5316\u9175\u7d20\u306f\u300c\u30a2\u30df\u30e9\u30fc\u30bc\uff08\u30d7\u30c1\u30a2\u30ea\u30f3\uff09\u300d\u3067\u3001\u30c7\u30f3\u30d7\u30f3\u3092\u9ea6\u82bd\u7cd6\u306a\u3069\u306b\u5206\u89e3\u3057\u307e\u3059[cite: 17, 21]\u3002\"\n                },\n                {\n                    q: \"\u6d88\u5316\u9175\u7d20\u306b\u3088\u3063\u3066\u3001\u30bf\u30f3\u30d1\u30af\u8cea\u306f\u6700\u7d42\u7684\u306b\u4f55\u306b\u5206\u89e3\u3055\u308c\u308b\u304b\u3002\",\n                    options: [\"\u30a2\u30df\u30ce\u9178\", \"\u30d6\u30c9\u30a6\u7cd6\", \"\u8102\u80aa\u9178\", \"\u30b0\u30ea\u30bb\u30ea\u30f3\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u30bf\u30f3\u30d1\u30af\u8cea\u306f\u6d88\u5316\u9175\u7d20\u306b\u3088\u3063\u3066\u6700\u7d42\u7684\u306b\u300c\u30a2\u30df\u30ce\u9178\u300d\u306b\u307e\u3067\u5206\u89e3\u3055\u308c\u3066\u5438\u53ce\u3055\u308c\u307e\u3059[cite: 17, 21]\u3002\"\n                },\n                {\n                    q: \"\u8449\u3067\u3064\u304f\u3089\u308c\u305f\u6804\u990a\u5206\uff08\u6709\u6a5f\u7269\uff09\u304c\u901a\u308b\u7ba1\u3092\u4f55\u3068\u3044\u3046\u304b\u3002\",\n                    options: [\"\u5e2b\u7ba1\", \"\u9053\u7ba1\", \"\u7dad\u7ba1\u675f\", \"\u30ea\u30f3\u30d1\u7ba1\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u5149\u5408\u6210\u3067\u4f5c\u3089\u308c\u305f\u6804\u990a\u5206\u304c\u901a\u308b\u7ba1\u3092\u300c\u5e2b\u7ba1\u300d\u3001\u6c34\u3084\u6c34\u306b\u6eb6\u3051\u305f\u990a\u5206\u304c\u901a\u308b\u7ba1\u3092\u300c\u9053\u7ba1\u300d\u3068\u3044\u3044\u307e\u3059[cite: 17, 22]\u3002\"\n                },\n                {\n                    q: \"\u690d\u7269\u306e\u6c17\u5b54\u3092\u56f2\u3080\u3001\u5411\u304b\u3044\u5408\u3063\u305f\u4e09\u65e5\u6708\u5f62\u306e2\u3064\u306e\u7d30\u80de\u3092\u4f55\u3068\u3044\u3046\u304b\u3002\",\n                    options: [\"\u5b54\u8fba\u7d30\u80de\", \"\u8868\u76ae\u7d30\u80de\", \"\u8449\u7dd1\u4f53\", \"\u5e2b\u7ba1\u7d30\u80de\"],\n                    answer: 0,\n                    explanation: \"\u3010\u89e3\u8aac\u3011\u6c17\u5b54\u306e\u958b\u9589\u3092\u884c\u3046\u4e09\u65e5\u6708\u5f62\u306e\u7d30\u80de\u3092\u300c\u5b54\u8fba\u7d30\u80de\u300d\u3068\u3044\u3044\u307e\u3059[cite: 19, 22]\u3002\"\n                }\n            ];\n\n            let questions = [];\n            let currentIndex = 0;\n            let userAnswers = {};\n            let reviewFlags = {};\n            let timerInterval = null;\n            let timeLeft = 600;\n            let startTime = 0;\n\n            const startScreen = document.getElementById('start-screen');\n            const quizScreen = document.getElementById('quiz-screen');\n            const resultScreen = document.getElementById('result-screen');\n            \n            const startBtn = document.getElementById('start-btn');\n            const nextBtn = document.getElementById('next-btn');\n            const prevBtn = document.getElementById('prev-btn');\n            const finishEarlyBtn = document.getElementById('finish-early-btn');\n            const restartBtn = document.getElementById('restart-btn');\n            const reviewBtn = document.getElementById('review-btn');\n            \n            const questionNumberEl = document.getElementById('question-number');\n            const questionTextEl = document.getElementById('question-text');\n            const optionsListEl = document.getElementById('options-list');\n            const timerEl = document.getElementById('timer');\n            const paletteGridEl = document.getElementById('palette-grid');\n            const scoreDisplayEl = document.getElementById('score-display');\n            const timeTakenDisplayEl = document.getElementById('time-taken-display');\n            const resultListEl = document.getElementById('result-list');\n            const tabBtns = document.querySelectorAll('.tab-btn');\n\n            function selectAndShuffleQuestions(allQuestions, count) {\n                let indices = Array.from({ length: allQuestions.length }, (_, i) => i);\n                for (let i = indices.length - 1; i > 0; i--) {\n                    const j = Math.floor(Math.random() * (i + 1));\n                    [indices[i], indices[j]] = [indices[j], indices[i]];\n                }\n\n                let selectedIndices = indices.slice(0, count);\n                let selected = selectedIndices.map(i => allQuestions[i]);\n\n                return selected.map(q => {\n                    let optionObjs = q.options.map((opt, idx) => ({\n                        text: opt,\n                        isCorrect: idx === q.answer\n                    }));\n\n                    for (let i = optionObjs.length - 1; i > 0; i--) {\n                        const j = Math.floor(Math.random() * (i + 1));\n                        [optionObjs[i], optionObjs[j]] = [optionObjs[j], optionObjs[i]];\n                    }\n\n                    const newAnswerIdx = optionObjs.findIndex(o => o.isCorrect);\n\n                    return {\n                        q: q.q,\n                        options: optionObjs.map(o => o.text),\n                        answer: newAnswerIdx,\n                        explanation: q.explanation\n                    };\n                });\n            }\n\n            startBtn.addEventListener('click', () => {\n                questions = selectAndShuffleQuestions(rawQuestions, 10);\n                currentIndex = 0;\n                userAnswers = {};\n                reviewFlags = {};\n                timeLeft = 600;\n                startTime = Date.now();\n\n                switchScreen(quizScreen);\n                startTimer();\n                renderQuestion();\n                renderPalette();\n            });\n\n            function switchScreen(screen) {\n                [startScreen, quizScreen, resultScreen].forEach(s => s.classList.remove('active'));\n                screen.classList.add('active');\n            }\n\n            function startTimer() {\n                clearInterval(timerInterval);\n                updateTimerDisplay();\n                timerInterval = setInterval(() => {\n                    timeLeft--;\n                    updateTimerDisplay();\n                    if (timeLeft <= 0) {\n                        clearInterval(timerInterval);\n                        finishTest();\n                    }\n                }, 1000);\n            }\n\n            function updateTimerDisplay() {\n                const minutes = Math.floor(timeLeft \/ 60);\n                const seconds = timeLeft % 60;\n                timerEl.textContent = `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n            }\n\n            function renderQuestion() {\n                const qData = questions[currentIndex];\n                questionNumberEl.textContent = `\u554f\u984c ${currentIndex + 1} \/ ${questions.length}`;\n                questionTextEl.textContent = qData.q;\n\n                if (reviewFlags[currentIndex]) {\n                    reviewBtn.textContent = '\u2605 \u898b\u76f4\u3057\u4e2d\uff08\u89e3\u9664\uff09';\n                    reviewBtn.classList.add('checked');\n                } else {\n                    reviewBtn.textContent = '\u2606 \u898b\u76f4\u3057\u30c1\u30a7\u30c3\u30af';\n                    reviewBtn.classList.remove('checked');\n                }\n\n                optionsListEl.innerHTML = '';\n                qData.options.forEach((opt, idx) => {\n                    const label = document.createElement('label');\n                    label.className = `option-item ${userAnswers[currentIndex] === idx ? 'selected' : ''}`;\n                    \n                    const radio = document.createElement('input');\n                    radio.type = 'radio';\n                    radio.name = 'quiz-option';\n                    radio.value = idx;\n                    radio.checked = userAnswers[currentIndex] === idx;\n\n                    radio.addEventListener('change', () => {\n                        userAnswers[currentIndex] = idx;\n                        renderPalette();\n                        highlightSelectedOption();\n                    });\n\n                    label.appendChild(radio);\n                    label.appendChild(document.createTextNode(opt));\n                    optionsListEl.appendChild(label);\n                });\n\n                prevBtn.disabled = currentIndex === 0;\n                if (currentIndex === questions.length - 1) {\n                    nextBtn.textContent = '\u63a1\u70b9\u3059\u308b';\n                } else {\n                    nextBtn.textContent = '\u6b21\u306e\u554f\u984c';\n                }\n\n                renderPalette();\n            }\n\n            function highlightSelectedOption() {\n                const items = optionsListEl.querySelectorAll('.option-item');\n                items.forEach((item, idx) => {\n                    if (userAnswers[currentIndex] === idx) {\n                        item.classList.add('selected');\n                    } else {\n                        item.classList.remove('selected');\n                    }\n                });\n            }\n\n            reviewBtn.addEventListener('click', () => {\n                reviewFlags[currentIndex] = !reviewFlags[currentIndex];\n                renderQuestion();\n            });\n\n            prevBtn.addEventListener('click', () => {\n                if (currentIndex > 0) {\n                    currentIndex--;\n                    renderQuestion();\n                }\n            });\n\n            nextBtn.addEventListener('click', () => {\n                if (currentIndex < questions.length - 1) {\n                    currentIndex++;\n                    renderQuestion();\n                } else {\n                    if (confirm('\u3059\u3079\u3066\u306e\u554f\u984c\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002\u30c6\u30b9\u30c8\u3092\u7d42\u4e86\u3057\u3066\u63a1\u70b9\u3057\u307e\u3059\u304b\uff1f')) {\n                        finishTest();\n                    }\n                }\n            });\n\n            finishEarlyBtn.addEventListener('click', () => {\n                if (confirm('\u672c\u5f53\u306b\u30c6\u30b9\u30c8\u3092\u7d42\u4e86\u3057\u3066\u63a1\u70b9\u753b\u9762\u3078\u79fb\u52d5\u3057\u307e\u3059\u304b\uff1f')) {\n                    finishTest();\n                }\n            });\n\n            function renderPalette() {\n                paletteGridEl.innerHTML = '';\n                questions.forEach((_, idx) => {\n                    const btn = document.createElement('button');\n                    btn.className = 'palette-btn';\n                    btn.textContent = idx + 1;\n\n                    if (idx === currentIndex) btn.classList.add('current');\n                    if (userAnswers[idx] !== undefined) btn.classList.add('answered');\n                    if (reviewFlags[idx]) btn.classList.add('review');\n\n                    btn.addEventListener('click', () => {\n                        currentIndex = idx;\n                        renderQuestion();\n                    });\n\n                    paletteGridEl.appendChild(btn);\n                });\n            }\n\n            function finishTest() {\n                clearInterval(timerInterval);\n                switchScreen(resultScreen);\n\n                const timeSpentSec = Math.floor((Date.now() - startTime) \/ 1000);\n                const minutes = Math.floor(timeSpentSec \/ 60);\n                const seconds = timeSpentSec % 60;\n                timeTakenDisplayEl.textContent = `\u6240\u8981\u6642\u9593: ${minutes}\u5206${seconds}\u79d2`;\n\n                let correctCount = 0;\n                questions.forEach((q, idx) => {\n                    if (userAnswers[idx] === q.answer) correctCount++;\n                });\n\n                const score = correctCount * 10;\n                scoreDisplayEl.textContent = `\u5f97\u70b9: ${score}\u70b9 (${correctCount}\/${questions.length}\u554f\u6b63\u89e3)`;\n\n                renderResults('all');\n            }\n\n            function renderResults(filter) {\n                resultListEl.innerHTML = '';\n\n                questions.forEach((q, idx) => {\n                    const userAnswer = userAnswers[idx];\n                    const isCorrect = userAnswer === q.answer;\n                    const isReviewed = reviewFlags[idx];\n\n                    if (filter === 'incorrect' && isCorrect) return;\n                    if (filter === 'review' && !isReviewed) return;\n\n                    const card = document.createElement('div');\n                    card.className = `result-card ${isCorrect ? 'correct' : 'incorrect'}`;\n\n                    const userAnswerText = userAnswer !== undefined ? q.options[userAnswer] : '\u672a\u56de\u7b54';\n                    const correctAnswerText = q.options[q.answer];\n\n                    card.innerHTML = `\n                        <div class=\"result-card-header\">\n                            <span>\u554f\u984c ${idx + 1} ${isReviewed ? ' <span style=\"color:var(--warning-color)\">\u2605\u898b\u76f4\u3057\u30c1\u30a7\u30c3\u30af<\/span>' : ''}<\/span>\n                            <span class=\"${isCorrect ? 'badge-correct' : 'badge-incorrect'}\">${isCorrect ? '\u3007 \u6b63\u89e3' : '\u00d7 \u4e0d\u6b63\u89e3'}<\/span>\n                        <\/div>\n                        <div class=\"result-q-text\">${q.q}<\/div>\n                        <div class=\"result-answers\">\n                            <div>\u3042\u306a\u305f\u306e\u7b54\u3048: <strong>${userAnswerText}<\/strong><\/div>\n                            <div>\u6b63\u89e3: <strong>${correctAnswerText}<\/strong><\/div>\n                        <\/div>\n                        <div class=\"explanation\">\n                            <strong>\u3010\u89e3\u8aac\u3011<\/strong> ${q.explanation}\n                        <\/div>\n                    `;\n                    resultListEl.appendChild(card);\n                });\n\n                if (resultListEl.children.length === 0) {\n                    resultListEl.innerHTML = '<p style=\"text-align:center; color:#64748b; padding:20px;\">\u8a72\u5f53\u3059\u308b\u554f\u984c\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>';\n                }\n            }\n\n            tabBtns.forEach(btn => {\n                btn.addEventListener('click', (e) => {\n                    tabBtns.forEach(b => b.classList.remove('active'));\n                    e.target.classList.add('active');\n                    renderResults(e.target.dataset.filter);\n                });\n            });\n\n            restartBtn.addEventListener('click', () => {\n                switchScreen(startScreen);\n            });\n\n        })();\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>\u4e2d\u5b66\u751f\u7406\u79d1 \u4e00\u554f\u4e00\u7b54\uff08\u751f\u7269\u306e\u304b\u3089\u3060\u306e\u3064\u304f\u308a\uff09 \u4e2d\u5b66\u751f\u7406\u79d1 \u4e00\u554f\u4e00\u7b54 \u7b2c11\u56de \u751f\u7269\u306e\u304b\u3089\u3060\u306e\u3064\u304f\u308a \u7b2c11\u56de \u751f\u7269\u306e\u304b\u3089\u3060\u306e\u3064\u304f\u308a \u30c6\u30b9\u30c8 \u6e96\u5099\u304c\u3067\u304d\u307e\u3057\u305f\u3089\u300c\u30c6\u30b9\u30c8\u30b9\u30bf\u30fc\u30c8\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044\u3002\uff08\u5236\u9650\u6642\u9593\uff1a10\u5206  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2120,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"sns_share_botton_hide":"","vkExUnit_sns_title":"","_vk_print_noindex":"","sitemap_hide":"","vkExUnit_EyeCatch_disable":"","_veu_custom_css":"","veu_display_promotion_alert":"","vkexunit_cta_each_option":"","_lightning_design_setting":{"layout":"col-one-no-subsection","site_body_padding":"true"},"footnotes":""},"categories":[308],"tags":[],"class_list":["post-4653","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-308"],"acf":[],"veu_head_title_object":{"title":"","add_site_title":""},"_links":{"self":[{"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/posts\/4653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/comments?post=4653"}],"version-history":[{"count":1,"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/posts\/4653\/revisions"}],"predecessor-version":[{"id":4654,"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/posts\/4653\/revisions\/4654"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/media\/2120"}],"wp:attachment":[{"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/media?parent=4653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/categories?post=4653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nansiki.net\/2018\/wp-json\/wp\/v2\/tags?post=4653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}