{"version":3,"sources":["../src/index.tsx","#style-inject:#style-inject","../src/index.css","../src/KingsQuiz.tsx","../src/types.ts","../src/components/shared/slider.css","../src/components/shared/Slider.tsx","../src/components/Landing.tsx","../src/components/Results.tsx","../src/api.ts"],"sourcesContent":["import './index.css';\r\nimport KingsQuiz from './KingsQuiz';\r\n\r\nexport { KingsQuiz };\r\nexport default KingsQuiz;","\n          export default function styleInject(css, { insertAt } = {}) {\n            if (!css || typeof document === 'undefined') return\n          \n            const head = document.head || document.getElementsByTagName('head')[0]\n            const style = document.createElement('style')\n            style.type = 'text/css'\n          \n            if (insertAt === 'top') {\n              if (head.firstChild) {\n                head.insertBefore(style, head.firstChild)\n              } else {\n                head.appendChild(style)\n              }\n            } else {\n              head.appendChild(style)\n            }\n          \n            if (style.styleSheet) {\n              style.styleSheet.cssText = css\n            } else {\n              style.appendChild(document.createTextNode(css))\n            }\n          }\n          ","import styleInject from '#style-inject';styleInject(\":root {\\n  --bg-primary: #000000;\\n  --bg-secondary: #0a0a0a;\\n  --bg-tertiary: #111111;\\n  --bg-card: #1a1a1a;\\n  --bg-card-hover: #222222;\\n  --neon-green: #00cc33;\\n  --neon-green-glow: #00cc33;\\n  --neon-green-dim: #009926;\\n  --neon-green-dark: #006619;\\n  --text-primary: #ffffff;\\n  --text-secondary: #cccccc;\\n  --text-muted: #888888;\\n  --text-neon: #00cc33;\\n  --border-primary: #333333;\\n  --border-neon: #00cc33;\\n  --border-glow: rgba(0, 204, 51, 0.2);\\n  --shadow-neon: 0 0 8px rgba(0, 204, 51, 0.3);\\n  --shadow-neon-strong: 0 0 15px rgba(0, 204, 51, 0.4);\\n  --shadow-card: 0 4px 8px rgba(0, 0, 0, 0.5);\\n  --font-mono:\\n    \\\"Courier New\\\",\\n    \\\"Monaco\\\",\\n    \\\"Menlo\\\",\\n    monospace;\\n  --font-main: \\\"Arial\\\", sans-serif;\\n}\\n* {\\n  box-sizing: border-box;\\n}\\nbody {\\n  margin: 0;\\n  font-family: var(--font-main);\\n  -webkit-font-smoothing: antialiased;\\n  -moz-osx-font-smoothing: grayscale;\\n  background:\\n    linear-gradient(\\n      135deg,\\n      var(--bg-primary) 0%,\\n      var(--bg-secondary) 100%);\\n  min-height: 100vh;\\n  color: var(--text-primary);\\n  overflow-x: hidden;\\n}\\nbody::before {\\n  content: \\\"\\\";\\n  position: fixed;\\n  top: 0;\\n  left: 0;\\n  width: 100%;\\n  height: 100%;\\n  background:\\n    repeating-linear-gradient(\\n      0deg,\\n      transparent,\\n      transparent 2px,\\n      rgba(0, 204, 51, 0.015) 2px,\\n      rgba(0, 204, 51, 0.015) 4px);\\n  pointer-events: none;\\n  z-index: 1;\\n}\\n.trivia-container {\\n  max-width: 900px;\\n  margin: 0 auto;\\n  padding: 20px;\\n  min-height: 100vh;\\n  display: flex;\\n  flex-direction: column;\\n  position: relative;\\n  z-index: 2;\\n}\\n.trivia-header {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--bg-card) 0%,\\n      var(--bg-tertiary) 100%);\\n  border: 2px solid var(--border-neon);\\n  border-radius: 12px;\\n  padding: 25px;\\n  margin-bottom: 30px;\\n  box-shadow: var(--shadow-neon), var(--shadow-card);\\n  position: relative;\\n  overflow: hidden;\\n}\\n.trivia-header::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 0;\\n  left: -100%;\\n  width: 100%;\\n  height: 100%;\\n  background:\\n    linear-gradient(\\n      90deg,\\n      transparent,\\n      rgba(0, 204, 51, 0.05),\\n      transparent);\\n  animation: scanline 3s infinite;\\n}\\n@keyframes scanline {\\n  0% {\\n    left: -100%;\\n  }\\n  100% {\\n    left: 100%;\\n  }\\n}\\n.progress-bar {\\n  width: 100%;\\n  height: 12px;\\n  background: var(--bg-tertiary);\\n  border: 1px solid var(--border-neon);\\n  border-radius: 6px;\\n  overflow: hidden;\\n  margin-bottom: 20px;\\n  position: relative;\\n}\\n.progress-fill {\\n  height: 100%;\\n  background:\\n    linear-gradient(\\n      90deg,\\n      var(--neon-green) 0%,\\n      var(--neon-green-dim) 100%);\\n  box-shadow: 0 0 6px var(--neon-green-glow);\\n  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);\\n  position: relative;\\n}\\n.progress-fill::after {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n  background:\\n    linear-gradient(\\n      90deg,\\n      transparent,\\n      rgba(255, 255, 255, 0.3),\\n      transparent);\\n  animation: progressGlow 2s infinite;\\n}\\n@keyframes progressGlow {\\n  0%, 100% {\\n    opacity: 0;\\n  }\\n  50% {\\n    opacity: 1;\\n  }\\n}\\n.question-counter {\\n  font-family: var(--font-mono);\\n  font-size: 16px;\\n  color: var(--text-neon);\\n  margin-bottom: 8px;\\n  text-transform: uppercase;\\n  letter-spacing: 1px;\\n}\\n.score {\\n  font-family: var(--font-mono);\\n  font-size: 24px;\\n  font-weight: bold;\\n  color: var(--neon-green);\\n  text-shadow: 0 0 6px var(--neon-green-glow);\\n}\\n.question-section {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--bg-card) 0%,\\n      var(--bg-tertiary) 100%);\\n  border: 2px solid var(--border-neon);\\n  border-radius: 12px;\\n  padding: 40px 30px;\\n  margin-bottom: 30px;\\n  box-shadow: var(--shadow-neon), var(--shadow-card);\\n  text-align: center;\\n  position: relative;\\n  overflow: hidden;\\n}\\n.question-section-set-height {\\n  height: 150px;\\n}\\n.question {\\n  font-size: 28px;\\n  font-weight: 600;\\n  color: var(--text-primary);\\n  margin: 0;\\n  line-height: 1.4;\\n  text-shadow: 0 0 5px rgba(255, 255, 255, 0.3);\\n}\\n.answers-section {\\n  display: flex;\\n  flex-direction: column;\\n  gap: 15px;\\n  margin-bottom: 30px;\\n}\\n.answer-option {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--bg-card) 0%,\\n      var(--bg-tertiary) 100%);\\n  border: 2px solid var(--border-primary);\\n  border-radius: 12px;\\n  padding: 20px;\\n  font-size: 18px;\\n  cursor: pointer;\\n  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\\n  display: flex;\\n  align-items: center;\\n  text-align: left;\\n  box-shadow: var(--shadow-card);\\n  color: var(--text-primary);\\n  position: relative;\\n  overflow: hidden;\\n}\\n.answer-option::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 0;\\n  left: -100%;\\n  width: 100%;\\n  height: 100%;\\n  background:\\n    linear-gradient(\\n      90deg,\\n      transparent,\\n      rgba(0, 204, 51, 0.05),\\n      transparent);\\n  transition: left 0.5s ease;\\n}\\n.answer-option:hover::before {\\n  left: 100%;\\n}\\n.answer-option:hover:not(:disabled) {\\n  border-color: var(--neon-green);\\n  box-shadow: var(--shadow-neon), var(--shadow-card);\\n  transform: translateY(-2px);\\n}\\n.answer-option.selected {\\n  border-color: var(--neon-green);\\n  background:\\n    linear-gradient(\\n      145deg,\\n      rgba(0, 204, 51, 0.08) 0%,\\n      var(--bg-card) 100%);\\n  box-shadow: var(--shadow-neon-strong);\\n}\\n.answer-option.correct {\\n  border-color: var(--neon-green);\\n  background:\\n    linear-gradient(\\n      145deg,\\n      rgba(0, 204, 51, 0.12) 0%,\\n      var(--bg-card) 100%);\\n  box-shadow: var(--shadow-neon-strong);\\n  animation: correctPulse 0.6s ease-out;\\n}\\n@keyframes correctPulse {\\n  0% {\\n    transform: scale(1);\\n  }\\n  50% {\\n    transform: scale(1.02);\\n  }\\n  100% {\\n    transform: scale(1);\\n  }\\n}\\n.answer-option.incorrect {\\n  border-color: #ff0040;\\n  background:\\n    linear-gradient(\\n      145deg,\\n      rgba(255, 0, 64, 0.15) 0%,\\n      var(--bg-card) 100%);\\n  box-shadow: 0 0 20px rgba(255, 0, 64, 0.5);\\n  animation: incorrectShake 0.6s ease-out;\\n}\\n@keyframes incorrectShake {\\n  0%, 100% {\\n    transform: translateX(0);\\n  }\\n  25% {\\n    transform: translateX(-5px);\\n  }\\n  75% {\\n    transform: translateX(5px);\\n  }\\n}\\n.answer-option:disabled {\\n  cursor: not-allowed;\\n  opacity: 0.7;\\n}\\n.option-text {\\n  flex: 1;\\n  font-family: var(--font-main);\\n  font-weight: 500;\\n}\\n.submit-section {\\n  text-align: center;\\n}\\n.submit-btn {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--neon-green) 0%,\\n      var(--neon-green-dim) 100%);\\n  color: var(--bg-primary);\\n  border: none;\\n  border-radius: 12px;\\n  padding: 18px 50px;\\n  font-size: 20px;\\n  font-weight: 700;\\n  font-family: var(--font-mono);\\n  cursor: pointer;\\n  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\\n  box-shadow: var(--shadow-neon), var(--shadow-card);\\n  text-transform: uppercase;\\n  letter-spacing: 1px;\\n  position: relative;\\n  overflow: hidden;\\n}\\n.submit-btn::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 0;\\n  left: -100%;\\n  width: 100%;\\n  height: 100%;\\n  background:\\n    linear-gradient(\\n      90deg,\\n      transparent,\\n      rgba(255, 255, 255, 0.3),\\n      transparent);\\n  transition: left 0.5s ease;\\n}\\n.submit-btn:hover::before {\\n  left: 100%;\\n}\\n.submit-btn:hover:not(:disabled) {\\n  transform: translateY(-3px);\\n  box-shadow: var(--shadow-neon-strong), 0 8px 16px rgba(0, 0, 0, 0.3);\\n}\\n.submit-btn:disabled {\\n  opacity: 0.5;\\n  cursor: not-allowed;\\n  transform: none;\\n}\\n.result-message {\\n  font-size: 24px;\\n  font-weight: 700;\\n  padding: 20px;\\n  font-family: var(--font-mono);\\n  text-transform: uppercase;\\n  letter-spacing: 2px;\\n}\\n.correct-message {\\n  color: var(--neon-green);\\n  text-shadow: 0 0 8px var(--neon-green-glow);\\n  animation: textGlow 2s infinite;\\n}\\n.incorrect-message {\\n  color: #ff0040;\\n  text-shadow: 0 0 15px rgba(255, 0, 64, 0.7);\\n}\\n@keyframes textGlow {\\n  0%, 100% {\\n    text-shadow: 0 0 8px var(--neon-green-glow);\\n  }\\n  50% {\\n    text-shadow: 0 0 12px var(--neon-green-glow), 0 0 16px var(--neon-green-glow);\\n  }\\n}\\n.game-finished {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--bg-card) 0%,\\n      var(--bg-tertiary) 100%);\\n  border: 2px solid var(--border-neon);\\n  border-radius: 12px;\\n  padding: 60px 40px;\\n  text-align: center;\\n  box-shadow: var(--shadow-neon), var(--shadow-card);\\n  margin-top: 50px;\\n  position: relative;\\n  overflow: hidden;\\n}\\n.game-finished::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n  background:\\n    radial-gradient(\\n      circle at 50% 50%,\\n      rgba(0, 204, 51, 0.03) 0%,\\n      transparent 70%);\\n  pointer-events: none;\\n}\\n.game-finished h1 {\\n  color: var(--neon-green);\\n  margin-bottom: 30px;\\n  font-size: 42px;\\n  font-family: var(--font-mono);\\n  text-transform: uppercase;\\n  letter-spacing: 3px;\\n  text-shadow: 0 0 12px var(--neon-green-glow);\\n}\\n.final-score h2 {\\n  color: var(--text-primary);\\n  margin-bottom: 15px;\\n  font-size: 36px;\\n  font-family: var(--font-mono);\\n}\\n.score-percentage {\\n  font-size: 28px;\\n  color: var(--neon-green);\\n  margin-bottom: 40px;\\n  font-family: var(--font-mono);\\n  text-shadow: 0 0 6px var(--neon-green-glow);\\n}\\n.play-again-btn {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--neon-green) 0%,\\n      var(--neon-green-dim) 100%);\\n  color: var(--bg-primary);\\n  border: none;\\n  border-radius: 12px;\\n  padding: 20px 50px;\\n  font-size: 20px;\\n  font-weight: 700;\\n  font-family: var(--font-mono);\\n  cursor: pointer;\\n  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\\n  box-shadow: var(--shadow-neon), var(--shadow-card);\\n  text-transform: uppercase;\\n  letter-spacing: 2px;\\n}\\n.play-again-btn:hover {\\n  transform: translateY(-3px);\\n  box-shadow: var(--shadow-neon-strong), 0 8px 16px rgba(0, 0, 0, 0.3);\\n}\\n.landing-screen {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--bg-card) 0%,\\n      var(--bg-tertiary) 100%);\\n  border: 2px solid var(--border-neon);\\n  border-radius: 12px;\\n  padding: 50px 40px;\\n  text-align: center;\\n  box-shadow: var(--shadow-neon), var(--shadow-card);\\n  margin-top: 20px;\\n  max-width: 800px;\\n  margin-left: auto;\\n  margin-right: auto;\\n  position: relative;\\n  overflow: hidden;\\n}\\n.landing-screen::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n  background:\\n    radial-gradient(\\n      circle at 30% 30%,\\n      rgba(0, 204, 51, 0.03) 0%,\\n      transparent 50%);\\n  pointer-events: none;\\n}\\n.app-title {\\n  font-size: 56px;\\n  font-weight: 900;\\n  color: var(--neon-green);\\n  margin-bottom: 15px;\\n  font-family: var(--font-mono);\\n  text-transform: uppercase;\\n  letter-spacing: 4px;\\n  text-shadow: 0 0 15px var(--neon-green-glow);\\n  animation: titleGlow 3s infinite;\\n}\\n@keyframes titleGlow {\\n  0%, 100% {\\n    text-shadow: 0 0 15px var(--neon-green-glow);\\n  }\\n  50% {\\n    text-shadow: 0 0 20px var(--neon-green-glow), 0 0 25px var(--neon-green-glow);\\n  }\\n}\\n.app-description {\\n  font-size: 22px;\\n  color: var(--text-secondary);\\n  margin-bottom: 50px;\\n  line-height: 1.6;\\n  font-family: var(--font-main);\\n}\\n.game-settings {\\n  margin-bottom: 50px;\\n}\\n.setting-group {\\n  margin-bottom: 40px;\\n}\\n.setting-group h3 {\\n  font-size: 24px;\\n  color: var(--neon-green);\\n  margin-bottom: 20px;\\n  font-family: var(--font-mono);\\n  text-transform: uppercase;\\n  letter-spacing: 1px;\\n  text-shadow: 0 0 6px var(--neon-green-glow);\\n}\\n.category-options {\\n  display: grid;\\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\\n  gap: 20px;\\n}\\n.category-option {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--bg-card) 0%,\\n      var(--bg-tertiary) 100%);\\n  border: 2px solid var(--border-primary);\\n  border-radius: 12px;\\n  padding: 20px;\\n  cursor: pointer;\\n  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\\n  text-align: left;\\n  box-shadow: var(--shadow-card);\\n  position: relative;\\n  overflow: hidden;\\n}\\n.category-option::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 0;\\n  left: -100%;\\n  width: 100%;\\n  height: 100%;\\n  background:\\n    linear-gradient(\\n      90deg,\\n      transparent,\\n      rgba(0, 204, 51, 0.05),\\n      transparent);\\n  transition: left 0.5s ease;\\n}\\n.category-option:hover::before {\\n  left: 100%;\\n}\\n.category-option:hover {\\n  border-color: var(--neon-green);\\n  transform: translateY(-2px);\\n  box-shadow: var(--shadow-neon), var(--shadow-card);\\n}\\n.category-option.selected {\\n  border-color: var(--neon-green);\\n  background:\\n    linear-gradient(\\n      145deg,\\n      rgba(0, 204, 51, 0.08) 0%,\\n      var(--bg-card) 100%);\\n  box-shadow: var(--shadow-neon-strong);\\n}\\n.category-name {\\n  display: block;\\n  font-size: 18px;\\n  font-weight: 600;\\n  color: var(--text-primary);\\n  margin-bottom: 8px;\\n  font-family: var(--font-main);\\n}\\n.category-count {\\n  font-size: 14px;\\n  color: var(--text-muted);\\n  font-family: var(--font-mono);\\n}\\n.game-info {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--bg-tertiary) 0%,\\n      var(--bg-secondary) 100%);\\n  border: 1px solid var(--border-neon);\\n  border-radius: 12px;\\n  padding: 25px;\\n  margin-bottom: 40px;\\n  box-shadow: var(--shadow-neon);\\n}\\n.info-summary p {\\n  margin: 8px 0;\\n  color: var(--text-primary);\\n  font-size: 18px;\\n  font-family: var(--font-main);\\n}\\n.start-btn {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--neon-green) 0%,\\n      var(--neon-green-dim) 100%);\\n  color: var(--bg-primary);\\n  border: none;\\n  border-radius: 12px;\\n  padding: 25px 60px;\\n  font-size: 28px;\\n  font-weight: 700;\\n  font-family: var(--font-mono);\\n  cursor: pointer;\\n  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\\n  box-shadow: var(--shadow-neon), var(--shadow-card);\\n  text-transform: uppercase;\\n  letter-spacing: 2px;\\n  position: relative;\\n  overflow: hidden;\\n}\\n.start-btn::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 0;\\n  left: -100%;\\n  width: 100%;\\n  height: 100%;\\n  background:\\n    linear-gradient(\\n      90deg,\\n      transparent,\\n      rgba(255, 255, 255, 0.3),\\n      transparent);\\n  transition: left 0.5s ease;\\n}\\n.start-btn:hover::before {\\n  left: 100%;\\n}\\n.start-btn:hover:not(:disabled) {\\n  transform: translateY(-3px);\\n  box-shadow: var(--shadow-neon-strong), 0 8px 16px rgba(0, 0, 0, 0.3);\\n}\\n.start-btn:disabled {\\n  opacity: 0.5;\\n  cursor: not-allowed;\\n  transform: none;\\n}\\n.category-header {\\n  display: flex;\\n  justify-content: space-between;\\n  align-items: center;\\n  margin-bottom: 5px;\\n}\\n.checkmark {\\n  color: var(--neon-green);\\n  font-size: 20px;\\n  font-weight: bold;\\n  text-shadow: 0 0 6px var(--neon-green-glow);\\n}\\n.results-sections {\\n  margin: 40px 0;\\n  width: 100%;\\n}\\n.results-section {\\n  margin-bottom: 25px;\\n  border-radius: 12px;\\n  overflow: hidden;\\n  box-shadow: var(--shadow-card);\\n  border: 1px solid var(--border-primary);\\n}\\n.section-header {\\n  width: 100%;\\n  padding: 20px 25px;\\n  border: none;\\n  font-size: 20px;\\n  font-weight: 600;\\n  cursor: pointer;\\n  display: flex;\\n  justify-content: space-between;\\n  align-items: center;\\n  transition: all 0.3s ease;\\n  background:\\n    linear-gradient(\\n      145deg,\\n      var(--bg-tertiary) 0%,\\n      var(--bg-secondary) 100%);\\n  color: var(--text-primary);\\n  border-bottom: 1px solid var(--border-primary);\\n  font-family: var(--font-mono);\\n  text-transform: uppercase;\\n  letter-spacing: 1px;\\n}\\n.wrong-header {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      rgba(255, 0, 64, 0.1) 0%,\\n      var(--bg-tertiary) 100%);\\n  color: #ff0040;\\n  border-bottom: 1px solid #ff0040;\\n}\\n.wrong-header:hover {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      rgba(255, 0, 64, 0.15) 0%,\\n      var(--bg-tertiary) 100%);\\n  box-shadow: 0 0 15px rgba(255, 0, 64, 0.3);\\n}\\n.right-header {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      rgba(0, 204, 51, 0.08) 0%,\\n      var(--bg-tertiary) 100%);\\n  color: var(--neon-green);\\n  border-bottom: 1px solid var(--neon-green);\\n}\\n.right-header:hover {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      rgba(0, 255, 65, 0.15) 0%,\\n      var(--bg-tertiary) 100%);\\n  box-shadow: var(--shadow-neon);\\n}\\n.expand-icon {\\n  transition: transform 0.3s ease;\\n  font-size: 16px;\\n  color: var(--text-secondary);\\n}\\n.expand-icon.expanded {\\n  transform: rotate(180deg);\\n}\\n.questions-list {\\n  background: var(--bg-card);\\n  max-height: 400px;\\n  overflow-y: auto;\\n}\\n.question-result {\\n  padding: 25px;\\n  border-bottom: 1px solid var(--border-primary);\\n}\\n.question-result:last-child {\\n  border-bottom: none;\\n}\\n.wrong-result {\\n  border-left: 4px solid #ff0040;\\n  background:\\n    linear-gradient(\\n      90deg,\\n      rgba(255, 0, 64, 0.05) 0%,\\n      transparent 100%);\\n}\\n.right-result {\\n  border-left: 4px solid var(--neon-green);\\n  background:\\n    linear-gradient(\\n      90deg,\\n      rgba(0, 204, 51, 0.03) 0%,\\n      transparent 100%);\\n}\\n.result-question {\\n  font-size: 18px;\\n  font-weight: 600;\\n  color: var(--text-primary);\\n  margin: 0 0 20px 0;\\n  line-height: 1.5;\\n  font-family: var(--font-main);\\n}\\n.result-options {\\n  display: flex;\\n  flex-direction: column;\\n  gap: 12px;\\n}\\n.result-option {\\n  display: flex;\\n  align-items: center;\\n  padding: 15px 18px;\\n  border-radius: 8px;\\n  font-size: 16px;\\n  border: 1px solid var(--border-primary);\\n  background: var(--bg-tertiary);\\n  font-family: var(--font-main);\\n}\\n.result-option .option-text {\\n  flex: 1;\\n  color: var(--text-primary);\\n}\\n.result-option .option-indicator {\\n  font-size: 14px;\\n  font-weight: 600;\\n  margin-left: 15px;\\n  font-family: var(--font-mono);\\n  text-transform: uppercase;\\n  letter-spacing: 1px;\\n}\\n.correct-option {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      rgba(0, 204, 51, 0.08) 0%,\\n      var(--bg-tertiary) 100%);\\n  border-color: var(--neon-green);\\n  color: var(--text-primary);\\n  box-shadow: 0 0 8px rgba(0, 204, 51, 0.15);\\n}\\n.correct-option .option-indicator {\\n  color: var(--neon-green);\\n  text-shadow: 0 0 4px var(--neon-green-glow);\\n}\\n.wrong-option {\\n  background:\\n    linear-gradient(\\n      145deg,\\n      rgba(255, 0, 64, 0.1) 0%,\\n      var(--bg-tertiary) 100%);\\n  border-color: #ff0040;\\n  color: var(--text-primary);\\n  box-shadow: 0 0 10px rgba(255, 0, 64, 0.2);\\n}\\n.wrong-option .option-indicator {\\n  color: #ff0040;\\n  text-shadow: 0 0 5px rgba(255, 0, 64, 0.7);\\n}\\n.no-questions {\\n  padding: 50px 25px;\\n  text-align: center;\\n  font-size: 20px;\\n  color: var(--text-muted);\\n  font-style: italic;\\n  font-family: var(--font-main);\\n}\\n.loading {\\n  display: flex;\\n  justify-content: center;\\n  align-items: center;\\n  min-height: 100vh;\\n  font-size: 24px;\\n  color: var(--neon-green);\\n  font-family: var(--font-mono);\\n  text-transform: uppercase;\\n  letter-spacing: 2px;\\n  text-shadow: 0 0 8px var(--neon-green-glow);\\n  animation: loadingPulse 2s infinite;\\n}\\n@keyframes loadingPulse {\\n  0%, 100% {\\n    opacity: 0.7;\\n  }\\n  50% {\\n    opacity: 1;\\n  }\\n}\\n@media (max-width: 768px) {\\n  .trivia-container {\\n    padding: 15px;\\n  }\\n  .landing-screen {\\n    padding: 30px 20px;\\n    margin-top: 10px;\\n  }\\n  .app-title {\\n    font-size: 36px;\\n    letter-spacing: 2px;\\n  }\\n  .app-description {\\n    font-size: 18px;\\n  }\\n  .category-options {\\n    grid-template-columns: 1fr;\\n  }\\n  .start-btn {\\n    padding: 20px 40px;\\n    font-size: 22px;\\n  }\\n  .question {\\n    font-size: 24px;\\n  }\\n  .answer-option {\\n    padding: 15px;\\n    font-size: 16px;\\n  }\\n  .section-header {\\n    padding: 15px 20px;\\n    font-size: 16px;\\n  }\\n  .question-result {\\n    padding: 20px;\\n  }\\n  .result-question {\\n    font-size: 16px;\\n  }\\n  .result-option {\\n    padding: 12px 15px;\\n    font-size: 14px;\\n  }\\n  .questions-list {\\n    max-height: 300px;\\n  }\\n  .game-finished {\\n    padding: 40px 25px;\\n  }\\n  .game-finished h1 {\\n    font-size: 32px;\\n  }\\n  .final-score h2 {\\n    font-size: 28px;\\n  }\\n  .score-percentage {\\n    font-size: 24px;\\n  }\\n}\\n.questions-list::-webkit-scrollbar {\\n  width: 8px;\\n}\\n.questions-list::-webkit-scrollbar-track {\\n  background: var(--bg-tertiary);\\n  border-radius: 4px;\\n}\\n.questions-list::-webkit-scrollbar-thumb {\\n  background: var(--neon-green);\\n  border-radius: 4px;\\n  box-shadow: 0 0 5px var(--neon-green-glow);\\n}\\n.questions-list::-webkit-scrollbar-thumb:hover {\\n  background: var(--neon-green-dim);\\n}\\n\")","import { useState } from \"react\"\r\nimport { type Category, type Question, type QuestionResult } from \"./types\"\r\nimport { LandingPage } from \"./components/Landing\"\r\nimport { Results } from \"./components/Results\"\r\nimport { fetchQuestions } from \"./api\"\r\n\r\nexport default function KingsQuiz() {\r\n  const [showResult, setShowResult] = useState(false)\r\n  const [gameFinished, setGameFinished] = useState(false)\r\n  const [gameStarted, setGameStarted] = useState(false)\r\n  const [loadingQuestions, setLoadingQuestions] = useState(false)\r\n\r\n  const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0)\r\n  const [selectedAnswer, setSelectedAnswer] = useState<string | null>(null)\r\n  const [score, setScore] = useState(0)\r\n  const [selectedCategories, setSelectedCategories] = useState<Category[]>([\"successor\", \"kingdom\", \"approval\", \"prophetKing\"])\r\n  const [selectedQuestionCount, setSelectedQuestionCount] = useState(10)\r\n  const [gameQuestions, setGameQuestions] = useState<Question[]>([])\r\n  const [questionResults, setQuestionResults] = useState<QuestionResult[]>([])\r\n\r\n  const currentQuestion = gameQuestions[currentQuestionIndex]\r\n\r\n  const handleAnswerSelect = (answer: string) => {\r\n    if (showResult) return; // Prevent double click during result\r\n    setSelectedAnswer(answer);\r\n    // Immediately submit\r\n    const isCorrect = answer === currentQuestion.correctAnswer;\r\n    if (isCorrect) {\r\n      setScore(score + 1);\r\n    }\r\n    // Store the result\r\n    const result: QuestionResult = {\r\n      question: currentQuestion,\r\n      userAnswer: answer,\r\n      isCorrect: isCorrect,\r\n    };\r\n    setQuestionResults((prev) => [...prev, result]);\r\n    setShowResult(true);\r\n    setTimeout(() => {\r\n      if (currentQuestionIndex < gameQuestions.length - 1) {\r\n        setCurrentQuestionIndex(currentQuestionIndex + 1);\r\n        setSelectedAnswer(null);\r\n        setShowResult(false);\r\n      } else {\r\n        setGameFinished(true);\r\n      }\r\n    }, 1000);\r\n  };\r\n\r\n  const handleCategoryToggle = (categoryId: Category) => {\r\n    setSelectedCategories((prev) => {\r\n      if (prev.includes(categoryId)) {\r\n        return prev.filter((id) => id !== categoryId)\r\n      } else {\r\n        return [...prev, categoryId]\r\n      }\r\n    })\r\n  }\r\n\r\n  const startGame = async () => {\r\n    setLoadingQuestions(true)\r\n    const fetchedQuestions = await fetchQuestions(selectedQuestionCount, selectedCategories);\r\n    const shuffled = [...fetchedQuestions].sort(() => Math.random() - 0.5)\r\n    setGameQuestions(shuffled)\r\n    setLoadingQuestions(false)\r\n    setGameStarted(true)\r\n  }\r\n\r\n  const resetGame = () => {\r\n    setCurrentQuestionIndex(0)\r\n    setSelectedAnswer(null)\r\n    setScore(0)\r\n    setShowResult(false)\r\n    setGameFinished(false)\r\n    setGameStarted(false)\r\n    setGameQuestions([])\r\n    setQuestionResults([])\r\n  }\r\n\r\n  if (loadingQuestions) {\r\n    return <div className=\"loading\">Loading questions...</div>\r\n  }\r\n\r\n  if (gameFinished) {\r\n    return (\r\n      <Results\r\n        score={score}\r\n        gameQuestions={gameQuestions}\r\n        questionResults={questionResults}\r\n        resetGame={resetGame}\r\n      />\r\n    )\r\n  }\r\n\r\n  if (!gameStarted) {\r\n    return (\r\n      <LandingPage\r\n        selectedQuestionCount={selectedQuestionCount}\r\n        setSelectedQuestionCount={setSelectedQuestionCount}\r\n        selectedCategories={selectedCategories}\r\n        handleCategoryChange={handleCategoryToggle}\r\n        startGame={startGame}\r\n      />\r\n    )\r\n  }\r\n\r\n  return (\r\n    <div className=\"trivia-container\">\r\n      <div className=\"trivia-header\">\r\n        <div className=\"progress-bar\">\r\n          <div\r\n            className=\"progress-fill\"\r\n            style={{ width: `${((currentQuestionIndex + 1) / gameQuestions.length) * 100}%` }}\r\n          ></div>\r\n        </div>\r\n        <div className=\"question-counter\">\r\n          Question {currentQuestionIndex + 1} of {gameQuestions.length}\r\n        </div>\r\n        <div className=\"score\">Score: {score}</div>\r\n      </div>\r\n\r\n      <div className=\"question-section question-section-set-height\">\r\n        {showResult ? (\r\n          <div className=\"result-message\">\r\n            {selectedAnswer === currentQuestion.correctAnswer ? (\r\n              <span className=\"correct-message\">✓ Correct!</span>\r\n            ) : (\r\n              <span className=\"incorrect-message\">\r\n                ✗ Incorrect. The correct answer was {currentQuestion.correctAnswer}.\r\n              </span>\r\n            )}\r\n          </div>\r\n        ) : <h1 className=\"question\">{currentQuestion.question}</h1>}\r\n      </div>\r\n\r\n      <div className=\"answers-section\">\r\n        {currentQuestion.options.map((option, index) => (\r\n          <button\r\n            key={index}\r\n            className={`answer-option ${selectedAnswer === option ? \"selected\" : \"\"} ${\r\n              showResult\r\n                ? option === currentQuestion.correctAnswer\r\n                  ? \"correct\"\r\n                  : selectedAnswer === option\r\n                    ? \"incorrect\"\r\n                    : \"\"\r\n                : \"\"\r\n            }`}\r\n            onClick={() => handleAnswerSelect(option)}\r\n            disabled={showResult}\r\n          >\r\n            <span className=\"option-text\">{option}</span>\r\n          </button>\r\n        ))}\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n","export interface Question {\r\n  question: string;\r\n  options: string[];\r\n  correctAnswer: string;\r\n  explanation?: string;\r\n}\r\n\r\nexport interface QuestionResult {\r\n  question: Question\r\n  userAnswer: string\r\n  isCorrect: boolean\r\n}\r\nexport type Category = \"successor\" | \"kingdom\" | \"approval\" | \"prophetKing\"\r\n\r\nexport const categoryNamesMap: Record<Category, string> = {\r\n  \"successor\": \"Succession\",\r\n  \"kingdom\": \"Which Kingdom?\",\r\n  \"approval\": \"Good or Bad\",\r\n  \"prophetKing\": \"Who's your prophet?\"\r\n}","import styleInject from '#style-inject';styleInject(\".slider-container {\\n  display: flex;\\n  flex-direction: column;\\n  align-items: center;\\n  gap: 15px;\\n  padding: 20px;\\n  background:\\n    linear-gradient(\\n      145deg,\\n      #1a1a1a 0%,\\n      #111111 100%);\\n  border: 2px solid #00cc33;\\n  border-radius: 12px;\\n  box-shadow: 0 0 10px rgba(0, 204, 51, 0.2);\\n  position: relative;\\n  overflow: hidden;\\n}\\n.slider-container::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 0;\\n  left: -100%;\\n  width: 100%;\\n  height: 100%;\\n  background:\\n    linear-gradient(\\n      90deg,\\n      transparent,\\n      rgba(0, 204, 51, 0.03),\\n      transparent);\\n  animation: sliderScanline 4s infinite;\\n}\\n@keyframes sliderScanline {\\n  0% {\\n    left: -100%;\\n  }\\n  100% {\\n    left: 100%;\\n  }\\n}\\n.question-slider {\\n  width: 100%;\\n  max-width: 400px;\\n  height: 12px;\\n  border-radius: 6px;\\n  background: #111111;\\n  outline: none;\\n  -webkit-appearance: none;\\n  appearance: none;\\n  border: 1px solid #00cc33;\\n  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.5);\\n  position: relative;\\n}\\n.question-slider::-webkit-slider-thumb {\\n  -webkit-appearance: none;\\n  appearance: none;\\n  width: 28px;\\n  height: 28px;\\n  border-radius: 50%;\\n  background:\\n    linear-gradient(\\n      145deg,\\n      #00cc33 0%,\\n      #009926 100%);\\n  cursor: pointer;\\n  box-shadow: 0 0 10px rgba(0, 204, 51, 0.5), 0 0 3px rgba(0, 204, 51, 0.2);\\n  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\\n  border: 2px solid #ffffff;\\n  position: relative;\\n  margin-top: -8px;\\n}\\n.question-slider::-webkit-slider-thumb::before {\\n  content: \\\"\\\";\\n  position: absolute;\\n  top: 50%;\\n  left: 50%;\\n  transform: translate(-50%, -50%);\\n  width: 8px;\\n  height: 8px;\\n  background: #000000;\\n  border-radius: 50%;\\n  box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);\\n}\\n.question-slider::-webkit-slider-thumb:hover {\\n  transform: scale(1.2);\\n  box-shadow: 0 0 15px rgba(0, 204, 51, 0.6), 0 0 6px rgba(0, 204, 51, 0.3);\\n}\\n.question-slider::-webkit-slider-thumb:active {\\n  transform: scale(1.1);\\n  box-shadow: 0 0 12px rgba(0, 204, 51, 0.5);\\n}\\n.question-slider::-moz-range-thumb {\\n  width: 28px;\\n  height: 28px;\\n  border-radius: 50%;\\n  background:\\n    linear-gradient(\\n      145deg,\\n      #00cc33 0%,\\n      #009926 100%);\\n  cursor: pointer;\\n  border: 2px solid #ffffff;\\n  box-shadow: 0 0 10px rgba(0, 204, 51, 0.5), 0 0 3px rgba(0, 204, 51, 0.2);\\n  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\\n  margin-top: -8px;\\n}\\n.question-slider::-moz-range-thumb:hover {\\n  transform: scale(1.2);\\n  box-shadow: 0 0 15px rgba(0, 204, 51, 0.6), 0 0 6px rgba(0, 204, 51, 0.3);\\n}\\n.question-slider::-moz-range-thumb:active {\\n  transform: scale(1.1);\\n  box-shadow: 0 0 12px rgba(0, 204, 51, 0.5);\\n}\\n.question-slider:disabled {\\n  opacity: 0.5;\\n  cursor: not-allowed;\\n  border-color: #666666;\\n}\\n.question-slider:disabled::-webkit-slider-thumb {\\n  cursor: not-allowed;\\n  background: #666666;\\n  box-shadow: none;\\n}\\n.question-slider:disabled::-moz-range-thumb {\\n  cursor: not-allowed;\\n  background: #666666;\\n  box-shadow: none;\\n}\\n.slider-labels {\\n  display: flex;\\n  justify-content: space-between;\\n  width: 100%;\\n  max-width: 400px;\\n  font-size: 16px;\\n  color: #00cc33;\\n  padding: 0 15px;\\n  font-family:\\n    \\\"Courier New\\\",\\n    \\\"Monaco\\\",\\n    \\\"Menlo\\\",\\n    monospace;\\n  font-weight: 600;\\n  text-transform: uppercase;\\n  letter-spacing: 1px;\\n  text-shadow: 0 0 4px rgba(0, 204, 51, 0.3);\\n}\\n.question-slider::-moz-range-track {\\n  height: 12px;\\n  border-radius: 6px;\\n  background: #111111;\\n  border: 1px solid #00cc33;\\n  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.5);\\n}\\n.question-slider::-webkit-slider-runnable-track {\\n  height: 12px;\\n  border-radius: 6px;\\n  background:\\n    linear-gradient(\\n      90deg,\\n      #00cc33 0%,\\n      #009926 100%);\\n  box-shadow: 0 0 6px rgba(0, 204, 51, 0.3);\\n  border: 1px solid #00cc33;\\n}\\n@media (max-width: 768px) {\\n  .slider-container {\\n    padding: 15px;\\n  }\\n  .question-slider {\\n    max-width: 300px;\\n    height: 10px;\\n  }\\n  .question-slider::-webkit-slider-thumb {\\n    width: 24px;\\n    height: 24px;\\n    margin-top: -7px;\\n  }\\n  .question-slider::-moz-range-thumb {\\n    width: 24px;\\n    height: 24px;\\n    margin-top: -7px;\\n  }\\n  .slider-labels {\\n    max-width: 300px;\\n    font-size: 14px;\\n    padding: 0 12px;\\n  }\\n}\\n\")","import './slider.css';\r\n\r\ntype SliderProps = {\r\n    value: number;\r\n    onChange: (value: number) => void;\r\n    min?: number;\r\n    max?: number;\r\n    step?: number;\r\n    disabled?: boolean;\r\n\r\n}\r\n\r\nexport const Slider = ({\r\n    value,\r\n    onChange,\r\n    min = 5,\r\n    max = 20,\r\n    step = 1,\r\n    disabled = false\r\n}: SliderProps) =>\r\n    <div className=\"slider-container\">\r\n        <input\r\n            type=\"range\"\r\n            min={min}\r\n            max={max}\r\n            step={step}\r\n            value={value}\r\n            onChange={(e) => onChange(Number(e.target.value))}\r\n            className=\"question-slider\"\r\n            disabled={disabled}\r\n        />\r\n        <div className=\"slider-labels\">\r\n            <span>{min}</span>\r\n            <span>{max}</span>\r\n        </div>\r\n    </div>\r\n","import { categoryNamesMap, type Category } from \"../types\";\r\nimport { Slider } from \"./shared/Slider\";\r\n\r\ninterface GameSettings {\r\n    selectedQuestionCount: number;\r\n    setSelectedQuestionCount: (count: number) => void;\r\n    selectedCategories: Category[];\r\n    handleCategoryChange: (category: Category) => void;\r\n    startGame: () => void;\r\n}\r\n\r\nexport function LandingPage(props: GameSettings) {\r\n    const {\r\n        selectedQuestionCount,\r\n        setSelectedQuestionCount,\r\n        selectedCategories,\r\n        handleCategoryChange,\r\n        startGame,\r\n    } = props;\r\n    \r\n    return (\r\n      <div className=\"trivia-container\">\r\n        <div className=\"landing-screen\">\r\n          <h1 className=\"app-title\">Trivia Challenge</h1>\r\n          <p className=\"app-description\">Customize your trivia experience!</p>\r\n\r\n          <div className=\"game-settings\">\r\n            <div className=\"setting-group\">\r\n              <h3>Number of Questions: {selectedQuestionCount}</h3>\r\n                <Slider\r\n                  value={selectedQuestionCount}\r\n                  onChange={setSelectedQuestionCount}\r\n                  min={5}\r\n                  max={20}\r\n                  step={1}\r\n                />\r\n            </div>\r\n\r\n            <div className=\"setting-group\">\r\n              <h3>Select Categories</h3>\r\n              <div className=\"category-options\">\r\n                {Object.entries(categoryNamesMap).map(([key, name]) => {\r\n                  return (\r\n                    <button\r\n                      key={key}\r\n                      className={`category-option ${selectedCategories.includes(key as Category) ? \"selected\" : \"\"}`}\r\n                      onClick={() => handleCategoryChange(key as Category)}\r\n                    >\r\n                      <div className=\"category-header\">\r\n                        <span className=\"category-name\">{name}</span>\r\n                        {selectedCategories.includes(key as Category) && <span className=\"checkmark\">✓</span>}\r\n                      </div>\r\n                    </button>\r\n                  )\r\n                })}\r\n              </div>\r\n            </div>\r\n\r\n            <div className=\"game-info\">\r\n              <div className=\"info-summary\">\r\n                <p>\r\n                  <strong>{selectedCategories.length}</strong> selected categories\r\n                </p>\r\n              </div>\r\n            </div>\r\n          </div>\r\n\r\n          <button\r\n            className=\"start-btn\"\r\n            onClick={startGame}\r\n            disabled={selectedCategories.length === 0}\r\n          >\r\n            Start Game\r\n          </button>\r\n        </div>\r\n      </div>\r\n    )\r\n}\r\n","import { useState } from 'react'\r\nimport type { Question, QuestionResult } from '../types'\r\n\r\ninterface ResultsProps {\r\n    score: number\r\n    gameQuestions: Question[]\r\n    questionResults: QuestionResult[]\r\n    resetGame: () => void\r\n}\r\n\r\nexport const Results = (props: ResultsProps) => {\r\n    const {\r\n        score,\r\n        gameQuestions,\r\n        questionResults,\r\n        resetGame,\r\n    } = props;\r\n    \r\n    const [wrongAnswersExpanded, setWrongAnswersExpanded] = useState(true)\r\n    const [rightAnswersExpanded, setRightAnswersExpanded] = useState(false)\r\n    \r\n    const wrongAnswers = questionResults.filter((result) => !result.isCorrect)\r\n    const rightAnswers = questionResults.filter((result) => result.isCorrect)\r\n\r\n    return (\r\n      <div className=\"trivia-container\">\r\n        <div className=\"game-finished\">\r\n          <h1>Game Complete!</h1>\r\n          <div className=\"final-score\">\r\n            <h2>\r\n              Your Score: {score} / {gameQuestions.length}\r\n            </h2>\r\n            <p className=\"score-percentage\">{Math.round((score / gameQuestions.length) * 100)}%</p>\r\n          </div>\r\n\r\n          <div className=\"results-sections\">\r\n            {/* Wrong Answers Section */}\r\n            <div className=\"results-section\">\r\n              <button\r\n                className=\"section-header wrong-header\"\r\n                onClick={() => setWrongAnswersExpanded(!wrongAnswersExpanded)}\r\n              >\r\n                <span>❌ Questions You Got Wrong ({wrongAnswers.length})</span>\r\n                <span className={`expand-icon ${wrongAnswersExpanded ? \"expanded\" : \"\"}`}>▼</span>\r\n              </button>\r\n              {wrongAnswersExpanded && (\r\n                <div className=\"questions-list\">\r\n                  {wrongAnswers.map((result, index) => (\r\n                    <div key={`wrong-${index}`} className=\"question-result wrong-result\">\r\n                      <h4 className=\"result-question\">{result.question.question}</h4>\r\n                      <div className=\"result-options\">\r\n                        {/* Show user's wrong answer */}\r\n                        <div className=\"result-option wrong-option\">\r\n                          <span className=\"option-text\">{result.userAnswer}</span>\r\n                          <span className=\"option-indicator\">✗ Your Answer</span>\r\n                        </div>\r\n                        {/* Show correct answer */}\r\n                        <div className=\"result-option correct-option\">\r\n                          <span className=\"option-text\">{result.question.correctAnswer}</span>\r\n                          <span className=\"option-indicator\">✓ Correct</span>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  ))}\r\n                  {wrongAnswers.length === 0 && (\r\n                    <div className=\"no-questions\">🎉 Perfect! You got all questions right!</div>\r\n                  )}\r\n                </div>\r\n              )}\r\n            </div>\r\n\r\n            {/* Right Answers Section */}\r\n            <div className=\"results-section\">\r\n              <button\r\n                className=\"section-header right-header\"\r\n                onClick={() => setRightAnswersExpanded(!rightAnswersExpanded)}\r\n              >\r\n                <span>✅ Questions You Got Right ({rightAnswers.length})</span>\r\n                <span className={`expand-icon ${rightAnswersExpanded ? \"expanded\" : \"\"}`}>▼</span>\r\n              </button>\r\n              {rightAnswersExpanded && (\r\n                <div className=\"questions-list\">\r\n                  {rightAnswers.map((result, index) => (\r\n                    <div key={`right-${index}`} className=\"question-result right-result\">\r\n                      <h4 className=\"result-question\">{result.question.question}</h4>\r\n                      <div className=\"result-options\">\r\n                        {/* Show user's correct answer */}\r\n                        <div className=\"result-option correct-option\">\r\n                          <span className=\"option-text\">{result.userAnswer}</span>\r\n                          <span className=\"option-indicator\">✓ Your Answer</span>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  ))}\r\n                  {rightAnswers.length === 0 && (\r\n                    <div className=\"no-questions\">😔 No correct answers this time. Better luck next time!</div>\r\n                  )}\r\n                </div>\r\n              )}\r\n            </div>\r\n          </div>\r\n\r\n          <button className=\"play-again-btn\" onClick={resetGame}>\r\n            Play Again\r\n          </button>\r\n        </div>\r\n      </div>\r\n    )\r\n}\r\n","import type { Category, Question } from \"./types\"\r\n\r\nconst URL = \"https://8539852b27d737c54d69d5a15610e246.balena-devices.com/trivia\";\r\n\r\nexport const fetchQuestions = async (count: number, categories: Category[]): Promise<Question[]> => {\r\n    const url = new URLSearchParams();\r\n    url.append('type', 'kings');\r\n    url.append('count', count.toString());\r\n    url.append('categories', categories.join(','));\r\n    const response = await fetch(`${URL}?${url.toString()}`);\r\n    const data = await response.json();\r\n    if (!response.ok) {\r\n        throw new Error(data.message || 'Failed to fetch questions');\r\n    }\r\n    if (!Array.isArray(data)) {\r\n        throw new Error('Invalid response format');\r\n    }\r\n\r\n    return data as Question[];\r\n}"],"mappings":"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","names":["import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}