{"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-04-16T10:42:45","modified_gmt":"2026-04-16T01:42:45","slug":"quest","status":"publish","type":"page","link":"https:\/\/www.growthbridge.biz\/lifegame\/quest\/","title":{"rendered":"\u30af\u30a8\u30b9\u30c8"},"content":{"rendered":"\n\n<style>\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;align-items:initial!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\nbody {\n  background: #0a0e1a;\n  color: #e8e8ed;\n  font-family: 'DotGothic16', monospace;\n  min-height: 100vh;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  padding: 32px 16px;\n}\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: 'Press Start 2P', monospace;\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: 'Press Start 2P', monospace;\n  font-size: 10px;\n  color: #4ecdc4;\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: 'Press Start 2P', monospace;\n  font-size: 10px;\n  color: #4ecdc4;\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: 'Press Start 2P', monospace;\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: 'Press Start 2P', monospace;\n  font-size: 10px;\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, #4ecdc4); }\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: 'Press Start 2P', monospace;\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: 'Press Start 2P', monospace;\n  font-size: 9px;\n  color: #4ecdc4;\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: 'Press Start 2P', monospace;\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: 'Press Start 2P', monospace;\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: 'Press Start 2P', monospace;\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, #4ecdc4, #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, #4ecdc4);\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: 'Press Start 2P', monospace;\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-ver {\n  font-size: 10px;\n  color: #2a3456;\n  font-family: 'Press Start 2P', monospace;\n}\n.footer-link a {\n  font-size: 13px;\n  color: #4ecdc4;\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:\"Press Start 2P\",monospace; font-size:15px; color:#4ecdc4; 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:#4ecdc4;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-ver\" id=\"footer-ver\"><\/div>\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\/\/ ===== \u30af\u30a8\u30b9\u30c8\u30c7\u30fc\u30bf\uff08HTML\u306b\u76f4\u63a5\u57cb\u3081\u8fbc\u307f\uff09=====\n\/\/ status_screen.html \u3068\u540c\u3058\u30d1\u30bf\u30fc\u30f3: JSON fetch \u2192 \u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u57cb\u3081\u8fbc\u307f\nconst QUEST_DATA = {\n  \"updated\": \"2026-04-16\",\n  \"version\": \"1.2\",\n  \"schema_note\": \"\u30b7\u30f3\u30b0\u30eb\u30e6\u30fc\u30b6\u30fc\uff08Kind Boss Hiro\u5c02\u7528\uff09\u3002ID\u4f53\u7cfb: MQ=4\u6841, SQ=4\u6841+\u679d\u756a2\u6841\",\n\n  \"main_quests\": [\n    {\n      \"id\": \"MQ0001\",\n      \"title\": \"\u5192\u967a\u4e16\u754c\u306e\u5168\u5bb9\u3092\u793a\u305b\",\n      \"subtitle\": \"\u30d3\u30b8\u30cd\u30b9\u958b\u59cb\u306e\u72fc\u7159\",\n      \"title_en\": \"Reveal the World \u2014 The Signal Fire of a New Beginning\",\n      \"status\": \"completed\",\n      \"started_date\": \"2026-03-29\",\n      \"completed_date\": \"2026-04-02\",\n      \"description\": \"\u30b0\u30ed\u30fc\u30b9\u30d6\u30ea\u30c3\u30b8\u6cd5\u4ebaHP\u3092\u5168\u9762\u30ea\u30cb\u30e5\u30fc\u30a2\u30eb\u3057\u3001\u4e8b\u696d\u69cb\u9020\uff08BtoB + BtoC + \u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\uff09\u3092\u4e16\u754c\u306b\u5ba3\u8a00\u3059\u308b\",\n      \"completion_criteria\": \"growthbridge.biz \u30c8\u30c3\u30d7\u30da\u30fc\u30b8\u30fbLP\u30fb\u5168\u30b5\u30fc\u30d3\u30b9\u30da\u30fc\u30b8\u304c\u516c\u958b\u6e08\u307f\",\n      \"rewards\": [\"AI\u62c5\u5f53\u90e8\u9577LP\", \"\u304a\u554f\u3044\u5408\u308f\u305b\u5c0e\u7dda\", \"\u30b3\u30e9\u30e0\u8a18\u4e8b\u7fa4\", \"\u30b5\u30a4\u30c8\u5206\u6790\u30ec\u30dd\u30fc\u30c8\"],\n      \"sub_quests\": [\n        { \"id\": \"SQ0001-01\", \"title\": \"AI\u62c5\u5f53\u90e8\u9577 LP\u4f5c\u6210\u30fb\u516c\u958b\", \"status\": \"completed\" },\n        { \"id\": \"SQ0001-02\", \"title\": \"\u304a\u554f\u3044\u5408\u308f\u305b\u30da\u30fc\u30b8\u6574\u5099\", \"status\": \"completed\" },\n        { \"id\": \"SQ0001-03\", \"title\": \"HP\u5168\u4f53\u30c7\u30b6\u30a4\u30f3\u6539\u4fee\u30fb\u30ec\u30b9\u30dd\u30f3\u30b7\u30d6\u5bfe\u5fdc\", \"status\": \"completed\" },\n        { \"id\": \"SQ0001-04\", \"title\": \"\u30b3\u30e9\u30e0\u8a18\u4e8b\u6295\u7a3f\uff08AI\u6d3b\u7528\/\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\/\u696d\u52d9\u6539\u5584\uff09\", \"status\": \"completed\" },\n        { \"id\": \"SQ0001-05\", \"title\": \"The Executive TECH \u6295\u7a3f\u30d5\u30ed\u30fc\u69cb\u7bc9\", \"status\": \"completed\" },\n        { \"id\": \"SQ0001-06\", \"title\": \"\u30b5\u30a4\u30c8\u5206\u6790\u30ec\u30dd\u30fc\u30c8\u4f5c\u6210\", \"status\": \"completed\" }\n      ]\n    },\n    {\n      \"id\": \"MQ0002\",\n      \"title\": \"LifeGame\u306e\u6249\u3092\u958b\u3051\",\n      \"subtitle\": \"\u5192\u967a\u306e\u821e\u53f0\u3092\u4e16\u754c\u306b\u516c\u958b\u305b\u3088\",\n      \"title_en\": \"Open the Gate of LifeGame \u2014 Launch Your Adventure to the World\",\n      \"status\": \"active\",\n      \"started_date\": \"2026-04-03\",\n      \"completed_date\": null,\n      \"description\": \"LifeGame\u500b\u4eba\u30d6\u30ed\u30b0\uff08growthbridge.biz\/lifegame\/\uff09\u3092\u5b8c\u6210\u3055\u305b\u3001\u5192\u967a\u306e\u821e\u53f0\u3092\u6b63\u5f0f\u516c\u958b\u3059\u308b\",\n      \"completion_criteria\": \"\u5168\u30da\u30fc\u30b8\u516c\u958b\u6e08\u307f\uff0b\u5192\u967a\u624b\u5e3310\u8a71\u6295\u7a3f\u6e08\u307f\uff0b\u6751\u306e\u5168\u65bd\u8a2d\uff08\u9152\u5834\/\u63b2\u793a\u677f\/\u6751\u9577\u306e\u5bb6\/\u5192\u967a\u8005\u306e\u5bbf\uff09\u7a3c\u50cd\u6e08\u307f\",\n      \"rewards\": [],\n      \"sub_quests\": [\n        { \"id\": \"SQ0002-01\", \"title\": \"LifeGame WordPress\u65b0\u898f\u69cb\u7bc9\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-02\", \"title\": \"RPG\u30b2\u30fc\u30e0\u98a8\u30c7\u30b6\u30a4\u30f3\u8a2d\u8a08\u30fbHTML\u30e2\u30c3\u30af\u30a2\u30c3\u30d7\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-03\", \"title\": \"WordPress\u5b9f\u88c5\uff08\u30d8\u30c3\u30c0\u30fc\/\u30db\u30fc\u30e0\/\u30b5\u30a4\u30c9\u30d0\u30fc\/\u30d5\u30c3\u30bf\u30fc\uff09\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-04\", \"title\": \"\u30b9\u30c6\u30fc\u30bf\u30b9\u30fb\u30af\u30a8\u30b9\u30c8\u30fb\u30b2\u30fc\u30e0\u30eb\u30fc\u30eb\u30da\u30fc\u30b8\u5b9f\u88c5\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-05\", \"title\": \"Village \u2014 \u30b9\u30c6\u30fc\u30bf\u30b9\u753b\u9762\u30fb\u30a2\u30d0\u30bf\u30fc\u4f5c\u6210\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-06\", \"title\": \"\u30d2\u30fc\u30ed\u30fc\u30d3\u30b8\u30e5\u30a2\u30eb\u5b9f\u88c5\uff08\u80cc\u666f\u753b\u50cf\u30e9\u30f3\u30c0\u30e0\u5207\u66ff\uff09\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-07\", \"title\": \"\u5192\u967a\u624b\u5e33\u4e00\u89a7\u30da\u30fc\u30b8\u5b9f\u88c5\uff08LV\/JOB\/LEVEL UP\u8868\u793a\uff09\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-08\", \"title\": \"\u6751\u306e\u65bd\u8a2d\u30da\u30fc\u30b8\u5b9f\u88c5\uff08\u5192\u967a\u8005\u306e\u5bbf\/\u6751\u9577\u306e\u5bb6\/\u63b2\u793a\u677f\/\u9152\u5834\uff09\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-09\", \"title\": \"\u6751\u306e\u5730\u56f3\u30da\u30fc\u30b8\u5b9f\u88c5\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-10\", \"title\": \"\u5192\u967a\u624b\u5e33 \u2014 \u7b2c1\u8a71\u301c\u7b2c10\u8a71\u6295\u7a3f\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-11\", \"title\": \"\u5168\u30da\u30fc\u30b8\u52d5\u4f5c\u78ba\u8a8d\u30fb\u6b63\u5f0f\u516c\u958b\u5ba3\u8a00\", \"status\": \"active\" },\n        { \"id\": \"SQ0002-12\", \"title\": \"\u56f3\u66f8\u9928\u30da\u30fc\u30b8\u5b9f\u88c5\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-13\", \"title\": \"\u56f3\u66f8\u9928 Chronicles \u51683\u5dfb\u6295\u7a3f\uff08Note\u9023\u8f09\u9023\u52d5\uff09\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-14\", \"title\": \"SEO\u8a18\u4e8b\uff08\u8ce2\u8005\u306e\u6559\u3048\uff09\u30d4\u30e9\u30fc\uff0b\u30af\u30e9\u30b9\u30bf\u30fc\u6295\u7a3f\u958b\u59cb\", \"status\": \"completed\" },\n        { \"id\": \"SQ0002-15\", \"title\": \"\u5192\u967a\u624b\u5e33 HP\/MP\u524d\u65e5\u6bd4\u8868\u793a\u306e\u8ffd\u52a0\", \"status\": \"pending\" },\n        { \"id\": \"SQ0002-16\", \"title\": \"\u30e2\u30d0\u30a4\u30ebUX\u6700\u9069\u5316 \u2014 \u8efd\u91cf\u5316\uff0bX\u6d41\u5165\u52d5\u7dda\u6539\u5584\", \"status\": \"pending\" }\n      ]\n    },\n    {\n      \"id\": \"MQ0003\",\n      \"title\": \"SNS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u5bfe\u5fdc\",\n      \"subtitle\": \"\u5192\u967a\u306e\u58f0\u3092\u4e16\u754c\u3078\u5c4a\u3051\u3088\",\n      \"title_en\": \"SNS Platform Launch \u2014 Bring Your Adventure to the World\",\n      \"status\": \"active\",\n      \"started_date\": \"2026-04-05\",\n      \"completed_date\": null,\n      \"description\": \"\u8a2d\u8a08\u304b\u3089\u5b9f\u88c5\u307e\u3067\u3001LifeGame\u306b\u76f8\u5fdc\u3057\u3044SNS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306b\u5bfe\u5fdc\u3057\u3001\u5192\u967a\u306e\u8a18\u9332\u3092\u4e16\u754c\u306b\u767a\u4fe1\u3059\u308b\",\n      \"completion_criteria\": \"\u5bfe\u5fdc\u3059\u308b\u5404SNS\u30b5\u30a4\u30c8\u306e\u767b\u9332\u8005\uff08\u30d5\u30a9\u30ed\u30ef\u30fc\uff09\u304c3,000\u3092\u8d85\u3048\u308b\",\n      \"rewards\": [],\n      \"sub_quests\": [\n        { \"id\": \"SQ0003-01\", \"title\": \"SNS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u9078\u5b9a\u30fb\u8a2d\u8a08\", \"status\": \"completed\" },\n        { \"id\": \"SQ0003-02\", \"title\": \"X\uff08Twitter\uff09\u30a2\u30ab\u30a6\u30f3\u30c8\u958b\u8a2d\u30fbHP\u9023\u643a\", \"status\": \"completed\" },\n        { \"id\": \"SQ0003-03\", \"title\": \"YouTube\u30c1\u30e3\u30f3\u30cd\u30eb\u958b\u8a2d\u30fbHP\u9023\u643a\", \"status\": \"completed\" },\n        { \"id\": \"SQ0003-04\", \"title\": \"Instagram \u30a2\u30ab\u30a6\u30f3\u30c8\u958b\u8a2d\u30fbHP\u9023\u643a\", \"status\": \"pending\" },\n        { \"id\": \"SQ0003-05\", \"title\": \"\u5404SNS \u521d\u56de\u6295\u7a3f\u30fbLifeGame\u9023\u52d5\u904b\u7528\u958b\u59cb\", \"status\": \"active\" },\n        { \"id\": \"SQ0003-06\", \"title\": \"\u30ef\u30fc\u30eb\u30c9\u30de\u30c3\u30d7\u30da\u30fc\u30b8\u3078\u306e\u5168SNS\u30ea\u30f3\u30af\u53cd\u6620\", \"status\": \"pending\" },\n        { \"id\": \"SQ0003-07\", \"title\": \"Note\u958b\u8a2d\u30fb\u30de\u30ac\u30b8\u30f3\u904b\u7528\u958b\u59cb\", \"status\": \"completed\" },\n        { \"id\": \"SQ0003-08\", \"title\": \"LinkedIn\u958b\u8a2d\", \"status\": \"active\" }\n      ]\n    },\n    {\n      \"id\": \"MQ0004\",\n      \"title\": \"\u53ce\u76ca\u306e\u56de\u8def\u3092\u7e4b\u3052\",\n      \"subtitle\": \"\u6700\u521d\u306e\u6709\u6599\u9867\u5ba2\u3092\u8fce\u3048\u5165\u308c\u3088\",\n      \"title_en\": \"Connect the Revenue Circuit \u2014 Welcome Your First Paying Client\",\n      \"status\": \"active\",\n      \"started_date\": \"2026-04-06\",\n      \"completed_date\": null,\n      \"description\": \"AI\u62c5\u5f53\u90e8\u9577\u30b5\u30fc\u30d3\u30b9\u306e\u96c6\u5ba2\u5c0e\u7dda\u3092\u5b8c\u6210\u3055\u305b\u3001\u6700\u521d\u306e\u6709\u6599\u9867\u5ba2\u3092\u7372\u5f97\u3059\u308b\u3002\u770b\u677f\uff08LP\uff09\u306f\u7acb\u3066\u305f\u3002\u6b21\u306f\u9053\u6a19\uff08CTA\uff09\u3092\u7f6e\u304d\u3001\u5bbf\uff08\u30e1\u30eb\u30de\u30ac\uff09\u3092\u6574\u3048\u3001\u521d\u3081\u3066\u53ce\u76ca\u306e\u56de\u8def\u304c\u7e4b\u304c\u308b\u3002\",\n      \"completion_criteria\": \"AI\u62c5\u5f53\u90e8\u9577\u30b5\u30fc\u30d3\u30b9\u306e\u6700\u521d\u306e\u6709\u6599\u9867\u5ba2\u3068\u5951\u7d04\u3092\u7de0\u7d50\u3059\u308b\",\n      \"rewards\": [],\n      \"sub_quests\": [\n        { \"id\": \"SQ0004-01\", \"title\": \"\u5168\u30d6\u30ed\u30b0\u8a18\u4e8b\u306bCTA\u8ffd\u52a0\uff08The Executive TECH \/ AI\u6d3b\u7528\u30b3\u30e9\u30e0 \/ \u696d\u52d9\u6539\u5584 \/ \u30de\u30cd\u30b8\u30e1\u30f3\u30c8 \/ \u304a\u77e5\u3089\u305b\uff09\", \"status\": \"completed\" },\n        { \"id\": \"SQ0004-02\", \"title\": \"\u30e1\u30eb\u30de\u30ac\u767b\u9332\u30da\u30fc\u30b8\uff0b\u7121\u6599\u30d7\u30ec\u30bc\u30f3\u30c8\u4f5c\u6210\", \"status\": \"pending\" },\n        { \"id\": \"SQ0004-03\", \"title\": \"\u8acb\u6c42\u66f8\u30fb\u9280\u884c\u632f\u8fbc\u30d5\u30ed\u30fc\u6574\u5099\", \"status\": \"pending\" },\n        { \"id\": \"SQ0004-04\", \"title\": \"\u521d\u5951\u7d04 \u2014 \u6700\u521d\u306e\u6709\u6599\u9867\u5ba2\u7372\u5f97\", \"status\": \"pending\" }\n      ]\n    },\n    {\n      \"id\": \"MQ0005\",\n      \"title\": \"\u8a13\u7df4\u6240\u3092\u5efa\u8a2d\u305b\u3088\",\n      \"subtitle\": \"\u30b2\u30fc\u30e0\u3067\u5b66\u3076\u300c\u6210\u9577\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u300d\",\n      \"title_en\": \"Build the Training Ground \u2014 Learn Growth Management Through Games\",\n      \"status\": \"active\",\n      \"started_date\": \"2026-04-15\",\n      \"completed_date\": null,\n      \"description\": \"\u4ed5\u4e8b\u306e\u6210\u9577\u3092\u30b2\u30fc\u30e0\u30d6\u30c3\u30af\u3067\u4f53\u9a13\u3067\u304d\u308b\u8a13\u7df4\u6240\u3092\u8a2d\u8a08\u30fb\u958b\u767a\u3057\u3001\u6751\u306b\u958b\u8a2d\u3059\u308b\u30023\u3064\u306e\u30c0\u30a4\u30b9\uff08\u4f53\u529b\u30fb\u77e5\u8b58\u30fb\u6a5f\u4f1a\u7d4c\u9a13\uff09\ufffd\ufffd\u8907\u5229\u69cb\u9020\u306e\u6210\u9577\u30b7\u30b9\u30c6\u30e0\u3067\u30016\u3064\u306e\u30b7\u30ca\u30ea\u30aa\u3092\u653b\u7565\u3059\u308b\",\n      \"completion_criteria\": \"\u8a13\u7df4\u6240\u30da\u30fc\u30b8\u304c\u516c\u958b\u6e08\u307f\uff0b\u51686\u30b7\u30ca\u30ea\u30aa\u304c\u30d7\u30ec\u30a4\u53ef\u80fd\uff0bKind Boss\u89e3\u8aac\u304c\u5168\u30b7\u30ca\u30ea\u30aa\u306b\u5b9f\u88c5\u6e08\u307f\",\n      \"rewards\": [],\n      \"sub_quests\": [\n        { \"id\": \"SQ0005-01\", \"title\": \"\u30b2\u30fc\u30e0\u30d6\u30c3\u30af\u4ed5\u69d8\u7b56\u5b9a\uff08v2\uff09\", \"status\": \"completed\" },\n        { \"id\": \"SQ0005-02\", \"title\": \"\u958b\u767a\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u78ba\u5b9a\", \"status\": \"pending\" },\n        { \"id\": \"SQ0005-03\", \"title\": \"JSON\u69cb\u9020\u8a2d\u8a08\u30fb\u30b2\u30fc\u30e0\u30a8\u30f3\u30b8\u30f3\u5b9f\u88c5\", \"status\": \"pending\" },\n        { \"id\": \"SQ0005-04\", \"title\": \"\u7b2c1\u30b7\u30ca\u30ea\u30aa\u300c\u516c\u5712\u306e\u30d9\u30f3\u30c1\u300d\u5236\u4f5c\", \"status\": \"pending\" },\n        { \"id\": \"SQ0005-05\", \"title\": \"WP\u30da\u30fc\u30b8\u5b9f\u88c5\u30fb\u30c7\u30d7\u30ed\u30a4\", \"status\": \"pending\" },\n        { \"id\": \"SQ0005-06\", \"title\": \"\u51686\u30b7\u30ca\u30ea\u30aa\u5236\u4f5c\u30fb\u516c\u958b\", \"status\": \"pending\" }\n      ]\n    },\n    {\n      \"id\": \"MQFINAL\",\n      \"title\": \"\u638c\u306e\u4e2d\u306e\u6751\",\n      \"subtitle\": \"\u81ea\u5df1\u6210\u9577\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u5b8c\u6210\",\n      \"title_en\": \"The Village in Your Palm \u2014 A Self-Growth Platform, Realized\",\n      \"status\": \"locked\",\n      \"started_date\": null,\n      \"completed_date\": null,\n      \"description\": \"LifeGame\u306e\u4ed5\u7d44\u307f\u3092\u81ea\u5df1\u6210\u9577\u652f\u63f4\u30b9\u30de\u30db\u30a2\u30d7\u30ea\u3068\u3057\u3066\u5b8c\u6210\u3055\u305b\u308b\u3002\u30b0\u30ed\u30fc\u30b9\u30d6\u30ea\u30c3\u30b8\u500b\u4eba\u5411\u3051\u4e8b\u696d\uff08BtoC\u30b5\u30fc\u30d3\u30b9\uff09\u306e\u672c\u4f53\",\n      \"completion_criteria\": \"\u2460 \u30a2\u30d7\u30ea\u304c\u30e6\u30fc\u30b6\u30fc\u306e\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3067\u52d5\u4f5c\u3059\u308b \u2461 \u30e6\u30fc\u30b6\u30fc\u304c\u81ea\u5206\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30fb\u30af\u30a8\u30b9\u30c8\u3092\u4f5c\u6210\u30fb\u7ba1\u7406\u3067\u304d\u308b \u2462 \u5192\u967a\u8005\u540c\u58eb\u306e\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u6a5f\u80fd\u304c\u7a3c\u50cd\u3057\u3066\u3044\u308b\",\n      \"rewards\": [],\n      \"sub_quests\": []\n    }\n  ],\n\n  \"additional_quests\": []\n};\n\n\/\/ ===== \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0 =====\nfunction init() {\n  let data = QUEST_DATA;\n\n  \/\/ \u5916\u90e8JSON\u8aad\u307f\u8fbc\u307f\u8a66\u884c\n  fetch('\/lifegame\/wp-content\/uploads\/lifegame\/quests.json')\n    .then(r => r.ok ? r.json() : Promise.reject())\n    .then(json => { data = json; render(data); })\n    .catch(() => render(data));\n}\n\nfunction render(data) {\n  document.getElementById('header-date').textContent = formatDate(new Date().toISOString().split('T')[0]);\n  document.getElementById('footer-ver').textContent = '';\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\" onclick=\"toggleMQ(this)\">\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  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>&#x1F4CB; QUEST BOARD<br \/>\n  \u63b2\u793a\u677f<\/p>\n<p>    QUEST BOARD<\/p>\n<p>      ACTIVE QUESTS<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"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":27,"href":"https:\/\/www.growthbridge.biz\/lifegame\/wp-json\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":660,"href":"https:\/\/www.growthbridge.biz\/lifegame\/wp-json\/wp\/v2\/pages\/7\/revisions\/660"}],"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}]}}