{"id":14514,"date":"2026-01-13T13:05:34","date_gmt":"2026-01-13T13:05:34","guid":{"rendered":"https:\/\/seikaku-type.com\/enneagram-session\/?post_type=diagnosis&#038;p=14514"},"modified":"2026-01-13T13:25:19","modified_gmt":"2026-01-13T13:25:19","slug":"bata","status":"publish","type":"diagnosis","link":"https:\/\/seikaku-type.com\/enneagram-session\/diagnosis\/bata\/","title":{"rendered":"bata"},"content":{"rendered":"\n<div style=\"background-image:url(https:\/\/seikaku-type.com\/enneagram-session\/wp-content\/uploads\/24996912_m.jpg);background-position:50% 50%;--bg-position-mobile:50% 50%;--bg-position-tablet:50% 50%;--min-height-mobile:auto;--min-height-tablet:auto;--min-height-pc:auto\" class=\"wp-block-vk-blocks-outer vkb-outer-083364ec-feb3-4471-97ad-55fad31977fd vk_outer vk_outer-width-full alignfull vk_outer-paddingLR-none vk_outer-paddingVertical-use vk_outer-bgPosition-normal\"><style>\n\t\t\t\t.vkb-outer-083364ec-feb3-4471-97ad-55fad31977fd {\n\t\t\t\t\tbackground-image: url(https:\/\/seikaku-type.com\/enneagram-session\/wp-content\/uploads\/24996912_m.jpg) !important;\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t@media screen and (max-width: 575.98px) {\n\t\t\t\t.vkb-outer-083364ec-feb3-4471-97ad-55fad31977fd {\n\t\t\t\t\tbackground-position: 50% 50%!important;\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t@media screen and (min-width: 576px) {\n\t\t\t\t.vkb-outer-083364ec-feb3-4471-97ad-55fad31977fd {\n\t\t\t\t\tbackground-position: 50% 50%!important;\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t@media screen and (min-width: 992px) {\n\t\t\t\t.vkb-outer-083364ec-feb3-4471-97ad-55fad31977fd {\n\t\t\t\t\tbackground-position: 50% 50%!important;\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t<\/style><span class=\"vk_outer-background-area has-background has-background-dim\" style=\"background-color:#f3f4f5;opacity:0.5\"><\/span><div><div class=\"vk_outer_container is-layout-flow wp-block-vk-blocks-outer-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js\"><\/script>\r\n<style>\r\n  \/* --- Scope: #line-diag --- *\/\r\n  #line-diag {\r\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\r\n    color: #111;\r\n    background: #fff;\r\n    line-height: 1.6;\r\n    max-width: 600px;\r\n    margin: 0 auto;\r\n    padding: 20px 0;\r\n    box-sizing: border-box;\r\n  }\r\n  #line-diag * { box-sizing: border-box; }\r\n\r\n  \/* Utilities *\/\r\n  #line-diag .d-hidden { display: none !important; }\r\n  #line-diag .d-text-center { text-align: center; }\r\n  #line-diag .d-bold { font-weight: 700; }\r\n  \r\n  \/* Titles *\/\r\n  #line-diag .d-main-title {\r\n    font-size: 22px;\r\n    font-weight: bold;\r\n    color: #111;\r\n    margin-bottom: 24px;\r\n    text-align: center;\r\n  }\r\n  #line-diag .d-sub-title {\r\n    font-size: 14px;\r\n    color: #666;\r\n    margin-top: -15px;\r\n    margin-bottom: 30px;\r\n    text-align: center;\r\n  }\r\n  \r\n  \/* Buttons *\/\r\n  #line-diag .d-btn {\r\n    display: block;\r\n    width: 100%;\r\n    max-width: 320px;\r\n    margin: 15px auto;\r\n    padding: 16px;\r\n    font-size: 16px;\r\n    font-weight: bold;\r\n    color: #fff;\r\n    background: #06C755; \/* LINE Green *\/\r\n    border: none;\r\n    border-radius: 8px;\r\n    cursor: pointer;\r\n    text-decoration: none;\r\n    text-align: center;\r\n    transition: background 0.2s;\r\n  }\r\n  #line-diag .d-btn:hover { background: #05b34c; }\r\n  #line-diag .d-btn:active { transform: translateY(1px); }\r\n  \r\n  #line-diag .d-btn-outline {\r\n    background: #fff;\r\n    border: 1px solid #06C755;\r\n    color: #06C755;\r\n  }\r\n  #line-diag .d-btn-outline:hover { background: #f0fbf4; }\r\n  \r\n  #line-diag .d-btn-back {\r\n    background: #f0f0f0;\r\n    color: #333;\r\n    width: auto;\r\n    padding: 10px 30px;\r\n    margin: 20px auto 0;\r\n  }\r\n  #line-diag .d-btn-back:hover { background: #e0e0e0; }\r\n\r\n  \/* Menu Grid *\/\r\n  #line-diag .menu-grid {\r\n    display: grid;\r\n    gap: 15px;\r\n    padding: 0 10px;\r\n  }\r\n  #line-diag .menu-card {\r\n    background: #fff;\r\n    border: 1px solid #eee;\r\n    border-radius: 12px;\r\n    padding: 20px;\r\n    cursor: pointer;\r\n    transition: all 0.2s;\r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.05);\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    text-align: center;\r\n  }\r\n  #line-diag .menu-card:hover {\r\n    border-color: #06C755;\r\n    background: #f9fffb;\r\n    transform: translateY(-2px);\r\n  }\r\n  #line-diag .menu-icon {\r\n    font-size: 24px;\r\n    margin-bottom: 10px;\r\n    color: #06C755;\r\n  }\r\n  #line-diag .menu-title { font-size: 16px; font-weight: bold; color: #111; margin-bottom: 5px; }\r\n  #line-diag .menu-desc { font-size: 12px; color: #888; line-height: 1.4; }\r\n\r\n  \/* Progress *\/\r\n  #line-diag .progress-area { max-width:400px; margin: 20px auto; text-align: center; }\r\n  #line-diag .progress-bg { background: #eee; height: 4px; border-radius: 2px; overflow: hidden; margin-top: 5px; }\r\n  #line-diag .progress-bar { background: #06C755; height: 100%; width: 0%; transition: width 0.3s; }\r\n\r\n  \/* Question Card *\/\r\n  #line-diag .q-card {\r\n    background: #fff;\r\n    padding: 30px 15px;\r\n    text-align: center;\r\n    animation: fadeIn 0.4s ease;\r\n  }\r\n  #line-diag .q-text { font-size: 18px; font-weight: bold; margin-bottom: 30px; display: block; line-height: 1.5; min-height: 70px; text-align:center; }\r\n\r\n  \/* Scales *\/\r\n  #line-diag .scale-wrap {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n    max-width: 400px;\r\n    margin: 0 auto;\r\n    position: relative;\r\n    padding: 10px 0;\r\n  }\r\n  #line-diag .scale-line {\r\n    position: absolute;\r\n    top: 50%;\r\n    left: 10px;\r\n    right: 10px;\r\n    height: 1px;\r\n    background: #ddd;\r\n    z-index: 0;\r\n  }\r\n  #line-diag .scale-btn {\r\n    width: 36px;\r\n    height: 36px;\r\n    border-radius: 50%;\r\n    background: #fff;\r\n    border: 1px solid #ccc;\r\n    cursor: pointer;\r\n    z-index: 1;\r\n    transition: all 0.2s;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    font-size: 12px;\r\n    color: #666;\r\n    font-weight: bold;\r\n  }\r\n  #line-diag .scale-btn[data-val=\"1\"], \r\n  #line-diag .scale-btn[data-val=\"7\"] { width: 48px; height: 48px; font-size: 14px; border-color: #06C755; color: #06C755; background: #f0fbf4; }\r\n  #line-diag .scale-btn[data-val=\"4\"] { width: 24px; height: 24px; background: #eee; border: none; color: transparent; }\r\n  \r\n  #line-diag .scale-btn:active { transform: scale(0.95); }\r\n  #line-diag .scale-btn.selected {\r\n    background: #06C755;\r\n    border-color: #06C755;\r\n    color: #fff;\r\n    transform: scale(1.1);\r\n    box-shadow: 0 2px 8px rgba(6, 199, 85, 0.4);\r\n  }\r\n  \r\n  #line-diag .scale-labels {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    font-size: 11px;\r\n    color: #888;\r\n    margin-top: 15px;\r\n    max-width: 400px;\r\n    margin-left: auto;\r\n    margin-right: auto;\r\n  }\r\n\r\n  \/* Result Area *\/\r\n  #line-diag .result-container {\r\n    background: #fff;\r\n    padding: 40px 20px;\r\n    text-align: center;\r\n    border: 1px solid #eee;\r\n  }\r\n  \r\n  #line-diag .res-grid {\r\n    display: grid;\r\n    grid-template-columns: 1fr 1fr;\r\n    gap: 20px;\r\n    margin: 30px 0;\r\n    text-align: left;\r\n  }\r\n  #line-diag .res-card {\r\n    background: #f9f9f9;\r\n    border-radius: 12px;\r\n    padding: 20px;\r\n    border-left: 5px solid #ccc;\r\n  }\r\n  #line-diag .res-card.ideal { border-left-color: #06C755; background: #f0fbf4; }\r\n  #line-diag .res-card.real { border-left-color: #333; }\r\n\r\n  #line-diag .res-tag {\r\n    display: inline-block;\r\n    font-size: 10px;\r\n    padding: 3px 8px;\r\n    border-radius: 4px;\r\n    margin-bottom: 8px;\r\n    font-weight: bold;\r\n    letter-spacing: 1px;\r\n  }\r\n  #line-diag .res-card.ideal .res-tag { background: #06C755; color: #fff; }\r\n  #line-diag .res-card.real .res-tag { background: #333; color: #fff; }\r\n\r\n  #line-diag .res-type { font-size: 20px; font-weight: bold; color: #111; margin-bottom: 5px; line-height: 1.2; }\r\n  #line-diag .res-name { font-size: 12px; color: #666; margin-bottom: 10px; font-weight: bold; }\r\n  #line-diag .res-desc { font-size: 12px; color: #444; line-height: 1.5; margin-bottom: 10px;}\r\n  #line-diag .res-sub-info { \r\n    font-size: 11px; color: #666; \r\n    border-top: 1px dashed #ddd; \r\n    padding-top: 8px; \r\n    margin-top: 8px;\r\n  }\r\n\r\n  #line-diag .gap-box {\r\n    background: #333;\r\n    color: #fff;\r\n    padding: 20px;\r\n    border-radius: 12px;\r\n    font-size: 13px;\r\n    margin-top: 20px;\r\n    text-align: center;\r\n  }\r\n\r\n  @media (max-width: 600px) {\r\n    #line-diag .res-grid { grid-template-columns: 1fr; }\r\n    #line-diag .scale-btn[data-val=\"1\"], #line-diag .scale-btn[data-val=\"7\"] { width: 40px; height: 40px; }\r\n  }\r\n<\/style>\r\n<div id=\"line-diag\">\r\n  <div id=\"screen-menu\">\r\n    <div class=\"d-main-title\">\u81ea\u5df1\u5206\u6790\u30fb\u7d71\u5408\u8a3a\u65ad\u30c6\u30b9\u30c8<\/div>\r\n    <div class=\"d-sub-title\">\u30da\u30eb\u30bd\u30ca(\u7406\u60f3) \u3068 \u672c\u8cea(\u73fe\u5b9f) \u306e\u30ae\u30e3\u30c3\u30d7\u3092\u6e2c\u5b9a<\/div>\r\n\r\n    <div class=\"menu-grid\">\r\n      <div class=\"menu-card\" onclick=\"LineDiag.start('ennea')\">\r\n        <div class=\"menu-title\">\u30a8\u30cb\u30a2\u30b0\u30e9\u30e0\u8a3a\u65ad<\/div>\r\n        <div class=\"menu-desc\">\u5185\u5074\u306e\u52d5\u6a5f\u30686\u3064\u306e\u672c\u80fd<br>\uff0827\u554f\uff09<\/div>\r\n      <\/div>\r\n      \r\n      <div class=\"menu-card\" onclick=\"LineDiag.start('mbti')\">\r\n        <div class=\"menu-title\">16\u6027\u683c\u30bf\u30a4\u30d7\u8a3a\u65ad<\/div>\r\n        <div class=\"menu-desc\">\u8a8d\u77e5\u306e\u30af\u30bb\u3068\u884c\u52d5\u30d1\u30bf\u30fc\u30f3<br>\uff0818\u554f\uff09<\/div>\r\n      <\/div>\r\n      \r\n      <div class=\"menu-card\" onclick=\"LineDiag.start('socio')\">\r\n        <div class=\"menu-title\">\u30bd\u30b7\u30aa\u30cb\u30af\u30b9<\/div>\r\n        <div class=\"menu-desc\">\u793e\u4f1a\u7684\u306a\u5f79\u5272\u3068\u9069\u6027<br>\uff0818\u554f\uff09<\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div id=\"screen-quiz\" class=\"d-hidden\">\r\n    <div class=\"progress-area\">\r\n      <div style=\"display:flex; justify-content:space-between; font-size:11px; color:#888;\">\r\n        <span>Q. <span id=\"curr-num\">1<\/span><\/span>\r\n        <span>\/ <span id=\"total-num\">27<\/span><\/span>\r\n      <\/div>\r\n      <div class=\"progress-bg\"><div class=\"progress-bar\" id=\"p-bar\"><\/div><\/div>\r\n    <\/div>\r\n\r\n    <div id=\"q-container\"><\/div>\r\n    \r\n    <button class=\"d-btn d-btn-back\" onclick=\"LineDiag.prev()\">\u623b\u308b<\/button>\r\n  <\/div>\r\n\r\n  <div id=\"screen-result\" class=\"d-hidden\">\r\n    <div id=\"result-capture-area\" class=\"result-container\">\r\n      <div class=\"d-main-title\" style=\"margin-bottom:5px;\">Diagnosis Result<\/div>\r\n      <p style=\"font-size:11px; color:#888; margin-top:0;\">\u8a3a\u65ad\u65e5: <span id=\"today-date\"><\/span><\/p>\r\n      \r\n      <div class=\"res-grid\">\r\n        <div class=\"res-card ideal\">\r\n          <span class=\"res-tag\">\u30da\u30eb\u30bd\u30ca (\u9858\u671b)<\/span>\r\n          <div class=\"res-type\" id=\"res-ideal-type\">Type X<\/div>\r\n          <div class=\"res-name\" id=\"res-ideal-name\">...<\/div>\r\n          <div class=\"res-desc\" id=\"res-ideal-desc\">...<\/div>\r\n          <div class=\"res-sub-info\" id=\"res-ideal-sub\"><\/div>\r\n        <\/div>\r\n        \r\n        <div class=\"res-card real\">\r\n          <span class=\"res-tag\">\u672c\u8cea (\u73fe\u5b9f)<\/span>\r\n          <div class=\"res-type\" id=\"res-real-type\">Type Y<\/div>\r\n          <div class=\"res-name\" id=\"res-real-name\">...<\/div>\r\n          <div class=\"res-desc\" id=\"res-real-desc\">...<\/div>\r\n          <div class=\"res-sub-info\" id=\"res-real-sub\"><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"gap-box\">\r\n        <div style=\"font-weight:bold; margin-bottom:5px; color:#06C755;\">\u25cf \u5206\u6790\u30b5\u30de\u30ea\u30fc<\/div>\r\n        <span id=\"gap-message\"><\/span>\r\n      <\/div>\r\n    <\/div>\r\n    \r\n    <div style=\"padding: 0 20px;\">\r\n      <button class=\"d-btn\" onclick=\"LineDiag.saveImage()\">\u753b\u50cf\u3092\u4fdd\u5b58\u3059\u308b<\/button>\r\n      <button class=\"d-btn d-btn-outline\" style=\"margin-top:10px;\" onclick=\"location.reload()\">\u30c8\u30c3\u30d7\u306b\u623b\u308b<\/button>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\nconst LineDiag = (function() {\r\n  \/\/ --- Data ---\r\n  \r\n  \/\/ Enneagram (27 Qs: 3 inst * 9 types)\r\n  const qsEnnea = [\r\n    \/\/ Type 1\r\n    { id:'1', inst:'sp', text:'\u6642\u9593\u3084\u7d04\u675f\u3001\u7d30\u90e8\u306e\u30eb\u30fc\u30eb\u3092\u5b88\u308c\u306a\u3044\u4eba\u3092\u898b\u308b\u3068\u30a4\u30e9\u30a4\u30e9\u3059\u308b\u3002' },\r\n    { id:'1', inst:'sx', text:'\u300c\u3053\u3046\u3042\u308b\u3079\u304d\u300d\u3068\u3044\u3046\u7406\u60f3\u3092\u3001\u5468\u308a\u306e\u4eba\u305f\u3061\u3068\u5171\u6709\u3057\u305f\u3044' },\r\n    { id:'1', inst:'so', text:'\u9593\u9055\u3044\u3084\u6020\u60f0\u3092\u767a\u898b\u3059\u308b\u3068\u3001\u3064\u3044\u53e3\u51fa\u3057\u3057\u305f\u304f\u306a\u308b\u304c\u3001\u6211\u6162\u3057\u3066\u3044\u308b\u3002' },\r\n    \/\/ Type 2\r\n    { id:'2', inst:'sp', text:'\u7686\u304b\u3089\u53ef\u611b\u304c\u3089\u308c\u308b\u300c\u5b58\u5728\u300d\u3092\u610f\u8b58\u3057\u3066\u3044\u308b\u3002\u5b50\u4f9b\u3063\u307d\u3044\u5370\u8c61\u304c\u3042\u308b' },\r\n    { id:'2', inst:'sx', text:'\u597d\u304d\u306a\u4eba\u306b\u306f\u81ea\u5206\u30ab\u30e9\u51f8\u3059\u308b\u3002\u76f8\u624b\u304b\u3089\u3069\u3046\u601d\u308f\u308c\u308b\u304b\u306f\u5225' },\r\n    { id:'2', inst:'so', text:'\u7686\u304b\u3089\u300c\u5909\u308f\u308a\u306f\u3044\u306a\u3044\u4eba\u300d\u3060\u3068\u601d\u308f\u308c\u305f\u3044\u3002\u305d\u306e\u52aa\u529b\u3082\u3057\u3066\u3044\u308b' },\r\n    \/\/ Type 3\r\n    { id:'3', inst:'sp', text:'\u540d\u58f0\u3088\u308a\u3082\u3001\u78ba\u5b9f\u306a\u6210\u679c\u3084\u7269\u8cea\u7684\u306a\u5b89\u5b9a\uff08\u8cc7\u7523\u30fb\u30ad\u30e3\u30ea\u30a2\uff09\u3092\u7a4d\u307f\u4e0a\u3052\u305f\u3044\u3002' },\r\n    { id:'3', inst:'sx', text:'\u3044\u304f\u3064\u306b\u306a\u3063\u3066\u3082\u3001\u82e5\u3005\u3057\u304f\u9b45\u529b\u7684\u3067\u3042\u308a\u305f\u3044\u3002\u7d76\u5bfe\u306b\u8001\u3051\u8fbc\u307f\u305f\u304f\u306a\u3044' },\r\n    { id:'3', inst:'so', text:'\u80a9\u66f8\u304d\u3084\u7d4c\u6b74\u306b\u57f7\u7740\u3059\u308b\u3002\u793e\u4f1a\u7684\u306a\u30b9\u30c6\u30fc\u30bf\u30b9\u306f\u3001\u4eba\u751f\u306b\u304a\u3044\u3066\u5fc5\u8981' },\r\n    \/\/ Type 4\r\n    { id:'4', inst:'sp', text:'\u81ea\u5206\u306e\u7f8e\u5b66\u3084\u4e16\u754c\u89b3\u3092\u7dad\u6301\u3057\u305f\u3044\u3002\u305d\u306e\u305f\u3081\u306b\u4e0d\u5408\u7406\u3001\u82e6\u52b4\u3092\u53d7\u3051\u5165\u308c\u308b' },\r\n    { id:'4', inst:'sx', text:'\u5e73\u7a4f\u306a\u95a2\u4fc2\u3088\u308a\u3082\u3001\u611f\u60c5\u3092\u6fc0\u3057\u304f\u63fa\u3055\u3076\u3089\u308c\u308b\u30c9\u30e9\u30de\u30c1\u30c3\u30af\u306a\u95a2\u4fc2\u3092\u597d\u3080' },\r\n    { id:'4', inst:'so', text:'\u30b0\u30eb\u30fc\u30d7\u5185\u3067\u306f\u300c\u5909\u308f\u308a\u8005\u300d\u3060\u3068\u601d\u3046\u3002\u7d76\u5bfe\u306b\u666e\u901a\u306b\u306a\u308b\u6c17\u306f\u306a\u3044' },\r\n    \/\/ Type 5\r\n    { id:'5', inst:'sp', text:'\u904e\u53bb\u3092\u632f\u308a\u8fd4\u308b\u3001\u8ab0\u3088\u308a\u3082\u5b66\u696d\u306b\u52b1\u3093\u3067\u304d\u305f\u307b\u3046\u3060\u3068\u601d\u3046\u3002\u4eba\u3088\u308a\u672c\u3092\u8aad\u3080' },\r\n    { id:'5', inst:'sx', text:'\u81ea\u5206\u306e\u6df1\u9060\u306a\u4e16\u754c\u3092\u5b8c\u5168\u306b\u5171\u6709\u3067\u304d\u308b\u7406\u89e3\u8005\u3092\u63a2\u3057\u6c42\u3081\u3066\u3044\u308b' },\r\n    { id:'5', inst:'so', text:'\u5c02\u9580\u77e5\u8b58\u3084\u6280\u8853\u3092\u6d3b\u304b\u3057\u3066\u3001\u81ea\u5206\u306e\u5b89\u5168\u5730\u5e2f\u3092\u78ba\u7acb\u3057\u305f\u3044\u3002\u5b9f\u969b\u306b\u305d\u3046\u306a\u3063\u305f' },\r\n    \/\/ Type 6\r\n    { id:'6', inst:'sp', text:'\u5e38\u306b\u6700\u60aa\u306e\u4e8b\u614b\u3092\u60f3\u5b9a\u3057\u3066\u5099\u3048\u308b\u3002\u5148\u306e\u5c55\u958b\u3092\u4e88\u6e2c\u3057\u306a\u304c\u3089\u52d5\u3051\u308b' },\r\n    { id:'6', inst:'sx', text:'\u60a9\u3093\u3060\u308a\u8ff7\u3063\u305f\u308a\u3057\u305f\u6642\u306b\u76f8\u8ac7\u3067\u304d\u308b\u76f8\u624b\u304c\u3044\u308b\u3068\u3001\u3064\u3044\u4f9d\u5b58\u3057\u3066\u3057\u307e\u3046' },\r\n    { id:'6', inst:'so', text:'\u90f7\u306b\u5165\u308c\u3070\u90f7\u306b\u5f93\u3048\uff01\u3092\u5fb9\u5e95\u3059\u308b\u3002\u30eb\u30fc\u30eb\u3092\u7834\u308b\u4eba\u306f\u6392\u9664\u3057\u3088\u3046\u3068\u8003\u3048\u308b' },\r\n    \/\/ Type 7\r\n    { id:'7', inst:'sp', text:'\u4eba\u751f\u3092\u697d\u3057\u3080\u3053\u3068\u306b\u306f\u8ab0\u3088\u308a\u3082\u8caa\u6b32\u3067\u3042\u308b\u3002\u82e6\u52b4\u306f\u907f\u3051\u3001\u697d\u3057\u3044\u4e8b\u3060\u3051\u3057\u305f\u3044' },\r\n    { id:'7', inst:'sx', text:'\u5e38\u306b\u523a\u6fc0\u3084\u5feb\u697d\u306b\u89e6\u308c\u3066\u3044\u305f\u3044\u3002\u6642\u306e\u7d4c\u904e\u3084\u52a0\u9f62\u306b\u3088\u308b\u52a3\u5316\u306f\u8003\u3048\u305f\u304f\u306a\u3044' },\r\n    { id:'7', inst:'so', text:'\u3053\u306e\u4e16\u754c\u306f\u9000\u5c48\u3060\u3068\u601d\u3046\u3002\u53ef\u80fd\u3067\u3042\u308c\u3070\u3001\u4f55\u3089\u304b\u306e\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u5b58\u5728\u3067\u3042\u308a\u305f\u3044' },\r\n    \/\/ Type 8\r\n    { id:'8', inst:'sp', text:'\u81ea\u5206\u306e\u7e04\u5f35\u308a\uff08\u30d3\u30b8\u30cd\u30b9\u3001\u5bb6\u5ead\uff09\u306e\u751f\u5b58\u3068\u7e41\u6804\u304c\u6700\u512a\u5148\u3002\u305d\u306e\u529b\u304c\u6b32\u3057\u3044' },\r\n    { id:'8', inst:'sx', text:'\u30b8\u30e3\u30a4\u30a2\u30f3\u3084\u9053\u660e\u5bfa\u306e\u3088\u3046\u306b\u300c\u304a\u524d\u306f\u4ffa\u306e\u30e2\u30ce\u3060\u300d\u3068\u8a00\u3044\u5207\u308a\u305f\u3044\u6c17\u6301\u3061\u304c\u3042\u308b' },\r\n    { id:'8', inst:'so', text:'\u77e5\u4eba\u30fb\u53cb\u4eba\u30fb\u90e8\u4e0b\u306a\u3069\u3001\u3053\u308c\u307e\u3067\u51fa\u4f1a\u3063\u305f\u4eba\u305f\u3061\u3068\u5bb6\u65cf\u306e\u3088\u3046\u306a\u3064\u306a\u304c\u308a\u3092\u4f5c\u308a\u305f\u3044' },\r\n    \/\/ Type 9\r\n    { id:'9', inst:'sp', text:'\u904e\u9177\u306a\u73fe\u5b9f\u306b\u5bfe\u5cd9\u3059\u308b\u305f\u3081\u306b\u3001\u81ea\u5206\u72ec\u81ea\u306e\u4f11\u61a9\u6642\u9593\/\u30e1\u30f3\u30bf\u30eb\u56de\u5fa9\u30bf\u30a4\u30e0\u304c\u3042\u308b\u3002' },\r\n    { id:'9', inst:'sx', text:'\u3072\u3068\u308a\u3067\u3044\u308b\u3088\u308a\u306f\u8ab0\u304b\u304c\u508d\u306b\u3044\u3066\u304f\u308c\u305f\u307b\u3046\u304c\u5b89\u5fc3\u3059\u308b\u3002\u5b64\u72ec\u306b\u8010\u3048\u3089\u308c\u306a\u3044' },\r\n    { id:'9', inst:'so', text:'\u307f\u3093\u306a\u304c\u697d\u3057\u3051\u308c\u3070\u3001\u5e78\u305b\u306a\u3089\u81ea\u5206\u306a\u3093\u3066\u3069\u3046\u3067\u3082\u3044\u3044...\u3068\u601d\u3046\u4e8b\u304c\u591a\u3005\u3042\u308b' }\r\n  ];\r\n\r\n  \/\/ MBTI (18 Qs)\r\n  const qsMbti = [\r\n    { type:'club', left:'ST', right:'SF', text:'\u5224\u65ad\u306e\u57fa\u6e96\u306f\uff1f', lLabel:'\u4e8b\u5b9f\u3068\u52b9\u7387', rLabel:'\u7686\u306e\u6c17\u6301\u3061' },\r\n    { type:'club', left:'SF', right:'NF', text:'\u91cd\u8996\u3059\u308b\u306e\u306f\uff1f', lLabel:'\u4eca\u306e\u95a2\u4fc2\u6027', rLabel:'\u3042\u308b\u3079\u304d\u59ff' },\r\n    { type:'club', left:'SF', right:'NT', text:'\u8077\u5834\u3067\u306e\u3042\u306a\u305f\u306f\uff1f', lLabel:'\u53cb\u597d\u7684\u306b\u632f\u821e\u3046', rLabel:'\u4eba\u3068\u8ddd\u96e2\u3092\u7f6e\u304f' },\r\n    { type:'club', left:'ST', right:'NF', text:'\u7d0d\u5f97\u3067\u304d\u308b\u306e\u306f\uff1f', lLabel:'\u76ee\u306b\u898b\u3048\u308b\u5b9f\u7e3e', rLabel:'\u672a\u6765\u306e\u53ef\u80fd\u6027' },\r\n    { type:'club', left:'ST', right:'NT', text:'\u8208\u5473\u304c\u3042\u308b\u306e\u306f\uff1f', lLabel:'\u5b9f\u7528\u7684\u306a\u624b\u6bb5', rLabel:'\u67a0\u3092\u8d85\u3048\u305f\u767a\u60f3' },\r\n    { type:'club', left:'NT', right:'NF', text:'\u8b70\u8ad6\u306e\u30b4\u30fc\u30eb\u306f\uff1f', lLabel:'\u767d\u9ed2\u30cf\u30c3\u30ad\u30ea', rLabel:'\u9055\u3044\u3092\u7406\u89e3' },\r\n    { type:'temp', left:'ExxJ', right:'ExxP', text:'\u884c\u52d5\u30b9\u30bf\u30a4\u30eb\u306f\uff1f', lLabel:'\u8a08\u753b\u901a\u308a\u306b\u52d5\u304b\u3059', rLabel:'\u81e8\u6a5f\u5fdc\u5909\u306b\u52d5\u304f' },\r\n    { type:'temp', left:'ExxJ', right:'IxxJ', text:'\u8cac\u4efb\u306e\u53d6\u308a\u65b9\u306f\uff1f', lLabel:'\u5148\u982d\u3067\u6307\u63ee', rLabel:'\u80cc\u5f8c\u3067\u652f\u3048\u308b' },\r\n    { type:'temp', left:'ExxJ', right:'IxxP', text:'\u30da\u30fc\u30b9\u914d\u5206\u306f\uff1f', lLabel:'\u65e9\u304f\u6c7a\u7740', rLabel:'\u7d0d\u5f97\u307e\u3067\u8ffd\u6c42' },\r\n    { type:'temp', left:'ExxP', right:'IxxJ', text:'\u5909\u5316\u306b\u5bfe\u3057\u3066\uff1f', lLabel:'\u697d\u3057\u3080\u30fb\u6c42\u3081\u308b', rLabel:'\u614e\u91cd\u306b\u5099\u3048\u308b' },\r\n    { type:'temp', left:'ExxP', right:'IxxP', text:'\u8208\u5473\u306e\u5bfe\u8c61\u306f\uff1f', lLabel:'\u5e83\u304f\u30fb\u6d45\u304f', rLabel:'\u6df1\u304f\u30fb\u72ed\u304f' },\r\n    { type:'temp', left:'IxxJ', right:'IxxP', text:'\u30c8\u30e9\u30d6\u30eb\u304c\u767a\u751f\u3057\u305f\u3089\uff1f', lLabel:'\u81e8\u6a5f\u5fdc\u5909\u306b\u5bfe\u5fdc', rLabel:'\u307e\u305a\u8eab\u3092\u5f15\u304f' },\r\n    { type:'sub', left:'D', right:'C', text:'\u7406\u60f3\u306e\u30ea\u30fc\u30c0\u30fc\u50cf\u306f\uff1f', lLabel:'\u76ee\u6a19\u9054\u6210\u306b\u8caa\u6b32', rLabel:'\u65b0\u3057\u3044\u53ef\u80fd\u6027\u3092\u793a\u3059' },\r\n    { type:'sub', left:'D', right:'N', text:'\u7d44\u7e54\u306b\u5fc5\u8981\u306a\u306e\u306f\uff1f', lLabel:'\u5f37\u3044\u30ea\u30fc\u30c0\u30fc', rLabel:'\u30a4\u30f3\u30d5\u30e9\u3084\u4ed5\u7d44\u307f' },\r\n    { type:'sub', left:'D', right:'H', text:'\u30c8\u30e9\u30d6\u30eb\u6642\u306f\uff1f', lLabel:'\u5373\u65ad\u5373\u6c7a', rLabel:'\u8abf\u6574\u30fb\u4ef2\u88c1' },\r\n    { type:'sub', left:'C', right:'N', text:'\u5f97\u610f\u306a\u30a2\u30d7\u30ed\u30fc\u30c1\u306f\uff1f', lLabel:'\u67a0\u304b\u3089\u629c\u3051\u51fa\u3059', rLabel:'\u73fe\u72b6\u3092\u7dad\u6301\u3059\u308b' },\r\n    { type:'sub', left:'C', right:'H', text:'\u60a9\u307f\u76f8\u8ac7\u3055\u308c\u305f\u3089\u3069\u3063\u3061\uff1f', lLabel:'\u65ac\u65b0\u306a\u63d0\u6848', rLabel:'\u9ed9\u3063\u3066\u50be\u8074' },\r\n    { type:'sub', left:'N', right:'H', text:'\u5b89\u5b9a\u306b\u4e0d\u53ef\u6b20\u306a\u306e\u306f\uff1f', lLabel:'\u30eb\u30fc\u30eb\u30fb\u4ed5\u7d44\u307f', rLabel:'\u4eba\u9593\u95a2\u4fc2' }\r\n  ];\r\n\r\n  \/\/ Socionics (18 Qs)\r\n  const qsSocio = [\r\n    { type:'quad', left:'alpha', right:'beta', text:'\u597d\u3080\u7a7a\u6c17\u611f\u306f\uff1f', lLabel:'\u77e5\u7684\u3067\u697d\u3057\u3044', rLabel:'\u5f37\u3055\u3068\u4e00\u4f53\u611f' },\r\n    { type:'quad', left:'alpha', right:'gamma', text:'\u4eba\u4ed8\u304d\u5408\u3044\u306f\uff1f', lLabel:'\u307f\u3093\u306a\u3001\u304a\u53cb\u9054', rLabel:'\u5404\u3005\u304c\u30d7\u30ec\u30fc\u30e4\u30fc' },\r\n    { type:'quad', left:'alpha', right:'delta', text:'\u4f11\u65e5\u306e\u904e\u3054\u3057\u65b9\u306f\uff1f', lLabel:'\u65b0\u3057\u3044\u904a\u3073', rLabel:'\u7a4f\u3084\u304b\u306a\u751f\u6d3b' },\r\n    { type:'quad', left:'beta', right:'gamma', text:'\u4eba\u751f\u306e\u6210\u529f\u3068\u306f\uff1f', lLabel:'\u5bcc\u3001\u5730\u4f4d\u3001\u5f71\u97ff\u529b', rLabel:'\u81ea\u7531\u3068\u4e3b\u5c0e\u6a29' },\r\n    { type:'quad', left:'beta', right:'delta', text:'\u4ed5\u4e8b\u3078\u306e\u59ff\u52e2\u306f\uff1f', lLabel:'\u5927\u7fa9\u3068\u5922\u306b\u8ffd\u5f93', rLabel:'\u30b9\u30ad\u30eb\u3092\u84c4\u3048\u308b' },\r\n    { type:'quad', left:'gamma', right:'delta', text:'\u7406\u60f3\u306e\u30d1\u30fc\u30c8\u30ca\u30fc\u306f\uff1f', lLabel:'\u5171\u306b\u751f\u304d\u308b\u540c\u58eb', rLabel:'\u5fc3\u306e\u3088\u308a\u3069\u3053\u308d' },\r\n    { type:'temp', left:'Ep', right:'Ip', text:'\u30a8\u30cd\u30eb\u30ae\u30fc\u306f\uff1f', lLabel:'\u6700\u5f37\u306e\uff11\u756a\u624b', rLabel:'\u3088\u304d\uff12\u756a\u624b' },\r\n    { type:'temp', left:'Ep', right:'Ej', text:'\u884c\u52d5\u539f\u7406\u306f\uff1f', lLabel:'\u597d\u5947\u5fc3\u30fb\u6311\u6226', rLabel:'\u5468\u56f2\u3092\u675f\u306d\u308b' },\r\n    { type:'temp', left:'Ep', right:'Ij', text:'\u5909\u5316\u3084\u6df7\u6c8c\u306f\uff1f', lLabel:'\u6b53\u8fce\u3059\u308b', rLabel:'\u6291\u5236\u3059\u308b' },\r\n    { type:'temp', left:'Ip', right:'Ej', text:'\u30b9\u30c8\u30ec\u30b9\u306a\u306e\u306f\uff1f', lLabel:'\u6025\u304b\u3055\u308c\u308b', rLabel:'\u505c\u6ede\u3059\u308b' },\r\n    { type:'temp', left:'Ip', right:'Ij', text:'\u65e5\u5e38\u306f\uff1f', lLabel:'\u6d41\u308c\u306b\u4efb\u305b\u308b', rLabel:'\u30d1\u30bf\u30fc\u30f3\u3092\u5b88\u308b' },\r\n    { type:'temp', left:'Ej', right:'Ij', text:'\u4eba\u524d\u3067\u306f\uff1f', lLabel:'\u5207\u308a\u8fbc\u307f\u968a\u9577', rLabel:'\u5f8c\u65b9\u652f\u63f4' },\r\n    { type:'sub', left:'D', right:'C', text:'\u96c6\u56e3\u5185\u3067\u306f\uff1f', lLabel:'\u6307\u63ee\u3092\u3068\u308b', rLabel:'\u76db\u308a\u4e0a\u3052\u308b' },\r\n    { type:'sub', left:'D', right:'N', text:'\u4f1a\u8b70\u3067\u306f\uff1f', lLabel:'\u7d50\u8ad6\u3092\u51fa\u3059', rLabel:'\u8a18\u9332\u3059\u308b' },\r\n    { type:'sub', left:'D', right:'H', text:'\u554f\u984c\u767a\u751f\u6642\u306f\uff1f', lLabel:'\u89e3\u6c7a\u3092\u91cd\u8996', rLabel:'\u8abf\u548c\u3092\u91cd\u8996' },\r\n    { type:'sub', left:'C', right:'N', text:'\u5f79\u5272\u5206\u62c5\u306f\uff1f', lLabel:'\u767a\u6848\u3059\u308b\u4eba', rLabel:'\u5177\u4f53\u5316\u3059\u308b\u4eba' },\r\n    { type:'sub', left:'C', right:'H', text:'\u5834\u3078\u306e\u8ca2\u732e\u306f\uff1f', lLabel:'\u523a\u6fc0', rLabel:'\u5b89\u5fc3' },\r\n    { type:'sub', left:'N', right:'H', text:'\u5927\u5207\u306b\u3059\u308b\u306e\u306f\uff1f', lLabel:'\u79e9\u5e8f\u30fb\u30eb\u30fc\u30eb', rLabel:'\u878d\u548c\u30fb\u5f37\u8abf' }\r\n  ];\r\n\r\n  \/\/ --- State ---\r\n  let mode = '';\r\n  let questions = [];\r\n  let currentIdx = 0;\r\n  let answers = [];\r\n\r\n  \/\/ --- Functions ---\r\n  function start(m) {\r\n    mode = m;\r\n    currentIdx = 0;\r\n    answers = [];\r\n    \r\n    let raw = [];\r\n    if(m==='ennea') raw = [...qsEnnea];\r\n    else if(m==='mbti') raw = [...qsMbti];\r\n    else if(m==='socio') raw = [...qsSocio];\r\n    \r\n    questions = raw.sort(() => Math.random() - 0.5);\r\n    \r\n    document.getElementById('screen-menu').classList.add('d-hidden');\r\n    document.getElementById('screen-quiz').classList.remove('d-hidden');\r\n    document.getElementById('total-num').innerText = questions.length;\r\n    renderQ();\r\n  }\r\n\r\n  function renderQ() {\r\n    const q = questions[currentIdx];\r\n    document.getElementById('curr-num').innerText = currentIdx + 1;\r\n    document.getElementById('p-bar').style.width = ((currentIdx \/ questions.length)*100) + '%';\r\n    \r\n    const container = document.getElementById('q-container');\r\n    let html = `\r\n      <div class=\"q-card\">\r\n        <span class=\"q-text\">${q.text}<\/span>\r\n        <div class=\"scale-wrap\">\r\n          <div class=\"scale-line\"><\/div>\r\n          ${[1,2,3,4,5,6,7].map(n => `\r\n            <div class=\"scale-btn\" data-val=\"${n}\" onclick=\"LineDiag.ans(${n}, this)\">${n}<\/div>\r\n          `).join('')}\r\n        <\/div>`;\r\n\r\n    if(mode === 'ennea') {\r\n      html += `\r\n        <div class=\"scale-labels\">\r\n          <span>NO<\/span>\r\n          <span>YES<\/span>\r\n        <\/div><\/div>`;\r\n    } else {\r\n      html += `\r\n        <div class=\"scale-labels\">\r\n          <span style=\"width:45%; text-align:left;\">${q.lLabel}<\/span>\r\n          <span style=\"width:45%; text-align:right;\">${q.rLabel}<\/span>\r\n        <\/div><\/div>`;\r\n    }\r\n    container.innerHTML = html;\r\n    window.scrollTo(0,0);\r\n  }\r\n\r\n  function ans(val, el) {\r\n    el.parentNode.querySelectorAll('.scale-btn').forEach(b => b.classList.remove('selected'));\r\n    el.classList.add('selected');\r\n    answers[currentIdx] = val;\r\n    setTimeout(() => {\r\n      if(currentIdx < questions.length - 1) {\r\n        currentIdx++;\r\n        renderQ();\r\n      } else {\r\n        finish();\r\n      }\r\n    }, 250);\r\n  }\r\n\r\n  function prev() {\r\n    if(currentIdx > 0) {\r\n      currentIdx--;\r\n      renderQ();\r\n    } else {\r\n      document.getElementById('screen-quiz').classList.add('d-hidden');\r\n      document.getElementById('screen-menu').classList.remove('d-hidden');\r\n    }\r\n  }\r\n\r\n  function finish() {\r\n    document.getElementById('p-bar').style.width = '100%';\r\n    document.getElementById('screen-quiz').classList.add('d-hidden');\r\n    document.getElementById('screen-result').classList.remove('d-hidden');\r\n    \r\n    const d = new Date();\r\n    document.getElementById('today-date').innerText = `${d.getFullYear()}\/${d.getMonth()+1}\/${d.getDate()}`;\r\n\r\n    if(mode === 'ennea') calcEnnea();\r\n    else if(mode === 'mbti') calcMbti();\r\n    else if(mode === 'socio') calcSocio();\r\n  }\r\n\r\n  \/\/ --- Logic ---\r\n  \r\n  function sortScores(arr) {\r\n    const prio = ['3','8','7','2','1','6','9','4','5'];\r\n    return arr.sort((a,b) => {\r\n      if(b.score !== a.score) return b.score - a.score;\r\n      let ai = prio.indexOf(String(a.id));\r\n      let bi = prio.indexOf(String(b.id));\r\n      return (ai===-1?99:ai) - (bi===-1?99:bi);\r\n    });\r\n  }\r\n\r\n  \/\/ Enneagram Custom Texts\r\n  const enneaPersonaMsg = {\r\n    '1': '\u5e38\u306b\u6b63\u3057\u304f\u3001\u7acb\u6d3e\u306a\u4eba\u3067\u3042\u308a\u305f\u3044',\r\n    '2': '\u7686\u304b\u3089\u611b\u3055\u308c\u3001\u5fc5\u8981\u3068\u3055\u308c\u305f\u3044',\r\n    '3': '\u6210\u679c\u3092\u51fa\u3057\u3001\u7686\u304b\u3089\u8cde\u8cdb\u3055\u308c\u305f\u3044',\r\n    '4': '\u81ea\u5206\u72ec\u81ea\u306e\u4fa1\u5024\u3084\u8f1d\u304d\u3092\u653e\u3061\u305f\u3044',\r\n    '5': '\u3042\u3089\u3086\u308b\u3053\u3068\u3092\u77e5\u308a\u5c3d\u304f\u3057\u305f\u3044',\r\n    '6': '\u81ea\u5206\u306f\u300c\u5927\u4e08\u592b\u3060\u300d\u3068\u601d\u3044\u305f\u3044',\r\n    '7': '\u30ef\u30af\u30ef\u30af\u306b\u6e80\u3061\u305f\u65e5\u3005\u304c\u6b32\u3057\u3044',\r\n    '8': '\u4eba\u751f\u3092\u81ea\u5206\u4e3b\u5c0e\u3067\u5207\u308a\u958b\u304d\u305f\u3044',\r\n    '9': '\u5e73\u7a4f\u3067\u7a4f\u3084\u304b\u306a\u65e5\u3005\u3092\u7dad\u6301\u3057\u305f\u3044'\r\n  };\r\n\r\n  const enneaRealMsg = {\r\n    '1': '\u8aa4\u308a\u3084\u5815\u843d\u306b\u5bfe\u3057\u3066\u6211\u6162\u304c\u3067\u304d\u306a\u3044',\r\n    '2': '\u8ab0\u304b\u3089\u3082\u5fc5\u8981\u3068\u3055\u308c\u306a\u3044\u4e8b\u304c\u6016\u3044',\r\n    '3': '\u4f55\u3082\u3067\u304d\u306a\u3044\u3001\u4eba\u4e26\u307f\u4ee5\u4e0b\u304c\u30a4\u30e4\u3060',\r\n    '4': '\u5e73\u51e1\u306a\u4eba\u751f\u304c\u7d9a\u304f\u3053\u3068\u306b\u8010\u3048\u3089\u308c\u306a\u3044',\r\n    '5': '\u7121\u77e5\u3001\u7121\u529b\u3001\u7121\u80fd\u3067\u3042\u308b\u3053\u3068\u304c\u6016\u3044',\r\n    '6': '\u307f\u3093\u306a\u304b\u3089\u898b\u6368\u3066\u3089\u308c\u308b\u3053\u3068\u304c\u6016\u3044',\r\n    '7': '\u4eba\u751f\u306e\u9078\u629e\u80a2\u3092\u5236\u9650\u3055\u308c\u305f\u304f\u306a\u3044',\r\n    '8': '\u8ab0\u304b\u306b\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3055\u308c\u308b\u306e\u304c\u4e0d\u5feb',\r\n    '9': '\u3044\u307e\u306e\u300c\u5e73\u7a4f\u300d\u3092\u5d29\u3055\u308c\u305f\u304f\u306a\u3044'\r\n  };\r\n\r\n  function calcEnnea() {\r\n    let tScore = {'1':0,'2':0,'3':0,'4':0,'5':0,'6':0,'7':0,'8':0,'9':0};\r\n    let iScore = {'sp':0, 'sx':0, 'so':0};\r\n\r\n    questions.forEach((q, i) => {\r\n      let val = answers[i] - 1; \/\/ 0-6 pts\r\n      tScore[q.id] += val;\r\n      iScore[q.inst] += val;\r\n    });\r\n\r\n    let rank = Object.keys(tScore).map(k=>({id:k, score:tScore[k]}));\r\n    rank = sortScores(rank);\r\n    const p = rank[0].id; \/\/ Persona\r\n    const r = rank[1].id; \/\/ Real\r\n\r\n    let iRank = Object.keys(iScore).map(k=>({id:k, score:iScore[k]}));\r\n    iRank.sort((a,b) => b.score - a.score);\r\n    const stack = `${iRank[0].id}\/${iRank[1].id}`;\r\n    const stackDesc = getStackingDesc(stack);\r\n\r\n    displayRes(\r\n      `Type ${p} (${stack})`, \r\n      getEnneaName(p), \r\n      enneaPersonaMsg[p],  \/\/ Custom Persona Text\r\n      `\u672c\u80fd\u50be\u5411: ${stackDesc}`,\r\n      \r\n      `Type ${r} (${stack})`, \r\n      getEnneaName(r), \r\n      enneaRealMsg[r],     \/\/ Custom Real Text\r\n      `\u672c\u80fd\u50be\u5411: ${stackDesc}`\r\n    );\r\n    \r\n    document.getElementById('gap-message').innerHTML = \r\n      `\u3042\u306a\u305f\u306e\u81ea\u5df1\u8a8d\u8b58\u306f<b>Type ${p}<\/b>\u306e\u3088\u3046\u3067\u3059\u304c\u3001\u672c\u5fc3\u3067\u306f<b>Type ${r}<\/b>\u306e\u52d5\u6a5f\u306b\u52d5\u304b\u3055\u308c\u3066\u3044\u307e\u3059\u3002<br>` +\r\n      `\u540c\u3058\u30bf\u30a4\u30d7\u3068\u6bd4\u3079\u3066\u3082<b>${stack}<\/b>\u3067\u3001${stackDesc}\u304c\u3042\u308a\u307e\u3059\u3002`;\r\n  }\r\n\r\n  function getStackingDesc(st) {\r\n    const map = {\r\n      'sp\/sx': '\u597d\u304d\u306a\u4e8b\u306b\u771f\u5263\u306b\u306a\u308c\u308b\u50be\u5411',\r\n      'sp\/so': '\u5b9f\u52d9\u7684\u3067\u5f53\u305f\u308a\u969c\u308a\u306a\u3044\u50be\u5411',\r\n      'sx\/sp': '\u76f8\u624b\u306b\u3088\u3063\u3066\u614b\u5ea6\u3092\u5909\u3048\u308b\u50be\u5411',\r\n      'sx\/so': 'TPO\u306b\u3088\u3063\u3066\u614b\u5ea6\u3092\u5909\u3048\u308b\u50be\u5411',\r\n      'so\/sp': '\u81ea\u5206\u306e\u9069\u6750\u9069\u6240\u3092\u63a2\u3057\u3066\u3044\u308b\u50be\u5411',\r\n      'so\/sx': '\u826f\u3044\u610f\u5473\u3067\u5916\u5411\u6027\u304c\u9ad8\u3044\u50be\u5411'\r\n    };\r\n    return map[st] || '\u30d0\u30e9\u30f3\u30b9\u306e\u53d6\u308c\u305f\u50be\u5411';\r\n  }\r\n\r\n  function calcMbti() {\r\n    let club = {ST:0, SF:0, NF:0, NT:0};\r\n    let temp = {EJ:0, EP:0, IJ:0, IP:0};\r\n    let sub = {D:0, C:0, N:0, H:0};\r\n    \r\n    questions.forEach((q,i) => {\r\n      let v = answers[i];\r\n      if(v===4) return;\r\n      let w = Math.abs(v-4);\r\n      let t = v<4 ? q.left : q.right;\r\n      \r\n      if(q.type==='club') club[t]+=w;\r\n      else if(q.type==='temp') {\r\n        let k = t.replace('xx','');\r\n        temp[k]+=w;\r\n      }\r\n      else if(q.type==='sub') sub[t]+=w;\r\n    });\r\n    \r\n    let types = [];\r\n    ['ST','SF','NF','NT'].forEach(c => {\r\n      ['EJ','EP','IJ','IP'].forEach(t => {\r\n        let s = '';\r\n        if(c==='ST') s += t.includes('J') ? (t.includes('E')?'ESTJ':'ISTJ') : (t.includes('E')?'ESTP':'ISTP');\r\n        else if(c==='SF') s += t.includes('J') ? (t.includes('E')?'ESFJ':'ISFJ') : (t.includes('E')?'ESFP':'ISFP');\r\n        else if(c==='NF') s += t.includes('J') ? (t.includes('E')?'ENFJ':'INFJ') : (t.includes('E')?'ENFP':'INFP');\r\n        else if(c==='NT') s += t.includes('J') ? (t.includes('E')?'ENTJ':'INTJ') : (t.includes('E')?'ENTP':'INTP');\r\n        types.push({id:s, score: club[c]+temp[t]});\r\n      });\r\n    });\r\n    \r\n    types.sort((a,b)=>b.score - a.score);\r\n    const p = types[0].id;\r\n    const r = types[1].id;\r\n    \r\n    let subWin = Object.keys(sub).reduce((a,b)=>sub[a]>sub[b]?a:b);\r\n    const subNames = {D:'Dominant (\u4e3b\u5c0e)', C:'Creative (\u5275\u9020)', N:'Normalizer (\u73fe\u5834)', H:'Harmonizer (\u8abf\u548c)'};\r\n    const sName = subNames[subWin];\r\n\r\n    displayRes(\r\n      p, `\u7406\u60f3\u306e\u30b9\u30bf\u30a4\u30eb`, `\u610f\u8b58\u7684\u306a\u6c7a\u65ad\u306e\u30af\u30bb`, `\u5e0c\u671b\u7684\u30b5\u30d6\u30bf\u30a4\u30d7: ${sName}`,\r\n      r, `\u672c\u6765\u306e\u30b9\u30bf\u30a4\u30eb`, `\u7121\u610f\u8b58\u306b\u51fa\u308b\u6c7a\u65ad\u306e\u30af\u30bb`, `\u672c\u6765\u306e\u30b5\u30d6\u30bf\u30a4\u30d7: ${sName}`\r\n    );\r\n    \r\n    document.getElementById('gap-message').innerHTML = \r\n      `\u7406\u60f3\u306f<b>${p}<\/b>\u306e\u30b9\u30bf\u30a4\u30eb\u3092\u76ee\u6307\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u672c\u6765\u306f<b>${r}<\/b>\u306e\u50be\u5411\u304c\u3042\u308a\u307e\u3059\u3002<br>` +\r\n      `\u7121\u7406\u306b\u6f14\u3058\u305a\u3001<b>${sName}<\/b>\u306e\u5f79\u5272\u3092\u610f\u8b58\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u81ea\u7136\u306b\u80fd\u529b\u3092\u767a\u63ee\u3067\u304d\u307e\u3059\u3002`;\r\n  }\r\n\r\n  function calcSocio() {\r\n    let quad = {alpha:0, beta:0, gamma:0, delta:0};\r\n    let temp = {Ep:0, Ip:0, Ej:0, Ij:0};\r\n    let sub = {D:0, C:0, N:0, H:0};\r\n    \r\n    questions.forEach((q,i) => {\r\n      let v = answers[i];\r\n      if(v===4) return;\r\n      let w = Math.abs(v-4);\r\n      let t = v<4 ? q.left : q.right;\r\n      if(q.type==='quad') quad[t]+=w;\r\n      else if(q.type==='temp') temp[t]+=w;\r\n      else if(q.type==='sub') sub[t]+=w;\r\n    });\r\n\r\n    const map = [\r\n      {id:'ILE(ENTp)', q:'alpha', t:'Ep'}, {id:'SEI(ISFp)', q:'alpha', t:'Ip'}, {id:'ESE(ESFj)', q:'alpha', t:'Ej'}, {id:'LII(INTj)', q:'alpha', t:'Ij'},\r\n      {id:'SLE(ESTp)', q:'beta', t:'Ep'},  {id:'IEI(INFp)', q:'beta', t:'Ip'},  {id:'EIE(ENFj)', q:'beta', t:'Ej'},  {id:'LSI(ISTj)', q:'beta', t:'Ij'},\r\n      {id:'SEE(ESFp)', q:'gamma', t:'Ep'}, {id:'ILI(INTp)', q:'gamma', t:'Ip'}, {id:'LIE(ENTj)', q:'gamma', t:'Ej'}, {id:'ESI(ISFj)', q:'gamma', t:'Ij'},\r\n      {id:'IEE(ENFp)', q:'delta', t:'Ep'}, {id:'SLI(ISTp)', q:'delta', t:'Ip'}, {id:'LSE(ESTj)', q:'delta', t:'Ej'}, {id:'EII(INFj)', q:'delta', t:'Ij'}\r\n    ];\r\n    let types = map.map(m=>({id:m.id, score:quad[m.q]+temp[m.t]}));\r\n    types.sort((a,b)=>b.score - a.score);\r\n    \r\n    const p = types[0].id;\r\n    const r = types[1].id;\r\n    let subWin = Object.keys(sub).reduce((a,b)=>sub[a]>sub[b]?a:b);\r\n    const subNames = {D:'Dominant', C:'Creative', N:'Normalizer', H:'Harmonizer'};\r\n    const sName = subNames[subWin];\r\n    \r\n    displayRes(\r\n      p, `\u61a7\u308c\u306e\u5f79\u5272`, `\u96c6\u56e3\u306e\u4e2d\u3067\u6f14\u3058\u3066\u3044\u308b\u5f79\u5272`, `\u5e0c\u671b\u7684\u5f79\u5272: ${sName}`,\r\n      r, `\u672c\u6765\u306e\u9069\u6027`, `\u7121\u7406\u306a\u304f\u8f1d\u3051\u308b\u5f79\u5272`, `\u672c\u6765\u306e\u5f79\u5272: ${sName}`\r\n    );\r\n\r\n    document.getElementById('gap-message').innerHTML = \r\n      `\u96c6\u56e3\u306e\u4e2d\u3067<b>${p}<\/b>\u306e\u3088\u3046\u306b\u632f\u308b\u821e\u304a\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u672c\u6765\u8f1d\u304f\u306e\u306f<b>${r}<\/b>\u306e\u30dd\u30b8\u30b7\u30e7\u30f3\u3067\u3059\u3002<br>` +\r\n      `<b>${sName}<\/b>\u3068\u3057\u3066\u306e\u30b9\u30bf\u30a4\u30eb\u3092\u53d6\u308a\u5165\u308c\u3066\u307f\u3066\u4e0b\u3055\u3044\u3002`;\r\n  }\r\n\r\n  function displayRes(t1, n1, d1, s1, t2, n2, d2, s2) {\r\n    document.getElementById('res-ideal-type').innerText = t1;\r\n    document.getElementById('res-ideal-name').innerText = n1;\r\n    document.getElementById('res-ideal-desc').innerText = d1;\r\n    document.getElementById('res-ideal-sub').innerText = s1;\r\n    document.getElementById('res-real-type').innerText = t2;\r\n    document.getElementById('res-real-name').innerText = n2;\r\n    document.getElementById('res-real-desc').innerText = d2;\r\n    document.getElementById('res-real-sub').innerText = s2;\r\n  }\r\n  \r\n  function getEnneaName(t) {\r\n    const n = {'1':'\u6539\u9769\u3059\u308b\u4eba','2':'\u52a9\u3051\u308b\u4eba','3':'\u9054\u6210\u3059\u308b\u4eba','4':'\u500b\u6027\u7684\u306a\u4eba','5':'\u8abf\u3079\u308b\u4eba','6':'\u5fe0\u5b9f\u306a\u4eba','7':'\u71b1\u4e2d\u3059\u308b\u4eba','8':'\u6311\u6226\u3059\u308b\u4eba','9':'\u5e73\u548c\u306a\u4eba'};\r\n    return n[t];\r\n  }\r\n  \r\n  function saveImage() {\r\n    html2canvas(document.getElementById('result-capture-area')).then(canvas => {\r\n      let a = document.createElement('a');\r\n      a.href = canvas.toDataURL();\r\n      a.download = 'diagnosis_result.png';\r\n      a.click();\r\n    });\r\n  }\r\n\r\n  return { start, ans, prev, saveImage };\r\n})();\r\n<\/script>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<div style=\"height:200px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"vkexunit_cta_each_option":"","footnotes":""},"class_list":["post-14514","diagnosis","type-diagnosis","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/seikaku-type.com\/enneagram-session\/wp-json\/wp\/v2\/diagnosis\/14514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/seikaku-type.com\/enneagram-session\/wp-json\/wp\/v2\/diagnosis"}],"about":[{"href":"https:\/\/seikaku-type.com\/enneagram-session\/wp-json\/wp\/v2\/types\/diagnosis"}],"author":[{"embeddable":true,"href":"https:\/\/seikaku-type.com\/enneagram-session\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/seikaku-type.com\/enneagram-session\/wp-json\/wp\/v2\/comments?post=14514"}],"version-history":[{"count":4,"href":"https:\/\/seikaku-type.com\/enneagram-session\/wp-json\/wp\/v2\/diagnosis\/14514\/revisions"}],"predecessor-version":[{"id":14518,"href":"https:\/\/seikaku-type.com\/enneagram-session\/wp-json\/wp\/v2\/diagnosis\/14514\/revisions\/14518"}],"wp:attachment":[{"href":"https:\/\/seikaku-type.com\/enneagram-session\/wp-json\/wp\/v2\/media?parent=14514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}