<!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Kuis Al-Matsurat</title> <link href="https://fonts.googleapis.com/css2?family=Amiri:wght@400;700&family=Quicksand:wght@400;600;700&display=swap" rel="stylesheet"> <style> * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; } body { font-family: 'Quicksand', sans-serif; background: #F0FFF4; margin: 0; padding: 0; color: #22543D; height: 100vh; overflow: hidden; } .screen { position: absolute; inset: 0; width: 100%; height: 100%; display: none; flex-direction: column; align-items: center; padding: 20px; overflow-y: auto; } .screen.active { display: flex; } #screen-input { justify-content: center; background: linear-gradient(180deg, #C6F6D5 0%, #F0FFF4 100%); } .logo-area { font-size: 80px; margin-bottom: 10px; animation: float 3s ease-in-out infinite; } @keyframes float { 0%, 100% {transform: translateY(0px);} 50% {transform: translateY(-15px);} } .input-card { background: white; border: 2px solid #C6F6D5; padding: 30px; border-radius: 25px; width: 90%; max-width: 400px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); text-align: center; } .form-input { width: 100%; padding: 12px; border: 2px solid #C6F6D5; border-radius: 10px; font-size: 14px; margin-bottom: 15px; outline: none; } .btn-main { background: linear-gradient(to bottom, #48BB78, #38A169); color: white; border: none; padding: 15px; width: 100%; border-radius: 50px; font-weight: bold; cursor: pointer; box-shadow: 0 5px 0 #2F855A; font-size: 16px; margin-top: 10px; display: block; } .btn-main:active { transform: translateY(3px); box-shadow: 0 2px 0 #2F855A; } .top-bar { background: white; padding: 15px; border-radius: 20px; box-shadow: 0 4px 15px rgba(34, 84, 61, 0.1); margin-bottom: 20px; width: 100%; max-width: 500px; display: flex; justify-content: space-between; align-items: center; border: 1px solid #C6F6D5; } .progress-container { width: 100%; max-width: 500px; background: #E6FFFA; height: 10px; border-radius: 5px; margin-bottom: 15px; overflow: hidden; border: 1px solid #C6F6D5; } .progress-fill { height: 100%; background: #48BB78; width: 0%; transition: 0.3s; } .target-box { background: #fff; border: 3px solid #48BB78; border-radius: 25px; padding: 20px; margin-bottom: 20px; width: 100%; max-width: 500px; box-shadow: 0 8px 0 #2F855A; text-align: center; } .target-char { font-family: 'Amiri', serif; font-size: 28px; font-weight: bold; line-height: 1.8; direction: rtl; margin: 15px 0; } .options-container { display: flex; flex-direction: column; gap: 12px; width: 100%; max-width: 500px; margin-bottom: 30px; } .option-btn { background: white; border: 2px solid #C6F6D5; border-radius: 15px; padding: 15px; font-family: 'Amiri', serif; font-size: 20px; color: #276749; direction: rtl; cursor: pointer; box-shadow: 0 4px 0 #9AE6B4; text-align: center; transition: 0.1s; line-height: 1.6; } /* SETTING POPUP MODAL */ .modal-overlay { position: fixed; inset: 0; background: rgba(34, 84, 61, 0.95); z-index: 9999; display: none; justify-content: center; align-items: center; padding: 15px; } .modal-content { background: white; padding: 20px; border-radius: 20px; width: 100%; max-width: 450px; text-align: center; border: 4px solid #F6E05E; max-height: 85vh; display: flex; flex-direction: column; } .modal-scroll-area { overflow-y: auto; padding-right: 5px; margin-bottom: 15px; } #modal-arabic { font-family: 'Amiri', serif; font-size: 20px; direction: rtl; line-height: 2; margin-bottom: 15px; color: #22543D; } #modal-arti { font-size: 13px; color: #555; border-top: 1px dashed #ccc; padding-top: 15px; font-style: italic; line-height: 1.5; } .btn-close-frame { position: absolute; top: 15px; right: 15px; width: 35px; height: 35px; background: rgba(0,0,0,0.2); border-radius: 50%; color: white; border: none; cursor: pointer; z-index: 100; font-weight: bold; } #toast { position: fixed; top: 20%; left: 50%; transform: translate(-50%, -50%) scale(0); background: rgba(0,0,0,0.85); color: #F6E05E; padding: 20px; border-radius: 20px; z-index: 10000; transition: 0.3s; text-align: center; pointer-events: none; } #toast.show { transform: translate(-50%, -50%) scale(1); } </style> </head> <body> <button class="btn-close-frame" onclick="window.parent.document.getElementById('geo-tool-frame').remove()">✕</button> <div id="toast">🌟 <b>SHAHIH!</b><br><small style="color:white">Jawaban Benar</small></div> <div id="screen-input" class="screen active"> <div class="logo-area">📿</div> <div class="input-card"> <h2>Kuis Al-Matsurat</h2> <p style="color:#38A169; font-size:12px; margin-bottom:20px;">IAGEOUPN X IAGI Digiform X HsnRos</p> <input type="text" id="in-nama" class="form-input" placeholder="Nama Lengkap"> <input type="text" id="in-target" class="form-input" placeholder="Target Rutinitas (Misal: Pagi & Petang)"> <button class="btn-main" onclick="window.unlockAudio()" id="btn-audio" style="background:#ECC94B; color:#744210; box-shadow: 0 5px 0 #975A16;">🔊 AKTIFKAN SUARA</button> <button class="btn-main" onclick="window.startApp()" style="margin-top:15px">â–¶ï¸ MULAI DZIKIR</button> </div> </div> <div id="screen-main" class="screen"> <div class="top-bar"> <div>Soal <span id="q-number">1</span>/<span id="q-total">20</span></div> <div style="background:#ECC94B; padding:2px 10px; border-radius:10px; font-weight:bold">Poin: <span id="score-val">0</span></div> </div> <div class="progress-container"><div id="progress-bar" class="progress-fill"></div></div> <div class="target-box"> <div id="surah-info" style="font-size:12px; color:#38A169; font-weight:bold; text-transform:uppercase;">JUDUL DZIKIR</div> <div id="target-text" class="target-char">...</div> <button class="btn-main" style="width:auto; padding:8px 20px; font-size:12px; margin:0 auto;" onclick="window.showFull(false)">📖 Baca Lengkap</button> </div> <div id="options-box" class="options-container"></div> </div> <div id="screen-poster" class="screen"> <h2>Alhamdulillah! 🎉</h2> <canvas id="poster-canvas" style="width:100%; max-width:400px; border-radius:15px; border:4px solid white; box-shadow:0 10px 30px rgba(0,0,0,0.1);"></canvas> <button class="btn-main" style="width:100%; max-width:400px; margin-top:20px;" onclick="window.downloadPoster()">â¬‡ï¸ DOWNLOAD SERTIFIKAT</button> <button class="btn-main" style="width:100%; max-width:400px; background:#444;" onclick="location.reload()">ULANGI</button> <div style="margin-top:20px; font-size:10px; font-weight:bold;">IAGEOUPN X IAGI Digiform X HsnRos</div> </div> <div id="modal-full" class="modal-overlay" onclick="window.closeModal()"> <div class="modal-content" onclick="event.stopPropagation()"> <h3 style="color:#2F855A; margin-top:0;">Bacaan Lengkap</h3> <div class="modal-scroll-area"> <div id="modal-arabic">...</div> <div id="modal-arti">...</div> </div> <button class="btn-main" style="margin-top:auto;" onclick="window.closeModal()">TUTUP & LANJUT</button> </div> </div> <script> // DATABASE AL-MATSURAT LENGKAP (20 SOAL URUT) var matsuratDB = [ { n: "Al-Fatihah", q: "ٱلْØÙŽÙ…ْد٠لÙلَّه٠رَبّ٠ٱلْعَٰلَمÙينَ", a: "ٱلرَّØÙ’مَٰن٠ٱلرَّØÙيمÙ", full: "Ø¨ÙØ³Ù’م٠ٱللَّه٠ٱلرَّØÙ’مَٰن٠ٱلرَّØÙيمÙ. ٱلْØÙŽÙ…ْد٠لÙلَّه٠رَبّ٠ٱلْعَٰلَمÙينَ. ٱلرَّØÙ’مَٰن٠ٱلرَّØÙيمÙ. مَٰلÙك٠يَوْم٠ٱلدّÙينÙ. Ø¥Ùيَّاكَ Ù†ÙŽØ¹Ù’Ø¨ÙØ¯Ù ÙˆÙŽØ¥Ùيَّاكَ نَسْتَعÙينÙ. ٱهْدÙنَا Ù±Ù„ØµÙ‘ÙØ±ÙŽÙ°Ø·ÙŽ Ù±Ù„Ù’Ù…ÙØ³Ù’تَقÙيمَ. ØµÙØ±ÙŽÙ°Ø·ÙŽ Ù±Ù„Ù‘ÙŽØ°Ùينَ أَنْعَمْتَ عَلَيْهÙمْ غَيْر٠ٱلْمَغْضÙوب٠عَلَيْهÙمْ وَلَا ٱلضَّآلّÙينَ", t: "Dengan menyebut nama Allah Yang Maha Pemurah lagi Maha Penyayang. Segala puji bagi Allah, Tuhan semesta alam..." }, { n: "Al-Baqarah 1-5", q: "ذَٰلÙÙƒÙŽ Ù±Ù„Ù’ÙƒÙØªÙŽÙ°Ø¨Ù لَا رَيْبَ Û› ÙÙيه٠ۛ", a: "Ù‡ÙØ¯Ù‹Ù‰ لّÙÙ„Ù’Ù…ÙØªÙ‘ÙŽÙ‚Ùينَ", full: "الٓمٓ. ذَٰلÙÙƒÙŽ Ù±Ù„Ù’ÙƒÙØªÙŽÙ°Ø¨Ù لَا رَيْبَ Û› ÙÙيه٠ۛ Ù‡ÙØ¯Ù‹Ù‰ لّÙÙ„Ù’Ù…ÙØªÙ‘ÙŽÙ‚Ùينَ. ٱلَّذÙينَ ÙŠÙØ¤Ù’Ù…ÙÙ†Ùونَ بÙٱلْغَيْب٠وَيÙÙ‚ÙيمÙونَ ٱلصَّلَوٰةَ ÙˆÙŽÙ…Ùمَّا رَزَقْنَٰهÙمْ ÙŠÙÙ†ÙÙÙ‚Ùونَ. وَٱلَّذÙينَ ÙŠÙØ¤Ù’Ù…ÙÙ†Ùونَ بÙمَآ Ø£ÙنزÙÙ„ÙŽ Ø¥Ùلَيْكَ وَمَآ Ø£ÙنزÙÙ„ÙŽ Ù…ÙÙ† قَبْلÙÙƒÙŽ وَبÙÙ±Ù„Ù’Ø¡ÙŽØ§Ø®ÙØ±ÙŽØ©Ù Ù‡Ùمْ ÙŠÙوقÙÙ†Ùونَ. Ø£Ùو۟لَٰٓئÙÙƒÙŽ عَلَىٰ Ù‡ÙØ¯Ù‹Ù‰ مّÙÙ† رَّبّÙÙ‡Ùمْ Û– ÙˆÙŽØ£Ùو۟لَٰٓئÙÙƒÙŽ Ù‡Ùم٠ٱلْمÙÙÙ’Ù„ÙØÙونَ", t: "Alif laam miim. Kitab (Al Quran) ini tidak ada keraguan padanya; petunjuk bagi mereka yang bertakwa..." }, { n: "Ayat Kursi", q: "ٱللَّه٠لَآ Ø¥Ùلَٰهَ Ø¥Ùلَّا Ù‡ÙÙˆÙŽ", a: "ٱلْØÙŽÙ‰Ù‘٠ٱلْقَيّÙومÙ", full: "ٱللَّه٠لَآ Ø¥Ùلَٰهَ Ø¥Ùلَّا Ù‡ÙÙˆÙŽ ٱلْØÙŽÙ‰Ù‘٠ٱلْقَيّÙوم٠ۚ لَا ØªÙŽØ£Ù’Ø®ÙØ°ÙÙ‡ÙÛ¥ سÙنَةٌ وَلَا نَوْمٌ Ûš لَّهÙÛ¥ مَا ÙÙÙ‰ ٱلسَّمَٰوَٰت٠وَمَا ÙÙÙ‰ ٱلْأَرْض٠ۗ Ù…ÙŽÙ† ذَا ٱلَّذÙÙ‰ يَشْÙَع٠عÙندَهÙÛ¥Ù“ Ø¥Ùلَّا Ø¨ÙØ¥ÙذْنÙÙ‡ÙÛ¦ Ûš يَعْلَم٠مَا بَيْنَ أَيْدÙيهÙمْ وَمَا خَلْÙÙŽÙ‡Ùمْ Û– وَلَا ÙŠÙØÙيطÙونَ Ø¨ÙØ´ÙŽÙ‰Ù’ء٠مّÙنْ عÙلْمÙÙ‡ÙÛ¦Ù“ Ø¥Ùلَّا بÙمَا شَآءَ Ûš ÙˆÙŽØ³ÙØ¹ÙŽ ÙƒÙØ±Ù’سÙيّÙه٠ٱلسَّمَٰوَٰت٠وَٱلْأَرْضَ Û– وَلَا ÙŠÙŽÙ€Ù”ÙودÙÙ‡ÙÛ¥ ØÙÙْظÙÙ‡Ùمَا Ûš ÙˆÙŽÙ‡ÙÙˆÙŽ ٱلْعَلÙىّ٠ٱلْعَظÙيمÙ", t: "Allah, tidak ada Tuhan (yang berhak disembah) melainkan Dia Yang Hidup kekal lagi terus menerus mengurus (makhluk-Nya)..." }, { n: "Al-Baqarah 256", q: "لَآ Ø¥Ùكْرَاهَ ÙÙÙ‰ ٱلدّÙين٠ۖ", a: "قَد تَّبَيَّنَ Ù±Ù„Ø±Ù‘ÙØ´Ù’د٠مÙÙ†ÙŽ ٱلْغَىّÙ", full: "لَآ Ø¥Ùكْرَاهَ ÙÙÙ‰ ٱلدّÙين٠ۖ قَد تَّبَيَّنَ Ù±Ù„Ø±Ù‘ÙØ´Ù’د٠مÙÙ†ÙŽ ٱلْغَىّ٠ۚ ÙÙŽÙ…ÙŽÙ† يَكْÙÙØ±Ù’ بÙٱلطَّٰغÙÙˆØªÙ ÙˆÙŽÙŠÙØ¤Ù’Ù…ÙÙ†Û¢ بÙٱللَّه٠Ùَقَد٠ٱسْتَمْسَكَ بÙÙ±Ù„Ù’Ø¹ÙØ±Ù’ÙˆÙŽØ©Ù Ù±Ù„Ù’ÙˆÙØ«Ù’قَىٰ لَا ٱنÙÙØµÙŽØ§Ù…ÙŽ لَهَا Û— وَٱللَّه٠سَمÙيعٌ عَلÙيمٌ", t: "Tidak ada paksaan untuk (memasuki) agama (Islam); sesungguhnya telah jelas jalan yang benar daripada jalan yang sesat..." }, { n: "Al-Baqarah Akhir", q: "ءَامَنَ ٱلرَّسÙول٠بÙمَآ Ø£ÙنزÙÙ„ÙŽ Ø¥Ùلَيْه٠مÙÙ† رَّبّÙÙ‡ÙÛ¦", a: "ÙˆÙŽÙ±Ù„Ù’Ù…ÙØ¤Ù’Ù…ÙÙ†Ùونَ", full: "ءَامَنَ ٱلرَّسÙول٠بÙمَآ Ø£ÙنزÙÙ„ÙŽ Ø¥Ùلَيْه٠مÙÙ† رَّبّÙÙ‡ÙÛ¦ ÙˆÙŽÙ±Ù„Ù’Ù…ÙØ¤Ù’Ù…ÙÙ†Ùونَ Ûš ÙƒÙلٌّ ءَامَنَ بÙٱللَّه٠وَمَلَٰٓئÙكَتÙÙ‡ÙÛ¦ ÙˆÙŽÙƒÙØªÙبÙÙ‡ÙÛ¦ ÙˆÙŽØ±ÙØ³ÙÙ„ÙÙ‡ÙÛ¦ لَا Ù†ÙÙَرّÙق٠بَيْنَ Ø£ÙŽØÙŽØ¯Ù مّÙÙ† Ø±Ù‘ÙØ³ÙÙ„ÙÙ‡ÙÛ¦ Ûš وَقَالÙوا۟ Ø³ÙŽÙ…ÙØ¹Ù’نَا وَأَطَعْنَا Û– غÙÙْرَانَكَ رَبَّنَا ÙˆÙŽØ¥Ùلَيْكَ ٱلْمَصÙيرÙ", t: "Rasul telah beriman kepada Al Quran yang diturunkan kepadanya dari Tuhannya, demikian pula orang-orang yang beriman..." }, { n: "Al-Ikhlas", q: "Ù‚Ùلْ Ù‡ÙÙˆÙŽ ٱللَّه٠أَØÙŽØ¯ÙŒ", a: "ٱللَّه٠ٱلصَّمَدÙ", full: "Ù‚Ùلْ Ù‡ÙÙˆÙŽ ٱللَّه٠أَØÙŽØ¯ÙŒ. ٱللَّه٠ٱلصَّمَدÙ. لَمْ ÙŠÙŽÙ„ÙØ¯Ù’ وَلَمْ ÙŠÙولَدْ. وَلَمْ ÙŠÙŽÙƒÙÙ† لَّهÙÛ¥ ÙƒÙÙÙوًا Ø£ÙŽØÙŽØ¯ÙŒÛ¢", t: "Katakanlah: Dialah Allah, Yang Maha Esa. Allah adalah Tuhan yang bergantung kepada-Nya segala sesuatu..." }, { n: "Al-Falaq", q: "Ù‚Ùلْ أَعÙÙˆØ°Ù Ø¨ÙØ±ÙŽØ¨Ù‘٠ٱلْÙÙŽÙ„ÙŽÙ‚Ù", a: "Ù…ÙÙ† شَرّ٠مَا خَلَقَ", full: "Ù‚Ùلْ أَعÙÙˆØ°Ù Ø¨ÙØ±ÙŽØ¨Ù‘٠ٱلْÙÙŽÙ„ÙŽÙ‚Ù. Ù…ÙÙ† شَرّ٠مَا خَلَقَ. ÙˆÙŽÙ…ÙÙ† شَرّ٠غَاسÙÙ‚Ù Ø¥ÙØ°ÙŽØ§ وَقَبَ. ÙˆÙŽÙ…ÙÙ† شَرّ٠النَّÙَّاثَات٠ÙÙÙŠ الْعÙقَدÙ. ÙˆÙŽÙ…ÙÙ† شَرّ٠ØÙŽØ§Ø³ÙØ¯Ù Ø¥ÙØ°ÙŽØ§ ØÙŽØ³ÙŽØ¯ÙŽ", t: "Katakanlah: Aku berlindung kepada Tuhan Yang Menguasai subuh, dari kejahatan makhluk-Nya..." }, { n: "An-Nas", q: "Ù‚Ùلْ أَعÙÙˆØ°Ù Ø¨ÙØ±ÙŽØ¨Ù‘٠ٱلنَّاسÙ", a: "Ù…ÙŽÙ„Ùك٠ٱلنَّاسÙ", full: "Ù‚Ùلْ أَعÙÙˆØ°Ù Ø¨ÙØ±ÙŽØ¨Ù‘٠ٱلنَّاسÙ. Ù…ÙŽÙ„Ùك٠ٱلنَّاسÙ. Ø¥Ùلَٰه٠ٱلنَّاسÙ. Ù…ÙÙ† شَرّ٠ٱلْوَسْوَاس٠ٱلْخَنَّاسÙ. ٱلَّذÙÙ‰ ÙŠÙÙˆÙŽØ³Ù’ÙˆÙØ³Ù ÙÙÙ‰ ØµÙØ¯Ùور٠ٱلنَّاسÙ. Ù…ÙÙ†ÙŽ ٱلْجÙنَّة٠وَٱلنَّاسÙ", t: "Katakanlah: Aku berlindung kepada Tuhannya manusia. Raja manusia. Sembahan manusia..." }, { n: "Doa Pagi/Petang", q: "أَصْبَØÙ’نَا وَأَصْبَØÙŽ Ø§Ù„Ù’Ù…Ùلْك٠لÙلَّهÙ", a: "وَالْØÙŽÙ…ْد٠لÙلَّه٠لَا شَرÙيكَ Ù„ÙŽÙ‡Ù", full: "أَصْبَØÙ’نَا وَأَصْبَØÙŽ Ø§Ù„Ù’Ù…Ùلْك٠لÙÙ„ÙŽÙ‘Ù‡ÙØŒ وَالْØÙŽÙ…ْد٠لÙÙ„ÙŽÙ‘Ù‡ÙØŒ لَا شَرÙيكَ Ù„ÙŽÙ‡ÙØŒ لَا Ø¥ÙÙ„ÙŽÙ‡ÙŽ Ø¥Ùلَّا Ù‡ÙÙˆÙŽ ÙˆÙŽØ¥Ùلَيْه٠النÙّشÙورÙ", t: "Kami telah memasuki waktu pagi dan kerajaan hanya milik Allah, segala puji bagi Allah..." }, { n: "Fitrah Islam", q: "أَصْبَØÙ’نَا عَلَى ÙÙØ·Ù’Ø±ÙŽØ©Ù Ø§Ù„Ù’Ø¥ÙØ³Ù’لَامÙ", a: "وَعَلَى ÙƒÙŽÙ„ÙÙ…ÙŽØ©Ù Ø§Ù„Ù’Ø¥ÙØ®Ù’لَاصÙ", full: "أَصْبَØÙ’نَا عَلَى ÙÙØ·Ù’Ø±ÙŽØ©Ù Ø§Ù„Ù’Ø¥ÙØ³Ù’Ù„ÙŽØ§Ù…ÙØŒ وَعَلَى ÙƒÙŽÙ„ÙÙ…ÙŽØ©Ù Ø§Ù„Ù’Ø¥ÙØ®Ù’Ù„ÙŽØ§ØµÙØŒ وَعَلَى دÙين٠نَبÙÙŠÙّنَا Ù…ÙØÙŽÙ…ÙŽÙ‘Ø¯Ù ØµÙŽÙ„ÙŽÙ‘Ù‰ الله٠عَلَيْه٠وَسَلَّمَ، وَعَلَى Ù…Ùلَّة٠أَبÙينَا Ø¥ÙØ¨Ù’رَاهÙيمَ ØÙŽÙ†ÙÙŠÙًا Ù…ÙØ³Ù’Ù„Ùمًا وَمَا كَانَ Ù…ÙÙ†ÙŽ Ø§Ù„Ù’Ù…ÙØ´Ù’رÙÙƒÙينَ", t: "Kami berada di atas fitrah Islam, kalimat ikhlas, agama Nabi kita Muhammad..." }, { n: "Doa Syukur", q: "اللَّهÙÙ…ÙŽÙ‘ Ø¥ÙÙ†Ùّي أَصْبَØÙ’ت٠مÙنْكَ ÙÙÙŠ Ù†ÙØ¹Ù’Ù…ÙŽØ©Ù", a: "وَعَاÙÙÙŠÙŽØ©Ù ÙˆÙŽØ³ÙØªÙ’رÙ", full: "اللَّهÙÙ…ÙŽÙ‘ Ø¥ÙÙ†Ùّي أَصْبَØÙ’ت٠مÙنْكَ ÙÙÙŠ Ù†ÙØ¹Ù’مَة٠وَعَاÙÙÙŠÙŽØ©Ù ÙˆÙŽØ³ÙØªÙ’Ø±ÙØŒ ÙَأَتÙÙ…ÙŽÙ‘ عَلَيَّ Ù†ÙØ¹Ù’مَتَكَ وَعَاÙÙيَتَكَ ÙˆÙŽØ³ÙØªÙ’رَكَ ÙÙÙŠ الدÙّنْيَا ÙˆÙŽØ§Ù„Ù’Ø¢Ø®ÙØ±ÙŽØ©Ù", t: "Ya Allah, sesungguhnya aku di pagi ini dalam kenikmatan, kesehatan, dan penjagaan-Mu..." }, { n: "Doa Persaksian", q: "اللَّهÙÙ…ÙŽÙ‘ مَا أَصْبَØÙŽ Ø¨ÙÙŠ Ù…Ùنْ Ù†ÙØ¹Ù’Ù…ÙŽØ©Ù", a: "أَوْ Ø¨ÙØ£ÙŽØÙŽØ¯Ù Ù…Ùنْ خَلْقÙÙƒÙŽ", full: "اللَّهÙÙ…ÙŽÙ‘ مَا أَصْبَØÙŽ Ø¨ÙÙŠ Ù…Ùنْ Ù†ÙØ¹Ù’مَة٠أَوْ Ø¨ÙØ£ÙŽØÙŽØ¯Ù Ù…Ùنْ خَلْقÙÙƒÙŽ ÙÙŽÙ…Ùنْكَ ÙˆÙŽØÙ’دَكَ لَا شَرÙيكَ Ù„ÙŽÙƒÙŽØŒ ÙÙŽÙ„ÙŽÙƒÙŽ الْØÙŽÙ…ْد٠وَلَكَ الشÙّكْرÙ", t: "Ya Allah, nikmat apa pun yang ada padaku di waktu pagi atau yang ada pada setiap makhluk-Mu, adalah dari-Mu semata..." }, { n: "Pujian Bagi Allah", q: "يَا رَبÙÙ‘ Ù„ÙŽÙƒÙŽ الْØÙŽÙ…ْدÙ", a: "كَمَا يَنْبَغÙÙŠ Ù„ÙØ¬ÙŽÙ„َال٠وَجْهÙÙƒÙŽ", full: "يَا رَبÙÙ‘ Ù„ÙŽÙƒÙŽ الْØÙŽÙ…ْد٠كَمَا يَنْبَغÙÙŠ Ù„ÙØ¬ÙŽÙ„َال٠وَجْهÙÙƒÙŽ ÙˆÙŽÙ„ÙØ¹ÙŽØ¸Ùيم٠سÙلْطَانÙÙƒÙŽ", t: "Ya Tuhanku, bagi-Mu segala puji sebagaimana selayaknya bagi keagungan wajah-Mu dan kebesaran kekuasaan-Mu." }, { n: "Ridho Billah", q: "رَضÙÙŠØªÙ Ø¨ÙØ§Ù„لَّه٠رَبًّا", a: "ÙˆÙŽØ¨ÙØ§Ù„Ù’Ø¥ÙØ³Ù’لَام٠دÙينًا", full: "رَضÙÙŠØªÙ Ø¨ÙØ§Ù„لَّه٠رَبًّا، ÙˆÙŽØ¨ÙØ§Ù„Ù’Ø¥ÙØ³Ù’لَام٠دÙينًا، وَبÙÙ…ÙØÙŽÙ…ÙŽÙ‘Ø¯Ù ØµÙŽÙ„ÙŽÙ‘Ù‰ الله٠عَلَيْه٠وَسَلَّمَ نَبÙيًّا وَرَسÙولًا", t: "Aku rela Allah sebagai Tuhan, Islam sebagai agama, dan Muhammad saw sebagai Nabi dan Rasul." }, { n: "Tasbih Malaikat", q: "Ø³ÙØ¨Ù’ØÙŽØ§Ù†ÙŽ Ø§Ù„Ù„ÙŽÙ‘Ù‡Ù ÙˆÙŽØ¨ÙØÙŽÙ…Ù’Ø¯ÙÙ‡Ù", a: "عَدَدَ خَلْقÙÙ‡Ù ÙˆÙŽØ±ÙØ¶ÙŽØ§ Ù†ÙŽÙْسÙÙ‡Ù", full: "Ø³ÙØ¨Ù’ØÙŽØ§Ù†ÙŽ Ø§Ù„Ù„ÙŽÙ‘Ù‡Ù ÙˆÙŽØ¨ÙØÙŽÙ…Ù’Ø¯Ùه٠عَدَدَ خَلْقÙÙ‡ÙØŒ ÙˆÙŽØ±ÙØ¶ÙŽØ§ Ù†ÙŽÙْسÙÙ‡ÙØŒ وَزÙنَةَ عَرْشÙÙ‡ÙØŒ ÙˆÙŽÙ…ÙØ¯ÙŽØ§Ø¯ÙŽ ÙƒÙŽÙ„ÙمَاتÙÙ‡Ù", t: "Maha Suci Allah dan segala puji bagi-Nya, sebanyak bilangan makhluk-Nya, sejauh kerelaan diri-Nya, seberat timbangan 'Arsy-Nya..." }, { n: "Asma Allah", q: "Ø¨ÙØ³Ù’م٠اللَّه٠الَّذÙÙŠ لَا ÙŠÙŽØ¶ÙØ±ÙÙ‘", a: "مَعَ اسْمÙه٠شَيْءٌ ÙÙÙŠ الْأَرْضÙ", full: "Ø¨ÙØ³Ù’م٠اللَّه٠الَّذÙÙŠ لَا ÙŠÙŽØ¶ÙØ±ÙÙ‘ مَعَ اسْمÙه٠شَيْءٌ ÙÙÙŠ الْأَرْض٠وَلَا ÙÙÙŠ السَّمَاء٠وَهÙÙˆÙŽ السَّمÙيع٠الْعَلÙيمÙ", t: "Dengan nama Allah yang tidak ada sesuatu pun di bumi dan di langit yang bisa memudharatkan dengan nama-Nya..." }, { n: "Tolak Syirik", q: "اللَّهÙÙ…ÙŽÙ‘ Ø¥Ùنَّا نَعÙوذ٠بÙÙƒÙŽ", a: "Ù…Ùنْ أَنْ Ù†ÙØ´Ù’رÙÙƒÙŽ بÙÙƒÙŽ شَيْئًا", full: "اللَّهÙÙ…ÙŽÙ‘ Ø¥Ùنَّا نَعÙوذ٠بÙÙƒÙŽ Ù…Ùنْ أَنْ Ù†ÙØ´Ù’رÙÙƒÙŽ بÙÙƒÙŽ شَيْئًا نَعْلَمÙÙ‡ÙØŒ وَنَسْتَغْÙÙØ±ÙÙƒÙŽ Ù„Ùمَا لَا نَعْلَمÙÙ‡Ù", t: "Ya Allah, kami berlindung kepada-Mu dari menyekutukan-Mu dengan sesuatu yang kami ketahui, dan kami memohon ampun..." }, { n: "Penghilang Duka", q: "اللَّهÙÙ…ÙŽÙ‘ Ø¥ÙÙ†Ùّي أَعÙوذ٠بÙÙƒÙŽ Ù…ÙÙ†ÙŽ الْهَمÙÙ‘", a: "وَالْØÙŽØ²ÙŽÙ†Ù وَالْعَجْز٠وَالْكَسَلÙ", full: "اللَّهÙÙ…ÙŽÙ‘ Ø¥ÙÙ†Ùّي أَعÙوذ٠بÙÙƒÙŽ Ù…ÙÙ†ÙŽ الْهَمÙÙ‘ وَالْØÙŽØ²ÙŽÙ†ÙØŒ وَأَعÙوذ٠بÙÙƒÙŽ Ù…ÙÙ†ÙŽ Ø§Ù„Ù’Ø¹ÙŽØ¬Ù’Ø²Ù ÙˆÙŽØ§Ù„Ù’ÙƒÙŽØ³ÙŽÙ„ÙØŒ وَأَعÙوذ٠بÙÙƒÙŽ Ù…ÙÙ†ÙŽ Ø§Ù„Ù’Ø¬ÙØ¨Ù’Ù†Ù ÙˆÙŽØ§Ù„Ù’Ø¨ÙØ®Ù’Ù„ÙØŒ وَأَعÙوذ٠بÙÙƒÙŽ Ù…Ùنْ غَلَبَة٠الدَّيْن٠وَقَهْر٠الرÙّجَالÙ", t: "Ya Allah, aku berlindung kepada-Mu dari rasa gelisah dan sedih, kelemahan dan kemalasan, sifat pengecut dan kikir..." }, { n: "Doa Afiyah", q: "اللَّهÙÙ…ÙŽÙ‘ عَاÙÙÙ†ÙÙŠ ÙÙÙŠ بَدَنÙÙŠ", a: "اللَّهÙÙ…ÙŽÙ‘ عَاÙÙÙ†ÙÙŠ ÙÙÙŠ سَمْعÙÙŠ", full: "اللَّهÙÙ…ÙŽÙ‘ عَاÙÙÙ†ÙÙŠ ÙÙÙŠ بَدَنÙÙŠØŒ اللَّهÙÙ…ÙŽÙ‘ عَاÙÙÙ†ÙÙŠ ÙÙÙŠ سَمْعÙÙŠØŒ اللَّهÙÙ…ÙŽÙ‘ عَاÙÙÙ†ÙÙŠ ÙÙÙŠ بَصَرÙÙŠØŒ لَا Ø¥ÙÙ„ÙŽÙ‡ÙŽ Ø¥Ùلَّا أَنْتَ", t: "Ya Allah, sehatkanlah badanku. Ya Allah, sehatkanlah pendengaranku. Ya Allah, sehatkanlah penglihatanku..." }, { n: "Sayyidul Istighfar", q: "اللَّهÙÙ…ÙŽÙ‘ أَنْتَ رَبÙّي لَا Ø¥ÙÙ„ÙŽÙ‡ÙŽ Ø¥Ùلَّا أَنْتَ", a: "خَلَقْتَنÙÙŠ وَأَنَا عَبْدÙÙƒÙŽ", full: "اللَّهÙÙ…ÙŽÙ‘ أَنْتَ رَبÙّي لَا Ø¥ÙÙ„ÙŽÙ‡ÙŽ Ø¥Ùلَّا أَنْتَ، خَلَقْتَنÙÙŠ وَأَنَا عَبْدÙÙƒÙŽØŒ وَأَنَا عَلَى عَهْدÙÙƒÙŽ وَوَعْدÙÙƒÙŽ مَا Ø§Ø³Ù’ØªÙŽØ·ÙŽØ¹Ù’ØªÙØŒ أَعÙوذ٠بÙÙƒÙŽ Ù…Ùنْ شَرÙÙ‘ مَا ØµÙŽÙ†ÙŽØ¹Ù’ØªÙØŒ أَبÙوء٠لَكَ بÙÙ†ÙØ¹Ù’مَتÙÙƒÙŽ عَلَيَّ، وَأَبÙÙˆØ¡Ù Ø¨ÙØ°ÙŽÙ†Ù’بÙÙŠ ÙَاغْÙÙØ±Ù’ Ù„ÙÙŠ ÙÙŽØ¥Ùنَّه٠لَا يَغْÙÙØ±Ù الذÙّنÙوبَ Ø¥Ùلَّا أَنْتَ", t: "Ya Allah, Engkau adalah Tuhanku, tiada Tuhan selain Engkau. Engkau telah menciptakanku dan aku adalah hamba-Mu..." } ]; var score = 0, qIndex = 0, userData = {name:"", target:""}, isAuto = false; window.unlockAudio = function() { if(window.speechSynthesis) { var u = new SpeechSynthesisUtterance("Ø¨ÙØ³Ù’م٠الله"); u.lang = "ar-SA"; window.speechSynthesis.speak(u); } document.getElementById("btn-audio").style.display = "none"; }; window.startApp = function() { userData.name = document.getElementById("in-nama").value || "Hamba Allah"; userData.target = document.getElementById("in-target").value || "Istiqomah Dzikir"; document.getElementById("screen-input").classList.remove("active"); document.getElementById("screen-main").classList.add("active"); loadQuestion(); }; function loadQuestion() { if(qIndex >= matsuratDB.length) return endGame(); var item = matsuratDB[qIndex]; document.getElementById("q-number").innerText = qIndex + 1; document.getElementById("q-total").innerText = matsuratDB.length; document.getElementById("progress-bar").style.width = ((qIndex+1)/matsuratDB.length*100) + "%"; document.getElementById("surah-info").innerText = item.n; document.getElementById("target-text").innerText = item.q; var box = document.getElementById("options-box"); box.innerHTML = ""; var opts = [item]; while(opts.length < 3) { var r = matsuratDB[Math.floor(Math.random()*matsuratDB.length)]; if(opts.indexOf(r) === -1) opts.push(r); } opts.sort(function(){ return 0.5 - Math.random() }); opts.forEach(function(o) { var b = document.createElement("div"); b.className = "option-btn"; b.innerText = o.a; b.onclick = function(){ checkAnswer(o, b) }; box.appendChild(b); }); } function checkAnswer(o, el) { if(o.a === matsuratDB[qIndex].a) { el.style.background = "#C6F6D5"; el.style.borderColor = "#2F855A"; score += 10; document.getElementById("score-val").innerText = score; document.getElementById("toast").classList.add("show"); setTimeout(function(){ document.getElementById("toast").classList.remove("show"); window.showFull(true); }, 1000); } else { el.style.background = "#FED7D7"; el.style.borderColor = "#E53E3E"; score = Math.max(0, score-5); document.getElementById("score-val").innerText = score; } } window.showFull = function(auto) { isAuto = auto; var item = matsuratDB[qIndex]; document.getElementById("modal-arabic").innerText = item.full; document.getElementById("modal-arti").innerText = item.t; document.getElementById("modal-full").style.display = "flex"; }; window.closeModal = function() { document.getElementById("modal-full").style.display = "none"; if(isAuto) { qIndex++; loadQuestion(); } }; function endGame() { document.getElementById("screen-main").classList.remove("active"); document.getElementById("screen-poster").classList.add("active"); drawPoster(); } function drawPoster() { var c = document.getElementById("poster-canvas"); var ctx = c.getContext("2d"); c.width = 800; c.height = 1000; ctx.fillStyle = "#F0FFF4"; ctx.fillRect(0,0,800,1000); ctx.strokeStyle = "#48BB78"; ctx.lineWidth = 20; ctx.strokeRect(10,10,780,980); ctx.fillStyle = "#22543D"; ctx.font = "bold 45px Quicksand"; ctx.textAlign = "center"; ctx.fillText("PEJUANG DZIKIR", 400, 150); ctx.font = "bold 60px Quicksand"; ctx.fillStyle = "#2F855A"; ctx.fillText(userData.name, 400, 350); ctx.font = "30px Quicksand"; ctx.fillStyle = "#22543D"; ctx.fillText("Skor Kuis: " + score, 400, 500); ctx.font = "italic 25px Quicksand"; ctx.fillText("Target: " + userData.target, 400, 650); ctx.font = "bold 20px Arial"; ctx.fillStyle = "#718096"; ctx.fillText("IAGEOUPN X IAGI Digiform X HsnRos", 400, 930); } window.downloadPoster = function() { var link = document.createElement("a"); link.download = "Sertifikat_Matsurat.png"; link.href = document.getElementById("poster-canvas").toDataURL(); link.click(); }; </script> </body> </html>