{"id":593,"date":"2026-09-12T00:32:19","date_gmt":"2026-09-11T15:32:19","guid":{"rendered":"https:\/\/saien-no-niwa.voddolesu.art\/?page_id=593"},"modified":"2026-09-12T18:17:40","modified_gmt":"2026-09-12T09:17:40","slug":"selath-vohr-studio","status":"publish","type":"page","link":"https:\/\/saien-no-niwa.voddolesu.art\/?page_id=593","title":{"rendered":"selath-vohr-studio"},"content":{"rendered":"\n<!-- ==========================================================================\n     SELATH-VOHR STUDIO \u25c6 WordPress\u56fa\u5b9a\u30da\u30fc\u30b8\uff0f\u6295\u7a3f\u5c02\u7528 \u57cb\u3081\u8fbc\u307f\u30b3\u30fc\u30c9\n     \n     \u3010\u8a2d\u7f6e\u624b\u9806\u3011\n     1. WordPress\u306e\u56fa\u5b9a\u30da\u30fc\u30b8\uff08\u307e\u305f\u306f\u6295\u7a3f\uff09\u7de8\u96c6\u753b\u9762\u3092\u958b\u304d\u307e\u3059\u3002\n     2. \u30d6\u30ed\u30c3\u30af\u8ffd\u52a0\u3067\u300c\u30ab\u30b9\u30bf\u30e0HTML\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002\n     3. \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u3092\u3010\u3059\u3079\u3066\u3011\u30b3\u30d4\u30fc\u3057\u3066\u8cbc\u308a\u4ed8\u3051\u3001\u30da\u30fc\u30b8\u3092\u516c\u958b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n     ========================================================================== -->\n\n<style>\n\/* ==========================================================================\n   SELATH-VOHR STUDIO \u25c6 WordPress \u30c6\u30fc\u30de\u5b8c\u5168\u9694\u96e2\u30b9\u30bf\u30a4\u30eb\n   \u3069\u3093\u306a\u30c6\u30fc\u30de\uff08SWELL, Cocoon, JIN, SANGO, Astra\u7b49\uff09\u914d\u4e0b\u3067\u3082\u5d29\u308c\u306a\u3044\u5f37\u529b\u306a\u30ea\u30bb\u30c3\u30c8\n   ========================================================================== *\/\n#selath-vohr-app {\n  --bg-deep: #0b0d13;\n  --bg-card: rgba(18, 22, 34, 0.85);\n  --bg-hover: rgba(28, 35, 54, 0.95);\n  --border-subtle: rgba(120, 140, 180, 0.2);\n  --border-focus: rgba(140, 180, 240, 0.6);\n  --text-main: #dce4f2;\n  --text-muted: #8896ab;\n  --text-bright: #ffffff;\n  --accent-vohr: #9bbcdb;\n  --accent-lu: #f4d06f;\n  --accent-ser: #6ebd8f;\n  --accent-vod: #5cb3e6;\n  --accent-sha: #bda793;\n  --accent-gold: #e2c07a;\n  --accent-red: #e06c75;\n  --accent-silver: #d0d7de;\n  --radius-sm: 4px;\n  --radius-md: 8px;\n  --radius-lg: 12px;\n  --font-serif: \"Cinzel\", \"Times New Roman\", \"Yu Mincho\", \"Hiragino Mincho ProN\", serif;\n  --font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Hiragino Kaku Gothic ProN\", \"BIZ UDPGothic\", Meiryo, sans-serif;\n\n  background-color: var(--bg-deep) !important;\n  background-image: \n    radial-gradient(ellipse at 20% 10%, rgba(30, 45, 80, 0.4) 0%, transparent 60%),\n    radial-gradient(ellipse at 80% 80%, rgba(20, 30, 60, 0.5) 0%, transparent 70%) !important;\n  color: var(--text-main) !important;\n  font-family: var(--font-sans) !important;\n  font-size: 14px;\n  line-height: 1.6 !important;\n  width: 100% !important;\n  max-width: 100% !important;\n  margin: 1rem auto !important;\n  padding: 0 !important;\n  border-radius: var(--radius-lg);\n  border: 1px solid var(--border-subtle);\n  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);\n  box-sizing: border-box !important;\n  overflow: hidden !important;\n  position: relative !important;\n  text-align: left !important;\n  clear: both;\n}\n\n\/* \u5185\u90e8\u8981\u7d20\u306e\u30c6\u30fc\u30de\u30b9\u30bf\u30a4\u30eb\u5f37\u5236\u30ea\u30bb\u30c3\u30c8 *\/\n#selath-vohr-app *,\n#selath-vohr-app *::before,\n#selath-vohr-app *::after {\n  box-sizing: border-box !important;\n  text-shadow: none;\n}\n\n#selath-vohr-app p {\n  margin: 0 0 1rem 0 !important;\n  padding: 0 !important;\n  color: inherit !important;\n  font-size: inherit !important;\n  line-height: inherit !important;\n}\n\n#selath-vohr-app h1, \n#selath-vohr-app h2, \n#selath-vohr-app h3, \n#selath-vohr-app h4 {\n  margin: 0 0 0.5rem 0 !important;\n  padding: 0 !important;\n  color: inherit !important;\n  border: none !important;\n  background: none !important;\n}\n\n#selath-vohr-app a {\n  color: inherit !important;\n  text-decoration: none !important;\n  border: none !important;\n  box-shadow: none !important;\n}\n\n#selath-vohr-app button {\n  cursor: pointer !important;\n  font-family: inherit !important;\n  box-shadow: none;\n  text-transform: none;\n  background-image: none !important;\n}\n\n#selath-vohr-app input,\n#selath-vohr-app select,\n#selath-vohr-app textarea {\n  font-family: inherit !important;\n  outline: none !important;\n}\n\n#selath-vohr-app table {\n  border-collapse: collapse !important;\n  width: 100% !important;\n  margin: 0 !important;\n  border: none !important;\n  background: none !important;\n}\n\n#selath-vohr-app th, \n#selath-vohr-app td {\n  border: 1px solid var(--border-subtle) !important;\n  padding: 0.6rem 0.8rem !important;\n  background: none !important;\n  color: inherit !important;\n}\n\n\n    :root {\n      --bg-deep: #0b0d13;\n      --bg-card: rgba(18, 22, 34, 0.8);\n      --bg-hover: rgba(28, 35, 54, 0.9);\n      --border-subtle: rgba(120, 140, 180, 0.2);\n      --border-focus: rgba(140, 180, 240, 0.6);\n      \n      --text-main: #dce4f2;\n      --text-muted: #8896ab;\n      --text-bright: #ffffff;\n      \n      --accent-vohr: #9bbcdb; \/* \u9759\u5bc2\u30fb\u7a7a\u6c17\uff1a\u6de1\u9752\u7070 *\/\n      --accent-lu: #f4d06f;   \/* \u5149\u30fb\u6ce2\u52d5\uff1a\u661f\u91d1\u8272 *\/\n      --accent-ser: #6ebd8f;  \/* \u751f\u547d\u30fb\u690d\u7269\uff1a\u7fe1\u7fe0 *\/\n      --accent-vod: #5cb3e6;  \/* \u6d41\u4f53\u30fb\u6c34\uff1a\u84bc\u6d77 *\/\n      --accent-sha: #bda793;  \/* \u786c\u8cea\u30fb\u9271\u77f3\uff1a\u7802\u5ca9 *\/\n      \n      --accent-gold: #e2c07a;\n      --accent-red: #e06c75;\n      --accent-silver: #d0d7de;\n      --accent-glow: rgba(110, 150, 220, 0.15);\n      \n      --radius-sm: 4px;\n      --radius-md: 8px;\n      --radius-lg: 12px;\n      --font-serif: \"Cinzel\", \"Times New Roman\", \"Yu Mincho\", \"Hiragino Mincho ProN\", serif;\n      --font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Hiragino Kaku Gothic ProN\", \"BIZ UDPGothic\", Meiryo, sans-serif;\n    }\n\n    * {\n      box-sizing: border-box;\n      margin: 0;\n      padding: 0;\n    }\n\n    #selath-vohr-app {\n      background-color: var(--bg-deep);\n      background-image: \n        radial-gradient(ellipse at 20% 10%, rgba(30, 45, 80, 0.4) 0%, transparent 60%),\n        radial-gradient(ellipse at 80% 80%, rgba(20, 30, 60, 0.5) 0%, transparent 70%);\n      color: var(--text-main);\n      font-family: var(--font-sans);\n      min-height: 100vh;\n      line-height: 1.6;\n      display: flex;\n      flex-direction: column;\n    }\n\n    #selath-vohr-app header {\n      padding: 1.25rem 2rem;\n      border-bottom: 1px solid var(--border-subtle);\n      background: rgba(11, 13, 19, 0.85);\n      backdrop-filter: blur(10px);\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      flex-wrap: wrap;\n      gap: 1rem;\n      position: sticky;\n      top: 0;\n      z-index: 100;\n    }\n\n    .header-title {\n      display: flex;\n      flex-direction: column;\n    }\n\n    .header-title h1 {\n      font-family: var(--font-serif);\n      font-size: 1.5rem;\n      font-weight: 400;\n      letter-spacing: 0.15em;\n      color: var(--text-bright);\n      text-shadow: 0 0 15px rgba(226, 192, 122, 0.3);\n    }\n\n    .header-title .subtitle {\n      font-size: 0.8rem;\n      letter-spacing: 0.08em;\n      color: var(--text-muted);\n    }\n\n    #selath-vohr-app nav {\n      display: flex;\n      gap: 0.5rem;\n    }\n\n    .nav-btn {\n      background: transparent;\n      border: 1px solid var(--border-subtle);\n      color: var(--text-muted);\n      padding: 0.45rem 0.9rem;\n      border-radius: var(--radius-sm);\n      cursor: pointer;\n      font-family: var(--font-sans);\n      font-size: 0.85rem;\n      letter-spacing: 0.05em;\n      transition: all 0.2s ease;\n    }\n\n    .nav-btn:hover {\n      color: var(--text-main);\n      border-color: var(--border-focus);\n      background: var(--bg-hover);\n    }\n\n    .nav-btn.active {\n      color: var(--accent-gold);\n      border-color: var(--accent-gold);\n      background: rgba(226, 192, 122, 0.08);\n      box-shadow: 0 0 10px rgba(226, 192, 122, 0.15);\n    }\n\n    #selath-vohr-app main {\n      flex: 1;\n      padding: 1.5rem 2rem 3rem;\n      max-width: 1280px;\n      margin: 0 auto;\n      width: 100%;\n    }\n\n    .tab-content {\n      display: none;\n    }\n\n    .tab-content.active {\n      display: block;\n      animation: fadeIn 0.3s ease;\n    }\n\n    @keyframes fadeIn {\n      from { opacity: 0; transform: translateY(6px); }\n      to { opacity: 1; transform: translateY(0); }\n    }\n\n    .section-title {\n      font-family: var(--font-serif);\n      font-size: 1.15rem;\n      letter-spacing: 0.1em;\n      color: var(--accent-gold);\n      margin-bottom: 1rem;\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n    }\n\n    .panel-grid {\n      display: grid;\n      grid-template-columns: 1.15fr 0.85fr;\n      gap: 1.5rem;\n    }\n\n    @media (max-width: 950px) {\n      .panel-grid {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    .card {\n      background: var(--bg-card);\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-md);\n      padding: 1.25rem;\n      backdrop-filter: blur(8px);\n      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);\n    }\n\n    .group-label {\n      font-size: 0.8rem;\n      letter-spacing: 0.08em;\n      color: var(--text-muted);\n      margin-bottom: 0.6rem;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n\n    .btn-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));\n      gap: 0.5rem;\n      margin-bottom: 1.2rem;\n    }\n\n    .choice-btn {\n      background: rgba(15, 20, 30, 0.6);\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-sm);\n      padding: 0.5rem 0.6rem;\n      text-align: left;\n      cursor: pointer;\n      transition: all 0.15s ease;\n      color: var(--text-main);\n    }\n\n    .choice-btn:hover {\n      border-color: var(--border-focus);\n      background: var(--bg-hover);\n    }\n\n    .choice-btn.selected {\n      border-color: var(--accent-gold);\n      background: rgba(226, 192, 122, 0.12);\n      box-shadow: 0 0 10px rgba(226, 192, 122, 0.2);\n    }\n\n    .choice-btn .term {\n      font-family: var(--font-serif);\n      font-size: 0.95rem;\n      font-weight: 600;\n      letter-spacing: 0.04em;\n      display: block;\n    }\n\n    .choice-btn .kana {\n      font-size: 0.72rem;\n      color: var(--text-muted);\n      display: block;\n    }\n\n    .choice-btn .meaning {\n      font-size: 0.72rem;\n      color: var(--text-muted);\n      margin-top: 2px;\n      display: block;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    .attr-vohr .term { color: var(--accent-vohr); }\n    .attr-lu .term   { color: var(--accent-lu); }\n    .attr-ser .term  { color: var(--accent-ser); }\n    .attr-vod .term  { color: var(--accent-vod); }\n    .attr-sha .term  { color: var(--accent-sha); }\n\n    .preview-box {\n      background: rgba(10, 13, 20, 0.85);\n      border: 1px solid var(--border-focus);\n      border-radius: var(--radius-md);\n      padding: 1.5rem;\n      display: flex;\n      flex-direction: column;\n      gap: 1rem;\n      position: sticky;\n      top: 5.5rem;\n    }\n\n    .preview-header {\n      border-bottom: 1px solid var(--border-subtle);\n      padding-bottom: 0.5rem;\n      font-size: 0.8rem;\n      letter-spacing: 0.1em;\n      color: var(--accent-gold);\n    }\n\n    .preview-word {\n      font-family: var(--font-serif);\n      font-size: 1.8rem;\n      color: var(--text-bright);\n      letter-spacing: 0.08em;\n      text-shadow: 0 0 20px rgba(180, 200, 255, 0.25);\n      min-height: 2.5rem;\n      word-break: break-all;\n    }\n\n    .preview-kana {\n      font-size: 0.92rem;\n      color: var(--accent-gold);\n      letter-spacing: 0.05em;\n    }\n\n    .preview-breakdown {\n      font-size: 0.8rem;\n      color: var(--text-muted);\n      border-top: 1px dashed var(--border-subtle);\n      padding-top: 0.75rem;\n    }\n\n    .preview-breakdown span {\n      display: inline-block;\n      margin-right: 0.5rem;\n      margin-bottom: 0.25rem;\n      padding: 0.15rem 0.4rem;\n      background: rgba(255, 255, 255, 0.05);\n      border-radius: 3px;\n    }\n\n    .action-row {\n      display: flex;\n      gap: 0.5rem;\n      margin-top: 0.5rem;\n    }\n\n    .primary-btn {\n      flex: 1;\n      background: linear-gradient(135deg, rgba(226, 192, 122, 0.25), rgba(180, 140, 70, 0.2));\n      border: 1px solid var(--accent-gold);\n      color: var(--accent-gold);\n      padding: 0.65rem 1rem;\n      border-radius: var(--radius-sm);\n      cursor: pointer;\n      font-size: 0.88rem;\n      font-weight: 500;\n      letter-spacing: 0.06em;\n      transition: all 0.2s ease;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      gap: 0.4rem;\n    }\n\n    .primary-btn:hover {\n      background: linear-gradient(135deg, rgba(226, 192, 122, 0.35), rgba(180, 140, 70, 0.3));\n      box-shadow: 0 0 15px rgba(226, 192, 122, 0.25);\n    }\n\n    .secondary-btn {\n      background: transparent;\n      border: 1px solid var(--border-subtle);\n      color: var(--text-main);\n      padding: 0.65rem 1rem;\n      border-radius: var(--radius-sm);\n      cursor: pointer;\n      font-size: 0.88rem;\n      transition: all 0.2s ease;\n    }\n\n    .secondary-btn:hover {\n      border-color: var(--border-focus);\n      background: var(--bg-hover);\n    }\n\n    .input-field {\n      display: flex;\n      flex-direction: column;\n      gap: 0.3rem;\n    }\n\n    .input-field label {\n      font-size: 0.8rem;\n      color: var(--text-muted);\n      letter-spacing: 0.05em;\n    }\n\n    .text-input {\n      background: rgba(10, 15, 25, 0.8);\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-sm);\n      padding: 0.6rem 0.8rem;\n      color: var(--text-bright);\n      font-family: inherit;\n      font-size: 0.95rem;\n      transition: border-color 0.2s;\n    }\n\n    .text-input:focus {\n      outline: none;\n      border-color: var(--accent-gold);\n    }\n\n    .lexicon-controls {\n      display: flex;\n      gap: 0.8rem;\n      margin-bottom: 1.2rem;\n      flex-wrap: wrap;\n    }\n\n    .search-input {\n      flex: 1;\n      min-width: 200px;\n    }\n\n    .entries-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n      gap: 1rem;\n    }\n\n    .entry-card {\n      background: var(--bg-card);\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-md);\n      padding: 1rem;\n      display: flex;\n      flex-direction: column;\n      gap: 0.4rem;\n      position: relative;\n      transition: all 0.2s ease;\n    }\n\n    .entry-card:hover {\n      border-color: var(--border-focus);\n      transform: translateY(-2px);\n      box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);\n    }\n\n    .entry-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: baseline;\n    }\n\n    .entry-term {\n      font-family: var(--font-serif);\n      font-size: 1.2rem;\n      color: var(--text-bright);\n      letter-spacing: 0.04em;\n    }\n\n    .entry-badge {\n      font-size: 0.68rem;\n      padding: 0.15rem 0.4rem;\n      border-radius: 3px;\n      background: rgba(226, 192, 122, 0.15);\n      color: var(--accent-gold);\n      border: 1px solid rgba(226, 192, 122, 0.3);\n    }\n\n    .entry-kana {\n      font-size: 0.8rem;\n      color: var(--accent-gold);\n    }\n\n    .entry-meaning {\n      font-size: 0.85rem;\n      color: var(--text-main);\n      line-height: 1.5;\n      margin-top: 0.2rem;\n    }\n\n    .entry-meta {\n      font-size: 0.72rem;\n      color: var(--text-muted);\n      margin-top: 0.5rem;\n      padding-top: 0.5rem;\n      border-top: 1px dashed var(--border-subtle);\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n\n    .delete-btn {\n      background: none;\n      border: none;\n      color: var(--text-muted);\n      cursor: pointer;\n      font-size: 0.75rem;\n      padding: 0.2rem 0.4rem;\n    }\n\n    .delete-btn:hover {\n      color: #e67e7e;\n    }\n\n    .textbook-layout {\n      display: grid;\n      grid-template-columns: 240px 1fr;\n      gap: 2rem;\n      align-items: start;\n    }\n\n    @media (max-width: 850px) {\n      .textbook-layout {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    .textbook-nav {\n      position: sticky;\n      top: 5.5rem;\n      background: var(--bg-card);\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-md);\n      padding: 1rem;\n      display: flex;\n      flex-direction: column;\n      gap: 0.4rem;\n      z-index: 10;\n    }\n    .textbook-nav summary {\n      cursor: pointer;\n      font-size: 0.85rem;\n      letter-spacing: 0.08em;\n      color: var(--accent-gold);\n      font-weight: 600;\n      padding: 0.2rem 0;\n      list-style: none;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n    .textbook-nav summary::-webkit-details-marker {\n      display: none;\n    }\n    .textbook-nav summary::after {\n      content: \"\u25bc\";\n      font-size: 0.65rem;\n      transition: transform 0.2s ease;\n    }\n    .textbook-nav[open] summary::after {\n      transform: rotate(180deg);\n    }\n    .textbook-nav-list {\n      display: flex;\n      flex-direction: column;\n      gap: 0.4rem;\n      margin-top: 0.5rem;\n    }\n    @media (max-width: 900px) {\n      .textbook-layout {\n        display: block !important;\n      }\n      .textbook-nav {\n        position: static !important;\n        top: auto !important;\n        z-index: auto !important;\n        margin-bottom: 1.5rem !important;\n        max-height: none !important;\n        overflow: visible !important;\n        clear: both !important;\n      }\n      .textbook-body {\n        position: static !important;\n        clear: both !important;\n      }\n    }\n\n    .textbook-nav-link {\n      color: var(--text-muted);\n      text-decoration: none;\n      font-size: 0.85rem;\n      padding: 0.4rem 0.6rem;\n      border-radius: var(--radius-sm);\n      transition: all 0.15s ease;\n    }\n\n    .textbook-nav-link:hover {\n      color: var(--accent-gold);\n      background: var(--bg-hover);\n    }\n\n    .textbook-body {\n      display: flex;\n      flex-direction: column;\n      gap: 2rem;\n    }\n\n    .guide-section {\n      background: var(--bg-card);\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-md);\n      padding: 2rem;\n      line-height: 1.8;\n      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);\n    }\n\n    .guide-section h2 {\n      font-family: var(--font-serif);\n      color: var(--accent-gold);\n      font-size: 1.35rem;\n      margin-bottom: 1rem;\n      border-bottom: 1px solid var(--border-subtle);\n      padding-bottom: 0.5rem;\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n    }\n\n    .guide-section h3 {\n      font-family: var(--font-serif);\n      color: var(--text-bright);\n      font-size: 1.05rem;\n      margin: 1.5rem 0 0.6rem;\n      letter-spacing: 0.05em;\n    }\n\n    .guide-section p {\n      margin-bottom: 0.8rem;\n      font-size: 0.92rem;\n    }\n\n    .guide-quote {\n      background: rgba(15, 20, 32, 0.8);\n      border-left: 3px solid var(--accent-gold);\n      padding: 1rem 1.4rem;\n      margin: 1.2rem 0;\n      color: #d2def0;\n      border-radius: 0 var(--radius-sm) var(--radius-sm) 0;\n    }\n\n    .guide-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin: 1.2rem 0;\n      font-size: 0.88rem;\n    }\n\n    .guide-table th, .guide-table td {\n      border: 1px solid var(--border-subtle);\n      padding: 0.6rem 0.9rem;\n      text-align: left;\n    }\n\n    .guide-table th {\n      background: rgba(255, 255, 255, 0.04);\n      color: var(--accent-gold);\n      font-weight: 500;\n    }\n\n    .highlight-term {\n      font-family: var(--font-serif);\n      font-weight: 600;\n      color: var(--accent-gold);\n    }\n\n    .toast {\n      position: fixed;\n      bottom: 2rem;\n      right: 2rem;\n      background: rgba(20, 30, 50, 0.95);\n      border: 1px solid var(--accent-gold);\n      color: var(--text-bright);\n      padding: 0.75rem 1.25rem;\n      border-radius: var(--radius-md);\n      font-size: 0.88rem;\n      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);\n      transform: translateY(100px);\n      opacity: 0;\n      transition: all 0.3s ease;\n      z-index: 1000;\n    }\n\n    .toast.show {\n      transform: translateY(0);\n      opacity: 1;\n    }\n\n    \/* \u771f\u540d\u7b97\u5b9a\u9580\u30b9\u30bf\u30a4\u30eb *\/\n    .obs-dot {\n      width: 10px;\n      height: 10px;\n      border-radius: 50%;\n      background: rgba(120, 140, 180, 0.25);\n      border: 1px solid var(--border-subtle);\n      transition: all 0.3s ease;\n    }\n    .obs-dot.active {\n      background: var(--accent-gold);\n      box-shadow: 0 0 8px rgba(226, 192, 122, 0.5);\n      border-color: var(--accent-gold);\n    }\n    .divination-gate-card {\n      background: var(--bg-card);\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-md);\n      padding: 1.5rem;\n      transition: border-color 0.2s ease, box-shadow 0.2s ease;\n    }\n    .divination-gate-card:hover {\n      border-color: var(--border-focus);\n    }\n    .gate-header {\n      display: flex;\n      align-items: center;\n      gap: 0.75rem;\n      margin-bottom: 0.6rem;\n    }\n    .gate-badge {\n      background: rgba(226, 192, 122, 0.15);\n      border: 1px solid var(--accent-gold);\n      color: var(--accent-gold);\n      padding: 0.15rem 0.6rem;\n      border-radius: var(--radius-sm);\n      font-size: 0.75rem;\n      font-family: var(--font-serif);\n      font-weight: 600;\n      letter-spacing: 0.05em;\n    }\n    .gate-title {\n      font-family: var(--font-serif);\n      font-size: 1.05rem;\n      color: var(--text-bright);\n      letter-spacing: 0.05em;\n    }\n    .gate-prompt {\n      font-size: 0.92rem;\n      color: var(--text-muted);\n      margin-bottom: 1rem;\n      line-height: 1.6;\n    }\n    .gate-options-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));\n      gap: 0.75rem;\n    }\n    .gate-option-btn {\n      background: rgba(255, 255, 255, 0.03);\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-sm);\n      padding: 0.9rem 1rem;\n      text-align: left;\n      color: var(--text-main);\n      cursor: pointer;\n      font-family: var(--font-sans);\n      transition: all 0.2s ease;\n      display: flex;\n      flex-direction: column;\n      gap: 0.35rem;\n      position: relative;\n    }\n    .gate-option-btn:hover {\n      background: var(--bg-hover);\n      border-color: var(--border-focus);\n      color: var(--text-bright);\n    }\n    .gate-option-btn.selected {\n      background: rgba(226, 192, 122, 0.12);\n      border-color: var(--accent-gold);\n      box-shadow: 0 0 12px rgba(226, 192, 122, 0.2);\n    }\n    .gate-option-label {\n      font-weight: 600;\n      font-size: 0.95rem;\n      color: var(--accent-gold);\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n    }\n    .gate-option-btn.selected .gate-option-label {\n      color: #fff;\n    }\n    .gate-option-sub {\n      font-size: 0.8rem;\n      color: var(--text-muted);\n      line-height: 1.4;\n    }\n    .gate-option-btn.selected .gate-option-sub {\n      color: #dce4f2;\n    }\n\n    \/* \u8a3a\u65ad\u7d50\u679c\u8868\u793a\u67a0 *\/\n    .divination-result-container {\n      background: rgba(14, 18, 28, 0.95);\n      border: 1px solid var(--accent-gold);\n      border-radius: var(--radius-lg);\n      padding: 2.5rem;\n      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6), 0 0 20px rgba(226, 192, 122, 0.15);\n      animation: fadeIn 0.5s ease;\n    }\n    .result-aura-title {\n      text-align: center;\n      font-family: var(--font-serif);\n      font-size: 0.85rem;\n      letter-spacing: 0.2em;\n      color: var(--accent-vohr);\n      margin-bottom: 0.5rem;\n    }\n    .result-name-box {\n      text-align: center;\n      margin-bottom: 1.5rem;\n    }\n    .result-truename {\n      font-family: var(--font-serif);\n      font-size: 2.2rem;\n      color: var(--accent-gold);\n      letter-spacing: 0.12em;\n      font-weight: 600;\n      text-shadow: 0 0 20px rgba(226, 192, 122, 0.4);\n    }\n    .result-kana {\n      font-size: 1.05rem;\n      color: var(--text-muted);\n      letter-spacing: 0.15em;\n      margin-top: 0.25rem;\n    }\n    .result-title-badge {\n      display: inline-block;\n      margin: 1rem auto 0;\n      background: rgba(226, 192, 122, 0.08);\n      border: 1px solid rgba(226, 192, 122, 0.3);\n      padding: 0.4rem 1.2rem;\n      border-radius: 30px;\n      font-size: 0.95rem;\n      color: var(--text-bright);\n      letter-spacing: 0.08em;\n    }\n    .result-verse-box {\n      background: rgba(0, 0, 0, 0.4);\n      border-left: 3px solid var(--accent-gold);\n      padding: 1.25rem 1.5rem;\n      margin: 2rem 0;\n      border-radius: 0 var(--radius-md) var(--radius-md) 0;\n    }\n    .result-verse-text {\n      font-family: var(--font-serif);\n      font-size: 1.15rem;\n      color: var(--accent-gold);\n      letter-spacing: 0.08em;\n      margin-bottom: 0.4rem;\n    }\n    .result-verse-trans {\n      font-size: 0.88rem;\n      color: var(--text-muted);\n      line-height: 1.6;\n    }\n    .result-tags {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 0.5rem;\n      margin-bottom: 1.5rem;\n      justify-content: center;\n    }\n    .result-tag {\n      background: rgba(255, 255, 255, 0.04);\n      border: 1px solid var(--border-subtle);\n      padding: 0.3rem 0.8rem;\n      border-radius: var(--radius-sm);\n      font-size: 0.78rem;\n      color: var(--text-main);\n    }\n    .result-exegesis {\n      font-size: 0.95rem;\n      line-height: 1.8;\n      color: var(--text-main);\n      background: rgba(255, 255, 255, 0.02);\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-md);\n      padding: 1.5rem;\n      margin-bottom: 2rem;\n      white-space: pre-line;\n    }\n    .result-actions {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 1rem;\n      justify-content: center;\n    }\n\n    \/* \u539f\u5178\u89e3\u984c \uff06 \u8a9e\u6e90\u306e\u9023\u9396 \u30b9\u30bf\u30a4\u30eb *\/\n    .block-exegesis {\n      background: rgba(0, 0, 0, 0.35);\n      border-left: 3px solid var(--accent-gold);\n      padding: 0.75rem 1rem;\n      border-radius: 0 var(--radius-sm) var(--radius-sm) 0;\n      margin: 0.6rem 0;\n      font-size: 0.84rem;\n      color: var(--text-main);\n      line-height: 1.65;\n    }\n    .block-exegesis-label {\n      font-family: var(--font-serif);\n      font-size: 0.74rem;\n      color: var(--accent-gold);\n      letter-spacing: 0.08em;\n      margin-bottom: 0.25rem;\n      display: flex;\n      align-items: center;\n      gap: 0.4rem;\n    }\n    .block-genealogy {\n      background: rgba(255, 255, 255, 0.02);\n      border: 1px dashed rgba(120, 140, 180, 0.3);\n      padding: 0.65rem 0.9rem;\n      border-radius: var(--radius-sm);\n      margin: 0.6rem 0;\n      font-size: 0.82rem;\n      color: var(--text-muted);\n      line-height: 1.6;\n    }\n    .block-genealogy-label {\n      font-family: var(--font-serif);\n      font-size: 0.74rem;\n      color: var(--accent-vohr);\n      letter-spacing: 0.08em;\n      margin-bottom: 0.2rem;\n    }\n\n    \/* \u5178\u7bc4\u76ee\u9332\uff082\u30ab\u30e9\u30e0\u30fb\u5927\u7cfb\u9332\uff09\u30b9\u30bf\u30a4\u30eb *\/\n    .catalog-layout {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 1.5rem;\n      align-items: start;\n    }\n    @media (max-width: 900px) {\n      .catalog-layout {\n        grid-template-columns: 1fr;\n      }\n    }\n    .catalog-list-card {\n      background: var(--bg-card);\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-md);\n      padding: 1.25rem;\n      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n    }\n    .catalog-list-header {\n      margin-bottom: 1rem;\n      padding-bottom: 0.75rem;\n      border-bottom: 1px solid var(--border-subtle);\n      display: flex;\n      flex-direction: column;\n      gap: 0.75rem;\n    }\n    .catalog-controls {\n      display: flex;\n      gap: 0.6rem;\n      flex-wrap: wrap;\n    }\n    .catalog-items-container {\n      max-height: 640px;\n      overflow-y: auto;\n      display: flex;\n      flex-direction: column;\n      gap: 0.35rem;\n      padding-right: 0.3rem;\n    }\n    .catalog-items-container::-webkit-scrollbar {\n      width: 6px;\n    }\n    .catalog-items-container::-webkit-scrollbar-thumb {\n      background: rgba(226, 192, 122, 0.2);\n      border-radius: 3px;\n    }\n    .catalog-item-row {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      padding: 0.65rem 0.9rem;\n      background: rgba(15, 20, 32, 0.6);\n      border: 1px solid rgba(255, 255, 255, 0.05);\n      border-radius: var(--radius-sm);\n      cursor: pointer;\n      transition: all 0.15s ease;\n      gap: 0.75rem;\n    }\n    .catalog-item-row:hover {\n      background: rgba(30, 42, 65, 0.7);\n      border-color: var(--border-focus);\n      transform: translateX(3px);\n    }\n    .catalog-item-row.selected {\n      background: rgba(226, 192, 122, 0.12);\n      border-color: var(--accent-gold);\n      box-shadow: 0 0 12px rgba(226, 192, 122, 0.2);\n    }\n    .catalog-item-left {\n      display: flex;\n      align-items: baseline;\n      gap: 0.6rem;\n      min-width: 0;\n    }\n    .catalog-item-term {\n      font-family: var(--font-serif);\n      font-size: 1.05rem;\n      font-weight: 600;\n      color: var(--text-bright);\n      letter-spacing: 0.03em;\n    }\n    .catalog-item-row.selected .catalog-item-term {\n      color: var(--accent-gold);\n    }\n    .catalog-item-kana {\n      font-size: 0.75rem;\n      color: var(--text-muted);\n    }\n    .catalog-item-meaning {\n      font-size: 0.75rem;\n      color: var(--text-muted);\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n      flex: 1;\n    }\n    .catalog-item-badge {\n      font-size: 0.65rem;\n      padding: 0.15rem 0.4rem;\n      border-radius: 3px;\n      white-space: nowrap;\n      flex-shrink: 0;\n    }\n    .catalog-side-pane {\n      position: sticky;\n      top: 5.5rem;\n      background: rgba(10, 14, 22, 0.95);\n      border: 1px solid var(--accent-gold);\n      border-radius: var(--radius-md);\n      padding: 1.8rem;\n      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 20px rgba(226, 192, 122, 0.12);\n      display: flex;\n      flex-direction: column;\n      gap: 1.1rem;\n    }\n    .catalog-side-head {\n      border-bottom: 1px solid var(--border-subtle);\n      padding-bottom: 0.8rem;\n    }\n    .catalog-side-title-row {\n      display: flex;\n      justify-content: space-between;\n      align-items: flex-start;\n      gap: 1rem;\n    }\n    .catalog-side-term {\n      font-family: var(--font-serif);\n      font-size: 1.8rem;\n      color: var(--accent-gold);\n      letter-spacing: 0.08em;\n      line-height: 1.2;\n      text-shadow: 0 0 15px rgba(226, 192, 122, 0.3);\n    }\n    .catalog-side-kana {\n      font-size: 0.95rem;\n      color: var(--text-muted);\n      margin-top: 0.25rem;\n      letter-spacing: 0.05em;\n    }\n    .catalog-side-meaning {\n      font-size: 0.92rem;\n      color: var(--text-bright);\n      line-height: 1.6;\n      background: rgba(255, 255, 255, 0.02);\n      border-left: 3px solid var(--accent-vohr);\n      padding: 0.6rem 0.9rem;\n      border-radius: 0 var(--radius-sm) var(--radius-sm) 0;\n    }\n\n  \n    \/* ==========================================\n       \u25c6 \u30ec\u30b9\u30dd\u30f3\u30b7\u30d6\uff06WordPress\u5bfe\u5fdc\u30b9\u30bf\u30a4\u30eb\n       ========================================== *\/\n    html, #selath-vohr-app {\n      overflow-x: hidden;\n      max-width: 100vw;\n      width: 100%;\n      -webkit-text-size-adjust: 100%;\n    }\n\n    \/* \u30c6\u30fc\u30d6\u30eb\u6a2a\u30b9\u30af\u30ed\u30fc\u30eb\u30e9\u30c3\u30d1\u30fc *\/\n    .table-wrapper {\n      width: 100%;\n      overflow-x: auto;\n      -webkit-overflow-scrolling: touch;\n      margin: 1.2rem 0;\n      border: 1px solid var(--border-subtle);\n      border-radius: var(--radius-sm);\n    }\n    .table-wrapper .guide-table {\n      margin: 0;\n      min-width: 520px;\n    }\n\n    \/* \u30bf\u30d6\u30ec\u30c3\u30c8\u30fb\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u5171\u901a\uff08\u5e45 900px \u4ee5\u4e0b\uff09 *\/\n    @media (max-width: 900px) {\n      #selath-vohr-app main {\n        padding: 1.2rem 1rem 2.5rem;\n      }\n\n      .panel-grid {\n        grid-template-columns: 1fr !important;\n        gap: 1.2rem;\n      }\n\n      .textbook-layout {\n        grid-template-columns: 1fr !important;\n        gap: 1.2rem;\n      }\n\n      .textbook-nav {\n        position: static;\n        max-height: 240px;\n      }\n\n      .catalog-layout {\n        grid-template-columns: 1fr !important;\n        gap: 1.2rem;\n      }\n\n      .catalog-side-pane {\n        position: static !important;\n        padding: 1.4rem 1.1rem;\n      }\n\n      .catalog-side-term {\n        font-size: 1.45rem;\n        word-break: break-word;\n      }\n\n      .catalog-items-container {\n        max-height: 420px;\n      }\n    }\n\n    \/* \u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u8868\u793a\uff08\u5e45 768px \u4ee5\u4e0b\uff09 *\/\n    @media (max-width: 768px) {\n      #selath-vohr-app header {\n        padding: 0.65rem 0.85rem;\n        flex-direction: column;\n        align-items: stretch;\n        gap: 0.6rem;\n      }\n\n      .header-title {\n        text-align: center;\n      }\n\n      .header-title h1 {\n        font-size: 1.18rem;\n        letter-spacing: 0.08em;\n      }\n\n      .header-title .subtitle {\n        font-size: 0.72rem;\n        letter-spacing: 0.03em;\n      }\n\n      \/* \u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u306e\u6a2a\u30b9\u30af\u30ed\u30fc\u30eb\u30fb\u30ab\u30eb\u30fc\u30bb\u30eb\u5316 *\/\n      #selath-vohr-app nav {\n        display: flex;\n        overflow-x: auto;\n        flex-wrap: nowrap;\n        gap: 0.45rem;\n        padding: 0.1rem 0 0.35rem 0;\n        -webkit-overflow-scrolling: touch;\n        scrollbar-width: none;\n        width: 100%;\n      }\n\n      nav::-webkit-scrollbar {\n        display: none;\n      }\n\n      .nav-btn {\n        flex-shrink: 0;\n        white-space: nowrap;\n        padding: 0.4rem 0.7rem;\n        font-size: 0.78rem;\n        letter-spacing: 0.03em;\n      }\n\n      #selath-vohr-app main {\n        padding: 0.85rem 0.65rem 2.5rem;\n      }\n\n      \/* \u5165\u529b\u8981\u7d20\uff1aiOS\u306e\u81ea\u52d5\u30ba\u30fc\u30e0\u9632\u6b62 (16px) *\/\n      input[type=\"text\"], select, textarea {\n        font-size: 16px !important;\n      }\n\n      \/* \u30ab\u30fc\u30c9\u306e\u4f59\u767d\u6700\u9069\u5316 *\/\n      .card {\n        padding: 1rem 0.85rem;\n      }\n\n      .preview-box {\n        padding: 1.1rem 0.85rem;\n      }\n\n      .preview-word {\n        font-size: 1.3rem !important;\n        min-height: 3rem;\n        word-break: break-word;\n      }\n\n      .preview-kana {\n        font-size: 0.82rem;\n      }\n\n      \/* \u73fe\u8c61\u540c\u5b9a\u9580 *\/\n      .divination-gate-card {\n        padding: 1rem 0.8rem;\n      }\n\n      .gate-title {\n        font-size: 0.95rem;\n        line-height: 1.5;\n      }\n\n      .gate-options-grid {\n        grid-template-columns: 1fr !important;\n        gap: 0.5rem;\n      }\n\n      .gate-option-btn {\n        padding: 0.8rem 0.9rem;\n        min-height: 48px;\n      }\n\n      .divination-result-container {\n        padding: 1.25rem 0.85rem;\n      }\n\n      .result-truename {\n        font-size: 1.55rem;\n        word-break: break-word;\n      }\n\n      .result-kana {\n        font-size: 0.88rem;\n      }\n\n      .result-title-badge {\n        font-size: 0.82rem;\n        padding: 0.35rem 0.75rem;\n      }\n\n      .result-verse-box {\n        padding: 1rem 0.85rem;\n        margin: 1.2rem 0;\n      }\n\n      .result-verse-text {\n        font-size: 1rem;\n        word-break: break-word;\n      }\n\n      .result-exegesis {\n        padding: 1rem 0.85rem;\n        font-size: 0.86rem;\n        line-height: 1.75;\n      }\n\n      .result-actions {\n        flex-direction: column;\n        gap: 0.6rem;\n      }\n\n      .result-actions button {\n        width: 100%;\n        padding: 0.75rem 1rem;\n      }\n\n      \/* \u8f9e\u66f8\u30ab\u30fc\u30c9\u30fb\u76ee\u9332\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb *\/\n      .catalog-controls {\n        flex-direction: column;\n        gap: 0.5rem;\n      }\n\n      .catalog-controls select {\n        width: 100% !important;\n      }\n\n      .entries-container {\n        grid-template-columns: 1fr !important;\n      }\n\n      .entry-card {\n        padding: 1rem 0.85rem;\n      }\n\n      .textbook-content {\n        padding: 1.1rem 0.85rem;\n      }\n\n      .guide-section h2 {\n        font-size: 1.12rem;\n        line-height: 1.4;\n      }\n\n      .guide-quote {\n        padding: 0.75rem 0.85rem;\n        font-size: 0.84rem;\n      }\n    }\n\n    \/* \u5c0f\u578b\u30b9\u30de\u30db\uff08\u5e45 480px \u4ee5\u4e0b\uff09 *\/\n    @media (max-width: 480px) {\n      .btn-grid {\n        grid-template-columns: repeat(2, 1fr) !important;\n        gap: 0.4rem;\n      }\n\n      .choice-btn {\n        padding: 0.5rem 0.4rem;\n        min-height: 52px;\n      }\n\n      .choice-btn .term {\n        font-size: 0.95rem;\n      }\n\n      .choice-btn .kana {\n        font-size: 0.66rem;\n      }\n\n      .choice-btn .meaning {\n        font-size: 0.66rem;\n        display: -webkit-box;\n        -webkit-line-clamp: 2;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n      }\n\n      .macro-btn {\n        grid-column: span 1;\n      }\n    }\n\n  \n<\/style>\n\n\n<div id=\"selath-vohr-app\">\n<header>\n    <div class=\"header-title\">\n      <h1>SELATH-VOHR STUDIO<\/h1>\n      <div class=\"subtitle\">\u25c6 \u9759\u5bc2\u306e\u8a00\u8a9e\uff08\u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\uff09\u5275\u4f5c\u5de5\u623f\u30fb\u4f53\u7cfb\u5178\u7bc4\u5ba4<\/div>\n    <\/div>\n    <nav>\n      <button class=\"nav-btn active\" data-tab=\"guide\" onclick=\"switchTab('guide')\">\u25c6 \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u3068\u306f<\/button>\n      <button class=\"nav-btn\" data-tab=\"catalog\" onclick=\"switchTab('catalog')\">\u25c6 \u5178\u7bc4\u76ee\u9332\uff08\u5927\u7cfb\u9332\uff09<\/button>\n      <button class=\"nav-btn\" data-tab=\"composer\" onclick=\"switchTab('composer')\">\u25c6 \u73fe\u8c61\u8abf\u5408\u5668<\/button>\n      <button class=\"nav-btn\" data-tab=\"sentence\" onclick=\"switchTab('sentence')\">\u25c6 \u69cb\u6587\u30d3\u30eb\u30c0\u30fc<\/button>\n      <button class=\"nav-btn\" data-tab=\"divination\" onclick=\"switchTab('divination')\">\u25c6 \u73fe\u8c61\u540c\u5b9a\u9580<\/button>\n      <button class=\"nav-btn\" data-tab=\"lexicon\" onclick=\"switchTab('lexicon')\">\u25c6 \u5178\u7bc4\u8f9e\u66f8\uff08\u30ab\u30fc\u30c9\uff09<\/button>\n    <\/nav>\n  <\/header>\n\n  <main>\n\n    <!-- \u30bf\u30d61: \u73fe\u8c61\u8abf\u5408\u5668 (Word Composer) -->\n    <div id=\"tab-composer\" class=\"tab-content\">\n      <div class=\"panel-grid\">\n        \n        <!-- \u5de6\u5074\uff1a\u9078\u629e\u30d1\u30cd\u30eb -->\n        <div>\n\n          <!-- 1. \u4e0d\u52d5\u306e\u81ea\u7136\u57fa\u76e4\uff08\u5929\u4f53\u30fb\u5927\u81ea\u7136\u306e\u5668\uff1a\u5bbf\u308b\u5834\uff09 -->\n          <div class=\"card\" style=\"margin-bottom: 1.2rem;\">\n            <div class=\"group-label\">\n              <span>\u25c6 \u4e0d\u52d5\u306e\u81ea\u7136\u57fa\u76e4\uff08\u5929\u4f53\u30fb\u5927\u81ea\u7136\u306e\u5668\uff09 \u203b\u7269\u8cea\u3068\u3057\u3066\u5b58\u5728\u3059\u308b\u5834<\/span>\n              <button class=\"delete-btn\" onclick=\"clearPreset()\">\u30ea\u30bb\u30c3\u30c8<\/button>\n            <\/div>\n            <div class=\"btn-grid\">\n              <button class=\"choice-btn\" onclick=\"loadPreset('Luhal', '\u30eb\u30cf\u30eb', '\u592a\u967d\uff1a\u5149\uff08Lu\uff09\u304c\u71b1\uff08Hal\uff09\u3092\u5e2f\u3073\u4e16\u754c\u3092\u7167\u3089\u3057\u878d\u89e3\u3055\u305b\u308b\u5929\u4f53', '\u5929\u4f53')\">\n                <span class=\"term\" style=\"color: var(--accent-lu);\">Luhal<\/span>\n                <span class=\"kana\">\u30eb\u30cf\u30eb<\/span>\n                <span class=\"meaning\">\u592a\u967d\uff08\u5149\u3068\u71b1\u306e\u5929\u4f53\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Vohra', '\u30f4\u30a9\u30fc\u30e9', '\u6708\uff1a\u9759\u5bc2\uff08Vohr\uff09\u305d\u306e\u3082\u306e\u304c\u5929\u306b\u6d6e\u304b\u3073\u591c\u7a7a\u3092\u7167\u3089\u3059\u59ff', '\u5929\u4f53')\">\n                <span class=\"term\" style=\"color: var(--accent-vohr);\">Vohra<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30fc\u30e9<\/span>\n                <span class=\"meaning\">\u6708\uff08\u9759\u5bc2\u306e\u5149\u8f2a\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Luist', '\u30eb\u30a4\u30b9\u30c8', '\u661f\uff1a\u5149\uff08Lu\uff09\u304c\u92ed\u3044\u70b9\uff08-ist\uff09\u3068\u3057\u3066\u591c\u7a7a\u306b\u56fa\u5b9a\u3055\u308c\u305f\u5149\u306e\u91dd', '\u5929\u4f53')\">\n                <span class=\"term\" style=\"color: var(--accent-lu);\">Luist<\/span>\n                <span class=\"kana\">\u30eb\u30a4\u30b9\u30c8<\/span>\n                <span class=\"meaning\">\u661f\uff08\u5149\u306e\u91dd\u30fb\u70b9\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Vohral', '\u30f4\u30a9\u30fc\u30e9\u30eb', '\u7a7a\uff1a\u4e16\u754c\u3092\u982d\u4e0a\u304b\u3089\u5305\u3080\u5927\u3044\u306a\u308b\u9759\u5bc2\u3068\u7a7a\u6c17\u306e\u865a\u7a7a', '\u7a7a\u9593')\">\n                <span class=\"term\" style=\"color: var(--accent-vohr);\">Vohral<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30fc\u30e9\u30eb<\/span>\n                <span class=\"meaning\">\u7a7a\u30fb\u5929\u7a7a\uff08\u7a7a\u6c17\u306e\u5668\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Vodon', '\u30f4\u30a9\u30c9\u30f3', '\u6d77\uff1a\u6d41\u4f53\uff08Vod\uff09\u304c\u6c38\u9060\uff08-on\uff09\u306b\u5e83\u304c\u308a\u4e16\u754c\u3092\u6d78\u3059\u5927\u3044\u306a\u308b\u6c34', '\u6d41\u4f53')\">\n                <span class=\"term\" style=\"color: var(--accent-vod);\">Vodon<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30c9\u30f3<\/span>\n                <span class=\"meaning\">\u6d77\uff08\u6c38\u9060\u306e\u6c34\u306e\u5668\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Serin', '\u30bb\u30ea\u30f3', '\u68ee\uff1a\u751f\u547d\uff08Ser\uff09\u306e\u606f\u5439\u304c\u5bc6\u96c6\u3057\u3066\u7720\u308b\u9759\u304b\u306a\u6a39\u6d77', '\u690d\u7269')\">\n                <span class=\"term\" style=\"color: var(--accent-ser);\">Serin<\/span>\n                <span class=\"kana\">\u30bb\u30ea\u30f3<\/span>\n                <span class=\"meaning\">\u68ee\uff08\u751f\u547d\u306e\u6a39\u6d77\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Shael', '\u30b7\u30e3\u30a8\u30eb', '\u5927\u5730\uff1a\u786c\u8cea\uff08Sha\uff09\u304c\u5916\u754c\uff08-al\uff09\u3092\u652f\u3048\u308b\u4e0d\u52d5\u306e\u571f\u53f0\u30fb\u5ca9\u76e4', '\u9271\u77f3')\">\n                <span class=\"term\" style=\"color: var(--accent-sha);\">Shael<\/span>\n                <span class=\"kana\">\u30b7\u30e3\u30a8\u30eb<\/span>\n                <span class=\"meaning\">\u5927\u5730\u30fb\u5ca9\u76e4\uff08\u4e0d\u52d5\u306e\u790e\uff09<\/span>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- 2. \u5929\u5019\u30fb\u81ea\u7136\u4e8b\u8c61\uff08\u5834\u306b\u5bbf\u308b\u79fb\u308d\u3044\u30fb\u73fe\u8c61\uff1a\u5168\u6848B\u6d41\u9e971\u5358\u8a9e\uff09 -->\n          <div class=\"card\" style=\"margin-bottom: 1.2rem;\">\n            <div class=\"group-label\">\n              <span>\u25c7 \u5929\u5019\u30fb\u81ea\u7136\u4e8b\u8c61\uff08\u5834\u306b\u5bbf\u308b\u79fb\u308d\u3044\u30fb\u52d5\u614b\uff1a\u6d41\u9e971\u5358\u8a9e\uff09<\/span>\n            <\/div>\n            <div class=\"btn-grid\">\n              <button class=\"choice-btn\" onclick=\"loadPreset('Zel', '\u30bc\u30eb', '\u98a8\uff1a\u81ea\u7531\uff08Ze\uff09\u306e\u606f\u5439\u304c\u5927\u6c17\u3092\u5439\u304d\u6e21\u308b\u4e00\u9663\u306e\u6c17\u6d41\u73fe\u8c61', '\u5929\u5019')\">\n                <span class=\"term\" style=\"color: var(--accent-vohr);\">Zel<\/span>\n                <span class=\"kana\">\u30bc\u30eb<\/span>\n                <span class=\"meaning\">\u98a8\uff08\u81ea\u7531\u306a\u6c17\u6d41\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Vois', '\u30f4\u30a9\u30a4\u30b9', '\u96e8\u30fb\u6ef4\uff1a\u6c34\u3068\u9f13\u52d5\u304c\u6eb6\u3051\u5408\u3044\u5929\u304b\u3089\u9759\u304b\u306b\u964d\u308a\u6ce8\u3050\u96e8\u97f3', '\u5929\u5019')\">\n                <span class=\"term\" style=\"color: var(--accent-vod);\">Vois<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30a4\u30b9<\/span>\n                <span class=\"meaning\">\u96e8\u30fb\u6ef4\uff08\u9759\u304b\u306a\u96e8\u97f3\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Lufir', '\u30eb\u30d5\u30a3\u30fc\u30eb', '\u96f7\u30fb\u9583\u5149\uff1a\u92ed\u5229\u306a\u5149\u304c\u91dd\u306e\u3088\u3046\u306b\u5927\u6c17\u3092\u88c2\u3044\u3066\u7a81\u304d\u523a\u3059\u9583\u5149', '\u5929\u5019')\">\n                <span class=\"term\" style=\"color: var(--accent-lu);\">Lufir<\/span>\n                <span class=\"kana\">\u30eb\u30d5\u30a3\u30fc\u30eb<\/span>\n                <span class=\"meaning\">\u96f7\u5149\u30fb\u9583\u5149\uff08\u5149\u306e\u91dd\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Voria', '\u30f4\u30a9\u30ea\u30a2', '\u9727\u30fb\u96f2\uff1a\u5927\u6c17\u4e2d\u306b\u6d6e\u304b\u3076\u6de1\u304f\u767d\u3044\u30f4\u30a7\u30fc\u30eb\u306e\u3088\u3046\u306a\u6c34\u6c17', '\u5929\u5019')\">\n                <span class=\"term\" style=\"color: var(--accent-vod);\">Voria<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30ea\u30a2<\/span>\n                <span class=\"meaning\">\u9727\u30fb\u96f2\uff08\u767d\u3044\u30f4\u30a7\u30fc\u30eb\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Voisel', '\u30f4\u30a9\u30a4\u30bc\u30eb', '\u96ea\u30fb\u971c\uff1a\u51cd\u3066\u3064\u304f\u6c34\u304c\u7a7a\u6c17\u4e2d\u3067\u9280\u8272\u306b\u7d50\u6676\u5316\u3057\u3066\u821e\u3044\u843d\u3061\u308b\u7d50\u6676', '\u5929\u5019')\">\n                <span class=\"term\" style=\"color: var(--accent-vohr);\">Voisel<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30a4\u30bc\u30eb<\/span>\n                <span class=\"meaning\">\u96ea\u30fb\u971c\uff08\u821e\u3046\u9280\u7d50\u6676\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn\" onclick=\"loadPreset('Volun', '\u30f4\u30a9\u30eb\u30f3', '\u5f71\u30fb\u5bb5\u95c7\uff1a\u8272\u5f69\u304c\u5438\u3044\u8fbc\u307e\u308c\u9759\u5bc2\u304c\u4e16\u754c\u3092\u6e80\u305f\u3059\u591c\u306e\u6df1\u307f', '\u4e8b\u8c61')\">\n                <span class=\"term\" style=\"color: #a491c9;\">Volun<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30eb\u30f3<\/span>\n                <span class=\"meaning\">\u5f71\u30fb\u5bb5\u95c7\uff08\u9759\u5bc2\u306e\u6df1\u307f\uff09<\/span>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- 3. \u8cea\u611f\uff08\u30de\u30c6\u30ea\u30a2\u30eb\u30fb\u30c6\u30af\u30b9\u30c1\u30e3\uff09 \u203b\u65b0\u8a2d -->\n          <div class=\"card\" style=\"margin-bottom: 1.2rem;\">\n            <div class=\"group-label\">\n              <span>\u25c7 \u8cea\u611f\uff08\u30de\u30c6\u30ea\u30a2\u30eb\u30fb\u30c6\u30af\u30b9\u30c1\u30e3\uff1a\u53cd\u5c04\u3068\u8868\u9762\uff09 \u203b\u4efb\u610f1\u3064<\/span>\n              <button class=\"delete-btn\" onclick=\"clearTexture()\">\u30af\u30ea\u30a2<\/button>\n            <\/div>\n            <div class=\"btn-grid\" style=\"grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));\">\n              <button class=\"choice-btn texture-btn\" onclick=\"selectTexture('Shan', '\u30b7\u30e3\u30f3', '\u3010\u91d1\u5c5e\u5149\u6ca2\u30fb\u30e1\u30bf\u30ea\u30c3\u30af\u3011\u9271\u77f3\u304c\u5149\u3092\u92ed\u304f\u8df3\u306d\u8fd4\u3059\u786c\u8cea\u306a\u93e1\u9762\u5149\u6ca2')\">\n                <span class=\"term\" style=\"color: var(--accent-silver);\">Shan<\/span>\n                <span class=\"kana\">\u30b7\u30e3\u30f3<\/span>\n                <span class=\"meaning\">\u91d1\u5c5e\u5149\u6ca2\u30fb\u30e1\u30bf\u30ea\u30c3\u30af<\/span>\n              <\/button>\n              <button class=\"choice-btn texture-btn\" onclick=\"selectTexture('Shar', '\u30b7\u30e3\u30eb', '\u3010\u7c97\u9762\u30fb\u30e9\u30d5\u30cd\u30b9\u3011\u5149\u3092\u53cd\u5c04\u305b\u305a\u4e7e\u3044\u3066\u3056\u3089\u3064\u3044\u305f\u7121\u9aa8\u306a\u7c97\u9762')\">\n                <span class=\"term\" style=\"color: var(--accent-sha);\">Shar<\/span>\n                <span class=\"kana\">\u30b7\u30e3\u30eb<\/span>\n                <span class=\"meaning\">\u7c97\u9762\u30fb\u30e9\u30d5\u30cd\u30b9<\/span>\n              <\/button>\n              <button class=\"choice-btn texture-btn\" onclick=\"selectTexture('Vohril', '\u30f4\u30a9\u30fc\u30ea\u30eb', '\u3010\u900f\u660e\u30fb\u900f\u5149\u3011\u7a7a\u6c17\u306e\u3088\u3046\u306b\u906e\u308b\u3082\u306e\u304c\u306a\u304f\u5965\u307e\u3067\u900f\u304d\u901a\u308b\u69d8')\">\n                <span class=\"term\" style=\"color: var(--accent-vohr);\">Vohril<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30fc\u30ea\u30eb<\/span>\n                <span class=\"meaning\">\u900f\u660e\u30fb\u6c34\u6676\uff08\u900f\u5149\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn texture-btn\" onclick=\"selectTexture('Rala', '\u30e9\u30e9', '\u3010\u67d4\u8edf\u30fb\u6ed1\u3089\u304b\u3011\u9732\u3092\u542b\u3093\u3060\u82b1\u5f01\u306e\u3088\u3046\u306b\u3057\u3063\u3068\u308a\u67d4\u3089\u304b\u306a\u8cea\u611f')\">\n                <span class=\"term\" style=\"color: var(--accent-ser);\">Rala<\/span>\n                <span class=\"kana\">\u30e9\u30e9<\/span>\n                <span class=\"meaning\">\u67d4\u8edf\u30fb\u3057\u3063\u3068\u308a\u6ed1\u3089\u304b<\/span>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- 4. \u8272\u5f69\uff08\u30a8\u30ec\u30e1\u30f3\u30c8\u306e\u539f\u521d\u8272\uff09 \u203b\u65b0\u8a2d\uff08Halma\u8d64\u542b\u3080\uff09 -->\n          <div class=\"card\" style=\"margin-bottom: 1.2rem;\">\n            <div class=\"group-label\">\n              <span>\u25c7 \u8272\u5f69\uff08\u4e94\u5927\u5c5e\u6027\u3068\u71b1\u304b\u3089\u751f\u307e\u308c\u308b\u539f\u521d\u8272\uff09 \u203b\u4efb\u610f1\u3064<\/span>\n              <button class=\"delete-btn\" onclick=\"clearColor()\">\u30af\u30ea\u30a2<\/button>\n            <\/div>\n            <div class=\"btn-grid\" style=\"grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));\">\n              <button class=\"choice-btn color-btn\" onclick=\"selectColor('Sil', '\u30b7\u30eb', '\u3010\u9280\u30fb\u84bc\u767d\u3011\u9759\u5bc2\uff08Vohr\uff09\u304c\u7d50\u6676\u5316\u3057\u305f\u51b4\u3048\u305f\u9280\u8272')\">\n                <span class=\"term\" style=\"color: var(--accent-silver);\">Sil<\/span>\n                <span class=\"kana\">\u30b7\u30eb<\/span>\n                <span class=\"meaning\">\u9280\u30fb\u84bc\u767d<\/span>\n              <\/button>\n              <button class=\"choice-btn color-btn\" onclick=\"selectColor('Luma', '\u30eb\u30de', '\u3010\u91d1\u30fb\u9ec4\u91d1\u3011\u5929\u5149\uff08Lu\uff09\u304c\u9ad8\u8cb4\u306b\u8f1d\u304f\u6696\u304b\u3044\u9ec4\u91d1\u8272')\">\n                <span class=\"term\" style=\"color: var(--accent-lu);\">Luma<\/span>\n                <span class=\"kana\">\u30eb\u30de<\/span>\n                <span class=\"meaning\">\u91d1\u30fb\u9ec4\u91d1<\/span>\n              <\/button>\n              <button class=\"choice-btn color-btn\" onclick=\"selectColor('Halma', '\u30cf\u30eb\u30de', '\u3010\u8d64\u30fb\u7dcb\u8272\u30fb\u831c\u3011\u6469\u64e6\u3068\u71b1\uff08Hal\uff09\u304b\u3089\u751f\u307e\u308c\u308b\u5915\u713c\u3051\u30fb\u547d\u306e\u7dcb\u8272')\">\n                <span class=\"term\" style=\"color: var(--accent-red);\">Halma<\/span>\n                <span class=\"kana\">\u30cf\u30eb\u30de<\/span>\n                <span class=\"meaning\">\u8d64\u30fb\u7dcb\u8272\u30fb\u831c<\/span>\n              <\/button>\n              <button class=\"choice-btn color-btn\" onclick=\"selectColor('Vodin', '\u30f4\u30a9\u30c7\u30a3\u30f3', '\u3010\u9752\u30fb\u84bc\u78a7\u3011\u6d41\u4f53\uff08Vod\uff09\u306e\u6df1\u307f\u3092\u6301\u3063\u305f\u6df1\u6d77\u30fb\u6e56\u306e\u6df1\u3044\u9752')\">\n                <span class=\"term\" style=\"color: var(--accent-vod);\">Vodin<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30c7\u30a3\u30f3<\/span>\n                <span class=\"meaning\">\u9752\u30fb\u84bc\u78a7<\/span>\n              <\/button>\n              <button class=\"choice-btn color-btn\" onclick=\"selectColor('Seris', '\u30bb\u30ea\u30b9', '\u3010\u7dd1\u30fb\u7fe0\u7dd1\u3011\u751f\u547d\uff08Ser\uff09\u306e\u606f\u5439\u305d\u306e\u3082\u306e\u3067\u3042\u308b\u65b0\u7dd1\u306e\u7fe0')\">\n                <span class=\"term\" style=\"color: var(--accent-ser);\">Seris<\/span>\n                <span class=\"kana\">\u30bb\u30ea\u30b9<\/span>\n                <span class=\"meaning\">\u7dd1\u30fb\u7fe0\u7dd1<\/span>\n              <\/button>\n              <button class=\"choice-btn color-btn\" onclick=\"selectColor('Lura', '\u30eb\u30fc\u30e9', '\u3010\u767d\u30fb\u7121\u57a2\u3011\u5149\uff08Lu\uff09\u304c\u7121\u57a2\u306b\u5e83\u304c\u3063\u305f\u6fc1\u308a\u306e\u306a\u3044\u767d')\">\n                <span class=\"term\" style=\"color: #ffffff;\">Lura<\/span>\n                <span class=\"kana\">\u30eb\u30fc\u30e9<\/span>\n                <span class=\"meaning\">\u767d\u30fb\u7121\u57a2<\/span>\n              <\/button>\n              <button class=\"choice-btn color-btn\" onclick=\"selectColor('Volin', '\u30f4\u30a9\u30ea\u30f3', '\u3010\u9ed2\u30fb\u6f06\u9ed2\u3011\u53cd\u8ee2\uff08Vol\uff09\u304c\u6c88\u307f\u8fbc\u3093\u3060\u5b8c\u5168\u306a\u308b\u5f71\u306e\u9ed2')\">\n                <span class=\"term\" style=\"color: #a491c9;\">Volin<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30ea\u30f3<\/span>\n                <span class=\"meaning\">\u9ed2\u30fb\u6f06\u9ed2<\/span>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- 5. \u57fa\u672c\u4e94\u5927\u5c5e\u6027 -->\n          <div class=\"card\" style=\"margin-bottom: 1.2rem;\">\n            <div class=\"group-label\">\n              <span>\u25c6 \u57fa\u672c\u4e94\u5927\u5c5e\u6027\uff08\u4e3b\u683c\u7684\u6839\u6e90\uff09 \u203b1\u3064\u9078\u629e<\/span>\n              <span id=\"label-primary-selected\" style=\"color: var(--accent-gold);\">Vohr (\u30f4\u30a9\u30fc\u30eb)<\/span>\n            <\/div>\n            <div class=\"btn-grid\">\n              <button class=\"choice-btn attr-vohr selected\" onclick=\"selectPrimary('Vohr', '\u30f4\u30a9\u30fc\u30eb', '\u9759\u5bc2\u30fb\u7a7a\u6c17\uff08\u97f3\u3001\u7cbe\u795e\u3001\u7a7a\u9699\uff09')\">\n                <span class=\"term\">Vohr<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30fc\u30eb<\/span>\n                <span class=\"meaning\">\u9759\u5bc2\u30fb\u7a7a\u6c17<\/span>\n              <\/button>\n              <button class=\"choice-btn attr-lu\" onclick=\"selectPrimary('Lu', '\u30eb', '\u5149\u30fb\u6ce2\u52d5\uff08\u96f7\u3001\u661f\u5149\u3001\u8679\uff09')\">\n                <span class=\"term\">Lu<\/span>\n                <span class=\"kana\">\u30eb<\/span>\n                <span class=\"meaning\">\u5149\u30fb\u6ce2\u52d5<\/span>\n              <\/button>\n              <button class=\"choice-btn attr-ser\" onclick=\"selectPrimary('Ser', '\u30bb\u30eb', '\u751f\u547d\u30fb\u690d\u7269\uff08\u82d4\u3001\u6a39\u6728\u3001\u98a8\u3001\u5faa\u74b0\uff09')\">\n                <span class=\"term\">Ser<\/span>\n                <span class=\"kana\">\u30bb\u30eb<\/span>\n                <span class=\"meaning\">\u751f\u547d\u30fb\u690d\u7269<\/span>\n              <\/button>\n              <button class=\"choice-btn attr-vod\" onclick=\"selectPrimary('Vod', '\u30f4\u30a9\u30c9', '\u6d41\u4f53\u30fb\u6db2\u4f53\uff08\u6c34\u3001\u96e8\u3001\u6d99\u3001\u9727\uff09')\">\n                <span class=\"term\">Vod<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30c9<\/span>\n                <span class=\"meaning\">\u6d41\u4f53\u30fb\u6db2\u4f53<\/span>\n              <\/button>\n              <button class=\"choice-btn attr-sha\" onclick=\"selectPrimary('Sha', '\u30b7\u30e3', '\u786c\u8cea\u30fb\u9271\u77f3\uff08\u5ca9\u3001\u77f3\u7891\u3001\u6bbb\u3001\u9aa8\uff09')\">\n                <span class=\"term\">Sha<\/span>\n                <span class=\"kana\">\u30b7\u30e3<\/span>\n                <span class=\"meaning\">\u786c\u8cea\u30fb\u9271\u77f3<\/span>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- 6. \u62e1\u5f35\u4e94\u5c5e\u6027 -->\n          <div class=\"card\" style=\"margin-bottom: 1.2rem;\">\n            <div class=\"group-label\">\n              <span>\u25c7 \u62e1\u5f35\u4e94\u5c5e\u6027\uff08\u73fe\u8c61\u306e\u52d5\u614b\u30fb\u4fee\u98fe\uff09 \u203b\u4efb\u610f<\/span>\n              <button class=\"delete-btn\" onclick=\"clearExt()\">\u30af\u30ea\u30a2<\/button>\n            <\/div>\n            <div class=\"btn-grid\">\n              <button class=\"choice-btn ext-btn\" onclick=\"toggleExt('Flor', '\u30d5\u30ed\u30eb', '\u6c3e\u6feb\u30fb\u81e8\u754c\uff08\u5185\u306a\u308b\u9650\u754c\u3092\u7a81\u304d\u7834\u308a\u6ea2\u308c\u51fa\u3059\u52e2\u3044\uff09')\">\n                <span class=\"term\">Flor<\/span>\n                <span class=\"kana\">\u30d5\u30ed\u30eb<\/span>\n                <span class=\"meaning\">\u6c3e\u6feb\u30fb\u81e8\u754c\u30fb\u958b\u82b1<\/span>\n              <\/button>\n              <button class=\"choice-btn ext-btn\" onclick=\"toggleExt('Mar', '\u30de\u30fc\u30eb', '\u8272\u5f69\u30fb\u60c5\u7dd2\uff08\u666f\u8272\u304c\u8272\u4ed8\u304d\u611f\u60c5\u304c\u6eb6\u3051\u8fbc\u3080\uff09')\">\n                <span class=\"term\">Mar<\/span>\n                <span class=\"kana\">\u30de\u30fc\u30eb<\/span>\n                <span class=\"meaning\">\u8272\u5f69\u30fb\u60c5\u7dd2<\/span>\n              <\/button>\n              <button class=\"choice-btn ext-btn\" onclick=\"toggleExt('Ris', '\u30ea\u30b9', '\u53ce\u675f\u30fb\u7d50\u6676\u5316\uff08\u9727\u304c\u9732\u3068\u306a\u308a\u60f3\u3044\u304c\u56fa\u307e\u308b\uff09')\">\n                <span class=\"term\">Ris<\/span>\n                <span class=\"kana\">\u30ea\u30b9<\/span>\n                <span class=\"meaning\">\u53ce\u675f\u30fb\u7d50\u6676\u5316<\/span>\n              <\/button>\n              <button class=\"choice-btn ext-btn\" onclick=\"toggleExt('Vol', '\u30f4\u30a9\u30eb', '\u53cd\u8ee2\u30fb\u6b8b\u97ff\uff08\u5149\u304c\u5f71\u3092\u751f\u307f\u53bb\u3063\u305f\u6c17\u914d\u304c\u7559\u307e\u308b\uff09')\">\n                <span class=\"term\">Vol<\/span>\n                <span class=\"kana\">\u30f4\u30a9\u30eb<\/span>\n                <span class=\"meaning\">\u53cd\u8ee2\u30fb\u6b8b\u97ff<\/span>\n              <\/button>\n              <button class=\"choice-btn ext-btn\" onclick=\"toggleExt('Hal', '\u30cf\u30eb', '\u6469\u64e6\u30fb\u878d\u89e3\uff08\u4e8c\u3064\u306e\u898f\u5f8b\u304c\u885d\u7a81\u3057\u6eb6\u3051\u5408\u3046\uff09')\">\n                <span class=\"term\">Hal<\/span>\n                <span class=\"kana\">\u30cf\u30eb<\/span>\n                <span class=\"meaning\">\u6469\u64e6\u30fb\u878d\u89e3<\/span>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- 7. \u4e09\u4f4d\u4e00\u4f53\u306e\u8b58\u5225\u63a5\u8f9e -->\n          <div class=\"card\" style=\"margin-bottom: 1.2rem;\">\n            <div class=\"group-label\">\n              <span>\u25c7 \u8b58\u5225\u63a5\u8f9e\uff08\u73fe\u8c61\u304c\u5bbf\u308b\u6b21\u5143\uff1a\u5fc3\uff0f\u5668\uff0f\u4e16\u754c\uff09 \u203b\u4efb\u610f1\u3064<\/span>\n              <button class=\"delete-btn\" onclick=\"clearDimension()\">\u30af\u30ea\u30a2<\/button>\n            <\/div>\n            <div class=\"btn-grid\" style=\"grid-template-columns: repeat(3, 1fr);\">\n              <button class=\"choice-btn dim-btn\" onclick=\"selectDimension('-en', '\u30a8\u30f3', '\u3010\u5185\u9762\u30fb\u5fc3\u3011\u7cbe\u795e\u3001\u601d\u8003\u3001\u5185\u306a\u308b\u611f\u60c5\u306e\u6b21\u5143')\">\n                <span class=\"term\">-en<\/span>\n                <span class=\"kana\">\u30a8\u30f3<\/span>\n                <span class=\"meaning\">\u5185\u9762\u30fb\u7cbe\u795e\uff08\u5fc3\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn dim-btn\" onclick=\"selectDimension('-ur', '\u30a6\u30eb', '\u3010\u5668\u30fb\u53d7\u5bb9\u4f53\u3011\u73fe\u8c61\u3092\u7559\u3081\u308b\u500b\u5225\u306e\u5668\uff08\u77b3\u30fb\u77f3\u7891\u30fb\u82b1\u5f01\uff09')\">\n                <span class=\"term\">-ur<\/span>\n                <span class=\"kana\">\u30a6\u30eb<\/span>\n                <span class=\"meaning\">\u5668\u30fb\u89e6\u5a92\uff08\u53d7\u5bb9\u4f53\uff09<\/span>\n              <\/button>\n              <button class=\"choice-btn dim-btn\" onclick=\"selectDimension('-al', '\u30a2\u30eb', '\u3010\u5916\u754c\u30fb\u4e16\u754c\u3011\u5916\u306b\u5e83\u304c\u308b\u81ea\u7136\u3001\u5927\u6c17\u3001\u98a8\u666f\u306e\u6b21\u5143')\">\n                <span class=\"term\">-al<\/span>\n                <span class=\"kana\">\u30a2\u30eb<\/span>\n                <span class=\"meaning\">\u5916\u754c\u30fb\u81ea\u7136\uff08\u4e16\u754c\uff09<\/span>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- 8. \u4fee\u98fe\u63a5\u8f9e -->\n          <div class=\"card\" style=\"margin-bottom: 1.2rem;\">\n            <div class=\"group-label\">\n              <span>\u25c7 \u4fee\u98fe\u63a5\u8f9e\uff08\u610f\u5fd7\u30fb\u6ce2\u7d0b\uff09 \u203b\u8907\u6570\u53ef<\/span>\n              <button class=\"delete-btn\" onclick=\"clearAffixes()\">\u30af\u30ea\u30a2<\/button>\n            <\/div>\n            <div class=\"btn-grid\">\n              <button class=\"choice-btn affix-btn\" onclick=\"toggleAffix('Ze-', '\u30bc', '\u81ea\u7531\u30fb\u6d6e\u904a\uff08\u5883\u754c\u306e\u6d88\u5931\u3001\u5c5e\u6027\u304b\u3089\u306e\u89e3\u653e\uff09', 'prefix')\">\n                <span class=\"term\">Ze-<\/span>\n                <span class=\"kana\">\u30bc<\/span>\n                <span class=\"meaning\">\u81ea\u7531\u30fb\u6d6e\u904a<\/span>\n              <\/button>\n              <button class=\"choice-btn affix-btn\" onclick=\"toggleAffix('re-', '\u30ec', '\u5faa\u74b0\u30fb\u56e0\u679c\uff08\u7e70\u308a\u8fd4\u3055\u308c\u308b\u56e0\u679c\u306e\u6ce2\u7d0b\uff09', 'prefix')\">\n                <span class=\"term\">re-<\/span>\n                <span class=\"kana\">\u30ec<\/span>\n                <span class=\"meaning\">\u5faa\u74b0\u30fb\u56e0\u679c<\/span>\n              <\/button>\n              <button class=\"choice-btn affix-btn\" onclick=\"toggleAffix('-is', '\u30a4\u30b9', '\u92ed\u3044\u9f13\u52d5\u30fb\u4eca\u306e\u8a3c\uff08\u4eca\u3053\u3053\u306b\u5728\u308b\u92ed\u304d\u751f\u547d\uff09', 'suffix')\">\n                <span class=\"term\">-is<\/span>\n                <span class=\"kana\">\u30a4\u30b9<\/span>\n                <span class=\"meaning\">\u92ed\u3044\u9f13\u52d5\u30fb\u4eca<\/span>\n              <\/button>\n              <button class=\"choice-btn affix-btn\" onclick=\"toggleAffix('-ra', '\u30e9', '\u66d6\u6627\u3067\u67d4\u3089\u304b\u306a\u62b1\u64c1\uff08\u9727\u306e\u3088\u3046\u306a\u53d7\u5bb9\uff09', 'suffix')\">\n                <span class=\"term\">-ra<\/span>\n                <span class=\"kana\">\u30e9<\/span>\n                <span class=\"meaning\">\u62b1\u64c1\u30fb\u53d7\u5bb9<\/span>\n              <\/button>\n              <button class=\"choice-btn affix-btn\" onclick=\"toggleAffix('-ice', '\u30a4\u30bb', '\u92ed\u304f\u51b7\u305f\u3044\u898f\u5f8b\uff08\u6c37\u306e\u3088\u3046\u306a\u53b3\u5bc6\u3055\uff09', 'suffix')\">\n                <span class=\"term\">-ice<\/span>\n                <span class=\"kana\">\u30a4\u30bb<\/span>\n                <span class=\"meaning\">\u51b7\u305f\u3044\u898f\u5f8b<\/span>\n              <\/button>\n              <button class=\"choice-btn affix-btn\" onclick=\"toggleAffix('-on', '\u30aa\u30f3', '\u6c38\u9060\u306e\u6d78\u900f\uff08\u5e83\u304c\u308a\u6e80\u3061\u3066\u3044\u304f\u610f\u5fd7\uff09', 'suffix')\">\n                <span class=\"term\">-on<\/span>\n                <span class=\"kana\">\u30aa\u30f3<\/span>\n                <span class=\"meaning\">\u6c38\u9060\u306e\u6d78\u900f<\/span>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- 9. \u30df\u30af\u30ed\u6642\u9593\uff08\u73fe\u8c61\u76f8\uff09 -->\n          <div class=\"card\">\n            <div class=\"group-label\">\n              <span>\u25c7 \u73fe\u8c61\u76f8\uff08\u30df\u30af\u30ed\u306a\u77ac\u9593\u306e\u523b\u307f\uff09 \u203b\u4efb\u610f1\u3064<\/span>\n              <button class=\"delete-btn\" onclick=\"clearAspect()\">\u30af\u30ea\u30a2<\/button>\n            <\/div>\n            <div class=\"btn-grid\" style=\"grid-template-columns: repeat(3, 1fr);\">\n              <button class=\"choice-btn aspect-btn\" onclick=\"selectAspect('-akt', '\u30a2\u30af\u30c8', '\u82bd\u751f\u3048\u30fb\u9855\u73fe\uff08\u5146\u3057\u304c\u73fe\u308c\u305f\u77ac\u9593\uff09')\">\n                <span class=\"term\">-akt<\/span>\n                <span class=\"kana\">\u30a2\u30af\u30c8<\/span>\n                <span class=\"meaning\">\u82bd\u751f\u3048\u30fb\u5146\u3057<\/span>\n              <\/button>\n              <button class=\"choice-btn aspect-btn\" onclick=\"selectAspect('-ist', '\u30a4\u30b9\u30c8', '\u73fe\u5728\u30fb\u56fa\u5b9a\uff08\u4eca\u307e\u3055\u306b\u305d\u3053\u306b\u56fa\u5b9a\u3055\u308c\u308b\u70b9\uff09')\">\n                <span class=\"term\">-ist<\/span>\n                <span class=\"kana\">\u30a4\u30b9\u30c8<\/span>\n                <span class=\"meaning\">\u73fe\u5728\u30fb\u56fa\u5b9a<\/span>\n              <\/button>\n              <button class=\"choice-btn aspect-btn\" onclick=\"selectAspect('-olt', '\u30aa\u30eb\u30c8', '\u53ce\u675f\u30fb\u6c88\u9ed9\uff08\u9759\u5bc2\u3078\u9084\u308a\u9589\u3058\u308b\u69d8\uff09')\">\n                <span class=\"term\">-olt<\/span>\n                <span class=\"kana\">\u30aa\u30eb\u30c8<\/span>\n                <span class=\"meaning\">\u53ce\u675f\u30fb\u6c88\u9ed9<\/span>\n              <\/button>\n            <\/div>\n          <\/div>\n\n        <\/div>\n\n        <!-- \u53f3\u5074\uff1a\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30d7\u30ec\u30d3\u30e5\u30fc\uff06\u8abf\u5408\u7d50\u679c -->\n        <div>\n          <div class=\"preview-box\">\n            <div class=\"preview-header\">\u25c6 \u8abf\u5408\u3055\u308c\u305f\u73fe\u8c61\u8a9e\uff08\u9855\u73fe\uff09<\/div>\n            \n            <div id=\"word-output\" class=\"preview-word\">Vohr<\/div>\n            <div id=\"kana-output\" class=\"preview-kana\">\u30f4\u30a9\u30fc\u30eb<\/div>\n            \n            <div class=\"input-field\" style=\"margin-bottom: 0.8rem;\">\n              <label>\u8a69\u7684\u610f\u5473\u30fb\u73fe\u8c61\u306e\u63cf\u5199\uff08\u81ea\u52d5\u751f\u6210\uff0f\u624b\u52d5\u4fee\u6b63\u53ef\u80fd\uff09\uff1a<\/label>\n              <textarea id=\"meaning-output\" class=\"text-input\" rows=\"3\" style=\"resize: vertical;\"><\/textarea>\n            <\/div>\n\n            <div class=\"input-field\" style=\"margin-bottom: 0.8rem;\">\n              <label>\u539f\u5178\u89e3\u984c\uff08\u73fe\u8c61\u5b66\u7684\u30fb\u54f2\u5b66\u7684\u89e3\u91c8\uff09\uff1a<\/label>\n              <textarea id=\"exegesis-output\" class=\"text-input\" rows=\"3\" style=\"resize: vertical; font-size: 0.84rem; line-height: 1.6;\"><\/textarea>\n            <\/div>\n\n            <div class=\"preview-breakdown\" style=\"margin-bottom: 0.8rem;\">\n              <div style=\"margin-bottom: 0.4rem; color: var(--accent-gold);\">\u8a9e\u6e90\u306e\u9023\u9396\uff08\u73fe\u8c61\u306e\u7cfb\u8b5c\uff09\uff1a<\/div>\n              <div id=\"genealogy-output\" class=\"block-genealogy\" style=\"margin: 0;\">\n                <span>Vohr (\u9759\u5bc2) \u2500\u2500 \u89b3\u6e2c\u306e\u524d\u63d0\u3068\u306a\u308b\u7121\u97f3\u306e\u539f\u521d\u7a7a\u9699\u3002<\/span>\n              <\/div>\n            <\/div>\n\n            <div class=\"preview-breakdown\">\n              <div style=\"margin-bottom: 0.4rem; color: var(--text-muted); font-size: 0.75rem;\">\u69cb\u6210\u8981\u7d20\u306e\u8ecc\u8de1\uff1a<\/div>\n              <div id=\"breakdown-chips\">\n                <span>Vohr (\u9759\u5bc2)<\/span>\n              <\/div>\n            <\/div>\n\n            <div class=\"action-row\">\n              <button class=\"primary-btn\" onclick=\"saveCurrentWord()\">\n                <span>\u2020<\/span> \u5178\u7bc4\u306b\u523b\u3080\uff08\u4fdd\u5b58\uff09\n              <\/button>\n              <button class=\"secondary-btn\" onclick=\"sendToSentenceBuilder()\">\n                \u69cb\u6587\u30d3\u30eb\u30c0\u30fc\u3078\u9001\u308b \u2192\n              <\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n\n    <!-- \u30bf\u30d62: \u69cb\u6587\u30d3\u30eb\u30c0\u30fc (Sentence Builder) -->\n    <div id=\"tab-sentence\" class=\"tab-content\">\n      <div class=\"panel-grid\">\n        \n        <!-- \u5de6\u5074\uff1a\u69cb\u6587\u8981\u7d20\u306e\u5165\u529b -->\n        <div>\n          <div class=\"card\" style=\"margin-bottom: 1.2rem;\">\n            <div class=\"section-title\">\u25c6 \u69cb\u6587\u306e\u4e09\u4f4d\u4e00\u4f53\uff08\u6642\u9593\u30fb\u73fe\u8c61\u30fb\u5bbf\u308b\u5834\uff09<\/div>\n            <p style=\"font-size: 0.85rem; color: var(--text-muted); margin-bottom: 1.2rem;\">\n              \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u3067\u306f\u3001<strong>\u300c\u5927\u6642\u9593\u306e\u6ce2\u306e\u4e2d\u3067\u3001\u3042\u308b\u73fe\u8c61\uff08\u8cea\u611f\u3084\u8272\u5f69\u3092\u5e2f\u3073\u305f\u5929\u5019\u30fb\u52d5\u614b\uff09\u304c\u3001\u7279\u5b9a\u306e\u5834\u306b\u6d78\u900f\u30fb\u9855\u73fe\u3059\u308b\u300d<\/strong>\u3068\u8a18\u8ff0\u3057\u307e\u3059\u3002\n            <\/p>\n\n            <!-- \u30de\u30af\u30ed\u6642\u9593\uff08\u4e00\u65e5\u306e\u63a8\u79fb\u30fb\u6642\u4ee3\uff09 -->\n            <div class=\"group-label\">\n              <span>1. \u5927\u6642\u9593\u306e\u6ce2\uff08\u30de\u30af\u30ed\u6642\u9593\u8ef8\uff1aTr- \u4f53\u7cfb\uff09 \u203b\u671d\u30fb\u663c\u30fb\u5915\u30fb\u591c\u3068\u9023\u52d5<\/span>\n              <button class=\"delete-btn\" onclick=\"clearMacroTime()\">\u306a\u3057<\/button>\n            <\/div>\n            <div class=\"btn-grid\">\n              <button class=\"choice-btn macro-btn\" onclick=\"selectMacroTime('Tra', '\u30c8\u30e9', '\u3010\u671d\u30fb\u9ece\u660e\u306e\u523b\u3011\u5149\u304c\u5146\u3057\u3001\u4e8b\u8c61\u304c\u52d5\u304d\u51fa\u3059\u59cb\u52d5\u306e\u523b')\">\n                <span class=\"term\">Tra<\/span>\n                <span class=\"kana\">\u30c8\u30e9<\/span>\n                <span class=\"meaning\">\u671d\u30fb\u9ece\u660e\u306e\u523b<\/span>\n              <\/button>\n              <button class=\"choice-btn macro-btn selected\" onclick=\"selectMacroTime('Tri', '\u30c8\u30ea', '\u3010\u4eca\u30fb\u771f\u663c\u306e\u523b\u3011\u6642\u9593\u304c\u51db\u3068\u6975\u307e\u308a\u9759\u6b62\u3059\u308b\u73fe\u5728\u306e\u70b9')\">\n                <span class=\"term\">Tri<\/span>\n                <span class=\"kana\">\u30c8\u30ea<\/span>\n                <span class=\"meaning\">\u4eca\u30fb\u771f\u663c\u306e\u523b<\/span>\n              <\/button>\n              <button class=\"choice-btn macro-btn\" onclick=\"selectMacroTime('Tru', '\u30c8\u30a5\u30eb', '\u3010\u5348\u5f8c\u30fb\u6df1\u307e\u308a\u306e\u523b\u3011\u6df1\u304f\u6c88\u307f\u8fbc\u307f\u6d41\u308c\u3066\u3044\u304f\u60a0\u4e45\u306e\u6642')\">\n                <span class=\"term\">Tru<\/span>\n                <span class=\"kana\">\u30c8\u30a5\u30eb<\/span>\n                <span class=\"meaning\">\u5348\u5f8c\u30fb\u6df1\u307e\u308a<\/span>\n              <\/button>\n              <button class=\"choice-btn macro-btn\" onclick=\"selectMacroTime('Tre', '\u30c8\u30ec', '\u3010\u5de1\u308a\u30fb\u56e0\u679c\u306e\u523b\u3011\u5b63\u7bc0\u3084\u663c\u591c\u304c\u8f2a\u3092\u63cf\u304d\u5de1\u308b\u6642')\">\n                <span class=\"term\">Tre<\/span>\n                <span class=\"kana\">\u30c8\u30ec<\/span>\n                <span class=\"meaning\">\u5de1\u308a\u30fb\u56e0\u679c\u306e\u523b<\/span>\n              <\/button>\n              <button class=\"choice-btn macro-btn\" onclick=\"selectMacroTime('Tro', '\u30c8\u30ed', '\u3010\u5915\u66ae\u308c\u30fb\u9ec4\u660f\u301c\u591c\u306e\u523b\u3011\u3059\u3079\u3066\u304c\u9759\u5bc2\u3078\u9084\u308b\u6c88\u9ed9\u306e\u6642')\">\n                <span class=\"term\">Tro<\/span>\n                <span class=\"kana\">\u30c8\u30ed<\/span>\n                <span class=\"meaning\">\u9ec4\u660f\u30fb\u591c\u306e\u523b<\/span>\n              <\/button>\n            <\/div>\n\n            <!-- \u73fe\u8c61\u90e8 -->\n            <div class=\"input-field\" style=\"margin-bottom: 1.2rem;\">\n              <label>2. \u9855\u73fe\u3059\u308b\u73fe\u8c61\uff08\u8cea\u611f\u30fb\u8272\u5f69\u30fb\u5929\u5019\u3001\u307e\u305f\u306f\u8abf\u5408\u8a9e\uff09\uff1a<\/label>\n              <input type=\"text\" id=\"sentence-phenomenon\" class=\"text-input\" value=\"Shan Sil Voisel\" placeholder=\"\u4f8b: Shan Sil Voisel (\u9280\u306e\u96ea), Halma Ser-flor (\u7d05\u304d\u82b1)\" oninput=\"onPhenomenonInput()\">\n              <div style=\"font-size: 0.75rem; color: var(--text-muted); margin-top: 2px;\">\n                \u610f\u5473\/\u30ab\u30bf\u30ab\u30ca: <span id=\"sentence-phenomenon-desc\">\u30b7\u30e3\u30f3\u30fb\u30b7\u30eb\u30fb\u30f4\u30a9\u30a4\u30bc\u30eb \/ \u91d1\u5c5e\u5149\u6ca2\u306e\u9280\u306e\u96ea<\/span>\n              <\/div>\n              <div style=\"display: flex; gap: 0.4rem; margin-top: 0.4rem; flex-wrap: wrap;\">\n                <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.5rem; font-size: 0.75rem;\" onclick=\"setPhenomenon('Shan Sil Voisel', '\u30b7\u30e3\u30f3\u30fb\u30b7\u30eb\u30fb\u30f4\u30a9\u30a4\u30bc\u30eb', '\u91d1\u5c5e\u5149\u6ca2\u306e\u9280\u306e\u96ea')\">Shan Sil Voisel (\u9280\u306e\u96ea)<\/button>\n                <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.5rem; font-size: 0.75rem;\" onclick=\"setPhenomenon('Halma Ser-flor', '\u30cf\u30eb\u30de\u30fb\u30bb\u30eb\uff1d\u30d5\u30ed\u30fc\u30eb', '\u7d05\u306b\u54b2\u304d\u8a87\u308b\u547d\u306e\u82b1')\">Halma Ser-flor (\u7d05\u82b1)<\/button>\n                <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.5rem; font-size: 0.75rem;\" onclick=\"setPhenomenon('Luma Luhal', '\u30eb\u30de\u30fb\u30eb\u30cf\u30eb', '\u9ec4\u91d1\u306b\u8f1d\u304f\u592a\u967d\u306e\u5149\u71b1')\">Luma Luhal (\u91d1\u5149\u306e\u967d)<\/button>\n                <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.5rem; font-size: 0.75rem;\" onclick=\"setPhenomenon('Vohril Vois', '\u30f4\u30a9\u30fc\u30ea\u30eb\u30fb\u30f4\u30a9\u30a4\u30b9', '\u6c34\u6676\u306e\u3088\u3046\u306b\u900f\u304d\u901a\u308b\u6e05\u5ec9\u306e\u96e8')\">Vohril Vois (\u6f84\u3093\u3060\u96e8)<\/button>\n              <\/div>\n            <\/div>\n\n            <!-- \u4ecb\u5728\u6a19\u8b58\uff08\u52a9\u8a5e\u30fb\u5834\u6240\u683c\uff09 -->\n            <div class=\"group-label\">\n              <span>3. \u4ecb\u5728\u6a19\u8b58\uff08\u73fe\u8c61\u3068\u5834\u3092\u7e4b\u3050\u8a00\u8449\uff09<\/span>\n            <\/div>\n            <div class=\"btn-grid\" style=\"grid-template-columns: repeat(3, 1fr); margin-bottom: 1.2rem;\">\n              <button class=\"choice-btn prep-btn selected\" onclick=\"selectPrep('nol', '\u30ce\u30eb', '\u301c\u306b\u304a\u3044\u3066 \/ \u301c\u306e\u4e2d\u3078\uff08\u5305\u6442\u30fb\u6d78\u900f\uff09')\">\n                <span class=\"term\">nol<\/span>\n                <span class=\"kana\">\u30ce\u30eb<\/span>\n                <span class=\"meaning\">\u301c\u306e\u4e2d\u3078\/\u306b\u304a\u3044\u3066<\/span>\n              <\/button>\n              <button class=\"choice-btn prep-btn\" onclick=\"selectPrep('ar', '\u30a2\u30eb', '\u301c\u306e\u679c\u3066\u306b \/ \u301c\u306e\u5f7c\u65b9\u3078\uff08\u5230\u9054\u30fb\u6307\u5411\uff09')\">\n                <span class=\"term\">ar<\/span>\n                <span class=\"kana\">\u30a2\u30eb<\/span>\n                <span class=\"meaning\">\u301c\u306e\u679c\u3066\u3078<\/span>\n              <\/button>\n              <button class=\"choice-btn prep-btn\" onclick=\"selectPrep('', '', '\u76f4\u7d50\uff08\u6a19\u8b58\u306a\u3057\uff09')\">\n                <span class=\"term\">(\u7121)<\/span>\n                <span class=\"kana\">&#8211;<\/span>\n                <span class=\"meaning\">\u4e26\u7f6e<\/span>\n              <\/button>\n            <\/div>\n\n            <!-- \u5bbf\u308b\u5834\uff08\u5834\u6240\u30fb\u53d7\u3051\u76bf\uff09 -->\n            <div class=\"input-field\">\n              <label>4. \u73fe\u8c61\u304c\u5bbf\u308b\u5834\uff08\u81ea\u7136\u306e\u5668\u30fb\u8cea\u611f\uff09\uff1a<\/label>\n              <input type=\"text\" id=\"sentence-locus\" class=\"text-input\" value=\"Shael\" placeholder=\"\u4f8b: Shael (\u5927\u5730), Serin (\u68ee), Vodon (\u6d77), Vohril Vohral (\u900f\u304d\u901a\u308b\u7a7a)\" oninput=\"onLocusInput()\">\n              <div style=\"font-size: 0.75rem; color: var(--text-muted); margin-top: 2px;\">\n                \u610f\u5473\/\u30ab\u30bf\u30ab\u30ca: <span id=\"sentence-locus-desc\">\u30b7\u30e3\u30a8\u30eb \/ \u5927\u5730\uff08\u4e0d\u52d5\u306e\u5ca9\u76e4\uff09<\/span>\n              <\/div>\n              <div style=\"display: flex; gap: 0.4rem; margin-top: 0.4rem; flex-wrap: wrap;\">\n                <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.5rem; font-size: 0.75rem;\" onclick=\"setLocus('Shael', '\u30b7\u30e3\u30a8\u30eb', '\u5927\u5730\uff08\u4e0d\u52d5\u306e\u5ca9\u76e4\uff09')\">Shael (\u5927\u5730)<\/button>\n                <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.5rem; font-size: 0.75rem;\" onclick=\"setLocus('Vohril Vohral', '\u30f4\u30a9\u30fc\u30ea\u30eb\u30fb\u30f4\u30a9\u30fc\u30e9\u30eb', '\u900f\u304d\u901a\u308b\u6c34\u6676\u306e\u5927\u7a7a')\">Vohril Vohral (\u6f84\u3093\u3060\u7a7a)<\/button>\n                <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.5rem; font-size: 0.75rem;\" onclick=\"setLocus('Vodin Vodon', '\u30f4\u30a9\u30c7\u30a3\u30f3\u30fb\u30f4\u30a9\u30c9\u30f3', '\u6df1\u3044\u84bc\u78a7\u306e\u5927\u6d77')\">Vodin Vodon (\u6df1\u304d\u6d77)<\/button>\n                <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.5rem; font-size: 0.75rem;\" onclick=\"setLocus('Rala Serin', '\u30e9\u30e9\u30fb\u30bb\u30ea\u30f3', '\u9732\u306b\u6fe1\u308c\u3066\u67d4\u3089\u304b\u306a\u68ee')\">Rala Serin (\u67d4\u3089\u304b\u306a\u68ee)<\/button>\n                <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.5rem; font-size: 0.75rem;\" onclick=\"setLocus('Luhal', '\u30eb\u30cf\u30eb', '\u592a\u967d\u306e\u5929\u65e5\uff08\u5149\u71b1\u306e\u5834\uff09')\">Luhal (\u592a\u967d\u306e\u5929\u65e5)<\/button>\n                <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.5rem; font-size: 0.75rem;\" onclick=\"setLocus('Volun', '\u30f4\u30a9\u30eb\u30f3', '\u6df1\u9060\u306a\u308b\u6697\u9ed2\u306e\u5f71\u30fb\u865a\u7a7a')\">Volun (\u6df1\u6697\u306e\u5f71)<\/button>\n              <\/div>\n            <\/div>\n\n          <\/div>\n        <\/div>\n\n        <!-- \u53f3\u5074\uff1a\u5b8c\u6210\u6587\u306e\u30d7\u30ec\u30d3\u30e5\u30fc -->\n        <div>\n          <div class=\"preview-box\">\n            <div class=\"preview-header\">\u25c6 \u7d21\u304e\u51fa\u3055\u308c\u305f\u6587\uff08\u69cb\u6587\uff09<\/div>\n            \n            <div id=\"sentence-output\" class=\"preview-word\" style=\"font-size: 1.4rem; line-height: 1.5; min-height: 3.8rem;\">\n              Tro Shan Sil Voisel nol Shael.\n            <\/div>\n            <div id=\"sentence-kana-output\" class=\"preview-kana\">\n              \u30c8\u30ed\u30fb\u30b7\u30e3\u30f3\u30fb\u30b7\u30eb\u30fb\u30f4\u30a9\u30a4\u30bc\u30eb\u30fb\u30ce\u30eb\u30fb\u30b7\u30e3\u30a8\u30eb\n            <\/div>\n\n            <div class=\"input-field\">\n              <label>\u65e5\u672c\u8a9e\u8a33\u30fb\u8a69\u7684\u89e3\u91c8\uff1a<\/label>\n              <textarea id=\"sentence-trans-output\" class=\"text-input\" rows=\"4\" style=\"resize: vertical;\">\u9ec4\u660f\u304b\u3089\u9759\u5bc2\u3078\u3068\u9084\u308b\u523b\uff08Tro\uff09\u3001\u91d1\u5c5e\u306e\u3088\u3046\u306a\u92ed\u3044\u5149\u6ca2\u3092\u653e\u3064\u9280\u8272\u306e\u96ea\uff08Shan Sil Voisel\uff09\u304c\u3001\u7720\u308c\u308b\u5927\u5730\uff08Shael\uff09\u3078\u3068\u5bbf\u308a\u6c88\u9ed9\u3092\u523b\u3080\u3002<\/textarea>\n            <\/div>\n\n            <div class=\"action-row\">\n              <button class=\"primary-btn\" onclick=\"saveCurrentSentence()\">\n                <span>\u2020<\/span> \u5178\u7bc4\u306b\u523b\u3080\uff08\u6587\u3092\u4fdd\u5b58\uff09\n              <\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n\n    <!-- \u30bf\u30d6: \u73fe\u8c61\u540c\u5b9a\u9580 (\u5341\u5c64\u306e\u89b3\u6e2c\u9580\uff1aPhenomenological Observation Gate) -->\n    <div id=\"tab-divination\" class=\"tab-content\">\n      <div style=\"max-width: 960px; margin: 0 auto;\">\n        \n        <!-- \u5c0e\u5165\u30d0\u30ca\u30fc -->\n        <div style=\"text-align: center; margin-bottom: 2rem; padding: 2.2rem 1.5rem; background: var(--bg-card); border-radius: var(--radius-lg); border: 1px solid var(--border-subtle); position: relative; overflow: hidden;\">\n          <div style=\"position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);\"><\/div>\n          <div style=\"font-family: var(--font-serif); font-size: 1.65rem; color: var(--text-bright); letter-spacing: 0.15em; margin-bottom: 0.4rem;\">\n            \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb \u73fe\u8c61\u540c\u5b9a\u9580\n          <\/div>\n          <div style=\"font-size: 0.82rem; color: var(--accent-gold); letter-spacing: 0.12em; margin-bottom: 1.2rem;\">\n            CODEX OF PHENOMENA \u25c6 \u5341\u5c64\u306e\u89b3\u6e2c\u9580\u306b\u3088\u308b\u5b58\u5728\u5ea7\u6a19\uff08\u5668\uff09\u306e\u540c\u5b9a\n          <\/div>\n          <p style=\"font-size: 0.92rem; color: var(--text-main); max-width: 720px; margin: 0 auto; line-height: 1.8;\">\n            \u300c\u73fe\u8c61\u304c\u3001\u3042\u308b\u5834\u6240\u306b\u5bbf\u3063\u3066\u3044\u308b\u3002\u300d<br>\n            \u5341\u5c64\u306b\u53ca\u3076\u89b3\u6e2c\u9580\u3092\u901a\u3058\u3066\u3001\u3053\u306e\u9818\u57df\uff08\u5668\uff09\u306b\u304a\u3044\u3066\u512a\u4f4d\u306b\u6d78\u900f\u3057\u3066\u3044\u308b\u73fe\u8c61\u30fb\u52d5\u614b\u30fb\u8cea\u611f\u30fb\u6b21\u5143\u30fb\u6c38\u52ab\u5f62\u614b\u3092\u5ba2\u89b3\u7684\u306b\u540c\u5b9a\u3057\u3001\u4e16\u754c\u306b\u523b\u3080\u3079\u304d\u771f\u540d\u3068\u5178\u7bc4\u8a69\u6b4c\u3092\u5b9a\u790e\u3057\u307e\u3059\u3002\n          <\/p>\n        <\/div>\n\n        <!-- \u89b3\u6e2c\u6df1\u5ea6\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc -->\n        <div style=\"margin-bottom: 2rem; padding: 1rem 1.4rem; background: rgba(18, 22, 34, 0.6); border-radius: var(--radius-md); border: 1px solid var(--border-subtle); display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem;\">\n          <div style=\"display: flex; align-items: center; gap: 0.8rem;\">\n            <span style=\"font-family: var(--font-serif); font-size: 0.88rem; color: var(--accent-gold); letter-spacing: 0.1em;\">\u89b3\u6e2c\u6df1\u5ea6<\/span>\n            <span id=\"obs-depth-text\" style=\"font-size: 0.82rem; color: var(--text-bright); font-family: monospace;\">0 \/ 10 \u5c64 \u89b3\u6e2c\u5f85\u6a5f<\/span>\n          <\/div>\n          <div id=\"obs-depth-dots\" style=\"display: flex; gap: 0.4rem; align-items: center;\">\n            <span class=\"obs-dot\" title=\"\u7b2c1\u9580\"><\/span>\n            <span class=\"obs-dot\" title=\"\u7b2c2\u9580\"><\/span>\n            <span class=\"obs-dot\" title=\"\u7b2c3\u9580\"><\/span>\n            <span class=\"obs-dot\" title=\"\u7b2c4\u9580\"><\/span>\n            <span class=\"obs-dot\" title=\"\u7b2c5\u9580\"><\/span>\n            <span class=\"obs-dot\" title=\"\u7b2c6\u9580\"><\/span>\n            <span class=\"obs-dot\" title=\"\u7b2c7\u9580\"><\/span>\n            <span class=\"obs-dot\" title=\"\u7b2c8\u9580\"><\/span>\n            <span class=\"obs-dot\" title=\"\u7b2c9\u9580\"><\/span>\n            <span class=\"obs-dot\" title=\"\u7b2c10\u9580\"><\/span>\n          <\/div>\n        <\/div>\n\n        <!-- \u5341\u5c64\u306e\u89b3\u6e2c\u9580 -->\n        <div style=\"display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 2.5rem;\">\n          \n          <!-- \u7b2c1\u9580 -->\n          <div class=\"divination-gate-card\">\n            <div class=\"gate-header\">\n              <span class=\"gate-badge\">\u7b2c1\u9580<\/span>\n              <span class=\"gate-title\">\u9759\u307e\u308a\u8fd4\u3063\u305f\u5834\u6240\u3067\u3001\u3044\u3061\u3070\u3093\u843d\u3061\u7740\u304f\u6c17\u914d\u306f\u3069\u308c\u304b\u3002<\/span>\n            <\/div>\n            <div class=\"gate-options-grid\" id=\"gate-g1-options\">\n              <button class=\"gate-option-btn\" data-key=\"Sha\" onclick=\"selectGateOption('g1', 'Sha', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u786c\u304f\u3066\u51b7\u305f\u3044\u3001\u3069\u3063\u3057\u308a\u52d5\u304b\u306a\u3044\u5ca9\u306e\u611f\u89e6<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Vod\" onclick=\"selectGateOption('g1', 'Vod', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u9759\u304b\u306b\u5e95\u3078\u3068\u6e9c\u307e\u3063\u3066\u3044\u304f\u3001\u6df1\u3044\u6c34\u306e\u3088\u3046\u306a\u843d\u3061\u7740\u304d<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Vohr\" onclick=\"selectGateOption('g1', 'Vohr', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u97f3\u3082\u6c17\u914d\u3082\u4f55\u3082\u306a\u3044\u3001\u304b\u3089\u3063\u307d\u306e\u9759\u3051\u3055<\/div>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- \u7b2c2\u9580 -->\n          <div class=\"divination-gate-card\">\n            <div class=\"gate-header\">\n              <span class=\"gate-badge\">\u7b2c2\u9580<\/span>\n              <span class=\"gate-title\">\u4f55\u304b\u304c\u30d1\u30c3\u3068\u59cb\u307e\u308b\u3068\u304d\u3001\u3069\u3061\u3089\u306e\u52e2\u3044\u306b\u60f9\u304b\u308c\u308b\u304b\u3002<\/span>\n            <\/div>\n            <div class=\"gate-options-grid\" id=\"gate-g2-options\">\n              <button class=\"gate-option-btn\" data-key=\"Lu\" onclick=\"selectGateOption('g2', 'Lu', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u6697\u95c7\u3092\u4e00\u77ac\u3067\u5207\u308a\u88c2\u304f\u3001\u307e\u3076\u3057\u3044\u5149\u306e\u7b4b<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Ser\" onclick=\"selectGateOption('g2', 'Ser', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u6642\u9593\u3092\u304b\u3051\u3066\u9759\u304b\u306b\u80b2\u3061\u3001\u5de1\u3063\u3066\u3044\u304f\u547d\u306e\u606f\u5439<\/div>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- \u7b2c3\u9580 -->\n          <div class=\"divination-gate-card\">\n            <div class=\"gate-header\">\n              <span class=\"gate-badge\">\u7b2c3\u9580<\/span>\n              <span class=\"gate-title\">\u611f\u60c5\u3084\u52e2\u3044\u304c\u30ea\u30df\u30c3\u30bf\u30fc\u3092\u8d85\u3048\u305f\u3068\u304d\u3001\u3069\u3046\u73fe\u308c\u308b\u304b\u3002<\/span>\n            <\/div>\n            <div class=\"gate-options-grid\" id=\"gate-g3-options\">\n              <button class=\"gate-option-btn\" data-key=\"Flor\" onclick=\"selectGateOption('g3', 'Flor', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u5668\u304b\u3089\u30b6\u30d0\u30c3\u3068\u4e00\u6c17\u306b\u6ea2\u308c\u51fa\u3059\u3001\u6b62\u3081\u3089\u308c\u306a\u3044\u5954\u6d41<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Hal\" onclick=\"selectGateOption('g3', 'Hal', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u6469\u64e6\u3067\u71b1\u3092\u5e2f\u3073\u3001\u5883\u754c\u304c\u30c9\u30ed\u30ea\u3068\u6eb6\u3051\u5408\u3063\u3066\u3044\u304f\u611f\u899a<\/div>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- \u7b2c4\u9580 -->\n          <div class=\"divination-gate-card\">\n            <div class=\"gate-header\">\n              <span class=\"gate-badge\">\u7b2c4\u9580<\/span>\n              <span class=\"gate-title\">\u5d50\u3084\u71b1\u6c17\u304c\u53bb\u3063\u305f\u3042\u3068\u3001\u305d\u306e\u5834\u306b\u6b8b\u3057\u305f\u3044\u3082\u306e\u306f\u3069\u308c\u304b\u3002<\/span>\n            <\/div>\n            <div class=\"gate-options-grid\" id=\"gate-g4-options\">\n              <button class=\"gate-option-btn\" data-key=\"Ris\" onclick=\"selectGateOption('g4', 'Ris', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u6563\u3089\u3070\u3063\u3066\u3044\u305f\u3082\u306e\u304c\u3001\u30ad\u30e5\u30c3\u3068\u4e00\u7c92\u306e\u3057\u305a\u304f\u306b\u56fa\u307e\u308b\u3053\u3068<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Vol\" onclick=\"selectGateOption('g4', 'Vol', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u5149\u304c\u6d88\u3048\u305f\u3042\u3068\u3082\u3001\u305d\u3053\u306b\u9759\u304b\u306b\u4f47\u307f\u7d9a\u3051\u308b\u6df1\u3044\u5f71<\/div>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- \u7b2c5\u9580 -->\n          <div class=\"divination-gate-card\">\n            <div class=\"gate-header\">\n              <span class=\"gate-badge\">\u7b2c5\u9580<\/span>\n              <span class=\"gate-title\">\u5468\u308a\u306e\u666f\u8272\u3068\u89e6\u308c\u5408\u3046\u3068\u304d\u3001\u5fc3\u5730\u3044\u3044\u624b\u89e6\u308a\u306f\u3069\u308c\u304b\u3002<\/span>\n            <\/div>\n            <div class=\"gate-options-grid\" id=\"gate-g5-options\">\n              <button class=\"gate-option-btn\" data-key=\"Mar\" onclick=\"selectGateOption('g5', 'Mar', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u6de1\u3044\u5915\u66ae\u308c\u306e\u3088\u3046\u306b\u3001\u3058\u308f\u308a\u3068\u60c5\u7dd2\u3084\u8272\u306b\u67d3\u307e\u308b\u3053\u3068<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Zel\" onclick=\"selectGateOption('g5', 'Zel', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u91cd\u529b\u3082\u5883\u754c\u3082\u5fd8\u308c\u3066\u3001\u3075\u308f\u308a\u3068\u98a8\u306b\u4e57\u3063\u3066\u5439\u304d\u629c\u3051\u308b\u3053\u3068<\/div>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- \u7b2c6\u9580 -->\n          <div class=\"divination-gate-card\">\n            <div class=\"gate-header\">\n              <span class=\"gate-badge\">\u7b2c6\u9580<\/span>\n              <span class=\"gate-title\">\u624b\u306e\u3072\u3089\u3067\u89e6\u308c\u305f\u3068\u304d\u3001\u4e00\u756a\u3057\u3063\u304f\u308a\u304f\u308b\u611f\u89e6\u306f\u3069\u308c\u304b\u3002<\/span>\n            <\/div>\n            <div class=\"gate-options-grid\" id=\"gate-g6-options\">\n              <button class=\"gate-option-btn\" data-key=\"Shan\" onclick=\"selectGateOption('g6', 'Shan', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u30d4\u30ab\u30c3\u3068\u92ed\u304f\u5149\u3092\u8df3\u306d\u8fd4\u3059\u3001\u51b7\u305f\u3044\u91d1\u5c5e\u306e\u3064\u308b\u3064\u308b\u611f<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Shar\" onclick=\"selectGateOption('g6', 'Shar', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u4e00\u5207\u306e\u5149\u3092\u5438\u3044\u8fbc\u3080\u3088\u3046\u306a\u3001\u4e7e\u3044\u305f\u5ca9\u808c\u306e\u3056\u3089\u3056\u3089\u611f<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Vohril\" onclick=\"selectGateOption('g6', 'Vohril', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u5965\u306e\u666f\u8272\u307e\u3067\u3086\u304c\u307f\u306a\u304f\u900f\u3051\u3066\u898b\u3048\u308b\u3001\u900f\u660e\u306a\u30ac\u30e9\u30b9\u3084\u6c34\u6676<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Rala\" onclick=\"selectGateOption('g6', 'Rala', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u671d\u9732\u3092\u542b\u3093\u3060\u82b1\u3073\u3089\u306e\u3088\u3046\u306b\u3001\u3084\u308f\u3089\u304b\u304f\u3057\u3063\u3068\u308a\u3057\u305f\u624b\u89e6\u308a<\/div>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- \u7b2c7\u9580 -->\n          <div class=\"divination-gate-card\">\n            <div class=\"gate-header\">\n              <span class=\"gate-badge\">\u7b2c7\u9580<\/span>\n              <span class=\"gate-title\">\u305d\u306e\u5fc3\u5730\u3088\u3055\u3092\u3001\u3069\u3053\u306b\u5411\u3051\u3066\u7f6e\u3044\u3066\u304a\u304d\u305f\u3044\u304b\u3002<\/span>\n            <\/div>\n            <div class=\"gate-options-grid\" id=\"gate-g7-options\">\n              <button class=\"gate-option-btn\" data-key=\"-en\" onclick=\"selectGateOption('g7', '-en', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u8ab0\u306b\u3082\u89e6\u3089\u308c\u306a\u3044\u3001\u81ea\u5206\u306e\u5fc3\u306e\u5965\u6df1\u304f\u306b\u305d\u3063\u3068\u3057\u307e\u3063\u3066\u304a\u304f<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"-ur\" onclick=\"selectGateOption('g7', '-ur', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u304a\u6c17\u306b\u5165\u308a\u306e\u77f3\u3084\u9053\u5177\u3001\u82b1\u306a\u3069\u300c\u3072\u3068\u3064\u306e\u30e2\u30ce\u300d\u306b\u5bbf\u3089\u305b\u308b<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"-al\" onclick=\"selectGateOption('g7', '-al', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u898b\u4e0a\u3052\u308b\u7a7a\u3084\u68ee\u306e\u3088\u3046\u306b\u3001\u679c\u3066\u3057\u306a\u3044\u5916\u306e\u4e16\u754c\u3078\u653e\u3061\u5e83\u3052\u308b<\/div>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- \u7b2c8\u9580 -->\n          <div class=\"divination-gate-card\">\n            <div class=\"gate-header\">\n              <span class=\"gate-badge\">\u7b2c8\u9580<\/span>\n              <span class=\"gate-title\">\u3069\u306e\u6642\u9593\u5e2f\u306e\u7a7a\u6c17\u304c\u3001\u4e00\u756a\u547c\u5438\u3057\u3084\u3059\u3044\u304b\u3002<\/span>\n            <\/div>\n            <div class=\"gate-options-grid\" id=\"gate-g8-options\" style=\"grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));\">\n              <button class=\"gate-option-btn\" data-key=\"Tra\" onclick=\"selectGateOption('g8', 'Tra', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u591c\u304c\u660e\u3051\u3066\u3001\u5149\u304c\u5dee\u3057\u8fbc\u307f\u59cb\u3081\u308b\u3010\u671d\u3011<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Tri\" onclick=\"selectGateOption('g8', 'Tri', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u5f71\u304c\u77ed\u304f\u306a\u308a\u3001\u6642\u9593\u304c\u51db\u3068\u6b62\u307e\u3063\u305f\u3088\u3046\u306a\u3010\u771f\u663c\u3011<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Tru\" onclick=\"selectGateOption('g8', 'Tru', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u5149\u304c\u659c\u3081\u306b\u5c04\u3057\u3001\u5f71\u304c\u9577\u304f\u4f38\u3073\u3066\u6df1\u307e\u308b\u3010\u5348\u5f8c\u3011<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Tre\" onclick=\"selectGateOption('g8', 'Tre', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u663c\u3068\u591c\u304c\u6df7\u3056\u308a\u5408\u3044\u3001\u7a7a\u306e\u8272\u304c\u5909\u308f\u3063\u3066\u3044\u304f\u3010\u5915\u66ae\u308c\u3011<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"Tro\" onclick=\"selectGateOption('g8', 'Tro', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u3059\u3079\u3066\u306e\u8f2a\u90ed\u304c\u6eb6\u3051\u3066\u3001\u9759\u3051\u3055\u306b\u6c88\u3080\u3010\u5bb5\u95c7\u30fb\u591c\u3011<\/div>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- \u7b2c9\u9580 -->\n          <div class=\"divination-gate-card\">\n            <div class=\"gate-header\">\n              <span class=\"gate-badge\">\u7b2c9\u9580<\/span>\n              <span class=\"gate-title\">\u6700\u5f8c\u306b\u6b8b\u308b\u7a7a\u6c17\u306e\u300c\u6e29\u5ea6\u300d\u306f\u3001\u3069\u308c\u304c\u3044\u3044\u304b\u3002<\/span>\n            <\/div>\n            <div class=\"gate-options-grid\" id=\"gate-g9-options\">\n              <button class=\"gate-option-btn\" data-key=\"-ra\" onclick=\"selectGateOption('g9', '-ra', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u5883\u76ee\u3092\u3084\u308f\u3089\u304b\u304f\u5305\u307f\u8fbc\u3093\u3067\u304f\u308c\u308b\u3001\u307b\u3093\u306e\u308a\u6e29\u304b\u3044\u9727<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"-ice\" onclick=\"selectGateOption('g9', '-ice', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u4f59\u8a08\u306a\u3082\u306e\u3092\u524a\u304e\u843d\u3068\u3059\u3001\u30d4\u30ea\u30c3\u3068\u92ed\u304f\u51b7\u305f\u3044\u6c37\u306e\u898f\u5f8b<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"-on\" onclick=\"selectGateOption('g9', '-on', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u3069\u3053\u307e\u3067\u3082\u9759\u304b\u306b\u67d3\u307f\u6e21\u308a\u3001\u305a\u3063\u3068\u6d88\u3048\u305a\u306b\u7d9a\u304f\u6c17\u914d<\/div>\n              <\/button>\n            <\/div>\n          <\/div>\n\n          <!-- \u7b2c10\u9580 -->\n          <div class=\"divination-gate-card\">\n            <div class=\"gate-header\">\n              <span class=\"gate-badge\">\u7b2c10\u9580<\/span>\n              <span class=\"gate-title\">\u3059\u3079\u3066\u304c\u904e\u304e\u53bb\u3063\u305f\u3042\u3068\u3001\u81ea\u5206\u306f\u3069\u3046\u3042\u308a\u305f\u3044\u304b\u3002<\/span>\n            <\/div>\n            <div class=\"gate-options-grid\" id=\"gate-g10-options\">\n              <button class=\"gate-option-btn\" data-key=\"-onur\" onclick=\"selectGateOption('g10', '-onur', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u6642\u9593\u304c\u7d4c\u3063\u3066\u3082\u8272\u892a\u305b\u305a\u3001\u4e16\u754c\u306e\u5965\u306b\u305a\u3063\u3068\u6b8b\u308a\u7d9a\u3051\u308b<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"-isur\" onclick=\"selectGateOption('g10', '-isur', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u305d\u306e\u4e00\u77ac\u3060\u3051\u9bae\u70c8\u306b\u30d4\u30ab\u30c3\u3068\u8f1d\u3044\u3066\u3001\u6f54\u304f\u6d88\u3048\u53bb\u308b<\/div>\n              <\/button>\n              <button class=\"gate-option-btn\" data-key=\"-altur\" onclick=\"selectGateOption('g10', '-altur', this)\">\n                <div style=\"font-size: 0.92rem; line-height: 1.6; color: var(--text-main); padding: 0.2rem 0;\">\u81ea\u5206\u3092\u4e3b\u5f35\u305b\u305a\u3001\u5468\u308a\u306e\u7f8e\u3057\u3044\u666f\u8272\u3092\u305f\u3060\u6620\u3057\u8fd4\u3059\u93e1\u306b\u306a\u308b<\/div>\n              <\/button>\n            <\/div>\n          <\/div>\n\n        <\/div>\n\n        <!-- \u7b97\u5b9a\u30dc\u30bf\u30f3 -->\n        <div style=\"text-align: center; margin-bottom: 2.5rem;\">\n          <button class=\"primary-btn\" style=\"padding: 0.95rem 3.2rem; font-size: 1.05rem; font-family: var(--font-serif); letter-spacing: 0.14em;\" onclick=\"calculateTrueName()\">\n            \u3014 \u5b58\u5728\u5ea7\u6a19\u306e\u7b97\u5b9a\uff08\u771f\u540d\u3092\u5c0e\u51fa\uff09 \u3015\n          <\/button>\n        <\/div>\n\n        <!-- \u7b97\u5b9a\u7d50\u679c\u8868\u793a\u30a8\u30ea\u30a2 -->\n        <div id=\"divination-result\" style=\"display: none;\" class=\"divination-result-container\">\n          <!-- JS\u3067\u52d5\u7684\u51fa\u529b -->\n        <\/div>\n\n      <\/div>\n    <\/div>\n\n    <!-- \u30bf\u30d6: \u5178\u7bc4\u76ee\u9332\uff082\u30ab\u30e9\u30e0\u30fb\u5927\u7cfb\u9332\uff06\u30b5\u30a4\u30c9\u89e3\u984c\u30d3\u30e5\u30fc\uff09 -->\n    <div id=\"tab-catalog\" class=\"tab-content\">\n      <div class=\"catalog-layout\">\n        \n        <!-- \u5de6\u5074\uff1a\u30b9\u30ea\u30e0\u76ee\u9332\u30ea\u30b9\u30c8 -->\n        <div class=\"catalog-list-card\">\n          <div class=\"catalog-list-header\">\n            <div style=\"display: flex; justify-content: space-between; align-items: center;\">\n              <span style=\"font-family: var(--font-serif); font-size: 1.1rem; color: var(--accent-gold); letter-spacing: 0.08em;\">\n                \u25c6 \u5178\u7bc4\u76ee\u9332\uff08\u5927\u7cfb\u30a2\u30fc\u30ab\u30a4\u30d6\uff09\n              <\/span>\n              <span id=\"catalog-count-badge\" style=\"font-size: 0.75rem; color: var(--text-muted);\">\n                0 \u9805\u76ee\n              <\/span>\n            <\/div>\n            <div class=\"catalog-controls\">\n              <input type=\"text\" id=\"catalog-search\" class=\"text-input\" placeholder=\"\u5358\u8a9e\u30fb\u8aad\u307f\u30fb\u610f\u5473\u30fb\u89e3\u984c\u3067\u691c\u7d22...\" oninput=\"renderCatalogList()\" style=\"flex: 1; min-width: 150px;\">\n              <select id=\"catalog-filter\" class=\"text-input\" onchange=\"renderCatalogList()\" style=\"width: auto;\">\n                <option value=\"all\">\u3059\u3079\u3066\u306e\u5927\u7cfb<\/option>\n                <option value=\"math\">\u6570\u7406\u30fb\u57fa\u76e4\uff08\u7121\u30fb\u5358\u30fb\u53cc\u30fb\u5168\u30fb\u7121\u6570\uff09<\/option>\n                <option value=\"color\">\u539f\u521d\u8272\u5f69\uff08\u9280\u30fb\u91d1\u30fb\u8d64\u30fb\u9752\u30fb\u7dd1\u30fb\u767d\u30fb\u9ed2\uff09<\/option>\n                <option value=\"base\">\u81ea\u7136\u57fa\u76e4\uff08\u5929\u4f53\u30fb\u5927\u81ea\u7136\u306e\u5668\uff09<\/option>\n                <option value=\"weather\">\u5929\u5019\u30fb\u81ea\u7136\u4e8b\u8c61<\/option>\n                <option value=\"texture\">\u8cea\u611f\uff08\u30de\u30c6\u30ea\u30a2\u30eb\uff09<\/option>\n                <option value=\"soul\">\u771f\u540d\u30fb\u5668\uff08\u7b97\u5b9a\u5b58\u5728\uff09<\/option>\n                <option value=\"sentence\">\u69cb\u6587\uff08\u8a69\u6b4c\u30fb\u4f5c\u4f8b\uff09<\/option>\n                <option value=\"word\">\u8abf\u5408\u73fe\u8c61\u8a9e<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n          \n          <div id=\"catalog-items-container\" class=\"catalog-items-container\">\n            <!-- JS\u52d5\u7684\u63cf\u753b -->\n          <\/div>\n        <\/div>\n\n        <!-- \u53f3\u5074\uff1a\u30b5\u30a4\u30c9\u89e3\u984c\u30ab\u30e9\u30e0\uff08\u56fa\u5b9a\u8868\u793a\uff09 -->\n        <div>\n          <div id=\"catalog-side-pane\" class=\"catalog-side-pane\">\n            <!-- JS\u52d5\u7684\u63cf\u753b -->\n            <div style=\"text-align: center; color: var(--text-muted); padding: 3rem 1rem;\">\n              \u5de6\u306e\u76ee\u9332\u304b\u3089\u8a00\u8449\u3092\u9078\u629e\u3059\u308b\u3068\u3001\u3053\u3053\u306b\u3010\u539f\u5178\u89e3\u984c\u3011\u3068\u3010\u8a9e\u6e90\u306e\u9023\u9396\u3011\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\n            <\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n\n    <!-- \u30bf\u30d63: \u5178\u7bc4\uff08Codex\u30fb\u8f9e\u66f8\uff09 -->\n    <div id=\"tab-lexicon\" class=\"tab-content\">\n      <div class=\"card\" style=\"margin-bottom: 1.5rem;\">\n        <div class=\"lexicon-controls\">\n          <input type=\"text\" id=\"lexicon-search\" class=\"text-input search-input\" placeholder=\"\u5358\u8a9e\u3001\u30ab\u30bf\u30ab\u30ca\u3001\u610f\u5473\u3067\u691c\u7d22...\" oninput=\"renderLexicon()\">\n          <select id=\"lexicon-filter\" class=\"text-input\" onchange=\"renderLexicon()\" style=\"width: auto;\">\n            <option value=\"all\">\u3059\u3079\u3066\u8868\u793a<\/option>\n            <option value=\"math\">\u6570\u7406\u30fb\u57fa\u76e4\u306e\u307f<\/option>\n            <option value=\"color\">\u539f\u521d\u8272\u5f69\u306e\u307f<\/option>\n            <option value=\"base\">\u81ea\u7136\u57fa\u76e4\uff08\u5834\uff09\u306e\u307f<\/option>\n            <option value=\"weather\">\u5929\u5019\u30fb\u4e8b\u8c61\u306e\u307f<\/option>\n            <option value=\"texture\">\u8cea\u611f\u306e\u307f<\/option>\n            <option value=\"word\">\u8abf\u5408\u73fe\u8c61\u8a9e\u306e\u307f<\/option>\n            <option value=\"sentence\">\u69cb\u6587\uff08\u6587\u7ae0\uff09\u306e\u307f<\/option>\n            <option value=\"soul\">\u771f\u540d\u30fb\u5668\uff08\u5b58\u5728\u7b97\u5b9a\uff09\u306e\u307f<\/option>\n          <\/select>\n          <button class=\"secondary-btn\" onclick=\"exportData()\">\u66f8\u304d\u51fa\u3057 (JSON)<\/button>\n          <button class=\"secondary-btn\" onclick=\"importDataClick()\">\u8aad\u307f\u8fbc\u307f<\/button>\n          <input type=\"file\" id=\"import-file\" style=\"display: none;\" onchange=\"importData(event)\">\n        <\/div>\n      <\/div>\n\n      <div id=\"entries-container\" class=\"entries-grid\">\n        <!-- JavaScript\u3067\u52d5\u7684\u63cf\u753b -->\n      <\/div>\n    <\/div>\n\n    <!-- \u30bf\u30d6: \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u3068\u306f\uff08\u4f53\u7cfb\u6559\u79d1\u66f8 & \u30ac\u30a4\u30c9\uff09 -->\n    <div id=\"tab-guide\" class=\"tab-content active\">\n      \n      <!-- \u5c0e\u5165\u30a6\u30a7\u30eb\u30ab\u30e0\u30d0\u30ca\u30fc\uff08\u4e00\u76ee\u3067\u308f\u304b\u308b\u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u3068\u5de5\u623f\u306e\u5168\u8c8c\uff09 -->\n      <div class=\"card\" style=\"margin-bottom: 2rem; padding: 2.2rem 2rem; background: linear-gradient(135deg, rgba(18, 22, 34, 0.95), rgba(25, 35, 55, 0.9)); border: 1px solid var(--accent-gold); border-radius: var(--radius-lg); position: relative; overflow: hidden;\">\n        <div style=\"position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);\"><\/div>\n        <div style=\"max-width: 900px; margin: 0 auto;\">\n          <div style=\"font-family: var(--font-serif); font-size: 1.7rem; color: var(--accent-gold); letter-spacing: 0.15em; margin-bottom: 0.4rem; text-shadow: 0 0 15px rgba(226, 192, 122, 0.3);\">\n            \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\uff08Selath-Vohr\uff09\u3068\u306f\n          <\/div>\n          <div style=\"font-size: 0.85rem; color: var(--accent-vohr); letter-spacing: 0.1em; margin-bottom: 1.2rem;\">\n            THE LANGUAGE OF SILENCE \u25c6 \u9759\u5bc2\u3068\u5ba2\u89b3\u306e\u795e\u8056\u8a69\u6b4c\u8a00\u8a9e\n          <\/div>\n          <p style=\"font-size: 0.98rem; color: var(--text-bright); line-height: 1.8; margin-bottom: 1.5rem;\">\n            \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\uff08Selath-Vohr\uff09\u306f\u3001<strong>\u300c\u73fe\u8c61\u304c\u3001\u3042\u308b\u5834\u6240\u306b\u5bbf\u3063\u3066\u3044\u308b\u300d<\/strong>\u3068\u3044\u3046\u6839\u672c\u54f2\u5b66\u306b\u57fa\u3065\u304d\u3001\u77e5\u6027\u4f53\u306e\u57f7\u7740\u3084\u64cd\u4f5c\u3092\u6392\u3057\u3066\u81ea\u7136\u3084\u4e16\u754c\u306e\u60c5\u666f\u3092\u3042\u308a\u306e\u307e\u307e\u5ba2\u89b3\u7684\u306b\u8a18\u8ff0\u3059\u308b\u3001\u6b4c\u30fb\u795d\u8a5e\u30fb\u304a\u3068\u304e\u8a71\u306e\u305f\u3081\u306e\u8a00\u8a9e\u3067\u3059\u3002<br>\n            \u4eba\u9593\u306e\u8a00\u8a9e\u306b\u6839\u6df1\u304f\u5b58\u5728\u3059\u308b\u300c\u4e3b\u8a9e\u304c\u76ee\u7684\u8a9e\u3092\u64cd\u4f5c\u3059\u308b\uff08\u4f8b: \u79c1\u306f\u82b1\u3092\u898b\u308b\uff09\u300d\u3068\u3044\u3046\u4e3b\u5ba2\u5206\u96e2\u3092\u5426\u5b9a\u3057\u3001\u300c\u82b1\u3068\u3044\u3046\u8272\u5f69\u306e\u73fe\u8c61\u304c\u3001\u8996\u754c\uff08\u79c1\u3068\u3044\u3046\u5668\uff09\u3068\u3044\u3046\u5834\u306b\u9855\u73fe\u3057\u3066\u3044\u308b\u300d\u3068\u6349\u3048\u307e\u3059\u3002\n          <\/p>\n\n          <div style=\"background: rgba(0, 0, 0, 0.35); border-left: 3px solid var(--accent-gold); padding: 1rem 1.25rem; border-radius: 0 var(--radius-md) var(--radius-md) 0; margin-bottom: 1.8rem;\">\n            <div style=\"font-size: 0.88rem; color: var(--accent-gold); font-weight: 600; margin-bottom: 0.3rem;\">\u25c6 \u3053\u306e\u5de5\u623f\uff08Selath-Vohr Studio\uff09\u3067\u3067\u304d\u308b\u3053\u3068<\/div>\n            <div style=\"font-size: 0.85rem; color: var(--text-main); line-height: 1.7;\">\n              \u672cWeb\u30c4\u30fc\u30eb\u306f\u3001\u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u306e\u4e16\u754c\u89b3\u306b\u6d78\u308a\u3001\u8a00\u8449\u3092\u8abf\u5408\u3057\u3001\u8a69\u6b4c\u3092\u7d21\u304e\u3001\u81ea\u3089\u306e\u771f\u540d\u3092\u9855\u73fe\u3055\u305b\u308b\u305f\u3081\u306e\u7dcf\u5408\u5275\u4f5c\u652f\u63f4\u74b0\u5883\u3067\u3059\u3002\u4e0a\u90e8\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u304b\u3089\u5404\u5de5\u623f\u3078\u3044\u3064\u3067\u3082\u5207\u308a\u66ff\u3048\u3089\u308c\u307e\u3059\u3002\n            <\/div>\n          <\/div>\n\n          <div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.8rem;\">\n            <div style=\"background: rgba(255, 255, 255, 0.03); border: 1px solid var(--border-subtle); padding: 0.85rem 1rem; border-radius: var(--radius-sm); cursor: pointer; transition: border-color 0.2s;\" onclick=\"location.href='#chap-1'\">\n              <div style=\"font-weight: 600; font-size: 0.88rem; color: var(--accent-gold); margin-bottom: 0.2rem;\">1. \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u3068\u306f<\/div>\n              <div style=\"font-size: 0.78rem; color: var(--text-muted); line-height: 1.4;\">\u516812\u7ae0\u306e\u4f53\u7cfb\u6559\u79d1\u66f8\u3002\u6587\u6cd5\u30fb\u4e94\u5927\u5c5e\u6027\u30fb\u6642\u9593\u8ef8\u30fb\u547d\u540d\u898f\u5247\u30fb\u6570\u7406\u3068\u8272\u5f69\u3092\u7db2\u7f85\u3002<\/div>\n            <\/div>\n            <div style=\"background: rgba(255, 255, 255, 0.03); border: 1px solid var(--border-subtle); padding: 0.85rem 1rem; border-radius: var(--radius-sm); cursor: pointer; transition: border-color 0.2s;\" onclick=\"switchTabDirect('catalog')\">\n              <div style=\"font-weight: 600; font-size: 0.88rem; color: var(--accent-vohr); margin-bottom: 0.2rem;\">2. \u5178\u7bc4\u76ee\u9332\uff08\u5927\u7cfb\u9332\uff09<\/div>\n              <div style=\"font-size: 0.78rem; color: var(--text-muted); line-height: 1.4;\">2\u30ab\u30e9\u30e0\u69cb\u6210\u3002\u5168\u5358\u8a9e\u306e\u539f\u5178\u89e3\u984c\u3068\u8a9e\u6e90\u306e\u9023\u9396\u3092\u3086\u3063\u305f\u308a\u95b2\u89a7\u3067\u304d\u308b\u5927\u66f8\u67b6\u3002<\/div>\n            <\/div>\n            <div style=\"background: rgba(255, 255, 255, 0.03); border: 1px solid var(--border-subtle); padding: 0.85rem 1rem; border-radius: var(--radius-sm); cursor: pointer; transition: border-color 0.2s;\" onclick=\"switchTabDirect('composer')\">\n              <div style=\"font-weight: 600; font-size: 0.88rem; color: var(--accent-lu); margin-bottom: 0.2rem;\">3. \u73fe\u8c61\u8abf\u5408\u5668<\/div>\n              <div style=\"font-size: 0.78rem; color: var(--text-muted); line-height: 1.4;\">\u81ea\u7136\u57fa\u76e4\u3001\u4e94\u5927\u5c5e\u6027\u3001\u8cea\u611f\u3001\u8272\u5f69\u3001\u63a5\u8f9e\u3092\u81ea\u5728\u306b\u8abf\u5408\u3057\u3066\u65b0\u305f\u306a\u73fe\u8c61\u8a9e\u3092\u751f\u307f\u51fa\u3059\u5de5\u623f\u3002<\/div>\n            <\/div>\n            <div style=\"background: rgba(255, 255, 255, 0.03); border: 1px solid var(--border-subtle); padding: 0.85rem 1rem; border-radius: var(--radius-sm); cursor: pointer; transition: border-color 0.2s;\" onclick=\"switchTabDirect('sentence')\">\n              <div style=\"font-weight: 600; font-size: 0.88rem; color: var(--accent-ser); margin-bottom: 0.2rem;\">4. \u69cb\u6587\u30d3\u30eb\u30c0\u30fc<\/div>\n              <div style=\"font-size: 0.78rem; color: var(--text-muted); line-height: 1.4;\">\u5927\u6642\u9593\uff08\u671d\u663c\u5915\u591c\uff09\u3068\u5834\u6240\u683c\uff08nol\uff09\u3092\u7d50\u3073\u3064\u3051\u3001\u8358\u53b3\u306a\u6b4c\u3084\u795d\u8a5e\u3092\u7d21\u304e\u51fa\u3059\u796d\u58c7\u3002<\/div>\n            <\/div>\n            <div style=\"background: rgba(255, 255, 255, 0.03); border: 1px solid var(--border-subtle); padding: 0.85rem 1rem; border-radius: var(--radius-sm); cursor: pointer; transition: border-color 0.2s;\" onclick=\"switchTabDirect('divination')\">\n              <div style=\"font-weight: 600; font-size: 0.88rem; color: var(--accent-sha); margin-bottom: 0.2rem;\">5. \u771f\u540d\u7b97\u5b9a\u9580<\/div>\n              <div style=\"font-size: 0.78rem; color: var(--text-muted); line-height: 1.4;\">\u56db\u3064\u306e\u9580\uff08\u5834\u30fb\u5fc3\u30fb\u8cea\u30fb\u5668\uff09\u3092\u6f5c\u308a\u3001\u6c5d\u306e\u9b42\u306b\u5bbf\u308b\u771f\u540d\u3068\u5b58\u5728\u8a69\u6b4c\u3092\u9855\u73fe\u3055\u305b\u308b\u7b97\u5b9a\u5100\u5f0f\u3002<\/div>\n            <\/div>\n            <div style=\"background: rgba(255, 255, 255, 0.03); border: 1px solid var(--border-subtle); padding: 0.85rem 1rem; border-radius: var(--radius-sm); cursor: pointer; transition: border-color 0.2s;\" onclick=\"switchTabDirect('lexicon')\">\n              <div style=\"font-weight: 600; font-size: 0.88rem; color: var(--accent-vod); margin-bottom: 0.2rem;\">6. \u5178\u7bc4\u8f9e\u66f8\uff08\u30ab\u30fc\u30c9\uff09<\/div>\n              <div style=\"font-size: 0.78rem; color: var(--text-muted); line-height: 1.4;\">\u751f\u307f\u51fa\u3057\u305f\u8a00\u8449\u3092\u30ab\u30fc\u30c9\u5f0f\u3067\u7ba1\u7406\u3057\u3001JSON\u66f8\u304d\u51fa\u3057\u30fb\u8aad\u307f\u8fbc\u307f\u30fb\u62b9\u6d88\u304c\u3067\u304d\u308b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3002<\/div>\n            <\/div>\n          <\/div>\n\n        <\/div>\n      <\/div>\n\n      <div class=\"textbook-layout\">\n        \n        <!-- \u76ee\u6b21\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\uff08\u30b9\u30de\u30db\u3067\u91cd\u306a\u3089\u306a\u3044\u958b\u9589\u5f0f\u76ee\u9332\uff09 -->\n        <details class=\"textbook-nav\" open>\n          <summary>\u25c6 \u5178\u7bc4\u76ee\u9332\uff08\u516812\u7ae0 \u76ee\u6b21\uff09<\/summary>\n          <div class=\"textbook-nav-list\">\n            <a href=\"#chap-1\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c1\u7ae0\uff1a\u6839\u672c\u601d\u60f3<\/a>\n            <a href=\"#chap-2\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c2\u7ae0\uff1a\u4e94\u5927\u5c5e\u6027\u3068\u62e1\u5f35\u5c5e\u6027<\/a>\n            <a href=\"#chap-3\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c3\u7ae0\uff1a\u4e0d\u52d5\u306e\u81ea\u7136\u57fa\u76e4\uff08\u5668\u30fb\u5834\uff09<\/a>\n            <a href=\"#chap-4\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c4\u7ae0\uff1a\u5929\u5019\u30fb\u81ea\u7136\u4e8b\u8c61\uff08\u52d5\u614b\uff09<\/a>\n            <a href=\"#chap-5\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c5\u7ae0\uff1a\u30de\u30c6\u30ea\u30a2\u30eb\u3068\u8272\u5f69\uff08\u8cea\u611f\u3068\u8272\uff09<\/a>\n            <a href=\"#chap-6\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c6\u7ae0\uff1a\u4e09\u4f4d\u4e00\u4f53\u306e\u8b58\u5225\u63a5\u8f9e<\/a>\n            <a href=\"#chap-7\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c7\u7ae0\uff1a\u4e8c\u91cd\u6642\u9593\u8ef8\uff08\u671d\u663c\u5915\u591c\uff09<\/a>\n            <a href=\"#chap-8\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c8\u7ae0\uff1a\u4fee\u98fe\u63a5\u8f9e\u30fb\u610f\u5fd7<\/a>\n            <a href=\"#chap-9\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c9\u7ae0\uff1a\u69cb\u6587\u6cd5\u5247\u3068\u4f5c\u4f8b<\/a>\n            <a href=\"#chap-10\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c10\u7ae0\uff1a\u73fe\u8c61\u540c\u5b9a\u3068\u5b58\u5728\u5ea7\u6a19<\/a>\n            <a href=\"#chap-11\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c11\u7ae0\uff1a\u539f\u5178\u89e3\u984c\u3068\u8a9e\u6e90\u306e\u9023\u9396<\/a>\n            <a href=\"#chap-12\" class=\"textbook-nav-link\" onclick=\"if(window.innerWidth<=900) this.closest('details').removeAttribute('open')\">\u7b2c12\u7ae0\uff1a\u6570\u7406\u3068\u539f\u521d\u8272\u5f69\u306e\u7cfb\u8b5c<\/a>\n          <\/div>\n        <\/details>\n\n        <!-- \u6559\u79d1\u66f8\u672c\u6587 -->\n        <div class=\"textbook-body\">\n          \n          <div id=\"chap-1\" class=\"guide-section\">\n            <h2>\u7b2c1\u7ae0\uff1a\u6839\u672c\u601d\u60f3\uff08\u73fe\u8c61\u8a18\u8ff0\u3068\u5834\u6240\u306e\u54f2\u5b66\uff09<\/h2>\n            <p>\n              \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\uff08Selath-Vohr\uff09\u306b\u304a\u3044\u3066\u3001<strong>\u81ea\u8eab\uff08\u77e5\u6027\u4f53\uff09\u304c\u4e16\u754c\u3092\u64cd\u4f5c\u3059\u308b\u3053\u3068\u306f\u4e00\u5207\u306a\u3044<\/strong>\u3002<br>\n              \u3059\u3079\u3066\u306e\u4e8b\u8c61\u306f\u3001<strong>\u300c\u73fe\u8c61\u304c\u3001\u3042\u308b\u5834\u6240\u306b\u5bbf\u3063\u3066\u3044\u308b\u300d<\/strong> \u3068\u3044\u3046\u5ba2\u89b3\u7684\u306a\u60c5\u666f\u3068\u3057\u3066\u306e\u307f\u8a18\u8ff0\u3055\u308c\u308b\u3002\n            <\/p>\n            <div class=\"guide-quote\">\n              \u25b3 \u4eba\u9593\u306e\u8a00\u8449\uff1a \u300c\u79c1\u306f\u3001\u82b1\u3092\u898b\u308b\u300d<br>\n              \u25c6 \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u306e\u8ad6\u7406\uff1a \u300c\u8272\u5f69\uff08\u82b1\uff09\u3068\u3044\u3046\u73fe\u8c61\u304c\u3001\u8996\u754c\uff08\u79c1\u3068\u3044\u3046\u5668\uff09\u3068\u3044\u3046\u5834\u306b\u9855\u73fe\u3057\u3066\u3044\u308b\u300d\n            <\/div>\n            <p>\n              \u300c\u79c1\u304c\u98a8\u3092\u611f\u3058\u308b\u300d\u306e\u3067\u306f\u306a\u304f\u3001\u300c\u81ea\u7531\u306a\u606f\u5439\uff08\u98a8\uff09\u3068\u3044\u3046\u73fe\u8c61\u304c\u3001\u5927\u6c17\u3068\u3044\u3046\u5834\u306b\u6d78\u900f\u3057\u3066\u3044\u308b\u300d\u3068\u6349\u3048\u308b\u3002<br>\n              <strong>\u81ea\u7136\u306e\u5728\u308a\u65b9\u3092\u5927\u524d\u63d0\u3068\u3057\u3001\u6b4c\u30fb\u795d\u8a5e\u30fb\u304a\u3068\u304e\u8a71\u3092\u7d21\u3050\u305f\u3081\u306e\u8056\u306a\u308b\u5178\u793c\u8a00\u8a9e<\/strong>\u3068\u3057\u3066\u8a2d\u8a08\u3055\u308c\u3066\u3044\u308b\u3002\n            <\/p>\n          <\/div>\n\n          <div id=\"chap-2\" class=\"guide-section\">\n            <h2>\u7b2c2\u7ae0\uff1a\u8a9e\u6839\u4f53\u7cfb\uff08\u57fa\u672c\u4e94\u5927\u5c5e\u6027 \u00d7 \u62e1\u5f35\u4e94\u5c5e\u6027\uff09<\/h2>\n            <p>\u4e16\u754c\u3092\u69cb\u6210\u3059\u308b5\u3064\u306e\u6839\u6e90\u7684\u30a8\u30ec\u30e1\u30f3\u30c8\u3068\u3001\u305d\u306e\u52d5\u614b\u3092\u73fe\u30595\u3064\u306e\u4fee\u98fe\u5c5e\u6027\u3002<\/p>\n            \n            <h3>\u25c6 \u57fa\u672c\u4e94\u5927\u5c5e\u6027\uff08\u5b87\u5b99\u306e\u5143\u7d20\uff09<\/h3>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u5c5e\u6027\u540d<\/th><th>\u8aad\u307f<\/th><th>\u8c61\u5fb4\u3068\u6982\u5ff5<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td><span class=\"highlight-term\">Vohr<\/span><\/td><td>\u30f4\u30a9\u30fc\u30eb<\/td><td>\u9759\u5bc2\u30fb\u7a7a\u6c17\uff08\u97f3\u3001\u7cbe\u795e\u3001\u7a7a\u9699\u3001\u7121\u97f3\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Lu<\/span><\/td><td>\u30eb<\/td><td>\u5149\u30fb\u6ce2\u52d5\uff08\u96f7\u3001\u661f\u5149\u3001\u8679\u3001\u8f1d\u304d\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Ser<\/span><\/td><td>\u30bb\u30eb<\/td><td>\u751f\u547d\u30fb\u690d\u7269\uff08\u82d4\u3001\u6a39\u6728\u3001\u98a8\u3001\u5faa\u74b0\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Vod<\/span><\/td><td>\u30f4\u30a9\u30c9<\/td><td>\u6d41\u4f53\u30fb\u6db2\u4f53\uff08\u6c34\u3001\u96e8\u3001\u6d99\u3001\u9727\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Sha<\/span><\/td><td>\u30b7\u30e3<\/td><td>\u786c\u8cea\u30fb\u9271\u77f3\uff08\u5ca9\u3001\u77f3\u7891\u3001\u6bbb\u3001\u9aa8\u3001\u4e0d\u5909\uff09<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n\n            <h3>\u25c7 \u62e1\u5f35\u4e94\u5c5e\u6027\uff08\u73fe\u8c61\u306e\u52d5\u614b\u3068\u5909\u5316\uff09<\/h3>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u5c5e\u6027\u540d<\/th><th>\u8aad\u307f<\/th><th>\u8c61\u5fb4\u3068\u52d5\u614b<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td><span class=\"highlight-term\">Flor<\/span><\/td><td>\u30d5\u30ed\u30eb<\/td><td>\u6c3e\u6feb\u30fb\u81e8\u754c\uff08\u9650\u754c\u3092\u7a81\u7834\u3057\u4e00\u6c17\u306b\u5468\u56f2\u3078\u6ea2\u308c\u51fa\u3059\u52e2\u3044\u3001\u958b\u82b1\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Mar<\/span><\/td><td>\u30de\u30fc\u30eb<\/td><td>\u8272\u5f69\u30fb\u60c5\u7dd2\uff08\u666f\u8272\u304c\u8272\u4ed8\u304d\u3001\u611f\u60c5\u304c\u98a8\u666f\u306b\u6eb6\u3051\u8fbc\u3080\u3053\u3068\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Ris<\/span><\/td><td>\u30ea\u30b9<\/td><td>\u53ce\u675f\u30fb\u7d50\u6676\u5316\uff08\u9727\u304c\u591c\u9732\u3068\u306a\u308a\u3001\u60f3\u3044\u304c\u8a00\u8449\u3068\u3057\u3066\u56fa\u307e\u308b\u77ac\u9593\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Vol<\/span><\/td><td>\u30f4\u30a9\u30eb<\/td><td>\u53cd\u8ee2\u30fb\u6b8b\u97ff\uff08\u5149\u304c\u5f71\u3092\u843d\u3068\u3057\u3001\u53bb\u3063\u305f\u8005\u306e\u6c17\u914d\u304c\u7a7a\u9593\u306b\u7559\u307e\u308b\u3053\u3068\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Hal<\/span><\/td><td>\u30cf\u30eb<\/td><td>\u6469\u64e6\u30fb\u878d\u89e3\uff08\u4e8c\u3064\u306e\u898f\u5f8b\u304c\u885d\u7a81\u3057\u3001\u5883\u754c\u304c\u71b1\u3092\u6301\u3063\u3066\u6eb6\u3051\u5408\u3046\u3053\u3068\uff09<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n          <\/div>\n\n          <div id=\"chap-3\" class=\"guide-section\">\n            <h2>\u7b2c3\u7ae0\uff1a\u4e0d\u52d5\u306e\u81ea\u7136\u57fa\u76e4\uff08\u5929\u4f53\u30fb\u5927\u81ea\u7136\u306e\u5668\uff1a\u5bbf\u308b\u5834\uff09<\/h2>\n            <p>\n              \u7269\u8cea\u30fb\u5b9f\u4f53\u3068\u3057\u3066\u4e16\u754c\u306b\u5e38\u306b\u4e0d\u52d5\u3067\u93ae\u5ea7\u3057\u3001<strong>\u73fe\u8c61\u3092\u53d7\u3051\u6b62\u3081\u308b\u300c\u5668\uff08\u5bbf\u308b\u5834\uff09\u300d<\/strong>\u3068\u306a\u308b\u3082\u306e\u3002\n            <\/p>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u5bfe\u8c61<\/th><th>\u771f\u540d<\/th><th>\u8aad\u307f<\/th><th>\u97f3\u97fb\u306e\u7531\u6765\u3068\u5f79\u5272<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td>\u592a\u967d<\/td><td><span class=\"highlight-term\">Luhal<\/span><\/td><td>\u30eb\u30cf\u30eb<\/td><td>\u5149\uff08Lu\uff09\uff0b \u878d\u89e3\uff08Hal\uff09\u3002\u4e16\u754c\u3092\u7167\u3089\u3057\u6696\u3081\u308b\u5149\u306e\u6e90\u3002<\/td><\/tr>\n                <tr><td>\u6708<\/td><td><span class=\"highlight-term\">Vohra<\/span><\/td><td>\u30f4\u30a9\u30fc\u30e9<\/td><td>\u9759\u5bc2\uff08Vohr\uff09\uff0b \u53d7\u5bb9\uff08-a\uff09\u3002\u9759\u5bc2\u305d\u306e\u3082\u306e\u304c\u591c\u3092\u7167\u3089\u3059\u59ff\u3002<\/td><\/tr>\n                <tr><td>\u661f<\/td><td><span class=\"highlight-term\">Luist<\/span><\/td><td>\u30eb\u30a4\u30b9\u30c8<\/td><td>\u5149\uff08Lu\uff09\uff0b \u92ed\u3044\u70b9\uff08-ist\uff09\u3002\u6697\u95c7\u306b\u7e2b\u3044\u6b62\u3081\u3089\u308c\u305f\u5149\u306e\u91dd\u3002<\/td><\/tr>\n                <tr><td>\u7a7a\u30fb\u5929\u7a7a<\/td><td><span class=\"highlight-term\">Vohral<\/span><\/td><td>\u30f4\u30a9\u30fc\u30e9\u30eb<\/td><td>\u9759\u5bc2\uff08Vohr\uff09\uff0b \u5916\u754c\uff08-al\uff09\u3002\u982d\u4e0a\u3092\u5305\u3080\u7a7a\u6c17\u306e\u5668\u3002<\/td><\/tr>\n                <tr><td>\u6d77\u30fb\u5927\u6c34<\/td><td><span class=\"highlight-term\">Vodon<\/span><\/td><td>\u30f4\u30a9\u30c9\u30f3<\/td><td>\u6d41\u4f53\uff08Vod\uff09\uff0b \u6c38\u9060\uff08-on\uff09\u3002\u4e16\u754c\u3092\u6d78\u3059\u679c\u3066\u306a\u304d\u6c34\u306e\u5668\u3002<\/td><\/tr>\n                <tr><td>\u68ee\u30fb\u6a39\u6d77<\/td><td><span class=\"highlight-term\">Serin<\/span><\/td><td>\u30bb\u30ea\u30f3<\/td><td>\u751f\u547d\uff08Ser\uff09\uff0b \u7fa4\u751f\uff08-in\uff09\u3002\u751f\u547d\u306e\u606f\u5439\u304c\u5bc6\u96c6\u3059\u308b\u6a39\u6d77\u3002<\/td><\/tr>\n                <tr><td>\u5927\u5730\u30fb\u5ca9\u76e4<\/td><td><span class=\"highlight-term\">Shael<\/span><\/td><td>\u30b7\u30e3\u30a8\u30eb<\/td><td>\u786c\u8cea\uff08Sha\uff09\uff0b \u5916\u754c\uff08-al\uff09\u3002\u4e16\u754c\u3092\u652f\u3048\u308b\u4e0d\u52d5\u306e\u790e\u3002<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n          <\/div>\n\n          <div id=\"chap-4\" class=\"guide-section\">\n            <h2>\u7b2c4\u7ae0\uff1a\u5929\u5019\u30fb\u81ea\u7136\u4e8b\u8c61\uff08\u5834\u306b\u5bbf\u308b\u79fb\u308d\u3044\u30fb\u52d5\u614b\uff1a\u6d41\u9e971\u5358\u8a9e\uff09<\/h2>\n            <p>\n              \u5927\u81ea\u7136\u306e\u5668\uff08\u5834\uff09\u306b\u5bbf\u308a\u3001\u79fb\u308d\u3044\u3086\u304f\u73fe\u8c61\u3002\u6b4c\u3084\u795d\u8a5e\u3067\u6d41\u308c\u308b\u3088\u3046\u306b\u53e3\u305a\u3055\u3081\u308b\u3088\u3046\u3001<strong>1\u5358\u8a9e\u306e\u7f8e\u3057\u3044\u97f3\u97fb<\/strong>\u3068\u3057\u3066\u7d50\u6676\u5316\u3055\u308c\u3066\u3044\u308b\u3002\n            <\/p>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u4e8b\u8c61<\/th><th>\u5358\u8a9e<\/th><th>\u8aad\u307f<\/th><th>\u97f3\u97fb\u306e\u7531\u6765\u3068\u73fe\u8c61\u306e\u8cea\u611f<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td>\u98a8<\/td><td><span class=\"highlight-term\">Zel<\/span><\/td><td>\u30bc\u30eb<\/td><td>\u81ea\u7531\uff08Ze\uff09\uff0b \u6d41\u97f3\uff08-l\uff09\u3002\u4e00\u606f\u3067\u5927\u6c17\u3092\u5439\u304d\u6e21\u308b\u6c17\u6d41\u3002<\/td><\/tr>\n                <tr><td>\u96e8\u30fb\u6ef4<\/td><td><span class=\"highlight-term\">Vois<\/span><\/td><td>\u30f4\u30a9\u30a4\u30b9<\/td><td>\u6c34\uff08Vod\uff09\u3068\u9f13\u52d5\uff08-is\uff09\u304c\u6eb6\u3051\u5408\u3044\u3001\u9759\u304b\u306b\u5929\u304b\u3089\u964d\u308b\u96e8\u97f3\u3002<\/td><\/tr>\n                <tr><td>\u96f7\u30fb\u9583\u5149<\/td><td><span class=\"highlight-term\">Lufir<\/span><\/td><td>\u30eb\u30d5\u30a3\u30fc\u30eb<\/td><td>\u5149\uff08Lu\uff09\u304c\u91dd\u306e\u3088\u3046\u306b\u92ed\u5229\u306b\u5927\u6c17\u3092\u88c2\u304f\u9583\u5149\u3002<\/td><\/tr>\n                <tr><td>\u9727\u30fb\u96f2<\/td><td><span class=\"highlight-term\">Voria<\/span><\/td><td>\u30f4\u30a9\u30ea\u30a2<\/td><td>\u7a7a\u4e2d\u306b\u6d6e\u304b\u3076\u6de1\u304f\u767d\u3044\u30f4\u30a7\u30fc\u30eb\u306e\u3088\u3046\u306a\u6c34\u6c17\u3002<\/td><\/tr>\n                <tr><td>\u96ea\u30fb\u971c<\/td><td><span class=\"highlight-term\">Voisel<\/span><\/td><td>\u30f4\u30a9\u30a4\u30bc\u30eb<\/td><td>\u51cd\u3066\u3064\u304f\u6c34\u304c\u7a7a\u6c17\u4e2d\u3067\u9280\u8272\u306b\u7d50\u6676\u5316\u3057\u3066\u821e\u3044\u843d\u3061\u308b\u96ea\u3002<\/td><\/tr>\n                <tr><td>\u5f71\u30fb\u5bb5\u95c7<\/td><td><span class=\"highlight-term\">Volun<\/span><\/td><td>\u30f4\u30a9\u30eb\u30f3<\/td><td>\u8272\u5f69\u304c\u6697\u304c\u308a\u3078\u3068\u5438\u3044\u8fbc\u307e\u308c\u3001\u9759\u5bc2\u304c\u6e80\u3061\u3066\u3044\u304f\u5bb5\u306e\u6df1\u307f\u3002<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n          <\/div>\n\n          <div id=\"chap-5\" class=\"guide-section\">\n            <h2>\u7b2c5\u7ae0\uff1a\u30de\u30c6\u30ea\u30a2\u30eb\u3068\u8272\u5f69\uff08\u8cea\u611f\u3068\u73fe\u8c61\u306e\u8272\u5f69\uff09<\/h2>\n            <p>\n              \u60c5\u666f\u306e\u89e3\u50cf\u5ea6\u3092\u6c7a\u5b9a\u7684\u306b\u9ad8\u3081\u308b\u300c\u5149\u306e\u53cd\u5c04\u30fb\u8868\u9762\uff08\u8cea\u611f\uff09\u300d\u3068\u3001\u4e94\u5927\u5c5e\u6027\u304a\u3088\u3073\u71b1\u306e\u6469\u64e6\u304b\u3089\u751f\u3058\u308b\u300c\u539f\u521d\u8272\u5f69\u300d\u3002\n            <\/p>\n            \n            <h3>\u25c6 \u8cea\u611f\uff08\u30de\u30c6\u30ea\u30a2\u30eb\u30fb\u30c6\u30af\u30b9\u30c1\u30e3\uff09<\/h3>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u8cea\u611f<\/th><th>\u5358\u8a9e<\/th><th>\u8aad\u307f<\/th><th>\u97f3\u97fb\u306e\u7531\u6765\u3068\u8cea\u611f\u306e\u63cf\u5199<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td>\u91d1\u5c5e\u5149\u6ca2<\/td><td><span class=\"highlight-term\">Shan<\/span><\/td><td>\u30b7\u30e3\u30f3<\/td><td>\u9271\u77f3\uff08Sha\uff09\u304c\u5149\u3092\u92ed\u304f\u8df3\u306d\u8fd4\u3059\u30e1\u30bf\u30ea\u30c3\u30af\u306a\u51b7\u305f\u3044\u93e1\u9762\u3002<\/td><\/tr>\n                <tr><td>\u7c97\u9762\u30fb\u3056\u3089\u3064\u304d<\/td><td><span class=\"highlight-term\">Shar<\/span><\/td><td>\u30b7\u30e3\u30eb<\/td><td>\u9271\u77f3\uff08Sha\uff09\u306e\u5ca9\u808c\u306e\u3088\u3046\u306b\u3001\u4e7e\u3044\u3066\u5149\u3092\u53cd\u5c04\u3057\u306a\u3044\u30e9\u30d5\u30cd\u30b9\u3002<\/td><\/tr>\n                <tr><td>\u900f\u660e\u30fb\u6c34\u6676<\/td><td><span class=\"highlight-term\">Vohril<\/span><\/td><td>\u30f4\u30a9\u30fc\u30ea\u30eb<\/td><td>\u7a7a\u6c17\uff08Vohr\uff09\u306e\u3088\u3046\u306b\u906e\u308b\u3082\u306e\u304c\u306a\u304f\u3001\u5965\u307e\u3067\u900f\u5149\u3059\u308b\u30af\u30ea\u30a2\u611f\u3002<\/td><\/tr>\n                <tr><td>\u67d4\u8edf\u30fb\u6ed1\u3089\u304b<\/td><td><span class=\"highlight-term\">Rala<\/span><\/td><td>\u30e9\u30e9<\/td><td>\u5305\u5bb9\uff08-ra\uff09\u304c\u91cd\u306a\u308a\u3001\u9732\u3092\u542b\u3093\u3060\u82b1\u5f01\u306e\u3088\u3046\u306b\u67d4\u3089\u304b\u306a\u30d9\u30eb\u30d9\u30c3\u30c8\u3002<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n\n            <h3>\u25c7 \u539f\u521d\u8272\u5f69\uff08\u30a8\u30ec\u30e1\u30f3\u30c8\u306e\u8272\u5f69\uff09<\/h3>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u8272\u5f69<\/th><th>\u5358\u8a9e<\/th><th>\u8aad\u307f<\/th><th>\u7531\u6765\u3068\u8c61\u5fb4<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td>\u9280\u30fb\u84bc\u767d<\/td><td><span class=\"highlight-term\">Sil<\/span><\/td><td>\u30b7\u30eb<\/td><td>\u9759\u5bc2\uff08Vohr\uff09\u304c\u7d50\u6676\u5316\u3057\u305f\u51b4\u3048\u305f\u6708\u3084\u96ea\u306e\u9280\u8272\u3002<\/td><\/tr>\n                <tr><td>\u91d1\u30fb\u9ec4\u91d1<\/td><td><span class=\"highlight-term\">Luma<\/span><\/td><td>\u30eb\u30de<\/td><td>\u5929\u5149\uff08Lu\uff09\u304c\u9ad8\u8cb4\u306b\u8f1d\u304f\u6696\u304b\u3044\u9ec4\u91d1\u8272\u3002<\/td><\/tr>\n                <tr><td>\u8d64\u30fb\u7dcb\u8272<\/td><td><span class=\"highlight-term\">Halma<\/span><\/td><td>\u30cf\u30eb\u30de<\/td><td>\u6469\u64e6\u3068\u71b1\uff08Hal\uff09\u304c\u5e2f\u3073\u308b\u8272\u5f69\uff08Mar\uff09\u3002\u5915\u713c\u3051\u30fb\u547d\u306e\u8840\u6f6e\u306e\u52d5\u7684\u8d64\u3002<\/td><\/tr>\n                <tr><td>\u9752\u30fb\u84bc\u78a7<\/td><td><span class=\"highlight-term\">Vodin<\/span><\/td><td>\u30f4\u30a9\u30c7\u30a3\u30f3<\/td><td>\u6d41\u4f53\uff08Vod\uff09\u306e\u6df1\u307f\u3092\u6301\u3063\u305f\u6df1\u6d77\u3084\u6e56\u306e\u6df1\u3044\u9752\u3002<\/td><\/tr>\n                <tr><td>\u7dd1\u30fb\u7fe0\u7dd1<\/td><td><span class=\"highlight-term\">Seris<\/span><\/td><td>\u30bb\u30ea\u30b9<\/td><td>\u751f\u547d\uff08Ser\uff09\u306e\u606f\u5439\u305d\u306e\u3082\u306e\u3067\u3042\u308b\u65b0\u7dd1\u306e\u7fe0\u3002<\/td><\/tr>\n                <tr><td>\u767d\u30fb\u7121\u57a2<\/td><td><span class=\"highlight-term\">Lura<\/span><\/td><td>\u30eb\u30fc\u30e9<\/td><td>\u5149\uff08Lu\uff09\u304c\u7121\u57a2\u306b\u5e83\u304c\u3063\u305f\u6fc1\u308a\u306e\u306a\u3044\u7d14\u767d\u3002<\/td><\/tr>\n                <tr><td>\u9ed2\u30fb\u6f06\u9ed2<\/td><td><span class=\"highlight-term\">Volin<\/span><\/td><td>\u30f4\u30a9\u30ea\u30f3<\/td><td>\u5f71\uff08Vol\uff09\u304c\u6c88\u307f\u8fbc\u3093\u3060\u5b8c\u5168\u306a\u308b\u6c88\u9ed9\u306e\u9ed2\u3002<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n          <\/div>\n\n          <div id=\"chap-6\" class=\"guide-section\">\n            <h2>\u7b2c6\u7ae0\uff1a\u4e09\u4f4d\u4e00\u4f53\u306e\u8b58\u5225\u63a5\u8f9e\uff08\u73fe\u8c61\u304c\u5bbf\u308b\u6b21\u5143\uff09<\/h2>\n            <p>\n              \u73fe\u8c61\u304c\u3069\u306e\u6b21\u5143\uff08\u9818\u57df\uff09\u3067\u8d77\u304d\u3066\u3044\u308b\u306e\u304b\u3092\u6c7a\u5b9a\u3057\u3001\u610f\u5473\u3092\u30af\u30ea\u30a2\u306b\u3059\u308b3\u3064\u306e\u63a5\u8f9e\u3002\n            <\/p>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u63a5\u8f9e<\/th><th>\u8aad\u307f<\/th><th>\u6b21\u5143<\/th><th>\u5177\u4f53\u4f8b\uff08Vod-mar \u306e\u5834\u5408\uff09<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr>\n                  <td><span class=\"highlight-term\">-en<\/span><\/td>\n                  <td>\u30a8\u30f3<\/td>\n                  <td>\u3010\u5185\u9762\u30fb\u5fc3\u3011\u7cbe\u795e\u3001\u601d\u8003\u3001\u5185\u306a\u308b\u611f\u60c5\u306e\u5834<\/td>\n                  <td><strong>Vod-mar-en<\/strong>\uff1a\u80f8\u3092\u7de0\u3081\u4ed8\u3051\u308b\u300c\u60b2\u54c0\u30fb\u5207\u306a\u3055\u300d<\/td>\n                <\/tr>\n                <tr>\n                  <td><span class=\"highlight-term\">-ur<\/span><\/td>\n                  <td>\u30a6\u30eb<\/td>\n                  <td>\u3010\u5668\u30fb\u53d7\u5bb9\u4f53\u3011\u73fe\u8c61\u3092\u7559\u3081\u308b\u500b\u5225\u306e\u5668\uff08\u77b3\u30fb\u77f3\u7891\u30fb\u82b1\u5f01\uff09<\/td>\n                  <td><strong>Vod-mar-ur<\/strong>\uff1a\u77b3\u304b\u3089\u96f6\u308c\u843d\u3061\u308b\u300c\u6d99\u30fb\u306c\u304f\u3082\u308a\u306e\u96eb\u300d<\/td>\n                <\/tr>\n                <tr>\n                  <td><span class=\"highlight-term\">-al<\/span><\/td>\n                  <td>\u30a2\u30eb<\/td>\n                  <td>\u3010\u5916\u754c\u30fb\u4e16\u754c\u3011\u5916\u306b\u5e83\u304c\u308b\u81ea\u7136\u3001\u5927\u6c17\u3001\u98a8\u666f\u3001\u7a7a\u9593<\/td>\n                  <td><strong>Vod-mar-al<\/strong>\uff1a\u5915\u66ae\u308c\u306b\u67d3\u307e\u308b\u300c\u5915\u6ce2\u30fb\u8272\u4ed8\u304f\u6c34\u305f\u307e\u308a\u300d<\/td>\n                <\/tr>\n              <\/tbody>\n            <\/table><\/div>\n          <\/div>\n\n          <div id=\"chap-7\" class=\"guide-section\">\n            <h2>\u7b2c7\u7ae0\uff1a\u4e8c\u91cd\u6642\u9593\u8ef8\u4f53\u7cfb\uff08\u671d\u30fb\u663c\u30fb\u5915\u30fb\u591c\u3068\u306e\u9023\u52d5\uff09<\/h2>\n            <p>\n              \u5927\u6642\u9593\u306e\u6ce2\uff08Tr- \u4f53\u7cfb\uff09\u306f\u3001\u4e00\u65e5\u306e\u592a\u967d\u306e\u5de1\u308a\uff08\u671d\u30fb\u663c\u30fb\u5915\u30fb\u591c\uff09\u3068\u81ea\u7136\u306b\u9023\u52d5\u3057\u3066\u3044\u308b\u3002\n            <\/p>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u97f3\u7d20<\/th><th>\u8aad\u307f<\/th><th>\u6642\u9593\u306e\u523b\u307f<\/th><th>\u4e00\u65e5\u306e\u60c5\u666f\u3068\u306e\u9023\u52d5<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td><span class=\"highlight-term\">Tra<\/span><\/td><td>\u30c8\u30e9<\/td><td>\u5146\u3057\u30fb\u9ece\u660e\u306e\u523b<\/td><td><strong>\u3010\u671d\u30fb\u591c\u660e\u3051\u3011<\/strong> \u5149\u304c\u5146\u3057\u3001\u4e8b\u8c61\u304c\u52d5\u304d\u51fa\u3059\u523b\u3002<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Tri<\/span><\/td><td>\u30c8\u30ea<\/td><td>\u4eca\u30fb\u9759\u6b62\u306e\u523b<\/td><td><strong>\u3010\u771f\u663c\u30fb\u73fe\u5728\u3011<\/strong> \u6642\u9593\u304c\u51db\u3068\u7559\u307e\u308b\u5149\u306e\u9802\u70b9\u3002<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Tru<\/span><\/td><td>\u30c8\u30a5\u30eb<\/td><td>\u6df1\u307e\u308a\u30fb\u60a0\u4e45\u306e\u523b<\/td><td><strong>\u3010\u5348\u5f8c\u30fb\u50be\u304d\u3011<\/strong> \u6df1\u304f\u6c88\u307f\u8fbc\u307f\u3001\u6d41\u308c\u3066\u3044\u304f\u6642\u3002<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Tre<\/span><\/td><td>\u30c8\u30ec<\/td><td>\u5faa\u74b0\u30fb\u5de1\u308a\u306e\u523b<\/td><td><strong>\u3010\u5de1\u308a\u30fb\u56e0\u679c\u3011<\/strong> \u663c\u3068\u591c\u3001\u5149\u3068\u5f71\u304c\u5165\u308c\u66ff\u308f\u308b\u6642\u3002<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">Tro<\/span><\/td><td>\u30c8\u30ed<\/td><td>\u9ec4\u660f\u30fb\u9759\u5bc2\u306e\u523b<\/td><td><strong>\u3010\u5915\u66ae\u308c\u301c\u591c\u3011<\/strong> \u3059\u3079\u3066\u304c\u6697\u304c\u308a\u3068\u9759\u5bc2\u3078\u9084\u308b\u6642\u3002<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n          <\/div>\n\n          <div id=\"chap-8\" class=\"guide-section\">\n            <h2>\u7b2c8\u7ae0\uff1a\u4fee\u98fe\u63a5\u8f9e\u30fb\u610f\u5fd7\u306e\u97f3\u7d20<\/h2>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u97f3\u7d20<\/th><th>\u8aad\u307f<\/th><th>\u4f4d\u7f6e<\/th><th>\u610f\u5473\u3068\u30cb\u30e5\u30a2\u30f3\u30b9<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td><span class=\"highlight-term\">Ze-<\/span><\/td><td>\u30bc<\/td><td>\u63a5\u982d\u8f9e<\/td><td>\u81ea\u7531\u30fb\u6d6e\u904a\uff08\u5883\u754c\u306e\u6d88\u5931\u3001\u5c5e\u6027\u3084\u675f\u7e1b\u304b\u3089\u306e\u89e3\u653e\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">re-<\/span><\/td><td>\u30ec<\/td><td>\u63a5\u982d\u8f9e<\/td><td>\u5faa\u74b0\u30fb\u56e0\u679c\uff08\u7e70\u308a\u8fd4\u3055\u308c\u308b\u56e0\u679c\u306e\u6ce2\u7d0b\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">-is<\/span><\/td><td>\u30a4\u30b9<\/td><td>\u63a5\u5c3e\u8f9e<\/td><td>\u92ed\u3044\u9f13\u52d5\u30fb\u4eca\u306e\u8a3c\uff08\u4eca\u3053\u3053\u306b\u5728\u308b\u92ed\u304d\u751f\u547d\u306e\u8a3c\u660e\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">-ra<\/span><\/td><td>\u30e9<\/td><td>\u63a5\u5c3e\u8f9e<\/td><td>\u66d6\u6627\u3067\u67d4\u3089\u304b\u306a\u62b1\u64c1\uff08\u9727\u306e\u3088\u3046\u306a\u53d7\u5bb9\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">-ice<\/span><\/td><td>\u30a4\u30bb<\/td><td>\u63a5\u5c3e\u8f9e<\/td><td>\u92ed\u304f\u51b7\u305f\u3044\u898f\u5f8b\uff08\u6c37\u306e\u3088\u3046\u306a\u53b3\u5bc6\u3055\uff09<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">-on<\/span><\/td><td>\u30aa\u30f3<\/td><td>\u63a5\u5c3e\u8f9e<\/td><td>\u6c38\u9060\u306e\u6d78\u900f\uff08\u5e83\u304c\u308a\u6e80\u3061\u3066\u3044\u304f\u610f\u5fd7\uff09<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n          <\/div>\n\n          <div id=\"chap-9\" class=\"guide-section\">\n            <h2>\u7b2c9\u7ae0\uff1a\u69cb\u6587\u6cd5\u5247\u3068\u4f5c\u4f8b\uff08\u6b4c\u30fb\u8a69\u6b4c\u30fb\u304a\u3068\u304e\u8a71\uff09<\/h2>\n            <div class=\"guide-quote\">\n              <strong>[\u5927\u6642\u9593\u306e\u6ce2] \uff0b [\u9855\u73fe\u3059\u308b\u73fe\u8c61\uff08\u8cea\u611f\u30fb\u8272\u5f69\u30fb\u5929\u5019\uff09] \uff0b nol \uff0b [\u5bbf\u308b\u5834\uff08\u81ea\u7136\u306e\u5668\uff09].<\/strong>\n            <\/div>\n\n            <h3>\u25c6 \u4f5c\u4f8b1\uff1a\u91d1\u5c5e\u5149\u6ca2\u306e\u9280\u306e\u96ea\uff08\u8cea\u611f\uff0b\u8272\uff09<\/h3>\n            <div class=\"guide-quote\">\n              <strong>Tro Shan Sil Voisel nol Shael.<\/strong><br>\n              \uff08\u30c8\u30ed\u30fb\u30b7\u30e3\u30f3\u30fb\u30b7\u30eb\u30fb\u30f4\u30a9\u30a4\u30bc\u30eb\u30fb\u30ce\u30eb\u30fb\u30b7\u30e3\u30a8\u30eb\uff09<br>\n              \u25c6 \u610f\u5473\uff1a \u9ec4\u660f\u304b\u3089\u9759\u5bc2\u3078\u3068\u9084\u308b\u523b\uff08Tro\uff09\u3001\u91d1\u5c5e\u306e\u3088\u3046\u306b\u92ed\u3044\u5149\u6ca2\u3092\u653e\u3064\u9280\u8272\u306e\u96ea\uff08Shan Sil Voisel\uff09\u304c\u3001\u5927\u5730\uff08Shael\uff09\u3078\u3068\u5bbf\u308a\u6c88\u9ed9\u3092\u523b\u3080\u3002\n            <\/div>\n\n            <h3>\u25c6 \u4f5c\u4f8b2\uff1a\u5915\u713c\u3051\u306e\u71c3\u3048\u308b\u831c\u8272<\/h3>\n            <div class=\"guide-quote\">\n              <strong>Tro Halma nol Vohral.<\/strong><br>\n              \uff08\u30c8\u30ed\u30fb\u30cf\u30eb\u30de\u30fb\u30ce\u30eb\u30fb\u30f4\u30a9\u30fc\u30e9\u30eb\uff09<br>\n              \u25c6 \u610f\u5473\uff1a \u9ec4\u660f\u306e\u523b\uff08Tro\uff09\u3001\u71b1\u3068\u6469\u64e6\u304c\u751f\u307f\u51fa\u3059\u831c\u306e\u71b1\u8272\uff08Halma\uff09\u304c\u3001\u7a7a\uff08Vohral\uff09\u3092\u67d3\u3081\u4e0a\u3052\u3066\u3044\u304f\u3002\n            <\/div>\n\n            <h3>\u25c6 \u4f5c\u4f8b3\uff1a\u900f\u304d\u901a\u308b\u5927\u7a7a\u3068\u91d1\u8272\u306e\u592a\u967d<\/h3>\n            <div class=\"guide-quote\">\n              <strong>Tra Luma Luhal nol Vohril Vohral.<\/strong><br>\n              \uff08\u30c8\u30e9\u30fb\u30eb\u30de\u30fb\u30eb\u30cf\u30eb\u30fb\u30ce\u30eb\u30fb\u30f4\u30a9\u30fc\u30ea\u30eb\u30fb\u30f4\u30a9\u30fc\u30e9\u30eb\uff09<br>\n              \u25c6 \u610f\u5473\uff1a \u9ece\u660e\u306e\u671d\uff08Tra\uff09\u3001\u9ec4\u91d1\u306e\u592a\u967d\uff08Luma Luhal\uff09\u304c\u3001\u900f\u304d\u901a\u308b\u7a7a\uff08Vohril Vohral\uff09\u3078\u3068\u9855\u73fe\u3059\u308b\u3002\n            <\/div>\n          <\/div>\n          <div id=\"chap-10\" class=\"guide-section\">\n            <h2>\u7b2c10\u7ae0\uff1a\u73fe\u8c61\u540c\u5b9a\u3068\u5b58\u5728\u5ea7\u6a19\uff08\u5668\u306e\u5b9a\u790e\uff09<\/h2>\n            <p>\n              \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u306b\u304a\u3044\u3066\u3001\u77e5\u6027\u4f53\u306e\u56fa\u6709\u540d\u8a5e\u3092\u5b89\u76f4\u306a\u30ab\u30bf\u30ab\u30ca\u97f3\u5199\u3084\u4eba\u9593\u4e2d\u5fc3\u306e\u5fc3\u7406\u8a9e\u5f59\u3067\u8868\u73fe\u3059\u308b\u3053\u3068\u306f\u7981\u3058\u3089\u308c\u307e\u3059\u3002<br>\n              \u4eba\u9593\u3084\u500b\u5225\u306e\u7cbe\u795e\u3068\u306f\u3001\u81ea\u7136\u754c\u306b\u304a\u3044\u3066<strong>\u300c\u3042\u308b\u73fe\u8c61\u304c\u5bbf\u3063\u3066\u3044\u308b\u5668\uff08\u53d7\u5bb9\u4f53\uff1a-ur\uff09\u300d<\/strong>\u306b\u4ed6\u306a\u308a\u307e\u305b\u3093\u3002<br>\n              \u771f\u540d\uff08True Name\uff09\u3068\u306f\u3001\u305d\u306e\u9818\u57df\u306b\u304a\u3044\u3066\u3044\u304b\u306a\u308b\u57fa\u5e95\u7a7a\u9593\u304c\u6c88\u6f5c\u3057\u3001\u3044\u304b\u306a\u308b\u6ce2\u52d5\u304c\u99c6\u52d5\u3057\u3001\u3044\u304b\u306a\u308b\u52d5\u614b\u30fb\u8cea\u611f\u30fb\u6b21\u5143\u30fb\u898f\u5f8b\u30fb\u6c38\u52ab\u5f62\u614b\u3092\u5fd7\u5411\u3059\u308b\u304b\u3092<strong>\u300c\u5341\u5c64\u306e\u89b3\u6e2c\u9580\u300d<\/strong>\u306b\u3088\u3063\u3066\u5ba2\u89b3\u7684\u306b\u540c\u5b9a\u3057\u305f<strong>\u300c\u7d76\u5bfe\u306e\u5b58\u5728\u5ea7\u6a19\u300d<\/strong>\u3067\u3059\u3002\n            <\/p>\n            <div class=\"guide-quote\">\n              <strong>\uff3b\u5b58\u5728\u5ea7\u6a19\uff08\u771f\u540d\uff09\u306e\u4f53\u7cfb\u7684\u69cb\u9020\uff3d<\/strong><br>\n              \uff3b\u57fa\u5e95\u73fe\u8c61\u8a9e\u5e79\uff08\u9759\u30fb\u52d5\u30fb\u52d5\u614b\u5c5e\u6027\uff09\uff3d \uff0b \uff3b\u5883\u754c\u9762\u306e\u8cea\u611f\uff08\u30de\u30c6\u30ea\u30a2\u30eb\uff09\uff3d \uff0b \uff3b\u5668\u306e\u63a5\u8f9e\uff08-onur \/ -isur \/ -altur\uff09\uff3d\n            <\/div>\n            <h3>\u25c6 \u5668\u306e\u6307\u5411\u6027\uff08\u9b42\u306e\u578b\uff09<\/h3>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u63a5\u8f9e<\/th><th>\u8aad\u307f<\/th><th>\u6982\u5ff5<\/th><th>\u5b58\u5728\u306e\u5728\u308a\u65b9<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td><span class=\"highlight-term\">-onur<\/span><\/td><td>\u30aa\u30cc\u30fc\u30eb<\/td><td>\u6c38\u9060\u30fb\u6d78\u900f\u306e\u5668<\/td><td>\u6642\u9593\u3068\u7a7a\u9593\u306e\u5883\u754c\u3092\u8d85\u3048\u3001\u4e16\u754c\u306e\u6df1\u5c64\u3078\u3068\u6c38\u52ab\u306b\u67d3\u307f\u5165\u308a\u6d78\u900f\u3057\u7d9a\u3051\u308b\u5668\u3002<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">-isur<\/span><\/td><td>\u30a4\u30b9\u30fc\u30eb<\/td><td>\u5239\u90a3\u30fb\u6975\u70b9\u306e\u5668<\/td><td>\u305d\u306e\u77ac\u9593\u3001\u305d\u306e\u7a7a\u9593\u3067\u9bae\u70c8\u306b\u9583\u304d\u97ff\u3051\u3070\u3001\u5f62\u306f\u9727\u6563\u3057\u3066\u3082\u69cb\u308f\u306a\u3044\u4e00\u56de\u6027\u306e\u5668\u3002<\/td><\/tr>\n                <tr><td><span class=\"highlight-term\">-altur<\/span><\/td><td>\u30a2\u30eb\u30c4\u30fc\u30eb<\/td><td>\u5916\u754c\u30fb\u5171\u9cf4\u306e\u5668<\/td><td>\u5df1\u306e\u4f5c\u70ba\u3092\u6d88\u3057\u3066\u900f\u660e\u306a\u93e1\u3068\u306a\u308a\u3001\u5927\u81ea\u7136\u3068\u4e16\u754c\u306e\u7f8e\u3057\u3055\u3092\u3042\u308a\u306e\u307e\u307e\u6620\u3057\u8fd4\u3059\u5668\u3002<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n          <\/div>\n\n          <div id=\"chap-11\" class=\"guide-section\">\n            <h2>\u7b2c11\u7ae0\uff1a\u539f\u5178\u89e3\u984c\u3068\u8a9e\u6e90\u306e\u9023\u9396\uff08\u7cfb\u8b5c\u306e\u54f2\u5b66\uff09<\/h2>\n            <p>\n              \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u306e\u5178\u7bc4\u306b\u523b\u307e\u308c\u308b\u8a00\u8449\u306f\u3001\u5358\u306a\u308b\u8a18\u53f7\u306e\u7d44\u307f\u5408\u308f\u305b\u3067\u306f\u306a\u304f\u3001<strong>\u300c\u5b87\u5b99\u306e\u7269\u7406\u7684\u30fb\u73fe\u8c61\u5b66\u7684\u30c9\u30e9\u30de\u300d<\/strong>\u306e\u8a18\u9332\u3067\u3059\u3002\n            <\/p>\n            <h3>1. \u539f\u5178\u89e3\u984c\uff08Exegesis\uff09<\/h3>\n            <p>\u5358\u306a\u308b\u8a9e\u7fa9\u8a33\u306b\u3068\u3069\u307e\u3089\u305a\u3001\u305d\u306e\u73fe\u8c61\u304c\u300c\u7a7a\u9593\u3001\u5149\u3001\u6642\u9593\u3001\u7269\u8cea\u300d\u306b\u5bfe\u3057\u3066\u3044\u304b\u306a\u308b\u4f5c\u7528\u3092\u53ca\u307c\u3057\u3066\u3044\u308b\u306e\u304b\u3092\u5ba2\u89b3\u7684\u306b\u8a18\u8ff0\u3059\u308b\u6563\u6587\u6ce8\u91c8\u3002<\/p>\n            <div class=\"guide-quote\">\n              \u25c6 <strong>Vohril-onur \u89e3\u984c\u4f8b<\/strong>\uff1a<br>\n              \u300c\u500b\u3068\u3057\u3066\u306e\u8f2a\u90ed\u3092\u4fdd\u3061\u306a\u304c\u3089\u3082\u5149\u3092\u5c48\u6298\u3055\u305b\u305a\u3001\u865a\u7a7a\u3068\u5185\u5916\u306e\u5883\u754c\u3092\u878d\u89e3\u3055\u305b\u305f\u89b3\u6e2c\u4f53\u3002\u73fe\u4e16\u306e\u30ce\u30a4\u30ba\u3092\u900f\u904e\u3055\u305b\u3001\u6c38\u9060\u306e\u9759\u5bc2\u3092\u5834\u306b\u7559\u3081\u308b\u5668\u3002\u300d\n            <\/div>\n            <h3>2. \u8a9e\u6e90\u306e\u9023\u9396\uff08Genealogy\uff09<\/h3>\n            <p>\u69cb\u6210\u8981\u7d20\u306e\u5358\u306a\u308b\u8db3\u3057\u7b97\uff08A + B\uff09\u3067\u306f\u306a\u304f\u3001\u300c\u306a\u305c\u305d\u306e\u8981\u7d20\u304c\u51fa\u4f1a\u3044\u3001\u3044\u304b\u306a\u308b\u5fc5\u7136\u3092\u7d4c\u3066\u305d\u306e\u8a9e\u304c\u5b9a\u790e\u3055\u308c\u305f\u306e\u304b\u300d\u3092\u660e\u793a\u3059\u308b\u8d77\u6e90\u306e\u7269\u8a9e\u3002<\/p>\n            <div class=\"guide-quote\">\n              \u25c7 <strong>Halma \u7cfb\u8b5c\u4f8b<\/strong>\uff1a<br>\n              \u300cHal (\u71b1\/\u6469\u64e6) \u00d7 Mar (\u8272\u5f69) \u2500\u2500 \u904b\u52d5\u306b\u3088\u308b\u6fc0\u3057\u3044\u6469\u64e6\u71b1\u304c\u51dd\u56fa\u3057\u3001\u5927\u6c17\u306b\u4e0d\u53ef\u9006\u306a\u5f69\u308a\u3068\u3057\u3066\u523b\u307e\u308c\u305f\u71b1\u60c5\u306e\u75d5\u8de1\u3002\u300d\n            <\/div>\n          <\/div>\n\n          <div id=\"chap-12\" class=\"guide-section\">\n            <h2>\u7b2c12\u7ae0\uff1a\u6570\u7406\u3068\u539f\u521d\u8272\u5f69\u306e\u7cfb\u8b5c\uff08\u5b87\u5b99\u306e\u79e9\u5e8f\uff09<\/h2>\n            <p>\n              \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u306b\u304a\u3051\u308b\u6570\u3068\u306f\u3001\u5358\u306a\u308b\u8a08\u7b97\u7528\u306e\u8a18\u53f7\u3067\u306f\u306a\u304f\u3001<strong>\u300c\u7121\uff080\uff09\u304b\u3089\u6c38\u9060\uff08\u221e\uff09\u3078\u3068\u81f3\u308b\u5b58\u5728\u306e\u6fc3\u5ea6\u3068\u5186\u74b0\u300d<\/strong>\u3092\u8c61\u5fb4\u3057\u307e\u3059\u3002\u307e\u305f\u8272\u5f69\u306f\u5149\u3068\u6469\u64e6\u304c\u7269\u8cea\u3068\u4ea4\u932f\u3059\u308b\u969b\u306b\u653e\u3064\u539f\u521d\u306e\u8f1d\u304d\u3067\u3059\u3002\n            <\/p>\n            \n            <h3>\u25c6 \u6570\u7406\u30fb\u57fa\u76e4\u8a9e\u5f59\uff08\u5b58\u5728\u306e\u968e\u68af\uff09<\/h3>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u6982\u5ff5<\/th><th>\u771f\u540d<\/th><th>\u8aad\u307f<\/th><th>\u539f\u5178\u89e3\u984c\u3068\u5b87\u5b99\u8ad6\u7684\u5f79\u5272<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td>\u7121\uff080\uff09<\/td><td><span class=\"highlight-term\">Vohr<\/span><\/td><td>\u30f4\u30a9\u30fc\u30eb<\/td><td>\u9759\u5bc2\u30fb\u7a7a\u9699\u3002\u3044\u304b\u306a\u308b\u593e\u96d1\u3082\u904b\u52d5\u3082\u5b58\u5728\u3057\u306a\u3044\u539f\u521d\u306e\u771f\u7a7a\u3002\u3059\u3079\u3066\u306e\u73fe\u8c61\u304c\u305d\u3053\u304b\u3089\u751f\u307e\u308c\u3001\u305d\u3053\u3078\u9084\u308b\u7121\u9650\u306e\u53d7\u5bb9\u570f\u3002<\/td><\/tr>\n                <tr><td>\u5358\uff081\uff09<\/td><td><span class=\"highlight-term\">-is<\/span><\/td><td>\u30a4\u30b9<\/td><td>\u92ed\u304d\u70b9\u30fb\u4e00\u6ef4\u3002\u7121\u306e\u9759\u5bc2\u3092\u7a7f\u3063\u3066\u751f\u3058\u305f\u6700\u521d\u306e\u4e00\u70b9\u3001\u3042\u308b\u3044\u306f\u751f\u547d\u306e\u9bae\u70c8\u306a\u4e00\u62cd\u3002\u5b64\u9ad8\u306e\u5b58\u5728\u8a3c\u660e\u3002<\/td><\/tr>\n                <tr><td>\u53cc\uff082\uff09<\/td><td><span class=\"highlight-term\">Hal<\/span><\/td><td>\u30cf\u30eb<\/td><td>\u4e8c\u5f8b\u306e\u6469\u64e6\u30fb\u5bfe\u3002\u4e8c\u3064\u306e\u898f\u5f8b\u3084\u6975\u6027\u304c\u6fc0\u7a81\u3057\u3001\u71b1\u3068\u5883\u754c\u3092\u751f\u307f\u51fa\u3059\u52d5\u7684\u306a\u5bfe\u7acb\u3068\u4ea4\u308f\u308a\u3002<\/td><\/tr>\n                <tr><td>\u5168\uff085\uff09<\/td><td><span class=\"highlight-term\">Sel-Vohr<\/span><\/td><td>\u30bb\u30eb\u30fb\u30f4\u30a9\u30fc\u30eb<\/td><td>\u4e94\u5927\u5c5e\u6027\u306e\u8abf\u548c\u3002\u4e94\u5143\u7d20\uff08Vohr, Lu, Ser, Vod, Sha\uff09\u304c\u5b8c\u5168\u306b\u8abf\u548c\u3057\u3001\u6b20\u843d\u306a\u304f\u5faa\u74b0\u3059\u308b\u81f3\u9ad8\u306e\u5186\u74b0\u3002<\/td><\/tr>\n                <tr><td>\u7121\u6570\uff08\u221e\uff09<\/td><td><span class=\"highlight-term\">-on<\/span><\/td><td>\u30aa\u30f3<\/td><td>\u6c38\u9060\u306e\u5e83\u304c\u308a\u30fb\u6d78\u900f\u3002\u7a7a\u9593\u3068\u6642\u9593\u306e\u679c\u3066\u3092\u8d85\u3048\u3001\u3042\u3089\u3086\u308b\u6b21\u5143\u3092\u6f64\u3057\u6e80\u305f\u3057\u3066\u3044\u304f\u679c\u3066\u306a\u304d\u5e83\u304c\u308a\u3002<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n\n            <h3>\u25c7 \u539f\u521d\u8272\u5f69\uff08\u30a8\u30ec\u30e1\u30f3\u30c8\u306e\u8f1d\u8272\uff09<\/h3>\n            <div class=\"table-wrapper\"><table class=\"guide-table\">\n              <thead>\n                <tr><th>\u8272\u5f69<\/th><th>\u771f\u540d<\/th><th>\u8aad\u307f<\/th><th>\u7531\u6765\u3068\u8c61\u5fb4<\/th><\/tr>\n              <\/thead>\n              <tbody>\n                <tr><td>\u9280\u30fb\u84bc\u767d<\/td><td><span class=\"highlight-term\">Sil<\/span><\/td><td>\u30b7\u30eb<\/td><td>\u9759\u5bc2\uff08Vohr\uff09\u306e\u7d50\u6676\u8272\u3002\u51b4\u3048\u305f\u6708\u5149\u3084\u767d\u9280\u306e\u96ea\u7247\u304c\u653e\u3064\u51b7\u5fb9\u306a\u7d14\u5ea6\u3002<\/td><\/tr>\n                <tr><td>\u91d1\u30fb\u9ec4\u91d1<\/td><td><span class=\"highlight-term\">Luma<\/span><\/td><td>\u30eb\u30de<\/td><td>\u5929\u5149\uff08Lu\uff09\u306e\u8f1d\u8272\u3002\u9ad8\u5929\u3092\u7d71\u3079\u308b\u5149\u7dda\u304c\u4e07\u7269\u3092\u795d\u798f\u3059\u308b\u6696\u304b\u3044\u9ec4\u91d1\u306e\u5a01\u53b3\u3002<\/td><\/tr>\n                <tr><td>\u8d64\u30fb\u7dcb\u8272<\/td><td><span class=\"highlight-term\">Halma<\/span><\/td><td>\u30cf\u30eb\u30de<\/td><td>\u6469\u64e6\u3068\u71b1\uff08Hal\uff09\u306e\u52d5\u7684\u8272\u5f69\uff08Mar\uff09\u3002\u5915\u713c\u3051\u306b\u67d3\u307e\u308b\u5927\u6c17\u3001\u6fc0\u3057\u304f\u71c3\u3048\u76db\u308b\u547d\u306e\u8840\u6f6e\u3002<\/td><\/tr>\n                <tr><td>\u9752\u30fb\u84bc\u78a7<\/td><td><span class=\"highlight-term\">Vodin<\/span><\/td><td>\u30f4\u30a9\u30c7\u30a3\u30f3<\/td><td>\u6df1\u6df5\u306e\u6c34\u8272\uff08Vod\uff09\u3002\u5149\u306e\u5c4a\u304b\u306c\u6df1\u6d77\u3084\u591c\u9732\u306e\u5e95\u306b\u6c88\u6bbf\u3059\u308b\u6c88\u9ed9\u306e\u9752\u3002<\/td><\/tr>\n                <tr><td>\u7dd1\u30fb\u7fe0\u7dd1<\/td><td><span class=\"highlight-term\">Seris<\/span><\/td><td>\u30bb\u30ea\u30b9<\/td><td>\u751f\u547d\uff08Ser\uff09\u306e\u840c\u82bd\u8272\u3002\u96e8\u4e0a\u304c\u308a\u306e\u82d4\u3084\u65b0\u7dd1\u306e\u6728\u3005\u304c\u653e\u3064\u6e05\u6f84\u306a\u308b\u751f\u547d\u5faa\u74b0\u306e\u8f1d\u304d\u3002<\/td><\/tr>\n                <tr><td>\u767d\u30fb\u7121\u57a2<\/td><td><span class=\"highlight-term\">Lura<\/span><\/td><td>\u30eb\u30fc\u30e9<\/td><td>\u5149\uff08Lu\uff09\u306e\u7d14\u767d\u3002\u4e00\u5207\u306e\u5f71\u3092\u62d2\u7d76\u3057\u3001\u539f\u521d\u306e\u5927\u6c17\u3078\u3068\u62e1\u6563\u3059\u308b\u6fc1\u308a\u306a\u304d\u7121\u57a2\u3002<\/td><\/tr>\n                <tr><td>\u9ed2\u30fb\u6f06\u9ed2<\/td><td><span class=\"highlight-term\">Volin<\/span><\/td><td>\u30f4\u30a9\u30ea\u30f3<\/td><td>\u5f71\uff08Vol\uff09\u306e\u6c88\u9ed9\u3002\u3059\u3079\u3066\u306e\u5149\u5f69\u3092\u5df1\u306e\u5185\u90e8\u3078\u5438\u53ce\u3057\u3001\u6df1\u304d\u5b89\u3089\u304e\u3092\u4e0e\u3048\u308b\u95c7\u3002<\/td><\/tr>\n              <\/tbody>\n            <\/table><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/main>\n\n  <div id=\"toast\" class=\"toast\">\u5178\u7bc4\u306b\u8a18\u9332\u3055\u308c\u307e\u3057\u305f<\/div>\n<\/div>\n\n<script>\n\/\/ \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb \u5b9f\u884c\u30b9\u30af\u30ea\u30d7\u30c8\n\/\/ --- \u521d\u671f\u30c7\u30fc\u30bf ---\n    const initialLexicon = [\n      \/\/ \u6570\u7406\u30fb\u5b58\u5728\u57fa\u76e4\n      { \n        id: \"math-0\", type: \"math\", term: \"Vohr\", kana: \"\u30f4\u30a9\u30fc\u30eb\", \n        meaning: \"\u7121\uff080\uff09\uff1a\u9759\u5bc2\u30fb\u7a7a\u9699\u3002\u3044\u304b\u306a\u308b\u904b\u52d5\u3082\u30ce\u30a4\u30ba\u3082\u5b58\u5728\u3057\u306a\u3044\u539f\u521d\u306e\u771f\u7a7a\", \n        exegesis: \"\u3059\u3079\u3066\u306e\u4e8b\u8c61\u304c\u7acb\u3061\u73fe\u308c\u308b\u4ee5\u524d\u306e\u5b8c\u5168\u306a\u308b\u9759\u5bc2\u3067\u3042\u308a\u3001\u3059\u3079\u3066\u306e\u73fe\u8c61\u304c\u904b\u52d5\u3092\u7d42\u3048\u305f\u679c\u3066\u306b\u9084\u308b\u7121\u9650\u306e\u6bcd\u80ce\u3002\u4f55\u3082\u306e\u306b\u3082\u72af\u3055\u308c\u306c\u539f\u521d\u306e\u771f\u7a7a\u3002\",\n        genealogy: \"\u5b87\u5b99\u306e\u539f\u521d\u72b6\u614b \u2500\u2500 \u5149\u3082\u6469\u64e6\u3082\u8d77\u3053\u308b\u524d\u306e\u7d76\u5bfe\u7684\u9759\u5bc2\u3067\u3042\u308a\u3001\u4e07\u8c61\u3092\u53d7\u5bb9\u3059\u308b\u5668\u305d\u306e\u3082\u306e\u3002\",\n        components: [\"\u7121 (0)\", \"\u9759\u5bc2\u30fb\u7a7a\u6c17\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"math-1\", type: \"math\", term: \"-is\", kana: \"\u30a4\u30b9\", \n        meaning: \"\u5358\uff081\uff09\uff1a\u92ed\u304d\u70b9\u30fb\u4e00\u6ef4\u3002\u7121\u306e\u9759\u5bc2\u3092\u7a7f\u3063\u3066\u751f\u3058\u308b\u6700\u521d\u306e\u4e00\u70b9\u30fb\u751f\u547d\u306e\u9f13\u52d5\", \n        exegesis: \"\u5e83\u5927\u306a\u865a\u7a7a\u306b\u5bfe\u3057\u3001\u5fae\u5c0f\u6975\u70b9\u3068\u3057\u3066\u4eca\u307e\u3055\u306b\u523b\u307e\u308c\u305f\u4e00\u6ef4\u306e\u6ce2\u7d0b\u3002\u4ed6\u306b\u4f9d\u5b58\u305b\u306c\u5b64\u9ad8\u306e\u5b58\u5728\u8a3c\u660e\u3067\u3042\u308a\u3001\u6642\u7a7a\u306b\u304a\u3051\u308b\u4e00\u56de\u6027\u306e\u59cb\u52d5\u3002\",\n        genealogy: \"\u9759\u5bc2\u3078\u306e\u7a7f\u5b54 \u2500\u2500 \u9759\u6b62\u3057\u3066\u3044\u305f\u7a7a\u9593\u306b\u521d\u3081\u3066\u8d70\u308b\u92ed\u5229\u306a\u4e00\u62cd\u3002\u3053\u3053\u304b\u3089\u73fe\u8c61\u306e\u3059\u3079\u3066\u304c\u82bd\u751f\u3048\u308b\u3002\",\n        components: [\"\u5358 (1)\", \"\u92ed\u304d\u70b9\u30fb\u4e00\u6ef4\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"math-2\", type: \"math\", term: \"Hal\", kana: \"\u30cf\u30eb\", \n        meaning: \"\u53cc\uff082\uff09\uff1a\u4e8c\u5f8b\u306e\u6469\u64e6\u30fb\u5bfe\u3002\u4e8c\u3064\u306e\u898f\u5f8b\u304c\u885d\u7a81\u3057\u71b1\u3068\u5883\u754c\u3092\u751f\u307f\u51fa\u3059\u52d5\u614b\", \n        exegesis: \"\u76f8\u5bb9\u308c\u306c\u4e8c\u3064\u306e\u5143\u7d20\u3084\u610f\u5fd7\u304c\u63a5\u89e6\u3057\u3001\u6fc0\u3057\u3044\u6469\u64e6\u3092\u8d77\u3053\u3057\u3066\u5883\u754c\u3092\u878d\u89e3\u3055\u305b\u308b\u81e8\u754c\u70b9\u3002\u5ba2\u89b3\u4e16\u754c\u306b\u304a\u3044\u3066\u904b\u52d5\u3068\u71b1\u60c5\u3092\u751f\u307f\u51fa\u3059\u6839\u6e90\u529b\u3002\",\n        genealogy: \"\u4e8c\u6975\u306e\u885d\u7a81 \u2500\u2500 \u5358\u72ec\u306e\u9759\u6b62\u304c\u7834\u3089\u308c\u3001\u4ed6\u8005\u3068\u306e\u6469\u64e6\u306b\u3088\u3063\u3066\u71b1\u3068\u5149\u5f69\u3092\u653e\u5c04\u3057\u59cb\u3081\u305f\u56e0\u679c\u306e\u9023\u9396\u3002\",\n        components: [\"\u53cc (2)\", \"\u4e8c\u5f8b\u306e\u6469\u64e6\u30fb\u5bfe\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"math-5\", type: \"math\", term: \"Sel-Vohr\", kana: \"\u30bb\u30eb\u30fb\u30f4\u30a9\u30fc\u30eb\", \n        meaning: \"\u5168\uff085\uff09\uff1a\u4e94\u5927\u5c5e\u6027\u306e\u8abf\u548c\u3002\u4e94\u5143\u7d20\uff08\u7a7a\u6c17\u30fb\u5149\u30fb\u751f\u547d\u30fb\u6c34\u30fb\u786c\u8cea\uff09\u306e\u5b8c\u5168\u306a\u308b\u5186\u74b0\", \n        exegesis: \"\u4e16\u754c\u3092\u5f62\u4f5c\u308b\u4e94\u5927\u5143\u7d20\uff08Vohr, Lu, Ser, Vod, Sha\uff09\u304c\u4e00\u3064\u3082\u6b20\u843d\u3059\u308b\u3053\u3068\u306a\u304f\u3001\u4e92\u3044\u3092\u76f8\u751f\u30fb\u5faa\u74b0\u3055\u305b\u306a\u304c\u3089\u8abf\u548c\u3092\u4fdd\u3064\u5b87\u5b99\u306e\u5b8c\u5168\u5186\u74b0\u3002\",\n        genealogy: \"\u4e94\u5143\u7d20\u306e\u5186\u74b0 \u2500\u2500 \u9759\u5bc2\u304b\u3089\u5206\u5316\u3057\u6563\u9038\u3057\u305f\u4e07\u7269\u306e\u30a8\u30ec\u30e1\u30f3\u30c8\u304c\u3001\u5927\u6642\u9593\u306e\u6ce2\u306b\u304a\u3044\u3066\u518d\u3073\u4e00\u3064\u306e\u8abf\u548c\u3078\u3068\u7d50\u3070\u308c\u305f\u79e9\u5e8f\u3002\",\n        components: [\"\u5168 (5)\", \"\u4e94\u5927\u5c5e\u6027\u306e\u8abf\u548c\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"math-inf\", type: \"math\", term: \"-on\", kana: \"\u30aa\u30f3\", \n        meaning: \"\u7121\u6570\uff08\u221e\uff09\uff1a\u6c38\u9060\u306e\u5e83\u304c\u308a\u30fb\u6d78\u900f\u3002\u3042\u3089\u3086\u308b\u5883\u754c\u3092\u8d85\u3048\u6e80\u3061\u3066\u3044\u304f\u679c\u3066\u306a\u304d\u5e83\u304c\u308a\", \n        exegesis: \"\u5e7e\u4f55\u5b66\u7684\u306a\u9650\u754c\u3084\u6709\u9650\u306e\u6642\u9593\u3092\u8d85\u8d8a\u3057\u3001\u4e16\u754c\u306e\u6df1\u5c64\u3078\u3068\u3069\u3053\u307e\u3067\u3082\u67d3\u307f\u6e21\u308a\u6d78\u900f\u3057\u7d9a\u3051\u308b\u610f\u5fd7\u3002\u6e1b\u8870\u3092\u77e5\u3089\u306c\u6c38\u9060\u306e\u6ce2\u52d5\u3002\",\n        genealogy: \"\u6c38\u9060\u306e\u6d78\u900f \u2500\u2500 \u5c40\u6240\u7684\u306a\u73fe\u8c61\u304c\u81ea\u3089\u306e\u8f2a\u90ed\u3092\u89e3\u653e\u3057\u3001\u5168\u5b87\u5b99\u306e\u5e95\u6d41\u3078\u3068\u5883\u754c\u306a\u304f\u5e83\u304c\u308a\u7d9a\u3051\u305f\u5e30\u7d50\u3002\",\n        components: [\"\u7121\u6570 (\u221e)\", \"\u6c38\u9060\u306e\u6d78\u900f\"], created: \"2026-09-11\" \n      },\n\n      \/\/ \u539f\u521d\u8272\u5f69\n      { \n        id: \"col-sil\", type: \"color\", term: \"Sil\", kana: \"\u30b7\u30eb\", \n        meaning: \"\u9280\u30fb\u84bc\u767d\uff1a\u9759\u5bc2\uff08Vohr\uff09\u306e\u7d50\u6676\u8272\u3002\u51b4\u3048\u305f\u6708\u5149\u3084\u96ea\u7247\u304c\u653e\u3064\u51b7\u5fb9\u306a\u7d14\u5ea6\", \n        exegesis: \"\u9759\u5bc2\uff08Vohr\uff09\u304c\u51b7\u6c17\u306e\u4e2d\u3067\u7d50\u6676\u5316\u3057\u3001\u5149\u3092\u92ed\u304f\u7d14\u7c8b\u306b\u8df3\u306d\u8fd4\u3059\u51b4\u3048\u305f\u9280\u8272\u3002\u593e\u96d1\u306a\u71b1\u3092\u6301\u305f\u305a\u3001\u7814\u304e\u6f84\u307e\u3055\u308c\u305f\u6c88\u9ed9\u3092\u653e\u3064\u3002\",\n        genealogy: \"Vohr (\u9759\u5bc2) \u00d7 \u7d50\u6676 \u2500\u2500 \u97f3\u306a\u304d\u5927\u6c17\u304c\u767d\u9280\u306e\u9271\u7269\u79e9\u5e8f\u3092\u5e2f\u3073\u3001\u5929\u4f53\u306b\u51b7\u5fb9\u306a\u5149\u8f2a\u3068\u3057\u3066\u713c\u304d\u4ed8\u3044\u305f\u7d50\u6676\u8272\u3002\",\n        components: [\"\u9759\u5bc2 (Vohr)\", \"\u7d50\u6676\u8272 (\u9280)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"col-luma\", type: \"color\", term: \"Luma\", kana: \"\u30eb\u30de\", \n        meaning: \"\u91d1\u30fb\u9ec4\u91d1\uff1a\u5929\u5149\uff08Lu\uff09\u306e\u8f1d\u8272\u3002\u9ad8\u5929\u3092\u7d71\u3079\u308b\u5149\u7dda\u304c\u4e07\u7269\u3092\u795d\u798f\u3059\u308b\u6696\u304b\u3044\u9ec4\u91d1\", \n        exegesis: \"\u5929\u5149\uff08Lu\uff09\u304c\u6700\u3082\u9ad8\u8cb4\u306b\u51dd\u7e2e\u3055\u308c\u3001\u4e07\u7269\u306b\u751f\u547d\u306e\u6d3b\u52d5\u3092\u4fc3\u3059\u6696\u304b\u3044\u9ec4\u91d1\u306e\u5a01\u53b3\u3002\u95c7\u3092\u9060\u3056\u3051\u3001\u4e16\u754c\u306e\u9685\u3005\u306b\u307e\u3067\u5c4a\u304f\u81f3\u9ad8\u306e\u7167\u5c04\u3002\",\n        genealogy: \"Lu (\u5149) \u00d7 \u51dd\u7e2e \u2500\u2500 \u539f\u521d\u306e\u5149\u304c\u5206\u6563\u3059\u308b\u3053\u3068\u306a\u304f\u9ad8\u5bc6\u5ea6\u306e\u9ec4\u91d1\u5f8b\u3092\u6210\u3057\u3001\u5929\u306e\u4e2d\u5fc3\u304b\u3089\u4e16\u754c\u3092\u7167\u3089\u3057\u51fa\u3057\u305f\u8ecc\u8de1\u3002\",\n        components: [\"\u5929\u5149 (Lu)\", \"\u8f1d\u8272 (\u91d1)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"col-halma\", type: \"color\", term: \"Halma\", kana: \"\u30cf\u30eb\u30de\", \n        meaning: \"\u8d64\u30fb\u7dcb\u8272\u30fb\u831c\uff1a\u6469\u64e6\u3068\u71b1\uff08Hal\uff09\u304b\u3089\u751f\u3058\u308b\u5915\u713c\u3051\u30fb\u547d\u306e\u52d5\u7684\u8272\u5f69\uff08Mar\uff09\", \n        exegesis: \"\u52d5\u7684\u306a\u6469\u64e6\u3068\u71b1\uff08Hal\uff09\u304c\u3001\u4e0d\u53ef\u9006\u306a\u5149\u5f69\uff08Mar\uff09\u3068\u3057\u3066\u5927\u6c17\u3068\u7a7a\u9699\u306b\u713c\u304d\u4ed8\u3044\u305f\u547d\u306e\u8840\u6f6e\u3068\u5915\u713c\u3051\u306e\u7dcb\u8272\u3002\u51b7\u305f\u3044\u4e16\u754c\u306b\u71b1\u60c5\u3092\u523b\u3080\u3002\",\n        genealogy: \"Hal (\u71b1\/\u6469\u64e6) \u00d7 Mar (\u8272\u5f69) \u2500\u2500 \u904b\u52d5\u306b\u3088\u308b\u6fc0\u3057\u3044\u6469\u64e6\u71b1\u304c\u51dd\u56fa\u3057\u3001\u5927\u6c17\u306b\u4e0d\u53ef\u9006\u306a\u5f69\u308a\u3068\u3057\u3066\u523b\u307e\u308c\u305f\u71b1\u60c5\u306e\u75d5\u8de1\u3002\",\n        components: [\"\u6469\u64e6\u30fb\u71b1 (Hal)\", \"\u8272\u5f69 (Mar)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"col-vodin\", type: \"color\", term: \"Vodin\", kana: \"\u30f4\u30a9\u30c7\u30a3\u30f3\", \n        meaning: \"\u9752\u30fb\u84bc\u78a7\uff1a\u6df1\u6df5\u306e\u6c34\u8272\uff08Vod\uff09\u3002\u6df1\u6d77\u3084\u591c\u9732\u306e\u5e95\u306b\u6c88\u6bbf\u3059\u308b\u6c88\u9ed9\u306e\u9752\", \n        exegesis: \"\u6d41\u4f53\uff08Vod\uff09\u304c\u91cd\u529b\u306b\u5f93\u3063\u3066\u6700\u6df1\u90e8\u3078\u3068\u6c88\u964d\u3057\u3001\u5149\u3092\u5438\u53ce\u3057\u306a\u304c\u3089\u6e5b\u3048\u308b\u679c\u3066\u306a\u304d\u84bc\u78a7\u3002\u611f\u60c5\u3084\u8a18\u61b6\u304c\u6c88\u6bbf\u3059\u308b\u9759\u8b10\u306a\u308b\u6c34\u5e95\u306e\u8272\u3002\",\n        genealogy: \"Vod (\u6c34) \u00d7 -in (\u6c88\u964d\/\u6df1\u5ea6) \u2500\u2500 \u6563\u4e71\u3059\u308b\u6c34\u5206\u5b50\u304c\u6df1\u5c64\u306e\u5727\u529b\u306b\u3088\u3063\u3066\u91cd\u306a\u308a\u5408\u3044\u3001\u5149\u306e\u5c4a\u304b\u306c\u6df1\u6df5\u306e\u9752\u3092\u5bbf\u3057\u305f\u7cfb\u8b5c\u3002\",\n        components: [\"\u6d41\u4f53 (Vod)\", \"\u6c34\u8272 (\u9752)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"col-seris\", type: \"color\", term: \"Seris\", kana: \"\u30bb\u30ea\u30b9\", \n        meaning: \"\u7dd1\u30fb\u7fe0\u7dd1\uff1a\u751f\u547d\uff08Ser\uff09\u306e\u840c\u82bd\u8272\u3002\u96e8\u4e0a\u304c\u308a\u306e\u82d4\u3084\u65b0\u7dd1\u306e\u6728\u3005\u304c\u653e\u3064\u5faa\u74b0\u306e\u8f1d\u304d\", \n        exegesis: \"\u751f\u547d\uff08Ser\uff09\u306e\u606f\u5439\u304c\u5927\u6c17\u306e\u6c34\u5206\u3068\u967d\u5149\u3092\u53d7\u3051\u3001\u5730\u8868\u306b\u840c\u3048\u51fa\u305a\u308b\u6e05\u65b0\u306a\u308b\u7fe0\u8272\u3002\u81ea\u4ed6\u306e\u5883\u754c\u3092\u8d8a\u3048\u3066\u547c\u5438\u3092\u4ea4\u308f\u3059\u8abf\u548c\u306e\u8272\u3002\",\n        genealogy: \"Ser (\u751f\u547d) \u00d7 -is (\u840c\u82bd\/\u9f13\u52d5) \u2500\u2500 \u571f\u58cc\u306b\u7720\u308b\u751f\u547d\u306e\u7a2e\u5b50\u304c\u92ed\u304d\u4e00\u62cd\u3068\u3068\u3082\u306b\u82bd\u5439\u304d\u3001\u5927\u5730\u3092\u8986\u3046\u5faa\u74b0\u570f\u3068\u306a\u3063\u305f\u8272\u5f69\u3002\",\n        components: [\"\u751f\u547d (Ser)\", \"\u840c\u82bd\u8272 (\u7dd1)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"col-lura\", type: \"color\", term: \"Lura\", kana: \"\u30eb\u30fc\u30e9\", \n        meaning: \"\u767d\u30fb\u7121\u57a2\uff1a\u5149\uff08Lu\uff09\u304c\u7121\u57a2\u306b\u5e83\u304c\u3063\u305f\u7d14\u767d\u3002\u4e00\u5207\u306e\u5f71\u3092\u62d2\u7d76\u3059\u308b\u6fc1\u308a\u306a\u304d\u5149\u8f2a\", \n        exegesis: \"\u5929\u5149\uff08Lu\uff09\u304c\u4f55\u3082\u306e\u306b\u3082\u906e\u3089\u308c\u305a\u3001\u4e16\u754c\u5168\u4f53\u3092\u5747\u4e00\u306b\u5305\u307f\u8fbc\u3080\u6fc1\u308a\u306a\u304d\u7121\u57a2\u3002\u3059\u3079\u3066\u306e\u539f\u8272\u3092\u5305\u542b\u3057\u306a\u304c\u3089\u3082\u4f55\u8272\u306b\u3082\u67d3\u307e\u3089\u306c\u7d14\u771f\u3002\",\n        genealogy: \"Lu (\u5149) \u00d7 -ra (\u62b1\u64c1) \u2500\u2500 \u5149\u7dda\u304c\u7a7a\u9593\u306e\u5168\u65b9\u4f4d\u3078\u3068\u62e1\u6563\u3057\u3001\u3059\u3079\u3066\u306e\u5f71\u3092\u6d88\u3057\u53bb\u3063\u3066\u4e16\u754c\u3092\u7d14\u767d\u306e\u62b1\u64c1\u3067\u6e80\u305f\u3057\u305f\u59ff\u3002\",\n        components: [\"\u5149 (Lu)\", \"\u7d14\u767d (\u7121\u57a2)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"col-volin\", type: \"color\", term: \"Volin\", kana: \"\u30f4\u30a9\u30ea\u30f3\", \n        meaning: \"\u9ed2\u30fb\u6f06\u9ed2\uff1a\u5f71\uff08Vol\uff09\u306e\u6c88\u9ed9\u3002\u3059\u3079\u3066\u306e\u5149\u5f69\u3092\u5df1\u306e\u5185\u90e8\u3078\u5438\u53ce\u3057\u5b89\u3089\u304e\u3092\u4e0e\u3048\u308b\u95c7\", \n        exegesis: \"\u53cd\u8ee2\u3057\u305f\u5f71\uff08Vol\uff09\u304c\u4e16\u754c\u3092\u8986\u3044\u3001\u3059\u3079\u3066\u306e\u5149\u5f69\u3092\u5df1\u306e\u5965\u5e95\u3078\u3068\u5438\u53ce\u3057\u5c3d\u304f\u3057\u305f\u5b8c\u5168\u306a\u308b\u6f06\u9ed2\u3002\u4e07\u7269\u304c\u75b2\u5f0a\u3092\u7652\u3084\u3057\u7720\u308a\u306b\u5c31\u304f\u5b89\u5be7\u306e\u5e33\u3002\",\n        genealogy: \"Vol (\u5f71\/\u53cd\u8ee2) \u00d7 -in (\u6df1\u6df5) \u2500\u2500 \u5149\u306e\u7167\u5c04\u304c\u53bb\u308a\u3001\u6b8b\u7559\u3057\u305f\u5f71\u304c\u5927\u6c17\u306e\u5e95\u3078\u3068\u6c88\u307f\u8fbc\u3093\u3067\u4e16\u754c\u3092\u93ae\u3081\u305f\u6c88\u9ed9\u306e\u9ed2\u3002\",\n        components: [\"\u5f71 (Vol)\", \"\u6f06\u9ed2 (\u6c88\u9ed9)\"], created: \"2026-09-11\" \n      },\n\n      \/\/ \u81ea\u7136\u57fa\u76e4\n      { \n        id: \"base-1\", type: \"base\", term: \"Luhal\", kana: \"\u30eb\u30cf\u30eb\", \n        meaning: \"\u592a\u967d\uff1a\u5149\uff08Lu\uff09\u304c\u71b1\uff08Hal\uff09\u3092\u5e2f\u3073\u4e16\u754c\u3092\u7167\u3089\u3057\u878d\u89e3\u3055\u305b\u308b\u5929\u4f53\", \n        exegesis: \"\u5929\u5149\uff08Lu\uff09\u304c\u81ea\u3089\u306e\u904b\u52d5\u30a8\u30cd\u30eb\u30ae\u30fc\u3092\u6469\u64e6\u71b1\uff08Hal\uff09\u3078\u3068\u5909\u63db\u3057\u3001\u6697\u9ed2\u306e\u865a\u7a7a\u3092\u713c\u304d\u6eb6\u304b\u3057\u306a\u304c\u3089\u4e07\u7269\u3092\u7167\u3089\u3059\u7d76\u5bfe\u71b1\u6e90\u306e\u5ea7\u3002\",\n        genealogy: \"Lu (\u5149) \u00d7 Hal (\u71b1\/\u878d\u89e3) \u2500\u2500 \u5929\u5149\u304c\u81e8\u754c\u6469\u64e6\u3092\u8fce\u3048\u3001\u4e07\u8c61\u306e\u8f2a\u90ed\u3092\u9732\u308f\u306b\u3059\u308b\u6052\u661f\u306e\u71b1\u6e90\u3068\u3057\u3066\u5b9a\u790e\u3055\u308c\u305f\u5fc5\u7136\u306e\u75d5\u8de1\u3002\",\n        components: [\"Lu (\u5149)\", \"Hal (\u878d\u89e3\/\u71b1)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"base-2\", type: \"base\", term: \"Vohra\", kana: \"\u30f4\u30a9\u30fc\u30e9\", \n        meaning: \"\u6708\uff1a\u9759\u5bc2\uff08Vohr\uff09\u305d\u306e\u3082\u306e\u304c\u5929\u306b\u6d6e\u304b\u3073\u591c\u7a7a\u3092\u7167\u3089\u3059\u59ff\", \n        exegesis: \"\u592a\u967d\u306e\u653e\u3064\u52d5\u7684\u306a\u71b1\u3092\u5b8c\u5168\u306b\u7121\u5316\u3057\u3001\u305f\u3060\u7d14\u7c8b\u306a\u9759\u5bc2\uff08Vohr\uff09\u306e\u5149\u8f2a\u3068\u3057\u3066\u591c\u7a7a\u306b\u53d7\u5bb9\uff08-a\uff09\u3055\u308c\u305f\u3001\u51b7\u305f\u3044\u93e1\u9762\u306e\u5929\u4f53\u3002\",\n        genealogy: \"Vohr (\u9759\u5bc2) \u00d7 -a (\u53d7\u5bb9) \u2500\u2500 \u707c\u71b1\u306e\u5929\u5149\u3092\u9759\u5bc2\u306e\u865a\u7a7a\u3078\u3068\u5438\u3044\u8fbc\u307f\u3001\u67d4\u3089\u304b\u306a\u591c\u306e\u5149\u8f2a\u3068\u3057\u3066\u53d7\u5bb9\u3055\u308c\u305f\u5668\u3002\",\n        components: [\"Vohr (\u9759\u5bc2)\", \"-a (\u53d7\u5bb9)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"base-3\", type: \"base\", term: \"Luist\", kana: \"\u30eb\u30a4\u30b9\u30c8\", \n        meaning: \"\u661f\uff1a\u5149\uff08Lu\uff09\u304c\u92ed\u3044\u70b9\uff08-ist\uff09\u3068\u3057\u3066\u591c\u7a7a\u306b\u56fa\u5b9a\u3055\u308c\u305f\u5149\u306e\u91dd\", \n        exegesis: \"\u7121\u9650\u306b\u5e83\u304c\u308b\u591c\u306e\u865a\u7a7a\u306b\u5bfe\u3057\u3001\u5fae\u5c0f\u6975\u70b9\uff08-ist\uff09\u3068\u3057\u3066\u56fa\u5b9a\u3055\u308c\u305f\u5149\u306e\u91dd\u3002\u89b3\u6e2c\u8005\u306e\u8ff7\u3044\u3092\u65ad\u3061\u5207\u308b\u7d76\u5bfe\u5ea7\u6a19\u3002\",\n        genealogy: \"Lu (\u5149) \u00d7 -ist (\u56fa\u5b9a\/\u70b9) \u2500\u2500 \u63fa\u8569\u3046\u6ce2\u52d5\u304c\u591c\u7a7a\u306e\u5e7e\u4f55\u5b66\u70b9\u3078\u3068\u53ce\u675f\u3057\u3001\u6c38\u9060\u306b\u6d88\u3048\u306c\u5149\u306e\u5ea7\u6a19\u3068\u306a\u3063\u305f\u8a3c\u3002\",\n        components: [\"Lu (\u5149)\", \"-ist (\u56fa\u5b9a\/\u70b9)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"base-4\", type: \"base\", term: \"Vohral\", kana: \"\u30f4\u30a9\u30fc\u30e9\u30eb\", \n        meaning: \"\u7a7a\uff1a\u4e16\u754c\u3092\u982d\u4e0a\u304b\u3089\u5305\u3080\u5927\u3044\u306a\u308b\u9759\u5bc2\u3068\u7a7a\u6c17\u306e\u865a\u7a7a\", \n        exegesis: \"\u5730\u4e0a\u306e\u3044\u304b\u306a\u308b\u4e8b\u8c61\u306b\u3082\u5e72\u6e09\u3055\u308c\u308b\u3053\u3068\u306a\u304f\u3001\u4e16\u754c\u3092\u5916\u754c\uff08-al\uff09\u304b\u3089\u7121\u6761\u4ef6\u306b\u62b1\u64c1\u3059\u308b\u900f\u660e\u306a\u5927\u6c17\u306e\u7a79\u7abf\u3002\",\n        genealogy: \"Vohr (\u7a7a\u6c17\/\u9759\u5bc2) \u00d7 -al (\u5916\u754c) \u2500\u2500 \u539f\u521d\u306e\u9759\u5bc2\u304c\u679c\u3066\u3057\u306a\u304f\u5e83\u304c\u308a\u3001\u4e07\u7269\u304c\u547c\u5438\u3059\u308b\u305f\u3081\u306e\u5de8\u5927\u306a\u53d7\u5bb9\u570f\u3068\u306a\u3063\u305f\u5834\u3002\",\n        components: [\"Vohr (\u9759\u5bc2\/\u7a7a\u6c17)\", \"-al (\u5916\u754c)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"base-5\", type: \"base\", term: \"Vodon\", kana: \"\u30f4\u30a9\u30c9\u30f3\", \n        meaning: \"\u6d77\uff1a\u6d41\u4f53\uff08Vod\uff09\u304c\u6c38\u9060\uff08-on\uff09\u306b\u5e83\u304c\u308a\u4e16\u754c\u3092\u6d78\u3059\u5927\u6c34\", \n        exegesis: \"\u4e16\u754c\u306e\u3059\u3079\u3066\u306e\u8a18\u61b6\u3068\u611f\u60c5\u304c\u91cd\u529b\u306b\u5f93\u3063\u3066\u6c88\u6bbf\u3057\u3001\u6c34\u5e73\u7dda\u3092\u8d85\u3048\u3066\u6c38\u9060\uff08-on\uff09\u306b\u6e80\u3061\u6e80\u3061\u3066\u3044\u304f\u7121\u9650\u8cea\u91cf\u306e\u6c34\u57df\u3002\",\n        genealogy: \"Vod (\u6c34) \u00d7 -on (\u6c38\u9060\u306e\u6d78\u900f) \u2500\u2500 \u6563\u9038\u3059\u308b\u6d41\u4f53\u304c\u4e00\u7b87\u6240\u306b\u53ce\u6582\u3057\u3001\u6642\u7a7a\u306e\u5e95\u6d41\u3078\u3068\u6c38\u9060\u306b\u6e80\u3061\u5e83\u304c\u308b\u6df1\u6df5\u3092\u6210\u3057\u305f\u7cfb\u8b5c\u3002\",\n        components: [\"Vod (\u6c34)\", \"-on (\u6c38\u9060\u306e\u5e83\u304c\u308a)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"base-6\", type: \"base\", term: \"Serin\", kana: \"\u30bb\u30ea\u30f3\", \n        meaning: \"\u68ee\uff1a\u751f\u547d\uff08Ser\uff09\u306e\u606f\u5439\u304c\u5bc6\u96c6\u3057\u3066\u7720\u308b\u9759\u304b\u306a\u6a39\u6d77\", \n        exegesis: \"\u500b\u3005\u306e\u6a39\u6728\u3084\u82d4\u304c\u5bc6\u751f\uff08-in\uff09\u3057\u3001\u4e00\u3064\u306e\u5de8\u5927\u306a\u547c\u5438\u4f53\u3068\u3057\u3066\u5927\u6c17\u3092\u6d44\u5316\u3057\u7d9a\u3051\u308b\u751f\u547d\u5faa\u74b0\u306e\u8056\u57df\u3002\",\n        genealogy: \"Ser (\u751f\u547d) \u00d7 -in (\u7fa4\u751f) \u2500\u2500 \u4e00\u6ef4\u306e\u751f\u547d\u306e\u606f\u5439\u304c\u5bc6\u96c6\u3057\u3066\u6839\u3092\u5f35\u308a\u5de1\u3089\u305b\u3001\u4e16\u754c\u306e\u50b7\u3092\u7652\u3084\u3059\u5faa\u74b0\u570f\u3068\u306a\u3063\u305f\u8a18\u9332\u3002\",\n        components: [\"Ser (\u751f\u547d)\", \"-in (\u7fa4\u751f)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"base-7\", type: \"base\", term: \"Shael\", kana: \"\u30b7\u30e3\u30a8\u30eb\", \n        meaning: \"\u5927\u5730\uff1a\u786c\u8cea\uff08Sha\uff09\u304c\u5916\u754c\uff08-al\uff09\u3092\u652f\u3048\u308b\u4e0d\u52d5\u306e\u571f\u53f0\u30fb\u5ca9\u76e4\", \n        exegesis: \"\u5929\u304b\u3089\u306e\u3042\u3089\u3086\u308b\u885d\u6483\u3068\u98a8\u5316\u3092\u6c88\u9ed9\u306e\u3046\u3061\u306b\u53d7\u3051\u6b62\u3081\u3001\u4e16\u754c\u306e\u571f\u53f0\u3068\u3057\u3066\u5916\u754c\uff08-al\uff09\u3092\u652f\u3048\u7d9a\u3051\u308b\u4e0d\u52d5\u306e\u5ca9\u76e4\u3002\",\n        genealogy: \"Sha (\u786c\u8cea) \u00d7 -al (\u5916\u754c) \u2500\u2500 \u6fc0\u52d5\u306e\u5143\u7d20\u885d\u7a81\u304c\u51b7\u3048\u56fa\u307e\u308a\u3001\u4e07\u8c61\u304c\u8db3\u3092\u4e0b\u308d\u3059\u305f\u3081\u306e\u4e0d\u52d5\u306e\u57fa\u5e95\u3068\u3057\u3066\u5b9a\u790e\u3055\u308c\u305f\u5b9a\u790e\u77f3\u3002\",\n        components: [\"Sha (\u786c\u8cea)\", \"-al (\u5916\u754c)\"], created: \"2026-09-11\" \n      },\n\n      \/\/ \u5929\u5019\u30fb\u4e8b\u8c61\n      { \n        id: \"weath-1\", type: \"weather\", term: \"Zel\", kana: \"\u30bc\u30eb\", \n        meaning: \"\u98a8\uff1a\u81ea\u7531\uff08Ze\uff09\u306e\u606f\u5439\u304c\u5927\u6c17\u3092\u5439\u304d\u6e21\u308b\u4e00\u9663\u306e\u6c17\u6d41\u73fe\u8c61\", \n        exegesis: \"\u3044\u304b\u306a\u308b\u5883\u754c\u3084\u969c\u5bb3\u306b\u3082\u62d8\u675f\u3055\u308c\u308b\u3053\u3068\u306a\u304f\u3001\u7a7a\u9593\u306e\u6c17\u5727\u5dee\u3092\u512a\u3057\u304f\u5747\u3059\u6c17\u4f53\u5206\u5b50\u306e\u81ea\u7531\u306a\u6d41\u52d5\u3002\",\n        genealogy: \"Ze (\u81ea\u7531) \u00d7 -l (\u6d41\u97f3) \u2500\u2500 \u9589\u585e\u3057\u305f\u5927\u6c17\u304b\u3089\u5883\u754c\u304c\u6d88\u5931\u3057\u3001\u81ea\u5728\u306a\u904b\u52d5\u3068\u3057\u3066\u89e3\u304d\u653e\u305f\u308c\u305f\u6c17\u6d41\u306e\u8a95\u751f\u3002\",\n        components: [\"Ze (\u81ea\u7531)\", \"-l (\u6d41\u97f3)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"weath-2\", type: \"weather\", term: \"Vois\", kana: \"\u30f4\u30a9\u30a4\u30b9\", \n        meaning: \"\u96e8\u30fb\u6ef4\uff1a\u6c34\u3068\u9f13\u52d5\u304c\u6eb6\u3051\u5408\u3044\u5929\u304b\u3089\u9759\u304b\u306b\u964d\u308a\u6ce8\u3050\u96e8\u97f3\", \n        exegesis: \"\u96f2\u306e\u8cea\u91cf\u304c\u91cd\u529b\u306b\u8010\u3048\u304b\u306d\u3066\u51dd\u7e2e\u3057\u3001\u5927\u6c17\u3068\u306e\u6469\u64e6\u306b\u3088\u3063\u3066\u5fae\u5c0f\u306a\u9f13\u52d5\uff08-is\uff09\u3092\u523b\u307f\u306a\u304c\u3089\u5730\u8868\u3092\u6f64\u3059\u6148\u96e8\u3002\",\n        genealogy: \"Vod (\u6c34) \u00d7 -is (\u9f13\u52d5\/\u70b9) \u2500\u2500 \u6ede\u7559\u3057\u3066\u3044\u305f\u6e7f\u6c17\u304c\u9650\u754c\u3092\u8fce\u3048\u3001\u5927\u5730\u3078\u306e\u30ea\u30ba\u30df\u30ab\u30eb\u306a\u6ef4\u3068\u3057\u3066\u843d\u4e0b\u3057\u305f\u8ecc\u8de1\u3002\",\n        components: [\"Vod (\u6c34)\", \"-is (\u9f13\u52d5)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"weath-3\", type: \"weather\", term: \"Lufir\", kana: \"\u30eb\u30d5\u30a3\u30fc\u30eb\", \n        meaning: \"\u96f7\u5149\uff1a\u92ed\u5229\u306a\u5149\u304c\u91dd\u306e\u3088\u3046\u306b\u5927\u6c17\u3092\u88c2\u3044\u3066\u7a81\u304d\u523a\u3059\u9583\u5149\", \n        exegesis: \"\u5927\u6c17\u4e2d\u306e\u96fb\u8377\u304c\u81e8\u754c\u653e\u96fb\u3092\u8d77\u3053\u3057\u3001\u4e00\u77ac\u306b\u3057\u3066\u97f3\u901f\u306e\u58c1\u3092\u7a81\u304d\u7834\u308b\u7d76\u5bfe\u7d14\u5ea6\u306e\u5149\u5203\u3002\",\n        genealogy: \"Lu (\u5149) \u00d7 Fir (\u92ed\u5229\/\u706b) \u2500\u2500 \u51dd\u7e2e\u3055\u308c\u305f\u5929\u306e\u30a8\u30cd\u30eb\u30ae\u30fc\u304c\u91dd\u306e\u3088\u3046\u306b\u5c16\u308a\u3001\u5730\u4e0a\u3092\u4e00\u9583\u3067\u5c04\u629c\u3044\u305f\u899a\u9192\u306e\u9583\u706b\u3002\",\n        components: [\"Lu (\u5149)\", \"Fir (\u92ed\u5229)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"weath-4\", type: \"weather\", term: \"Voria\", kana: \"\u30f4\u30a9\u30ea\u30a2\", \n        meaning: \"\u9727\u30fb\u96f2\uff1a\u5927\u6c17\u4e2d\u306b\u6d6e\u304b\u3076\u6de1\u304f\u767d\u3044\u30f4\u30a7\u30fc\u30eb\u306e\u3088\u3046\u306a\u6c34\u6c17\", \n        exegesis: \"\u5730\u8868\u306e\u51b7\u6c17\u3068\u5927\u6c17\u306e\u71b1\u304c\u63a5\u3059\u308b\u5883\u754c\u9762\u3067\u3001\u6c34\u304c\u6db2\u4f53\u3068\u6c17\u4f53\u306e\u3042\u308f\u3044\u306b\u7559\u307e\u308a\u5883\u754c\u3092\u878d\u304b\u3059\u30f4\u30a7\u30fc\u30eb\u3002\",\n        genealogy: \"Vod (\u6c34) \u00d7 -ra (\u62b1\u64c1) \u2500\u2500 \u6c34\u304c\u8cea\u91cf\u3092\u5fd8\u308c\u3066\u5927\u6c17\u306b\u6d6e\u904a\u3057\u3001\u8996\u754c\u306e\u8f2a\u90ed\u3092\u67d4\u3089\u304b\u304f\u5305\u307f\u8fbc\u3093\u3060\u62b1\u64c1\u306e\u60c5\u666f\u3002\",\n        components: [\"Vod (\u6c34)\", \"-ra (\u5305\u5bb9)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"weath-5\", type: \"weather\", term: \"Voisel\", kana: \"\u30f4\u30a9\u30a4\u30bc\u30eb\", \n        meaning: \"\u96ea\u30fb\u971c\uff1a\u51cd\u3066\u3064\u304f\u6c34\u304c\u7a7a\u6c17\u4e2d\u3067\u9280\u8272\u306b\u7d50\u6676\u5316\u3057\u3066\u821e\u3044\u843d\u3061\u308b\u96ea\", \n        exegesis: \"\u5927\u6c17\u306e\u71b1\u304c\u5b8c\u5168\u306b\u596a\u308f\u308c\u305f\u9759\u5bc2\u306e\u4e2d\u3067\u3001\u6c34\u84b8\u6c17\u304c\u516d\u89d2\u306e\u5e7e\u4f55\u5b66\u79e9\u5e8f\u3092\u7d50\u6676\u5316\u3055\u305b\u3066\u6c88\u9ed9\u306e\u3046\u3061\u306b\u821e\u3044\u843d\u3061\u308b\u767d\u6c37\u3002\",\n        genealogy: \"Vod (\u6c34) \u00d7 -ice (\u898f\u5f8b) \u00d7 Zel (\u98a8) \u2500\u2500 \u6c34\u306e\u6d41\u52d5\u304c\u51b7\u5fb9\u306a\u5bd2\u6c17\u306b\u51fa\u4f1a\u3044\u3001\u767d\u9280\u306e\u7d50\u6676\u79e9\u5e8f\u3068\u306a\u3063\u3066\u821e\u3044\u964d\u308a\u305f\u75d5\u8de1\u3002\",\n        components: [\"Vod (\u6c34)\", \"-ice (\u898f\u5f8b)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"weath-6\", type: \"weather\", term: \"Volun\", kana: \"\u30f4\u30a9\u30eb\u30f3\", \n        meaning: \"\u5bb5\u95c7\uff1a\u8272\u5f69\u304c\u5438\u3044\u8fbc\u307e\u308c\u9759\u5bc2\u304c\u4e16\u754c\u3092\u6e80\u305f\u3059\u591c\u306e\u6df1\u307f\", \n        exegesis: \"\u592a\u967d\u306e\u7167\u5c04\u89d2\u304c\u5730\u5e73\u7dda\u3092\u5272\u308a\u3001\u53ef\u8996\u5149\u306e\u3059\u3079\u3066\u304c\u7a7a\u9699\u306e\u5f71\uff08Vol\uff09\u3078\u3068\u6c88\u964d\u3057\u3066\u73fe\u4e16\u306e\u3056\u308f\u3081\u304d\u3092\u93ae\u3081\u308b\u5e33\u3002\",\n        genealogy: \"Vol (\u53cd\u8ee2\/\u5f71) \u00d7 -un (\u6df1\u307f) \u2500\u2500 \u5149\u304c\u53bb\u308a\u3057\u5f8c\u306b\u53d6\u308a\u6b8b\u3055\u308c\u305f\u5f71\u304c\u3001\u5927\u6c17\u306e\u5e95\u6d41\u3078\u3068\u6df1\u304f\u6c88\u307f\u8fbc\u3093\u3067\u4e16\u754c\u3092\u5305\u3093\u3060\u6df1\u6df5\u3002\",\n        components: [\"Vol (\u53cd\u8ee2\/\u5f71)\", \"-un (\u6df1\u307f)\"], created: \"2026-09-11\" \n      },\n\n      \/\/ \u8cea\u611f\u30fb\u8272\u5f69\n      { \n        id: \"tex-1\", type: \"texture\", term: \"Shan\", kana: \"\u30b7\u30e3\u30f3\", \n        meaning: \"\u91d1\u5c5e\u5149\u6ca2\u30fb\u30e1\u30bf\u30ea\u30c3\u30af\uff1a\u9271\u77f3\u304c\u5149\u3092\u92ed\u304f\u8df3\u306d\u8fd4\u3059\u51b7\u305f\u3044\u93e1\u9762\u5149\u6ca2\", \n        exegesis: \"\u9271\u77f3\u306e\u8868\u9762\u304c\u7814\u304e\u6f84\u307e\u3055\u308c\u3001\u5165\u5c04\u5149\u3092\u5185\u90e8\u306b\u7559\u3081\u305a\u5373\u5ea7\u306b\u8df3\u306d\u8fd4\u3059\u51b7\u5fb9\u306a\u93e1\u9762\u3002\u771f\u5b9f\u3092\u6b6a\u3081\u305a\u51b7\u53b3\u306b\u5c04\u629c\u304f\u5203\u306e\u6027\u8cea\u3002\",\n        genealogy: \"Sha (\u9271\u77f3) \u00d7 \u53cd\u5c04 \u2500\u2500 \u7c97\u524a\u308a\u306a\u5ca9\u808c\u304c\u7814\u304e\u6f84\u307e\u3055\u308c\u3001\u5149\u3092\u900f\u904e\u3055\u305b\u305a\u8df3\u306d\u8fd4\u3059\u51b7\u305f\u304d\u93e1\u3068\u306a\u3063\u305f\u7d50\u6676\u3002\",\n        components: [\"Sha (\u9271\u77f3)\", \"\u53cd\u5c04\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"tex-2\", type: \"texture\", term: \"Shar\", kana: \"\u30b7\u30e3\u30eb\", \n        meaning: \"\u7c97\u9762\u30fb\u30e9\u30d5\u30cd\u30b9\uff1a\u5149\u3092\u53cd\u5c04\u305b\u305a\u3056\u3089\u3064\u3044\u305f\u7121\u9aa8\u306a\u8868\u9762\", \n        exegesis: \"\u98a8\u5316\u3068\u6469\u64e6\u306e\u75d5\u8de1\u3092\u305d\u306e\u307e\u307e\u6b8b\u3057\u305f\u7d20\u6734\u306a\u7c97\u9762\u3002\u4f5c\u70ba\u3084\u865a\u98fe\u3092\u524a\u304e\u843d\u3068\u3057\u3001\u7269\u8cea\u304c\u672c\u6765\u6301\u3064\u7c97\u524a\u308a\u306a\u539f\u521d\u306e\u8cea\u91cf\u3092\u4f1d\u3048\u308b\u3002\",\n        genealogy: \"Sha (\u9271\u77f3) \u00d7 \u7c97\u9762 \u2500\u2500 \u6642\u306e\u98a8\u5316\u3092\u53d7\u3051\u6b62\u3081\u3001\u5149\u3092\u4e71\u53cd\u5c04\u3055\u305b\u306a\u304c\u3089\u3042\u308a\u306e\u307e\u307e\u4f47\u3080\u7121\u52a0\u5de5\u306e\u5730\u808c\u3002\",\n        components: [\"Sha (\u9271\u77f3)\", \"\u7c97\u9762\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"tex-3\", type: \"texture\", term: \"Vohril\", kana: \"\u30f4\u30a9\u30fc\u30ea\u30eb\", \n        meaning: \"\u900f\u660e\u30fb\u6c34\u6676\uff1a\u906e\u308b\u3082\u306e\u304c\u306a\u304f\u5965\u307e\u3067\u900f\u304d\u901a\u308b\u69d8\", \n        exegesis: \"\u5149\u3092\u5c48\u6298\u3055\u305b\u305a\u3001\u7269\u8cea\u3068\u3057\u3066\u306e\u8f2a\u90ed\u3092\u4fdd\u3061\u306a\u304c\u3089\u3082\u5411\u3053\u3046\u5074\u306e\u666f\u8272\u3092\u900f\u904e\u3055\u305b\u308b\u6f84\u660e\u3002\u593e\u96d1\u7269\u306e\u306a\u3044\u771f\u7a7a\u306e\u7d14\u5ea6\u3002\",\n        genealogy: \"Vohr (\u7a7a\u6c17) \u00d7 \u900f\u5149 \u2500\u2500 \u7269\u8cea\u3067\u3042\u308a\u306a\u304c\u3089\u7a7a\u9699\u306e\u6027\u8cea\u3092\u4fdd\u3061\u3001\u5149\u3092\u7d20\u901a\u308a\u3055\u305b\u308b\u7d14\u7c8b\u306a\u6c34\u6676\u306e\u7d50\u6676\u4f53\u3002\",\n        components: [\"Vohr (\u7a7a\u6c17)\", \"\u900f\u5149\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"tex-4\", type: \"texture\", term: \"Halma\", kana: \"\u30cf\u30eb\u30de\", \n        meaning: \"\u8d64\u30fb\u7dcb\u8272\u30fb\u831c\uff1a\u6469\u64e6\u3068\u71b1\uff08Hal\uff09\u304b\u3089\u751f\u307e\u308c\u308b\u5915\u713c\u3051\u30fb\u547d\u306e\u7dcb\u8272\", \n        exegesis: \"\u52d5\u7684\u306a\u6469\u64e6\u3068\u71b1\uff08Hal\uff09\u304c\u3001\u4e0d\u53ef\u9006\u306a\u5149\u5f69\uff08Mar\uff09\u3068\u3057\u3066\u5927\u6c17\u3068\u7a7a\u9699\u306b\u713c\u304d\u4ed8\u3044\u305f\u547d\u306e\u8840\u6f6e\u3068\u5915\u713c\u3051\u306e\u7dcb\u8272\u3002\",\n        genealogy: \"Hal (\u71b1\/\u6469\u64e6) \u00d7 Mar (\u8272\u5f69) \u2500\u2500 \u904b\u52d5\u306b\u3088\u308b\u6fc0\u3057\u3044\u6469\u64e6\u71b1\u304c\u51dd\u56fa\u3057\u3001\u5927\u6c17\u306b\u4e0d\u53ef\u9006\u306a\u5f69\u308a\u3068\u3057\u3066\u523b\u307e\u308c\u305f\u71b1\u60c5\u306e\u75d5\u8de1\u3002\",\n        components: [\"Hal (\u71b1\/\u6469\u64e6)\", \"Mar (\u8272\u5f69)\"], created: \"2026-09-11\" \n      },\n\n      \/\/ \u69cb\u6587\uff08\u4f5c\u4f8b\uff09\n      { \n        id: \"sent-1\", type: \"sentence\", term: \"Tro Shan Sil Voisel nol Shael.\", kana: \"\u30c8\u30ed\u30fb\u30b7\u30e3\u30f3\u30fb\u30b7\u30eb\u30fb\u30f4\u30a9\u30a4\u30bc\u30eb\u30fb\u30ce\u30eb\u30fb\u30b7\u30e3\u30a8\u30eb\", \n        meaning: \"\u9ec4\u660f\u306e\u523b\uff08Tro\uff09\u3001\u91d1\u5c5e\u5149\u6ca2\u306e\u9280\u306e\u96ea\uff08Shan Sil Voisel\uff09\u304c\u3001\u5927\u5730\uff08Shael\uff09\u3078\u3068\u5bbf\u308a\u6c88\u9ed9\u3092\u523b\u3080\u3002\", \n        exegesis: \"\u4e00\u65e5\u306e\u6d3b\u52d5\u304c\u53ce\u675f\u3059\u308b\u9ec4\u660f\u306e\u7a7a\u9699\u306b\u304a\u3044\u3066\u3001\u51b7\u305f\u304d\u93e1\u9762\u3092\u5e2f\u3073\u305f\u767d\u9280\u306e\u96ea\u7247\u304c\u4e0d\u52d5\u306e\u5ca9\u76e4\u3078\u3068\u7740\u5730\u3057\u3001\u4e16\u754c\u306e\u3059\u3079\u3066\u306e\u97f3\u3092\u5438\u3044\u8fbc\u3093\u3067\u9759\u6b62\u3055\u305b\u308b\u60c5\u666f\u3002\",\n        genealogy: \"Tro (\u9ec4\u660f) \uff0b Shan Sil Voisel (\u9280\u306e\u96ea) \uff0b Shael (\u5927\u5730) \u2500\u2500 \u5149\u3068\u5f71\u306e\u5883\u754c\u306b\u304a\u3044\u3066\u3001\u51b7\u53b3\u306a\u308b\u7d50\u6676\u304c\u5927\u5730\u3068\u4ea4\u308f\u308a\u9759\u5bc2\u3092\u5b8c\u6210\u3055\u305b\u305f\u8a69\u6b4c\u3002\",\n        components: [\"Tro (\u9ec4\u660f)\", \"Shan Sil Voisel (\u9280\u306e\u96ea)\", \"Shael (\u5927\u5730)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"sent-2\", type: \"sentence\", term: \"Tra Luma Luhal nol Vohril Vohral.\", kana: \"\u30c8\u30e9\u30fb\u30eb\u30de\u30fb\u30eb\u30cf\u30eb\u30fb\u30ce\u30eb\u30fb\u30f4\u30a9\u30fc\u30ea\u30eb\u30fb\u30f4\u30a9\u30fc\u30e9\u30eb\", \n        meaning: \"\u9ece\u660e\u306e\u671d\uff08Tra\uff09\u3001\u9ec4\u91d1\u306e\u592a\u967d\uff08Luma Luhal\uff09\u304c\u3001\u900f\u304d\u901a\u308b\u7a7a\uff08Vohril Vohral\uff09\u3078\u3068\u9855\u73fe\u3059\u308b\u3002\", \n        exegesis: \"\u591c\u306e\u51b7\u6c17\u304c\u6b8b\u308b\u900f\u660e\u306a\u5927\u6c17\u570f\u306b\u5bfe\u3057\u3001\u9ec4\u91d1\u306e\u5149\u71b1\u3092\u6e5b\u3048\u305f\u592a\u967d\u304c\u81ea\u3089\u306e\u5b58\u5728\u3092\u653e\u5c04\u3057\u3001\u4e16\u754c\u306b\u6700\u521d\u306e\u5149\u5f69\u3092\u6ce8\u304e\u8fbc\u3080\u59cb\u52d5\u306e\u980c\u6b4c\u3002\",\n        genealogy: \"Tra (\u671d) \uff0b Luma Luhal (\u9ec4\u91d1\u306e\u967d) \uff0b Vohril Vohral (\u6f84\u3093\u3060\u7a7a) \u2500\u2500 \u6697\u9ed2\u306e\u9759\u5bc2\u3092\u7834\u308a\u3001\u5149\u71b1\u306e\u5929\u4f53\u304c\u6f84\u660e\u306a\u308b\u7a7a\u9699\u306b\u5bbf\u3063\u305f\u539f\u521d\u306e\u9855\u73fe\u3002\",\n        components: [\"Tra (\u671d)\", \"Luma Luhal (\u9ec4\u91d1\u306e\u592a\u967d)\", \"Vohril Vohral (\u900f\u304d\u901a\u308b\u7a7a)\"], created: \"2026-09-11\" \n      },\n\n      \/\/ \u771f\u540d\u30fb\u5668\uff08\u4f5c\u4f8b\uff09\n      { \n        id: \"soul-1\", type: \"soul\", term: \"Vohril-onur\", kana: \"\u30f4\u30a9\u30fc\u30ea\u30eb\u30fb\u30aa\u30cc\u30fc\u30eb\", \n        meaning: \"\u3010 \u7121\u97f3\u306e\u9759\u5bc2\u3092\u5bbf\u3059\u5668 \u3011 \/ \u8a69\u6b4c: Tro Vohril Vohr nol Vohral.\", \n        exegesis: \"\u500b\u3068\u3057\u3066\u306e\u8f2a\u90ed\u3092\u4fdd\u3061\u306a\u304c\u3089\u3082\u5149\u3092\u5c48\u6298\u3055\u305b\u305a\u3001\u865a\u7a7a\u3068\u5185\u5916\u306e\u5883\u754c\u3092\u878d\u89e3\u3055\u305b\u305f\u89b3\u6e2c\u4f53\u3002\u73fe\u4e16\u306e\u30ce\u30a4\u30ba\u3092\u900f\u904e\u3055\u305b\u3001\u6c38\u9060\u306e\u9759\u5bc2\u3092\u5834\u306b\u7559\u3081\u308b\u5668\u3002\",\n        genealogy: \"Vohr (\u9759\u5bc2) \u00d7 Vohril (\u900f\u660e) \u00d7 -onur (\u6c38\u9060\u306e\u5668) \u2500\u2500 \u6f84\u660e\u306a\u308b\u9759\u5bc2\u304c\u4e00\u5207\u306e\u593e\u96d1\u3092\u6392\u3057\u3001\u6c38\u52ab\u306e\u5e95\u6d41\u3078\u3068\u6d78\u900f\u3059\u308b\u5668\u3068\u3057\u3066\u53d7\u5bb9\u3055\u308c\u305f\u5ea7\u6a19\u3002\",\n        components: [\"\u73fe\u8c61: \u9759\u5bc2\u30fb\u7a7a\u9699\", \"\u8cea\u611f: Vohril (\u900f\u660e)\", \"\u5668: \u6c38\u9060\u30fb\u6d78\u900f (-onur)\"], created: \"2026-09-11\" \n      },\n      { \n        id: \"soul-2\", type: \"soul\", term: \"Seris-altur\", kana: \"\u30bb\u30ea\u30b9\u30fb\u30a2\u30eb\u30c4\u30fc\u30eb\", \n        meaning: \"\u3010 \u4e07\u8c61\u306e\u5faa\u74b0\u3092\u80b2\u3080\u5668 \u3011 \/ \u8a69\u6b4c: Tre Vohril Ser nol Serin.\", \n        exegesis: \"\u4e07\u8c61\u306e\u5faa\u74b0\uff08Ser\uff09\u3092\u5df1\u306e\u900f\u660e\u306a\u93e1\u9762\uff08-altur\uff09\u306b\u3042\u308a\u306e\u307e\u307e\u6620\u3057\u8fd4\u3059\u7121\u79c1\u306e\u5668\u3002\u30a8\u30b4\u306b\u3088\u308b\u64cd\u4f5c\u3092\u6392\u3057\u3001\u4e16\u754c\u304c\u7f8e\u3057\u304f\u8abf\u548c\u3059\u308b\u305f\u3081\u306e\u6f84\u660e\u306a\u5834\u3068\u3057\u3066\u4f47\u3080\u3002\",\n        genealogy: \"Ser (\u751f\u547d) \u00d7 Vohril (\u6f84\u660e) \u00d7 -altur (\u5171\u9cf4\u306e\u93e1) \u2500\u2500 \u6fb1\u307f\u306a\u304d\u751f\u547d\u306e\u5de1\u308a\u304c\u6f84\u3093\u3060\u6c34\u6676\u306e\u93e1\u3078\u3068\u5bbf\u308a\u3001\u4e16\u754c\u306e\u606f\u5439\u3092\u305d\u306e\u307e\u307e\u6620\u3057\u8fd4\u3059\u5668\u3068\u306a\u3063\u305f\u7cfb\u8b5c\u3002\",\n        components: [\"\u73fe\u8c61: \u751f\u547d\u30fb\u5faa\u74b0\", \"\u8cea\u611f: Vohril (\u900f\u660e)\", \"\u5668: \u5916\u754c\u30fb\u5171\u9cf4 (-altur)\"], created: \"2026-09-11\" \n      }\n    ];\n\n    const STORAGE_KEY = \"selath_vohr_lexicon_v8\";\n\n    function getStoredLexicon() {\n      const data = localStorage.getItem(STORAGE_KEY);\n      if (!data) {\n        localStorage.setItem(STORAGE_KEY, JSON.stringify(initialLexicon));\n        return initialLexicon;\n      }\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        return initialLexicon;\n      }\n    }\n\n    function saveStoredLexicon(list) {\n      localStorage.setItem(STORAGE_KEY, JSON.stringify(list));\n      renderLexicon();\n      if (typeof renderCatalogList === 'function') {\n        renderCatalogList();\n      }\n    }\n\n    \/\/ --- \u72b6\u614b\u7ba1\u7406 ---\n    let state = {\n      presetOverride: null,\n      texture: null,  \/\/ \u8cea\u611f (Shan, Shar, Vohril, Rala)\n      color: null,    \/\/ \u8272\u5f69 (Sil, Luma, Halma, Vodin, Seris, Lura, Volin)\n      primary: { term: \"Vohr\", kana: \"\u30f4\u30a9\u30fc\u30eb\", meaning: \"\u9759\u5bc2\u30fb\u7a7a\u6c17\" },\n      ext: null,\n      dimension: null,\n      affixes: [],\n      aspect: null,\n      macroTime: { term: \"Tri\", kana: \"\u30c8\u30ea\", meaning: \"\u3010\u4eca\u30fb\u771f\u663c\u306e\u523b\u3011\u6642\u9593\u304c\u51db\u3068\u6975\u307e\u308a\u9759\u6b62\u3059\u308b\u73fe\u5728\u306e\u70b9\" },\n      prep: { term: \"nol\", kana: \"\u30ce\u30eb\", meaning: \"\u301c\u306e\u4e2d\u3078 \/ \u306b\u304a\u3044\u3066\" },\n      phenomenon: { term: \"Shan Sil Voisel\", kana: \"\u30b7\u30e3\u30f3\u30fb\u30b7\u30eb\u30fb\u30f4\u30a9\u30a4\u30bc\u30eb\", meaning: \"\u91d1\u5c5e\u5149\u6ca2\u306e\u9280\u306e\u96ea\" },\n      locus: { term: \"Shael\", kana: \"\u30b7\u30e3\u30a8\u30eb\", meaning: \"\u5927\u5730\uff08\u4e0d\u52d5\u306e\u5ca9\u76e4\uff09\" }\n    };\n\n    function switchTab(tabId) {\n      document.querySelectorAll(\".tab-content\").forEach(el => el.classList.remove(\"active\"));\n      document.querySelectorAll(\".nav-btn\").forEach(el => el.classList.remove(\"active\"));\n      \n      const targetContent = document.getElementById(\"tab-\" + tabId);\n      if (targetContent) targetContent.classList.add(\"active\");\n      \n      const targetBtn = document.querySelector(`.nav-btn[data-tab=\"${tabId}\"]`);\n      if (targetBtn) {\n        targetBtn.classList.add(\"active\");\n        \/\/ \u30b9\u30de\u30db\u306e\u6a2a\u30b9\u30af\u30ed\u30fc\u30eb\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u3067\u30a2\u30af\u30c6\u30a3\u30d6\u30dc\u30bf\u30f3\u304c\u898b\u3048\u308b\u4f4d\u7f6e\u306b\u30b9\u30e0\u30fc\u30ba\u30b9\u30af\u30ed\u30fc\u30eb\n        if (targetBtn.parentElement) {\n          targetBtn.scrollIntoView({ behavior: \"smooth\", block: \"nearest\", inline: \"center\" });\n        }\n      } else if (window.event && window.event.target && window.event.target.classList.contains(\"nav-btn\")) {\n        window.event.target.classList.add(\"active\");\n      }\n\n      if (tabId === \"catalog\") {\n        renderCatalogList();\n      }\n      if (tabId === \"lexicon\") {\n        renderLexicon();\n      }\n    }\n\n    function switchTabDirect(tabId) {\n      switchTab(tabId);\n    }\n\n    \/\/ \u30d7\u30ea\u30bb\u30c3\u30c8\n    function loadPreset(term, kana, meaning, type) {\n      state.presetOverride = { term, kana, meaning, type };\n      document.getElementById(\"word-output\").textContent = term;\n      document.getElementById(\"kana-output\").textContent = kana;\n      document.getElementById(\"meaning-output\").value = meaning;\n      document.getElementById(\"breakdown-chips\").innerHTML = `<span>${type}: ${term}<\/span>`;\n\n      const found = initialLexicon.find(i => i.term === term);\n      if (found) {\n        document.getElementById(\"exegesis-output\").value = found.exegesis || \"\";\n        document.getElementById(\"genealogy-output\").textContent = found.genealogy || \"\";\n      } else {\n        document.getElementById(\"exegesis-output\").value = \"\u81ea\u7136\u754c\u306b\u304a\u3044\u3066\u7269\u8cea\u3068\u3057\u3066\u53b3\u7136\u3068\u5b58\u5728\u3059\u308b\u4e0d\u52d5\u306e\u5834\u3002\";\n        document.getElementById(\"genealogy-output\").textContent = `${term} (${type}) \u2500\u2500 \u5178\u7bc4\u81ea\u7136\u57fa\u76e4\u306e\u7d14\u8840\u771f\u540d\u3002`;\n      }\n\n      showToast(`\u300c${term}\u300d\u3092\u547c\u3073\u51fa\u3057\u307e\u3057\u305f`);\n    }\n\n    function clearPreset() {\n      state.presetOverride = null;\n      updateComposerPreview();\n    }\n\n    \/\/ \u8cea\u611f\n    function selectTexture(term, kana, meaning) {\n      state.presetOverride = null;\n      if (state.texture && state.texture.term === term) {\n        state.texture = null;\n        event.currentTarget.classList.remove(\"selected\");\n      } else {\n        state.texture = { term, kana, meaning };\n        document.querySelectorAll(\".texture-btn\").forEach(b => b.classList.remove(\"selected\"));\n        event.currentTarget.classList.add(\"selected\");\n      }\n      updateComposerPreview();\n    }\n\n    function clearTexture() {\n      state.texture = null;\n      document.querySelectorAll(\".texture-btn\").forEach(b => b.classList.remove(\"selected\"));\n      updateComposerPreview();\n    }\n\n    \/\/ \u8272\u5f69\n    function selectColor(term, kana, meaning) {\n      state.presetOverride = null;\n      if (state.color && state.color.term === term) {\n        state.color = null;\n        event.currentTarget.classList.remove(\"selected\");\n      } else {\n        state.color = { term, kana, meaning };\n        document.querySelectorAll(\".color-btn\").forEach(b => b.classList.remove(\"selected\"));\n        event.currentTarget.classList.add(\"selected\");\n      }\n      updateComposerPreview();\n    }\n\n    function clearColor() {\n      state.color = null;\n      document.querySelectorAll(\".color-btn\").forEach(b => b.classList.remove(\"selected\"));\n      updateComposerPreview();\n    }\n\n    \/\/ \u5c5e\u6027\n    function selectPrimary(term, kana, meaning) {\n      state.presetOverride = null;\n      state.primary = { term, kana, meaning };\n      document.querySelectorAll(\".attr-vohr, .attr-lu, .attr-ser, .attr-vod, .attr-sha\").forEach(b => b.classList.remove(\"selected\"));\n      event.currentTarget.classList.add(\"selected\");\n      document.getElementById(\"label-primary-selected\").textContent = `${term} (${kana})`;\n      updateComposerPreview();\n    }\n\n    function toggleExt(term, kana, meaning) {\n      state.presetOverride = null;\n      if (state.ext && state.ext.term === term) {\n        state.ext = null;\n        event.currentTarget.classList.remove(\"selected\");\n      } else {\n        state.ext = { term, kana, meaning };\n        document.querySelectorAll(\".ext-btn\").forEach(b => b.classList.remove(\"selected\"));\n        event.currentTarget.classList.add(\"selected\");\n      }\n      updateComposerPreview();\n    }\n\n    function clearExt() {\n      state.ext = null;\n      document.querySelectorAll(\".ext-btn\").forEach(b => b.classList.remove(\"selected\"));\n      updateComposerPreview();\n    }\n\n    function selectDimension(term, kana, meaning) {\n      state.presetOverride = null;\n      if (state.dimension && state.dimension.term === term) {\n        state.dimension = null;\n        event.currentTarget.classList.remove(\"selected\");\n      } else {\n        state.dimension = { term, kana, meaning };\n        document.querySelectorAll(\".dim-btn\").forEach(b => b.classList.remove(\"selected\"));\n        event.currentTarget.classList.add(\"selected\");\n      }\n      updateComposerPreview();\n    }\n\n    function clearDimension() {\n      state.dimension = null;\n      document.querySelectorAll(\".dim-btn\").forEach(b => b.classList.remove(\"selected\"));\n      updateComposerPreview();\n    }\n\n    function toggleAffix(term, kana, meaning, pos) {\n      state.presetOverride = null;\n      const idx = state.affixes.findIndex(a => a.term === term);\n      if (idx >= 0) {\n        state.affixes.splice(idx, 1);\n        event.currentTarget.classList.remove(\"selected\");\n      } else {\n        state.affixes.push({ term, kana, meaning, pos });\n        event.currentTarget.classList.add(\"selected\");\n      }\n      updateComposerPreview();\n    }\n\n    function clearAffixes() {\n      state.affixes = [];\n      document.querySelectorAll(\".affix-btn\").forEach(b => b.classList.remove(\"selected\"));\n      updateComposerPreview();\n    }\n\n    function selectAspect(term, kana, meaning) {\n      state.presetOverride = null;\n      if (state.aspect && state.aspect.term === term) {\n        state.aspect = null;\n        event.currentTarget.classList.remove(\"selected\");\n      } else {\n        state.aspect = { term, kana, meaning };\n        document.querySelectorAll(\".aspect-btn\").forEach(b => b.classList.remove(\"selected\"));\n        event.currentTarget.classList.add(\"selected\");\n      }\n      updateComposerPreview();\n    }\n\n    function clearAspect() {\n      state.aspect = null;\n      document.querySelectorAll(\".aspect-btn\").forEach(b => b.classList.remove(\"selected\"));\n      updateComposerPreview();\n    }\n\n    function updateComposerPreview() {\n      if (state.presetOverride) return;\n\n      let prefixes = state.affixes.filter(a => a.pos === \"prefix\");\n      let suffixes = state.affixes.filter(a => a.pos === \"suffix\");\n\n      let modPrefix = [];\n      let modKana = [];\n      let chipList = [];\n\n      \/\/ \u8cea\u611f\uff08\u524d\u7f6e\uff09\n      if (state.texture) {\n        modPrefix.push(state.texture.term);\n        modKana.push(state.texture.kana);\n        chipList.push(`<span>\u8cea\u611f: ${state.texture.term}<\/span>`);\n      }\n\n      \/\/ \u8272\u5f69\uff08\u524d\u7f6e\uff09\n      if (state.color) {\n        modPrefix.push(state.color.term);\n        modKana.push(state.color.kana);\n        chipList.push(`<span>\u8272\u5f69: ${state.color.term}<\/span>`);\n      }\n\n      \/\/ \u63a5\u982d\u8f9e\n      prefixes.forEach(p => {\n        modPrefix.push(p.term.replace(\/-$\/, \"\"));\n        modKana.push(p.kana);\n        chipList.push(`<span>${p.term} (${p.meaning.split(\"\uff08\")[0]})<\/span>`);\n      });\n\n      let core = state.primary.term;\n      let coreKana = state.primary.kana;\n      chipList.push(`<span>${core} (${state.primary.meaning.split(\"\uff08\")[0]})<\/span>`);\n\n      if (state.ext) {\n        core += \"-\" + state.ext.term.toLowerCase();\n        coreKana += \"\u30fb\" + state.ext.kana;\n        chipList.push(`<span>${state.ext.term} (${state.ext.meaning.split(\"\uff08\")[0]})<\/span>`);\n      }\n\n      let tailParts = [core];\n      let tailKana = [coreKana];\n\n      if (state.dimension) {\n        tailParts.push(state.dimension.term.replace(\/^-\/, \"\"));\n        tailKana.push(state.dimension.kana);\n        chipList.push(`<span>${state.dimension.term} (${state.dimension.meaning.split(\"\u3011\")[0].replace(\"\u3010\", \"\")})<\/span>`);\n      }\n\n      suffixes.forEach(s => {\n        tailParts.push(s.term.replace(\/^-\/, \"\"));\n        tailKana.push(s.kana);\n        chipList.push(`<span>${s.term} (${s.meaning.split(\"\uff08\")[0]})<\/span>`);\n      });\n\n      if (state.aspect) {\n        tailParts.push(state.aspect.term.replace(\/^-\/, \"\"));\n        tailKana.push(state.aspect.kana);\n        chipList.push(`<span>${state.aspect.term} (${state.aspect.meaning.split(\"\uff08\")[0]})<\/span>`);\n      }\n\n      let finalCoreWord = tailParts.join(\"-\");\n      let fullWord = (modPrefix.length > 0 ? modPrefix.join(\" \") + \" \" : \"\") + finalCoreWord;\n      let fullKana = (modKana.length > 0 ? modKana.join(\"\u30fb\") + \"\u30fb\" : \"\") + tailKana.join(\"\u30fb\");\n\n      let meaningString = buildPoeticMeaning();\n      let exegesisString = buildExegesis();\n      let genealogyString = buildGenealogy();\n\n      document.getElementById(\"word-output\").textContent = fullWord;\n      document.getElementById(\"kana-output\").textContent = fullKana;\n      document.getElementById(\"meaning-output\").value = meaningString;\n      document.getElementById(\"exegesis-output\").value = exegesisString;\n      document.getElementById(\"genealogy-output\").textContent = genealogyString;\n      document.getElementById(\"breakdown-chips\").innerHTML = chipList.join(\"\");\n    }\n\n    function buildPoeticMeaning() {\n      let desc = \"\";\n\n      if (state.texture) {\n        desc += `\u3010${state.texture.meaning.split(\"\u3011\")[0].replace(\"\u3010\", \"\")}\u3011\u306e\u8cea\u611f\u3092\u7e8f\u3044\u3001`;\n      }\n      if (state.color) {\n        desc += `\u3010${state.color.meaning.split(\"\u3011\")[0].replace(\"\u3010\", \"\")}\u3011\u306b\u67d3\u307e\u308a\u3001`;\n      }\n\n      let prefixes = state.affixes.filter(a => a.pos === \"prefix\");\n      let suffixes = state.affixes.filter(a => a.pos === \"suffix\");\n\n      if (prefixes.some(p => p.term.includes(\"Ze\"))) desc += \"\u5883\u754c\u3092\u8131\u3057\u3001\u81ea\u7531\u306e\u98a8\u306b\u4e57\u3063\u305f\";\n      if (prefixes.some(p => p.term.includes(\"re\"))) desc += (desc ? \"\u3001\" : \"\") + \"\u56e0\u679c\u3092\u5de1\u308a\u7e70\u308a\u8fd4\u3059\";\n\n      if (state.ext) {\n        desc += `\u3010${state.primary.meaning.split(\"\uff08\")[0]}\u3011\u304c\u3010${state.ext.meaning.split(\"\uff08\")[0]}\u3011\u3078\u3068\u6607\u83ef\u3059\u308b\u73fe\u8c61`;\n      } else {\n        desc += `\u3010${state.primary.meaning.split(\"\uff08\")[0]}\u3011\u306e\u6839\u6e90\u7684\u9855\u73fe`;\n      }\n\n      if (state.dimension) {\n        if (state.dimension.term.includes(\"en\")) desc += \"\uff3b\u5185\u9762\u30fb\u5fc3\u306e\u6b21\u5143\uff3d\";\n        if (state.dimension.term.includes(\"ur\")) desc += \"\uff3b\u53d7\u5bb9\u4f53\u30fb\u5668\u306e\u6b21\u5143\uff3d\";\n        if (state.dimension.term.includes(\"al\")) desc += \"\uff3b\u5916\u754c\u30fb\u5927\u81ea\u7136\u306e\u6b21\u5143\uff3d\";\n      }\n\n      suffixes.forEach(s => {\n        if (s.term.includes(\"is\")) desc += \"\u3002\u4eca\u3053\u3053\u306b\u523b\u307e\u308c\u308b\u92ed\u304d\u9f13\u52d5\";\n        if (s.term.includes(\"ra\")) desc += \"\u3002\u9727\u306e\u3088\u3046\u306a\u67d4\u3089\u304b\u306a\u5305\u5bb9\";\n        if (s.term.includes(\"ice\")) desc += \"\u3002\u6c37\u306e\u51b7\u5fb9\u306a\u308b\u898f\u5f8b\u3092\u5e2f\u3073\u3066\";\n        if (s.term.includes(\"on\")) desc += \"\u3002\u6c38\u9060\u306e\u9759\u5bc2\u3078\u3068\u6d78\u900f\u3057\u3066\u3044\u304f\";\n      });\n\n      if (state.aspect) {\n        if (state.aspect.term.includes(\"akt\")) desc += \"\uff08\u305d\u306e\u5146\u3057\u304c\u4eca\u307e\u3055\u306b\u82bd\u5439\u3044\u305f\u77ac\u9593\uff09\";\n        if (state.aspect.term.includes(\"ist\")) desc += \"\uff08\u7a7a\u9593\u306b\u56fa\u5b9a\u3055\u308c\u305f\u73fe\u5728\u306e\u70b9\uff09\";\n        if (state.aspect.term.includes(\"olt\")) desc += \"\uff08\u9759\u304b\u306b\u53ce\u675f\u3057\u3001\u6c88\u9ed9\u3078\u9084\u308b\u69d8\uff09\";\n      }\n\n      return desc;\n    }\n\n    function buildExegesis() {\n      let parts = [];\n      const primaryExegesis = {\n        \"Vohr\": \"\u89b3\u6e2c\u306e\u524d\u63d0\u3068\u306a\u308b\u7d76\u5bfe\u306e\u7a7a\u9699\u3002\u4ed6\u8005\u306e\u30ce\u30a4\u30ba\u3084\u904b\u52d5\u30a8\u30cd\u30eb\u30ae\u30fc\u3092\u4e00\u5207\u53cd\u5c04\u305b\u305a\u5438\u3044\u8fbc\u307f\u3001\u9b42\u306e\u5185\u5916\u3092\u9694\u3066\u308b\u5883\u754c\u3092\u771f\u7a7a\u306e\u9759\u3051\u3055\u306b\u3088\u3063\u3066\u878d\u89e3\u3055\u305b\u308b\u3002\",\n        \"Lu\": \"\u95c7\u3092\u4e0d\u53ef\u9006\u7684\u306b\u8cab\u304f\u5149\u7dda\u3002\u6fc1\u308a\u3092\u8a31\u3055\u306c\u9ad8\u3044\u632f\u52d5\u6570\u3092\u6301\u3061\u3001\u7a7a\u9593\u306b\u6f5c\u5728\u3057\u3066\u3044\u305f\u4e8b\u8c61\u306e\u8f2a\u90ed\u3092\u4e00\u77ac\u306b\u3057\u3066\u9855\u5728\u5316\u3055\u305b\u308b\u7d14\u7c8b\u306a\u6ce2\u52d5\u3002\",\n        \"Ser\": \"\u6563\u9038\u69cb\u9020\u3092\u7dad\u6301\u3057\u306a\u304c\u3089\u81ea\u5df1\u7d44\u7e54\u5316\u3092\u7e70\u308a\u8fd4\u3059\u751f\u547d\u306e\u606f\u5439\u3002\u5b64\u7acb\u3057\u305f\u5b58\u5728\u3092\u8a31\u3055\u305a\u3001\u5468\u56f2\u306e\u3042\u3089\u3086\u308b\u6ce2\u9577\u3068\u5171\u9cf4\u3057\u3066\u8abf\u548c\u306e\u5faa\u74b0\u570f\u3092\u5f62\u6210\u3059\u308b\u3002\",\n        \"Vod\": \"\u4e0d\u53ef\u9006\u306a\u5883\u754c\u7dda\u3092\u878d\u89e3\u3055\u305b\u3001\u8a18\u61b6\u3084\u60c5\u7dd2\u3092\u6df1\u5c64\u3078\u3068\u6c88\u6bbf\u3055\u305b\u308b\u53d7\u5bb9\u306e\u6d41\u4f53\u3002\u5f62\u3092\u56fa\u5b9a\u5316\u305b\u305a\u3001\u3042\u3089\u3086\u308b\u5668\u306e\u5f62\u306b\u5f93\u3044\u306a\u304c\u3089\u672c\u8cea\u3092\u4fdd\u3061\u7d9a\u3051\u308b\u3002\",\n        \"Sha\": \"\u6642\u9593\u306e\u30a8\u30f3\u30c8\u30ed\u30d4\u30fc\u306b\u6297\u3044\u3001\u53b3\u7136\u3068\u3057\u3066\u305d\u3053\u306b\u4f47\u307f\u7d9a\u3051\u308b\u786c\u8cea\u306a\u79e9\u5e8f\u3002\u4e0d\u898f\u5247\u306a\u63fa\u3089\u304e\u3092\u524a\u304e\u843d\u3068\u3057\u3001\u4e0d\u6ec5\u306e\u5e7e\u4f55\u5b66\u3068\u51b7\u5fb9\u306a\u6cd5\u5178\u3092\u7d50\u6676\u5316\u3059\u308b\u3002\"\n      };\n      const extExegesis = {\n        \"Flor\": \"\u5185\u306a\u308b\u30dd\u30c6\u30f3\u30b7\u30e3\u30eb\u304c\u81e8\u754c\u70b9\u3092\u7a81\u7834\u3057\u3001\u5236\u5fa1\u306e\u67a0\u3092\u98df\u3044\u7834\u3063\u3066\u5468\u56f2\u3092\u81ea\u3089\u306e\u8272\u5f69\u3067\u5857\u308a\u66ff\u3048\u3066\u3044\u304f\u958b\u82b1\u306e\u5954\u6d41\u3002\",\n        \"Mar\": \"\u5149\u304c\u6c34\u6ef4\u306b\u89e6\u308c\u3066\u5206\u6563\u3059\u308b\u3088\u3046\u306b\u3001\u4e7e\u3044\u305f\u7a7a\u9593\u306b\u611f\u60c5\u3068\u5fd8\u308c\u5f97\u306c\u60c5\u7dd2\u306e\u968e\u8abf\u3092\u4ed8\u4e0e\u3059\u308b\u8272\u5f69\u306e\u6ce2\u52d5\u3002\",\n        \"Ris\": \"\u6f02\u3046\u4e0d\u5b9a\u5f62\u306e\u601d\u8003\u3084\u9732\u3092\u77ac\u6642\u306b\u51cd\u7d50\u3055\u305b\u3001\u4e00\u5207\u306e\u6fc1\u308a\u3092\u6392\u3057\u305f\u7d14\u7c8b\u306a\u5e7e\u4f55\u5b66\u69cb\u9020\u3078\u3068\u53ce\u675f\u3055\u305b\u308b\u8abf\u5f8b\u306e\u5203\u3002\",\n        \"Vol\": \"\u5149\u306e\u7167\u5c04\u306b\u3088\u3063\u3066\u4e0d\u53ef\u907f\u7684\u306b\u751f\u3058\u308b\u5f71\u3002\u672c\u4f53\u304c\u53bb\u308a\u3057\u5f8c\u3082\u7a7a\u9593\u306e\u8a18\u61b6\u306b\u8272\u6fc3\u304f\u6b8b\u308a\u7d9a\u3051\u308b\u3001\u4e0d\u5728\u306e\u7f8e\u5b66\u3068\u6b8b\u97ff\u3002\",\n        \"Hal\": \"\u76f8\u5bb9\u308c\u306c\u4e8c\u3064\u306e\u898f\u5f8b\u304c\u885d\u7a81\u3057\u3001\u751f\u3058\u305f\u6469\u64e6\u71b1\u306b\u3088\u3063\u3066\u5883\u754c\u7dda\u3092\u713c\u304d\u6eb6\u304b\u3057\u3066\u3044\u304f\u4e0d\u53ef\u9006\u306a\u60c5\u71b1\u306e\u5909\u5bb9\u3002\"\n      };\n      const textureExegesis = {\n        \"Shan\": \"\u9271\u77f3\u306e\u8868\u9762\u304c\u7814\u304e\u6f84\u307e\u3055\u308c\u3001\u5165\u5c04\u5149\u3092\u5185\u90e8\u306b\u7559\u3081\u305a\u5373\u5ea7\u306b\u8df3\u306d\u8fd4\u3059\u51b7\u5fb9\u306a\u93e1\u9762\u3002\u771f\u5b9f\u3092\u6b6a\u3081\u305a\u51b7\u53b3\u306b\u5c04\u629c\u304f\u5203\u306e\u6027\u8cea\u3002\",\n        \"Shar\": \"\u98a8\u5316\u3068\u6469\u64e6\u306e\u75d5\u8de1\u3092\u305d\u306e\u307e\u307e\u6b8b\u3057\u305f\u7d20\u6734\u306a\u7c97\u9762\u3002\u4f5c\u70ba\u3084\u865a\u98fe\u3092\u524a\u304e\u843d\u3068\u3057\u3001\u7269\u8cea\u304c\u672c\u6765\u6301\u3064\u7c97\u524a\u308a\u306a\u539f\u521d\u306e\u8cea\u91cf\u3092\u4f1d\u3048\u308b\u3002\",\n        \"Vohril\": \"\u5149\u3092\u5c48\u6298\u3055\u305b\u305a\u3001\u7269\u8cea\u3068\u3057\u3066\u306e\u8f2a\u90ed\u3092\u4fdd\u3061\u306a\u304c\u3089\u3082\u5411\u3053\u3046\u5074\u306e\u666f\u8272\u3092\u900f\u904e\u3055\u305b\u308b\u6f84\u660e\u3002\u593e\u96d1\u7269\u306e\u306a\u3044\u771f\u7a7a\u306e\u7d14\u5ea6\u3002\",\n        \"Rala\": \"\u4e8b\u8c61\u306e\u885d\u7a81\u3092\u904b\u52d5\u30a8\u30cd\u30eb\u30ae\u30fc\u3054\u3068\u512a\u3057\u304f\u5438\u53ce\u3059\u308b\u30d9\u30eb\u30d9\u30c3\u30c8\u306e\u62b1\u64c1\u3002\u76f8\u624b\u306e\u92ed\u89d2\u3092\u89e3\u304b\u3057\u3001\u4e92\u3044\u306e\u5883\u754c\u3092\u66d6\u6627\u306b\u3059\u308b\u53d7\u5bb9\u3002\"\n      };\n\n      if (state.primary && primaryExegesis[state.primary.term]) {\n        parts.push(primaryExegesis[state.primary.term]);\n      }\n      if (state.ext && extExegesis[state.ext.term]) {\n        parts.push(extExegesis[state.ext.term]);\n      }\n      if (state.texture && textureExegesis[state.texture.term]) {\n        parts.push(textureExegesis[state.texture.term]);\n      }\n      if (parts.length === 0) {\n        return \"\u73fe\u8c61\u304c\u5834\u306b\u5bbf\u308a\u3001\u9759\u5bc2\u306e\u4e2d\u306b\u78ba\u56fa\u305f\u308b\u5b58\u5728\u306e\u5ea7\u6a19\u3092\u523b\u3080\u3002\";\n      }\n      return parts.join(\" \");\n    }\n\n    function buildGenealogy() {\n      let crumbs = [];\n      let story = \"\";\n\n      if (state.primary) {\n        crumbs.push(`${state.primary.term} (${state.primary.meaning.split(\"\uff08\")[0]})`);\n      }\n      if (state.ext) {\n        crumbs.push(`${state.ext.term} (${state.ext.meaning.split(\"\uff08\")[0]})`);\n        story = `${state.primary.term}\u306e\u6839\u6e90\u30a8\u30cd\u30eb\u30ae\u30fc\u304c\u81e8\u754c\u3092\u8fce\u3048\u3001${state.ext.term}\u306e\u52d5\u614b\u3078\u3068\u76f8\u8ee2\u79fb\u3092\u8d77\u3053\u3057\u305f\u7cfb\u8b5c\u3002`;\n      } else {\n        story = `${state.primary.term}\u306e\u7d14\u7c8b\u306a\u308b\u6839\u6e90\u304c\u3001\u5834\u306b\u304a\u3044\u3066\u899a\u9192\u3057\u305f\u59cb\u539f\u306e\u8a18\u9332\u3002`;\n      }\n\n      if (state.texture) {\n        crumbs.unshift(`${state.texture.term} (${state.texture.meaning.split(\"\uff08\")[0]})`);\n        story += ` ${state.texture.term}\u306e\u8cea\u611f\u3092\u7e8f\u3046\u3053\u3068\u3067\u3001\u305d\u306e\u9855\u73fe\u306f\u92ed\u304f\u5b9a\u790e\u3055\u308c\u305f\u3002`;\n      }\n      if (state.color) {\n        crumbs.unshift(`${state.color.term} (${state.color.meaning.split(\"\uff08\")[0]})`);\n        story += ` \u7a7a\u9699\u306b${state.color.term}\u306e\u4e0d\u53ef\u9006\u306a\u5f69\u308a\u304c\u523b\u307e\u308c\u3066\u3044\u308b\u3002`;\n      }\n      if (state.dimension) {\n        story += ` \u4f5c\u7528\u57df\u306f${state.dimension.meaning.split(\"\u3011\")[0].replace(\"\u3010\", \"\")}\u306b\u56fa\u5b9a\u3055\u308c\u308b\u3002`;\n      }\n\n      return `${crumbs.join(\" \u00d7 \")} \u2500\u2500 ${story}`;\n    }\n\n    function saveCurrentWord() {\n      const term = document.getElementById(\"word-output\").textContent;\n      const kana = document.getElementById(\"kana-output\").textContent;\n      const meaning = document.getElementById(\"meaning-output\").value;\n      const exegesis = document.getElementById(\"exegesis-output\").value;\n      const genealogy = document.getElementById(\"genealogy-output\").textContent.trim();\n      const chips = Array.from(document.querySelectorAll(\"#breakdown-chips span\")).map(s => s.textContent);\n\n      let type = \"word\";\n      if (state.presetOverride) {\n        type = state.presetOverride.type === \"\u5929\u5019\" || state.presetOverride.type === \"\u4e8b\u8c61\" ? \"weather\" : \"base\";\n      }\n\n      const entry = {\n        id: type + \"-\" + Date.now(),\n        type: type,\n        term: term,\n        kana: kana,\n        meaning: meaning,\n        exegesis: exegesis,\n        genealogy: genealogy,\n        components: chips,\n        created: new Date().toISOString().split(\"T\")[0]\n      };\n\n      const list = getStoredLexicon();\n      list.unshift(entry);\n      saveStoredLexicon(list);\n      showToast(`\u5178\u7bc4\u306b\u523b\u307e\u308c\u307e\u3057\u305f: ${term}`);\n    }\n\n    \/\/ \u8a9e\u5f59\u30fb\u81ea\u7136\u57fa\u76e4\u306e\u9006\u5f15\u304d\u30fb\u81ea\u52d5\u89e3\u91c8\u30d8\u30eb\u30d1\u30fc\n    function lookupLexiconInfo(queryTerm) {\n      if (!queryTerm || typeof queryTerm !== \"string\") return { kana: \"\", meaning: \"\" };\n      const clean = queryTerm.trim();\n      if (!clean) return { kana: \"\", meaning: \"\" };\n\n      \/\/ \u5b9a\u5e38\u8a9e\u5f59\u30fb\u81ea\u7136\u57fa\u76e4\u30fb\u8272\u5f69\u30fb\u8cea\u611f\u30de\u30b9\u30bf\u30fc\u8f9e\u66f8\n      const MASTER_TERMS = {\n        \"shael\": { kana: \"\u30b7\u30e3\u30a8\u30eb\", meaning: \"\u5927\u5730\uff08\u4e0d\u52d5\u306e\u5ca9\u76e4\uff09\" },\n        \"vohral\": { kana: \"\u30f4\u30a9\u30fc\u30e9\u30eb\", meaning: \"\u9759\u5bc2\u306e\u5927\u7a7a\" },\n        \"luhal\": { kana: \"\u30eb\u30cf\u30eb\", meaning: \"\u592a\u967d\u30fb\u5929\u65e5\" },\n        \"serin\": { kana: \"\u30bb\u30ea\u30f3\", meaning: \"\u751f\u547d\u306e\u5927\u6a39\u30fb\u9759\u304b\u306a\u308b\u68ee\" },\n        \"vodon\": { kana: \"\u30f4\u30a9\u30c9\u30f3\", meaning: \"\u6df1\u6d77\u30fb\u5927\u6d77\" },\n        \"volun\": { kana: \"\u30f4\u30a9\u30eb\u30f3\", meaning: \"\u6df1\u6697\u306e\u5f71\u30fb\u591c\u7a7a\" },\n        \"vohra\": { kana: \"\u30f4\u30a9\u30fc\u30e9\", meaning: \"\u5929\u30fb\u865a\u7a7a\" },\n        \"luist\": { kana: \"\u30eb\u30a4\u30b9\u30c8\", meaning: \"\u661f\u5149\u30fb\u591c\u7a7a\u306e\u77ac\u304d\" },\n        \"shan\": { kana: \"\u30b7\u30e3\u30f3\", meaning: \"\u91d1\u5c5e\u5149\u6ca2\" },\n        \"shar\": { kana: \"\u30b7\u30e3\u30eb\", meaning: \"\u5fae\u5149\u30fb\u6728\u6f0f\u308c\u65e5\" },\n        \"vohril\": { kana: \"\u30f4\u30a9\u30fc\u30ea\u30eb\", meaning: \"\u900f\u304d\u901a\u308b\u6c34\u6676\" },\n        \"rala\": { kana: \"\u30e9\u30e9\", meaning: \"\u9732\u306b\u6fe1\u308c\u305f\u67d4\u8edf\" },\n        \"sil\": { kana: \"\u30b7\u30eb\", meaning: \"\u9280\u30fb\u84bc\u767d\" },\n        \"luma\": { kana: \"\u30eb\u30de\", meaning: \"\u91d1\u30fb\u9ec4\u91d1\" },\n        \"halma\": { kana: \"\u30cf\u30eb\u30de\", meaning: \"\u8d64\u30fb\u7dcb\u8272\u30fb\u831c\" },\n        \"vodin\": { kana: \"\u30f4\u30a9\u30c7\u30a3\u30f3\", meaning: \"\u9752\u30fb\u84bc\u78a7\" },\n        \"seris\": { kana: \"\u30bb\u30ea\u30b9\", meaning: \"\u7dd1\u30fb\u7fe0\u7dd1\" },\n        \"lura\": { kana: \"\u30eb\u30fc\u30e9\", meaning: \"\u767d\u30fb\u7121\u57a2\" },\n        \"volin\": { kana: \"\u30f4\u30a9\u30ea\u30f3\", meaning: \"\u9ed2\u30fb\u6f06\u9ed2\" },\n        \"vois\": { kana: \"\u30f4\u30a9\u30a4\u30b9\", meaning: \"\u96e8\u30fb\u6ef4\" },\n        \"voisel\": { kana: \"\u30f4\u30a9\u30a4\u30bc\u30eb\", meaning: \"\u96ea\u30fb\u7d50\u6676\u306e\u96e8\" },\n        \"ser-flor\": { kana: \"\u30bb\u30eb\uff1d\u30d5\u30ed\u30fc\u30eb\", meaning: \"\u54b2\u304d\u8a87\u308b\u547d\u306e\u82b1\" },\n        \"flor\": { kana: \"\u30d5\u30ed\u30fc\u30eb\", meaning: \"\u82b1\u30fb\u958b\u82b1\" },\n        \"voria\": { kana: \"\u30f4\u30a9\u30ea\u30a2\", meaning: \"\u98a8\u30fb\u85ab\u98a8\" },\n        \"vohr\": { kana: \"\u30f4\u30a9\u30fc\u30eb\", meaning: \"\u9759\u5bc2\u30fb\u7a7a\u6c17\" },\n        \"lu\": { kana: \"\u30eb\", meaning: \"\u5149\u30fb\u6ce2\u52d5\" },\n        \"ser\": { kana: \"\u30bb\u30eb\", meaning: \"\u751f\u547d\u30fb\u690d\u7269\" },\n        \"vod\": { kana: \"\u30f4\u30a9\u30c9\", meaning: \"\u6c34\u30fb\u6d41\u4f53\" },\n        \"sha\": { kana: \"\u30b7\u30e3\", meaning: \"\u5ca9\u76e4\u30fb\u9271\u77f3\" },\n        \"hal\": { kana: \"\u30cf\u30eb\", meaning: \"\u71b1\u30fb\u6469\u64e6\" },\n        \"vol\": { kana: \"\u30f4\u30a9\u30eb\", meaning: \"\u5f71\u30fb\u6c88\u9ed9\" },\n        \"is\": { kana: \"\u30a4\u30b9\", meaning: \"\u5358\u30fb\u4e00\u6ef4\" },\n        \"on\": { kana: \"\u30aa\u30f3\", meaning: \"\u7121\u6570\u30fb\u6c38\u9060\u306e\u5e83\u304c\u308a\" },\n        \"altur\": { kana: \"\u30a2\u30eb\u30c8\u30a5\u30fc\u30eb\", meaning: \"\u6607\u83ef\u30fb\u98db\u7fd4\" },\n        \"onur\": { kana: \"\u30aa\u30cc\u30fc\u30eb\", meaning: \"\u5668\u30fb\u6d78\u900f\u4f53\" },\n        \"istel\": { kana: \"\u30a4\u30b9\u30c6\u30eb\", meaning: \"\u6975\u70b9\u30fb\u51dd\u7e2e\" }\n      };\n\n      const lower = clean.toLowerCase();\n      if (MASTER_TERMS[lower]) {\n        return MASTER_TERMS[lower];\n      }\n\n      \/\/ \u4fdd\u5b58\u8f9e\u66f8\u30fb\u521d\u671f\u8f9e\u66f8\u304b\u3089\u5b8c\u5168\u4e00\u81f4\uff08\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u7121\u8996\uff09\n      const list = getStoredLexicon();\n      const exact = list.find(item => item.term.toLowerCase() === lower);\n      if (exact) {\n        return {\n          kana: exact.kana || \"\",\n          meaning: exact.meaning ? exact.meaning.replace(\/\u3010|\u3011\/g, \"\").split(\" \/ \")[0].trim() : \"\"\n        };\n      }\n\n      \/\/ \u8907\u5408\u8a9e\u306e\u5206\u89e3\u30de\u30c3\u30c1\uff08\u7a7a\u767d\u307e\u305f\u306f\u30cf\u30a4\u30d5\u30f3\u3067\u533a\u5207\u3089\u308c\u3066\u3044\u308b\u5834\u5408\uff09\n      const parts = clean.split(\/[\\s\\-\uff1d\uff1d]+\/);\n      if (parts.length > 1) {\n        let kanaList = [];\n        let meaningList = [];\n        for (const p of parts) {\n          const sub = lookupLexiconInfo(p);\n          if (sub.kana) kanaList.push(sub.kana);\n          if (sub.meaning) meaningList.push(sub.meaning.split(\"\uff08\")[0].split(\"\uff1a\")[0].trim());\n        }\n        if (kanaList.length > 0) {\n          return {\n            kana: kanaList.join(\"\u30fb\"),\n            meaning: meaningList.join(\"\u306e\")\n          };\n        }\n      }\n\n      \/\/ \u90e8\u5206\u4e00\u81f4\n      const partial = list.find(item => item.term.toLowerCase().includes(lower) || lower.includes(item.term.toLowerCase()));\n      if (partial) {\n        return {\n          kana: partial.kana || \"\",\n          meaning: partial.meaning ? partial.meaning.replace(\/\u3010|\u3011\/g, \"\").split(\" \/ \")[0].trim() : \"\"\n        };\n      }\n\n      return { kana: \"\", meaning: \"\" };\n    }\n\n    function sendToSentenceBuilder() {\n      const term = document.getElementById(\"word-output\").textContent.trim();\n      const kana = document.getElementById(\"kana-output\").textContent.trim();\n      const meaning = document.getElementById(\"meaning-output\").value.trim();\n\n      state.phenomenon = { term, kana, meaning };\n      document.getElementById(\"sentence-phenomenon\").value = term;\n      document.getElementById(\"sentence-phenomenon-desc\").textContent = `${kana} \/ ${meaning.slice(0, 35)}`;\n\n      switchTabDirect(\"sentence\");\n      updateSentencePreview();\n      showToast(`\u69cb\u6587\u30d3\u30eb\u30c0\u30fc\u3078\u300c${term}\u300d\u3092\u8ee2\u9001\u3057\u307e\u3057\u305f`);\n    }\n\n    \/\/ \u69cb\u6587\n    function selectMacroTime(term, kana, meaning) {\n      state.macroTime = { term, kana, meaning };\n      document.querySelectorAll(\".macro-btn\").forEach(b => b.classList.remove(\"selected\"));\n      if (event && event.currentTarget) {\n        event.currentTarget.classList.add(\"selected\");\n      }\n      updateSentencePreview();\n    }\n\n    function clearMacroTime() {\n      state.macroTime = null;\n      document.querySelectorAll(\".macro-btn\").forEach(b => b.classList.remove(\"selected\"));\n      updateSentencePreview();\n    }\n\n    function selectPrep(term, kana, meaning) {\n      state.prep = { term, kana, meaning };\n      document.querySelectorAll(\".prep-btn\").forEach(b => b.classList.remove(\"selected\"));\n      if (event && event.currentTarget) {\n        event.currentTarget.classList.add(\"selected\");\n      }\n      updateSentencePreview();\n    }\n\n    function onPhenomenonInput() {\n      const val = document.getElementById(\"sentence-phenomenon\").value.trim();\n      if (!state.phenomenon || state.phenomenon.term !== val) {\n        const lookup = lookupLexiconInfo(val);\n        state.phenomenon = {\n          term: val,\n          kana: lookup.kana || val,\n          meaning: lookup.meaning || \"\"\n        };\n      }\n      const descText = [state.phenomenon.kana, state.phenomenon.meaning].filter(Boolean).join(\" \/ \");\n      const descEl = document.getElementById(\"sentence-phenomenon-desc\");\n      if (descEl) descEl.textContent = descText || \"\uff08\u81ea\u7531\u5165\u529b\uff09\";\n      updateSentencePreview();\n    }\n\n    function onLocusInput() {\n      const val = document.getElementById(\"sentence-locus\").value.trim();\n      if (!state.locus || state.locus.term !== val) {\n        const lookup = lookupLexiconInfo(val);\n        state.locus = {\n          term: val,\n          kana: lookup.kana || val,\n          meaning: lookup.meaning || \"\"\n        };\n      }\n      const descText = [state.locus.kana, state.locus.meaning].filter(Boolean).join(\" \/ \");\n      const descEl = document.getElementById(\"sentence-locus-desc\");\n      if (descEl) descEl.textContent = descText || \"\uff08\u81ea\u7531\u5165\u529b\uff09\";\n      updateSentencePreview();\n    }\n\n    function setPhenomenon(val, kana, meaning) {\n      if (!meaning && kana) {\n        meaning = kana;\n        const lookup = lookupLexiconInfo(val);\n        kana = lookup.kana;\n      }\n      state.phenomenon = { term: val, kana: kana || \"\", meaning: meaning || \"\" };\n      document.getElementById(\"sentence-phenomenon\").value = val;\n      const descText = [state.phenomenon.kana, state.phenomenon.meaning].filter(Boolean).join(\" \/ \");\n      document.getElementById(\"sentence-phenomenon-desc\").textContent = descText;\n      updateSentencePreview();\n    }\n\n    function setLocus(val, kana, meaning) {\n      if (!meaning && kana) {\n        meaning = kana;\n        const lookup = lookupLexiconInfo(val);\n        kana = lookup.kana;\n      }\n      state.locus = { term: val, kana: kana || \"\", meaning: meaning || \"\" };\n      document.getElementById(\"sentence-locus\").value = val;\n      const descText = [state.locus.kana, state.locus.meaning].filter(Boolean).join(\" \/ \");\n      const descEl = document.getElementById(\"sentence-locus-desc\");\n      if (descEl) descEl.textContent = descText;\n      updateSentencePreview();\n    }\n\n    function updateSentencePreview() {\n      const phenInput = document.getElementById(\"sentence-phenomenon\").value.trim();\n      const locusInput = document.getElementById(\"sentence-locus\").value.trim();\n\n      \/\/ \u73fe\u8c61\u90e8\u306e\u60c5\u5831\u89e3\u6c7a\n      if (!state.phenomenon || state.phenomenon.term !== phenInput) {\n        const lookup = lookupLexiconInfo(phenInput);\n        state.phenomenon = {\n          term: phenInput,\n          kana: lookup.kana || phenInput,\n          meaning: lookup.meaning || \"\"\n        };\n      }\n      const phenInfo = state.phenomenon;\n      const phenDescEl = document.getElementById(\"sentence-phenomenon-desc\");\n      if (phenDescEl) {\n        const descText = [phenInfo.kana, phenInfo.meaning].filter(Boolean).join(\" \/ \");\n        phenDescEl.textContent = descText || \"\uff08\u81ea\u7531\u5165\u529b\uff09\";\n      }\n\n      \/\/ \u5bbf\u308b\u5834\u306e\u60c5\u5831\u89e3\u6c7a\n      if (!state.locus || state.locus.term !== locusInput) {\n        const lookup = lookupLexiconInfo(locusInput);\n        state.locus = {\n          term: locusInput,\n          kana: lookup.kana || locusInput,\n          meaning: lookup.meaning || \"\"\n        };\n      }\n      const locusInfo = state.locus;\n      const locusDescEl = document.getElementById(\"sentence-locus-desc\");\n      if (locusDescEl) {\n        const descText = [locusInfo.kana, locusInfo.meaning].filter(Boolean).join(\" \/ \");\n        locusDescEl.textContent = descText || \"\uff08\u81ea\u7531\u5165\u529b\uff09\";\n      }\n\n      \/\/ 1. \u6587\uff08\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\uff09\n      let parts = [];\n      if (state.macroTime && state.macroTime.term) parts.push(state.macroTime.term);\n      if (phenInfo.term) parts.push(phenInfo.term);\n      if (state.prep && state.prep.term) parts.push(state.prep.term);\n      if (locusInfo.term) parts.push(locusInfo.term);\n\n      const sentence = parts.join(\" \") + (parts.length > 0 ? \".\" : \"\");\n      document.getElementById(\"sentence-output\").textContent = sentence || \"(\u672a\u5165\u529b)\";\n\n      \/\/ 2. \u30ab\u30bf\u30ab\u30ca\u8aad\u307f\uff08\u5927\u6642\u9593\u30fb\u73fe\u8c61\u30fb\u4ecb\u5728\u6a19\u8b58\u30fb\u5bbf\u308b\u5834\u3092\u6b63\u3057\u304f\u30ab\u30bf\u30ab\u30ca\u3067\u9023\u52d5\uff09\n      let kanaParts = [];\n      if (state.macroTime && state.macroTime.kana) kanaParts.push(state.macroTime.kana);\n      if (phenInfo.kana) kanaParts.push(phenInfo.kana);\n      if (state.prep && state.prep.kana) kanaParts.push(state.prep.kana);\n      if (locusInfo.kana) kanaParts.push(locusInfo.kana);\n\n      const sentenceKana = kanaParts.join(\"\u30fb\");\n      document.getElementById(\"sentence-kana-output\").textContent = sentenceKana || \"(\u30ab\u30bf\u30ab\u30ca\u8aad\u307f\u672a\u5b9a)\";\n\n      \/\/ 3. \u65e5\u672c\u8a9e\u8a33\u30fb\u8a69\u7684\u89e3\u91c8\n      let trans = \"\";\n      \/\/ \u5927\u6642\u9593\u306e\u8a18\u8ff0\n      if (state.macroTime && state.macroTime.term) {\n        const timePart = state.macroTime.meaning.split(\"\u3011\")[0].replace(\"\u3010\", \"\").split(\"\u30fb\")[0];\n        trans += `${timePart}\u306e\u523b\uff08${state.macroTime.term}\uff09\u306b\u304a\u3044\u3066\u3001`;\n      }\n\n      \/\/ \u73fe\u8c61\u306e\u8868\u8a18\n      const cleanPhenMeaning = phenInfo.meaning ? phenInfo.meaning.replace(\/\u3010|\u3011\/g, \"\").trim() : \"\";\n      const phenLabel = cleanPhenMeaning \n        ? `${cleanPhenMeaning}\uff08${phenInfo.term}\uff09`\n        : (phenInfo.term ? `\u3010${phenInfo.term}\u3011` : \"\u4e8b\u8c61\");\n\n      \/\/ \u5bbf\u308b\u5834\u306e\u8868\u8a18\n      const cleanLocusMeaning = locusInfo.meaning ? locusInfo.meaning.replace(\/\u3010|\u3011\/g, \"\").trim() : \"\";\n      const locusLabel = cleanLocusMeaning\n        ? `${cleanLocusMeaning}\uff08${locusInfo.term}\uff09`\n        : (locusInfo.term ? `\u3010${locusInfo.term}\u3011` : \"\");\n\n      if (locusInfo.term) {\n        if (state.prep && state.prep.term === \"nol\") {\n          trans += `${phenLabel}\u304c\u3001${locusLabel}\u306b\u5bbf\u308a\u6d78\u900f\u3059\u308b\u3002`;\n        } else if (state.prep && state.prep.term === \"ar\") {\n          trans += `${phenLabel}\u304c\u3001${locusLabel}\u306e\u5f7c\u65b9\u3078\u3068\u5411\u304b\u3044\u9855\u73fe\u3059\u308b\u3002`;\n        } else {\n          trans += `${phenLabel}\u3001${locusLabel}\u306b\u73fe\u308b\u3002`;\n        }\n      } else {\n        trans += `${phenLabel}\u304c\u6b64\u51e6\u306b\u9855\u73fe\u3059\u308b\u3002`;\n      }\n\n      document.getElementById(\"sentence-trans-output\").value = trans;\n    }\n\n    function saveCurrentSentence() {\n      const term = document.getElementById(\"sentence-output\").textContent;\n      const kana = document.getElementById(\"sentence-kana-output\").textContent;\n      const meaning = document.getElementById(\"sentence-trans-output\").value;\n      const phen = state.phenomenon ? state.phenomenon.term : document.getElementById(\"sentence-phenomenon\").value;\n      const locus = state.locus ? state.locus.term : document.getElementById(\"sentence-locus\").value;\n      const phenKana = state.phenomenon ? state.phenomenon.kana : phen;\n      const locusKana = state.locus ? state.locus.kana : locus;\n\n      const entry = {\n        id: \"sent-\" + Date.now(),\n        type: \"sentence\",\n        term: term,\n        kana: kana,\n        meaning: meaning,\n        exegesis: meaning,\n        genealogy: `${state.macroTime ? state.macroTime.term : 'Tri'} (\u5927\u6642\u9593: ${state.macroTime ? state.macroTime.kana : ''}) \uff0b ${phen} (\u73fe\u8c61: ${phenKana}) \uff0b ${state.prep ? state.prep.term : 'nol'} \uff0b ${locus} (\u5834: ${locusKana}) \u2500\u2500 \u5927\u6642\u9593\u306e\u6ce2\u306b\u304a\u3044\u3066\u73fe\u8c61\u304c\u5834\u3078\u3068\u5bbf\u308a\u3001\u5ba2\u89b3\u60c5\u666f\u3068\u3057\u3066\u5b9a\u790e\u3055\u308c\u305f\u8a69\u6b4c\u306e\u7cfb\u8b5c\u3002`,\n        components: [\n          state.macroTime ? `\u5927\u6642\u9593: ${state.macroTime.term} (${state.macroTime.kana})` : \"\",\n          `\u73fe\u8c61: ${phen} (${phenKana})`,\n          `\u5834: ${locus} (${locusKana})`\n        ].filter(Boolean),\n        created: new Date().toISOString().split(\"T\")[0]\n      };\n\n      const list = getStoredLexicon();\n      list.unshift(entry);\n      saveStoredLexicon(list);\n      showToast(`\u5178\u7bc4\u306b\u6587\u3092\u8a18\u9332\u3057\u307e\u3057\u305f`);\n    }\n\n\n    \/\/ ==========================================\n    \/\/ \u25c6 \u5178\u7bc4\u76ee\u9332\uff08Catalog & Side Exegesis Pane\uff09\n    \/\/ ==========================================\n    let selectedCatalogId = null;\n\n    function getCatalogBadgeInfo(type) {\n      switch(type) {\n        case \"math\":     return { label: \"\u6570\u7406\u30fb\u57fa\u76e4\", color: \"var(--accent-gold)\", bg: \"rgba(226, 192, 122, 0.15)\" };\n        case \"color\":    return { label: \"\u539f\u521d\u8272\u5f69\",   color: \"var(--accent-red)\",  bg: \"rgba(235, 77, 75, 0.15)\" };\n        case \"base\":     return { label: \"\u81ea\u7136\u57fa\u76e4\",   color: \"var(--accent-sha)\",  bg: \"rgba(164, 176, 190, 0.15)\" };\n        case \"weather\":  return { label: \"\u5929\u5019\u30fb\u4e8b\u8c61\", color: \"var(--accent-lu)\",   bg: \"rgba(254, 211, 48, 0.15)\" };\n        case \"texture\":  return { label: \"\u8cea\u611f\",       color: \"var(--accent-silver)\", bg: \"rgba(200, 214, 229, 0.15)\" };\n        case \"sentence\": return { label: \"\u69cb\u6587\u30fb\u8a69\u6b4c\", color: \"var(--accent-vohr)\", bg: \"rgba(112, 161, 255, 0.15)\" };\n        case \"soul\":     return { label: \"\u771f\u540d\u30fb\u5668\",   color: \"var(--accent-ser)\",  bg: \"rgba(46, 213, 115, 0.15)\" };\n        default:         return { label: \"\u8abf\u5408\u73fe\u8c61\",   color: \"var(--accent-vod)\",  bg: \"rgba(74, 105, 189, 0.15)\" };\n      }\n    }\n\n    function renderCatalogList() {\n      const container = document.getElementById(\"catalog-items-container\");\n      const filter = document.getElementById(\"catalog-filter\").value;\n      const query = document.getElementById(\"catalog-search\").value.toLowerCase().trim();\n      const list = getStoredLexicon();\n\n      container.innerHTML = \"\";\n\n      const filtered = list.filter(item => {\n        if (filter !== \"all\" && item.type !== filter) return false;\n        if (query) {\n          const matchTerm = item.term.toLowerCase().includes(query);\n          const matchKana = item.kana && item.kana.toLowerCase().includes(query);\n          const matchMeaning = item.meaning && item.meaning.toLowerCase().includes(query);\n          const matchExegesis = item.exegesis && item.exegesis.toLowerCase().includes(query);\n          const matchGenealogy = item.genealogy && item.genealogy.toLowerCase().includes(query);\n          return matchTerm || matchKana || matchMeaning || matchExegesis || matchGenealogy;\n        }\n        return true;\n      });\n\n      const countBadge = document.getElementById(\"catalog-count-badge\");\n      if (countBadge) {\n        countBadge.textContent = `${filtered.length} \u9805\u76ee`;\n      }\n\n      if (filtered.length === 0) {\n        container.innerHTML = `<div style=\"text-align: center; color: var(--text-muted); padding: 2rem;\">\u8a72\u5f53\u3059\u308b\u5927\u7cfb\u9805\u76ee\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002<\/div>`;\n        return;\n      }\n\n      \/\/ \u9078\u629e\u4e2d\u306eID\u304c\u306a\u3051\u308c\u3070\u5148\u982d\u3092\u9078\u629e\n      if (!selectedCatalogId || !filtered.some(i => i.id === selectedCatalogId)) {\n        selectedCatalogId = filtered[0].id;\n      }\n\n      filtered.forEach(item => {\n        const badge = getCatalogBadgeInfo(item.type);\n        const row = document.createElement(\"div\");\n        row.className = \"catalog-item-row\" + (item.id === selectedCatalogId ? \" selected\" : \"\");\n        row.onclick = () => selectCatalogItem(item.id);\n\n        row.innerHTML = `\n          <div class=\"catalog-item-left\">\n            <span class=\"catalog-item-term\">${escapeHtml(item.term)}<\/span>\n            <span class=\"catalog-item-kana\">${escapeHtml(item.kana || '')}<\/span>\n            <span class=\"catalog-item-meaning\">${escapeHtml(item.meaning || '')}<\/span>\n          <\/div>\n          <span class=\"catalog-item-badge\" style=\"color: ${badge.color}; background: ${badge.bg}; border: 1px solid ${badge.color}44;\">\n            ${badge.label}\n          <\/span>\n        `;\n        container.appendChild(row);\n      });\n\n      renderCatalogSidePane();\n    }\n\n    function selectCatalogItem(id) {\n      selectedCatalogId = id;\n      document.querySelectorAll(\".catalog-item-row\").forEach(r => r.classList.remove(\"selected\"));\n      renderCatalogList();\n      \/\/ \u30b9\u30de\u30db\u8868\u793a\u6642\u3001\u9078\u629e\u3057\u305f\u30a2\u30a4\u30c6\u30e0\u306e\u8a73\u7d30\u30d1\u30cd\u30eb\u3078\u30b9\u30e0\u30fc\u30ba\u30b9\u30af\u30ed\u30fc\u30eb\n      if (window.innerWidth <= 900) {\n        const sidePane = document.getElementById(\"catalog-side-pane\");\n        if (sidePane) {\n          sidePane.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n        }\n      }\n    }\n\n    function renderCatalogSidePane() {\n      const pane = document.getElementById(\"catalog-side-pane\");\n      if (!pane) return;\n      const list = getStoredLexicon();\n      const item = list.find(i => i.id === selectedCatalogId);\n\n      if (!item) {\n        pane.innerHTML = `\n          <div style=\"text-align: center; color: var(--text-muted); padding: 3rem 1rem;\">\n            \u76ee\u9332\u304b\u3089\u9805\u76ee\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n          <\/div>\n        `;\n        return;\n      }\n\n      const badge = getCatalogBadgeInfo(item.type);\n\n      let exegesisBlock = item.exegesis ? `\n        <div class=\"block-exegesis\" style=\"margin-top: 0.8rem;\">\n          <div class=\"block-exegesis-label\">\n            <span>\u25c6 \u539f\u5178\u89e3\u984c\uff08\u54f2\u5b66\u7684\u30fb\u73fe\u8c61\u7684\u6ce8\u91c8\uff09<\/span>\n          <\/div>\n          <div style=\"color: var(--text-bright); line-height: 1.8; font-size: 0.92rem;\">\n            ${escapeHtml(item.exegesis)}\n          <\/div>\n        <\/div>\n      ` : '';\n\n      let genealogyBlock = item.genealogy ? `\n        <div class=\"block-genealogy\" style=\"margin-top: 0.8rem;\">\n          <div class=\"block-genealogy-label\">\n            <span>\u25c7 \u8a9e\u6e90\u306e\u9023\u9396\uff08\u56e0\u679c\u306e\u7cfb\u8b5c\uff09<\/span>\n          <\/div>\n          <div style=\"color: #cad8ee; line-height: 1.7; font-size: 0.88rem;\">\n            ${escapeHtml(item.genealogy)}\n          <\/div>\n        <\/div>\n      ` : '';\n\n      let componentsBlock = (item.components && item.components.length > 0) ? `\n        <div style=\"display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.5rem;\">\n          ${item.components.map(c => `<span style=\"font-size: 0.75rem; background: rgba(255,255,255,0.04); border: 1px solid var(--border-subtle); padding: 0.2rem 0.6rem; border-radius: 12px; color: var(--text-muted);\">${escapeHtml(c)}<\/span>`).join('')}\n        <\/div>\n      ` : '';\n\n      pane.innerHTML = `\n        <div class=\"catalog-side-head\">\n          <div class=\"catalog-side-title-row\">\n            <div>\n              <div class=\"catalog-side-term\">${escapeHtml(item.term)}<\/div>\n              <div class=\"catalog-side-kana\">${escapeHtml(item.kana || '')}<\/div>\n            <\/div>\n            <span class=\"catalog-item-badge\" style=\"color: ${badge.color}; background: ${badge.bg}; border: 1px solid ${badge.color}66; font-size: 0.8rem; padding: 0.3rem 0.7rem;\">\n              ${badge.label}\n            <\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"catalog-side-meaning\">\n          ${escapeHtml(item.meaning || '')}\n        <\/div>\n\n        ${exegesisBlock}\n        ${genealogyBlock}\n        ${componentsBlock}\n\n        <div style=\"display: flex; gap: 0.8rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border-subtle);\">\n          <button class=\"primary-btn\" onclick=\"sendCatalogToSentence('${escapeHtml(item.term)}', '${escapeHtml(item.kana || '')}', '${escapeHtml(item.meaning || '').replace(\/'\/g, \"\\'\")}')\" style=\"flex: 1;\">\n            \u69cb\u6587\u30d3\u30eb\u30c0\u30fc\u3078\u8ee2\u9001\n          <\/button>\n          <button class=\"secondary-btn\" onclick=\"copyCatalogItem('${escapeHtml(item.term)}')\">\n            \u5358\u8a9e\u3092\u30b3\u30d4\u30fc\n          <\/button>\n        <\/div>\n      `;\n    }\n\n    function sendCatalogToSentence(term, kana, meaning) {\n      state.phenomenon = { term, kana, meaning };\n      document.getElementById(\"sentence-phenomenon\").value = term;\n      document.getElementById(\"sentence-phenomenon-desc\").textContent = `${kana} \/ ${meaning.slice(0, 35)}`;\n      switchTabDirect(\"sentence\");\n      updateSentencePreview();\n      showToast(`\u69cb\u6587\u30d3\u30eb\u30c0\u30fc\u3078\u300c${term}\u300d\u3092\u8ee2\u9001\u3057\u307e\u3057\u305f`);\n    }\n\n    function copyCatalogItem(term) {\n      navigator.clipboard.writeText(term).then(() => {\n        showToast(`\u300c${term}\u300d\u3092\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f`);\n      }).catch(() => {\n        showToast(\"\u30b3\u30d4\u30fc\u306b\u5931\u6557\u3057\u307e\u3057\u305f\");\n      });\n    }\n\n    \/\/ \u8f9e\u66f8\u63cf\u753b\n    function renderLexicon() {\n      const container = document.getElementById(\"entries-container\");\n      const filter = document.getElementById(\"lexicon-filter\").value;\n      const query = document.getElementById(\"lexicon-search\").value.toLowerCase().trim();\n\n      const list = getStoredLexicon();\n      container.innerHTML = \"\";\n\n      const filtered = list.filter(item => {\n        if (filter !== \"all\" && item.type !== filter) return false;\n        if (query) {\n          const matchTerm = item.term.toLowerCase().includes(query);\n          const matchKana = item.kana && item.kana.toLowerCase().includes(query);\n          const matchMeaning = item.meaning && item.meaning.toLowerCase().includes(query);\n          const matchExegesis = item.exegesis && item.exegesis.toLowerCase().includes(query);\n          return matchTerm || matchKana || matchMeaning || matchExegesis;\n        }\n        return true;\n      });\n\n      if (filtered.length === 0) {\n        container.innerHTML = `<div style=\"grid-column: 1 \/ -1; text-align: center; color: var(--text-muted); padding: 3rem;\">\u8a72\u5f53\u3059\u308b\u8a18\u8ff0\u304c\u5178\u7bc4\u306b\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002<\/div>`;\n        return;\n      }\n\n      filtered.forEach(item => {\n        const card = document.createElement(\"div\");\n        card.className = \"entry-card\";\n        \n        let badgeLabel = \"\u8abf\u5408\u73fe\u8c61\";\n        if (item.type === \"math\") badgeLabel = \"\u6570\u7406\u30fb\u57fa\u76e4\";\n        if (item.type === \"color\") badgeLabel = \"\u539f\u521d\u8272\u5f69\";\n        if (item.type === \"base\") badgeLabel = \"\u81ea\u7136\u57fa\u76e4(\u5834)\";\n        if (item.type === \"weather\") badgeLabel = \"\u5929\u5019\u30fb\u4e8b\u8c61\";\n        if (item.type === \"texture\") badgeLabel = \"\u8cea\u611f\";\n        if (item.type === \"sentence\") badgeLabel = \"\u69cb\u6587\";\n        if (item.type === \"soul\") badgeLabel = \"\u771f\u540d\u30fb\u5668\";\n\n        let exegesisHtml = item.exegesis ? `\n          <div class=\"block-exegesis\">\n            <div class=\"block-exegesis-label\">\u25c6 \u539f\u5178\u89e3\u984c<\/div>\n            ${escapeHtml(item.exegesis)}\n          <\/div>` : '';\n\n        let genealogyHtml = item.genealogy ? `\n          <div class=\"block-genealogy\">\n            <div class=\"block-genealogy-label\">\u25c7 \u8a9e\u6e90\u306e\u9023\u9396<\/div>\n            ${escapeHtml(item.genealogy)}\n          <\/div>` : '';\n\n        card.innerHTML = `\n          <div class=\"entry-header\">\n            <span class=\"entry-term\">${escapeHtml(item.term)}<\/span>\n            <span class=\"entry-badge\">${badgeLabel}<\/span>\n          <\/div>\n          <div class=\"entry-kana\">${escapeHtml(item.kana || '')}<\/div>\n          <div class=\"entry-meaning\">${escapeHtml(item.meaning || '')}<\/div>\n          ${exegesisHtml}\n          ${genealogyHtml}\n          <div class=\"entry-meta\">\n            <span>${(item.components || []).slice(0, 3).join(\", \")}<\/span>\n            <div style=\"display: flex; gap: 0.3rem;\">\n              <button class=\"secondary-btn\" style=\"padding: 0.2rem 0.55rem; font-size: 0.75rem;\" onclick=\"sendCatalogToSentence('${escapeHtml(item.term)}', '${escapeHtml(item.kana || '')}', '${escapeHtml(item.meaning || '').replace(\/'\/g, \"\\\\'\")}')\">\u69cb\u6587\u3078\u8ee2\u9001<\/button>\n              <button class=\"delete-btn\" onclick=\"deleteEntry('${item.id}')\">\u62b9\u6d88<\/button>\n            <\/div>\n          <\/div>\n        `;\n        container.appendChild(card);\n      });\n    }\n\n    function deleteEntry(id) {\n      if (!confirm(\"\u3053\u306e\u8a18\u9332\u3092\u5178\u7bc4\u304b\u3089\u62b9\u6d88\u3057\u307e\u3059\u304b\uff1f\")) return;\n      let list = getStoredLexicon();\n      list = list.filter(i => i.id !== id);\n      saveStoredLexicon(list);\n      showToast(\"\u8a18\u9332\u3092\u62b9\u6d88\u3057\u307e\u3057\u305f\");\n    }\n\n    function exportData() {\n      const list = getStoredLexicon();\n      const blob = new Blob([JSON.stringify(list, null, 2)], { type: \"application\/json\" });\n      const url = URL.createObjectURL(blob);\n      const a = document.createElement(\"a\");\n      a.href = url;\n      a.download = `selath_vohr_codex_${new Date().toISOString().split(\"T\")[0]}.json`;\n      a.click();\n      URL.revokeObjectURL(url);\n      showToast(\"\u5178\u7bc4\u30c7\u30fc\u30bf\u3092JSON\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u66f8\u304d\u51fa\u3057\u307e\u3057\u305f\");\n    }\n\n    function importDataClick() {\n      document.getElementById(\"import-file\").click();\n    }\n\n    function importData(e) {\n      const file = e.target.files[0];\n      if (!file) return;\n      const reader = new FileReader();\n      reader.onload = function(event) {\n        try {\n          const imported = JSON.parse(event.target.result);\n          if (Array.isArray(imported)) {\n            saveStoredLexicon(imported);\n            showToast(\"\u5178\u7bc4\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u307f\u307e\u3057\u305f\");\n          } else {\n            alert(\"\u7121\u52b9\u306a\u5178\u7bc4\u30c7\u30fc\u30bf\u5f62\u5f0f\u3067\u3059\u3002\");\n          }\n        } catch (err) {\n          alert(\"\u30d5\u30a1\u30a4\u30eb\u306e\u89e3\u6790\u306b\u5931\u6557\u3057\u307e\u3057\u305f: \" + err.message);\n        }\n      };\n      reader.readAsText(file);\n    }\n\n    function showToast(msg) {\n      const toast = document.getElementById(\"toast\");\n      toast.textContent = msg;\n      toast.classList.add(\"show\");\n      setTimeout(() => toast.classList.remove(\"show\"), 2500);\n    }\n\n    function escapeHtml(str) {\n      return str.replace(\/[&<>'\"]\/g, \n        tag => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', \"'\": '&#39;', '\"': '&quot;' }[tag] || tag)\n      );\n    }\n\n    \/\/ ==========================================\n    \/\/ \u25c6 \u73fe\u8c61\u540c\u5b9a\u9580\uff08\u5341\u5c64\u306e\u89b3\u6e2c\u9580\uff09\u30ed\u30b8\u30c3\u30af\n    \/\/ ==========================================\n    let divinationState = {\n      g1: null,\n      g2: null,\n      g3: null,\n      g4: null,\n      g5: null,\n      g6: null,\n      g7: null,\n      g8: null,\n      g9: null,\n      g10: null\n    };\n\n    let lastDivinationResult = null;\n\n    const OBS_GATE_METADATA = {\n      g1: {\n        title: \"\u7b2c1\u9580\uff1a\u57fa\u5e95\u7a7a\u9593\u306e\u6c88\u6f5c\",\n        options: {\n          Sha: { label: \"Sha\", kana: \"\u30b7\u30e3\", name: \"\u9271\u77f3\u30fb\u5927\u5730\", desc: \"\u4fb5\u98df\u3092\u62d2\u307f\u4e0d\u5909\u3092\u523b\u3080\u9271\u77f3\u306e\u51b7\u53b3\" },\n          Vod: { label: \"Vod\", kana: \"\u30f4\u30a9\u30c9\", name: \"\u6d41\u4f53\u30fb\u6d77\", desc: \"\u8f2a\u90ed\u3092\u6301\u305f\u305a\u4f4e\u304d\u3078\u6e80\u3061\u308b\u96eb\u306e\u5e95\u6d41\" },\n          Vohr: { label: \"Vohr\", kana: \"\u30f4\u30a9\u30fc\u30eb\", name: \"\u9759\u5bc2\u30fb\u7a7a\u9699\", desc: \"\u97f3\u3082\u5149\u3082\u5438\u3044\u8fbc\u307f\u593e\u96d1\u3092\u6392\u3059\u308b\u7d76\u5bfe\u306e\u7a7a\u9699\" }\n        }\n      },\n      g2: {\n        title: \"\u7b2c2\u9580\uff1a\u7a7a\u9593\u306e\u99c6\u52d5\",\n        options: {\n          Lu: { label: \"Lu\", kana: \"\u30eb\", name: \"\u5149\u30fb\u6ce2\u52d5\", desc: \"\u6697\u95c7\u3092\u88c2\u304d\u5883\u754c\u3092\u767d\u65e5\u306b\u6652\u3059\u5149\u6761\" },\n          Ser: { label: \"Ser\", kana: \"\u30bb\u30eb\", name: \"\u751f\u547d\u30fb\u5faa\u74b0\", desc: \"\u6642\u9593\u3092\u304b\u3051\u5834\u3092\u66f4\u65b0\u3057\u7d9a\u3051\u308b\u751f\u547d\u306e\u8108\u52d5\" }\n        }\n      },\n      g3: {\n        title: \"\u7b2c3\u9580\uff1a\u81e8\u754c\u3068\u71b1\",\n        options: {\n          Flor: { label: \"Flor\", kana: \"\u30d5\u30ed\u30fc\u30eb\", name: \"\u6c3e\u6feb\u30fb\u81e8\u754c\", desc: \"\u9650\u754c\u5bb9\u7a4d\u3092\u7a81\u7834\u3057\u6ea2\u308c\u51fa\u3059\u6c3e\u6feb\" },\n          Hal: { label: \"Hal\", kana: \"\u30cf\u30eb\", name: \"\u6469\u64e6\u30fb\u878d\u89e3\", desc: \"\u4e8c\u5f8b\u304c\u885d\u7a81\u3057\u71b1\u3092\u5e2f\u3073\u3066\u5883\u754c\u304c\u6eb6\u3051\u5408\u3046\u878d\u89e3\" }\n        }\n      },\n      g4: {\n        title: \"\u7b2c4\u9580\uff1a\u53ce\u675f\u3068\u6b8b\u6ed3\",\n        options: {\n          Ris: { label: \"Ris\", kana: \"\u30ea\u30b9\", name: \"\u53ce\u675f\u30fb\u7d50\u6676\u5316\", desc: \"\u9727\u304c\u4e00\u7c92\u306e\u9732\u3078\u3068\u7d50\u5b9f\u3059\u308b\u51dd\u56fa\u306e\u5203\" },\n          Vol: { label: \"Vol\", kana: \"\u30f4\u30a9\u30eb\", name: \"\u53cd\u8ee2\u30fb\u6b8b\u97ff\", desc: \"\u5149\u53bb\u308a\u3057\u5f8c\u306b\u6c88\u6bbf\u3057\u8f2a\u90ed\u3092\u4fdd\u3064\u5f71\" }\n        }\n      },\n      g5: {\n        title: \"\u7b2c5\u9580\uff1a\u6d78\u900f\u306e\u6d41\u5100\",\n        options: {\n          Mar: { label: \"Mar\", kana: \"\u30de\u30eb\", name: \"\u8272\u5f69\u30fb\u60c5\u7dd2\", desc: \"\u60c5\u666f\u304c\u6de1\u3044\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u3092\u5e2f\u3073\u308b\u8272\u5f69\" },\n          Zel: { label: \"Zel\", kana: \"\u30bc\u30eb\", name: \"\u81ea\u7531\u30fb\u6d6e\u904a\", desc: \"\u91cd\u529b\u3068\u675f\u7e1b\u3092\u8131\u304e\u6368\u3066\u5439\u304d\u629c\u3051\u308b\u81ea\u7531\" }\n        }\n      },\n      g6: {\n        title: \"\u7b2c6\u9580\uff1a\u5883\u754c\u9762\u306e\u8cea\u611f\",\n        options: {\n          Shan: { label: \"Shan\", kana: \"\u30b7\u30e3\u30f3\", name: \"\u91d1\u5c5e\u5149\u6ca2\", stem: \"shan\", desc: \"\u5149\u3092\u92ed\u5229\u306b\u8df3\u306d\u8fd4\u3059\u51b7\u5fb9\u306a\u93e1\u9762\" },\n          Shar: { label: \"Shar\", kana: \"\u30b7\u30e3\u30eb\", name: \"\u7c97\u9762\u30fb\u3056\u3089\u3064\u304d\", stem: \"shar\", desc: \"\u7729\u3055\u3092\u5438\u3044\u8fbc\u3093\u3067\u6563\u3089\u3059\u4e7e\u3044\u305f\u5ca9\u808c\" },\n          Vohril: { label: \"Vohril\", kana: \"\u30f4\u30a9\u30fc\u30ea\u30eb\", name: \"\u900f\u660e\u30fb\u6c34\u6676\", stem: \"ril\", desc: \"\u5c48\u6298\u3055\u305b\u308b\u3053\u3068\u306a\u304f\u865a\u7a7a\u307e\u3067\u901a\u3059\u900f\u5149\" },\n          Rala: { label: \"Rala\", kana: \"\u30e9\u30e9\", name: \"\u67d4\u8edf\u30fb\u6ed1\u3089\u304b\", stem: \"ral\", desc: \"\u9732\u3092\u5e2f\u3073\u305f\u82b1\u5f01\u306e\u3088\u3046\u306b\u5883\u754c\u3092\u66d6\u6627\u306b\u3059\u308b\u67d4\u8edf\" }\n        }\n      },\n      g7: {\n        title: \"\u7b2c7\u9580\uff1a\u73fe\u8c61\u306e\u6240\u5728\u6b21\u5143\",\n        options: {\n          \"-en\": { label: \"-en\", kana: \"\u30a8\u30f3\", name: \"\u5185\u9762\u30fb\u7cbe\u795e\u6b21\u5143\", desc: \"\u601d\u8003\u3084\u6c88\u9ed9\u304c\u6df1\u304f\u6c88\u6f5c\u3059\u308b\u5185\u9762\u9818\u57df\" },\n          \"-ur\": { label: \"-ur\", kana: \"\u30a6\u30fc\u30eb\", name: \"\u500b\u5225\u53d7\u5bb9\u4f53\u6b21\u5143\", desc: \"\u73fe\u8c61\u3092\u305d\u306e\u8eab\u306b\u7559\u3081\u7f6e\u304f\u53d7\u5bb9\u4f53\u30fb\u5668\" },\n          \"-al\": { label: \"-al\", kana: \"\u30a2\u30eb\", name: \"\u5916\u754c\u30fb\u81ea\u7136\u6b21\u5143\", desc: \"\u679c\u3066\u306a\u304f\u5e83\u304c\u308a\u4e07\u7269\u3092\u5305\u3080\u5927\u81ea\u7136\u7a7a\u9593\" }\n        }\n      },\n      g8: {\n        title: \"\u7b2c8\u9580\uff1a\u6642\u9593\u8ef8\u306e\u523b\u307f\",\n        options: {\n          Tra: { label: \"Tra\", kana: \"\u30c8\u30e9\", name: \"\u671d\u30fb\u9ece\u660e\u306e\u523b\", desc: \"\u5146\u3057\u304c\u8822\u304d\u5149\u304c\u4e8b\u8c61\u3092\u59cb\u52d5\u3055\u305b\u308b\u523b\" },\n          Tri: { label: \"Tri\", kana: \"\u30c8\u30ea\", name: \"\u4eca\u30fb\u771f\u663c\u306e\u523b\", desc: \"\u6642\u9593\u304c\u51db\u3068\u6975\u307e\u308a\u9759\u6b62\u3059\u308b\u73fe\u5728\u306e\u70b9\" },\n          Tru: { label: \"Tru\", kana: \"\u30c8\u30a5\u30eb\", name: \"\u5348\u5f8c\u30fb\u6df1\u307e\u308a\u306e\u523b\", desc: \"\u5f71\u304c\u6df1\u304f\u6c88\u307f\u8fbc\u307f\u6d41\u308c\u3066\u3044\u304f\u60a0\u4e45\u306e\u6642\" },\n          Tre: { label: \"Tre\", kana: \"\u30c8\u30ec\", name: \"\u5de1\u308a\u30fb\u56e0\u679c\u306e\u523b\", desc: \"\u5149\u3068\u5f71\u304c\u4ea4\u932f\u3057\u5b63\u7bc0\u304c\u8f2a\u3092\u63cf\u304f\u6642\" },\n          Tro: { label: \"Tro\", kana: \"\u30c8\u30ed\", name: \"\u9ec4\u660f\u30fb\u591c\u306e\u523b\", desc: \"\u3059\u3079\u3066\u304c\u9759\u5bc2\u3078\u3068\u9084\u308b\u6c88\u9ed9\u306e\u6642\" }\n        }\n      },\n      g9: {\n        title: \"\u7b2c9\u9580\uff1a\u73fe\u8c61\u306e\u6e29\u5ea6\u3068\u898f\u5f8b\",\n        options: {\n          \"-ra\": { label: \"-ra\", kana: \"\u30e9\", name: \"\u5fae\u6e29\u306e\u62b1\u64c1\", stem: \"ra\", desc: \"\u5883\u754c\u3092\u66d6\u6627\u306b\u878d\u89e3\u3055\u305b\u4e07\u7269\u3092\u5305\u3080\u5fae\u6e29\" },\n          \"-ice\": { label: \"-ice\", kana: \"\u30a2\u30a4\u30b9\", name: \"\u6c37\u51b7\u306e\u898f\u5f8b\", stem: \"ice\", desc: \"\u7d76\u5bfe\u96f6\u5ea6\u306e\u898f\u5f8b\u3092\u3082\u3063\u3066\u593e\u96d1\u3092\u524a\u304e\u843d\u3068\u3059\u6c37\u51b7\" },\n          \"-on\": { label: \"-on\", kana: \"\u30aa\u30f3\", name: \"\u6c38\u9060\u306e\u6d78\u900f\", stem: \"on\", desc: \"\u6b21\u5143\u306e\u679c\u3066\u307e\u3067\u6e80\u3061\u5e83\u304c\u308b\u4e0d\u53ef\u9006\u306e\u6d78\u900f\" }\n        }\n      },\n      g10: {\n        title: \"\u7b2c10\u9580\uff1a\u5668\u306e\u6307\u5411\u6027\",\n        options: {\n          \"-onur\": { label: \"-onur\", kana: \"\u30aa\u30cc\u30fc\u30eb\", name: \"\u6c38\u9060\u30fb\u6d78\u900f\u306e\u5668\", stem: \"onur\", desc: \"\u4e16\u754c\u306e\u6df1\u5c64\u3078\u3068\u6c38\u52ab\u306b\u67d3\u307f\u5165\u308a\u7d9a\u3051\u308b\u5668\" },\n          \"-isur\": { label: \"-isur\", kana: \"\u30a4\u30b9\u30fc\u30eb\", name: \"\u5239\u90a3\u30fb\u6975\u70b9\u306e\u5668\", stem: \"isur\", desc: \"\u4e00\u77ac\u306b\u6975\u70b9\u306e\u9583\u5149\u3092\u653e\u3061\u9727\u6563\u3059\u308b\u4e00\u56de\u6027\u306e\u5668\" },\n          \"-altur\": { label: \"-altur\", kana: \"\u30a2\u30eb\u30c4\u30fc\u30eb\", name: \"\u5916\u754c\u30fb\u5171\u9cf4\u306e\u5668\", stem: \"altur\", desc: \"\u4f5c\u70ba\u3092\u6d88\u3057\u4e16\u754c\u306e\u7f8e\u3092\u3042\u308a\u306e\u307e\u307e\u6620\u3057\u8fd4\u3059\u93e1\u306e\u5668\" }\n        }\n      }\n    };\n\n    function selectGateOption(gate, val, btn) {\n      divinationState[gate] = val;\n      const parent = btn.parentElement;\n      parent.querySelectorAll(\".gate-option-btn\").forEach(b => b.classList.remove(\"selected\"));\n      btn.classList.add(\"selected\");\n      updateObservationIndicator();\n    }\n\n    function updateObservationIndicator() {\n      const keys = [\"g1\", \"g2\", \"g3\", \"g4\", \"g5\", \"g6\", \"g7\", \"g8\", \"g9\", \"g10\"];\n      let answered = 0;\n      keys.forEach((k, idx) => {\n        const dot = document.querySelectorAll(\".obs-dot\")[idx];\n        if (divinationState[k]) {\n          answered++;\n          if (dot) dot.classList.add(\"active\");\n        } else {\n          if (dot) dot.classList.remove(\"active\");\n        }\n      });\n      const textEl = document.getElementById(\"obs-depth-text\");\n      if (textEl) {\n        if (answered === 0) {\n          textEl.textContent = \"0 \/ 10 \u5c64 \u89b3\u6e2c\u5f85\u6a5f\";\n        } else if (answered === 10) {\n          textEl.textContent = \"10 \/ 10 \u5c64 \u89b3\u6e2c\u5b9a\u790e\u5b8c\u4e86\";\n        } else {\n          textEl.textContent = `${answered} \/ 10 \u5c64 \u89b3\u6e2c\u4e2d...`;\n        }\n      }\n    }\n\n    \/\/ \u771f\u540d\u304a\u3088\u3073\u5178\u7bc4\u8a18\u8ff0\u306e\u4f53\u7cfb\u7684\u5408\u6210\n    function synthesizeObservation(state) {\n      const g1 = state.g1 || \"Vohr\";\n      const g2 = state.g2 || \"Lu\";\n      const g3 = state.g3 || \"Hal\";\n      const g4 = state.g4 || \"Ris\";\n      const g5 = state.g5 || \"Mar\";\n      const g6 = state.g6 || \"Vohril\";\n      const g7 = state.g7 || \"-ur\";\n      const g8 = state.g8 || \"Tri\";\n      const g9 = state.g9 || \"-ice\";\n      const g10 = state.g10 || \"-onur\";\n\n      const m1 = OBS_GATE_METADATA.g1.options[g1];\n      const m2 = OBS_GATE_METADATA.g2.options[g2];\n      const m3 = OBS_GATE_METADATA.g3.options[g3];\n      const m4 = OBS_GATE_METADATA.g4.options[g4];\n      const m5 = OBS_GATE_METADATA.g5.options[g5];\n      const m6 = OBS_GATE_METADATA.g6.options[g6];\n      const m7 = OBS_GATE_METADATA.g7.options[g7];\n      const m8 = OBS_GATE_METADATA.g8.options[g8];\n      const m9 = OBS_GATE_METADATA.g9.options[g9];\n      const m10 = OBS_GATE_METADATA.g10.options[g10];\n\n      \/\/ 1. \u771f\u540d\u306e\u5408\u6210\n      \/\/ \u57fa\u5e95\u8a9e\u5e79\uff1ag1\uff08\u9759\uff09\u3068\u52d5\u614b\uff08g3\u301cg5\uff09\u306e\u8abf\u548c\n      let coreTerm = \"\";\n      let coreKana = \"\";\n\n      if (g1 === \"Vohr\") {\n        if (g4 === \"Ris\") { coreTerm = \"Vohris\"; coreKana = \"\u30f4\u30a9\u30fc\u30ea\u30b9\"; }\n        else if (g4 === \"Vol\") { coreTerm = \"Vohrvol\"; coreKana = \"\u30f4\u30a9\u30eb\u30f4\u30a9\u30fc\u30eb\"; }\n        else if (g3 === \"Hal\") { coreTerm = \"Vohrhal\"; coreKana = \"\u30f4\u30a9\u30fc\u30eb\u30cf\u30eb\"; }\n        else { coreTerm = \"Vohrflor\"; coreKana = \"\u30f4\u30a9\u30fc\u30d5\u30ed\u30fc\u30eb\"; }\n      } else if (g1 === \"Sha\") {\n        if (g3 === \"Hal\") { coreTerm = \"Shahal\"; coreKana = \"\u30b7\u30e3\u30cf\u30eb\"; }\n        else if (g3 === \"Flor\") { coreTerm = \"Shaflor\"; coreKana = \"\u30b7\u30e3\u30d5\u30ed\u30fc\u30eb\"; }\n        else if (g4 === \"Ris\") { coreTerm = \"Sharis\"; coreKana = \"\u30b7\u30e3\u30ea\u30b9\"; }\n        else { coreTerm = \"Shavol\"; coreKana = \"\u30b7\u30e3\u30f4\u30a9\u30eb\"; }\n      } else { \/\/ Vod\n        if (g5 === \"Mar\") { coreTerm = \"Vodmar\"; coreKana = \"\u30f4\u30a9\u30c9\u30de\u30eb\"; }\n        else if (g4 === \"Ris\") { coreTerm = \"Vodris\"; coreKana = \"\u30f4\u30a9\u30c9\u30ea\u30b9\"; }\n        else if (g3 === \"Flor\") { coreTerm = \"Vodflor\"; coreKana = \"\u30f4\u30a9\u30c9\u30d5\u30ed\u30fc\u30eb\"; }\n        else { coreTerm = \"Vodzel\"; coreKana = \"\u30f4\u30a9\u30c9\u30bc\u30eb\"; }\n      }\n\n      \/\/ \u8cea\u611f\u90e8\u306e\u7d71\u5408\n      let texTerm = \"\";\n      let texKana = \"\";\n      if (g6 === \"Vohril\") {\n        texTerm = (g1 === \"Vohr\") ? \"ril\" : \"vohril\";\n        texKana = (g1 === \"Vohr\") ? \"\u30ea\u30eb\" : \"\u30f4\u30a9\u30fc\u30ea\u30eb\";\n      } else if (g6 === \"Shan\") {\n        texTerm = \"shan\";\n        texKana = \"\u30b7\u30e3\u30f3\";\n      } else if (g6 === \"Shar\") {\n        texTerm = \"shar\";\n        texKana = \"\u30b7\u30e3\u30eb\";\n      } else { \/\/ Rala\n        texTerm = \"ral\";\n        texKana = \"\u30e9\u30eb\";\n      }\n\n      \/\/ \u5668\u306e\u578b\u306e\u7d71\u5408\n      const vesSuffix = m10.stem;\n      const vesKana = m10.kana;\n\n      \/\/ \u9023\u7d50\uff1aTrueName\n      \/\/ \u4f8b: Vohris-ril-onur, Shahal-shan-isur, Vodmar-ral-altur\n      const trueName = `${coreTerm}-${texTerm}-${vesSuffix}`;\n      const trueKana = `${coreKana}\u30fb${texKana}\uff1d${vesKana}`;\n\n      \/\/ \u79f0\u53f7\uff08Meaning\uff09\n      const title = `\u3010 ${m1.name}\u3068${m6.name}\u3092\u5bbf\u3059${m10.name} \u3011`;\n\n      \/\/ \u81ea\u7136\u57fa\u76e4\uff08\u5bbf\u308b\u5834\uff1aLocus\uff09\n      const locusMap = {\n        Sha: { term: \"Shael\", kana: \"\u30b7\u30e3\u30a8\u30eb\", meaning: \"\u5927\u5730\uff08\u4e0d\u52d5\u306e\u5ca9\u76e4\uff09\" },\n        Vod: { term: \"Vodon\", kana: \"\u30f4\u30a9\u30c9\u30f3\", meaning: \"\u6df1\u6d77\uff08\u84bc\u78a7\u306e\u5927\u6d77\uff09\" },\n        Vohr: { term: \"Vohral\", kana: \"\u30f4\u30a9\u30fc\u30e9\u30eb\", meaning: \"\u5927\u7a7a\uff08\u9759\u5bc2\u306e\u7a7a\u9699\uff09\" }\n      };\n      const locusInfo = locusMap[g1] || locusMap[\"Vohr\"];\n\n      \/\/ \u5927\u6642\u9593\n      const macroTerm = m8.label;\n      const macroKana = m8.kana;\n      const macroMeaning = m8.name;\n\n      \/\/ \u5178\u7bc4\u8a69\u6b4c\n      const verseText = `${macroTerm} ${trueName} nol ${locusInfo.term}.`;\n      const verseKana = `${macroKana}\u30fb${trueKana}\u30fb\u30ce\u30eb\u30fb${locusInfo.kana}`;\n      const verseTrans = `${macroMeaning}\uff08${macroTerm}\uff09\u306b\u304a\u3044\u3066\u3001${title.replace(\/\u3010|\u3011\/g, \"\").trim()}\uff08${trueName}\uff09\u304c\u3001${locusInfo.meaning}\uff08${locusInfo.term}\uff09\u3078\u3068\u5bbf\u308a\u6d78\u900f\u3059\u308b\u3002`;\n\n      \/\/ \u539f\u5178\u89e3\u984c\uff08\u683c\u8abf\u9ad8\u3044\u6563\u6587\u306b\u3088\u308b\u73fe\u8c61\u306e\u540c\u5b9a\uff09\n      const exegesis = \n`\u539f\u521d\u306e\u7a7a\u9593\u306b\u304a\u3044\u3066\u3010${m1.name}\uff08${g1}\uff09\u3011\u3092\u57fa\u5e95\u3068\u3057\u3001\u3010${m2.name}\uff08${g2}\uff09\u3011\u306e\u6ce2\u52d5\u3092\u99c6\u52d5\u306e\u5951\u6a5f\u3068\u3057\u3066\u540c\u5b9a\u3055\u308c\u305f\u89b3\u6e2c\u4f53\u3002\n\u5747\u8861\u306e\u52d5\u614b\u306b\u304a\u3044\u3066\u3010${m3.name}\uff08${g3}\uff09\u3011\u306e\u76f8\u3092\u5e2f\u3073\u3001\u53ce\u675f\u306e\u6b8b\u6ed3\u306f\u3010${m4.name}\uff08${g4}\uff09\u3011\u3068\u3057\u3066\u5834\u306b\u6c88\u6bbf\u3057\u3001\u3010${m5.name}\uff08${g5}\uff09\u3011\u306e\u6d41\u5100\u3092\u4ee5\u3066\u7a7a\u9593\u3078\u3068\u6d78\u900f\u3059\u308b\u3002\n\u5883\u754c\u9762\u306f\u3010${m6.name}\uff08${g6}\uff09\u3011\u306e\u8cea\u611f\u3092\u4fdd\u3061\u3001\u5916\u754c\u306e\u5149\u7dda\u3092\u7cbe\u7dfb\u306b\u53d7\u5bb9\u30fb\u53cd\u5c04\u3059\u308b\u3002\n\u305d\u306e\u9855\u73fe\u306f\u3010${m7.name}\uff08${g7}\uff09\u3011\u306e\u9818\u57df\u306b\u5b9a\u790e\u3055\u308c\u3001\u3010${m9.name}\uff08${g9}\uff09\u3011\u306e\u898f\u5f8b\u3092\u7e8f\u3063\u3066\u3001\u53bb\u308a\u3057\u5f8c\u306f\u3010${m10.name}\uff08${g10}\uff09\u3011\u3068\u3057\u3066\u4e16\u754c\u306e\u6df1\u5c64\u3078\u6c38\u52ab\u306b\u8a18\u61b6\u3092\u7559\u3081\u7f6e\u304f\u3002`;\n\n      \/\/ \u8a9e\u6e90\u306e\u9023\u9396\n      const genealogy = `${g1} (\u57fa\u5e95: ${m1.name}) \uff0b ${g2} (\u99c6\u52d5: ${m2.name}) \uff0b ${g3}\/${g4} (\u52d5\u614b) \uff0b ${g6} (\u8cea\u611f: ${m6.name}) \uff0b ${g7} (\u6b21\u5143) \uff0b ${g9} (\u898f\u5f8b) \uff0b ${g10} (\u5668) \u2500\u2500 \u5341\u5c64\u306e\u89b3\u6e2c\u9580\u3092\u7d4c\u3066\u73fe\u8c61\u306e\u5168\u52d5\u614b\u304c\u7d71\u5408\u3055\u308c\u3001\u5ba2\u89b3\u7684\u5b87\u5b99\u306e\u5ea7\u6a19\u3068\u3057\u3066\u5b9a\u790e\u3055\u308c\u305f\u771f\u540d\u306e\u7cfb\u8b5c\u3002`;\n\n      return {\n        trueName,\n        trueKana,\n        title,\n        elem: {\n          term: g1,\n          kana: m1.kana,\n          nature: `${m1.name} \/ ${m2.name}`,\n          color: (g1 === \"Vohr\" ? \"var(--accent-vohr)\" : (g1 === \"Vod\" ? \"var(--accent-vod)\" : \"var(--accent-sha)\")),\n          locus: `${locusInfo.term} (${locusInfo.meaning})`\n        },\n        locusTerm: locusInfo.term,\n        locusKana: locusInfo.kana,\n        locusMeaning: locusInfo.meaning,\n        tex: {\n          term: g6,\n          desc: m6.desc\n        },\n        ves: {\n          term: g10,\n          concept: m10.name\n        },\n        verseText,\n        verseKana,\n        verseTrans,\n        exegesis,\n        genealogy\n      };\n    }\n\n    function calculateTrueName() {\n      const keys = [\"g1\", \"g2\", \"g3\", \"g4\", \"g5\", \"g6\", \"g7\", \"g8\", \"g9\", \"g10\"];\n      const missingIndex = keys.findIndex(k => !divinationState[k]);\n      if (missingIndex !== -1) {\n        const gateNumber = missingIndex + 1;\n        const gateCard = document.querySelectorAll(\".divination-gate-card\")[missingIndex];\n        if (gateCard) {\n          gateCard.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n          gateCard.style.transition = \"box-shadow 0.3s ease\";\n          gateCard.style.boxShadow = \"0 0 20px rgba(224, 108, 117, 0.6)\";\n          setTimeout(() => { gateCard.style.boxShadow = \"\"; }, 2000);\n        }\n        showToast(`\u7b2c${gateNumber}\u9580\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\uff08\u89b3\u6e2c\u5f85\u6a5f\u4e2d\uff09`);\n        return;\n      }\n      const res = synthesizeObservation(divinationState);\n      lastDivinationResult = res;\n\n      const container = document.getElementById(\"divination-result\");\n      container.style.display = \"block\";\n      container.innerHTML = `\n        <div class=\"result-aura-title\">\u3014 \u89b3\u6e2c\u4e8b\u8c61\u306e\u540c\u5b9a\u30fb\u771f\u540d\u5b9a\u790e \u3015<\/div>\n        <div class=\"result-name-box\">\n          <div class=\"result-truename\">${escapeHtml(res.trueName)}<\/div>\n          <div class=\"result-kana\">${escapeHtml(res.trueKana)}<\/div>\n          <div class=\"result-title-badge\">${escapeHtml(res.title)}<\/div>\n        <\/div>\n\n        <div class=\"result-tags\">\n          <span class=\"result-tag\" style=\"border-color: ${res.elem.color}; color: ${res.elem.color};\">\u57fa\u5e95\u30fb\u99c6\u52d5: ${escapeHtml(res.elem.nature)}<\/span>\n          <span class=\"result-tag\">\u52d5\u614b: ${escapeHtml(divinationState.g3)} \/ ${escapeHtml(divinationState.g4)} \/ ${escapeHtml(divinationState.g5)}<\/span>\n          <span class=\"result-tag\">\u8cea\u611f: ${escapeHtml(divinationState.g6)} (${escapeHtml(OBS_GATE_METADATA.g6.options[divinationState.g6].name)})<\/span>\n          <span class=\"result-tag\">\u6240\u5728\u6b21\u5143: ${escapeHtml(divinationState.g7)}<\/span>\n          <span class=\"result-tag\">\u5927\u6642\u9593: ${escapeHtml(divinationState.g8)}<\/span>\n          <span class=\"result-tag\">\u5668\u306e\u76f8: ${escapeHtml(divinationState.g10)} (${escapeHtml(OBS_GATE_METADATA.g10.options[divinationState.g10].name)})<\/span>\n        <\/div>\n\n        <div class=\"result-verse-box\">\n          <div style=\"font-size: 0.78rem; color: var(--text-muted); margin-bottom: 0.3rem;\">\u25c6 \u4e16\u754c\u306b\u5b9a\u790e\u3055\u308c\u305f\u5178\u7bc4\u8a69\u6b4c<\/div>\n          <div class=\"result-verse-text\">${escapeHtml(res.verseText)}<\/div>\n          <div style=\"font-size: 0.85rem; color: var(--accent-vohr); margin-bottom: 0.5rem;\">${escapeHtml(res.verseKana)}<\/div>\n          <div class=\"result-verse-trans\">${escapeHtml(res.verseTrans)}<\/div>\n        <\/div>\n\n        <div class=\"result-exegesis\">\n          <div style=\"font-weight: 600; color: var(--accent-gold); margin-bottom: 0.6rem; font-family: var(--font-serif);\">\u25c6 \u539f\u5178\u89e3\u984c\uff08\u73fe\u8c61\u306e\u5ba2\u89b3\u7684\u540c\u5b9a\uff09<\/div>\n          <div style=\"white-space: pre-wrap; line-height: 1.8; color: var(--text-main); font-size: 0.88rem;\">${escapeHtml(res.exegesis)}<\/div>\n          <div style=\"margin-top: 1.2rem; padding-top: 0.8rem; border-top: 1px dashed var(--border-subtle);\">\n            <div style=\"font-weight: 600; font-size: 0.82rem; color: var(--accent-vohr); margin-bottom: 0.3rem;\">\u25c7 \u8a9e\u6e90\u306e\u9023\u9396\uff08\u5b58\u5728\u5ea7\u6a19\u306e\u7cfb\u8b5c\uff09<\/div>\n            <div style=\"font-size: 0.84rem; color: var(--text-muted); line-height: 1.6;\">${escapeHtml(res.genealogy)}<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"result-actions\">\n          <button class=\"primary-btn\" onclick=\"saveDivinationToLexicon()\">\n            \u5178\u7bc4\u306b\u8a18\u9332\u3059\u308b\uff08\u4fdd\u5b58\uff09\n          <\/button>\n          <button class=\"secondary-btn\" onclick=\"sendDivinationToSentence()\">\n            \u69cb\u6587\u30d3\u30eb\u30c0\u30fc\u3078\u8ee2\u9001\n          <\/button>\n          <button class=\"secondary-btn\" onclick=\"copyDivinationResult()\">\n            \u89b3\u6e2c\u8a18\u9332\u3092\u30b3\u30d4\u30fc\n          <\/button>\n        <\/div>\n      `;\n\n      container.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n      showToast(`\u5b58\u5728\u5ea7\u6a19\u300c${res.trueName}\u300d\u3092\u5c0e\u51fa\u3057\u307e\u3057\u305f`);\n    }\n\n    function saveDivinationToLexicon() {\n      if (!lastDivinationResult) return;\n      const res = lastDivinationResult;\n\n      const entry = {\n        id: \"soul-\" + Date.now(),\n        type: \"soul\",\n        term: res.trueName,\n        kana: res.trueKana,\n        meaning: res.title + \" \/ \u8a69\u6b4c: \" + res.verseText,\n        exegesis: res.exegesis,\n        genealogy: res.genealogy,\n        components: [\n          `\u57fa\u5e95: ${divinationState.g1}`,\n          `\u99c6\u52d5: ${divinationState.g2}`,\n          `\u52d5\u614b: ${divinationState.g3}\/${divinationState.g4}\/${divinationState.g5}`,\n          `\u8cea\u611f: ${divinationState.g6}`,\n          `\u6b21\u5143: ${divinationState.g7}`,\n          `\u6642\u9593: ${divinationState.g8}`,\n          `\u898f\u5f8b: ${divinationState.g9}`,\n          `\u5668: ${divinationState.g10}`\n        ],\n        created: new Date().toISOString().split(\"T\")[0]\n      };\n\n      const list = getStoredLexicon();\n      list.unshift(entry);\n      saveStoredLexicon(list);\n      showToast(`\u771f\u540d\u300c${res.trueName}\u300d\u3092\u5178\u7bc4\u306b\u8a18\u9332\u3057\u307e\u3057\u305f`);\n    }\n\n    function copyDivinationResult() {\n      if (!lastDivinationResult) return;\n      const res = lastDivinationResult;\n\n      const copyText = `\u3014 \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb \u73fe\u8c61\u540c\u5b9a\u9580 \u3015\n\u771f\u540d: ${res.trueName} (${res.trueKana})\n\u5b9a\u790e: ${res.title}\n\n\u25c6 \u5178\u7bc4\u8a69\u6b4c:\n${res.verseText}\n${res.verseKana}\n${res.verseTrans}\n\n\u25c6 \u539f\u5178\u89e3\u984c:\n${res.exegesis}\n\n\u25c7 \u8a9e\u6e90\u306e\u9023\u9396:\n${res.genealogy}\n--\nSelath-Vohr Studio \u25c6 \u5b58\u5728\u5ea7\u6a19\u89b3\u6e2c\u9332`;\n\n      navigator.clipboard.writeText(copyText).then(() => {\n        showToast(\"\u89b3\u6e2c\u7d50\u679c\u3092\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f\");\n      }).catch(() => {\n        showToast(\"\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u3078\u306e\u30b3\u30d4\u30fc\u306b\u5931\u6557\u3057\u307e\u3057\u305f\");\n      });\n    }\n\n    function sendDivinationToSentence() {\n      if (!lastDivinationResult) return;\n      const res = lastDivinationResult;\n      \n      state.phenomenon = {\n        term: res.trueName,\n        kana: res.trueKana,\n        meaning: res.title\n      };\n      document.getElementById(\"sentence-phenomenon\").value = res.trueName;\n      document.getElementById(\"sentence-phenomenon-desc\").textContent = `${res.trueKana} \/ ${res.title}`;\n      \n      const locusTerm = res.locusTerm;\n      const locusKana = res.locusKana;\n      const locusMeaning = res.locusMeaning;\n\n      state.locus = {\n        term: locusTerm,\n        kana: locusKana,\n        meaning: locusMeaning\n      };\n      document.getElementById(\"sentence-locus\").value = locusTerm;\n      const locusDescEl = document.getElementById(\"sentence-locus-desc\");\n      if (locusDescEl) {\n        locusDescEl.textContent = `${locusKana} \/ ${locusMeaning}`;\n      }\n\n      \/\/ \u5927\u6642\u9593\u306e\u6ce2\u3082\u540c\u671f\n      const macroTerm = divinationState.g8 || \"Tri\";\n      const macroOpt = OBS_GATE_METADATA.g8.options[macroTerm];\n      if (macroOpt) {\n        state.macroTime = {\n          term: macroOpt.label,\n          kana: macroOpt.kana,\n          meaning: `\u3010${macroOpt.name}\u3011${macroOpt.desc}`\n        };\n        document.querySelectorAll(\".macro-btn\").forEach(b => {\n          if (b.querySelector(\".term\") && b.querySelector(\".term\").textContent.trim() === macroTerm) {\n            b.classList.add(\"selected\");\n          } else {\n            b.classList.remove(\"selected\");\n          }\n        });\n      }\n      \n      switchTabDirect(\"sentence\");\n      updateSentencePreview();\n      showToast(`\u69cb\u6587\u30d3\u30eb\u30c0\u30fc\u3078\u300c${res.trueName}\u300d\u3092\u8ee2\u9001\u3057\u307e\u3057\u305f`);\n    }\n\n    window.addEventListener(\"DOMContentLoaded\", () => {\n      updateComposerPreview();\n      updateSentencePreview();\n      renderCatalogList();\n      switchTabDirect(\"guide\");\n    });\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>SELATH-VOHR STUDIO \u25c6 \u9759\u5bc2\u306e\u8a00\u8a9e\uff08\u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\uff09\u5275\u4f5c\u5de5\u623f\u30fb\u4f53\u7cfb\u5178\u7bc4\u5ba4 \u25c6 \u30bb\u30e9\u30b9\u30fb\u30f4\u30a9\u30fc\u30eb\u3068\u306f \u25c6 \u5178\u7bc4\u76ee\u9332\uff08\u5927\u7cfb\u9332\uff09 \u25c6 \u73fe\u8c61\u8abf\u5408\u5668 \u25c6 \u69cb\u6587\u30d3\u30eb\u30c0\u30fc \u25c6 \u73fe\u8c61\u540c\u5b9a\u9580 \u25c6 \u5178\u7bc4\u8f9e\u66f8\uff08\u30ab\u30fc\u30c9\uff09 \u25c6 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"001","meta":{"footnotes":""},"class_list":["post-593","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/saien-no-niwa.voddolesu.art\/index.php?rest_route=\/wp\/v2\/pages\/593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/saien-no-niwa.voddolesu.art\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/saien-no-niwa.voddolesu.art\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/saien-no-niwa.voddolesu.art\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/saien-no-niwa.voddolesu.art\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=593"}],"version-history":[{"count":4,"href":"https:\/\/saien-no-niwa.voddolesu.art\/index.php?rest_route=\/wp\/v2\/pages\/593\/revisions"}],"predecessor-version":[{"id":601,"href":"https:\/\/saien-no-niwa.voddolesu.art\/index.php?rest_route=\/wp\/v2\/pages\/593\/revisions\/601"}],"wp:attachment":[{"href":"https:\/\/saien-no-niwa.voddolesu.art\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}