Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the astra-sites domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/functions.php on line 6170

Warning: include_once(/home/dpjrmkpe/taonga.nxfanz.com/wp-content/plugins/theai/includes/functions.php): Failed to open stream: No such file or directory in /home/dpjrmkpe/taonga.nxfanz.com/wp-content/plugins/theai/theai.php on line 118

Warning: include_once(): Failed opening '/home/dpjrmkpe/taonga.nxfanz.com/wp-content/plugins/theai/includes/functions.php' for inclusion (include_path='.:/opt/cpanel/ea-php81/root/usr/share/pear') in /home/dpjrmkpe/taonga.nxfanz.com/wp-content/plugins/theai/theai.php on line 118

Warning: include_once(/home/dpjrmkpe/taonga.nxfanz.com/wp-content/plugins/theai/includes/api-settings.php): Failed to open stream: No such file or directory in /home/dpjrmkpe/taonga.nxfanz.com/wp-content/plugins/theai/theai.php on line 119

Warning: include_once(): Failed opening '/home/dpjrmkpe/taonga.nxfanz.com/wp-content/plugins/theai/includes/api-settings.php' for inclusion (include_path='.:/opt/cpanel/ea-php81/root/usr/share/pear') in /home/dpjrmkpe/taonga.nxfanz.com/wp-content/plugins/theai/theai.php on line 119

Warning: session_start(): Session cannot be started after headers have already been sent in /home/dpjrmkpe/taonga.nxfanz.com/wp-content/plugins/chatbot-ai-free-models/includes/class-chatbot-main.php on line 88

Warning: Cannot modify header information - headers already sent by (output started at /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/functions.php:6170) in /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/rest-api/class-wp-rest-server.php on line 1897

Warning: Cannot modify header information - headers already sent by (output started at /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/functions.php:6170) in /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/rest-api/class-wp-rest-server.php on line 1897

Warning: Cannot modify header information - headers already sent by (output started at /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/functions.php:6170) in /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/rest-api/class-wp-rest-server.php on line 1897

Warning: Cannot modify header information - headers already sent by (output started at /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/functions.php:6170) in /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/rest-api/class-wp-rest-server.php on line 1897

Warning: Cannot modify header information - headers already sent by (output started at /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/functions.php:6170) in /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/rest-api/class-wp-rest-server.php on line 1897

Warning: Cannot modify header information - headers already sent by (output started at /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/functions.php:6170) in /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/rest-api/class-wp-rest-server.php on line 1897

Warning: Cannot modify header information - headers already sent by (output started at /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/functions.php:6170) in /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/rest-api/class-wp-rest-server.php on line 1897

