{"id":7105,"date":"2022-08-03T15:59:28","date_gmt":"2022-08-03T15:59:28","guid":{"rendered":"https:\/\/themedemo.commercegurus.com\/shoptimizer-demodata\/?page_id=7105"},"modified":"2026-04-10T02:03:39","modified_gmt":"2026-04-10T02:03:39","slug":"accueil","status":"publish","type":"page","link":"https:\/\/www.quizzfoot.com\/","title":{"rendered":"Accueil"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7105\" class=\"elementor elementor-7105\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0b2ded1 e-flex e-con-boxed e-con e-parent\" data-id=\"0b2ded1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3c5f599 elementor-widget elementor-widget-html\" data-id=\"3c5f599\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"fr\" dir=\"ltr\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\r\n<meta name=\"theme-color\" content=\"#0a1628\">\r\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\r\n<title>FootballQuiz Pro<\/title>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Bebas+Neue&family=Outfit:wght@300;400;500;600;700;800;900&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n\/* ============================================================\r\n   CSS VARIABLES & RESET\r\n============================================================ *\/\r\n:root {\r\n  --bg-primary: #070e1a;\r\n  --bg-secondary: #0d1b2e;\r\n  --bg-card: #111d33;\r\n  --bg-card2: #162240;\r\n  --accent-green: #00e676;\r\n  --accent-gold: #ffd700;\r\n  --accent-red: #ff3d3d;\r\n  --accent-blue: #00b4ff;\r\n  --text-primary: #f0f4ff;\r\n  --text-secondary: #8899bb;\r\n  --text-muted: #4a5a7a;\r\n  --border: rgba(0,180,255,0.15);\r\n  --shadow: 0 8px 32px rgba(0,0,0,0.5);\r\n  --radius: 18px;\r\n  --radius-sm: 10px;\r\n  --font-display: 'Bebas Neue', cursive;\r\n  --font-body: 'Outfit', sans-serif;\r\n  --pitch-green: #1a472a;\r\n  --pitch-light: #1e5733;\r\n  --timer-color: var(--accent-blue);\r\n  --transition: 0.3s cubic-bezier(0.4,0,0.2,1);\r\n}\r\n\r\n[data-theme=\"light\"] {\r\n  --bg-primary: #e8f0fe;\r\n  --bg-secondary: #d0ddf7;\r\n  --bg-card: #ffffff;\r\n  --bg-card2: #f0f5ff;\r\n  --text-primary: #0a1628;\r\n  --text-secondary: #3a4a6a;\r\n  --text-muted: #7a8aaa;\r\n  --border: rgba(0,100,200,0.15);\r\n  --shadow: 0 8px 32px rgba(0,0,0,0.12);\r\n}\r\n\r\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\r\n\r\nhtml { font-size: 16px; scroll-behavior: smooth; }\r\n\r\nbody {\r\n  font-family: var(--font-body);\r\n  background: var(--bg-primary);\r\n  color: var(--text-primary);\r\n  min-height: 100vh;\r\n  overflow-x: hidden;\r\n  position: relative;\r\n  -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\n\/* ============================================================\r\n   BACKGROUND PITCH EFFECT\r\n============================================================ *\/\r\n.pitch-bg {\r\n  position: fixed; inset: 0; z-index: 0;\r\n  background:\r\n    repeating-linear-gradient(0deg,\r\n      transparent 0px, transparent 59px,\r\n      rgba(0,180,255,0.03) 60px),\r\n    repeating-linear-gradient(90deg,\r\n      transparent 0px, transparent 59px,\r\n      rgba(0,180,255,0.03) 60px),\r\n    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(0,40,80,0.8) 0%, transparent 70%),\r\n    linear-gradient(180deg, var(--bg-primary) 0%, #081220 100%);\r\n  pointer-events: none;\r\n}\r\n\r\n.pitch-bg::after {\r\n  content: '';\r\n  position: absolute; inset: 0;\r\n  background:\r\n    radial-gradient(circle 300px at 10% 80%, rgba(0,230,118,0.04) 0%, transparent 70%),\r\n    radial-gradient(circle 400px at 90% 20%, rgba(0,180,255,0.05) 0%, transparent 70%);\r\n  pointer-events: none;\r\n}\r\n\r\n\/* ============================================================\r\n   APP WRAPPER\r\n============================================================ *\/\r\n#app {\r\n  position: relative; z-index: 1;\r\n  max-width: 480px; margin: 0 auto;\r\n  min-height: 100vh;\r\n  display: flex; flex-direction: column;\r\n}\r\n\r\n\/* ============================================================\r\n   SCREENS\r\n============================================================ *\/\r\n.screen {\r\n  display: none; flex-direction: column;\r\n  min-height: 100vh; padding: 0;\r\n  animation: screenIn 0.4s ease forwards;\r\n}\r\n.screen.active { display: flex; }\r\n\r\n@keyframes screenIn {\r\n  from { opacity: 0; transform: translateY(20px); }\r\n  to { opacity: 1; transform: translateY(0); }\r\n}\r\n\r\n\/* ============================================================\r\n   HOME SCREEN\r\n============================================================ *\/\r\n#home-screen {\r\n  align-items: center;\r\n  justify-content: space-between;\r\n  padding: 0 20px 30px;\r\n  gap: 0;\r\n}\r\n\r\n.home-hero {\r\n  width: 100%;\r\n  text-align: center;\r\n  padding-top: 50px;\r\n  position: relative;\r\n}\r\n\r\n.home-hero::before {\r\n  content: '';\r\n  position: absolute;\r\n  top: -20px; left: 50%;\r\n  transform: translateX(-50%);\r\n  width: 200px; height: 200px;\r\n  background: radial-gradient(circle, rgba(0,180,255,0.12) 0%, transparent 70%);\r\n  pointer-events: none;\r\n}\r\n\r\n.ball-icon {\r\n  font-size: 64px;\r\n  display: block;\r\n  margin: 0 auto 10px;\r\n  animation: ballFloat 3s ease-in-out infinite;\r\n  filter: drop-shadow(0 0 20px rgba(0,180,255,0.4));\r\n}\r\n\r\n@keyframes ballFloat {\r\n  0%, 100% { transform: translateY(0) rotate(0deg); }\r\n  50% { transform: translateY(-12px) rotate(10deg); }\r\n}\r\n\r\n.game-title {\r\n  font-family: var(--font-display);\r\n  font-size: 54px;\r\n  letter-spacing: 4px;\r\n  line-height: 1;\r\n  background: linear-gradient(135deg, #00b4ff 0%, #00e676 50%, #ffd700 100%);\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n  filter: drop-shadow(0 0 30px rgba(0,180,255,0.3));\r\n  margin-bottom: 4px;\r\n}\r\n\r\n.game-subtitle {\r\n  font-size: 13px;\r\n  letter-spacing: 4px;\r\n  color: var(--text-secondary);\r\n  text-transform: uppercase;\r\n  margin-bottom: 20px;\r\n}\r\n\r\n.player-card {\r\n  background: var(--bg-card);\r\n  border: 1px solid var(--border);\r\n  border-radius: var(--radius);\r\n  padding: 14px 20px;\r\n  display: flex; align-items: center; gap: 14px;\r\n  margin: 0 0 20px;\r\n  box-shadow: var(--shadow);\r\n  width: 100%;\r\n}\r\n\r\n.player-avatar {\r\n  width: 48px; height: 48px;\r\n  border-radius: 50%;\r\n  background: linear-gradient(135deg, #00b4ff, #00e676);\r\n  display: flex; align-items: center; justify-content: center;\r\n  font-size: 22px;\r\n  flex-shrink: 0;\r\n  box-shadow: 0 0 15px rgba(0,180,255,0.3);\r\n}\r\n\r\n.player-info { flex: 1; min-width: 0; }\r\n.player-name { font-weight: 700; font-size: 15px; truncate: ellipsis; white-space: nowrap; overflow: hidden; }\r\n.player-level-badge {\r\n  display: inline-block;\r\n  font-size: 11px;\r\n  padding: 2px 10px;\r\n  border-radius: 20px;\r\n  background: linear-gradient(90deg, #00b4ff22, #00e67622);\r\n  border: 1px solid rgba(0,180,255,0.3);\r\n  color: var(--accent-blue);\r\n  margin-top: 3px;\r\n}\r\n\r\n.xp-row { display: flex; align-items: center; gap: 8px; margin-top: 6px; }\r\n.xp-bar-wrap { flex: 1; height: 5px; background: var(--bg-secondary); border-radius: 10px; overflow: hidden; }\r\n.xp-bar-fill { height: 100%; border-radius: 10px; background: linear-gradient(90deg, #00b4ff, #00e676); transition: width 0.6s ease; }\r\n.xp-text { font-size: 11px; color: var(--text-muted); white-space: nowrap; }\r\n\r\n.home-nav {\r\n  width: 100%;\r\n  display: flex; flex-direction: column; gap: 12px;\r\n}\r\n\r\n.home-stats-row {\r\n  display: grid; grid-template-columns: repeat(3, 1fr);\r\n  gap: 10px; margin-bottom: 4px;\r\n}\r\n\r\n.stat-box {\r\n  background: var(--bg-card);\r\n  border: 1px solid var(--border);\r\n  border-radius: var(--radius-sm);\r\n  padding: 12px 8px;\r\n  text-align: center;\r\n}\r\n.stat-num { font-family: var(--font-display); font-size: 26px; letter-spacing: 1px; color: var(--accent-gold); }\r\n.stat-lbl { font-size: 11px; color: var(--text-muted); margin-top: 2px; }\r\n\r\n\/* ============================================================\r\n   BUTTONS\r\n============================================================ *\/\r\n.btn {\r\n  display: flex; align-items: center; justify-content: center; gap: 8px;\r\n  border: none; cursor: pointer;\r\n  font-family: var(--font-body); font-weight: 700;\r\n  border-radius: 50px;\r\n  transition: var(--transition);\r\n  text-decoration: none;\r\n  position: relative;\r\n  overflow: hidden;\r\n  -webkit-user-select: none; user-select: none;\r\n}\r\n\r\n.btn::after {\r\n  content: '';\r\n  position: absolute; inset: 0;\r\n  background: white;\r\n  opacity: 0;\r\n  transition: opacity 0.2s;\r\n}\r\n.btn:active::after { opacity: 0.1; }\r\n\r\n.btn-primary {\r\n  background: linear-gradient(135deg, #00b4ff, #0068d6);\r\n  color: #fff;\r\n  padding: 16px 30px; font-size: 16px;\r\n  box-shadow: 0 4px 20px rgba(0,180,255,0.35);\r\n  width: 100%;\r\n}\r\n.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,180,255,0.5); }\r\n\r\n.btn-gold {\r\n  background: linear-gradient(135deg, #ffd700, #ff9900);\r\n  color: #000;\r\n  padding: 16px 30px; font-size: 16px;\r\n  box-shadow: 0 4px 20px rgba(255,215,0,0.35);\r\n  width: 100%;\r\n}\r\n.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(255,215,0,0.5); }\r\n\r\n.btn-outline {\r\n  background: transparent;\r\n  border: 1.5px solid var(--border);\r\n  color: var(--text-secondary);\r\n  padding: 13px 24px; font-size: 14px;\r\n  width: 100%;\r\n}\r\n.btn-outline:hover { border-color: var(--accent-blue); color: var(--accent-blue); }\r\n\r\n.btn-green {\r\n  background: linear-gradient(135deg, #00e676, #00b050);\r\n  color: #000;\r\n  padding: 16px 30px; font-size: 16px;\r\n  box-shadow: 0 4px 20px rgba(0,230,118,0.35);\r\n  width: 100%;\r\n}\r\n\r\n.btn-icon {\r\n  padding: 14px 20px; font-size: 15px;\r\n}\r\n\r\n.btn-sm { padding: 10px 20px; font-size: 13px; }\r\n\r\n.btn-row { display: flex; gap: 10px; width: 100%; }\r\n.btn-row .btn { flex: 1; }\r\n\r\n\/* ============================================================\r\n   TOP BAR\r\n============================================================ *\/\r\n.top-bar {\r\n  display: flex; align-items: center; justify-content: space-between;\r\n  padding: 16px 20px 10px;\r\n  position: sticky; top: 0; z-index: 100;\r\n  background: linear-gradient(180deg, var(--bg-primary) 70%, transparent);\r\n}\r\n\r\n.top-bar-title {\r\n  font-family: var(--font-display);\r\n  font-size: 24px; letter-spacing: 2px;\r\n  background: linear-gradient(90deg, #00b4ff, #00e676);\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n}\r\n\r\n.icon-btn {\r\n  width: 40px; height: 40px;\r\n  border-radius: 50%; border: 1px solid var(--border);\r\n  background: var(--bg-card);\r\n  display: flex; align-items: center; justify-content: center;\r\n  cursor: pointer; font-size: 18px;\r\n  transition: var(--transition);\r\n  color: var(--text-primary);\r\n}\r\n.icon-btn:hover { border-color: var(--accent-blue); transform: scale(1.08); }\r\n\r\n\/* ============================================================\r\n   MODE SELECTOR\r\n============================================================ *\/\r\n.section-title {\r\n  font-size: 12px; letter-spacing: 3px;\r\n  color: var(--text-muted); text-transform: uppercase;\r\n  margin: 20px 20px 10px;\r\n}\r\n\r\n.mode-grid {\r\n  display: grid; grid-template-columns: 1fr 1fr;\r\n  gap: 12px; padding: 0 20px;\r\n}\r\n\r\n.mode-card {\r\n  background: var(--bg-card);\r\n  border: 1.5px solid var(--border);\r\n  border-radius: var(--radius);\r\n  padding: 20px 16px;\r\n  cursor: pointer;\r\n  transition: var(--transition);\r\n  text-align: center;\r\n  position: relative;\r\n  overflow: hidden;\r\n}\r\n\r\n.mode-card::before {\r\n  content: '';\r\n  position: absolute; inset: 0;\r\n  opacity: 0;\r\n  transition: opacity 0.3s;\r\n}\r\n\r\n.mode-card[data-mode=\"clubs\"]::before { background: linear-gradient(135deg, rgba(0,180,255,0.1), transparent); }\r\n.mode-card[data-mode=\"players\"]::before { background: linear-gradient(135deg, rgba(255,215,0,0.1), transparent); }\r\n.mode-card[data-mode=\"competitions\"]::before { background: linear-gradient(135deg, rgba(0,230,118,0.1), transparent); }\r\n.mode-card[data-mode=\"history\"]::before { background: linear-gradient(135deg, rgba(255,61,61,0.1), transparent); }\r\n\r\n.mode-card:hover, .mode-card.selected {\r\n  transform: translateY(-3px);\r\n  box-shadow: 0 8px 24px rgba(0,0,0,0.3);\r\n}\r\n.mode-card:hover::before, .mode-card.selected::before { opacity: 1; }\r\n.mode-card.selected { border-color: var(--accent-blue); }\r\n\r\n.mode-emoji { font-size: 36px; display: block; margin-bottom: 8px; }\r\n.mode-name { font-weight: 700; font-size: 13px; }\r\n.mode-desc { font-size: 11px; color: var(--text-muted); margin-top: 3px; }\r\n\r\n\/* Difficulty *\/\r\n.diff-row {\r\n  display: flex; gap: 8px; padding: 0 20px; flex-wrap: wrap;\r\n}\r\n\r\n.diff-chip {\r\n  flex: 1; min-width: 70px;\r\n  padding: 10px 8px;\r\n  border-radius: 50px; border: 1.5px solid var(--border);\r\n  background: var(--bg-card);\r\n  cursor: pointer; transition: var(--transition);\r\n  font-size: 12px; font-weight: 600; text-align: center;\r\n  color: var(--text-secondary);\r\n}\r\n\r\n.diff-chip.selected, .diff-chip:hover {\r\n  background: var(--bg-card2);\r\n  color: var(--text-primary);\r\n}\r\n\r\n.diff-chip[data-diff=\"easy\"].selected { border-color: var(--accent-green); color: var(--accent-green); }\r\n.diff-chip[data-diff=\"medium\"].selected { border-color: var(--accent-gold); color: var(--accent-gold); }\r\n.diff-chip[data-diff=\"hard\"].selected { border-color: var(--accent-red); color: var(--accent-red); }\r\n.diff-chip[data-diff=\"expert\"].selected { border-color: #bf40ff; color: #bf40ff; }\r\n\r\n\/* ============================================================\r\n   QUIZ SCREEN\r\n============================================================ *\/\r\n#quiz-screen { padding: 0; }\r\n\r\n.quiz-header {\r\n  padding: 16px 20px 10px;\r\n  background: var(--bg-secondary);\r\n  border-bottom: 1px solid var(--border);\r\n}\r\n\r\n.quiz-meta {\r\n  display: flex; justify-content: space-between; align-items: center;\r\n  margin-bottom: 10px;\r\n}\r\n\r\n.q-counter { font-size: 13px; color: var(--text-muted); font-weight: 600; }\r\n.q-score-display {\r\n  font-family: var(--font-display); font-size: 20px;\r\n  background: linear-gradient(90deg, #ffd700, #ff9900);\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n}\r\n\r\n.progress-bar-wrap {\r\n  width: 100%; height: 6px;\r\n  background: var(--bg-card);\r\n  border-radius: 10px; overflow: hidden;\r\n  margin-bottom: 10px;\r\n}\r\n.progress-bar-fill {\r\n  height: 100%; border-radius: 10px;\r\n  background: linear-gradient(90deg, #00b4ff, #00e676);\r\n  transition: width 0.5s ease;\r\n}\r\n\r\n.timer-row { display: flex; align-items: center; gap: 10px; }\r\n.timer-icon { font-size: 16px; }\r\n.timer-bar-wrap { flex: 1; height: 8px; background: var(--bg-card); border-radius: 10px; overflow: hidden; }\r\n.timer-bar-fill {\r\n  height: 100%; border-radius: 10px;\r\n  background: linear-gradient(90deg, #00e676, #00b4ff);\r\n  transition: width 1s linear;\r\n}\r\n.timer-bar-fill.warning { background: linear-gradient(90deg, #ff9900, #ff3d3d); }\r\n.timer-num { font-family: var(--font-display); font-size: 20px; min-width: 28px; text-align: right; color: var(--timer-color); }\r\n\r\n.quiz-body { padding: 20px; flex: 1; }\r\n\r\n.q-image-wrap {\r\n  width: 100%; border-radius: var(--radius);\r\n  overflow: hidden; margin-bottom: 18px;\r\n  border: 1px solid var(--border);\r\n  background: var(--bg-card);\r\n  display: none;\r\n  aspect-ratio: 16\/9;\r\n  position: relative;\r\n}\r\n.q-image-wrap.has-image { display: block; }\r\n.q-image-wrap img {\r\n  width: 100%; height: 100%;\r\n  object-fit: cover;\r\n}\r\n.q-image-overlay {\r\n  position: absolute; inset: 0;\r\n  background: linear-gradient(0deg, rgba(7,14,26,0.6) 0%, transparent 50%);\r\n  pointer-events: none;\r\n}\r\n\r\n\/* emoji fallback for image questions *\/\r\n.q-emoji-display {\r\n  width: 100%;\r\n  border-radius: var(--radius);\r\n  margin-bottom: 18px;\r\n  background: var(--bg-card);\r\n  border: 1px solid var(--border);\r\n  display: none;\r\n  aspect-ratio: 2\/1;\r\n  align-items: center; justify-content: center;\r\n  font-size: 72px;\r\n}\r\n.q-emoji-display.show { display: flex; }\r\n\r\n.q-text {\r\n  font-size: 17px; font-weight: 700; line-height: 1.4;\r\n  margin-bottom: 20px; color: var(--text-primary);\r\n}\r\n\r\n.choices-grid {\r\n  display: grid; grid-template-columns: 1fr 1fr;\r\n  gap: 10px;\r\n}\r\n\r\n.choice-btn {\r\n  padding: 14px 12px;\r\n  border-radius: var(--radius-sm);\r\n  border: 1.5px solid var(--border);\r\n  background: var(--bg-card);\r\n  cursor: pointer; transition: var(--transition);\r\n  font-family: var(--font-body); font-weight: 600;\r\n  font-size: 13px; text-align: center;\r\n  color: var(--text-primary);\r\n  position: relative; overflow: hidden;\r\n  min-height: 52px;\r\n  display: flex; align-items: center; justify-content: center;\r\n  line-height: 1.2;\r\n}\r\n\r\n.choice-btn:hover:not([disabled]) {\r\n  border-color: var(--accent-blue);\r\n  background: var(--bg-card2);\r\n  transform: scale(1.02);\r\n}\r\n\r\n.choice-btn.correct {\r\n  border-color: var(--accent-green);\r\n  background: rgba(0,230,118,0.15);\r\n  color: var(--accent-green);\r\n  animation: correctPulse 0.5s ease;\r\n}\r\n\r\n.choice-btn.wrong {\r\n  border-color: var(--accent-red);\r\n  background: rgba(255,61,61,0.15);\r\n  color: var(--accent-red);\r\n  animation: wrongShake 0.4s ease;\r\n}\r\n\r\n@keyframes correctPulse {\r\n  0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); }\r\n}\r\n@keyframes wrongShake {\r\n  0%,100% { transform: translateX(0); }\r\n  20% { transform: translateX(-5px); }\r\n  40% { transform: translateX(5px); }\r\n  60% { transform: translateX(-4px); }\r\n  80% { transform: translateX(4px); }\r\n}\r\n\r\n.feedback-banner {\r\n  margin-top: 14px; padding: 12px 16px;\r\n  border-radius: var(--radius-sm);\r\n  font-size: 13px; font-weight: 600; text-align: center;\r\n  display: none;\r\n}\r\n.feedback-banner.show { display: block; animation: fadeIn 0.3s ease; }\r\n.feedback-banner.good { background: rgba(0,230,118,0.12); color: var(--accent-green); border: 1px solid rgba(0,230,118,0.2); }\r\n.feedback-banner.bad { background: rgba(255,61,61,0.12); color: var(--accent-red); border: 1px solid rgba(255,61,61,0.2); }\r\n\r\n@keyframes fadeIn {\r\n  from { opacity: 0; transform: translateY(6px); }\r\n  to { opacity: 1; transform: translateY(0); }\r\n}\r\n\r\n\/* ============================================================\r\n   RESULT SCREEN\r\n============================================================ *\/\r\n#result-screen { padding: 20px; align-items: center; justify-content: center; gap: 18px; }\r\n\r\n.result-circle {\r\n  width: 150px; height: 150px;\r\n  border-radius: 50%;\r\n  border: 4px solid transparent;\r\n  background: var(--bg-card);\r\n  display: flex; flex-direction: column;\r\n  align-items: center; justify-content: center;\r\n  position: relative;\r\n  animation: resultPop 0.6s cubic-bezier(0.34,1.56,0.64,1) both;\r\n}\r\n\r\n@keyframes resultPop {\r\n  from { transform: scale(0); opacity: 0; }\r\n  to { transform: scale(1); opacity: 1; }\r\n}\r\n\r\n.result-circle::before {\r\n  content: '';\r\n  position: absolute; inset: -4px;\r\n  border-radius: 50%;\r\n  background: conic-gradient(var(--accent-blue) var(--progress), var(--bg-card) var(--progress));\r\n  z-index: -1;\r\n}\r\n\r\n.result-score-num {\r\n  font-family: var(--font-display);\r\n  font-size: 52px; line-height: 1;\r\n  background: linear-gradient(135deg, #00b4ff, #00e676);\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n}\r\n.result-score-max { font-size: 14px; color: var(--text-muted); }\r\n\r\n.result-title {\r\n  font-family: var(--font-display);\r\n  font-size: 30px; letter-spacing: 2px;\r\n  text-align: center;\r\n}\r\n\r\n.result-msg {\r\n  text-align: center; font-size: 14px;\r\n  color: var(--text-secondary); line-height: 1.5;\r\n  padding: 0 20px;\r\n}\r\n\r\n.result-badges {\r\n  display: flex; gap: 8px; flex-wrap: wrap; justify-content: center;\r\n}\r\n\r\n.badge {\r\n  display: inline-flex; align-items: center; gap: 5px;\r\n  padding: 7px 14px; border-radius: 50px;\r\n  font-size: 12px; font-weight: 600;\r\n  border: 1px solid;\r\n}\r\n.badge-gold { border-color: var(--accent-gold); color: var(--accent-gold); background: rgba(255,215,0,0.08); }\r\n.badge-blue { border-color: var(--accent-blue); color: var(--accent-blue); background: rgba(0,180,255,0.08); }\r\n.badge-green { border-color: var(--accent-green); color: var(--accent-green); background: rgba(0,230,118,0.08); }\r\n.badge-purple { border-color: #bf40ff; color: #bf40ff; background: rgba(191,64,255,0.08); }\r\n\r\n.result-xp-gain {\r\n  padding: 14px 24px; background: var(--bg-card);\r\n  border: 1px solid var(--border); border-radius: var(--radius);\r\n  text-align: center; width: 100%;\r\n}\r\n\r\n.xp-gain-num {\r\n  font-family: var(--font-display); font-size: 36px;\r\n  color: var(--accent-gold);\r\n}\r\n.xp-gain-label { font-size: 12px; color: var(--text-muted); margin-top: 2px; }\r\n\r\n.result-actions { width: 100%; display: flex; flex-direction: column; gap: 10px; }\r\n\r\n.share-btn {\r\n  display: flex; align-items: center; justify-content: center; gap: 10px;\r\n  padding: 15px; border-radius: 50px;\r\n  background: linear-gradient(135deg, #25d366, #128c7e);\r\n  color: white; font-weight: 700; font-size: 15px;\r\n  border: none; cursor: pointer; width: 100%;\r\n  transition: var(--transition);\r\n  box-shadow: 0 4px 20px rgba(37,211,102,0.3);\r\n}\r\n.share-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(37,211,102,0.4); }\r\n\r\n\/* ============================================================\r\n   LEADERBOARD\r\n============================================================ *\/\r\n#leaderboard-screen { padding: 0 0 20px; }\r\n\r\n.lb-list { padding: 0 16px; display: flex; flex-direction: column; gap: 8px; }\r\n\r\n.lb-item {\r\n  display: flex; align-items: center; gap: 12px;\r\n  padding: 12px 14px;\r\n  background: var(--bg-card); border: 1px solid var(--border);\r\n  border-radius: var(--radius-sm);\r\n  transition: var(--transition);\r\n  animation: slideIn 0.3s ease both;\r\n}\r\n\r\n@keyframes slideIn {\r\n  from { opacity: 0; transform: translateX(-15px); }\r\n  to { opacity: 1; transform: translateX(0); }\r\n}\r\n\r\n.lb-item:nth-child(1) { border-color: rgba(255,215,0,0.4); background: rgba(255,215,0,0.06); }\r\n.lb-item:nth-child(2) { border-color: rgba(192,192,192,0.3); }\r\n.lb-item:nth-child(3) { border-color: rgba(205,127,50,0.3); }\r\n\r\n.lb-rank {\r\n  font-family: var(--font-display); font-size: 20px;\r\n  min-width: 36px; text-align: center;\r\n}\r\n.lb-rank.gold { color: var(--accent-gold); }\r\n.lb-rank.silver { color: #c0c0c0; }\r\n.lb-rank.bronze { color: #cd7f32; }\r\n\r\n.lb-avatar {\r\n  width: 38px; height: 38px; border-radius: 50%;\r\n  background: linear-gradient(135deg, #00b4ff, #0044aa);\r\n  display: flex; align-items: center; justify-content: center;\r\n  font-size: 18px; flex-shrink: 0;\r\n}\r\n\r\n.lb-name-wrap { flex: 1; min-width: 0; }\r\n.lb-player-name { font-weight: 700; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\r\n.lb-player-level { font-size: 11px; color: var(--text-muted); }\r\n\r\n.lb-score-wrap { text-align: right; }\r\n.lb-score-val { font-family: var(--font-display); font-size: 22px; color: var(--accent-gold); }\r\n.lb-score-pts { font-size: 11px; color: var(--text-muted); }\r\n\r\n.lb-me-highlight {\r\n  border-color: var(--accent-blue) !important;\r\n  background: rgba(0,180,255,0.08) !important;\r\n  box-shadow: 0 0 0 1px rgba(0,180,255,0.3);\r\n}\r\n\r\n\/* ============================================================\r\n   TOURNAMENT SCREEN\r\n============================================================ *\/\r\n#tournament-screen { padding: 0 0 30px; }\r\n\r\n.tournament-hero {\r\n  margin: 16px 16px 0;\r\n  background: linear-gradient(135deg, #1a2a1a, #0d2010);\r\n  border: 1px solid rgba(0,230,118,0.2);\r\n  border-radius: var(--radius);\r\n  padding: 24px 20px;\r\n  text-align: center;\r\n  position: relative; overflow: hidden;\r\n}\r\n\r\n.tournament-hero::before {\r\n  content: '\ud83c\udfc6';\r\n  position: absolute; right: -10px; top: -10px;\r\n  font-size: 100px; opacity: 0.08;\r\n}\r\n\r\n.tournament-tag {\r\n  display: inline-block;\r\n  padding: 4px 14px; border-radius: 50px;\r\n  background: rgba(0,230,118,0.1);\r\n  border: 1px solid rgba(0,230,118,0.3);\r\n  color: var(--accent-green);\r\n  font-size: 11px; font-weight: 700; letter-spacing: 2px;\r\n  text-transform: uppercase; margin-bottom: 10px;\r\n}\r\n\r\n.tournament-name {\r\n  font-family: var(--font-display);\r\n  font-size: 32px; letter-spacing: 2px;\r\n  color: var(--text-primary); margin-bottom: 6px;\r\n}\r\n\r\n.prize-amount {\r\n  font-family: var(--font-display); font-size: 40px;\r\n  background: linear-gradient(135deg, #ffd700, #ff9900);\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n  filter: drop-shadow(0 0 15px rgba(255,215,0,0.3));\r\n}\r\n\r\n.prize-label { font-size: 12px; color: var(--text-muted); }\r\n\r\n.countdown-wrap {\r\n  display: flex; justify-content: center; gap: 10px;\r\n  margin: 16px 0;\r\n}\r\n\r\n.countdown-unit {\r\n  background: var(--bg-card2);\r\n  border: 1px solid var(--border);\r\n  border-radius: var(--radius-sm);\r\n  padding: 10px 14px; text-align: center; min-width: 60px;\r\n}\r\n.countdown-num { font-family: var(--font-display); font-size: 28px; color: var(--accent-blue); display: block; }\r\n.countdown-lbl { font-size: 10px; color: var(--text-muted); display: block; }\r\n\r\n.coming-soon-badge {\r\n  display: inline-flex; align-items: center; gap: 6px;\r\n  padding: 8px 18px; border-radius: 50px;\r\n  background: rgba(255,215,0,0.1);\r\n  border: 1px solid rgba(255,215,0,0.3);\r\n  color: var(--accent-gold);\r\n  font-size: 12px; font-weight: 700;\r\n}\r\n\r\n.tournament-section { padding: 16px 16px 0; }\r\n.ts-title { font-size: 13px; font-weight: 700; letter-spacing: 2px; color: var(--text-muted); text-transform: uppercase; margin-bottom: 10px; }\r\n\r\n.top-player-card {\r\n  display: flex; align-items: center; gap: 12px;\r\n  padding: 12px; background: var(--bg-card);\r\n  border: 1px solid var(--border); border-radius: var(--radius-sm);\r\n  margin-bottom: 8px;\r\n}\r\n.tp-rank { font-family: var(--font-display); font-size: 18px; width: 28px; text-align: center; }\r\n.tp-name { flex: 1; font-weight: 700; font-size: 14px; }\r\n.tp-pts { font-family: var(--font-display); font-size: 20px; color: var(--accent-gold); }\r\n\r\n\/* ============================================================\r\n   LANGUAGE MODAL\r\n============================================================ *\/\r\n.modal-overlay {\r\n  position: fixed; inset: 0; z-index: 1000;\r\n  background: rgba(0,0,0,0.7);\r\n  display: none; align-items: flex-end;\r\n  animation: overlayIn 0.3s ease;\r\n}\r\n.modal-overlay.open { display: flex; }\r\n\r\n@keyframes overlayIn { from { opacity: 0; } to { opacity: 1; } }\r\n\r\n.modal-sheet {\r\n  width: 100%; max-width: 480px; margin: 0 auto;\r\n  background: var(--bg-secondary);\r\n  border-radius: 24px 24px 0 0;\r\n  padding: 20px;\r\n  animation: sheetUp 0.4s cubic-bezier(0.4,0,0.2,1);\r\n  border-top: 1px solid var(--border);\r\n}\r\n\r\n@keyframes sheetUp { from { transform: translateY(100%); } to { transform: translateY(0); } }\r\n\r\n.modal-title { font-family: var(--font-display); font-size: 22px; letter-spacing: 1px; margin-bottom: 16px; text-align: center; }\r\n\r\n.lang-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }\r\n.lang-btn {\r\n  padding: 14px 12px; border-radius: var(--radius-sm);\r\n  border: 1.5px solid var(--border);\r\n  background: var(--bg-card);\r\n  cursor: pointer; transition: var(--transition);\r\n  text-align: center; font-family: var(--font-body);\r\n  font-size: 14px; font-weight: 600; color: var(--text-primary);\r\n  display: flex; align-items: center; justify-content: center; gap: 8px;\r\n}\r\n.lang-btn:hover, .lang-btn.active { border-color: var(--accent-blue); color: var(--accent-blue); }\r\n\r\n\/* ============================================================\r\n   AD POPUP\r\n============================================================ *\/\r\n.ad-popup {\r\n  position: fixed; inset: 0; z-index: 2000;\r\n  display: none; align-items: center; justify-content: center;\r\n  background: rgba(0,0,0,0.85);\r\n  padding: 20px;\r\n}\r\n.ad-popup.open { display: flex; }\r\n\r\n.ad-card {\r\n  width: 100%; max-width: 340px;\r\n  background: var(--bg-secondary);\r\n  border: 1px solid var(--border);\r\n  border-radius: var(--radius);\r\n  padding: 24px;\r\n  text-align: center;\r\n  animation: popIn 0.4s cubic-bezier(0.34,1.56,0.64,1);\r\n}\r\n\r\n@keyframes popIn {\r\n  from { transform: scale(0.7); opacity: 0; }\r\n  to { transform: scale(1); opacity: 1; }\r\n}\r\n\r\n.ad-title { font-family: var(--font-display); font-size: 26px; margin-bottom: 8px; }\r\n.ad-desc { font-size: 13px; color: var(--text-secondary); margin-bottom: 18px; line-height: 1.5; }\r\n.ad-close-timer { font-size: 12px; color: var(--text-muted); margin-top: 12px; }\r\n\r\n\/* ============================================================\r\n   LOADING STATE\r\n============================================================ *\/\r\n.loading-screen {\r\n  position: fixed; inset: 0; z-index: 5000;\r\n  background: var(--bg-primary);\r\n  display: flex; align-items: center; justify-content: center;\r\n  flex-direction: column; gap: 16px;\r\n}\r\n\r\n.loading-ball {\r\n  font-size: 48px;\r\n  animation: ballSpin 1s linear infinite;\r\n}\r\n\r\n@keyframes ballSpin {\r\n  from { transform: rotate(0deg); }\r\n  to { transform: rotate(360deg); }\r\n}\r\n\r\n.loading-text { font-size: 14px; color: var(--text-muted); letter-spacing: 2px; }\r\n.loading-dots { display: inline-flex; gap: 4px; }\r\n.loading-dots span {\r\n  width: 6px; height: 6px; border-radius: 50%;\r\n  background: var(--accent-blue);\r\n  animation: dotBounce 1s ease-in-out infinite;\r\n}\r\n.loading-dots span:nth-child(2) { animation-delay: 0.15s; }\r\n.loading-dots span:nth-child(3) { animation-delay: 0.3s; }\r\n\r\n@keyframes dotBounce {\r\n  0%,80%,100% { transform: scale(0.6); opacity: 0.4; }\r\n  40% { transform: scale(1); opacity: 1; }\r\n}\r\n\r\n\/* ============================================================\r\n   BOTTOM NAV\r\n============================================================ *\/\r\n.bottom-nav {\r\n  position: fixed; bottom: 0; left: 50%;\r\n  transform: translateX(-50%);\r\n  width: 100%; max-width: 480px;\r\n  background: var(--bg-secondary);\r\n  border-top: 1px solid var(--border);\r\n  display: flex;\r\n  padding: 8px 0 12px;\r\n  z-index: 200;\r\n}\r\n\r\n.nav-item {\r\n  flex: 1; display: flex; flex-direction: column;\r\n  align-items: center; justify-content: center;\r\n  gap: 3px; cursor: pointer;\r\n  transition: var(--transition);\r\n  padding: 4px 0;\r\n  color: var(--text-muted);\r\n  font-size: 10px; font-weight: 600;\r\n}\r\n\r\n.nav-item.active { color: var(--accent-blue); }\r\n.nav-item svg { width: 22px; height: 22px; transition: var(--transition); }\r\n.nav-item.active svg { filter: drop-shadow(0 0 6px rgba(0,180,255,0.5)); }\r\n\r\n\/* ============================================================\r\n   UTILS \/ ANIMATIONS\r\n============================================================ *\/\r\n.pulse { animation: pulsate 1.5s ease-in-out infinite; }\r\n@keyframes pulsate {\r\n  0%,100% { opacity: 1; } 50% { opacity: 0.6; }\r\n}\r\n\r\n.bounce-in { animation: bounceIn 0.6s cubic-bezier(0.34,1.56,0.64,1) both; }\r\n@keyframes bounceIn {\r\n  from { transform: scale(0); opacity: 0; }\r\n  to { transform: scale(1); opacity: 1; }\r\n}\r\n\r\n.shake { animation: wrongShake 0.4s ease; }\r\n\r\n\/* RTL support *\/\r\n[dir=\"rtl\"] .lb-score-wrap { text-align: left; }\r\n[dir=\"rtl\"] .choices-grid .choice-btn { text-align: right; }\r\n\r\n\/* Scrollbar *\/\r\n::-webkit-scrollbar { width: 4px; }\r\n::-webkit-scrollbar-track { background: transparent; }\r\n::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }\r\n\r\n\/* Add padding to screens for bottom nav *\/\r\n.screen-inner { padding-bottom: 80px; }\r\n\r\n\/* ============================================================\r\n   RESPONSIVE (very large screens)\r\n============================================================ *\/\r\n@media (min-width: 480px) {\r\n  .bottom-nav { border-radius: 0 0 20px 20px; }\r\n  .modal-sheet { border-radius: 24px; margin: auto; }\r\n  .modal-overlay { align-items: center; }\r\n}\r\n\r\n\/* Floating particles *\/\r\n.particles { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }\r\n.particle {\r\n  position: absolute;\r\n  width: 3px; height: 3px;\r\n  border-radius: 50%;\r\n  background: rgba(0,180,255,0.4);\r\n  animation: particleFloat linear infinite;\r\n}\r\n@keyframes particleFloat {\r\n  0% { transform: translateY(100vh) scale(0); opacity: 0; }\r\n  10% { opacity: 1; }\r\n  90% { opacity: 1; }\r\n  100% { transform: translateY(-100px) scale(1); opacity: 0; }\r\n}\r\n\r\n.streak-badge {\r\n  display: inline-flex; align-items: center; gap: 4px;\r\n  padding: 4px 12px; border-radius: 50px;\r\n  background: rgba(255,152,0,0.15);\r\n  border: 1px solid rgba(255,152,0,0.3);\r\n  color: #ff9800; font-size: 12px; font-weight: 700;\r\n}\r\n\r\n#mode-select-screen { padding: 0 0 80px; }\r\n.ms-inner { padding-bottom: 0; }\r\n\r\n.start-fixed {\r\n  position: fixed; bottom: 70px; left: 50%;\r\n  transform: translateX(-50%);\r\n  width: calc(100% - 40px); max-width: 440px;\r\n  z-index: 150;\r\n  padding: 0 0 10px;\r\n}\r\n\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"pitch-bg\"><\/div>\r\n<div class=\"particles\" id=\"particles\"><\/div>\r\n\r\n<!-- ============================================================\r\n     LOADING SCREEN\r\n============================================================ -->\r\n<div class=\"loading-screen\" id=\"loading-screen\">\r\n  <span class=\"loading-ball\">\u26bd<\/span>\r\n  <div class=\"loading-text\" id=\"loading-text\">CHARGEMENT<\/div>\r\n  <div class=\"loading-dots\"><span><\/span><span><\/span><span><\/span><\/div>\r\n<\/div>\r\n\r\n<!-- ============================================================\r\n     APP\r\n============================================================ -->\r\n<div id=\"app\">\r\n\r\n  <!-- ========== HOME SCREEN ========== -->\r\n  <div class=\"screen\" id=\"home-screen\">\r\n    <div class=\"home-hero\">\r\n      <span class=\"ball-icon\">\u26bd<\/span>\r\n      <div class=\"game-title\">FootballQuiz<\/div>\r\n      <div class=\"game-title\" style=\"font-size:26px;letter-spacing:8px;\">PRO<\/div>\r\n      <div class=\"game-subtitle\" id=\"t-subtitle\">Quiz Football Ultime<\/div>\r\n    <\/div>\r\n\r\n    <!-- Player card -->\r\n    <div class=\"player-card\" id=\"player-card\">\r\n      <div class=\"player-avatar\" id=\"player-avatar-emoji\">\u26bd<\/div>\r\n      <div class=\"player-info\">\r\n        <div class=\"player-name\" id=\"player-name-display\">Chargement...<\/div>\r\n        <div class=\"player-level-badge\" id=\"player-level-display\">\u26a1 D\u00e9butant<\/div>\r\n        <div class=\"xp-row\">\r\n          <div class=\"xp-bar-wrap\"><div class=\"xp-bar-fill\" id=\"xp-bar\" style=\"width:0%\"><\/div><\/div>\r\n          <div class=\"xp-text\" id=\"xp-text\">0 XP<\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Stats -->\r\n    <div class=\"home-stats-row\" style=\"padding:0 20px;margin-bottom:10px;\">\r\n      <div class=\"stat-box\">\r\n        <div class=\"stat-num\" id=\"stat-played\">0<\/div>\r\n        <div class=\"stat-lbl\" id=\"t-stat-played\">Jou\u00e9s<\/div>\r\n      <\/div>\r\n      <div class=\"stat-box\">\r\n        <div class=\"stat-num\" id=\"stat-best\">0<\/div>\r\n        <div class=\"stat-lbl\" id=\"t-stat-best\">Meilleur<\/div>\r\n      <\/div>\r\n      <div class=\"stat-box\">\r\n        <div class=\"stat-num\" id=\"stat-avg\">0<\/div>\r\n        <div class=\"stat-lbl\" id=\"t-stat-avg\">Moy\/10<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Nav buttons -->\r\n    <div class=\"home-nav\" style=\"padding:0 20px;\">\r\n      <button class=\"btn btn-primary\" id=\"btn-play\">\r\n        <span>\u25b6<\/span> <span id=\"t-play\">JOUER MAINTENANT<\/span>\r\n      <\/button>\r\n      <div class=\"btn-row\">\r\n        <button class=\"btn btn-outline btn-icon\" id=\"btn-leaderboard\">\ud83c\udfc6 <span id=\"t-leaderboard\">Classement<\/span><\/button>\r\n        <button class=\"btn btn-outline btn-icon\" id=\"btn-tournament\">\ud83c\udfaf <span id=\"t-tournament\">Tournoi<\/span><\/button>\r\n      <\/div>\r\n      <div class=\"btn-row\">\r\n        <button class=\"btn btn-outline btn-icon\" id=\"btn-lang\">\ud83c\udf10 <span id=\"t-lang\">Langue<\/span><\/button>\r\n        <button class=\"btn btn-outline btn-icon\" id=\"btn-theme\">\ud83c\udf19 <span id=\"t-theme\">Mode<\/span><\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- ========== MODE SELECT SCREEN ========== -->\r\n  <div class=\"screen\" id=\"mode-select-screen\">\r\n    <div class=\"top-bar\">\r\n      <button class=\"icon-btn\" id=\"btn-back-mode\">\u2190<\/button>\r\n      <div class=\"top-bar-title\" id=\"t-choose-mode\">CHOISIR MODE<\/div>\r\n      <div style=\"width:40px\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"section-title\" id=\"t-game-mode\">Mode de jeu<\/div>\r\n    <div class=\"mode-grid\">\r\n      <div class=\"mode-card selected\" data-mode=\"clubs\" onclick=\"App.selectMode('clubs')\">\r\n        <span class=\"mode-emoji\">\ud83c\udfdf\ufe0f<\/span>\r\n        <div class=\"mode-name\" id=\"t-mode-clubs\">Clubs & Nations<\/div>\r\n        <div class=\"mode-desc\" id=\"t-mode-clubs-desc\">Logos, stades, drapeaux<\/div>\r\n      <\/div>\r\n      <div class=\"mode-card\" data-mode=\"players\" onclick=\"App.selectMode('players')\">\r\n        <span class=\"mode-emoji\">\u2b50<\/span>\r\n        <div class=\"mode-name\" id=\"t-mode-players\">Joueurs & L\u00e9gendes<\/div>\r\n        <div class=\"mode-desc\" id=\"t-mode-players-desc\">Stars & ic\u00f4nes<\/div>\r\n      <\/div>\r\n      <div class=\"mode-card\" data-mode=\"competitions\" onclick=\"App.selectMode('competitions')\">\r\n        <span class=\"mode-emoji\">\ud83c\udfc6<\/span>\r\n        <div class=\"mode-name\" id=\"t-mode-competitions\">Comp\u00e9titions<\/div>\r\n        <div class=\"mode-desc\" id=\"t-mode-competitions-desc\">Coupes & championnats<\/div>\r\n      <\/div>\r\n      <div class=\"mode-card\" data-mode=\"history\" onclick=\"App.selectMode('history')\">\r\n        <span class=\"mode-emoji\">\ud83d\udcdc<\/span>\r\n        <div class=\"mode-name\" id=\"t-mode-history\">Histoire<\/div>\r\n        <div class=\"mode-desc\" id=\"t-mode-history-desc\">Moments l\u00e9gendaires<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"section-title\" id=\"t-difficulty\">Difficult\u00e9<\/div>\r\n    <div class=\"diff-row\">\r\n      <div class=\"diff-chip selected\" data-diff=\"easy\" onclick=\"App.selectDiff('easy')\" id=\"t-easy\">\ud83d\udfe2 Facile<\/div>\r\n      <div class=\"diff-chip\" data-diff=\"medium\" onclick=\"App.selectDiff('medium')\" id=\"t-medium\">\ud83d\udfe1 Moyen<\/div>\r\n      <div class=\"diff-chip\" data-diff=\"hard\" onclick=\"App.selectDiff('hard')\" id=\"t-hard\">\ud83d\udd34 Difficile<\/div>\r\n      <div class=\"diff-chip\" data-diff=\"expert\" onclick=\"App.selectDiff('expert')\" id=\"t-expert\">\ud83d\udc80 Expert<\/div>\r\n    <\/div>\r\n\r\n    <div style=\"height:100px\"><\/div>\r\n    <div class=\"start-fixed\">\r\n      <button class=\"btn btn-primary\" id=\"btn-start-quiz\">\r\n        <span>\u26bd<\/span> <span id=\"t-start\">COMMENCER LE QUIZ<\/span>\r\n      <\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- ========== QUIZ SCREEN ========== -->\r\n  <div class=\"screen\" id=\"quiz-screen\">\r\n    <div class=\"quiz-header\">\r\n      <div class=\"quiz-meta\">\r\n        <div class=\"q-counter\" id=\"q-counter\">Q1 \/ 10<\/div>\r\n        <div class=\"streak-badge\" id=\"streak-badge\" style=\"display:none\">\ud83d\udd25 <span id=\"streak-num\">0<\/span><\/div>\r\n        <div class=\"q-score-display\">\u2b50 <span id=\"live-score\">0<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"progress-bar-wrap\">\r\n        <div class=\"progress-bar-fill\" id=\"q-progress\" style=\"width:0%\"><\/div>\r\n      <\/div>\r\n      <div class=\"timer-row\">\r\n        <span class=\"timer-icon\">\u23f1<\/span>\r\n        <div class=\"timer-bar-wrap\">\r\n          <div class=\"timer-bar-fill\" id=\"timer-bar\" style=\"width:100%\"><\/div>\r\n        <\/div>\r\n        <div class=\"timer-num\" id=\"timer-num\">10<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"quiz-body\">\r\n      <div class=\"q-emoji-display\" id=\"q-emoji-display\">\ud83c\udfdf\ufe0f<\/div>\r\n      <div class=\"q-image-wrap\" id=\"q-image-wrap\">\r\n        <img decoding=\"async\" id=\"q-image\" src=\"\" alt=\"\">\r\n        <div class=\"q-image-overlay\"><\/div>\r\n      <\/div>\r\n      <div class=\"q-text\" id=\"q-text\">Chargement de la question...<\/div>\r\n      <div class=\"choices-grid\" id=\"choices-grid\"><\/div>\r\n      <div class=\"feedback-banner\" id=\"feedback-banner\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- ========== RESULT SCREEN ========== -->\r\n  <div class=\"screen\" id=\"result-screen\">\r\n    <div style=\"width:100%;display:flex;align-items:center;padding:16px 20px 0;\">\r\n      <div style=\"font-family:var(--font-display);font-size:22px;letter-spacing:2px;background:linear-gradient(90deg,#00b4ff,#00e676);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;\">R\u00c9SULTAT<\/div>\r\n    <\/div>\r\n    <div class=\"result-circle\" id=\"result-circle\" style=\"--progress:0deg;margin-top:10px;\">\r\n      <div class=\"result-score-num\" id=\"result-score\">0<\/div>\r\n      <div class=\"result-score-max\" id=\"t-out-of\">\/10<\/div>\r\n    <\/div>\r\n    <div class=\"result-title\" id=\"result-title\">R\u00e9sultat<\/div>\r\n    <div class=\"result-msg\" id=\"result-msg\">Bonne chance la prochaine fois !<\/div>\r\n    <div class=\"result-badges\" id=\"result-badges\"><\/div>\r\n    <div class=\"result-xp-gain\">\r\n      <div class=\"xp-gain-num\" id=\"result-xp\">+0 XP<\/div>\r\n      <div class=\"xp-gain-label\" id=\"t-xp-earned\">XP gagn\u00e9s<\/div>\r\n    <\/div>\r\n    <div class=\"result-actions\">\r\n      <button class=\"share-btn\" id=\"btn-share\">\r\n        <span>\ud83d\udcac<\/span> <span id=\"t-share-wa\">Partager sur WhatsApp<\/span>\r\n      <\/button>\r\n      <button class=\"btn btn-primary\" id=\"btn-replay\">\r\n        <span>\ud83d\udd04<\/span> <span id=\"t-replay\">Rejouer<\/span>\r\n      <\/button>\r\n      <button class=\"btn btn-outline\" id=\"btn-home-from-result\">\r\n        <span id=\"t-home\">\ud83c\udfe0 Accueil<\/span>\r\n      <\/button>\r\n    <\/div>\r\n    <div style=\"height:20px\"><\/div>\r\n  <\/div>\r\n\r\n  <!-- ========== LEADERBOARD SCREEN ========== -->\r\n  <div class=\"screen\" id=\"leaderboard-screen\">\r\n    <div class=\"top-bar\">\r\n      <button class=\"icon-btn\" id=\"btn-back-lb\">\u2190<\/button>\r\n      <div class=\"top-bar-title\" id=\"t-ranking\">CLASSEMENT<\/div>\r\n      <div style=\"width:40px\"><\/div>\r\n    <\/div>\r\n    <div style=\"padding:0 16px 10px;display:flex;justify-content:center;\">\r\n      <div class=\"streak-badge\" style=\"font-size:13px;\" id=\"lb-my-rank\">\ud83d\udccd Ma position: #-<\/div>\r\n    <\/div>\r\n    <div class=\"lb-list\" id=\"lb-list\"><\/div>\r\n    <div style=\"height:80px\"><\/div>\r\n  <\/div>\r\n\r\n  <!-- ========== TOURNAMENT SCREEN ========== -->\r\n  <div class=\"screen\" id=\"tournament-screen\">\r\n    <div class=\"top-bar\">\r\n      <button class=\"icon-btn\" id=\"btn-back-tour\">\u2190<\/button>\r\n      <div class=\"top-bar-title\" id=\"t-tournament-title\">TOURNOI<\/div>\r\n      <div style=\"width:40px\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"tournament-hero\">\r\n      <div class=\"tournament-tag\" id=\"t-weekly\">TOURNOI DE LA SEMAINE<\/div>\r\n      <div class=\"tournament-name\" id=\"t-afcon-cup\">COUPE DE LA SEMAINE<\/div>\r\n      <div class=\"prize-amount\">50 000 FCFA<\/div>\r\n      <div class=\"prize-label\" id=\"t-to-win\">\u00e0 gagner<\/div>\r\n      <div class=\"countdown-wrap\" id=\"countdown-wrap\">\r\n        <div class=\"countdown-unit\"><span class=\"countdown-num\" id=\"cd-days\">--<\/span><span class=\"countdown-lbl\" id=\"t-days\">JOURS<\/span><\/div>\r\n        <div class=\"countdown-unit\"><span class=\"countdown-num\" id=\"cd-hours\">--<\/span><span class=\"countdown-lbl\" id=\"t-hours\">HEURES<\/span><\/div>\r\n        <div class=\"countdown-unit\"><span class=\"countdown-num\" id=\"cd-mins\">--<\/span><span class=\"countdown-lbl\" id=\"t-mins\">MIN<\/span><\/div>\r\n        <div class=\"countdown-unit\"><span class=\"countdown-num\" id=\"cd-secs\">--<\/span><span class=\"countdown-lbl\" id=\"t-secs\">SEC<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"coming-soon-badge\">\ud83d\udd12 <span id=\"t-coming-soon\">Bient\u00f4t disponible<\/span><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"tournament-section\">\r\n      <div class=\"ts-title\" id=\"t-top-players\">TOP JOUEURS<\/div>\r\n      <div id=\"tour-top-players\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"tournament-section\">\r\n      <div class=\"ts-title\" id=\"t-how-join\">COMMENT PARTICIPER ?<\/div>\r\n      <div style=\"background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;font-size:13px;color:var(--text-secondary);line-height:1.7;\" id=\"t-how-text\">\r\n        1. Obtenez 8\/10 ou plus<br>\r\n        2. Jouez pendant la semaine du tournoi<br>\r\n        3. Le meilleur score remporte la mise<br>\r\n        4. Inscription gratuite !\r\n      <\/div>\r\n    <\/div>\r\n    <div style=\"height:80px\"><\/div>\r\n  <\/div>\r\n\r\n<\/div><!-- \/app -->\r\n\r\n<!-- ========== LANGUAGE MODAL ========== -->\r\n<div class=\"modal-overlay\" id=\"lang-modal\">\r\n  <div class=\"modal-sheet\">\r\n    <div class=\"modal-title\" id=\"t-select-lang\">CHOISIR LA LANGUE<\/div>\r\n    <div class=\"lang-grid\">\r\n      <button class=\"lang-btn active\" data-lang=\"fr\" onclick=\"App.setLang('fr')\">\ud83c\uddeb\ud83c\uddf7 Fran\u00e7ais<\/button>\r\n      <button class=\"lang-btn\" data-lang=\"en\" onclick=\"App.setLang('en')\">\ud83c\uddec\ud83c\udde7 English<\/button>\r\n      <button class=\"lang-btn\" data-lang=\"es\" onclick=\"App.setLang('es')\">\ud83c\uddea\ud83c\uddf8 Espa\u00f1ol<\/button>\r\n      <button class=\"lang-btn\" data-lang=\"pt\" onclick=\"App.setLang('pt')\">\ud83c\udde7\ud83c\uddf7 Portugu\u00eas<\/button>\r\n      <button class=\"lang-btn\" data-lang=\"ar\" onclick=\"App.setLang('ar')\" style=\"grid-column:span 2;\">\ud83c\udf19 \u0627\u0644\u0639\u0631\u0628\u064a\u0629<\/button>\r\n    <\/div>\r\n    <button class=\"btn btn-outline\" style=\"margin-top:14px;\" onclick=\"App.closeLangModal()\">\r\n      <span id=\"t-close\">Fermer<\/span>\r\n    <\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- ========== AD POPUP ========== -->\r\n<div class=\"ad-popup\" id=\"ad-popup\">\r\n  <div class=\"ad-card\">\r\n    <div style=\"font-size:48px;margin-bottom:10px;\">\ud83d\udcf1<\/div>\r\n    <div class=\"ad-title\" id=\"t-ad-title\">FootballQuiz PRO+<\/div>\r\n    <div class=\"ad-desc\" id=\"t-ad-desc\">\r\n      D\u00e9bloquez le mode Tournoi, les quiz illimit\u00e9s et les classements exclusifs avec la version Premium !\r\n    <\/div>\r\n    <button class=\"btn btn-gold\" onclick=\"App.closeAd()\" style=\"margin-bottom:10px;\">\r\n      <span id=\"t-ad-cta\">\ud83d\udc8e Passer Premium<\/span>\r\n    <\/button>\r\n    <button class=\"btn btn-outline btn-sm\" onclick=\"App.closeAd()\">\r\n      <span id=\"t-ad-skip\">Continuer gratuitement<\/span>\r\n    <\/button>\r\n    <div class=\"ad-close-timer\" id=\"ad-timer\"><\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- ============================================================\r\n     JAVASCRIPT\r\n============================================================ -->\r\n<script>\r\n\/* ============================================================\r\n   TRANSLATIONS\r\n============================================================ *\/\r\nconst TRANSLATIONS = {\r\n  fr: {\r\n    subtitle: \"Quiz Football Ultime\",\r\n    play: \"JOUER MAINTENANT\",\r\n    leaderboard: \"Classement\",\r\n    tournament: \"Tournoi\",\r\n    lang: \"Langue\",\r\n    theme: \"Mode\",\r\n    ranking: \"CLASSEMENT\",\r\n    \"tournament-title\": \"TOURNOI\",\r\n    weekly: \"TOURNOI DE LA SEMAINE\",\r\n    \"afcon-cup\": \"COUPE DE LA SEMAINE\",\r\n    \"to-win\": \"\u00e0 gagner\",\r\n    days: \"JOURS\",\r\n    hours: \"HEURES\",\r\n    mins: \"MIN\",\r\n    secs: \"SEC\",\r\n    \"coming-soon\": \"Bient\u00f4t disponible\",\r\n    \"top-players\": \"TOP JOUEURS\",\r\n    \"how-join\": \"COMMENT PARTICIPER ?\",\r\n    \"how-text\": \"1. Obtenez 8\/10 ou plus<br>2. Jouez pendant la semaine du tournoi<br>3. Le meilleur score remporte la mise<br>4. Inscription gratuite !\",\r\n    \"choose-mode\": \"CHOISIR MODE\",\r\n    \"game-mode\": \"Mode de jeu\",\r\n    \"mode-clubs\": \"Clubs & Nations\",\r\n    \"mode-clubs-desc\": \"Logos, stades, drapeaux\",\r\n    \"mode-players\": \"Joueurs & L\u00e9gendes\",\r\n    \"mode-players-desc\": \"Stars & ic\u00f4nes\",\r\n    \"mode-competitions\": \"Comp\u00e9titions\",\r\n    \"mode-competitions-desc\": \"Coupes & championnats\",\r\n    \"mode-history\": \"Histoire\",\r\n    \"mode-history-desc\": \"Moments l\u00e9gendaires\",\r\n    difficulty: \"Difficult\u00e9\",\r\n    easy: \"\ud83d\udfe2 Facile\",\r\n    medium: \"\ud83d\udfe1 Moyen\",\r\n    hard: \"\ud83d\udd34 Difficile\",\r\n    expert: \"\ud83d\udc80 Expert\",\r\n    start: \"COMMENCER LE QUIZ\",\r\n    \"out-of\": \"\/10\",\r\n    \"xp-earned\": \"XP gagn\u00e9s\",\r\n    \"share-wa\": \"Partager sur WhatsApp\",\r\n    replay: \"Rejouer\",\r\n    home: \"\ud83c\udfe0 Accueil\",\r\n    \"select-lang\": \"CHOISIR LA LANGUE\",\r\n    close: \"Fermer\",\r\n    \"ad-title\": \"FootballQuiz PRO+\",\r\n    \"ad-desc\": \"D\u00e9bloquez le mode Tournoi, les quiz illimit\u00e9s et les classements exclusifs avec la version Premium !\",\r\n    \"ad-cta\": \"\ud83d\udc8e Passer Premium\",\r\n    \"ad-skip\": \"Continuer gratuitement\",\r\n    \"stat-played\": \"Jou\u00e9s\",\r\n    \"stat-best\": \"Meilleur\",\r\n    \"stat-avg\": \"Moy\/10\",\r\n    correct_msgs: [\"Excellent ! \ud83c\udfaf\", \"Bravo ! \u26bd\", \"Parfait ! \ud83c\udfc6\", \"Magnifique ! \u2b50\"],\r\n    wrong_msgs: [\"Rat\u00e9... La bonne r\u00e9ponse \u00e9tait : \", \"Dommage ! C'\u00e9tait : \", \"Pas cette fois ! R\u00e9ponse : \"],\r\n    result_titles: [\"D\u00e9butant \ud83c\udf31\", \"Bon joueur \u26bd\", \"Expert Football \ud83c\udfc6\", \"L\u00e9gende du Football \ud83c\udf1f\"],\r\n    result_msgs: [\r\n      \"Continue \u00e0 t'entra\u00eener, tu progresseras !\",\r\n      \"Bonne connaissance du football, continue !\",\r\n      \"Impressionnant ! Tu ma\u00eetrises le football.\",\r\n      \"Extraordinaire ! Tu es une vraie l\u00e9gende !\"\r\n    ],\r\n    levels: [\"D\u00e9butant\", \"Joueur Confirm\u00e9\", \"Expert\", \"L\u00e9gende du Football\"],\r\n    share_text: (score, ref) => `\u26bd J'ai fait ${score}\/10 sur FootballQuiz Pro ! Peux-tu me battre ? \ud83c\udfc6 Joue ici : https:\/\/footballquiz.pro?ref=${ref}`\r\n  },\r\n  en: {\r\n    subtitle: \"Ultimate Football Quiz\",\r\n    play: \"PLAY NOW\",\r\n    leaderboard: \"Rankings\",\r\n    tournament: \"Tournament\",\r\n    lang: \"Language\",\r\n    theme: \"Theme\",\r\n    ranking: \"LEADERBOARD\",\r\n    \"tournament-title\": \"TOURNAMENT\",\r\n    weekly: \"WEEKLY TOURNAMENT\",\r\n    \"afcon-cup\": \"WEEKLY CUP\",\r\n    \"to-win\": \"to win\",\r\n    days: \"DAYS\",\r\n    hours: \"HRS\",\r\n    mins: \"MIN\",\r\n    secs: \"SEC\",\r\n    \"coming-soon\": \"Coming soon\",\r\n    \"top-players\": \"TOP PLAYERS\",\r\n    \"how-join\": \"HOW TO JOIN?\",\r\n    \"how-text\": \"1. Score 8\/10 or more<br>2. Play during tournament week<br>3. Best score wins the prize<br>4. Free registration!\",\r\n    \"choose-mode\": \"CHOOSE MODE\",\r\n    \"game-mode\": \"Game Mode\",\r\n    \"mode-clubs\": \"Clubs & Nations\",\r\n    \"mode-clubs-desc\": \"Logos, stadiums, flags\",\r\n    \"mode-players\": \"Players & Legends\",\r\n    \"mode-players-desc\": \"Stars & icons\",\r\n    \"mode-competitions\": \"Competitions\",\r\n    \"mode-competitions-desc\": \"Cups & leagues\",\r\n    \"mode-history\": \"History\",\r\n    \"mode-history-desc\": \"Legendary moments\",\r\n    difficulty: \"Difficulty\",\r\n    easy: \"\ud83d\udfe2 Easy\",\r\n    medium: \"\ud83d\udfe1 Medium\",\r\n    hard: \"\ud83d\udd34 Hard\",\r\n    expert: \"\ud83d\udc80 Expert\",\r\n    start: \"START QUIZ\",\r\n    \"out-of\": \"\/10\",\r\n    \"xp-earned\": \"XP earned\",\r\n    \"share-wa\": \"Share on WhatsApp\",\r\n    replay: \"Play Again\",\r\n    home: \"\ud83c\udfe0 Home\",\r\n    \"select-lang\": \"SELECT LANGUAGE\",\r\n    close: \"Close\",\r\n    \"ad-title\": \"FootballQuiz PRO+\",\r\n    \"ad-desc\": \"Unlock Tournament mode, unlimited quizzes, and exclusive rankings with the Premium version!\",\r\n    \"ad-cta\": \"\ud83d\udc8e Go Premium\",\r\n    \"ad-skip\": \"Continue for free\",\r\n    \"stat-played\": \"Played\",\r\n    \"stat-best\": \"Best\",\r\n    \"stat-avg\": \"Avg\/10\",\r\n    correct_msgs: [\"Excellent! \ud83c\udfaf\", \"Great! \u26bd\", \"Perfect! \ud83c\udfc6\", \"Brilliant! \u2b50\"],\r\n    wrong_msgs: [\"Missed! Correct answer: \", \"Too bad! It was: \", \"Not this time! Answer: \"],\r\n    result_titles: [\"Beginner \ud83c\udf31\", \"Good Player \u26bd\", \"Football Expert \ud83c\udfc6\", \"Football Legend \ud83c\udf1f\"],\r\n    result_msgs: [\r\n      \"Keep practicing, you'll improve!\",\r\n      \"Good football knowledge, keep going!\",\r\n      \"Impressive! You know your football.\",\r\n      \"Extraordinary! You're a true legend!\"\r\n    ],\r\n    levels: [\"Beginner\", \"Confirmed Player\", \"Expert\", \"Football Legend\"],\r\n    share_text: (score, ref) => `\u26bd I scored ${score}\/10 on FootballQuiz Pro! Can you beat me? \ud83c\udfc6 Play here: https:\/\/footballquiz.pro?ref=${ref}`\r\n  },\r\n  es: {\r\n    subtitle: \"Quiz de F\u00fatbol Definitivo\",\r\n    play: \"JUGAR AHORA\",\r\n    leaderboard: \"Clasificaci\u00f3n\",\r\n    tournament: \"Torneo\",\r\n    lang: \"Idioma\",\r\n    theme: \"Tema\",\r\n    ranking: \"CLASIFICACI\u00d3N\",\r\n    \"tournament-title\": \"TORNEO\",\r\n    weekly: \"TORNEO SEMANAL\",\r\n    \"afcon-cup\": \"COPA SEMANAL\",\r\n    \"to-win\": \"para ganar\",\r\n    days: \"D\u00cdAS\",\r\n    hours: \"HORAS\",\r\n    mins: \"MIN\",\r\n    secs: \"SEG\",\r\n    \"coming-soon\": \"Pr\u00f3ximamente\",\r\n    \"top-players\": \"TOP JUGADORES\",\r\n    \"how-join\": \"\u00bfC\u00d3MO PARTICIPAR?\",\r\n    \"how-text\": \"1. Consigue 8\/10 o m\u00e1s<br>2. Juega durante la semana del torneo<br>3. El mejor puntaje gana<br>4. \u00a1Registro gratuito!\",\r\n    \"choose-mode\": \"ELEGIR MODO\",\r\n    \"game-mode\": \"Modo de juego\",\r\n    \"mode-clubs\": \"Clubes y Naciones\",\r\n    \"mode-clubs-desc\": \"Logos, estadios, banderas\",\r\n    \"mode-players\": \"Jugadores y Leyendas\",\r\n    \"mode-players-desc\": \"Estrellas e iconos\",\r\n    \"mode-competitions\": \"Competiciones\",\r\n    \"mode-competitions-desc\": \"Copas y ligas\",\r\n    \"mode-history\": \"Historia\",\r\n    \"mode-history-desc\": \"Momentos legendarios\",\r\n    difficulty: \"Dificultad\",\r\n    easy: \"\ud83d\udfe2 F\u00e1cil\",\r\n    medium: \"\ud83d\udfe1 Medio\",\r\n    hard: \"\ud83d\udd34 Dif\u00edcil\",\r\n    expert: \"\ud83d\udc80 Experto\",\r\n    start: \"EMPEZAR QUIZ\",\r\n    \"out-of\": \"\/10\",\r\n    \"xp-earned\": \"XP ganados\",\r\n    \"share-wa\": \"Compartir en WhatsApp\",\r\n    replay: \"Jugar de nuevo\",\r\n    home: \"\ud83c\udfe0 Inicio\",\r\n    \"select-lang\": \"SELECCIONAR IDIOMA\",\r\n    close: \"Cerrar\",\r\n    \"ad-title\": \"FootballQuiz PRO+\",\r\n    \"ad-desc\": \"\u00a1Desbloquea el modo Torneo, quizzes ilimitados y clasificaciones exclusivas con la versi\u00f3n Premium!\",\r\n    \"ad-cta\": \"\ud83d\udc8e Ser Premium\",\r\n    \"ad-skip\": \"Continuar gratis\",\r\n    \"stat-played\": \"Jugados\",\r\n    \"stat-best\": \"Mejor\",\r\n    \"stat-avg\": \"Med\/10\",\r\n    correct_msgs: [\"\u00a1Excelente! \ud83c\udfaf\", \"\u00a1Bravo! \u26bd\", \"\u00a1Perfecto! \ud83c\udfc6\", \"\u00a1Brillante! \u2b50\"],\r\n    wrong_msgs: [\"\u00a1Fallaste! Respuesta correcta: \", \"\u00a1L\u00e1stima! Era: \", \"\u00a1Esta vez no! Respuesta: \"],\r\n    result_titles: [\"Principiante \ud83c\udf31\", \"Buen Jugador \u26bd\", \"Experto en F\u00fatbol \ud83c\udfc6\", \"Leyenda del F\u00fatbol \ud83c\udf1f\"],\r\n    result_msgs: [\r\n      \"\u00a1Sigue practicando, mejorar\u00e1s!\",\r\n      \"Buen conocimiento del f\u00fatbol, \u00a1contin\u00faa!\",\r\n      \"\u00a1Impresionante! Dominas el f\u00fatbol.\",\r\n      \"\u00a1Extraordinario! Eres una verdadera leyenda.\"\r\n    ],\r\n    levels: [\"Principiante\", \"Jugador Confirmado\", \"Experto\", \"Leyenda del F\u00fatbol\"],\r\n    share_text: (score, ref) => `\u26bd \u00a1Hice ${score}\/10 en FootballQuiz Pro! \u00bfPuedes superarme? \ud83c\udfc6 Juega aqu\u00ed: https:\/\/footballquiz.pro?ref=${ref}`\r\n  },\r\n  pt: {\r\n    subtitle: \"Quiz de Futebol Definitivo\",\r\n    play: \"JOGAR AGORA\",\r\n    leaderboard: \"Classifica\u00e7\u00e3o\",\r\n    tournament: \"Torneio\",\r\n    lang: \"Idioma\",\r\n    theme: \"Tema\",\r\n    ranking: \"CLASSIFICA\u00c7\u00c3O\",\r\n    \"tournament-title\": \"TORNEIO\",\r\n    weekly: \"TORNEIO SEMANAL\",\r\n    \"afcon-cup\": \"COPA SEMANAL\",\r\n    \"to-win\": \"a ganhar\",\r\n    days: \"DIAS\",\r\n    hours: \"HORAS\",\r\n    mins: \"MIN\",\r\n    secs: \"SEG\",\r\n    \"coming-soon\": \"Em breve\",\r\n    \"top-players\": \"TOP JOGADORES\",\r\n    \"how-join\": \"COMO PARTICIPAR?\",\r\n    \"how-text\": \"1. Fa\u00e7a 8\/10 ou mais<br>2. Jogue durante a semana do torneio<br>3. O melhor resultado ganha o pr\u00eamio<br>4. Inscri\u00e7\u00e3o gratuita!\",\r\n    \"choose-mode\": \"ESCOLHER MODO\",\r\n    \"game-mode\": \"Modo de jogo\",\r\n    \"mode-clubs\": \"Clubes e Na\u00e7\u00f5es\",\r\n    \"mode-clubs-desc\": \"Logos, est\u00e1dios, bandeiras\",\r\n    \"mode-players\": \"Jogadores e Lendas\",\r\n    \"mode-players-desc\": \"Estrelas e \u00edcones\",\r\n    \"mode-competitions\": \"Competi\u00e7\u00f5es\",\r\n    \"mode-competitions-desc\": \"Copas e campeonatos\",\r\n    \"mode-history\": \"Hist\u00f3ria\",\r\n    \"mode-history-desc\": \"Momentos lend\u00e1rios\",\r\n    difficulty: \"Dificuldade\",\r\n    easy: \"\ud83d\udfe2 F\u00e1cil\",\r\n    medium: \"\ud83d\udfe1 M\u00e9dio\",\r\n    hard: \"\ud83d\udd34 Dif\u00edcil\",\r\n    expert: \"\ud83d\udc80 Expert\",\r\n    start: \"COME\u00c7AR QUIZ\",\r\n    \"out-of\": \"\/10\",\r\n    \"xp-earned\": \"XP ganhos\",\r\n    \"share-wa\": \"Compartilhar no WhatsApp\",\r\n    replay: \"Jogar Novamente\",\r\n    home: \"\ud83c\udfe0 In\u00edcio\",\r\n    \"select-lang\": \"SELECIONAR IDIOMA\",\r\n    close: \"Fechar\",\r\n    \"ad-title\": \"FootballQuiz PRO+\",\r\n    \"ad-desc\": \"Desbloqueie o modo Torneio, quizzes ilimitados e classifica\u00e7\u00f5es exclusivas com a vers\u00e3o Premium!\",\r\n    \"ad-cta\": \"\ud83d\udc8e Ir Premium\",\r\n    \"ad-skip\": \"Continuar gratuitamente\",\r\n    \"stat-played\": \"Jogados\",\r\n    \"stat-best\": \"Melhor\",\r\n    \"stat-avg\": \"M\u00e9d\/10\",\r\n    correct_msgs: [\"Excelente! \ud83c\udfaf\", \"Bravo! \u26bd\", \"Perfeito! \ud83c\udfc6\", \"Brilhante! \u2b50\"],\r\n    wrong_msgs: [\"Errou! Resposta correta: \", \"Que pena! Era: \", \"Desta vez n\u00e3o! Resposta: \"],\r\n    result_titles: [\"Iniciante \ud83c\udf31\", \"Bom Jogador \u26bd\", \"Expert em Futebol \ud83c\udfc6\", \"Lenda do Futebol \ud83c\udf1f\"],\r\n    result_msgs: [\r\n      \"Continue praticando, vai melhorar!\",\r\n      \"Bom conhecimento de futebol, continue!\",\r\n      \"Impressionante! Voc\u00ea domina o futebol.\",\r\n      \"Extraordin\u00e1rio! Voc\u00ea \u00e9 uma verdadeira lenda!\"\r\n    ],\r\n    levels: [\"Iniciante\", \"Jogador Confirmado\", \"Expert\", \"Lenda do Futebol\"],\r\n    share_text: (score, ref) => `\u26bd Fiz ${score}\/10 no FootballQuiz Pro! Consegues me superar? \ud83c\udfc6 Joga aqui: https:\/\/footballquiz.pro?ref=${ref}`\r\n  },\r\n  ar: {\r\n    subtitle: \"\u0627\u062e\u062a\u0628\u0627\u0631 \u0643\u0631\u0629 \u0627\u0644\u0642\u062f\u0645 \u0627\u0644\u0623\u0642\u0635\u0649\",\r\n    play: \"\u0627\u0644\u0639\u0628 \u0627\u0644\u0622\u0646\",\r\n    leaderboard: \"\u0627\u0644\u062a\u0631\u062a\u064a\u0628\",\r\n    tournament: \"\u0628\u0637\u0648\u0644\u0629\",\r\n    lang: \"\u0627\u0644\u0644\u063a\u0629\",\r\n    theme: \"\u0627\u0644\u0645\u0638\u0647\u0631\",\r\n    ranking: \"\u062a\u0631\u062a\u064a\u0628 \u0627\u0644\u0644\u0627\u0639\u0628\u064a\u0646\",\r\n    \"tournament-title\": \"\u0627\u0644\u0628\u0637\u0648\u0644\u0629\",\r\n    weekly: \"\u0628\u0637\u0648\u0644\u0629 \u0627\u0644\u0623\u0633\u0628\u0648\u0639\",\r\n    \"afcon-cup\": \"\u0643\u0623\u0633 \u0627\u0644\u0623\u0633\u0628\u0648\u0639\",\r\n    \"to-win\": \"\u0644\u0644\u0641\u0648\u0632\",\r\n    days: \"\u0623\u064a\u0627\u0645\",\r\n    hours: \"\u0633\u0627\u0639\u0627\u062a\",\r\n    mins: \"\u062f\u0642\u0627\u0626\u0642\",\r\n    secs: \"\u062b\u0648\u0627\u0646\u064a\",\r\n    \"coming-soon\": \"\u0642\u0631\u064a\u0628\u0627\u064b\",\r\n    \"top-players\": \"\u0623\u0641\u0636\u0644 \u0627\u0644\u0644\u0627\u0639\u0628\u064a\u0646\",\r\n    \"how-join\": \"\u0643\u064a\u0641 \u062a\u0634\u0627\u0631\u0643\u061f\",\r\n    \"how-text\": \"1. \u0627\u062d\u0635\u0644 \u0639\u0644\u0649 8\/10 \u0623\u0648 \u0623\u0643\u062b\u0631<br>2. \u0627\u0644\u0639\u0628 \u062e\u0644\u0627\u0644 \u0623\u0633\u0628\u0648\u0639 \u0627\u0644\u0628\u0637\u0648\u0644\u0629<br>3. \u0623\u0641\u0636\u0644 \u0646\u062a\u064a\u062c\u0629 \u062a\u0641\u0648\u0632 \u0628\u0627\u0644\u062c\u0627\u0626\u0632\u0629<br>4. \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0645\u062c\u0627\u0646\u064a!\",\r\n    \"choose-mode\": \"\u0627\u062e\u062a\u0631 \u0627\u0644\u0648\u0636\u0639\",\r\n    \"game-mode\": \"\u0648\u0636\u0639 \u0627\u0644\u0644\u0639\u0628\u0629\",\r\n    \"mode-clubs\": \"\u0627\u0644\u0623\u0646\u062f\u064a\u0629 \u0648\u0627\u0644\u0645\u0646\u062a\u062e\u0628\u0627\u062a\",\r\n    \"mode-clubs-desc\": \"\u0627\u0644\u0634\u0639\u0627\u0631\u0627\u062a \u0648\u0627\u0644\u0645\u0644\u0627\u0639\u0628 \u0648\u0627\u0644\u0623\u0639\u0644\u0627\u0645\",\r\n    \"mode-players\": \"\u0627\u0644\u0644\u0627\u0639\u0628\u0648\u0646 \u0648\u0627\u0644\u0623\u0633\u0627\u0637\u064a\u0631\",\r\n    \"mode-players-desc\": \"\u0627\u0644\u0646\u062c\u0648\u0645 \u0648\u0627\u0644\u0623\u064a\u0642\u0648\u0646\u0627\u062a\",\r\n    \"mode-competitions\": \"\u0627\u0644\u0628\u0637\u0648\u0644\u0627\u062a\",\r\n    \"mode-competitions-desc\": \"\u0627\u0644\u0643\u0624\u0648\u0633 \u0648\u0627\u0644\u062f\u0648\u0631\u064a\u0627\u062a\",\r\n    \"mode-history\": \"\u0627\u0644\u062a\u0627\u0631\u064a\u062e\",\r\n    \"mode-history-desc\": \"\u0627\u0644\u0644\u062d\u0638\u0627\u062a \u0627\u0644\u0623\u0633\u0637\u0648\u0631\u064a\u0629\",\r\n    difficulty: \"\u0627\u0644\u0635\u0639\u0648\u0628\u0629\",\r\n    easy: \"\ud83d\udfe2 \u0633\u0647\u0644\",\r\n    medium: \"\ud83d\udfe1 \u0645\u062a\u0648\u0633\u0637\",\r\n    hard: \"\ud83d\udd34 \u0635\u0639\u0628\",\r\n    expert: \"\ud83d\udc80 \u062e\u0628\u064a\u0631\",\r\n    start: \"\u0627\u0628\u062f\u0623 \u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631\",\r\n    \"out-of\": \"\/10\",\r\n    \"xp-earned\": \"\u0646\u0642\u0627\u0637 \u0627\u0644\u062e\u0628\u0631\u0629 \u0627\u0644\u0645\u0643\u062a\u0633\u0628\u0629\",\r\n    \"share-wa\": \"\u0645\u0634\u0627\u0631\u0643\u0629 \u0639\u0644\u0649 \u0648\u0627\u062a\u0633\u0627\u0628\",\r\n    replay: \"\u0627\u0644\u0639\u0628 \u0645\u062c\u062f\u062f\u0627\u064b\",\r\n    home: \"\ud83c\udfe0 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629\",\r\n    \"select-lang\": \"\u0627\u062e\u062a\u0631 \u0627\u0644\u0644\u063a\u0629\",\r\n    close: \"\u0625\u063a\u0644\u0627\u0642\",\r\n    \"ad-title\": \"FootballQuiz PRO+\",\r\n    \"ad-desc\": \"\u0627\u0641\u062a\u062d \u0648\u0636\u0639 \u0627\u0644\u0628\u0637\u0648\u0644\u0629 \u0648\u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631\u0627\u062a \u063a\u064a\u0631 \u0627\u0644\u0645\u062d\u062f\u0648\u062f\u0629 \u0648\u0627\u0644\u062a\u0635\u0646\u064a\u0641\u0627\u062a \u0627\u0644\u062d\u0635\u0631\u064a\u0629 \u0645\u0639 \u0627\u0644\u0646\u0633\u062e\u0629 \u0627\u0644\u0645\u0645\u064a\u0632\u0629!\",\r\n    \"ad-cta\": \"\ud83d\udc8e \u0627\u062d\u0635\u0644 \u0639\u0644\u0649 \u0627\u0644\u0645\u0645\u064a\u0632\u0629\",\r\n    \"ad-skip\": \"\u0627\u0644\u0627\u0633\u062a\u0645\u0631\u0627\u0631 \u0645\u062c\u0627\u0646\u0627\u064b\",\r\n    \"stat-played\": \"\u0627\u0644\u0644\u0639\u0628\u0627\u062a\",\r\n    \"stat-best\": \"\u0627\u0644\u0623\u0641\u0636\u0644\",\r\n    \"stat-avg\": \"\u0627\u0644\u0645\u062a\u0648\u0633\u0637\",\r\n    correct_msgs: [\"\u0645\u0645\u062a\u0627\u0632! \ud83c\udfaf\", \"\u0631\u0627\u0626\u0639! \u26bd\", \"\u0645\u062b\u0627\u0644\u064a! \ud83c\udfc6\", \"\u0631\u0627\u0626\u0639 \u062c\u062f\u0627\u064b! \u2b50\"],\r\n    wrong_msgs: [\"\u062e\u0637\u0623! \u0627\u0644\u0625\u062c\u0627\u0628\u0629 \u0627\u0644\u0635\u062d\u064a\u062d\u0629: \", \"\u0644\u0644\u0623\u0633\u0641! \u0643\u0627\u0646\u062a: \", \"\u0644\u064a\u0633 \u0647\u0630\u0647 \u0627\u0644\u0645\u0631\u0629! \u0627\u0644\u0625\u062c\u0627\u0628\u0629: \"],\r\n    result_titles: [\"\u0645\u0628\u062a\u062f\u0626 \ud83c\udf31\", \"\u0644\u0627\u0639\u0628 \u062c\u064a\u062f \u26bd\", \"\u062e\u0628\u064a\u0631 \u0643\u0631\u0629 \u0627\u0644\u0642\u062f\u0645 \ud83c\udfc6\", \"\u0623\u0633\u0637\u0648\u0631\u0629 \u0643\u0631\u0629 \u0627\u0644\u0642\u062f\u0645 \ud83c\udf1f\"],\r\n    result_msgs: [\r\n      \"\u0627\u0633\u062a\u0645\u0631 \u0641\u064a \u0627\u0644\u062a\u062f\u0631\u0628 \u0648\u0633\u062a\u062a\u062d\u0633\u0646!\",\r\n      \"\u0645\u0639\u0631\u0641\u0629 \u062c\u064a\u062f\u0629 \u0628\u0643\u0631\u0629 \u0627\u0644\u0642\u062f\u0645\u060c \u0627\u0633\u062a\u0645\u0631!\",\r\n      \"\u0645\u0630\u0647\u0644! \u0623\u0646\u062a \u062a\u062a\u0642\u0646 \u0643\u0631\u0629 \u0627\u0644\u0642\u062f\u0645.\",\r\n      \"\u0627\u0633\u062a\u062b\u0646\u0627\u0626\u064a! \u0623\u0646\u062a \u0623\u0633\u0637\u0648\u0631\u0629 \u062d\u0642\u064a\u0642\u064a\u0629!\"\r\n    ],\r\n    levels: [\"\u0645\u0628\u062a\u062f\u0626\", \"\u0644\u0627\u0639\u0628 \u0645\u062a\u0642\u062f\u0645\", \"\u062e\u0628\u064a\u0631\", \"\u0623\u0633\u0637\u0648\u0631\u0629 \u0643\u0631\u0629 \u0627\u0644\u0642\u062f\u0645\"],\r\n    share_text: (score, ref) => `\u26bd \u062d\u0635\u0644\u062a \u0639\u0644\u0649 ${score}\/10 \u0641\u064a FootballQuiz Pro! \u0647\u0644 \u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u062a\u063a\u0644\u0628 \u0639\u0644\u064a\u0651\u061f \ud83c\udfc6 \u0627\u0644\u0639\u0628 \u0647\u0646\u0627: https:\/\/footballquiz.pro?ref=${ref}`\r\n  }\r\n};\r\n\r\n\/* ============================================================\r\n   QUESTIONS DATABASE\r\n============================================================ *\/\r\nconst QUESTIONS_DB = {\r\n  clubs: [\r\n    {\r\n      q: { fr:\"Quel club a remport\u00e9 le plus de Ligues des Champions?\", en:\"Which club has won the most Champions Leagues?\", es:\"\u00bfQu\u00e9 club ha ganado m\u00e1s Ligas de Campeones?\", pt:\"Qual clube ganhou mais Ligas dos Campe\u00f5es?\", ar:\"\u0623\u064a \u0646\u0627\u062f\u064d \u0641\u0627\u0632 \u0628\u0623\u0643\u0628\u0631 \u0639\u062f\u062f \u0645\u0646 \u062f\u0648\u0631\u064a \u0623\u0628\u0637\u0627\u0644 \u0623\u0648\u0631\u0648\u0628\u0627\u061f\" },\r\n      choices: [\"Real Madrid\", \"Liverpool\", \"Barcelona\", \"Bayern Munich\"],\r\n      correct: 0, emoji: \"\ud83c\udfc6\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"De quelle ville est le club de Manchester United?\", en:\"From which city is Manchester United?\", es:\"\u00bfDe qu\u00e9 ciudad es el Manchester United?\", pt:\"De que cidade \u00e9 o Manchester United?\", ar:\"\u0645\u0646 \u0623\u064a \u0645\u062f\u064a\u0646\u0629 \u064a\u0646\u062a\u0645\u064a \u0645\u0627\u0646\u0634\u0633\u062a\u0631 \u064a\u0648\u0646\u0627\u064a\u062a\u062f\u061f\" },\r\n      choices: [\"Liverpool\", \"London\", \"Manchester\", \"Leeds\"],\r\n      correct: 2, emoji: \"\ud83c\udfdf\ufe0f\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel est le surnom du FC Barcelona?\", en:\"What is FC Barcelona's nickname?\", es:\"\u00bfCu\u00e1l es el apodo del FC Barcelona?\", pt:\"Qual \u00e9 o apelido do FC Barcelona?\", ar:\"\u0645\u0627 \u0647\u0648 \u0644\u0642\u0628 \u0646\u0627\u062f\u064a \u0628\u0631\u0634\u0644\u0648\u0646\u0629\u061f\" },\r\n      choices: [\"Los Blancos\", \"Los Cules\", \"Los Rojiblancos\", \"Los Azulones\"],\r\n      correct: 1, emoji: \"\ud83d\udd35\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Dans quel stade joue la Juventus FC?\", en:\"In which stadium does Juventus FC play?\", es:\"\u00bfEn qu\u00e9 estadio juega la Juventus FC?\", pt:\"Em que est\u00e1dio joga a Juventus FC?\", ar:\"\u0641\u064a \u0623\u064a \u0645\u0644\u0639\u0628 \u064a\u0644\u0639\u0628 \u0646\u0627\u062f\u064a \u064a\u0648\u0641\u0646\u062a\u0648\u0633\u061f\" },\r\n      choices: [\"San Siro\", \"Olimpico\", \"Allianz Stadium\", \"Maradona\"],\r\n      correct: 2, emoji: \"\u26ab\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel club africain a remport\u00e9 la CAN des clubs le plus souvent?\", en:\"Which African club won the CAF Champions League most often?\", es:\"\u00bfQu\u00e9 club africano gan\u00f3 m\u00e1s veces la Liga de Campeones de la CAF?\", pt:\"Qual clube africano ganhou mais vezes a Liga dos Campe\u00f5es da CAF?\", ar:\"\u0623\u064a \u0646\u0627\u062f\u064d \u0623\u0641\u0631\u064a\u0642\u064a \u0641\u0627\u0632 \u0628\u062f\u0648\u0631\u064a \u0623\u0628\u0637\u0627\u0644 \u0623\u0641\u0631\u064a\u0642\u064a\u0627 \u0623\u0643\u062b\u0631 \u0645\u0631\u0629\u061f\" },\r\n      choices: [\"Al Ahly\", \"Wydad\", \"Zamalek\", \"TP Mazembe\"],\r\n      correct: 0, emoji: \"\ud83c\udf0d\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel est le plus grand stade du monde?\", en:\"What is the largest stadium in the world?\", es:\"\u00bfCu\u00e1l es el estadio m\u00e1s grande del mundo?\", pt:\"Qual \u00e9 o maior est\u00e1dio do mundo?\", ar:\"\u0645\u0627 \u0647\u0648 \u0623\u0643\u0628\u0631 \u0645\u0644\u0639\u0628 \u0641\u064a \u0627\u0644\u0639\u0627\u0644\u0645\u061f\" },\r\n      choices: [\"Camp Nou\", \"Rungrado 1st of May\", \"Wembley\", \"Rose Bowl\"],\r\n      correct: 1, emoji: \"\ud83c\udfdf\ufe0f\", diff: \"hard\"\r\n    },\r\n    {\r\n      q: { fr:\"PSG a \u00e9t\u00e9 fond\u00e9 en quelle ann\u00e9e?\", en:\"In which year was PSG founded?\", es:\"\u00bfEn qu\u00e9 a\u00f1o fue fundado el PSG?\", pt:\"Em que ano foi fundado o PSG?\", ar:\"\u0641\u064a \u0623\u064a \u0639\u0627\u0645 \u062a\u0623\u0633\u0633 \u0628\u0627\u0631\u064a\u0633 \u0633\u0627\u0646 \u062c\u064a\u0631\u0645\u0627\u0646\u061f\" },\r\n      choices: [\"1963\", \"1970\", \"1975\", \"1980\"],\r\n      correct: 1, emoji: \"\ud83d\uddfc\", diff: \"hard\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel club a le record d'invincibilit\u00e9 en Premier League (saison enti\u00e8re)?\", en:\"Which club holds the Premier League unbeaten record for a whole season?\", es:\"\u00bfQu\u00e9 club tiene el r\u00e9cord de invicto en la Premier League?\", pt:\"Qual clube tem o recorde de invencibilidade na Premier League?\", ar:\"\u0623\u064a \u0646\u0627\u062f\u064d \u064a\u062d\u0645\u0644 \u0631\u0642\u0645 \u0627\u0644\u0645\u0648\u0633\u0645 \u0627\u0644\u0643\u0627\u0645\u0644 \u062f\u0648\u0646 \u0647\u0632\u064a\u0645\u0629 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u064a \u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u061f\" },\r\n      choices: [\"Chelsea\", \"Arsenal\", \"Manchester City\", \"Manchester United\"],\r\n      correct: 1, emoji: \"\ud83d\udd34\", diff: \"expert\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel club a surnomm\u00e9 son stade 'Anfield'?\", en:\"Which club's stadium is named 'Anfield'?\", es:\"\u00bfEl estadio de qu\u00e9 club se llama 'Anfield'?\", pt:\"O est\u00e1dio de qual clube se chama 'Anfield'?\", ar:\"\u0645\u0644\u0639\u0628 \u0623\u064a \u0646\u0627\u062f\u064d \u064a\u064f\u0633\u0645\u0649 '\u0623\u0646\u0641\u064a\u0644\u062f'\u061f\" },\r\n      choices: [\"Everton\", \"Liverpool\", \"Arsenal\", \"Aston Villa\"],\r\n      correct: 1, emoji: \"\ud83d\udd34\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel est le club le plus titr\u00e9 en Serie A?\", en:\"Which is the most titled club in Serie A?\", es:\"\u00bfCu\u00e1l es el club m\u00e1s laureado de la Serie A?\", pt:\"Qual \u00e9 o clube mais titulado na Serie A?\", ar:\"\u0645\u0646 \u0647\u0648 \u0627\u0644\u0646\u0627\u062f\u064a \u0627\u0644\u0623\u0643\u062b\u0631 \u062a\u062a\u0648\u064a\u062c\u0627\u064b \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u064a \u0627\u0644\u0625\u064a\u0637\u0627\u0644\u064a\u061f\" },\r\n      choices: [\"AC Milan\", \"Inter Milan\", \"Juventus\", \"AS Roma\"],\r\n      correct: 2, emoji: \"\ud83c\uddee\ud83c\uddf9\", diff: \"medium\"\r\n    }\r\n  ],\r\n  players: [\r\n    {\r\n      q: { fr:\"Combien de Ballons d'Or Lionel Messi a-t-il remport\u00e9?\", en:\"How many Ballon d'Or has Lionel Messi won?\", es:\"\u00bfCu\u00e1ntos Balones de Oro ha ganado Lionel Messi?\", pt:\"Quantas Bolas de Ouro Lionel Messi ganhou?\", ar:\"\u0643\u0645 \u0645\u0631\u0629 \u0641\u0627\u0632 \u0644\u064a\u0648\u0646\u064a\u0644 \u0645\u064a\u0633\u064a \u0628\u062c\u0627\u0626\u0632\u0629 \u0627\u0644\u0643\u0631\u0629 \u0627\u0644\u0630\u0647\u0628\u064a\u0629\u061f\" },\r\n      choices: [\"6\", \"7\", \"8\", \"9\"],\r\n      correct: 2, emoji: \"\ud83d\udc10\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel est le vrai pr\u00e9nom de Ronaldo (R9)?\", en:\"What is the real first name of Ronaldo (R9)?\", es:\"\u00bfCu\u00e1l es el nombre real de Ronaldo (R9)?\", pt:\"Qual \u00e9 o nome real de Ronaldo (R9)?\", ar:\"\u0645\u0627 \u0647\u0648 \u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u062d\u0642\u064a\u0642\u064a \u0644\u0644\u0627\u0639\u0628 \u0631\u0648\u0646\u0627\u0644\u062f\u0648 (R9)\u061f\" },\r\n      choices: [\"Cristiano\", \"Ronaldo\", \"Roberto\", \"Robson\"],\r\n      correct: 1, emoji: \"\ud83c\udde7\ud83c\uddf7\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel joueur a le plus de buts en Ligue des Champions?\", en:\"Which player has scored the most Champions League goals?\", es:\"\u00bfQu\u00e9 jugador tiene m\u00e1s goles en la Liga de Campeones?\", pt:\"Qual jogador marcou mais gols na Liga dos Campe\u00f5es?\", ar:\"\u0645\u0646 \u0633\u062c\u0651\u0644 \u0623\u0643\u062b\u0631 \u0639\u062f\u062f \u0623\u0647\u062f\u0627\u0641 \u0641\u064a \u062f\u0648\u0631\u064a \u0623\u0628\u0637\u0627\u0644 \u0623\u0648\u0631\u0648\u0628\u0627\u061f\" },\r\n      choices: [\"Messi\", \"Ronaldo\", \"Lewandowski\", \"Raul\"],\r\n      correct: 1, emoji: \"\u26bd\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"De quel pays est originaire Didier Drogba?\", en:\"Which country is Didier Drogba originally from?\", es:\"\u00bfDe qu\u00e9 pa\u00eds es oriundo Didier Drogba?\", pt:\"De que pa\u00eds \u00e9 Didier Drogba?\", ar:\"\u0645\u0646 \u0623\u064a \u0628\u0644\u062f \u064a\u0646\u062d\u062f\u0631 \u062f\u064a\u062f\u064a\u064a\u0647 \u062f\u0631\u0648\u063a\u0628\u0627\u061f\" },\r\n      choices: [\"Ghana\", \"S\u00e9n\u00e9gal\", \"Nigeria\", \"C\u00f4te d'Ivoire\"],\r\n      correct: 3, emoji: \"\ud83c\udf0d\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"Qui a marqu\u00e9 le but de la main de Dieu en 1986?\", en:\"Who scored the Hand of God goal in 1986?\", es:\"\u00bfQui\u00e9n marc\u00f3 el gol de la Mano de Dios en 1986?\", pt:\"Quem marcou o gol da M\u00e3o de Deus em 1986?\", ar:\"\u0645\u0646 \u0633\u062c\u0651\u0644 \u0647\u062f\u0641 '\u064a\u062f \u0627\u0644\u0644\u0647' \u0639\u0627\u0645 1986\u061f\" },\r\n      choices: [\"Pel\u00e9\", \"Zidane\", \"Maradona\", \"Ronaldo\"],\r\n      correct: 2, emoji: \"\u270b\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel joueur africain a remport\u00e9 le Ballon d'Or africain le plus de fois?\", en:\"Which African player has won the African Ballon d'Or most times?\", es:\"\u00bfQu\u00e9 jugador africano ha ganado m\u00e1s veces el Bal\u00f3n de Oro africano?\", pt:\"Qual jogador africano ganhou mais vezes a Bola de Ouro africana?\", ar:\"\u0645\u0646 \u0647\u0648 \u0627\u0644\u0644\u0627\u0639\u0628 \u0627\u0644\u0623\u0641\u0631\u064a\u0642\u064a \u0627\u0644\u0623\u0643\u062b\u0631 \u0641\u0648\u0632\u0627\u064b \u0628\u062c\u0627\u0626\u0632\u0629 \u0627\u0644\u0643\u0631\u0629 \u0627\u0644\u0630\u0647\u0628\u064a\u0629 \u0627\u0644\u0623\u0641\u0631\u064a\u0642\u064a\u0629\u061f\" },\r\n      choices: [\"Salah\", \"Man\u00e9\", \"Drogba\", \"Samuel Eto'o\"],\r\n      correct: 3, emoji: \"\ud83c\udf0d\", diff: \"hard\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel joueur est surnomm\u00e9 'La Pulga'?\", en:\"Which player is nicknamed 'La Pulga'?\", es:\"\u00bfQu\u00e9 jugador es apodado 'La Pulga'?\", pt:\"Qual jogador \u00e9 apelidado de 'La Pulga'?\", ar:\"\u0645\u0646 \u0647\u0648 \u0627\u0644\u0644\u0627\u0639\u0628 \u0627\u0644\u0645\u0644\u0642\u0628 \u0628\u0640 '\u0627\u0644\u0628\u0631\u063a\u0648\u062b'\u061f\" },\r\n      choices: [\"Neymar\", \"Ronaldo\", \"Messi\", \"Mbapp\u00e9\"],\r\n      correct: 2, emoji: \"\ud83d\udc1c\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"En quelle ann\u00e9e Zinedine Zidane a-t-il mis son coup de t\u00eate m\u00e9morable en finale du Mondial?\", en:\"In which year did Zinedine Zidane perform his memorable headbutt in the World Cup final?\", es:\"\u00bfEn qu\u00e9 a\u00f1o Zinedine Zidane dio su memor\u00e1vel cabezazo en la final del Mundial?\", pt:\"Em que ano Zinedine Zidane deu sua cabe\u00e7ada memor\u00e1vel na final da Copa do Mundo?\", ar:\"\u0641\u064a \u0623\u064a \u0639\u0627\u0645 \u0646\u0641\u0651\u0630 \u0632\u064a\u062f\u0627\u0646 \u0631\u0623\u0633\u064a\u062a\u0647 \u0627\u0644\u0634\u0647\u064a\u0631\u0629 \u0641\u064a \u0646\u0647\u0627\u0626\u064a \u0643\u0623\u0633 \u0627\u0644\u0639\u0627\u0644\u0645\u061f\" },\r\n      choices: [\"1998\", \"2002\", \"2006\", \"2010\"],\r\n      correct: 2, emoji: \"\ud83c\uddeb\ud83c\uddf7\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel joueur br\u00e9silien est surnomm\u00e9 'O Rei'?\", en:\"Which Brazilian player is nicknamed 'O Rei'?\", es:\"\u00bfQu\u00e9 jugador brasile\u00f1o es apodado 'O Rei'?\", pt:\"Qual jogador brasileiro \u00e9 apelidado de 'O Rei'?\", ar:\"\u0623\u064a \u0644\u0627\u0639\u0628 \u0628\u0631\u0627\u0632\u064a\u0644\u064a \u064a\u064f\u0644\u0642\u0628 \u0628\u0640 '\u0627\u0644\u0645\u0644\u0643'\u061f\" },\r\n      choices: [\"Ronaldo\", \"Neymar\", \"Pel\u00e9\", \"Ronaldinho\"],\r\n      correct: 2, emoji: \"\ud83d\udc51\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"Qui a remport\u00e9 le titre de meilleur joueur de la Coupe du Monde 2022?\", en:\"Who won the Best Player award at the 2022 World Cup?\", es:\"\u00bfQui\u00e9n gan\u00f3 el premio al Mejor Jugador del Mundial 2022?\", pt:\"Quem ganhou o pr\u00eamio de Melhor Jogador da Copa do Mundo 2022?\", ar:\"\u0645\u0646 \u0641\u0627\u0632 \u0628\u062c\u0627\u0626\u0632\u0629 \u0623\u0641\u0636\u0644 \u0644\u0627\u0639\u0628 \u0641\u064a \u0643\u0623\u0633 \u0627\u0644\u0639\u0627\u0644\u0645 2022\u061f\" },\r\n      choices: [\"Mbapp\u00e9\", \"Ronaldo\", \"Messi\", \"Modric\"],\r\n      correct: 2, emoji: \"\ud83c\udfc6\", diff: \"medium\"\r\n    }\r\n  ],\r\n  competitions: [\r\n    {\r\n      q: { fr:\"Combien d'\u00e9quipes participent \u00e0 la phase finale de la Coupe du Monde FIFA?\", en:\"How many teams participate in the FIFA World Cup final phase?\", es:\"\u00bfCu\u00e1ntos equipos participan en la fase final de la Copa del Mundo FIFA?\", pt:\"Quantas equipes participam da fase final da Copa do Mundo FIFA?\", ar:\"\u0643\u0645 \u0641\u0631\u064a\u0642\u0627\u064b \u064a\u0634\u0627\u0631\u0643 \u0641\u064a \u0627\u0644\u0645\u0631\u062d\u0644\u0629 \u0627\u0644\u0646\u0647\u0627\u0626\u064a\u0629 \u0645\u0646 \u0643\u0623\u0633 \u0627\u0644\u0639\u0627\u0644\u0645 \u0644\u0643\u0631\u0629 \u0627\u0644\u0642\u062f\u0645\u061f\" },\r\n      choices: [\"24\", \"32\", \"36\", \"48\"],\r\n      correct: 1, emoji: \"\ud83c\udf0d\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel pays a remport\u00e9 le plus de Coupes du Monde?\", en:\"Which country has won the most World Cups?\", es:\"\u00bfQu\u00e9 pa\u00eds ha ganado m\u00e1s Copas del Mundo?\", pt:\"Qual pa\u00eds ganhou mais Copas do Mundo?\", ar:\"\u0623\u064a \u0628\u0644\u062f \u0641\u0627\u0632 \u0628\u0623\u0643\u0628\u0631 \u0639\u062f\u062f \u0645\u0646 \u0643\u0624\u0648\u0633 \u0627\u0644\u0639\u0627\u0644\u0645\u061f\" },\r\n      choices: [\"Allemagne\", \"Argentine\", \"France\", \"Br\u00e9sil\"],\r\n      correct: 3, emoji: \"\ud83c\udfc6\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"Quelle comp\u00e9tition continentale regroupe les clubs africains?\", en:\"Which continental competition groups African clubs?\", es:\"\u00bfQu\u00e9 competici\u00f3n continental agrupa a los clubes africanos?\", pt:\"Qual competi\u00e7\u00e3o continental agrupa os clubes africanos?\", ar:\"\u0645\u0627 \u0647\u064a \u0627\u0644\u0628\u0637\u0648\u0644\u0629 \u0627\u0644\u0642\u0627\u0631\u064a\u0629 \u0627\u0644\u062a\u064a \u062a\u0636\u0645 \u0627\u0644\u0623\u0646\u062f\u064a\u0629 \u0627\u0644\u0623\u0641\u0631\u064a\u0642\u064a\u0629\u061f\" },\r\n      choices: [\"Copa Libertadores\", \"CAF Champions League\", \"AFC Champions League\", \"CONCACAF\"],\r\n      correct: 1, emoji: \"\ud83c\udf0d\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"En quelle ann\u00e9e a eu lieu la premi\u00e8re Coupe du Monde?\", en:\"In which year was the first World Cup held?\", es:\"\u00bfEn qu\u00e9 a\u00f1o se celebr\u00f3 la primera Copa del Mundo?\", pt:\"Em que ano foi realizada a primeira Copa do Mundo?\", ar:\"\u0641\u064a \u0623\u064a \u0639\u0627\u0645 \u0623\u0642\u064a\u0645\u062a \u0623\u0648\u0644 \u0643\u0623\u0633 \u0639\u0627\u0644\u0645\u061f\" },\r\n      choices: [\"1926\", \"1930\", \"1934\", \"1938\"],\r\n      correct: 1, emoji: \"\ud83d\udcdc\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel pays a organis\u00e9 la Coupe du Monde 2022?\", en:\"Which country hosted the 2022 World Cup?\", es:\"\u00bfQu\u00e9 pa\u00eds organiz\u00f3 el Mundial 2022?\", pt:\"Qual pa\u00eds sediou a Copa do Mundo 2022?\", ar:\"\u0623\u064a \u0628\u0644\u062f \u0627\u0633\u062a\u0636\u0627\u0641 \u0643\u0623\u0633 \u0627\u0644\u0639\u0627\u0644\u0645 2022\u061f\" },\r\n      choices: [\"Arabie Saoudite\", \"\u00c9mirats Arabes Unis\", \"Qatar\", \"Bahre\u00efn\"],\r\n      correct: 2, emoji: \"\ud83c\udfdf\ufe0f\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel est le troph\u00e9e remis au vainqueur de la Champions League?\", en:\"What is the trophy given to the Champions League winner?\", es:\"\u00bfCu\u00e1l es el trofeo que se entrega al ganador de la Champions League?\", pt:\"Qual \u00e9 o trof\u00e9u dado ao vencedor da Champions League?\", ar:\"\u0645\u0627 \u0647\u064a \u0627\u0644\u0643\u0623\u0633 \u0627\u0644\u062a\u064a \u062a\u064f\u0645\u0646\u062d \u0644\u0628\u0637\u0644 \u062f\u0648\u0631\u064a \u0623\u0628\u0637\u0627\u0644 \u0623\u0648\u0631\u0648\u0628\u0627\u061f\" },\r\n      choices: [\"Coupe aux grandes oreilles\", \"Coupe d'Or\", \"Globe Dor\u00e9\", \"Bouclier d'Argent\"],\r\n      correct: 0, emoji: \"\ud83c\udfc6\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"La Copa Libertadores est organis\u00e9e sur quel continent?\", en:\"The Copa Libertadores is organized on which continent?\", es:\"La Copa Libertadores se organiza en qu\u00e9 continente?\", pt:\"A Copa Libertadores \u00e9 organizada em qual continente?\", ar:\"\u0639\u0644\u0649 \u0623\u064a \u0642\u0627\u0631\u0629 \u064a\u064f\u0642\u0627\u0645 \u0643\u0623\u0633 \u0644\u064a\u0628\u0631\u062a\u0627\u062f\u0648\u0631\u064a\u0633\u061f\" },\r\n      choices: [\"Europe\", \"Afrique\", \"Asie\", \"Am\u00e9rique du Sud\"],\r\n      correct: 3, emoji: \"\ud83c\udf0e\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"Quelle nation africaine a remport\u00e9 le plus de CAN?\", en:\"Which African nation has won the most AFCON?\", es:\"\u00bfQu\u00e9 naci\u00f3n africana ha ganado m\u00e1s Copas Africanas?\", pt:\"Qual na\u00e7\u00e3o africana ganhou mais CAN?\", ar:\"\u0623\u064a \u0623\u0645\u0629 \u0623\u0641\u0631\u064a\u0642\u064a\u0629 \u0641\u0627\u0632\u062a \u0628\u0623\u0643\u0628\u0631 \u0639\u062f\u062f \u0645\u0646 \u0643\u0624\u0648\u0633 \u0623\u0645\u0645 \u0623\u0641\u0631\u064a\u0642\u064a\u0627\u061f\" },\r\n      choices: [\"Nigeria\", \"S\u00e9n\u00e9gal\", \"\u00c9gypte\", \"Ghana\"],\r\n      correct: 2, emoji: \"\ud83c\udf0d\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Combien de fois la France a-t-elle remport\u00e9 la Coupe du Monde?\", en:\"How many times has France won the World Cup?\", es:\"\u00bfCu\u00e1ntas veces ha ganado Francia la Copa del Mundo?\", pt:\"Quantas vezes a Fran\u00e7a ganhou a Copa do Mundo?\", ar:\"\u0643\u0645 \u0645\u0631\u0629 \u0641\u0627\u0632\u062a \u0641\u0631\u0646\u0633\u0627 \u0628\u0643\u0623\u0633 \u0627\u0644\u0639\u0627\u0644\u0645\u061f\" },\r\n      choices: [\"1\", \"2\", \"3\", \"4\"],\r\n      correct: 1, emoji: \"\ud83c\uddeb\ud83c\uddf7\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel club a gagn\u00e9 la UEFA Champions League en 2023?\", en:\"Which club won the UEFA Champions League in 2023?\", es:\"\u00bfQu\u00e9 club gan\u00f3 la UEFA Champions League en 2023?\", pt:\"Qual clube ganhou a UEFA Champions League em 2023?\", ar:\"\u0623\u064a \u0646\u0627\u062f\u064d \u0641\u0627\u0632 \u0628\u062f\u0648\u0631\u064a \u0623\u0628\u0637\u0627\u0644 \u0623\u0648\u0631\u0648\u0628\u0627 \u0639\u0627\u0645 2023\u061f\" },\r\n      choices: [\"Barcelona\", \"Real Madrid\", \"Man City\", \"PSG\"],\r\n      correct: 2, emoji: \"\ud83c\udfc6\", diff: \"medium\"\r\n    }\r\n  ],\r\n  history: [\r\n    {\r\n      q: { fr:\"En quelle ann\u00e9e la 'Trag\u00e9die de Hillsborough' a-t-elle eu lieu?\", en:\"In which year did the Hillsborough tragedy occur?\", es:\"\u00bfEn qu\u00e9 a\u00f1o ocurri\u00f3 la tragedia de Hillsborough?\", pt:\"Em que ano ocorreu a trag\u00e9dia de Hillsborough?\", ar:\"\u0641\u064a \u0623\u064a \u0639\u0627\u0645 \u0648\u0642\u0639\u062a \u0645\u0623\u0633\u0627\u0629 \u0647\u064a\u0644\u0632\u0628\u0631\u0629\u061f\" },\r\n      choices: [\"1985\", \"1989\", \"1992\", \"1996\"],\r\n      correct: 1, emoji: \"\ud83d\udd6f\ufe0f\", diff: \"hard\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel pays a organis\u00e9 la Coupe du Monde 1998?\", en:\"Which country hosted the 1998 World Cup?\", es:\"\u00bfQu\u00e9 pa\u00eds organiz\u00f3 el Mundial 1998?\", pt:\"Qual pa\u00eds sediou a Copa do Mundo 1998?\", ar:\"\u0623\u064a \u0628\u0644\u062f \u0627\u0633\u062a\u0636\u0627\u0641 \u0643\u0623\u0633 \u0627\u0644\u0639\u0627\u0644\u0645 1998\u061f\" },\r\n      choices: [\"Allemagne\", \"Italie\", \"France\", \"Espagne\"],\r\n      correct: 2, emoji: \"\ud83c\uddeb\ud83c\uddf7\", diff: \"easy\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel but a d\u00e9clench\u00e9 la 'nuit des longs couteaux' au Bayern en 1999?\", en:\"In 1999, what historic final comeback did Man Utd complete against Bayern?\", es:\"\u00bfQu\u00e9 final \u00e9pica complet\u00f3 el Man Utd contra el Bayern en 1999?\", pt:\"Qual final \u00e9pica o Man Utd completou contra o Bayern em 1999?\", ar:\"\u0645\u0627 \u0647\u0648 \u0627\u0644\u0646\u0647\u0627\u0626\u064a \u0627\u0644\u0645\u0644\u062d\u0645\u064a \u0627\u0644\u0630\u064a \u0623\u0643\u0645\u0644\u0647 \u0645\u0627\u0646 \u064a\u0648\u0646\u0627\u064a\u062a\u062f \u0636\u062f \u0628\u0627\u064a\u0631\u0646 \u0639\u0627\u0645 1999\u061f\" },\r\n      choices: [\"0-1 \u2192 2-1\", \"1-0 \u2192 1-2\", \"0-0 \u2192 1-0\", \"1-1 apr\u00e8s prolongation\"],\r\n      correct: 0, emoji: \"\ud83c\udfad\", diff: \"expert\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel joueur a marqu\u00e9 le but gagnant pour la France lors du Mondial 1998?\", en:\"Which player scored the winning goal for France in the 1998 World Cup final?\", es:\"\u00bfQu\u00e9 jugador marc\u00f3 el gol ganador para Francia en la final del Mundial 1998?\", pt:\"Qual jogador marcou o gol vencedor para a Fran\u00e7a na final da Copa do Mundo 1998?\", ar:\"\u0645\u0646 \u0633\u062c\u0651\u0644 \u0627\u0644\u0647\u062f\u0641 \u0627\u0644\u0641\u0627\u0626\u0632 \u0644\u0641\u0631\u0646\u0633\u0627 \u0641\u064a \u0646\u0647\u0627\u0626\u064a \u0643\u0623\u0633 \u0627\u0644\u0639\u0627\u0644\u0645 1998\u061f\" },\r\n      choices: [\"Henry\", \"Desailly\", \"Zidane\", \"Platini\"],\r\n      correct: 2, emoji: \"\ud83c\udfc6\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Lors de quelle Coupe du Monde le Br\u00e9sil a-t-il subi la d\u00e9faite 1-7 face \u00e0 l'Allemagne?\", en:\"In which World Cup did Brazil suffer the 1-7 defeat against Germany?\", es:\"\u00bfEn qu\u00e9 Mundial sufri\u00f3 Brasil la derrota por 1-7 ante Alemania?\", pt:\"Em qual Copa do Mundo o Brasil sofreu a derrota de 1-7 para a Alemanha?\", ar:\"\u0641\u064a \u0623\u064a \u0643\u0623\u0633 \u0639\u0627\u0644\u0645 \u062a\u0644\u0642\u062a \u0627\u0644\u0628\u0631\u0627\u0632\u064a\u0644 \u0627\u0644\u0647\u0632\u064a\u0645\u0629 1-7 \u0623\u0645\u0627\u0645 \u0623\u0644\u0645\u0627\u0646\u064a\u0627\u061f\" },\r\n      choices: [\"2010\", \"2014\", \"2018\", \"2006\"],\r\n      correct: 1, emoji: \"\ud83d\udca5\", diff: \"medium\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel Africain a remport\u00e9 le Ballon d'Or 1995?\", en:\"Which African won the 1995 Ballon d'Or?\", es:\"\u00bfQu\u00e9 africano gan\u00f3 el Bal\u00f3n de Oro en 1995?\", pt:\"Qual africano ganhou a Bola de Ouro de 1995?\", ar:\"\u0645\u0646 \u0647\u0648 \u0627\u0644\u0623\u0641\u0631\u064a\u0642\u064a \u0627\u0644\u0641\u0627\u0626\u0632 \u0628\u0627\u0644\u0643\u0631\u0629 \u0627\u0644\u0630\u0647\u0628\u064a\u0629 \u0639\u0627\u0645 1995\u061f\" },\r\n      choices: [\"Weah\", \"Drogba\", \"Eto'o\", \"Man\u00e9\"],\r\n      correct: 0, emoji: \"\ud83c\udf0d\", diff: \"hard\"\r\n    },\r\n    {\r\n      q: { fr:\"Dans quel stade s'est jou\u00e9e la finale du Mondial 2006?\", en:\"In which stadium was the 2006 World Cup final played?\", es:\"\u00bfEn qu\u00e9 estadio se jug\u00f3 la final del Mundial 2006?\", pt:\"Em que est\u00e1dio foi jogada a final da Copa do Mundo 2006?\", ar:\"\u0641\u064a \u0623\u064a \u0645\u0644\u0639\u0628 \u0644\u064f\u0639\u0628\u062a \u0646\u0647\u0627\u0626\u064a \u0643\u0623\u0633 \u0627\u0644\u0639\u0627\u0644\u0645 2006\u061f\" },\r\n      choices: [\"Allianz Arena\", \"Olympiastadion Berlin\", \"Wembley\", \"San Siro\"],\r\n      correct: 1, emoji: \"\ud83c\udde9\ud83c\uddea\", diff: \"expert\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel joueur a invent\u00e9 la 'Macarena' c\u00e9l\u00e9bration apr\u00e8s un but?\", en:\"Which player invented the 'Macarena' goal celebration?\", es:\"\u00bfQu\u00e9 jugador invent\u00f3 la celebraci\u00f3n 'Macarena' tras un gol?\", pt:\"Qual jogador inventou a comemora\u00e7\u00e3o 'Macarena' ap\u00f3s um gol?\", ar:\"\u0645\u0646 \u0647\u0648 \u0627\u0644\u0644\u0627\u0639\u0628 \u0627\u0644\u0630\u064a \u0627\u0628\u062a\u0643\u0631 \u0627\u062d\u062a\u0641\u0627\u0644\u064a\u0629 '\u0627\u0644\u0645\u0627\u0643\u0627\u0631\u064a\u0646\u0627' \u0628\u0639\u062f \u062a\u0633\u062c\u064a\u0644 \u0647\u062f\u0641\u061f\" },\r\n      choices: [\"Robbie Fowler\", \"Roger Milla\", \"Bebeto\", \"Ronaldo\"],\r\n      correct: 2, emoji: \"\ud83d\udc83\", diff: \"hard\"\r\n    },\r\n    {\r\n      q: { fr:\"Quelle est la 'mauvaise' finale de CAN que la C\u00f4te d'Ivoire a remport\u00e9e en 2023?\", en:\"Which AFCON final did Ivory Coast win in 2023?\", es:\"\u00bfQu\u00e9 final de CAN gan\u00f3 Costa de Marfil en 2023?\", pt:\"Qual final da CAN a Costa do Marfim ganhou em 2023?\", ar:\"\u0623\u064a \u0646\u0647\u0627\u0626\u064a \u0644\u0628\u0637\u0648\u0644\u0629 \u0623\u0645\u0645 \u0623\u0641\u0631\u064a\u0642\u064a\u0627 \u0641\u0627\u0632\u062a \u0628\u0647 \u0643\u0648\u062a \u062f\u064a\u0641\u0648\u0627\u0631 \u0639\u0627\u0645 2023\u061f\" },\r\n      choices: [\"vs Nigeria 2-1\", \"vs S\u00e9n\u00e9gal 1-0\", \"vs \u00c9gypte 2-0\", \"vs Maroc 3-1\"],\r\n      correct: 0, emoji: \"\ud83c\udf0d\", diff: \"expert\"\r\n    },\r\n    {\r\n      q: { fr:\"Quel est le score le plus large de l'histoire de la Coupe du Monde?\", en:\"What is the highest score in World Cup history?\", es:\"\u00bfCu\u00e1l es la mayor goleada en la historia del Mundial?\", pt:\"Qual \u00e9 a maior goleada na hist\u00f3ria da Copa do Mundo?\", ar:\"\u0645\u0627 \u0647\u0648 \u0623\u0643\u0628\u0631 \u0641\u0627\u0631\u0642 \u0641\u064a \u0646\u062a\u064a\u062c\u0629 \u0641\u064a \u062a\u0627\u0631\u064a\u062e \u0643\u0623\u0633 \u0627\u0644\u0639\u0627\u0644\u0645\u061f\" },\r\n      choices: [\"8-0\", \"9-0\", \"10-1\", \"17-0\"],\r\n      correct: 2, emoji: \"\ud83d\udca5\", diff: \"expert\"\r\n    }\r\n  ]\r\n};\r\n\r\n\/* ============================================================\r\n   SIMULATED LEADERBOARD DATA\r\n============================================================ *\/\r\nconst LEADERBOARD_SIMULATED = [\r\n  { name: \"Moussa Diop\", score: 980, level: 3, avatar: \"\ud83e\udd81\" },\r\n  { name: \"Aminata Fall\", score: 950, level: 3, avatar: \"\u2b50\" },\r\n  { name: \"Cheikh Mbaye\", score: 920, level: 3, avatar: \"\ud83d\udd25\" },\r\n  { name: \"Fatou Ndiaye\", score: 900, level: 2, avatar: \"\ud83d\udc51\" },\r\n  { name: \"Ibrahim Sow\", score: 875, level: 2, avatar: \"\u26a1\" },\r\n  { name: \"Aissatou Ba\", score: 850, level: 2, avatar: \"\ud83c\udfaf\" },\r\n  { name: \"Omar Diallo\", score: 820, level: 2, avatar: \"\ud83c\udfc6\" },\r\n  { name: \"Mariam Kon\u00e9\", score: 800, level: 2, avatar: \"\ud83d\udcab\" },\r\n  { name: \"Seydou Traor\u00e9\", score: 770, level: 2, avatar: \"\ud83c\udf1f\" },\r\n  { name: \"Ndeye Seck\", score: 750, level: 1, avatar: \"\u26bd\" },\r\n  { name: \"Bassirou Niang\", score: 720, level: 1, avatar: \"\ud83c\udf96\ufe0f\" },\r\n  { name: \"Rokhaya Gueye\", score: 700, level: 1, avatar: \"\ud83c\udf0d\" },\r\n  { name: \"Aliou Ciss\u00e9 Jr\", score: 680, level: 1, avatar: \"\ud83c\udfc5\" },\r\n  { name: \"Astou Dieng\", score: 660, level: 1, avatar: \"\ud83d\udcaa\" },\r\n  { name: \"Mamadou Sy\", score: 640, level: 1, avatar: \"\ud83e\udd85\" },\r\n  { name: \"Khady Wade\", score: 620, level: 1, avatar: \"\ud83c\udf3a\" },\r\n  { name: \"Pape Faye\", score: 600, level: 1, avatar: \"\u26a1\" },\r\n  { name: \"Adama Diouf\", score: 580, level: 0, avatar: \"\ud83c\udfae\" },\r\n  { name: \"Bineta Sarr\", score: 560, level: 0, avatar: \"\ud83c\udf38\" },\r\n  { name: \"Saliou Badji\", score: 540, level: 0, avatar: \"\ud83c\udfaf\" },\r\n];\r\n\r\n\/* ============================================================\r\n   APP CORE\r\n============================================================ *\/\r\nconst App = (() => {\r\n\r\n  \/\/ ---------- STATE ----------\r\n  let state = {\r\n    lang: 'fr',\r\n    theme: 'dark',\r\n    user: null,\r\n    mode: 'clubs',\r\n    diff: 'easy',\r\n    questions: [],\r\n    currentQ: 0,\r\n    score: 0,\r\n    streak: 0,\r\n    timer: null,\r\n    timerVal: 10,\r\n    answered: false,\r\n    questionCount: 0,\r\n    adShown: false,\r\n  };\r\n\r\n  \/\/ ---------- INIT ----------\r\n  function init() {\r\n    createParticles();\r\n    loadUser();\r\n    loadTheme();\r\n    loadLang();\r\n    bindEvents();\r\n    updateUI();\r\n\r\n    setTimeout(() => {\r\n      document.getElementById('loading-screen').style.opacity = '0';\r\n      setTimeout(() => {\r\n        document.getElementById('loading-screen').style.display = 'none';\r\n        showScreen('home-screen');\r\n      }, 400);\r\n    }, 1800);\r\n  }\r\n\r\n  \/\/ ---------- PARTICLES ----------\r\n  function createParticles() {\r\n    const container = document.getElementById('particles');\r\n    for (let i = 0; i < 15; i++) {\r\n      const p = document.createElement('div');\r\n      p.className = 'particle';\r\n      p.style.left = Math.random() * 100 + '%';\r\n      p.style.animationDuration = (8 + Math.random() * 12) + 's';\r\n      p.style.animationDelay = (Math.random() * 10) + 's';\r\n      p.style.opacity = 0.2 + Math.random() * 0.4;\r\n      p.style.width = p.style.height = (2 + Math.random() * 3) + 'px';\r\n      container.appendChild(p);\r\n    }\r\n  }\r\n\r\n  \/\/ ---------- USER MANAGEMENT ----------\r\n  function generateID() {\r\n    return 'FQP_' + Math.random().toString(36).substr(2, 9).toUpperCase();\r\n  }\r\n\r\n  function generateName() {\r\n    const first = ['Moussa','Aminata','Cheikh','Fatou','Ibrahim','Aissatou','Omar','Mariam','Seydou','Ndeye','Alex','Chris','Sam','Jordan','Taylor'];\r\n    const last = ['Pro','Star','Legend','Master','King','Champion','Elite','Ace'];\r\n    return first[Math.floor(Math.random()*first.length)] + ' ' + last[Math.floor(Math.random()*last.length)];\r\n  }\r\n\r\n  function loadUser() {\r\n    let saved = localStorage.getItem('fqp_user');\r\n    if (saved) {\r\n      state.user = JSON.parse(saved);\r\n    } else {\r\n      state.user = {\r\n        id: generateID(),\r\n        name: generateName(),\r\n        xp: 0,\r\n        level: 0,\r\n        played: 0,\r\n        bestScore: 0,\r\n        totalScore: 0,\r\n        badges: [],\r\n        history: []\r\n      };\r\n      saveUser();\r\n    }\r\n  }\r\n\r\n  function saveUser() {\r\n    localStorage.setItem('fqp_user', JSON.stringify(state.user));\r\n  }\r\n\r\n  function getLevel(xp) {\r\n    if (xp < 100) return 0;\r\n    if (xp < 300) return 1;\r\n    if (xp < 700) return 2;\r\n    return 3;\r\n  }\r\n\r\n  function getXPForLevel(level) {\r\n    return [0, 100, 300, 700][level] || 700;\r\n  }\r\n\r\n  function getXPNextLevel(level) {\r\n    return [100, 300, 700, 1200][level] || 1200;\r\n  }\r\n\r\n  \/\/ ---------- THEME ----------\r\n  function loadTheme() {\r\n    state.theme = localStorage.getItem('fqp_theme') || 'dark';\r\n    applyTheme();\r\n  }\r\n\r\n  function applyTheme() {\r\n    document.documentElement.setAttribute('data-theme', state.theme === 'light' ? 'light' : '');\r\n    document.getElementById('t-theme').textContent = state.theme === 'dark' ? '\u2600\ufe0f ' + t('theme') : '\ud83c\udf19 ' + t('theme');\r\n  }\r\n\r\n  function toggleTheme() {\r\n    state.theme = state.theme === 'dark' ? 'light' : 'dark';\r\n    localStorage.setItem('fqp_theme', state.theme);\r\n    applyTheme();\r\n  }\r\n\r\n  \/\/ ---------- LANG ----------\r\n  function loadLang() {\r\n    state.lang = localStorage.getItem('fqp_lang') || 'fr';\r\n    applyLang();\r\n  }\r\n\r\n  function t(key) {\r\n    const tr = TRANSLATIONS[state.lang];\r\n    return tr[key] || TRANSLATIONS['fr'][key] || key;\r\n  }\r\n\r\n  function applyLang() {\r\n    const lang = state.lang;\r\n    const dir = lang === 'ar' ? 'rtl' : 'ltr';\r\n    document.documentElement.setAttribute('lang', lang);\r\n    document.documentElement.setAttribute('dir', dir);\r\n\r\n    \/\/ Update all translatable elements\r\n    const map = {\r\n      't-subtitle': 'subtitle',\r\n      't-play': 'play',\r\n      't-leaderboard': 'leaderboard',\r\n      't-tournament': 'tournament',\r\n      't-lang': 'lang',\r\n      't-ranking': 'ranking',\r\n      't-tournament-title': 'tournament-title',\r\n      't-weekly': 'weekly',\r\n      't-afcon-cup': 'afcon-cup',\r\n      't-to-win': 'to-win',\r\n      't-days': 'days',\r\n      't-hours': 'hours',\r\n      't-mins': 'mins',\r\n      't-secs': 'secs',\r\n      't-coming-soon': 'coming-soon',\r\n      't-top-players': 'top-players',\r\n      't-how-join': 'how-join',\r\n      't-how-text': 'how-text',\r\n      't-choose-mode': 'choose-mode',\r\n      't-game-mode': 'game-mode',\r\n      't-mode-clubs': 'mode-clubs',\r\n      't-mode-clubs-desc': 'mode-clubs-desc',\r\n      't-mode-players': 'mode-players',\r\n      't-mode-players-desc': 'mode-players-desc',\r\n      't-mode-competitions': 'mode-competitions',\r\n      't-mode-competitions-desc': 'mode-competitions-desc',\r\n      't-mode-history': 'mode-history',\r\n      't-mode-history-desc': 'mode-history-desc',\r\n      't-difficulty': 'difficulty',\r\n      't-easy': 'easy',\r\n      't-medium': 'medium',\r\n      't-hard': 'hard',\r\n      't-expert': 'expert',\r\n      't-start': 'start',\r\n      't-out-of': 'out-of',\r\n      't-xp-earned': 'xp-earned',\r\n      't-share-wa': 'share-wa',\r\n      't-replay': 'replay',\r\n      't-home': 'home',\r\n      't-select-lang': 'select-lang',\r\n      't-close': 'close',\r\n      't-ad-title': 'ad-title',\r\n      't-ad-desc': 'ad-desc',\r\n      't-ad-cta': 'ad-cta',\r\n      't-ad-skip': 'ad-skip',\r\n      't-stat-played': 'stat-played',\r\n      't-stat-best': 'stat-best',\r\n      't-stat-avg': 'stat-avg',\r\n    };\r\n\r\n    for (const [id, key] of Object.entries(map)) {\r\n      const el = document.getElementById(id);\r\n      if (el) el.innerHTML = t(key);\r\n    }\r\n\r\n    updateLangButtons();\r\n  }\r\n\r\n  function setLang(lang) {\r\n    state.lang = lang;\r\n    localStorage.setItem('fqp_lang', lang);\r\n    applyLang();\r\n    updateUI();\r\n    closeLangModal();\r\n  }\r\n\r\n  function updateLangButtons() {\r\n    document.querySelectorAll('.lang-btn').forEach(btn => {\r\n      btn.classList.toggle('active', btn.dataset.lang === state.lang);\r\n    });\r\n  }\r\n\r\n  \/\/ ---------- SCREEN NAVIGATION ----------\r\n  function showScreen(id) {\r\n    document.querySelectorAll('.screen').forEach(s => s.classList.remove('active'));\r\n    const screen = document.getElementById(id);\r\n    if (screen) {\r\n      screen.classList.add('active');\r\n      screen.scrollTop = 0;\r\n    }\r\n    updateNavActive(id);\r\n  }\r\n\r\n  function updateNavActive(id) {\r\n    \/\/ Bottom nav is only on home\/leaderboard\/tournament\r\n    const navMap = {\r\n      'home-screen': 0,\r\n      'leaderboard-screen': 1,\r\n      'tournament-screen': 2\r\n    };\r\n    document.querySelectorAll('.nav-item').forEach((item, i) => {\r\n      item.classList.toggle('active', navMap[id] === i);\r\n    });\r\n  }\r\n\r\n  \/\/ ---------- UPDATE UI (HOME) ----------\r\n  function updateUI() {\r\n    if (!state.user) return;\r\n    const u = state.user;\r\n    const lvl = getLevel(u.xp);\r\n    const lvlNames = t('levels');\r\n\r\n    document.getElementById('player-name-display').textContent = u.name;\r\n    document.getElementById('player-level-display').innerHTML = `\u26a1 ${lvlNames[lvl]}`;\r\n\r\n    const xpCur = u.xp - getXPForLevel(lvl);\r\n    const xpNxt = getXPNextLevel(lvl) - getXPForLevel(lvl);\r\n    const pct = Math.min(100, (xpCur \/ xpNxt) * 100);\r\n    document.getElementById('xp-bar').style.width = pct + '%';\r\n    document.getElementById('xp-text').textContent = u.xp + ' XP';\r\n\r\n    document.getElementById('stat-played').textContent = u.played;\r\n    document.getElementById('stat-best').textContent = u.bestScore + '\/10';\r\n    document.getElementById('stat-avg').textContent = u.played > 0 ? (u.totalScore \/ u.played).toFixed(1) : '0';\r\n\r\n    const avatarEmojis = ['\u26bd','\ud83c\udfc6','\u2b50','\ud83d\udd25','\ud83d\udc51','\ud83e\udd81','\ud83c\udf1f','\ud83d\udcab','\ud83c\udfaf','\ud83c\udf0d'];\r\n    document.getElementById('player-avatar-emoji').textContent = avatarEmojis[lvl * 2] || '\u26bd';\r\n  }\r\n\r\n  \/\/ ---------- EVENTS ----------\r\n  function bindEvents() {\r\n    document.getElementById('btn-play').addEventListener('click', () => showScreen('mode-select-screen'));\r\n    document.getElementById('btn-back-mode').addEventListener('click', () => showScreen('home-screen'));\r\n    document.getElementById('btn-start-quiz').addEventListener('click', startQuiz);\r\n    document.getElementById('btn-leaderboard').addEventListener('click', () => { buildLeaderboard(); showScreen('leaderboard-screen'); });\r\n    document.getElementById('btn-back-lb').addEventListener('click', () => showScreen('home-screen'));\r\n    document.getElementById('btn-tournament').addEventListener('click', () => { buildTournament(); showScreen('tournament-screen'); });\r\n    document.getElementById('btn-back-tour').addEventListener('click', () => showScreen('home-screen'));\r\n    document.getElementById('btn-lang').addEventListener('click', openLangModal);\r\n    document.getElementById('btn-theme').addEventListener('click', toggleTheme);\r\n    document.getElementById('btn-replay').addEventListener('click', () => { maybeShowAd(startQuiz); });\r\n    document.getElementById('btn-home-from-result').addEventListener('click', () => showScreen('home-screen'));\r\n    document.getElementById('btn-share').addEventListener('click', shareResult);\r\n  }\r\n\r\n  \/\/ ---------- MODE \/ DIFF SELECT ----------\r\n  function selectMode(mode) {\r\n    state.mode = mode;\r\n    document.querySelectorAll('.mode-card').forEach(c => {\r\n      c.classList.toggle('selected', c.dataset.mode === mode);\r\n    });\r\n  }\r\n\r\n  function selectDiff(diff) {\r\n    state.diff = diff;\r\n    document.querySelectorAll('.diff-chip').forEach(c => {\r\n      c.classList.toggle('selected', c.dataset.diff === diff);\r\n    });\r\n  }\r\n\r\n  \/\/ ---------- QUIZ ----------\r\n  async function startQuiz() {\r\n    state.score = 0;\r\n    state.currentQ = 0;\r\n    state.streak = 0;\r\n    state.questionCount = 0;\r\n    state.adShown = false;\r\n    state.questions = await getQuestionsFromAPI(state.mode, state.diff, 10);\r\n    showScreen('quiz-screen');\r\n    renderQuestion();\r\n  }\r\n\r\n  \/**\r\n   * getQuestionsFromAPI - Fetches questions from external API.\r\n   * Falls back to local DB if API is unavailable.\r\n   * @param {string} mode - Game mode\r\n   * @param {string} diff - Difficulty\r\n   * @param {number} count - Number of questions\r\n   * @returns {Array} questions\r\n   *\/\r\n  async function getQuestionsFromAPI(mode, diff, count) {\r\n    \/\/ --- API Placeholder - replace URL with real endpoint ---\r\n    const API_URL = `https:\/\/api.footballquiz.example.com\/questions?mode=${mode}&diff=${diff}&count=${count}&lang=${state.lang}`;\r\n\r\n    try {\r\n      const controller = new AbortController();\r\n      const timeoutId = setTimeout(() => controller.abort(), 3000);\r\n\r\n      const response = await fetch(API_URL, {\r\n        signal: controller.signal,\r\n        headers: { 'X-App-Version': '1.0', 'Accept-Language': state.lang }\r\n      });\r\n      clearTimeout(timeoutId);\r\n\r\n      if (!response.ok) throw new Error('API error: ' + response.status);\r\n      const data = await response.json();\r\n      return shuffleArray(data.questions).slice(0, count);\r\n\r\n    } catch (err) {\r\n      \/\/ Fallback to local question bank\r\n      console.log('API unavailable, using local questions:', err.message);\r\n      return getLocalQuestions(mode, diff, count);\r\n    }\r\n  }\r\n\r\n  function getLocalQuestions(mode, diff, count) {\r\n    let pool = QUESTIONS_DB[mode] || QUESTIONS_DB.clubs;\r\n\r\n    \/\/ Filter by difficulty if possible\r\n    const filtered = pool.filter(q => q.diff === diff);\r\n    const source = filtered.length >= count ? filtered : pool;\r\n\r\n    return shuffleArray([...source]).slice(0, count);\r\n  }\r\n\r\n  function renderQuestion() {\r\n    const questions = state.questions;\r\n    if (state.currentQ >= questions.length) {\r\n      endQuiz();\r\n      return;\r\n    }\r\n\r\n    \/\/ Show ad at question 5\r\n    if (state.currentQ === 5 && !state.adShown) {\r\n      state.adShown = true;\r\n      showAdPopup();\r\n      return;\r\n    }\r\n\r\n    const q = questions[state.currentQ];\r\n    const lang = state.lang;\r\n\r\n    \/\/ Question text\r\n    const qText = typeof q.q === 'object' ? (q.q[lang] || q.q['fr'] || q.q['en']) : q.q;\r\n    document.getElementById('q-text').textContent = qText;\r\n\r\n    \/\/ Progress\r\n    document.getElementById('q-counter').textContent = `Q${state.currentQ + 1} \/ ${questions.length}`;\r\n    document.getElementById('q-progress').style.width = ((state.currentQ \/ questions.length) * 100) + '%';\r\n    document.getElementById('live-score').textContent = state.score;\r\n\r\n    \/\/ Streak\r\n    const streakBadge = document.getElementById('streak-badge');\r\n    if (state.streak >= 2) {\r\n      streakBadge.style.display = 'inline-flex';\r\n      document.getElementById('streak-num').textContent = state.streak;\r\n    } else {\r\n      streakBadge.style.display = 'none';\r\n    }\r\n\r\n    \/\/ Image or emoji\r\n    const emojiDisplay = document.getElementById('q-emoji-display');\r\n    const imageWrap = document.getElementById('q-image-wrap');\r\n\r\n    if (q.image) {\r\n      emojiDisplay.classList.remove('show');\r\n      imageWrap.classList.add('has-image');\r\n      document.getElementById('q-image').src = q.image;\r\n    } else if (q.emoji) {\r\n      imageWrap.classList.remove('has-image');\r\n      emojiDisplay.classList.add('show');\r\n      emojiDisplay.textContent = q.emoji;\r\n    } else {\r\n      emojiDisplay.classList.remove('show');\r\n      imageWrap.classList.remove('has-image');\r\n    }\r\n\r\n    \/\/ Choices\r\n    const grid = document.getElementById('choices-grid');\r\n    grid.innerHTML = '';\r\n    const shuffledChoices = shuffleChoices(q.choices, q.correct);\r\n\r\n    shuffledChoices.forEach((choice, i) => {\r\n      const btn = document.createElement('button');\r\n      btn.className = 'choice-btn';\r\n      btn.textContent = choice.text;\r\n      btn.dataset.correct = choice.isCorrect;\r\n      btn.addEventListener('click', () => handleAnswer(btn, choice.isCorrect, shuffledChoices));\r\n      grid.appendChild(btn);\r\n    });\r\n\r\n    \/\/ Reset feedback\r\n    const fb = document.getElementById('feedback-banner');\r\n    fb.className = 'feedback-banner';\r\n    fb.textContent = '';\r\n\r\n    \/\/ Timer\r\n    startTimer();\r\n    state.answered = false;\r\n  }\r\n\r\n  function shuffleChoices(choices, correctIdx) {\r\n    const mapped = choices.map((c, i) => ({ text: c, isCorrect: i === correctIdx }));\r\n    return shuffleArray(mapped);\r\n  }\r\n\r\n  function startTimer() {\r\n    clearInterval(state.timer);\r\n    state.timerVal = 10;\r\n    updateTimerUI();\r\n\r\n    state.timer = setInterval(() => {\r\n      state.timerVal--;\r\n      updateTimerUI();\r\n      if (state.timerVal <= 0) {\r\n        clearInterval(state.timer);\r\n        if (!state.answered) {\r\n          timeOut();\r\n        }\r\n      }\r\n    }, 1000);\r\n  }\r\n\r\n  function updateTimerUI() {\r\n    const pct = (state.timerVal \/ 10) * 100;\r\n    const bar = document.getElementById('timer-bar');\r\n    bar.style.width = pct + '%';\r\n    bar.className = 'timer-bar-fill' + (state.timerVal <= 3 ? ' warning' : '');\r\n    document.getElementById('timer-num').textContent = state.timerVal;\r\n    document.getElementById('timer-num').style.color = state.timerVal <= 3 ? 'var(--accent-red)' : 'var(--accent-blue)';\r\n  }\r\n\r\n  function timeOut() {\r\n    state.answered = true;\r\n    state.streak = 0;\r\n    \/\/ Show correct answer\r\n    document.querySelectorAll('.choice-btn').forEach(btn => {\r\n      if (btn.dataset.correct === 'true') btn.classList.add('correct');\r\n      btn.disabled = true;\r\n    });\r\n    showFeedback(false, '\u23f1 Temps \u00e9coul\u00e9 !');\r\n    setTimeout(nextQuestion, 1500);\r\n  }\r\n\r\n  function handleAnswer(btn, isCorrect, choices) {\r\n    if (state.answered) return;\r\n    state.answered = true;\r\n    clearInterval(state.timer);\r\n\r\n    \/\/ Disable all\r\n    document.querySelectorAll('.choice-btn').forEach(b => b.disabled = true);\r\n\r\n    if (isCorrect) {\r\n      btn.classList.add('correct');\r\n      state.score++;\r\n      state.streak++;\r\n      vibratePattern([50]);\r\n      const msgs = t('correct_msgs') || [];\r\n      showFeedback(true, msgs[Math.floor(Math.random() * msgs.length)] || '\u2705 Correct!');\r\n    } else {\r\n      btn.classList.add('wrong');\r\n      state.streak = 0;\r\n      vibratePattern([100, 50, 100]);\r\n      \/\/ Show correct\r\n      document.querySelectorAll('.choice-btn').forEach(b => {\r\n        if (b.dataset.correct === 'true') b.classList.add('correct');\r\n      });\r\n      const wrongMsgs = t('wrong_msgs') || [];\r\n      const correct = choices.find(c => c.isCorrect);\r\n      const msg = (wrongMsgs[Math.floor(Math.random() * wrongMsgs.length)] || '\u274c Mauvaise r\u00e9ponse ! ') + (correct ? correct.text : '');\r\n      showFeedback(false, msg);\r\n    }\r\n\r\n    document.getElementById('live-score').textContent = state.score;\r\n    setTimeout(nextQuestion, 1600);\r\n  }\r\n\r\n  function showFeedback(isGood, msg) {\r\n    const fb = document.getElementById('feedback-banner');\r\n    fb.textContent = msg;\r\n    fb.className = 'feedback-banner show ' + (isGood ? 'good' : 'bad');\r\n  }\r\n\r\n  function nextQuestion() {\r\n    state.currentQ++;\r\n    renderQuestion();\r\n  }\r\n\r\n  function endQuiz() {\r\n    clearInterval(state.timer);\r\n    const score = state.score;\r\n    const total = state.questions.length;\r\n\r\n    \/\/ Update user stats\r\n    const xpGain = score * 10 + (score === total ? 50 : 0); \/\/ bonus perfect\r\n    state.user.xp += xpGain;\r\n    state.user.played++;\r\n    state.user.totalScore += score;\r\n    if (score > state.user.bestScore) state.user.bestScore = score;\r\n    state.user.level = getLevel(state.user.xp);\r\n\r\n    \/\/ Add to history\r\n    state.user.history.unshift({ score, total, mode: state.mode, date: Date.now() });\r\n    if (state.user.history.length > 20) state.user.history.pop();\r\n\r\n    \/\/ Award badges\r\n    checkBadges(score, total);\r\n    saveUser();\r\n\r\n    \/\/ Render result screen\r\n    renderResult(score, total, xpGain);\r\n\r\n    \/\/ Save to leaderboard\r\n    saveToLeaderboard(state.user.name, score * 100 + xpGain, state.user.level);\r\n\r\n    showScreen('result-screen');\r\n  }\r\n\r\n  function checkBadges(score, total) {\r\n    const badges = state.user.badges;\r\n    if (!badges.includes('rookie') && state.user.played >= 1) badges.push('rookie');\r\n    if (!badges.includes('starter') && state.user.played >= 5) badges.push('starter');\r\n    if (!badges.includes('pro') && state.user.bestScore >= 8) badges.push('pro');\r\n    if (!badges.includes('legend') && state.user.bestScore >= 10) badges.push('legend');\r\n  }\r\n\r\n  function renderResult(score, total, xpGain) {\r\n    document.getElementById('result-score').textContent = score;\r\n\r\n    \/\/ Circle progress\r\n    const pct = score \/ total;\r\n    const deg = Math.round(pct * 360);\r\n    document.getElementById('result-circle').style.setProperty('--progress', deg + 'deg');\r\n\r\n    \/\/ Result title & message\r\n    let tier = 0;\r\n    if (score >= 4) tier = 1;\r\n    if (score >= 8) tier = 2;\r\n    if (score === 10) tier = 3;\r\n\r\n    const titles = t('result_titles') || [];\r\n    const msgs = t('result_msgs') || [];\r\n    document.getElementById('result-title').textContent = titles[tier] || 'R\u00e9sultat';\r\n    document.getElementById('result-msg').textContent = msgs[tier] || '';\r\n\r\n    \/\/ XP\r\n    document.getElementById('result-xp').textContent = '+' + xpGain + ' XP';\r\n\r\n    \/\/ Badges\r\n    const badgeContainer = document.getElementById('result-badges');\r\n    badgeContainer.innerHTML = '';\r\n\r\n    const badgeDefs = {\r\n      rookie: { label: '\ud83c\udf31 Rookie', cls: 'badge-green' },\r\n      starter: { label: '\u26bd Starter', cls: 'badge-blue' },\r\n      pro: { label: '\u2b50 Pro Player', cls: 'badge-gold' },\r\n      legend: { label: '\ud83d\udc51 Legend', cls: 'badge-purple' }\r\n    };\r\n\r\n    state.user.badges.forEach(b => {\r\n      if (badgeDefs[b]) {\r\n        const bd = document.createElement('div');\r\n        bd.className = 'badge ' + badgeDefs[b].cls;\r\n        bd.textContent = badgeDefs[b].label;\r\n        badgeContainer.appendChild(bd);\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ ---------- LEADERBOARD ----------\r\n  function saveToLeaderboard(name, pts, level) {\r\n    let lb = JSON.parse(localStorage.getItem('fqp_lb') || '[]');\r\n    const existing = lb.findIndex(e => e.id === state.user.id);\r\n    const entry = { id: state.user.id, name, score: pts, level };\r\n    if (existing >= 0) {\r\n      if (pts > lb[existing].score) lb[existing] = entry;\r\n    } else {\r\n      lb.push(entry);\r\n    }\r\n    lb.sort((a, b) => b.score - a.score);\r\n    lb = lb.slice(0, 50);\r\n    localStorage.setItem('fqp_lb', JSON.stringify(lb));\r\n  }\r\n\r\n  function buildLeaderboard() {\r\n    const myEntries = JSON.parse(localStorage.getItem('fqp_lb') || '[]');\r\n    const combined = [...LEADERBOARD_SIMULATED.map((e, i) => ({\r\n      name: e.name, score: e.score, level: e.level, avatar: e.avatar, id: 'sim_' + i\r\n    }))];\r\n\r\n    \/\/ Merge real entries\r\n    myEntries.forEach(e => {\r\n      const existIdx = combined.findIndex(c => c.name === e.name && c.id !== ('sim_' + combined.indexOf(c)));\r\n      if (existIdx < 0) combined.push({ ...e, avatar: '\ud83c\udfae' });\r\n    });\r\n\r\n    combined.sort((a, b) => b.score - a.score);\r\n\r\n    const list = document.getElementById('lb-list');\r\n    list.innerHTML = '';\r\n\r\n    const rankClasses = ['gold', 'silver', 'bronze'];\r\n    const rankEmoji = ['\ud83e\udd47', '\ud83e\udd48', '\ud83e\udd49'];\r\n    let myRank = '-';\r\n\r\n    const lvlNames = t('levels') || [];\r\n\r\n    combined.slice(0, 30).forEach((entry, i) => {\r\n      const isMe = entry.id === state.user.id;\r\n      if (isMe) myRank = i + 1;\r\n\r\n      const item = document.createElement('div');\r\n      item.className = 'lb-item' + (isMe ? ' lb-me-highlight' : '');\r\n      item.style.animationDelay = (i * 0.05) + 's';\r\n\r\n      const rank = i < 3 ? `<div class=\"lb-rank ${rankClasses[i]}\">${rankEmoji[i]}<\/div>` :\r\n                          `<div class=\"lb-rank\">${i+1}<\/div>`;\r\n\r\n      item.innerHTML = `\r\n        ${rank}\r\n        <div class=\"lb-avatar\">${entry.avatar || '\u26bd'}<\/div>\r\n        <div class=\"lb-name-wrap\">\r\n          <div class=\"lb-player-name\">${entry.name}${isMe ? ' \ud83d\udc64' : ''}<\/div>\r\n          <div class=\"lb-player-level\">${lvlNames[entry.level] || 'D\u00e9butant'}<\/div>\r\n        <\/div>\r\n        <div class=\"lb-score-wrap\">\r\n          <div class=\"lb-score-val\">${entry.score}<\/div>\r\n          <div class=\"lb-score-pts\">pts<\/div>\r\n        <\/div>`;\r\n      list.appendChild(item);\r\n    });\r\n\r\n    document.getElementById('lb-my-rank').textContent = `\ud83d\udccd ${state.lang === 'ar' ? '\u0645\u0631\u062a\u0628\u062a\u064a' : state.lang === 'en' ? 'My rank' : state.lang === 'es' ? 'Mi posici\u00f3n' : state.lang === 'pt' ? 'Minha posi\u00e7\u00e3o' : 'Ma position'}: #${myRank}`;\r\n  }\r\n\r\n  \/\/ ---------- TOURNAMENT ----------\r\n  function buildTournament() {\r\n    \/\/ Countdown to next Sunday\r\n    const now = new Date();\r\n    const nextSun = new Date(now);\r\n    nextSun.setDate(now.getDate() + (7 - now.getDay()) % 7 || 7);\r\n    nextSun.setHours(23, 59, 59, 0);\r\n\r\n    function updateCountdown() {\r\n      const diff = nextSun - new Date();\r\n      if (diff < 0) return;\r\n      const d = Math.floor(diff \/ 86400000);\r\n      const h = Math.floor((diff % 86400000) \/ 3600000);\r\n      const m = Math.floor((diff % 3600000) \/ 60000);\r\n      const s = Math.floor((diff % 60000) \/ 1000);\r\n      document.getElementById('cd-days').textContent = String(d).padStart(2,'0');\r\n      document.getElementById('cd-hours').textContent = String(h).padStart(2,'0');\r\n      document.getElementById('cd-mins').textContent = String(m).padStart(2,'0');\r\n      document.getElementById('cd-secs').textContent = String(s).padStart(2,'0');\r\n    }\r\n    updateCountdown();\r\n    setInterval(updateCountdown, 1000);\r\n\r\n    \/\/ Top players\r\n    const container = document.getElementById('tour-top-players');\r\n    container.innerHTML = '';\r\n    const top = LEADERBOARD_SIMULATED.slice(0, 5);\r\n    const medals = ['\ud83e\udd47','\ud83e\udd48','\ud83e\udd49','4\ufe0f\u20e3','5\ufe0f\u20e3'];\r\n    const rankColors = ['#ffd700','#c0c0c0','#cd7f32','#8899bb','#4a5a7a'];\r\n\r\n    top.forEach((p, i) => {\r\n      const card = document.createElement('div');\r\n      card.className = 'top-player-card';\r\n      card.innerHTML = `\r\n        <div class=\"tp-rank\" style=\"color:${rankColors[i]}\">${medals[i]}<\/div>\r\n        <div class=\"lb-avatar\">${p.avatar}<\/div>\r\n        <div class=\"tp-name\">${p.name}<\/div>\r\n        <div class=\"tp-pts\">${p.score}<\/div>`;\r\n      container.appendChild(card);\r\n    });\r\n  }\r\n\r\n  \/\/ ---------- LANG MODAL ----------\r\n  function openLangModal() {\r\n    document.getElementById('lang-modal').classList.add('open');\r\n  }\r\n\r\n  function closeLangModal() {\r\n    document.getElementById('lang-modal').classList.remove('open');\r\n  }\r\n\r\n  \/\/ ---------- AD POPUP ----------\r\n  function showAdPopup() {\r\n    const popup = document.getElementById('ad-popup');\r\n    popup.classList.add('open');\r\n    let secs = 3;\r\n    const timerEl = document.getElementById('ad-timer');\r\n    timerEl.textContent = '';\r\n\r\n    const interval = setInterval(() => {\r\n      secs--;\r\n      timerEl.textContent = secs > 0 ? `Fermeture dans ${secs}s` : '';\r\n      if (secs <= 0) {\r\n        clearInterval(interval);\r\n      }\r\n    }, 1000);\r\n  }\r\n\r\n  function closeAd() {\r\n    document.getElementById('ad-popup').classList.remove('open');\r\n    \/\/ Continue quiz\r\n    if (state.questions && state.currentQ < state.questions.length) {\r\n      renderQuestion();\r\n    }\r\n  }\r\n\r\n  function maybeShowAd(callback) {\r\n    \/\/ Show ad before replay 50% of the time\r\n    if (Math.random() < 0.5) {\r\n      document.getElementById('ad-popup').classList.add('open');\r\n      document.getElementById('ad-popup').dataset.callback = 'startQuiz';\r\n      \/\/ Redefine closeAd for this context\r\n      window._adCallback = callback;\r\n      const origClose = closeAd;\r\n      document.getElementById('ad-popup').onclick = (e) => {\r\n        if (e.target.closest('.btn')) {\r\n          document.getElementById('ad-popup').classList.remove('open');\r\n          if (window._adCallback) window._adCallback();\r\n        }\r\n      };\r\n    } else {\r\n      callback();\r\n    }\r\n  }\r\n\r\n  \/\/ ---------- SHARE ----------\r\n  function shareResult() {\r\n    const score = state.score;\r\n    const ref = state.user.id;\r\n    const shareFn = t('share_text');\r\n    const text = typeof shareFn === 'function' ? shareFn(score, ref) : `\u26bd J'ai fait ${score}\/10 sur FootballQuiz Pro ! Peux-tu me battre ? https:\/\/footballquiz.pro?ref=${ref}`;\r\n    const url = `https:\/\/wa.me\/?text=${encodeURIComponent(text)}`;\r\n    window.open(url, '_blank');\r\n  }\r\n\r\n  \/\/ ---------- UTILS ----------\r\n  function shuffleArray(arr) {\r\n    const a = [...arr];\r\n    for (let i = a.length - 1; i > 0; i--) {\r\n      const j = Math.floor(Math.random() * (i + 1));\r\n      [a[i], a[j]] = [a[j], a[i]];\r\n    }\r\n    return a;\r\n  }\r\n\r\n  function vibratePattern(pattern) {\r\n    if (navigator.vibrate) navigator.vibrate(pattern);\r\n  }\r\n\r\n  \/\/ ---------- PUBLIC API ----------\r\n  return {\r\n    init,\r\n    setLang,\r\n    closeLangModal,\r\n    openLangModal,\r\n    closeAd,\r\n    selectMode,\r\n    selectDiff,\r\n    toggleTheme\r\n  };\r\n\r\n})();\r\n\r\n\/* ============================================================\r\n   BOTTOM NAV (rendered inline for simplicity)\r\n============================================================ *\/\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n  \/\/ Build bottom nav\r\n  const nav = document.createElement('div');\r\n  nav.className = 'bottom-nav';\r\n  nav.innerHTML = `\r\n    <div class=\"nav-item active\" onclick=\"document.getElementById('btn-home-ref').click()\">\r\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n        <path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\/><polyline points=\"9 22 9 12 15 12 15 22\"\/>\r\n      <\/svg>\r\n      <span id=\"nav-home-lbl\">Home<\/span>\r\n    <\/div>\r\n    <div class=\"nav-item\" onclick=\"document.getElementById('btn-leaderboard').click()\">\r\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n        <polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\"\/><polyline points=\"17 6 23 6 23 12\"\/>\r\n      <\/svg>\r\n      <span id=\"nav-lb-lbl\">Top<\/span>\r\n    <\/div>\r\n    <div class=\"nav-item\" style=\"position:relative;\">\r\n      <button onclick=\"document.getElementById('btn-play').click()\" style=\"\r\n        position:absolute; top:-18px;\r\n        width:56px; height:56px; border-radius:50%;\r\n        background:linear-gradient(135deg,#00b4ff,#0068d6);\r\n        border:3px solid var(--bg-primary);\r\n        display:flex; align-items:center; justify-content:center;\r\n        font-size:24px; cursor:pointer;\r\n        box-shadow:0 4px 20px rgba(0,180,255,0.4);\r\n        transition:transform 0.2s;\r\n      \" onmouseenter=\"this.style.transform='scale(1.1)'\" onmouseleave=\"this.style.transform='scale(1)'\">\u26bd<\/button>\r\n      <span style=\"margin-top:22px;font-size:10px;font-weight:700;color:var(--accent-blue)\">Play<\/span>\r\n    <\/div>\r\n    <div class=\"nav-item\" onclick=\"document.getElementById('btn-tournament').click()\">\r\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n        <circle cx=\"12\" cy=\"8\" r=\"6\"\/><path d=\"M15.477 12.89L17 22l-5-3-5 3 1.523-9.11\"\/>\r\n      <\/svg>\r\n      <span id=\"nav-tour-lbl\">Tournoi<\/span>\r\n    <\/div>\r\n    <div class=\"nav-item\" onclick=\"App.openLangModal()\">\r\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n        <circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/>\r\n      <\/svg>\r\n      <span>\ud83c\udf10<\/span>\r\n    <\/div>`;\r\n\r\n  document.body.appendChild(nav);\r\n\r\n  \/\/ Invisible trigger button for home nav\r\n  const homeRef = document.createElement('button');\r\n  homeRef.id = 'btn-home-ref';\r\n  homeRef.style.display = 'none';\r\n  homeRef.addEventListener('click', () => {\r\n    document.querySelectorAll('.screen').forEach(s => s.classList.remove('active'));\r\n    document.getElementById('home-screen').classList.add('active');\r\n    document.querySelectorAll('.nav-item').forEach((item, i) => item.classList.toggle('active', i === 0));\r\n  });\r\n  document.body.appendChild(homeRef);\r\n\r\n  App.init();\r\n});\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>FootballQuiz Pro \u26bd CHARGEMENT \u26bd FootballQuiz PRO Quiz Football Ultime \u26bd Chargement&#8230; \u26a1 D\u00e9butant 0 XP 0 Jou\u00e9s 0 Meilleur 0 Moy\/10 \u25b6 JOUER MAINTENANT \ud83c\udfc6 Classement \ud83c\udfaf Tournoi \ud83c\udf10 Langue \ud83c\udf19 Mode \u2190 CHOISIR MODE Mode de jeu \ud83c\udfdf\ufe0f Clubs &#038; Nations Logos, stades, drapeaux \u2b50 Joueurs &#038; L\u00e9gendes Stars &#038; ic\u00f4nes \ud83c\udfc6 Comp\u00e9titions [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-7105","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.quizzfoot.com\/index.php?rest_route=\/wp\/v2\/pages\/7105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.quizzfoot.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.quizzfoot.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.quizzfoot.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quizzfoot.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7105"}],"version-history":[{"count":6,"href":"https:\/\/www.quizzfoot.com\/index.php?rest_route=\/wp\/v2\/pages\/7105\/revisions"}],"predecessor-version":[{"id":7174,"href":"https:\/\/www.quizzfoot.com\/index.php?rest_route=\/wp\/v2\/pages\/7105\/revisions\/7174"}],"wp:attachment":[{"href":"https:\/\/www.quizzfoot.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}