{"id":7,"date":"2026-04-04T11:08:47","date_gmt":"2026-04-04T02:08:47","guid":{"rendered":"https:\/\/www.growthbridge.biz\/lifegame\/quest\/"},"modified":"2026-06-11T13:09:20","modified_gmt":"2026-06-11T04:09:20","slug":"quest","status":"publish","type":"page","link":"https:\/\/www.growthbridge.biz\/lifegame\/quest\/","title":{"rendered":"\u30af\u30a8\u30b9\u30c8"},"content":{"rendered":"\n<p class=\"lib-intro-lead wp-block-paragraph\">\u5192\u967a\u624b\u5e33\u306e\u30af\u30a8\u30b9\u30c8\u306f\u3001\u30b2\u30fc\u30df\u30d5\u30a3\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7406\u8ad6\u3068\u5b9f\u8df5\u3068\u3057\u3066\u3001\u65e5\u3005\u306e\u884c\u52d5\u3092\u30af\u30a8\u30b9\u30c8\u5316\u3059\u308b\u4ed5\u7d44\u307f\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"quest-hero\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/www.growthbridge.biz\/lifegame\/wp-content\/uploads\/lifegame\/quest_board.jpg\" alt=\"\u30af\u30a8\u30b9\u30c8\u63b2\u793a\u677f\uff08\u30b0\u30ed\u30fc\u30b9\u30d6\u30ea\u30c3\u30b8\u6751\u30fb\u30af\u30a8\u30b9\u30c8\u306e\u4ed5\u7d44\u307f\uff09\" width=\"1200\" height=\"675\" loading=\"eager\" \/>\n<\/div>\n\n\n\n\n<style>\n\/* ===== \u30d8\u30c3\u30c0\u30fc\u30ae\u30e3\u30c3\u30d7\u8abf\u6574\uff08\u65e7 lg-header-gap-fix\uff09 ===== *\/\n.lifegame-main{padding-top:0!important;}.lifegame-main .page-text,.lifegame-main .post-body{margin-top:0!important;}\n\/* ===== HERO\uff08\u65e7 \u5225style\u30d6\u30ed\u30c3\u30af\uff09 ===== *\/\n.quest-hero{max-width:900px;margin:0 auto 1.2rem;padding:0;box-sizing:border-box;}\n.quest-hero img{display:block;width:100%;height:auto;border:none;border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,0.4);}\n@media (max-width: 600px){\n  .quest-hero{padding:0;margin-bottom:1rem;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);}\n  .quest-hero img{border-radius:0;}\n}\n\/* WP layout overrides *\/\n.wp-block-post-content,.entry-content,.wp-block-group__inner-container{max-width:none!important;padding:0!important;}\n.wp-block-post-title,.page-title{display:none!important;}\n.has-global-padding{padding:0!important;}\n.article-feed{max-width:100%!important;width:100%!important;flex:1 1 100%!important;}\n\/* \u30b5\u30a4\u30c9\u30d0\u30fc\u975e\u8868\u793a\uff08page\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5bfe\u7b56\uff09 *\/\n.lifegame-sidebar{display:none!important;}\n.lifegame-main{grid-template-columns:1fr!important;}\n.page-body{background:none!important;border:none!important;padding:0!important;}\nbody{display:block!important;padding:0!important;}\n.quest-screen{margin:32px auto!important;}\n.qb-nav-wrap{margin:0 auto!important;}\n\n\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n\/* body styles \u2192 design-system.php v1.5 *\/\n\n\/* ===== \u30e1\u30a4\u30f3\u30d5\u30ec\u30fc\u30e0 ===== *\/\n.quest-screen {\n  width: 100%;\n  max-width: 900px;\n  background: #0d1225;\n  border: 2px solid #d4a843;\n  border-radius: 4px;\n  overflow: hidden;\n  box-shadow: 0 0 60px rgba(212,168,67,0.12), 0 0 0 1px #1e2a45;\n}\n\n\/* ===== \u30bf\u30a4\u30c8\u30eb\u30d0\u30fc ===== *\/\n.screen-header {\n  background: linear-gradient(90deg, #1a2340 0%, #0d1225 100%);\n  border-bottom: 2px solid #d4a843;\n  padding: 12px 24px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n.screen-title {\n  font-family: var(--lg-font-pixel);\n  font-size: 15px;\n  color: #d4a843;\n  letter-spacing: 4px;\n  text-shadow: 0 0 8px rgba(212,168,67,0.5);\n}\n.screen-date {\n  font-family: var(--lg-font-pixel);\n  font-size: 10px;\n  color: var(--lg-teal);\n  letter-spacing: 1px;\n}\n\n\/* ===== \u30b3\u30f3\u30c6\u30f3\u30c4 ===== *\/\n.screen-body {\n  padding: 24px 28px;\n  display: flex;\n  flex-direction: column;\n  gap: 28px;\n}\n\n\/* ===== \u30bb\u30af\u30b7\u30e7\u30f3\u30e9\u30d9\u30eb ===== *\/\n.section-label {\n  font-family: var(--lg-font-pixel);\n  font-size: 10px;\n  color: var(--lg-teal);\n  letter-spacing: 2px;\n  padding-bottom: 7px;\n  border-bottom: 1px solid #1e2a45;\n  margin-bottom: 16px;\n}\n\n\/* ===== \u30e1\u30a4\u30f3\u30af\u30a8\u30b9\u30c8\u30ab\u30fc\u30c9 ===== *\/\n.mq-card {\n  background: #131a2e;\n  border: 1px solid #2a3456;\n  border-radius: 4px;\n  overflow: hidden;\n  margin-bottom: 12px;\n  transition: border-color 0.3s;\n}\n.mq-card:last-child { margin-bottom: 0; }\n.mq-card.active {\n  border-color: #d4a843;\n  box-shadow: 0 0 20px rgba(212,168,67,0.08);\n}\n.mq-card.locked {\n  opacity: 0.5;\n}\n\n\/* MQ\u30d8\u30c3\u30c0\u30fc *\/\n.mq-header {\n  padding: 16px 20px;\n  display: flex;\n  align-items: flex-start;\n  gap: 16px;\n  cursor: pointer;\n  user-select: none;\n}\n.mq-header:hover { background: rgba(212,168,67,0.03); }\n\n.mq-status-icon {\n  font-size: 20px;\n  flex-shrink: 0;\n  width: 32px;\n  text-align: center;\n  padding-top: 2px;\n}\n\n.mq-info {\n  flex: 1;\n  min-width: 0;\n}\n.mq-id {\n  font-family: var(--lg-font-pixel);\n  font-size: 10px;\n  color: #6b7280;\n  letter-spacing: 1px;\n  margin-bottom: 4px;\n}\n.mq-title {\n  font-family: 'DotGothic16', monospace;\n  font-size: 18px;\n  color: #f0d68a;\n  margin-bottom: 2px;\n  text-shadow: 0 0 10px rgba(240,214,138,0.2);\n}\n.mq-card.completed .mq-title { color: #6b7280; }\n.mq-card.locked .mq-title { color: #4a5568; }\n\n.mq-subtitle {\n  font-size: 14px;\n  color: #8892a8;\n}\n.mq-card.completed .mq-subtitle { color: #4a5568; }\n\n.mq-toggle {\n  font-family: var(--lg-font-pixel);\n  font-size: 16px;\n  font-weight: bold;\n  color: #4a5568;\n  flex-shrink: 0;\n  padding-top: 8px;\n  transition: transform 0.3s;\n}\n.mq-card.open .mq-toggle { transform: rotate(90deg); }\n\n\/* MQ\u9032\u6357\u30d0\u30fc *\/\n.mq-progress-area {\n  padding: 0 20px 12px 68px;\n}\n.mq-progress-bar {\n  height: 10px;\n  background: #0a0e1a;\n  border-radius: 2px;\n  overflow: hidden;\n  border: 1px solid #2a3456;\n}\n.mq-progress-fill {\n  height: 100%;\n  border-radius: 2px;\n  transition: width 1.2s cubic-bezier(0.4,0,0.2,1);\n}\n.mq-progress-fill.completed { background: linear-gradient(90deg, #1a5a2a, var(--lg-teal)); }\n.mq-progress-fill.active    { background: linear-gradient(90deg, #7a5800, #d4a843, #f0d68a); }\n\n.mq-progress-text {\n  display: flex;\n  justify-content: space-between;\n  align-items: baseline;\n  margin-top: 5px;\n}\n.mq-progress-label {\n  font-size: 12px;\n  color: #6b7280;\n}\n.mq-progress-nums {\n  font-family: var(--lg-font-pixel);\n  font-size: 10px;\n  color: #8892a8;\n}\n.mq-progress-nums strong {\n  color: #f0d68a;\n}\n\n\/* MQ\u8a73\u7d30\uff08\u5c55\u958b\u90e8\u5206\uff09 *\/\n.mq-details {\n  max-height: 0;\n  overflow: hidden;\n  transition: max-height 0.4s ease;\n}\n.mq-card.open .mq-details {\n  max-height: 2000px;\n}\n\n.mq-details-inner {\n  padding: 0 20px 20px 20px;\n  border-top: 1px solid #1e2a45;\n}\n\n\/* \u5b8c\u4e86\u6761\u4ef6 *\/\n.mq-criteria {\n  background: rgba(78,205,196,0.05);\n  border: 1px solid rgba(78,205,196,0.2);\n  border-radius: 4px;\n  padding: 12px 16px;\n  margin: 16px 0;\n}\n.mq-criteria-label {\n  font-family: var(--lg-font-pixel);\n  font-size: 9px;\n  color: var(--lg-teal);\n  letter-spacing: 1px;\n  margin-bottom: 6px;\n}\n.mq-criteria-text {\n  font-size: 14px;\n  color: #c8cad0;\n  line-height: 1.6;\n}\n\n\/* \u65e5\u4ed8 *\/\n.mq-dates {\n  display: flex;\n  gap: 24px;\n  margin-bottom: 16px;\n  font-size: 13px;\n  color: #6b7280;\n}\n.mq-dates span { color: #8892a8; }\n\n\/* \u5831\u916c *\/\n.mq-rewards {\n  margin-bottom: 16px;\n}\n.mq-rewards-label {\n  font-family: var(--lg-font-pixel);\n  font-size: 9px;\n  color: #d4a843;\n  letter-spacing: 1px;\n  margin-bottom: 8px;\n}\n.reward-tag {\n  display: inline-block;\n  background: rgba(212,168,67,0.1);\n  border: 1px solid rgba(212,168,67,0.3);\n  border-radius: 2px;\n  padding: 3px 8px;\n  font-size: 13px;\n  color: #f0d68a;\n  margin: 2px 4px 2px 0;\n}\n\n\/* \u30b5\u30d6\u30af\u30a8\u30b9\u30c8\u4e00\u89a7 *\/\n.sq-section-label {\n  font-family: var(--lg-font-pixel);\n  font-size: 9px;\n  color: #8892a8;\n  letter-spacing: 1px;\n  margin-bottom: 10px;\n}\n.sq-list {\n  list-style: none;\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n}\n.sq-item {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  padding: 8px 12px;\n  background: #0d1225;\n  border: 1px solid #1e2a45;\n  border-radius: 3px;\n  font-size: 14px;\n  transition: background 0.2s;\n}\n.sq-item:hover { background: #111833; }\n.sq-item.completed { opacity: 0.6; }\n.sq-item.active {\n  border-color: rgba(212,168,67,0.4);\n  background: rgba(212,168,67,0.04);\n}\n\n.sq-icon {\n  font-size: 14px;\n  width: 20px;\n  text-align: center;\n  flex-shrink: 0;\n}\n.sq-id {\n  font-family: var(--lg-font-pixel);\n  font-size: 9px;\n  color: #4a5568;\n  min-width: 90px;\n  flex-shrink: 0;\n}\n.sq-title {\n  color: #c8cad0;\n  flex: 1;\n}\n.sq-item.completed .sq-title {\n  color: #6b7280;\n  text-decoration: line-through;\n  text-decoration-color: #4a5568;\n}\n.sq-item.pending .sq-title { color: #8892a8; }\n\n\/* ===== \u30d5\u30a1\u30a4\u30ca\u30eb\u30af\u30a8\u30b9\u30c8\u7279\u5225\u67a0 ===== *\/\n.mq-card.final {\n  border-color: #2a3456;\n  background: linear-gradient(135deg, #131a2e 0%, #0d1225 50%, #1a1530 100%);\n  position: relative;\n  overflow: visible;\n}\n.mq-card.final::before {\n  content: '';\n  position: absolute;\n  top: -1px; left: -1px; right: -1px; bottom: -1px;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  background: linear-gradient(135deg, #d4a843, var(--lg-teal), #a78bfa, #d4a843) border-box;\n  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);\n  -webkit-mask-composite: xor;\n  mask-composite: exclude;\n  opacity: 0.3;\n  pointer-events: none;\n}\n.mq-card.final .mq-title {\n  background: linear-gradient(90deg, #d4a843, var(--lg-teal));\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  background-clip: text;\n}\n.mq-card.final .mq-subtitle { color: #a78bfa; }\n.mq-card.final .mq-id { color: #a78bfa; }\n.final-desc {\n  padding: 0 20px 16px 68px;\n  font-size: 13px;\n  color: #6b7280;\n  line-height: 1.7;\n}\n\n\/* ===== \u8ffd\u52a0\u30af\u30a8\u30b9\u30c8\u30a8\u30ea\u30a2 ===== *\/\n.aq-empty {\n  text-align: center;\n  padding: 20px;\n  color: #2a3456;\n  font-family: var(--lg-font-pixel);\n  font-size: 10px;\n  letter-spacing: 2px;\n}\n\n\/* ===== \u30d5\u30c3\u30bf\u30fc ===== *\/\n.screen-footer {\n  border-top: 1px solid #2a3456;\n  padding: 10px 24px;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  background: #0a0e1a;\n}\n.footer-link a {\n  font-size: 13px;\n  color: var(--lg-teal);\n  text-decoration: none;\n  font-family: 'DotGothic16', monospace;\n}\n.footer-link a:hover { text-decoration: underline; }\n\n\/* ===== \u30ec\u30b9\u30dd\u30f3\u30b7\u30d6 ===== *\/\n@media (max-width: 640px) {\n  .screen-body { padding: 16px 12px; gap: 20px; }\n  .mq-header { padding: 12px 12px; gap: 10px; }\n  .mq-title { font-size: 15px; }\n  .mq-progress-area { padding: 0 12px 10px 42px; }\n  .mq-details-inner { padding: 0 12px 16px 12px; }\n  .sq-id { min-width: 76px; font-size: 8px; }\n  .sq-item { font-size: 13px; padding: 6px 8px; }\n  .final-desc { padding: 0 12px 12px 42px; }\n  .mq-dates { flex-direction: column; gap: 4px; }\n}\n.qb-nav-wrap { max-width:900px; width:100%; margin:0 auto; padding:32px 16px 0; }\n.qb-nav-title { font-family:var(--lg-font-pixel); font-size:15px; color:var(--lg-teal); letter-spacing:2px; text-align:center; margin-bottom:8px; }\n.qb-nav-subtitle { font-family:\"DotGothic16\",monospace; font-size:22px; color:#f5e6c8; text-align:center; margin-bottom:24px; }\n\n<\/style>\n\n\n<div class=\"qb-nav-wrap\">\n  <div class=\"qb-nav-title\">&#x1F4CB; QUEST BOARD<\/div>\n  <div class=\"qb-nav-subtitle\">\u63b2\u793a\u677f<\/div>\n<\/div>\n\n<div class=\"quest-screen\">\n  <!-- \u30d8\u30c3\u30c0\u30fc -->\n  <div class=\"screen-header\">\n    <div class=\"screen-title\">QUEST BOARD<\/div>\n    <div class=\"screen-date\" id=\"header-date\"><\/div>\n  <\/div>\n\n  <div class=\"screen-body\">\n    <!-- \u9032\u884c\u4e2d\u30af\u30a8\u30b9\u30c8 -->\n    <div>\n      <div class=\"section-label\">ACTIVE QUESTS<\/div>\n      <div id=\"mq-active\"><\/div>\n    <\/div>\n\n    <!-- \u8ffd\u52a0\u30af\u30a8\u30b9\u30c8\u30bb\u30af\u30b7\u30e7\u30f3 -->\n    <div class=\"additional-quest-section\">\n      <div class=\"section-label\">ADDITIONAL QUESTS<\/div>\n      <div id=\"aq-container\"><\/div>\n    <\/div>\n\n    <!-- \u5b8c\u4e86\u30af\u30a8\u30b9\u30c8 -->\n    <div>\n      <div class=\"section-label\">COMPLETED QUESTS<\/div>\n      <div id=\"mq-completed\"><\/div>\n    <\/div>\n  <\/div>\n\n  <!-- \u30d5\u30c3\u30bf\u30fc -->\n  <div style=\"text-align:center;margin:32px 0 8px;\">\n    <a href=\"https:\/\/www.growthbridge.biz\/lifegame\/village\/\" style=\"display:inline-block;font-family:'DotGothic16',monospace;font-size:15px;color:#1a1a2e;background:var(--lg-teal);padding:12px 32px;border-radius:6px;text-decoration:none;\">\ud83d\uddfa \u6751\u306e\u5730\u56f3\u3078 \u2192<\/a>\n  <\/div>\n\n  <div class=\"screen-footer\">\n      <div class=\"footer-link\"><a href=\"https:\/\/www.growthbridge.biz\/lifegame\/\">\u25b8 \u30c8\u30c3\u30d7\u30da\u30fc\u30b8<\/a><\/div>\n  <\/div>\n<\/div>\n\n<script>\n\n\/\/ ===== \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\uff08quests.json \u3092\u552f\u4e00\u306e\u6b63\u672c\u3068\u3057\u3066 fetch\uff09=====\nfunction init() {\n  \/\/ \u30af\u30a8\u30b9\u30c8\u30c7\u30fc\u30bf\u306f quests.json \u3092\u552f\u4e00\u306e\u6b63\u672c\u3068\u3059\u308b\uff08\u65e7 \u57cb\u3081\u8fbc\u307f\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u306f\u64a4\u53bb\u30fb2026-06-10\uff09\n  fetch('\/lifegame\/wp-content\/uploads\/lifegame\/quests.json')\n    .then(r => r.ok ? r.json() : Promise.reject())\n    .then(json => render(json))\n    .catch(() => showLoadError());\n}\n\nfunction showLoadError() {\n  document.getElementById('header-date').textContent = formatDate(new Date().toISOString().split('T')[0]);\n  var c = document.getElementById('mq-active');\n  if (c) c.innerHTML = '<p style=\"text-align:center;padding:60px 16px;color:#8b93a5;font-family:\\'DotGothic16\\',monospace;\">\u30af\u30a8\u30b9\u30c8\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6642\u9593\u3092\u304a\u3044\u3066\u518d\u8aad\u307f\u8fbc\u307f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>';\n}\n\nfunction render(data) {\n  document.getElementById('header-date').textContent = formatDate(new Date().toISOString().split('T')[0]);\n\n  \/\/ active \/ locked \u3092\u4e0a\u90e8\u306b\u3001completed \u3092\u4e0b\u90e8\u306b\u5206\u96e2\n  const active    = data.main_quests.filter(mq => mq.status !== 'completed');\n  const completed = data.main_quests.filter(mq => mq.status === 'completed');\n\n  const activeContainer = document.getElementById('mq-active');\n  activeContainer.innerHTML = '';\n  if (active.length === 0) {\n    activeContainer.innerHTML = '<div class=\"aq-empty\">\u2014 NO ACTIVE QUESTS \u2014<\/div>';\n  } else {\n    active.forEach(mq => activeContainer.appendChild(createMQCard(mq)));\n  }\n\n  const completedContainer = document.getElementById('mq-completed');\n  completedContainer.innerHTML = '';\n  if (completed.length === 0) {\n    completedContainer.innerHTML = '<div class=\"aq-empty\">\u2014 NO COMPLETED QUESTS \u2014<\/div>';\n  } else {\n    completed.forEach(mq => completedContainer.appendChild(createMQCard(mq)));\n  }\n\n  const aqContainer = document.getElementById('aq-container');\n  if (data.additional_quests.length === 0) {\n    aqContainer.innerHTML = '<div class=\"aq-empty\">\u2014 LOCKED UNTIL FINAL QUEST COMPLETE \u2014<\/div>';\n  }\n}\n\nfunction createMQCard(mq) {\n  const card = document.createElement('div');\n  const isFinal = mq.id === 'MQFINAL';\n  const classes = ['mq-card', mq.status];\n  if (isFinal) classes.push('final');\n  if (mq.status === 'active') classes.push('open'); \/\/ active \u306f\u521d\u671f\u5c55\u958b\n  card.className = classes.join(' ');\n\n  const statusIcon = getStatusIcon(mq.status);\n  const total = mq.sub_quests.length;\n  const done = mq.sub_quests.filter(sq => sq.status === 'completed').length;\n  const pct = total > 0 ? Math.round((done \/ total) * 100) : (mq.status === 'completed' ? 100 : 0);\n\n  let html = `\n    <div class=\"mq-header\">\n      <div class=\"mq-status-icon\">${statusIcon}<\/div>\n      <div class=\"mq-info\">\n        <div class=\"mq-id\">${mq.id}<\/div>\n        <div class=\"mq-title\">${mq.title}<\/div>\n        <div class=\"mq-subtitle\">\u2014 ${mq.subtitle}<\/div>\n      <\/div>\n      ${mq.status !== 'locked' ? '<div class=\"mq-toggle\">\u25b6<\/div>' : ''}\n    <\/div>`;\n\n  \/\/ \u9032\u6357\u30d0\u30fc\uff08locked\u4ee5\u5916\uff09\n  if (mq.status !== 'locked' && total > 0) {\n    html += `\n    <div class=\"mq-progress-area\">\n      <div class=\"mq-progress-bar\">\n        <div class=\"mq-progress-fill ${mq.status}\" style=\"width:${pct}%\"><\/div>\n      <\/div>\n      <div class=\"mq-progress-text\">\n        <span class=\"mq-progress-label\">${mq.status === 'completed' ? 'QUEST COMPLETE' : 'PROGRESS'}<\/span>\n        <span class=\"mq-progress-nums\"><strong>${done}<\/strong> \/ ${total}<\/span>\n      <\/div>\n    <\/div>`;\n  }\n\n  \/\/ \u30d5\u30a1\u30a4\u30ca\u30eb\u7279\u5225\u8868\u793a\n  if (isFinal && mq.status === 'locked') {\n    html += `<div class=\"final-desc\">${mq.description}<\/div>`;\n  }\n\n  \/\/ \u5c55\u958b\u90e8\u5206\n  if (mq.status !== 'locked') {\n    html += `<div class=\"mq-details\"><div class=\"mq-details-inner\">`;\n\n    \/\/ \u5b8c\u4e86\u6761\u4ef6\n    html += `\n      <div class=\"mq-criteria\">\n        <div class=\"mq-criteria-label\">COMPLETION CRITERIA<\/div>\n        <div class=\"mq-criteria-text\">${mq.completion_criteria}<\/div>\n      <\/div>`;\n\n    \/\/ \u65e5\u4ed8\n    html += `<div class=\"mq-dates\">`;\n    if (mq.started_date) html += `\u958b\u59cb: <span>${mq.started_date}<\/span>`;\n    if (mq.completed_date) html += `\u5b8c\u4e86: <span>${mq.completed_date}<\/span>`;\n    html += `<\/div>`;\n\n    \/\/ \u5831\u916c\n    if (mq.rewards && mq.rewards.length > 0) {\n      html += `<div class=\"mq-rewards\">\n        <div class=\"mq-rewards-label\">REWARDS<\/div>\n        ${mq.rewards.map(r => `<span class=\"reward-tag\">${r}<\/span>`).join('')}\n      <\/div>`;\n    }\n\n    \/\/ \u30b5\u30d6\u30af\u30a8\u30b9\u30c8\n    if (total > 0) {\n      html += `<div class=\"sq-section-label\">SUB QUESTS<\/div>\n      <ul class=\"sq-list\">\n        ${mq.sub_quests.map(sq => {\n          const sqIcon = getSQIcon(sq.status);\n          return `<li class=\"sq-item ${sq.status}\">\n            <span class=\"sq-icon\">${sqIcon}<\/span>\n            <span class=\"sq-id\">${sq.id}<\/span>\n            <span class=\"sq-title\">${sq.title}<\/span>\n          <\/li>`;\n        }).join('')}\n      <\/ul>`;\n    }\n\n    html += `<\/div><\/div>`;\n  }\n\n  card.innerHTML = html;\n  const headerEl = card.querySelector('.mq-header');\n  if (headerEl) headerEl.addEventListener('click', () => toggleMQ(headerEl));\n  return card;\n}\n\nfunction toggleMQ(headerEl) {\n  const card = headerEl.closest('.mq-card');\n  if (card.classList.contains('locked')) return;\n  card.classList.toggle('open');\n}\n\nfunction getStatusIcon(status) {\n  switch(status) {\n    case 'completed': return '\u2705';\n    case 'active':    return '\ud83d\udd25';\n    case 'locked':    return '\ud83d\udd12';\n    default:          return '\u2753';\n  }\n}\n\nfunction getSQIcon(status) {\n  switch(status) {\n    case 'completed': return '\u2705';\n    case 'active':    return '\ud83d\udd28';\n    case 'pending':   return '\u2b1c';\n    default:          return '\u2753';\n  }\n}\n\nfunction formatDate(dateStr) {\n  const d = new Date(dateStr + 'T00:00:00');\n  const months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];\n  return `${d.getDate()}-${months[d.getMonth()]}-${d.getFullYear()}`;\n}\n\n\/\/ \u8d77\u52d5\ninit();\n\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>\u5192\u967a\u624b\u5e33\u306e\u30af\u30a8\u30b9\u30c8\u306f\u3001\u30b2\u30fc\u30df\u30d5\u30a3\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7406\u8ad6\u3068\u5b9f\u8df5\u3068\u3057\u3066\u3001\u65e5\u3005\u306e\u884c\u52d5\u3092\u30af\u30a8\u30b9\u30c8\u5316\u3059\u308b\u4ed5\u7d44\u307f\u3067\u3059\u3002<\/p>\n<p>  &#x1F4CB; QUEST BOARD<br \/>\n  \u63b2\u793a\u677f<\/p>\n<p>    QUEST BOAR<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"lifegame_level":"","lifegame_job_ja":"","lifegame_exp_remain":"","lifegame_seo_description":"","the_page_noindex":"1","is_noindex":"","footnotes":""},"class_list":["post-7","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.growthbridge.biz\/lifegame\/wp-json\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.growthbridge.biz\/lifegame\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.growthbridge.biz\/lifegame\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.growthbridge.biz\/lifegame\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.growthbridge.biz\/lifegame\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":41,"href":"https:\/\/www.growthbridge.biz\/lifegame\/wp-json\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":1568,"href":"https:\/\/www.growthbridge.biz\/lifegame\/wp-json\/wp\/v2\/pages\/7\/revisions\/1568"}],"wp:attachment":[{"href":"https:\/\/www.growthbridge.biz\/lifegame\/wp-json\/wp\/v2\/media?parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}