Warning: Cannot modify header information - headers already sent by (output started at /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/functions.php:6170) in /home/dpjrmkpe/taonga.nxfanz.com/wp-includes/rest-api/class-wp-rest-server.php on line 1897
{"id":56,"date":"2025-08-07T19:14:56","date_gmt":"2025-08-07T19:14:56","guid":{"rendered":"https:\/\/taonga.nxfanz.com\/?p=56"},"modified":"2025-08-07T19:14:56","modified_gmt":"2025-08-07T19:14:56","slug":"25-cards","status":"publish","type":"post","link":"https:\/\/taonga.nxfanz.com\/?p=56","title":{"rendered":"25 Cards"},"content":{"rendered":"\n\n\n\n\n \n \n Te Reo M\u0101ori Flashcards<\/title>\n <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n <style>\n @import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600;700&display=swap');\n \n body {\n font-family: 'Poppins', sans-serif;\n background-color: #f5f5f5;\n background-image: url(\"data:image\/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23000000' fill-opacity='0.05' fill-rule='evenodd'\/%3E%3C\/svg%3E\");\n }\n \n .poutama-container {\n position: relative;\n height: 100%;\n width: 60px;\n overflow: hidden;\n }\n \n .poutama-step {\n position: absolute;\n background-color: #000;\n }\n \n .flashcard {\n perspective: 1000px;\n height: 350px;\n width: 100%;\n max-width: 550px;\n }\n \n .flashcard-inner {\n position: relative;\n width: 100%;\n height: 100%;\n transition: transform 0.8s;\n transform-style: preserve-3d;\n box-shadow: 0 15px 25px rgba(0,0,0,0.2);\n border-radius: 16px;\n }\n \n .flashcard.flipped .flashcard-inner {\n transform: rotateY(180deg);\n }\n \n .flashcard-front, .flashcard-back {\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 16px;\n padding: 20px;\n overflow: hidden;\n }\n \n .flashcard-front {\n background-color: #D40000; \/* Red *\/\n color: #fff;\n }\n \n .flashcard-back {\n background-color: #000; \/* Black *\/\n color: #fff;\n transform: rotateY(180deg);\n }\n \n .card-content {\n z-index: 10;\n text-align: center;\n width: 100%;\n }\n \n .progress-bar {\n height: 12px;\n border-radius: 6px;\n background: #333;\n overflow: hidden;\n }\n \n .progress {\n height: 100%;\n background: linear-gradient(90deg, #D40000 0%, #FFD700 100%);\n transition: width 0.5s ease;\n }\n \n .btn {\n transition: all 0.3s ease;\n }\n \n .btn:hover {\n transform: translateY(-2px);\n }\n \n .btn:active {\n transform: translateY(1px);\n }\n \n .koru-pattern {\n position: absolute;\n bottom: 10px;\n right: 10px;\n width: 80px;\n height: 80px;\n opacity: 0.2;\n }\n \n .hint-badge {\n position: absolute;\n top: 15px;\n right: 15px;\n background-color: #FFD700;\n color: #000;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n font-weight: bold;\n box-shadow: 0 2px 5px rgba(0,0,0,0.2);\n z-index: 20;\n transition: all 0.3s ease;\n }\n \n .hint-badge:hover {\n transform: scale(1.1);\n }\n \n .hint-content {\n position: absolute;\n top: 60px;\n right: 15px;\n background-color: #FFD700;\n color: #000;\n padding: 10px;\n border-radius: 8px;\n max-width: 200px;\n box-shadow: 0 3px 10px rgba(0,0,0,0.2);\n z-index: 20;\n display: none;\n }\n \n .score-badge {\n background-color: #FFD700;\n color: #000;\n border-radius: 20px;\n padding: 5px 15px;\n font-weight: bold;\n box-shadow: 0 2px 5px rgba(0,0,0,0.2);\n }\n \n @keyframes bounce {\n 0%, 20%, 50%, 80%, 100% {transform: translateY(0);}\n 40% {transform: translateY(-20px);}\n 60% {transform: translateY(-10px);}\n }\n \n .bounce {\n animation: bounce 1s;\n }\n \n \/* Poutama pattern *\/\n .poutama {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 60px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n \n .step {\n background-color: rgba(255, 255, 255, 0.2);\n margin: 2px;\n }\n \n \/* Category selector *\/\n .category-selector {\n background-color: #000;\n color: #fff;\n border: 2px solid #FFD700;\n border-radius: 8px;\n padding: 8px 12px;\n font-weight: bold;\n appearance: none;\n background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFD700' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C\/polyline%3E%3C\/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n background-size: 16px;\n padding-right: 32px;\n }\n <\/style>\n<\/head>\n<body>\n <div class=\"min-h-screen flex flex-col items-center py-12 px-4\">\n <div class=\"w-full max-w-4xl\">\n <!-- Header -->\n <div class=\"text-center mb-10\">\n <h1 class=\"text-4xl font-bold text-gray-800 mb-2\">Te Reo M\u0101ori Whakaako<\/h1>\n <p class=\"text-lg text-gray-600\">Intermediate to Advanced Vocabulary<\/p>\n <\/div>\n \n <!-- Category selector -->\n <div class=\"mb-6 flex justify-center\">\n <select id=\"category-selector\" class=\"category-selector\">\n <option value=\"all\">All Categories (25 cards)<\/option>\n <option value=\"concepts\">Cultural Concepts (5 cards)<\/option>\n <option value=\"nature\">Nature & Environment (5 cards)<\/option>\n <option value=\"actions\">Actions & Processes (5 cards)<\/option>\n <option value=\"descriptive\">Descriptive Terms (5 cards)<\/option>\n <option value=\"social\">Social & Community (5 cards)<\/option>\n <\/select>\n <\/div>\n \n <!-- Score and Progress Tracking -->\n <div class=\"mb-8 flex justify-between items-center\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-sm font-medium text-gray-700\" id=\"progress-text\">Card 1 of 25<\/span>\n <span class=\"score-badge\" id=\"mastered-text\">Mastered: 0\/25<\/span>\n <\/div>\n <div class=\"score-badge\" id=\"score-display\">Score: 0<\/div>\n <\/div>\n \n <div class=\"mb-4 w-full\">\n <div class=\"progress-bar\">\n <div class=\"progress\" id=\"progress-bar\" style=\"width: 4%\"><\/div>\n <\/div>\n <\/div>\n \n <!-- Flashcard -->\n <div class=\"flashcard mx-auto mb-8 relative\" id=\"flashcard\">\n <div class=\"flashcard-inner\">\n <div class=\"flashcard-front\">\n <!-- Poutama pattern on the left -->\n <div class=\"poutama\">\n <div class=\"step h-1\/5\"><\/div>\n <div class=\"step h-1\/5\"><\/div>\n <div class=\"step h-1\/5\"><\/div>\n <div class=\"step h-1\/5\"><\/div>\n <div class=\"step h-1\/5\"><\/div>\n <\/div>\n \n <div class=\"card-content pl-16\">\n <h2 class=\"text-4xl font-bold mb-4\" id=\"front-text\">Whakaaro<\/h2>\n <div class=\"border-t border-white opacity-30 my-4 mx-auto w-3\/4\"><\/div>\n <p class=\"text-lg italic opacity-80\">Click to reveal meaning<\/p>\n <\/div>\n \n <!-- Hint badge -->\n <div class=\"hint-badge\" id=\"hint-badge-front\">?<\/div>\n <div class=\"hint-content\" id=\"hint-content-front\">Starts with ‘W’<\/div>\n \n <!-- Koru pattern decoration -->\n <svg class=\"koru-pattern\" viewBox=\"0 0 100 100\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n <path d=\"M50,10 C30,10 10,30 10,50 C10,70 30,90 50,90 C70,90 90,70 90,50 C90,30 70,10 50,10 Z M50,80 C35,80 20,65 20,50 C20,35 35,20 50,20 C65,20 80,35 80,50 C80,65 65,80 50,80 Z M50,30 C40,30 30,40 30,50 C30,60 40,70 50,70 C60,70 70,60 70,50 C70,40 60,30 50,30 Z M50,60 C45,60 40,55 40,50 C40,45 45,40 50,40 C55,40 60,45 60,50 C60,55 55,60 50,60 Z\" fill=\"#fff\" fill-opacity=\"0.2\"\/>\n <\/svg>\n <\/div>\n <div class=\"flashcard-back\">\n <!-- Poutama pattern on the left -->\n <div class=\"poutama\">\n <div class=\"step h-1\/5\"><\/div>\n <div class=\"step h-1\/5\"><\/div>\n <div class=\"step h-1\/5\"><\/div>\n <div class=\"step h-1\/5\"><\/div>\n <div class=\"step h-1\/5\"><\/div>\n <\/div>\n \n <div class=\"card-content pl-16\">\n <h2 class=\"text-4xl font-bold mb-2\" id=\"back-text\">Thought, opinion<\/h2>\n <div class=\"border-t border-white opacity-30 my-4 mx-auto w-3\/4\"><\/div>\n <p class=\"text-lg mb-4\" id=\"example-text\">Example: He whakaaro pai t\u0113n\u0101.<\/p>\n <p class=\"text-sm italic opacity-80\" id=\"translation-text\">(That’s a good thought\/idea.)<\/p>\n <\/div>\n \n <!-- Hint badge -->\n <div class=\"hint-badge\" id=\"hint-badge-back\">?<\/div>\n <div class=\"hint-content\" id=\"hint-content-back\">Mental process<\/div>\n \n <!-- Koru pattern decoration -->\n <svg class=\"koru-pattern\" viewBox=\"0 0 100 100\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n <path d=\"M50,10 C30,10 10,30 10,50 C10,70 30,90 50,90 C70,90 90,70 90,50 C90,30 70,10 50,10 Z M50,80 C35,80 20,65 20,50 C20,35 35,20 50,20 C65,20 80,35 80,50 C80,65 65,80 50,80 Z M50,30 C40,30 30,40 30,50 C30,60 40,70 50,70 C60,70 70,60 70,50 C70,40 60,30 50,30 Z M50,60 C45,60 40,55 40,50 C40,45 45,40 50,40 C55,40 60,45 60,50 C60,55 55,60 50,60 Z\" fill=\"#fff\" fill-opacity=\"0.2\"\/>\n <\/svg>\n <\/div>\n <\/div>\n <\/div>\n \n <!-- Controls -->\n <div class=\"flex flex-col sm:flex-row justify-center gap-4 mb-8\">\n <button id=\"flip-btn\" class=\"btn bg-red-700 hover:bg-red-800 text-white font-bold py-3 px-6 rounded-lg shadow-md\">\n Flip Card\n <\/button>\n <button id=\"next-btn\" class=\"btn bg-yellow-500 hover:bg-yellow-600 text-black font-bold py-3 px-6 rounded-lg shadow-md\">\n Next Card\n <\/button>\n <\/div>\n \n <!-- Mastery Controls -->\n <div class=\"flex justify-center gap-4\">\n <button id=\"still-learning-btn\" class=\"btn bg-gray-800 hover:bg-gray-900 text-white font-bold py-2 px-4 rounded-lg shadow-md\">\n Still Learning (0 pts)\n <\/button>\n <button id=\"mastered-btn\" class=\"btn bg-green-600 hover:bg-green-700 text-white font-bold py-2 px-4 rounded-lg shadow-md\">\n Mastered! (+10 pts)\n <\/button>\n <\/div>\n \n <!-- Results Modal (hidden by default) -->\n <div id=\"results-modal\" class=\"fixed inset-0 bg-gray-800 bg-opacity-75 flex items-center justify-center z-50 hidden\">\n <div class=\"bg-white rounded-xl p-8 max-w-md w-full mx-4 relative overflow-hidden\">\n <!-- Poutama pattern on the left -->\n <div class=\"absolute left-0 top-0 h-full w-8\">\n <div class=\"bg-red-700 h-1\/5 w-full\"><\/div>\n <div class=\"bg-black h-1\/5 w-full\"><\/div>\n <div class=\"bg-red-700 h-1\/5 w-full\"><\/div>\n <div class=\"bg-black h-1\/5 w-full\"><\/div>\n <div class=\"bg-red-700 h-1\/5 w-full\"><\/div>\n <\/div>\n \n <div class=\"pl-10\">\n <h2 class=\"text-2xl font-bold text-gray-800 mb-4\">Ka pai! (Well done!)<\/h2>\n <p class=\"text-lg text-gray-600 mb-2\" id=\"results-text\">You’ve mastered 0 out of 25 cards.<\/p>\n <p class=\"text-lg text-gray-600 mb-6\" id=\"final-score-text\">Final score: 0 points<\/p>\n <div class=\"flex justify-center\">\n <button id=\"restart-btn\" class=\"btn bg-red-700 hover:bg-red-800 text-white font-bold py-3 px-6 rounded-lg shadow-md\">\n Start Again\n <\/button>\n <\/div>\n <\/div>\n <\/div>\n <\/div>\n <\/div>\n <\/div>\n\n <script>\n document.addEventListener('DOMContentLoaded', function() {\n \/\/ Flashcard data for intermediate to advanced Te Reo M\u0101ori speakers - 25 cards total\n const allFlashcards = {\n concepts: [\n {\n front: \"Whakaaro\",\n back: \"Thought, opinion\",\n example: \"Example: He whakaaro pai t\u0113n\u0101.\",\n translation: \"(That's a good thought\/idea.)\",\n frontHint: \"Starts with 'W'\",\n backHint: \"Mental process\",\n category: \"concepts\"\n },\n {\n front: \"Whakapapa\",\n back: \"Genealogy, lineage\",\n example: \"Example: Ko t\u0113nei t\u014dku whakapapa.\",\n translation: \"(This is my genealogy.)\",\n frontHint: \"Family connections\",\n backHint: \"Ancestral lines\",\n category: \"concepts\"\n },\n {\n front: \"Kaitiakitanga\",\n back: \"Guardianship, stewardship\",\n example: \"Example: Ko te kaitiakitanga o te taiao he mahi nui.\",\n translation: \"(The guardianship of the environment is important work.)\",\n frontHint: \"Protecting something\",\n backHint: \"Environmental concept\",\n category: \"concepts\"\n },\n {\n front: \"Manaakitanga\",\n back: \"Hospitality, kindness\",\n example: \"Example: He iwi manaakitanga m\u0101tou.\",\n translation: \"(We are a hospitable people.)\",\n frontHint: \"Caring for others\",\n backHint: \"Cultural value\",\n category: \"concepts\"\n },\n {\n front: \"Rangatiratanga\",\n back: \"Sovereignty, leadership\",\n example: \"Example: Kei a ia te rangatiratanga o te iwi.\",\n translation: \"(The leadership of the tribe belongs to him\/her.)\",\n frontHint: \"Authority concept\",\n backHint: \"Chiefly quality\",\n category: \"concepts\"\n }\n ],\n nature: [\n {\n front: \"Maunga\",\n back: \"Mountain\",\n example: \"Example: Ko Taranaki te maunga.\",\n translation: \"(Taranaki is the mountain.)\",\n frontHint: \"High landform\",\n backHint: \"Sacred to iwi\",\n category: \"nature\"\n },\n {\n front: \"Ngahere\",\n back: \"Forest\",\n example: \"Example: Kei te ngahere ng\u0101 manu.\",\n translation: \"(The birds are in the forest.)\",\n frontHint: \"Trees together\",\n backHint: \"Where birds live\",\n category: \"nature\"\n },\n {\n front: \"Moana\",\n back: \"Ocean, sea\",\n example: \"Example: He m\u0101ori te moana i t\u0113nei r\u0101.\",\n translation: \"(The sea is calm today.)\",\n frontHint: \"Vast water\",\n backHint: \"Beyond the shore\",\n category: \"nature\"\n },\n {\n front: \"Whenua\",\n back: \"Land, placenta\",\n example: \"Example: Ko t\u0113nei te whenua o \u014dku t\u012bpuna.\",\n translation: \"(This is the land of my ancestors.)\",\n frontHint: \"We stand on it\",\n backHint: \"Double meaning\",\n category: \"nature\"\n },\n {\n front: \"Awa\",\n back: \"River\",\n example: \"Example: Ka rere te awa ki te moana.\",\n translation: \"(The river flows to the sea.)\",\n frontHint: \"Flowing water\",\n backHint: \"Connects mountains to sea\",\n category: \"nature\"\n }\n ],\n actions: [\n {\n front: \"Whakawhiti k\u014drero\",\n back: \"To discuss, exchange ideas\",\n example: \"Example: Me whakawhiti k\u014drero t\u0101tou.\",\n translation: \"(Let's discuss\/exchange ideas.)\",\n frontHint: \"Communication action\",\n backHint: \"Sharing thoughts\",\n category: \"actions\"\n },\n {\n front: \"Whakarongo\",\n back: \"To listen\",\n example: \"Example: Whakarongo mai ki ahau.\",\n translation: \"(Listen to me.)\",\n frontHint: \"Using your ears\",\n backHint: \"Attentive action\",\n category: \"actions\"\n },\n {\n front: \"Whakam\u0101rama\",\n back: \"To explain, clarify\",\n example: \"Example: Whakam\u0101rama mai t\u0113n\u0101 k\u014drero.\",\n translation: \"(Explain that statement to me.)\",\n frontHint: \"Making clear\",\n backHint: \"Teaching action\",\n category: \"actions\"\n },\n {\n front: \"Whakatau\",\n back: \"To decide, settle\",\n example: \"Example: Kua whakatau r\u0101tou i te take.\",\n translation: \"(They have settled the matter.)\",\n frontHint: \"Making final\",\n backHint: \"Resolution action\",\n category: \"actions\"\n },\n {\n front: \"Whakaako\",\n back: \"To teach, instruct\",\n example: \"Example: Ka whakaako ia i te reo M\u0101ori.\",\n translation: \"(She\/he teaches the M\u0101ori language.)\",\n frontHint: \"Knowledge sharing\",\n backHint: \"Educational role\",\n category: \"actions\"\n }\n ],\n descriptive: [\n {\n front: \"Tapu\",\n back: \"Sacred, restricted\",\n example: \"Example: He tapu t\u0113nei w\u0101hi.\",\n translation: \"(This place is sacred.)\",\n frontHint: \"Special status\",\n backHint: \"Not for everyday use\",\n category: \"descriptive\"\n },\n {\n front: \"Noa\",\n back: \"Ordinary, unrestricted\",\n example: \"Example: Kua noa te whare.\",\n translation: \"(The house is now unrestricted.)\",\n frontHint: \"Opposite of tapu\",\n backHint: \"Free from restriction\",\n category: \"descriptive\"\n },\n {\n front: \"Mana\",\n back: \"Authority, prestige\",\n example: \"Example: He tangata mana nui ia.\",\n translation: \"(He\/she is a person of great authority.)\",\n frontHint: \"Personal power\",\n backHint: \"Earned respect\",\n category: \"descriptive\"\n },\n {\n front: \"Ihi\",\n back: \"Essential force, excitement\",\n example: \"Example: I rongo au i te ihi o te haka.\",\n translation: \"(I felt the power of the haka.)\",\n frontHint: \"Powerful energy\",\n backHint: \"Spiritual quality\",\n category: \"descriptive\"\n },\n {\n front: \"Wehi\",\n back: \"Awe, fear\",\n example: \"Example: I k\u012b t\u014dna ng\u0101kau ki te wehi.\",\n translation: \"(His\/her heart was filled with awe.)\",\n frontHint: \"Deep respect\",\n backHint: \"Overwhelming feeling\",\n category: \"descriptive\"\n }\n ],\n social: [\n {\n front: \"Hui\",\n back: \"Meeting, gathering\",\n example: \"Example: Ka t\u016b te hui \u0101p\u014dp\u014d.\",\n translation: \"(The meeting will be held tomorrow.)\",\n frontHint: \"People come together\",\n backHint: \"Formal assembly\",\n category: \"social\"\n },\n {\n front: \"Wh\u0101nau\",\n back: \"Family, to be born\",\n example: \"Example: He nui t\u014dku wh\u0101nau.\",\n translation: \"(My family is large.)\",\n frontHint: \"Close relations\",\n backHint: \"Blood connections\",\n category: \"social\"\n },\n {\n front: \"Hap\u016b\",\n back: \"Sub-tribe, pregnant\",\n example: \"Example: N\u014d t\u0113hea hap\u016b koe?\",\n translation: \"(Which sub-tribe are you from?)\",\n frontHint: \"Larger than family\",\n backHint: \"Smaller than iwi\",\n category: \"social\"\n },\n {\n front: \"Iwi\",\n back: \"Tribe, people\",\n example: \"Example: Ko Ng\u0101ti Porou t\u014dku iwi.\",\n translation: \"(Ng\u0101ti Porou is my tribe.)\",\n frontHint: \"Tribal group\",\n backHint: \"Major social unit\",\n category: \"social\"\n },\n {\n front: \"P\u014dwhiri\",\n back: \"Welcome ceremony\",\n example: \"Example: Ka t\u012bmata te p\u014dwhiri i te iwa karaka.\",\n translation: \"(The welcome ceremony will start at nine o'clock.)\",\n frontHint: \"Formal welcome\",\n backHint: \"Traditional protocol\",\n category: \"social\"\n }\n ]\n };\n \n \/\/ Flatten all categories into one array\n let flashcards = [];\n Object.values(allFlashcards).forEach(category => {\n flashcards = flashcards.concat(category);\n });\n \n \/\/ Variables\n let currentCardIndex = 0;\n let masteredCards = new Array(flashcards.length).fill(false);\n let score = 0;\n let hintShown = false;\n let currentCategory = \"all\";\n let activeFlashcards = flashcards;\n \n \/\/ DOM elements\n const flashcard = document.getElementById('flashcard');\n const frontText = document.getElementById('front-text');\n const backText = document.getElementById('back-text');\n const exampleText = document.getElementById('example-text');\n const translationText = document.getElementById('translation-text');\n const flipBtn = document.getElementById('flip-btn');\n const nextBtn = document.getElementById('next-btn');\n const stillLearningBtn = document.getElementById('still-learning-btn');\n const masteredBtn = document.getElementById('mastered-btn');\n const progressBar = document.getElementById('progress-bar');\n const progressText = document.getElementById('progress-text');\n const masteredText = document.getElementById('mastered-text');\n const resultsModal = document.getElementById('results-modal');\n const resultsText = document.getElementById('results-text');\n const finalScoreText = document.getElementById('final-score-text');\n const restartBtn = document.getElementById('restart-btn');\n const scoreDisplay = document.getElementById('score-display');\n const hintBadgeFront = document.getElementById('hint-badge-front');\n const hintContentFront = document.getElementById('hint-content-front');\n const hintBadgeBack = document.getElementById('hint-badge-back');\n const hintContentBack = document.getElementById('hint-content-back');\n const categorySelector = document.getElementById('category-selector');\n \n \/\/ Initialize\n updateCard();\n updateProgress();\n updateScore();\n \n \/\/ Event listeners\n flipBtn.addEventListener('click', flipCard);\n flashcard.addEventListener('click', flipCard);\n nextBtn.addEventListener('click', nextCard);\n stillLearningBtn.addEventListener('click', () => {\n masteredCards[getGlobalIndex(currentCardIndex)] = false;\n updateMasteredCount();\n nextCard();\n });\n masteredBtn.addEventListener('click', () => {\n if (!masteredCards[getGlobalIndex(currentCardIndex)]) {\n score += 10;\n updateScore();\n }\n masteredCards[getGlobalIndex(currentCardIndex)] = true;\n updateMasteredCount();\n flashcard.classList.add('bounce');\n setTimeout(() => {\n flashcard.classList.remove('bounce');\n nextCard();\n }, 1000);\n });\n restartBtn.addEventListener('click', restartGame);\n \n \/\/ Category selector\n categorySelector.addEventListener('change', function() {\n currentCategory = this.value;\n \n if (currentCategory === \"all\") {\n activeFlashcards = flashcards;\n } else {\n activeFlashcards = flashcards.filter(card => card.category === currentCategory);\n }\n \n currentCardIndex = 0;\n updateCard();\n updateProgress();\n });\n \n \/\/ Hint functionality\n hintBadgeFront.addEventListener('click', function(e) {\n e.stopPropagation();\n toggleHint(hintContentFront);\n });\n \n hintBadgeBack.addEventListener('click', function(e) {\n e.stopPropagation();\n toggleHint(hintContentBack);\n });\n \n \/\/ Functions\n function getGlobalIndex(localIndex) {\n if (currentCategory === \"all\") {\n return localIndex;\n } else {\n return flashcards.findIndex(card => card === activeFlashcards[localIndex]);\n }\n }\n \n function toggleHint(hintElement) {\n if (hintElement.style.display === 'block') {\n hintElement.style.display = 'none';\n hintShown = false;\n } else {\n hintElement.style.display = 'block';\n if (!hintShown) {\n \/\/ Penalty for using hint\n score = Math.max(0, score - 2);\n updateScore();\n hintShown = true;\n }\n }\n }\n \n function flipCard() {\n flashcard.classList.toggle('flipped');\n \/\/ Hide hints when flipping\n hintContentFront.style.display = 'none';\n hintContentBack.style.display = 'none';\n }\n \n function nextCard() {\n if (flashcard.classList.contains('flipped')) {\n flashcard.classList.remove('flipped');\n \/\/ Small delay to ensure the flip animation completes before changing content\n setTimeout(() => {\n goToNextCard();\n }, 300);\n } else {\n goToNextCard();\n }\n }\n \n function goToNextCard() {\n currentCardIndex = (currentCardIndex + 1) % activeFlashcards.length;\n updateCard();\n updateProgress();\n hintShown = false;\n \n \/\/ Check if we've gone through all cards\n if (currentCardIndex === 0) {\n showResults();\n }\n }\n \n function updateCard() {\n const card = activeFlashcards[currentCardIndex];\n frontText.textContent = card.front;\n backText.textContent = card.back;\n exampleText.textContent = card.example;\n translationText.textContent = card.translation;\n hintContentFront.textContent = card.frontHint;\n hintContentBack.textContent = card.backHint;\n \n \/\/ Hide hints\n hintContentFront.style.display = 'none';\n hintContentBack.style.display = 'none';\n }\n \n function updateProgress() {\n const progress = ((currentCardIndex + 1) \/ activeFlashcards.length) * 100;\n progressBar.style.width = `${progress}%`;\n progressText.textContent = `Card ${currentCardIndex + 1} of ${activeFlashcards.length}`;\n }\n \n function updateMasteredCount() {\n const masteredCount = masteredCards.filter(Boolean).length;\n masteredText.textContent = `Mastered: ${masteredCount}\/${flashcards.length}`;\n }\n \n function updateScore() {\n scoreDisplay.textContent = `Score: ${score}`;\n }\n \n function showResults() {\n const masteredCount = masteredCards.filter(Boolean).length;\n resultsText.textContent = `You've mastered ${masteredCount} out of ${flashcards.length} cards.`;\n finalScoreText.textContent = `Final score: ${score} points`;\n resultsModal.classList.remove('hidden');\n }\n \n function restartGame() {\n currentCardIndex = 0;\n masteredCards = new Array(flashcards.length).fill(false);\n score = 0;\n updateCard();\n updateProgress();\n updateMasteredCount();\n updateScore();\n resultsModal.classList.add('hidden');\n }\n \n \/\/ Create dynamic Poutama pattern\n function createPoutamaPattern() {\n const poutamaElements = document.querySelectorAll('.poutama');\n \n poutamaElements.forEach(poutama => {\n \/\/ Clear existing steps\n poutama.innerHTML = '';\n \n \/\/ Create steps\n for (let i = 0; i < 5; i++) {\n const step = document.createElement('div');\n step.className = 'step';\n step.style.height = '20%';\n poutama.appendChild(step);\n }\n });\n }\n \n createPoutamaPattern();\n });\n <\/script>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'96b9152964727256',t:'MTc1NDU5MzkxNi4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script><\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Te Reo M\u0101ori Flashcards Te Reo M\u0101ori Whakaako Intermediate to Advanced Vocabulary All Categories (25 cards)Cultural Concepts (5 cards)Nature & […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","pagelayer_contact_templates":[],"_pagelayer_content":"","_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_kadence_starter_templates_imported_post":false,"footnotes":"","_wpscppro_dont_share_socialmedia":false,"_wpscppro_custom_social_share_image":0,"_facebook_share_type":"","_twitter_share_type":"","_linkedin_share_type":"","_pinterest_share_type":"","_linkedin_share_type_page":"","_instagram_share_type":"","_medium_share_type":"","_threads_share_type":"","_google_business_share_type":"","_selected_social_profile":[],"_wpsp_enable_custom_social_template":false,"_wpsp_social_scheduling":{"enabled":false,"datetime":null,"platforms":[],"status":"template_only","dateOption":"today","timeOption":"now","customDays":"","customHours":"","customDate":"","customTime":"","schedulingType":"absolute"},"_wpsp_active_default_template":true},"categories":[1],"tags":[],"class_list":["post-56","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Taonga Admin","author_link":"https:\/\/taonga.nxfanz.com\/?author=1"},"uagb_comment_info":0,"uagb_excerpt":"Te Reo M\u0101ori Flashcards Te Reo M\u0101ori Whakaako Intermediate to Advanced Vocabulary All Categories (25 cards)Cultural Concepts (5 cards)Nature & […]","_links":{"self":[{"href":"https:\/\/taonga.nxfanz.com\/index.php?rest_route=\/wp\/v2\/posts\/56","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/taonga.nxfanz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/taonga.nxfanz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/taonga.nxfanz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/taonga.nxfanz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=56"}],"version-history":[{"count":1,"href":"https:\/\/taonga.nxfanz.com\/index.php?rest_route=\/wp\/v2\/posts\/56\/revisions"}],"predecessor-version":[{"id":57,"href":"https:\/\/taonga.nxfanz.com\/index.php?rest_route=\/wp\/v2\/posts\/56\/revisions\/57"}],"wp:attachment":[{"href":"https:\/\/taonga.nxfanz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=56"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/taonga.nxfanz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=56"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/taonga.nxfanz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=56"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}