{"id":2060,"date":"2025-06-09T14:01:26","date_gmt":"2025-06-09T19:01:26","guid":{"rendered":"https:\/\/itishoemath.com\/?p=2060"},"modified":"2025-09-07T15:33:48","modified_gmt":"2025-09-07T20:33:48","slug":"%e3%82%af%e3%83%ac%e3%82%a4%e3%82%b8%e3%83%bc","status":"publish","type":"post","link":"https:\/\/itishoemath.com\/ja\/%e3%82%af%e3%83%ac%e3%82%a4%e3%82%b8%e3%83%bc\/","title":{"rendered":"\u30af\u30ec\u30a4\u30b8\u30fc"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"2060\" class=\"elementor elementor-2060\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-97dd7a3 e-flex e-con-boxed e-con e-parent\" data-id=\"97dd7a3\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c4dae98 elementor-widget elementor-widget-text-editor\" data-id=\"c4dae98\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><strong>\u601d\u3044\u3084\u308a\u3001\u5fc3\u914d\u3001\u305d\u308c\u3068\u3082\u72c2\u6c17\uff1f<\/strong><\/h4>\n<span>h<\/span>oe_math\u306f\u3001\u306a\u305c\u7537\u304c\u300c\u30af\u30ec\u30a4\u30b8\u30fc\u300d\u3068\u547c\u3076\u3053\u3068\u3092\u3059\u308b\u5973\u6027\u304c\u3044\u308b\u306e\u304b-\u643a\u5e2f\u96fb\u8a71\u3092\u5439\u3063\u98db\u3070\u3057\u305f\u308a\u3001\u8a00\u3044\u304c\u304b\u308a\u3092\u3064\u3051\u305f\u308a\u3059\u308b\u3088\u3046\u306a\u3053\u3068-\u3092\u8ad6\u7834\u3057\u305f\u3002\u5f7c\u306f\u3001\u305d\u308c\u306f\u982d\u304c\u304a\u304b\u3057\u3044\u3068\u3044\u3046\u3053\u3068\u3067\u306f\u306a\u304f\u3001\u601d\u3044\u3084\u308a\u304c\u3042\u308b\u304b\u3069\u3046\u304b\u3060\u3068\u8a00\u3046\u3002<!--preview--> \u7e04\u5f35\u308a\u610f\u8b58\u304c\u5f37\u3044\u3002\u5f7c\u5973\u304c\u6012\u3063\u305f\u308a\u3001\u66b4\u308c\u305f\u308a\u3059\u308b\u306e\u306f\u3001\u305f\u3044\u3066\u3044\u611f\u60c5\u7684\u306b\u306a\u3063\u3066\u3001\u3042\u306a\u305f\u306e\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u6c17\u306b\u3057\u3066\u3044\u308b\u3068\u3044\u3046\u3053\u3068\u3060\u3002\u305d\u308c\u306f\u4e0d\u5408\u7406\u306a\u3053\u3068\u3067\u306f\u306a\u304f\u3001\u5f7c\u5973\u304c\u3042\u306a\u305f\u306b\u5922\u4e2d\u306b\u306a\u3063\u3066\u3044\u308b\u8a3c\u62e0\u306a\u306e\u3067\u3059\u3002\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4860eef elementor-widget elementor-widget-html\" data-id=\"4860eef\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- CSV for video links and summaries -->\n\n<!-- Header: Not Translated -->\n<script id=\"video-data-header\" type=\"text\/plain\">\ntime|stop|tab|title|description\n<\/script>\n\n<div id=\"tp-translatable-strings2\"\n     style=\"color:#000101; background:#000101; width:100vw; height:auto; position:static; z-index:1; font-size:1px;\">\n<pre id=\"video-data-rows\">\n0|6|\u4e0d\u5be9|\u5ea6\u91cd\u306a\u308b\u96fb\u8a71\u3068\u82db\u7acb\u3061|\u3053\u306e\u30a8\u30d4\u30bd\u30fc\u30c9\u306f\u3001\u3042\u308b\u4eba\u7269\u304c\u5225\u306e\u4eba\u7269\u306b5\u56de\u96fb\u8a71\u3092\u304b\u3051\u305f\u304c\u5fdc\u7b54\u304c\u306a\u304b\u3063\u305f\u3053\u3068\u306b\u82db\u7acb\u3061\u3092\u8868\u660e\u3059\u308b\u3068\u3053\u308d\u304b\u3089\u59cb\u307e\u308a\u3001\"\u30af\u30ec\u30a4\u30b8\u30fc \"\u306a\u611f\u60c5\u7684\u53cd\u5fdc\u306e\u821e\u53f0\u3068\u306a\u308b\u3002\n6|19|\u6295\u5f71|\u6295\u5f71\u3068\u611f\u60c5\u7684\u53cd\u5fdc|\"<span>h<\/span>oe_math\u306f\u6295\u5f71\u306e\u6982\u5ff5\u3092\u7d39\u4ecb\u3057\u3001\u4eba\u304c\u6642\u306b\u81ea\u5206\u306e\u6050\u308c\u3092\u4ed6\u4eba\u306b\u6295\u5f71\u3059\u308b\u3053\u3068\u3067\u3001\u8aa4\u89e3\u3092\u62db\u304d\u3001\u5834\u5408\u306b\u3088\u3063\u3066\u306f\u95a2\u4fc2\u304c\u7834\u7dbb\u3059\u308b\u3053\u3068\u3092\u8aac\u660e\u3059\u308b\u3002\"\n19|44|\u30c6\u30ea\u30c8\u30ea\u30a2\u30ea\u30c6\u30a3|\u30c6\u30ea\u30c8\u30ea\u30a2\u30ea\u30c6\u30a3\u3068\u4eba\u9593\u95a2\u4fc2\u306e\u529b\u5b66|\"\u4eba\u9593\u95a2\u4fc2\u306b\u304a\u3051\u308b\u6012\u308a\u3084\u731c\u7591\u5fc3\u304c\u3001\u3044\u304b\u306b\u30c6\u30ea\u30c8\u30ea\u30a2\u30ea\u30c6\u30a3\u672c\u80fd\uff08\u4e0d\u5f53\u306a\u5ac9\u59ac\uff09\u304b\u3089\u751f\u3058\u3066\u3044\u308b\u304b\u306b\u8b70\u8ad6\u304c\u79fb\u884c\u3059\u308b\u3001 <span>h<\/span>oe_math\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u884c\u52d5\u306f\u3057\u3070\u3057\u3070\u3001\u4e0d\u5408\u7406\u306a\u6050\u6016\u3068\u3057\u3066\u8868\u73fe\u3055\u308c\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u601d\u3044\u3084\u308a\u3068\u6295\u8cc7\u3092\u793a\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u793a\u5506\u3057\u3066\u3044\u308b\u3002\"\n44|63|\u7d50\u3073\u3064\u304d|\u7d50\u3073\u3064\u304d\u3068\u611f\u60c5\u7684\u6295\u8cc7|\"\u6012\u308a\u3084\u5ac9\u59ac\u306e\u3088\u3046\u306a\u6fc0\u3057\u3044\u611f\u60c5\u7684\u53cd\u5fdc\u306f\u3001\u672c\u7269\u306e\u7d50\u3073\u3064\u304d\u3068\u611f\u60c5\u7684\u6295\u8cc7\u306e\u5146\u5019\u3067\u3042\u308b\u3053\u3068\u304c\u3042\u308b\u3002\"\"\u30d1\u30fc\u30c8\u30ca\u30fc\u306e\u8aa0\u5b9f\u3055\u306f\u3001\u4eca\u81ea\u5206\u304c\u6295\u8cc7\u3057\u3066\u3044\u308b\u95a2\u4fc2\u306b\u3068\u3063\u3066\u91cd\u8981\u3060\u3068\u611f\u3058\u3066\u3044\u308b\u304b\u3089\u3067\u3042\u308b\u3002\"\n<\/pre>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9265a2c elementor-widget elementor-widget-html\" data-id=\"9265a2c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- 2.1. MOD Image CSV -->\n<!-- 1st image, update this\n     ImageID_3 image data locations and text -->\n<div id=\"tp-translatable-strings3\"\n     style=\"color:#000101; background:#000101; width:100vw; height:auto; position:static; z-index:1; font-size:1px;\">\n<!-- CSV for image1  style=\"display:none;\" -->\n<pre id=\"hotspot-data-image1\">\n<span class=\"notranslate\">\u30aa\u30fc\u30c0\u30fc|x_px|y_px|\u5de6_\u53f3_\u4e0a_\u4e0b|\u30c6\u30ad\u30b9\u30c8\n1|255|497|B|<span class=\"translate\">\u5f7c\u306f\u6bcd\u89aa\u306b\u96fb\u8a71\u3092\u304b\u3051\u308b\u304c\u3001\u6bcd\u89aa\u306f\u5f7c\u304c\u9577\u3044\u9593\u4ef2\u826f\u304f\u8a71\u3057\u3066\u3044\u308b\u306e\u3092\u898b\u308b\u3060\u3051\u3067\u3001\u5411\u3053\u3046\u304b\u3089\u306f\u306a\u3093\u3068\u306a\u304f\u5973\u6027\u306e\u58f0\u304c\u805e\u3053\u3048\u3066\u304f\u308b\u3002<\/span>\n2|388|218|R|<span class=\"translate\">\u5f7c\u5973\u306f \"\u8ab0\u3060\u3063\u305f\u306e\uff01\"\u3068\u52d5\u63fa\u3057\u3066\u3044\u308b\u3002<\/span>\n3|249|172|R|<span class=\"translate\">4\u30a2\u30e9\u30fc\u30e0\u306e\u706b\u707d\u3068\u306f\u4f55\u4e8b\u3060\uff1f<\/span>\n4|707|562|R|<span class=\"translate\">\"\u5973\u738b\u306f\u4e00\u4eba\u3057\u304b\u3044\u306a\u3044\"\"\u3067\u3082\u3001\u611b\u3057\u3066\u308b\u308f\uff01\"\u5f7c\u5973\u306e\u6570\u3005\u306e\u8105\u3057\u306b\u5bfe\u6297\u3059\u308b\u306e\u306f\u96e3\u3057\u3044\u3002<\/span>\n5|757|44|B|<span class=\"translate\">\u5f7c\u5973\u306e\u610f\u8b58\u7684\u306a\u8133\u306f\u3001\u5f7c\u306e\u8aac\u660e\u306f\u7406\u306b\u304b\u306a\u3063\u3066\u3044\u308b\u3068\u8a00\u3046\u3002<\/span>\n6|911|390|A|<span class=\"translate\">\u3057\u304b\u3057\u3001\u5f7c\u5973\u306e\u6f5c\u5728\u610f\u8b58\u306f\u3001\u3053\u306e\u95a2\u4fc2\u306b\u591a\u304f\u306e\u8105\u5a01\u304c\u306a\u3044\u304b\u3068\u8003\u3048\u7d9a\u3051\u3066\u3044\u308b...\u3002<\/span>\n<\/span>\n<\/pre>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1417dae elementor-widget elementor-widget-html\" data-id=\"1417dae\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- 1. MOD Image Links -->\n<!-- ImageID_5 image urls -->\n\n<script>\n  const imageMap = {\n    image1: \"https:\/\/itishoemath.com\/wp-content\/uploads\/2025\/06\/1_Crazy_1_20231124.jpg\"\n  };\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d08897e elementor-widget elementor-widget-html\" data-id=\"d08897e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"tp-translatable-strings5\"\n     style=\"color:#000101; background:#000101; width:100vw; height:auto; position:static; z-index:1; font-size:1px;\">\n<span id=\"hiddenText\">\n0.0 5\u56de\u3082\u96fb\u8a71\u3057\u305f\u30025\u56de\uff01  \n3.0 \u3053\u3046\u3044\u3046\u306e\u306f\u672c\u5f53\u306b\u8179\u304c\u7acb\u3064\u3002\u3060\u304b\u3089\u5f85\u3063\u3066...\u3002\n5.0 \u306a\u3093\u3067\u30d1\u30fc\u30c6\u30a3\u30fc\u3057\u3066\u308b\u306e\uff1f\u306a\u305c\u30af\u30ec\u30a4\u30b8\u30fc\u306b\u632f\u821e\u3046\u3053\u3068\u304c\u826f\u3044\u3053\u3068\u306a\u306e\u304b\uff1f  \n8.0 \u6012\u3063\u3066\u3044\u308b\u5973\u6027\u3092\u305f\u304f\u3055\u3093\u63cf\u304f\u306e\u306f\u3001\u81ea\u5206\u304c\u77e5\u3063\u3066\u3044\u308b\u3053\u3068\u306b\u5f93\u308f\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u304b\u3089\u3002\u3053\u308c\u3060\uff1a\n11.0 \u51a4\u7f6a\u3092\u7740\u305b\u3089\u308c\u3001\u66b4\u8a00\u3092\u5410\u304b\u308c\u308b-\u4eba\u306f\u3053\u306e\u884c\u52d5\u3092\u30af\u30ec\u30a4\u30b8\u30fc\u3068\u547c\u3076\u3002  \n13.0 \u3067\u3082\u7406\u89e3\u3055\u308c\u306a\u3044\u3002\u4ee5\u524d\u3001\u6295\u5f71\u306b\u3064\u3044\u3066\u8a71\u3057\u305f\u3053\u3068\u304c\u3042\u308b\u3002  \n17.0 \u81ea\u5206\u304c\u4f55\u304b\u3092\u611f\u3058\u3001\u305d\u306e\u305f\u3081\u306b\u8ab0\u304b\u304c\u4f55\u304b\u3092\u3057\u305f\u3068\u60f3\u50cf\u3059\u308b\u3053\u3068\u3002  \n22.0 \u3060\u304b\u3089\u3001\u5f7c\u306f\u559c\u3093\u3067\u308b\u3051\u3069\u3001\u5f7c\u5973\u306f\u5f7c\u304c5\u56de\u3082\u96fb\u8a71\u306b \u51fa\u306a\u304b\u3063\u305f\u3053\u3068\u306b\u8179\u3092\u7acb\u3066\u3066\u3044\u308b\u3002  \n25.0 \u30e0\u30ab\u3064\u304f\u3002\u5f7c\u304c\u60aa\u3044\u3053\u3068\u3092\u3057\u3066\u3044\u308b\u306e\u3092\u5f7c\u5973\u304c\u60f3\u50cf\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u5f7c\u306f\u77e5\u3063\u3066\u3044\u308b\u3002  \n30.0 \u306a\u305c\u305d\u308c\u304c\u3044\u3044\u306e\u304b\u3002\u5f7c\u5973\u304c\u3044\u306a\u3044\u6642\u306b\u5f7c\u304c\u4f55\u3092\u3057\u3066\u3044\u308b\u304b\u6c17\u306b\u3057\u3066\u3044\u3066\u3001\u5f7c\u304c\u3057\u305f\u3067\u3042\u308d\u3046\u60aa\u3044\u3053\u3068\u3092\u60f3\u50cf\u3057\u3066\u3044\u308b\u3068\u3044\u3046\u3053\u3068\u3060\u304b\u3089\u3002  \n40.0 \u5f7c\u304c\u5acc\u3044\u306a\u3089\u3001\u305d\u3093\u306a\u3053\u3068\u306b\u30a8\u30cd\u30eb\u30ae\u30fc\u3092\u4f7f\u308f\u306a\u3044\u3002\u4ed6\u306e\u5973\u6027\u304b\u3089\u5f7c\u3092\u5b88\u3063\u3066\u3044\u308b\u3002  \n46.0 \u5973\u6027\u304c\u5922\u4e2d\u306b\u306a\u308b\u306e\u306f\u3001\u5b9f\u306f\u7e04\u5f35\u308a\u610f\u8b58\u304c\u5f37\u3044\u304b\u3089\u3002  \n51.0 \u3042\u306a\u305f\u306e\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u3089\u306a\u3051\u308c\u3070\u3001\u79c1\u306b\u3068\u3063\u3066\u60aa\u3044\u3053\u3068\u304b\u3082\u3057\u308c\u306a\u3044\u304b\u3089\u3002  \n56.0 \u3042\u306a\u305f\u306f\u79c1\u306e\u30c6\u30b9\u30c8\u306b\u5408\u683c\u3057\u3001\u79c1\u305f\u3061\u306f\u7d50\u3070\u308c\u305f\u3002  \n61.0 \u6642\u3005\u3001\u3053\u3046\u3084\u3063\u3066\u300e\u597d\u304d\u3060\u300f\u3068\u8a00\u308f\u308c\u308b\u3002\u597d\u304d\u3067\u3059\u300f\u306a\u3093\u3066\u8a00\u308f\u308c\u305f\u304f\u306a\u3044\u3002  \n\n<\/span>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eddabf7 elementor-widget elementor-widget-html\" data-id=\"eddabf7\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\n\/\/ 1. Define which video to play for each language:\nconst videoMap = {\n  en: { type: \"youtube\", id: \"GHk4DCXkMxI\" },\n  fr: { type: \"youtube\", id: \"h5L6b43z9FY\" },\n  pt: { type: \"youtube\", id: \"FqPevVLC5ME\" },\n\/\/  pt: { type: \"bunny\", id: \"120c6b9a-ffd0-4962-8b9a-2417175a8af3\" }, \n  es: { type: \"youtube\", id: \"ntDTM1n-rSw\" },\n  ja: { type: \"youtube\", id: \"n_LYq3jsekg\" } \n};\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a010ab1 e-flex e-con-boxed e-con e-parent\" data-id=\"a010ab1\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4c437ca elementor-widget elementor-widget-template\" data-id=\"4c437ca\" data-element_type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"section\" data-elementor-id=\"3172\" class=\"elementor elementor-3172\" data-elementor-post-type=\"elementor_library\">\n\t\t\t<div class=\"elementor-element elementor-element-7079b43 e-flex e-con-boxed e-con e-parent\" data-id=\"7079b43\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-800d60f elementor-widget elementor-widget-html\" data-id=\"800d60f\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n#simplified-transcript-note {\n  display: none !important;\n}\n<\/style>\n<div id=\"simplified-transcript-note\">\u7ffb\u8a33\u304a\u3088\u3073\u7c21\u6613\u66f8\u304d\u8d77\u3053\u3057\u306f\u3001\u8907\u6570\u306e\u8a00\u8a9e\u306b\u30ed\u30fc\u30ab\u30e9\u30a4\u30ba\u3055\u308c\u305f\u30aa\u30ea\u30b8\u30ca\u30eb\u8cc7\u6599\u306e\u7ffb\u8a33\u306b\u57fa\u3065\u3044\u3066\u3044\u307e\u3059\u3002PeakCreatorRoyalty.com\u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u306b\u57fa\u3065\u304f\u3002 <span>h<\/span>oe_math.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a02ec9 elementor-widget elementor-widget-html\" data-id=\"3a02ec9\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\n  \/\/ Auto-hide translation block after page load\n  window.addEventListener('DOMContentLoaded', function() {\n    for (let i = 1; i <= 5; i++) {\n      document.querySelectorAll(`[id$=\"${i}\"]`).forEach(el => {\n        el.style.display = 'none';\n      });\n    }\n  });\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f2f7b1d elementor-widget elementor-widget-html\" data-id=\"f2f7b1d\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n  h3 {\n    margin-left: 0px; \/* Adjust as needed *\/\n    \/* Optionally add: *\/\n    text-align: left;  \n  }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e3ade12 elementor-widget elementor-widget-html\" data-id=\"e3ade12\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- VIDEO PLAYER CONTAINER -->\n<div id=\"videoPlayerContainer\" style=\"max-width: 800px; margin: auto; text-align: center;\">\n  <!-- Video player is injected here -->\n<\/div>\n\n<!-- SCROLLING TABS & CHAPTER DETAILS -->\n<div style=\"max-width: 1000px; margin: 32px auto 0 auto;\">\n  <div id=\"chapterTabs\" class=\"chapter-tabs-scroll\">\n    <!-- Tabs will be generated by JavaScript -->\n  <\/div>\n  <!-- div id=\"chapterPlayPause\" style=\"margin:1em 0 0.5em 0;\">\n  <\/div -->\n  <div id=\"chapterPanel\" class=\"chapter-panel\">\n    <!-- Chapter text will appear here  -->\n  <\/div>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-928f586 elementor-widget elementor-widget-html\" data-id=\"928f586\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- NO TOUCH Scripts -->\n<!-- Video script v1.0 -->\n<!--[wpcode id=\"1824\"] -->\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/hls.js@latest\"><\/script> <!-- Include HLS.js -->\r\n\r\n<style>\r\n  .half-br {\r\n    display: block;\r\n    height: 1px;\r\n    width: 100%;\r\n    border: none;\r\n    margin: 0;\r\n    padding: 0;\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n\r\nlet currentChapterIdx = 0;\r\n\t\r\nfunction getCurrentLang() {\r\n  return document.documentElement.lang ? document.documentElement.lang.substring(0,2) : 'en';\r\n}\r\n\r\n\/\/ function waitTranslate(ms=1000) {\r\n\/\/   const end = Date.now() + ms; \/\/ 100 milliseconds = 1\/10 second\r\n\/\/   while (Date.now() < end) {\r\n\/\/     \/\/ Busy-wait: blocks the main thread!\r\n\/\/   }\r\n\/\/ }\r\n\r\n\/\/ const lang = getCurrentLang();\r\n\/\/ if (lang !== \"en\") {\r\n\/\/   var marker = document.getElementById('language-marker');\r\n\/\/   if (marker) {\r\n\/\/     \/\/ You can check for known translations of the phrase\r\n\/\/     var currentLangPhrase = marker.textContent.trim();\r\n\/\/ \r\n\/\/     \/\/ Example for English vs French\r\n\/\/     if (currentLangPhrase === \"Currently English language.\") {\r\n\/\/       console.log(\"Miss, translation in progress to '\/\"+lang+\"\/', 3 second delay.\")\r\n\/\/       waitTranslate(ms=3000);\r\n\/\/     } else {\r\n\/\/       console.log(\"Hit, pre-translated page in '\/\"+lang+\"\/'.\")\r\n\/\/     }\r\n\/\/   }\r\n\/\/ } else {\r\n\/\/   console.log(\"English, no translation needed.\")\r\n\/\/ }\r\n\r\n\/* ====== CONFIGURATION SECTION ====== *\/\r\n\/\/ const BUNNY_VIDEO_LIBRARY_ID = \"vz-c02c9ec9-42b.b-cdn.net\"; \/\/ Replace with your actual Bunny Video Library ID\r\nconst BUNNY_VIDEO_LIBRARY_ID = \"vz-d8eb6cfe-1f7.b-cdn.net\"; \/\/ Replace with your actual Bunny Video Library ID\r\n\r\n\/\/ 1. Define which video to play for each language:\r\n\/\/const videoMap = {\r\n\/\/  en: { type: \"youtube\", id: \"wWrsW76bG88\" },\r\n\/\/  fr: { type: \"bunny\", id: \"fc57904c-7f56-4b36-8d13-d1d715b82e81\" }, \/\/ This is the VIDEO ID\r\n\/\/  de: { type: \"bunny\", id: \"YOUR_GERMAN_VIDEO_ID\" }                   \/\/ This is the VIDEO ID\r\n  \/\/ Add more: es, it, etc.\r\n\/\/};\r\n\r\n\/\/ 2. Define chapters for each language:\r\nfunction parseCSVFromHeaderRows(headerText, rowsText) {\r\n  const headers = headerText.trim().split('|').map(h => h.trim());\r\n  const lines = rowsText.trim().split('\\n').filter(line => line.trim().length);\r\n\r\n  return lines.map(line => {\r\n    const values = [];\r\n    \/\/ Split by |, but don't split inside quotes (simple version assumes no | inside quotes)\r\n    \/\/ If you need to handle | inside quoted fields, regex needs to be more complex\r\n    let regex = \/(\"(?:[^\"]|\"\")*\"|'(?:[^']|'')*'|[^|]+)\/g;\r\n    let match;\r\n    while ((match = regex.exec(line))) {\r\n      let value = match[0].trim();\r\n      \/\/ Remove leading and trailing single or double quotes\r\n      value = value.replace(\/^(['\"])(.*)\\1$\/, '$2');\r\n      values.push(isNaN(value) ? value : Number(value));\r\n    }\r\n    const obj = {};\r\n    headers.forEach((h, i) => { obj[h] = values[i]; });\r\n    return obj;\r\n  });\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\/\/ Parse hiddenText into [{time: number, text: string}]\r\n\/\/ Parses lines like: 12.0 Text, or * Bullet point, or 1. Numbered item\r\nfunction parseHiddenText() {\r\n  const hiddenText = document.getElementById('hiddenText')?.textContent || '';\r\n  const lines = hiddenText.split('\\n').map(line => line.trim()).filter(Boolean);\r\n  const results = [];\r\n  let lastTime = null;\r\n\r\n  for (let line of lines) {\r\n    \/\/ Match timestamps with comma or dot\r\n    let match = \/^(\\d+(?:[.,]\\d+)?)\\s+(.*)$\/.exec(line);\r\n    if (match) {\r\n      lastTime = parseFloat(match[1].replace(',', '.'));\r\n      results.push({ time: lastTime, text: match[2] });\r\n      continue;\r\n    }\r\n    \/\/ Match bullets or numbers\r\n    match = \/^(\\*|\\-|\\d+\\.)\\s+(.*)$\/.exec(line);\r\n    if (match && lastTime !== null) {\r\n      results.push({ time: lastTime, text: line });\r\n      continue;\r\n    }\r\n    if (lastTime !== null) {\r\n      results.push({ time: lastTime, text: line });\r\n    }\r\n  }\r\n  return results;\r\n}\r\n\r\n\r\n\r\n\r\nconst hiddenTextLines = parseHiddenText(); \/\/ Global for later use\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\/\/ Get the header and rows from the DOM\r\nconst csvHeader = document.getElementById('video-data-header').textContent;\r\nconst csvRows = document.getElementById('video-data-rows').textContent;\r\n\r\nconst chapterMap = {\r\n  en: parseCSVFromHeaderRows(csvHeader, csvRows)\r\n};\r\n\r\n\/\/ List of properties to process\r\nconst properties = ['tab', 'title', 'description'];\r\n\r\n\/\/ Loop through each row in chapterMap.en\r\nchapterMap.en.forEach(row => {\r\n  properties.forEach(prop => {\r\n    const val = row[prop];\r\n    if (typeof val === 'string') {\r\n      row[prop] = val.replace(\/^[\\'\\\"]+|[\\'\\\"]+$\/g, '');\r\n    }\r\n  });\r\n});\r\n\r\n\/\/ console.log(chapterMap.en); \/\/ Output objects in browser console\r\n\r\n\r\n\/* ====== END CONFIGURATION ====== *\/\r\n\r\n\/* ----- Global Player Variables ----- *\/\r\nlet ytPlayer, ytReady = false, stopTimer = null;\r\nlet hlsInstance = null; \/\/ To store the HLS.js instance\r\nlet html5VideoElement = null; \/\/ To store the HTML5 video element for Bunny\r\n\r\n\r\n\/* ----- Player and Chapters Logic ----- *\/\r\nfunction cleanupPlayers() {\r\n    \/\/ Clear existing stop timer\r\n    if (stopTimer) {\r\n        clearInterval(stopTimer);\r\n        stopTimer = null;\r\n    }\r\n\r\n    \/\/ Cleanup YouTube Player\r\n    if (ytPlayer && typeof ytPlayer.destroy === 'function') {\r\n        ytPlayer.destroy();\r\n    }\r\n    ytPlayer = null;\r\n    ytReady = false;\r\n\r\n    \/\/ Cleanup HLS.js Player\r\n    if (hlsInstance) {\r\n        hlsInstance.destroy();\r\n        hlsInstance = null;\r\n    }\r\n    html5VideoElement = null; \/\/ Clear reference\r\n\r\n    \/\/ Clear the container\r\n    const container = document.getElementById('videoPlayerContainer');\r\n    if (container) container.innerHTML = \"\";\r\n}\r\n\r\nfunction setVideoPlayer(langObj) {\r\n  cleanupPlayers(); \/\/ Ensure previous players are cleaned up\r\n\r\n  const container = document.getElementById('videoPlayerContainer');\r\n  if (!container) return;\r\n\r\n  if (langObj.type === \"youtube\") {\r\n    container.innerHTML = `<div style=\"position: relative; width: 100%; padding-top: 56.25%;\">\r\n<iframe id=\"myVideo\" style=\"position: absolute;  top: 0; left: 0; width: 100%; height: 100%;\" \r\n            src=\"https:\/\/www.youtube.com\/embed\/${langObj.id}?enablejsapi=1&rel=0&origin=${window.location.origin}\"\r\n            frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\r\n            allowfullscreen><\/iframe><\/div>`;\r\n    \/\/ YT API will be loaded\/re-initialized later\r\n  } else if (langObj.type === \"bunny\") {\r\n    const bunnyStreamUrl = `https:\/\/${BUNNY_VIDEO_LIBRARY_ID}\/${langObj.id}\/playlist.m3u8`;\r\n    container.innerHTML = `<video id=\"myVideo\" width=\"100%\" height=\"390\" controls playsinline poster=\"https:\/\/itishoemath.com\/wp-content\/uploads\/2025\/05\/UCsEPI9OwGEw5Lm0E7Paq62g_0003_wWrsW76bG88_en.jpg\"><\/video>`;\r\n    html5VideoElement = document.getElementById('myVideo'); \/\/ Get the new video element\r\n\r\n\tif (html5VideoElement) {\r\n        html5VideoElement.addEventListener('play', () => renderPlayPauseButton(currentChapterIdx));\r\n        html5VideoElement.addEventListener('pause', () => renderPlayPauseButton(currentChapterIdx));\r\n    }\r\n\r\n\t  \r\n    if (Hls.isSupported()) {\r\n        hlsInstance = new Hls();\r\n        hlsInstance.loadSource(bunnyStreamUrl);\r\n        hlsInstance.attachMedia(html5VideoElement);\r\n        hlsInstance.on(Hls.Events.MANIFEST_PARSED, function() {\r\n            \/\/ console.log(\"Bunny HLS: Manifest parsed and video ready.\");\r\n            \/\/ html5VideoElement.play(); \/\/ Optional: Autoplay (mind browser restrictions)\r\n        });\r\n        hlsInstance.on(Hls.Events.ERROR, function(event, data) {\r\n            \/\/ console.error('Bunny HLS Error:', data);\r\n            if (data.fatal) {\r\n                switch(data.type) {\r\n                    case Hls.ErrorTypes.NETWORK_ERROR: hlsInstance.startLoad(); break;\r\n                    case Hls.ErrorTypes.MEDIA_ERROR: hlsInstance.recoverMediaError(); break;\r\n                    default: hlsInstance.destroy(); break;\r\n                }\r\n            }\r\n        });\r\n    } else if (html5VideoElement.canPlayType('application\/vnd.apple.mpegurl')) {\r\n        \/\/ Native HLS support (e.g., Safari)\r\n        html5VideoElement.src = bunnyStreamUrl;\r\n        html5VideoElement.addEventListener('loadedmetadata', function() {\r\n            \/\/ console.log('Bunny Native HLS: Metadata loaded.');\r\n        });\r\n    } else {\r\n        \/\/ console.error('HLS is not supported in this browser for Bunny.net video.');\r\n        container.innerHTML = '<p>Sorry, HLS video playback is not supported in your browser.<\/p>';\r\n    }\r\n  }\r\n}\r\n\r\nfunction renderTabs(activeIdx, chapters) {\r\n  const tabRow = document.getElementById('chapterTabs');\r\n  tabRow.innerHTML = chapters.map((ch, i) =>\r\n    `<button class=\"chapter-tab${i === activeIdx ? \" active\" : \"\"}\" onclick=\"showChapter(${i})\">${ch.tab}<\/button>`\r\n  ).join('');\r\n}\r\n\r\n\r\n\r\n\t\r\nfunction renderPlayPauseButton(idx) {\r\n  const lang = getCurrentLang();\r\n  const chapters = chapterMap['en'];\r\n  const ch = chapters[idx];\r\n  if (!ch) return \"\";\r\n\r\n  let isPlaying = false;\r\n  const videoObj = videoMap[lang] || videoMap['en'];\r\n\r\n  if (videoObj.type === \"youtube\" && ytPlayer && ytReady) {\r\n    isPlaying = ytPlayer.getPlayerState && ytPlayer.getPlayerState() === 1;\r\n  } else if (videoObj.type === \"bunny\" && html5VideoElement) {\r\n    isPlaying = !html5VideoElement.paused;\r\n  }\r\n\r\n  const buttonLabel = isPlaying ? \"Pause\" : \"Play\";\r\n  const buttonIcon = isPlaying ? \"\u23f8\" : \"\u25b6\ufe0f\";\r\n\r\n  const btnHtml = `<button id=\"playPauseBtn\" style=\"padding:0.5em 1em;font-size:1em;border-radius:6px;background: #0F3F91;color:#fff;border:none;cursor:pointer;margin-bottom:1em;transition: background 0.2s;display: block;\">\r\n      ${buttonIcon} ${buttonLabel}\r\n    <\/button>`;\r\n\r\n  const container = document.getElementById('playPauseContainer');\r\n  if (container) {\r\n    container.innerHTML = btnHtml;\r\n    const playPauseBtn = document.getElementById('playPauseBtn');\r\n    if (playPauseBtn) {\r\n      playPauseBtn.onclick = function() {\r\n        let isPlayingNow = false;\r\n        if (videoObj.type === \"youtube\" && ytPlayer && ytReady) {\r\n          isPlayingNow = ytPlayer.getPlayerState && ytPlayer.getPlayerState() === 1;\r\n          ytPlayer.seekTo(ch.time, true);\r\n          if (isPlayingNow) {\r\n            ytPlayer.pauseVideo();\r\n          } else {\r\n            ytPlayer.playVideo();\r\n          }\r\n        } else if (videoObj.type === \"bunny\" && html5VideoElement) {\r\n          isPlayingNow = !html5VideoElement.paused;\r\n          html5VideoElement.currentTime = ch.time;\r\n          if (isPlayingNow) {\r\n            html5VideoElement.pause();\r\n          } else {\r\n            html5VideoElement.play();\r\n          }\r\n        }\r\n        \/\/ No manual re-render here!\r\n      };\r\n    }\r\n  }\r\n}\r\n\r\n\r\nfunction formatTranscriptBlock(lines) {\r\n  let prevTime = null;\r\n  let out = [];\r\n  for (let i = 0; i < lines.length; i++) {\r\n    const { time, text } = lines[i];\r\n    \/\/ Convert seconds to MM:SS\r\n    const min = Math.floor(time \/ 60);\r\n    const sec = Math.floor(time % 60);\r\n    const mmss = `${min}:${sec.toString().padStart(2, '0')}`;\r\n    if (time !== prevTime) {\r\n      out.push(`<br><b><span style=\"color:#FFF\">${mmss}<\/span><\/b> ${text}`);\r\n    } else {\r\n      out.push(text);\r\n    }\r\n    prevTime = time;\r\n  }\r\n  return out.join('<br>');\r\n}\r\n\r\n\r\n\r\n\r\nfunction renderPanel(idx) {\r\n  const lang = getCurrentLang();\r\n\r\n  const simplifiedLabel = document.getElementById('simplified-transcript-label')?.textContent || \"\";\r\n  const simplifiedNote = document.getElementById('simplified-transcript-note')?.textContent || \"Note: ...\";\r\n\r\n  const chapters = chapterMap['en'];\r\n  const ch = chapters[idx];\r\n  if (!ch) {\r\n      console.error(`Chapter index ${idx} not found for language ${lang}.`);\r\n      return;\r\n  }\r\n\r\n  \/\/ --- Find hiddenText lines within this chapter's time range ---\r\n  const linesInRangeArr = hiddenTextLines\r\n    .filter(line => line.time >= ch.time && line.time < ch.stop);\r\n\r\n  const transcriptHTML = formatTranscriptBlock(linesInRangeArr);\r\n\r\n  let extra = \"\";\r\n  if (linesInRangeArr.length) {\r\n    extra = `\r\n      <br><br>\r\n      <!--span style=\"display:block;margin-top:1em;margin-bottom:0.25em;font-weight:bold\">${simplifiedLabel}<\/span-->\r\n      <span style=\"color:#f5f5f5;font-size:100%\">${transcriptHTML}<\/span>\r\n      <br>\r\n      <span style=\"display:block;margin-top:0.75em;font-size:75%;color:#00C2C2;\">\r\n        <br>${simplifiedNote}\r\n      <\/span>\r\n    `;\r\n  }\r\n\r\n  \/\/ Insert the Play\/Pause button at the very top of the panel\r\n  const playPauseButton = renderPlayPauseButton(idx);\r\n\r\n  document.getElementById('chapterPanel').innerHTML =\r\n    `<h3 style=\"margin-top:0;color:#fff\">${ch.title}<\/h3>\r\n     <div id=\"playPauseContainer\" style=\"margin-bottom:1em\"><\/div>\r\n     <p style=\"margin-bottom:0;color:#fff\">${ch.description}${extra}<\/p>`;\r\n\r\n  renderPlayPauseButton(idx);\r\n  renderTabs(idx, chapters);\r\n\r\n  \/\/ Attach the event handler after the button is inserted\r\n  const playPauseBtn = document.getElementById('playPauseBtn');\r\n  if (playPauseBtn) {\r\n    playPauseBtn.onclick = function() {\r\n      const videoObj = videoMap[lang] || videoMap['en'];\r\n      let isPlaying = false;\r\n      if (videoObj.type === \"youtube\" && ytPlayer && ytReady) {\r\n        isPlaying = ytPlayer.getPlayerState && ytPlayer.getPlayerState() === 1;\r\n        ytPlayer.seekTo(ch.time, true);\r\n        if (isPlaying) {\r\n          ytPlayer.pauseVideo();\r\n        } else {\r\n          ytPlayer.playVideo();\r\n        }\r\n      } else if (videoObj.type === \"bunny\" && html5VideoElement) {\r\n        isPlaying = !html5VideoElement.paused;\r\n        html5VideoElement.currentTime = ch.time;\r\n        if (isPlaying) {\r\n          html5VideoElement.pause();\r\n        } else {\r\n          html5VideoElement.play();\r\n        }\r\n      }\r\n      \/\/ Optionally update button after action\r\n      \/\/ setTimeout(() => renderPanel(idx), 300);\r\n    };\r\n  }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nwindow.showChapter = function(idx) {\r\n  currentChapterIdx = idx;\r\n\r\n  const lang = getCurrentLang();\r\n  \/\/ const chapters = chapterMap[lang] || chapterMap['en']; \/\/ Fallback to 'en'   \r\n  \/\/ will switch for video but NOT for text (translatepress will accomplish)\r\n  const chapters = chapterMap['en']; \/\/ Fallback to 'en' chapters\r\n  const chapterData = chapters[idx];\r\n\r\n  if (!chapterData) {\r\n      console.error(`Chapter data for index ${idx} not found.`);\r\n      return;\r\n  }\r\n  renderPanel(idx); \/\/ Update panel and tabs\r\n\r\n  \/\/ Scroll tab into view\r\n  const buttons = document.getElementsByClassName('chapter-tab');\r\n  if (buttons[idx]) buttons[idx].scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });\r\n\r\n  const videoObj = videoMap[lang] || videoMap['en'];\r\n\r\n  \/\/ Clear previous stop timer\r\n  if (stopTimer) clearInterval(stopTimer);\r\n\r\n  if (videoObj.type === \"youtube\") {\r\n    if (ytReady && ytPlayer && typeof ytPlayer.seekTo === 'function') {\r\n      ytPlayer.seekTo(chapterData.time, true);\r\n      ytPlayer.playVideo();\r\n      \r\n    } else {\r\n        console.warn(\"YouTube player not ready or seekTo not available.\");\r\n    }\r\n  } else if (videoObj.type === \"bunny\" && html5VideoElement) {\r\n    html5VideoElement.currentTime = chapterData.time;\r\n    html5VideoElement.play().catch(e => console.warn(\"Autoplay after seek prevented:\", e));\r\n  }\r\n};\r\n\r\nfunction reInitChaptersAndPlayer() {\r\n  const lang = getCurrentLang();\r\n  const videoObj = videoMap[lang] || videoMap['en']; \/\/ Fallback to 'en' video\r\n\r\n  if (!videoObj) {\r\n      console.error(`No video configuration found for language: ${lang} or fallback 'en'.`);\r\n      return;\r\n  }\r\n\r\n  setVideoPlayer(videoObj); \/\/ This now also cleans up old players\r\n\r\n  \/\/ Short delay to ensure DOM is updated, especially for iframe\r\n  setTimeout(function(){\r\n    renderPanel(0); \/\/ Render first chapter panel\r\n    if (videoObj.type === \"youtube\") {\r\n      \/\/ Load or re-initialize YT API for new iframe\r\n      if (typeof YT === 'undefined' || !YT.Player) { \/\/ Check if YT object or YT.Player is undefined\r\n        var tag = document.createElement('script');\r\n        tag.src = \"https:\/\/www.youtube.com\/iframe_api\";\r\n        var firstScriptTag = document.getElementsByTagName('script')[0];\r\n        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n      } else {\r\n        \/\/ If API is loaded, re-initialize player for the new iframe if needed\r\n        onYouTubeIframeAPIReady();\r\n      }\r\n    }\r\n  }, 100); \/\/ Reduced delay, might need adjustment\r\n}\r\n\r\n\/* ----- YT API Bootstrapping ----- *\/\r\n\/\/ This global function is called by the YouTube Iframe API script\r\nwindow.onYouTubeIframeAPIReady = function() {\r\n  const iframe = document.getElementById('myVideo');\r\n  if (iframe && iframe.tagName === 'IFRAME' && !ytPlayer) { \/\/ Ensure it's an iframe and player not already set\r\n    \/\/ console.log(\"onYouTubeIframeAPIReady called, initializing YT Player.\");\r\n    ytPlayer = new YT.Player('myVideo', {\r\n      events: {\r\n        'onReady': function(event) {\r\n          ytReady = true;\r\n          \/\/ console.log(\"YouTube Player Ready.\");\r\n          \/\/ If a chapter was clicked before YT was ready, try to apply it now.\r\n          \/\/ This requires knowing the current chapter index, which might need to be stored.\r\n          \/\/ For simplicity, we'll assume the user might click a chapter again or it starts at 0.\r\n        },\r\n        'onStateChange': function(event) {\r\n\t\t\t\/\/ 1 = playing, 2 = paused\r\n\t\t\trenderPlayPauseButton(currentChapterIdx); \/\/ currentChapterIdx should be tracked globally\r\n\t\t}\r\n      }\r\n    });\r\n  } else if (iframe && iframe.tagName === 'IFRAME' && ytPlayer && typeof ytPlayer.destroy === 'function') {\r\n    \/\/ This case handles if the API is reloaded or if reInit is called and iframe exists\r\n    \/\/ It's a bit tricky; ideally, we destroy and recreate fully.\r\n    \/\/ The cleanupPlayers function should handle most of this.\r\n    \/\/ console.log(\"onYouTubeIframeAPIReady called, player might exist. Attempting to re-bind if necessary.\");\r\n  }\r\n};\r\n\r\n\/* ----- Event Hooks ----- *\/\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n    if (document.getElementById('videoPlayerContainer')) { \/\/ Only run if the container exists\r\n        reInitChaptersAndPlayer();\r\n\r\n\t\t\r\n\r\n\r\n    }\r\n});\r\n\/\/ TranslatePress fires this event on language change\r\ndocument.addEventListener('trp_language_changed', function() {\r\n    if (document.getElementById('videoPlayerContainer')) { \/\/ Only run if the container exists\r\n        reInitChaptersAndPlayer();\r\n\t\t\r\n\r\n    }\r\n});\r\n\r\n<\/script>\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-40859b7 elementor-widget elementor-widget-html\" data-id=\"40859b7\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n\/* Your existing CSS is good, no changes needed unless you want to refine *\/\n.chapter-tabs-scroll {\n  display: flex;\n  overflow-x: auto;\n  gap: 10px;\n  margin-bottom: 18px;\n  scrollbar-width: thin;\n  scrollbar-color: #a0aec0 #f7fafc; \/* For Firefox *\/\n  -webkit-overflow-scrolling: touch;\n  padding-bottom: 5px; \/* To make scrollbar visible without cutting content *\/\n  border-radius: 8px; \/* Optional: if you want rounded corners for the scroll area *\/\n}\n\/* Webkit Scrollbar Styles *\/\n.chapter-tabs-scroll::-webkit-scrollbar {\n  height: 7px;\n}\n.chapter-tabs-scroll::-webkit-scrollbar-track {\n  background: #111; \/* Or a lighter color if preferred *\/\n  border-radius: 4px;\n}\n.chapter-tabs-scroll::-webkit-scrollbar-thumb {\n  background: #333; \/* Or a contrasting color *\/\n  border-radius: 4px;\n}\n.chapter-tab {\n  white-space: nowrap;\n  border: none;\n  background: #222; \/* Darker tab background *\/\n  color: #fff;\n  font-size: 1.1em;\n  padding: 8px 22px;\n  border-radius: 999px; \/* Pill shape *\/\n  cursor: pointer;\n  transition: background 0.2s, color 0.2s, font-weight 0.2s, box-shadow 0.2s;\n  margin-bottom: 0; \/* Ensure no extra space below tabs if they wrap *\/\n  outline: none; \/* Remove default focus outline if you have custom focus styles *\/\n  margin-right: 0; \/* Reset if previously set for spacing between items *\/\n}\n.chapter-tab.active,\n.chapter-tab:hover {\n  background: #e0e7ff; \/* Light blue for active\/hover *\/\n  color: #111; \/* Dark text for active\/hover *\/\n  font-weight: bold;\n  box-shadow: 0 2px 8px #dbeafe66; \/* Softer shadow *\/\n}\n.chapter-panel {\n  background: rgba(20,20,20,0.88); \/* Semi-transparent dark background *\/\n  border-radius: 8px;\n  box-shadow: 0 2px 6px #111; \/* Subtle shadow *\/\n  padding: 20px 24px;\n  min-height: 80px; \/* Ensure panel has some height even if description is short *\/\n  transition: box-shadow 0.3s; \/* Smooth shadow transition on hover (if any) *\/\n}\n\/* Add a class for the video player container if you want to target its children more easily *\/\n#videoPlayerContainer video { \/* Ensure video tag fits container *\/\n    display: block; \/* Removes extra space below if it's inline *\/\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e4bc449 pa-display-conditions-yes e-flex e-con-boxed e-con e-parent\" data-id=\"e4bc449\" data-element_type=\"container\" data-settings=\"{&quot;pa_display_conditions_switcher&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7e49f44 elementor-widget elementor-widget-template\" data-id=\"7e49f44\" data-element_type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"section\" data-elementor-id=\"3178\" class=\"elementor elementor-3178\" data-elementor-post-type=\"elementor_library\">\n\t\t\t<div class=\"elementor-element elementor-element-f38bb46 e-flex e-con-boxed e-con e-parent\" data-id=\"f38bb46\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8baae73 elementor-widget elementor-widget-shortcode\" data-id=\"8baae73\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><!-- Post Page Mid Roll -->\r\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77ae7ae elementor-widget elementor-widget-heading\" data-id=\"77ae7ae\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u30fb\u30de\u30b9\u30bf\u30fc\u30d4\u30fc\u30b9<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-efd0efb elementor-widget elementor-widget-html\" data-id=\"efd0efb\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- 3.1 CSS and 1st Image HTML -->\n<!-- ImageID_1 CSS -->\n\n<style class=\"wpcode-css-snippet\"><style>\r\n\r\n.hotspot-block,\r\n.hotspot,\r\n.hotspot-tooltip,\r\n.hotspot-btn {\r\n  font-family: \"HM Saira-VariableFont_wdth,wght\", sans-serif;\r\n}\r\n\r\n.hotspot-block {\r\n  position: relative;\r\n  margin: 40px auto;\r\n  max-width: 1280px;\r\n}\r\n\r\n.hotspot-controls {\r\n  margin-bottom: 15px;\r\n  display: flex;\r\n  justify-content: center;\r\n  flex-wrap: wrap;\r\n  gap: 15px;\r\n  align-items: center;\r\n  position: relative;\r\n  z-index: 10;\r\n}\r\n\r\n.hotspot-container {\r\n  position: absolute;\r\n  top: 0;\r\n  left: 0;\r\n  width: 100%;\r\n  height: 100%;\r\n  pointer-events: none;\r\n  z-index: 2000;\r\n}\r\n\r\n.main-image {\r\n  width: 100%;\r\n  display: block;\r\n}\r\n\r\n.hotspot {\r\n  overflow: visible;\r\n  width: 36px;\r\n  height: 36px;\r\n  background: #007BFF;\r\n  color: white;\r\n  font-size: 16px;\r\n  border-radius: 50%;\r\n  text-align: center;\r\n  line-height: 36px;\r\n  font-weight: bold;\r\n  cursor: pointer;\r\n  transition: transform 0.4s, background 0.3s;\r\n  position: absolute;\r\n  pointer-events: auto;\r\n}\r\n\r\n.hotspot.enlarged {\r\n  transform: scale(1.18);\r\n  background: red;\r\n}\r\n\r\n.hotspot:hover {\r\n  transform: scale(1.18);\r\n}\r\n\r\n\/* ----------- TOOLTIP: Modern Approach ----------- *\/\r\n.hotspot-tooltip {\r\n  display: none;\r\n  position: absolute;\r\n  left: 50%;\r\n  top: auto; \/* default, will be set by direction *\/\r\n  bottom: auto;\r\n  max-width: 300px;\r\n  min-width: 0;\r\n  width: max-content; \/* will grow up to max-width, shrink for short items *\/\r\n  white-space: normal;\r\n  word-break: break-word;\r\n  padding: 10px 16px;\r\n  background: rgba(20, 20, 30, 0.92);\r\n  color: #fff;\r\n  font-size: 15px;\r\n  border-radius: 10px;\r\n  box-shadow: 0 6px 16px rgba(0,0,0,0.13);\r\n  z-index: 5000;\r\n  line-height: 1.5;\r\n  text-align: left;\r\n  border: 2px solid red;\r\n  box-sizing: border-box;\r\n  transform: translateX(-50%);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\/* Tooltip direction and placement *\/\r\n.tooltip-above .hotspot-tooltip {\r\n  left: 50%;\r\n  bottom: 110%;\r\n  transform: translateX(-50%);\r\n  margin-bottom: 10px;\r\n}\r\n.tooltip-below .hotspot-tooltip {\r\n  left: 50%;\r\n  top: 110%;\r\n  transform: translateX(-50%);\r\n  margin-top: 10px;\r\n}\r\n.tooltip-left .hotspot-tooltip {\r\n  right: 110%;          \/* Puts tooltip fully to the left of the hotspot, with a gap *\/\r\n  top: 50%;\r\n  left: auto;           \/* Prevent any left property conflict *\/\r\n  transform: translateY(-50%);\r\n  margin-right: 10px;   \/* Space between tooltip and hotspot *\/\r\n  margin-left: 0;\r\n}\r\n\r\n.tooltip-right .hotspot-tooltip {\r\n  left: 110%;\r\n  top: 50%;\r\n  transform: translateY(-50%);\r\n  margin-left: 10px;\r\n}\r\n\r\n\/* Tooltip shown on enlarged\/active hotspot *\/\r\n.hotspot.enlarged .hotspot-tooltip,\r\n.hotspot.active .hotspot-tooltip,\r\n.hotspot.show-all .hotspot-tooltip {\r\n  display: block;\r\n}\r\n\r\n\/* ----------- Button styling ----------- *\/\r\n.hotspot-btn {\r\n  width: 36px;\r\n  height: 36px;\r\n  border-radius: 50%;\r\n  font-size: 16px;\r\n  background: #007BFF;\r\n  color: white;\r\n  font-weight: bold;\r\n  border: none;\r\n  cursor: pointer;\r\n  transition: background 0.2s, transform 0.2s;\r\n  position: relative;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  line-height: 1;\r\n  padding: 0;\r\n}\r\n\r\n.hotspot-btn.highlight {\r\n  background: red;\r\n}\r\n\r\n.hotspot-btn.enlarged {\r\n  transform: scale(1.18);\r\n}\r\n\r\n.hotspot-btn:hover {\r\n  background: #0056b3;\r\n}\r\n\r\n\/* Mobile responsive adjustments *\/\r\n@media (max-width: 600px) {\r\n  .hotspot {\r\n    width: 22px;\r\n    height: 22px;\r\n    font-size: 12px;\r\n    line-height: 22px;\r\n  }\r\n\r\n  .hotspot-btn {\r\n    width: 28px;\r\n    height: 28px;\r\n    font-size: 13px;\r\n  }\r\n\r\n    .hotspot-tooltip {\r\n    padding: 6px 8px;\r\n    font-size: 0.9em;\r\n  font-weight: normal;\r\n    max-width: 250px;\r\n    min-width: 120px;\r\n    width: auto;\r\n  }\r\n}\r\n<\/style><\/style>\n\n<!-- 1st image, keep this\n     ImageID_2 HTML -->\n\n<!-- Image Block 1 -->\n\n<div class=\"hotspot-block\" data-id=\"image1\" style=\"max-width:1280px; margin:40px auto; position:relative;\">\n\n  <!-- Buttons and Checkbox ABOVE the Image -->\n  <div class=\"hotspot-controls\" data-id=\"image1\" style=\"margin-bottom:15px; display:flex; justify-content:center; flex-wrap:wrap; gap:15px; align-items:center; position:relative; z-index:10;\">\n    <div class=\"hotspot-buttons\" style=\"display:flex; gap:10px; flex-wrap:wrap;\"><\/div>\n    <label style=\"font-family:sans-serif; font-size:14px;\">\n      <input type=\"checkbox\" class=\"show-all-toggle\" data-id=\"image1\" style=\"margin-right:5px;\">\n      \u3059\u3079\u3066\n    <\/label>\n    <label style=\"font-family: sans-serif; font-size: 14px;\">\n       <input type=\"checkbox\" class=\"hide-numbers-toggle\" data-id=\"image1\" style=\"margin-left: 12px; margin-right: 5px;\">\n       \u96a0\u3059\n    <\/label>\n  <\/div>\n\n  <!-- Image and Hotspot container -->\n  <div style=\"position: relative;\">\n    <img decoding=\"async\" class=\"main-image\" data-id=\"image1\" src=\"\" style=\"width:100%; display:block;\">\n    \n    <!-- Hotspot container positioned absolutely over the image -->\n    <div class=\"hotspot-container\" style=\"position:absolute; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:2000;\">\n      <!-- Hotspots injected by JS here -->\n    <\/div>\n  <\/div>\n\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6671c31 elementor-widget elementor-widget-html\" data-id=\"6671c31\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- 4. NO TOUCH Scripts -->\n<!-- ImageID_4 HTML external scripts to call + JS -->\n<!-- script src=\"https:\/\/code.jquery.com\/jquery-3.7.1.min.js\"><\/script -->\r\n<script>\r\njQuery(document).ready(function ($) {\r\n\r\n  \/\/ --- IMAGE HOTSPOTS AND BUTTONS INIT ---\r\n  $('.hotspot-block').each(function () {\r\n    const $block = $(this);\r\n    const id = $block.data('id');\r\n    const $image = $block.find(`.main-image[data-id=\"${id}\"]`);\r\n    const $container = $block.find('.hotspot-container');\r\n    const $buttons = $block.find('.hotspot-buttons');\r\n    const imageUrl = imageMap[id];\r\n\r\n\r\n\t\r\n    const csvRaw = $(`pre#hotspot-data-${id}`).text().trim();\r\n\r\n    const activeNumbers = [];\r\n    $block.data('activeNumbers', activeNumbers);\r\n\r\n    if (!imageUrl) return;\r\n    $image.attr('src', imageUrl);\r\n\r\n    $image.on('load', function () {\r\n      const imgWidth = $image[0].naturalWidth;\r\n      const imgHeight = $image[0].naturalHeight;\r\n\r\n      \/\/ --- Simple Pipe-Delimited Parse ---\r\n\tconst lines = csvRaw.split('\\n').map(line => line.trim()).filter(Boolean);\r\n\tif (lines.length < 2) return;\r\n\t\/\/ Optionally check header here if you want\r\n\tconst data = lines.slice(1).map(line => {\r\n\t  \/\/ Split by pipe instead of comma, but allow pipes in the text field (by joining the rest)\r\n\t  const parts = line.split('|');\r\n\t  const order = parts[0] ? parts[0].trim() : '';\r\n\t  const x_px = parts[1] ? parts[1].trim() : '';\r\n\t  const y_px = parts[2] ? parts[2].trim() : '';\r\n\t  const direction = parts[3] ? parts[3].trim() : '';\r\n\t  const text = parts.length > 4 ? parts.slice(4).join('|').trim() : '';\r\n\t  return { order, x_px, y_px, direction, text };\r\n\t});\r\n\r\n\t\/\/ console.log('Parsed data:', data);\r\n\r\n\r\n      data.forEach(row => {\r\n        const number = String($.trim(row.order));\r\n        const xPx = parseFloat(row.x_px);\r\n        const yPx = parseFloat(row.y_px);\r\n        const dir = (row.direction || \"A\").trim().toUpperCase();\r\n        const text = $.trim(row.text);\r\n        const leftPercent = (xPx \/ imgWidth) * 100;\r\n        const topPercent = (yPx \/ imgHeight) * 100;\r\n\r\n        const tooltipClass = {\r\n          A: 'tooltip-above',\r\n          B: 'tooltip-below',\r\n          L: 'tooltip-left',\r\n          R: 'tooltip-right'\r\n        }[dir] || 'tooltip-above';\r\n\r\n        \/\/ Tooltip text present in DOM for TranslatePress!\r\n        const formattedText = `${number}. ` + text.replace(\/\\n\/g, '<br>');\r\n        const $hotspot = $(`\r\n          <div class=\"hotspot ${tooltipClass}\" data-number=\"${number}\">\r\n            <span class=\"hotspot-number\">${number}<\/span>\r\n            <span class=\"hotspot-tooltip\" style=\"display:none;\">${formattedText}<\/span>\r\n          <\/div>\r\n        `).css({\r\n          left: `${leftPercent}%`,\r\n          top: `${topPercent}%`,\r\n          transform: 'translate(-50%, -50%)',\r\n          position: 'absolute'\r\n        });\r\n\r\n        $container.append($hotspot);\r\n        $buttons.append(`<button class=\"hotspot-btn\" data-number=\"${number}\">${number}<\/button>`);\r\n      });\r\n    });\r\n  });\r\n\r\n  \/\/ --- STYLE UPDATE FUNCTION ---\r\nfunction updateStyles($block) {\r\n  const active = $block.data('activeNumbers') || [];\r\n  $block.find('.hotspot').each(function () {\r\n    const num = String($(this).data('number'));\r\n    const $tooltip = $(this).find('.hotspot-tooltip');\r\n    if (active.includes(num)) {\r\n      $(this).addClass('enlarged active');\r\n      $tooltip.show(); \/\/ <-- Show tooltip!\r\n    } else {\r\n      $(this).removeClass('enlarged active');\r\n      $tooltip.hide(); \/\/ <-- Hide tooltip!\r\n    }\r\n  });\r\n  $block.find('.hotspot-btn').each(function () {\r\n    const num = String($(this).data('number'));\r\n    $(this)\r\n      .toggleClass('highlight', active.includes(num))\r\n      .toggleClass('enlarged', active.includes(num));\r\n  });\r\n}\r\n\r\n\r\n  \/\/ --- HOTSPOT\/BUTTON CLICK ---\r\n  $(document).on('click', '.hotspot, .hotspot-btn', function (e) {\r\n    e.preventDefault();\r\n    const $clicked = $(e.target).closest('.hotspot, .hotspot-btn');\r\n    const num = String($clicked.data('number'));\r\n    const $block = $clicked.closest('.hotspot-block');\r\n    let active = $block.data('activeNumbers') || [];\r\n\r\n    const wasActive = active.includes(num);\r\n\r\n    \/\/ Clear Hide if checked\r\n    const $hide = $block.find('.hide-numbers-toggle');\r\n    if ($hide.is(':checked')) {\r\n      $hide.prop('checked', false).trigger('change');\r\n    }\r\n\r\n    if (wasActive) {\r\n      active = active.filter(n => n !== num);\r\n    } else {\r\n      active = [num]; \/\/ Only one active at a time\r\n    }\r\n    $block.data('activeNumbers', active);\r\n    updateStyles($block);\r\n\r\n    \/\/ Uncheck \"Show all\" if not all hotspots are active\r\n    const allNums = $block.find('.hotspot').map((_, el) => String($(el).data('number'))).get();\r\n    const $toggle = $block.find('.show-all-toggle');\r\n    const isAllActive = allNums.every(n => active.includes(n));\r\n    $toggle.prop('checked', isAllActive);\r\n  });\r\n\r\n  \/\/ --- SHOW ALL \/ HIDE MUTUAL EXCLUSIVITY AND BEHAVIOR ---\r\n  $(document).on('change', '.show-all-toggle', function() {\r\n    const id = $(this).data('id');\r\n    const $block = $(`.hotspot-block[data-id=\"${id}\"]`);\r\n    const $hide = $block.find('.hide-numbers-toggle');\r\n    const $hotspots = $block.find('.hotspot');\r\n    const allNums = $hotspots.map((_, el) => String($(el).data('number'))).get();\r\n\r\n    \/\/ Mutually exclusive: uncheck Hide if Show All is checked\r\n    if ($(this).is(':checked')) {\r\n      if ($hide.is(':checked')) {\r\n        $hide.prop('checked', false).trigger('change');\r\n      }\r\n      $block.data('activeNumbers', allNums);\r\n    } else {\r\n      $block.data('activeNumbers', []);\r\n    }\r\n\r\n    updateStyles($block);\r\n  });\r\n\r\n  \/\/ Hide handler\r\n  $(document).on('change', '.hide-numbers-toggle', function() {\r\n    const id = $(this).data('id');\r\n    const $block = $(`.hotspot-block[data-id=\"${id}\"]`);\r\n    const $showAll = $block.find('.show-all-toggle');\r\n    const $hotspots = $block.find('.hotspot');\r\n    const checked = $(this).is(':checked');\r\n\r\n    \/\/ Mutually exclusive: uncheck Show All if Hide is checked\r\n    if (checked && $showAll.is(':checked')) {\r\n      $showAll.prop('checked', false).trigger('change');\r\n    }\r\n\r\n    if (checked) {\r\n      $hotspots.hide();\r\n      $block.find('.enlarged, .active').removeClass('enlarged active');\r\n    } else {\r\n      $hotspots.show();\r\n    }\r\n  });\r\n\r\n  \/\/ --- CLICKING OUTSIDE CLEARS EVERYTHING ---\r\n  $(document).on('click', function (e) {\r\n    const $target = $(e.target);\r\n    const $block = $target.closest('.hotspot-block');\r\n    $('.hotspot-block').each(function () {\r\n      const $thisBlock = $(this);\r\n      if (!$block.length || !$block.is(this)) {\r\n        $thisBlock.data('activeNumbers', []);\r\n        $thisBlock.find('.show-all-toggle').prop('checked', false);\r\n        updateStyles($thisBlock);\r\n      }\r\n    });\r\n  });\r\n\r\n});\r\n<\/script>\r\n \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>\u6c17\u9063\u3044\u3001\u5fc3\u914d\u3001\u305d\u308c\u3068\u3082\u30af\u30ec\u30a4\u30b8\u30fc\uff1fhoe_math\u306f\u3001\u7537\u304c\u300c\u30af\u30ec\u30a4\u30b8\u30fc\u300d\u3068\u547c\u3076\u3088\u3046\u306a\u3053\u3068\u3092\u3059\u308b\u5973\u6027\u304c\u3044\u308b\u306e\u306f\u306a\u305c\u304b-\u643a\u5e2f\u96fb\u8a71\u3092\u5439\u3063\u98db\u3070\u3057\u305f\u308a\u3001\u8a00\u3044\u304c\u304b\u308a\u3092\u3064\u3051\u305f\u308a\u3059\u308b\u3088\u3046\u306a\u3053\u3068-\u3092\u8ad6\u7834\u3057\u305f\u3002\u5f7c\u306f\u3001\u305d\u308c\u306f\u982d\u304c\u304a\u304b\u3057\u3044\u306e\u3067\u306f\u306a\u304f\u3001\u6c17\u9063\u3044\u3068\u7e04\u5f35\u308a\u610f\u8b58\u304c\u3042\u308b\u304b\u3089\u3060\u3068\u8a00\u3046\u3002\u5f7c\u5973\u304c\u6012\u3063\u305f\u308a\u66b4\u308c\u305f\u308a\u3059\u308b\u306e\u306f\u3001\u305f\u3044\u3066\u3044\u611f\u60c5\u7684\u306b\u306a\u3063\u3066\u3044\u3066\u3001\u3042\u306a\u305f\u306e\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u5b9f\u969b\u306b\u6c17\u306b\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u610f\u5473\u3059\u308b\u3002\u305d\u308c\u306f\u4e0d\u5408\u7406\u306a\u3053\u3068\u3067\u306f\u306a\u304f\u3001\u5f7c\u5973\u304c\u3042\u306a\u305f\u306b\u5922\u4e2d\u306b\u306a\u3063\u3066\u3044\u308b\u8a3c\u62e0\u306a\u306e\u3067\u3059\u30020|6|\u4e0d\u5be9|\u5ea6\u91cd\u306a\u308b\u96fb\u8a71\u3068\u6b32\u6c42\u4e0d\u6e80|\u3053\u306e\u30a8\u30d4\u30bd\u30fc\u30c9\u306f\u3001\u8ab0\u304b\u304c\u5225\u306e\u4eba\u306b5\u56de\u3082\u96fb\u8a71\u3057\u305f\u306e\u306b\u8fd4\u4e8b\u304c\u306a\u3044\u3053\u3068\u306b\u4e0d\u6e80\u3092\u8868\u660e\u3059\u308b\u3068\u3053\u308d\u304b\u3089\u59cb\u307e\u308a\u3001\u300c\u30af\u30ec\u30a4\u30b8\u30fc\u300d\u306a\u611f\u60c5\u7684\u53cd\u5fdc\u306e\u821e\u53f0\u3092\u6574\u3048\u3066\u3044\u308b\u30026|19|\u6295\u5f71|\u6295\u5f71\u3068\u611f\u60c5\u7684\u53cd\u5fdc|\"hoe_math\u306f\u6295\u5f71\u306e\u6982\u5ff5\u3092\u7d39\u4ecb\u3057\u3001\u4eba\u304c\u6642\u306b\u81ea\u5206\u306e\u6050\u6016\u3092\u4ed6\u4eba\u306b\u6295\u5f71\u3059\u308b\u3053\u3068\u3092\u8aac\u660e\u3059\u308b\u3002<\/p>","protected":false},"author":6,"featured_media":1357,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[104,97,102,103],"tags":[127,126,129,128],"class_list":["post-2060","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-emotional-behavior","category-media-propaganda-and-persuasion","category-public","category-relationships","tag-es","tag-fr","tag-ja","tag-pt"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/posts\/2060","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/comments?post=2060"}],"version-history":[{"count":211,"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/posts\/2060\/revisions"}],"predecessor-version":[{"id":4656,"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/posts\/2060\/revisions\/4656"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/media\/1357"}],"wp:attachment":[{"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/media?parent=2060"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/categories?post=2060"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itishoemath.com\/ja\/wp-json\/wp\/v2\/tags?post=2060"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}