{"id":4522,"date":"2025-07-22T11:44:02","date_gmt":"2025-07-22T16:44:02","guid":{"rendered":"https:\/\/itishoemath.com\/?p=4522"},"modified":"2025-10-17T10:18:47","modified_gmt":"2025-10-17T15:18:47","slug":"quelle-est-la-difference-drapeau-rouge-8","status":"publish","type":"post","link":"https:\/\/itishoemath.com\/fr\/quelle-est-la-difference-drapeau-rouge-8\/","title":{"rendered":"[Quelle est la] DIFF\u00c9RENCE [ ?] [PAVILLON ROUGE #8]"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"4522\" class=\"elementor elementor-4522\" 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-ce1c704 elementor-widget elementor-widget-html\" data-id=\"ce1c704\" 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<h4>La v\u00e9rit\u00e9 surprenante sur le jugement des hommes sur la promiscuit\u00e9<\/h4>\n\nLe double standard concernant la vie sexuelle des femmes n'est pas seulement une question de \"honte de la soci\u00e9t\u00e9 envers les femmes\". Hoe_math explique pourquoi les hommes jugent la promiscuit\u00e9 diff\u00e9remment de la fid\u00e9lit\u00e9, en s'appuyant sur la psychologie, la r\u00e9alit\u00e9 et la logique.\n<br><br>\n+ Les hommes ont tendance \u00e0 consid\u00e9rer l'histoire sexuelle d'une femme comme un indice de sa loyaut\u00e9. Pour beaucoup d'hommes, plus de partenaires signifie plus de risques qu'elle ne s'engage pas ou qu'elle ne soit pas digne de confiance.\n<br>\n+ Il ne s'agit pas de r\u00e8gles ou de \"dire aux femmes ce qu'elles doivent faire\". Les pr\u00e9f\u00e9rences et les limites sont personnelles - personne ne peut en d\u00e9cider \u00e0 votre place.\n<br>\n+ Le comportement pass\u00e9 est important. Le pass\u00e9 d'une personne est souvent la meilleure preuve de la fa\u00e7on dont elle agira \u00e0 l'avenir. Si vous avez d\u00e9j\u00e0 tromp\u00e9 quelqu'un, il y a de fortes chances que vous recommenciez.\n<br>\n+ La confiance et l'engagement ne sont pas que des mots - ils se manifestent par ce que les gens font r\u00e9ellement, et non par ce qu'ils disent. S'il y a un d\u00e9calage entre les paroles et les actes, la confiance s'estompe.\n<br><br>\nEn r\u00e9sum\u00e9 : Vous ne pouvez pas obliger quelqu'un \u00e0 changer ce qui l'attire ou le repousse. Les normes honn\u00eates l'emportent.\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8858505 elementor-widget elementor-widget-html\" data-id=\"8858505\" 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<p> <\/p>\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<!-- Header: Not Translated -->\n<script id=\"video-data-header\" type=\"text\/plain\">\ntime|stop|tab|title|description\n<\/script>\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|42|Double_Standard|Double_Standard sur la promiscuit\u00e9|La conversation commence par souligner le double standard dans la fa\u00e7on dont la soci\u00e9t\u00e9 \u00e9tiquette les femmes qui ont de nombreux partenaires sexuels par rapport \u00e0 celles qui sont fid\u00e8les, en se demandant pourquoi ces diff\u00e9rences existent et en cherchant une explication \"idiote\" du point de vue masculin.  \n44|109|Perspectives|Comprendre les perspectives et les pr\u00e9jug\u00e9s|L'orateur explique l'importance de consid\u00e9rer les probl\u00e8mes sous plusieurs angles, en se r\u00e9f\u00e9rant \u00e0 un outil d'agr\u00e9gation d'informations et en discutant de la mani\u00e8re dont les plateformes de rencontres et d'emploi sont confront\u00e9es \u00e0 des d\u00e9fis soci\u00e9taux plus vastes.  \n116|182|Les limites|Les limites \u00e9motionnelles et la police de la pens\u00e9e|Le concept de limites \u00e9motionnelles est pr\u00e9sent\u00e9, illustrant le fait que les gens ne peuvent pas dicter les sentiments ou les pr\u00e9f\u00e9rences des autres, et que tenter de le faire est une forme de police de la pens\u00e9e.  \n198|295|Analogie|Analogie du chien pour les limites|Une analogie utilisant la malpropret\u00e9 du chien est utilis\u00e9e pour montrer qu'imposer ses pr\u00e9f\u00e9rences aux autres est inefficace et souvent contre-productif, ce qui renforce l'importance du respect des limites personnelles.  \n299|347|Associations|Triangle d'association et pr\u00e9f\u00e9rences|Le \"triangle d'association\" est pr\u00e9sent\u00e9 pour expliquer comment les gens forment des sentiments et pourquoi les hommes peuvent ne pas aimer les femmes qui ont plusieurs partenaires, en soulignant qu'il est rarement efficace d'essayer de changer les pr\u00e9f\u00e9rences de quelqu'un.  \n350|405|Comportement|Mod\u00e8les de comportement et confiance|Le conf\u00e9rencier explique comment les comportements r\u00e9p\u00e9t\u00e9s, tels que les changements fr\u00e9quents de partenaires, signalent des actions futures, ce qui fait que les hommes ont du mal \u00e0 faire confiance aux femmes qui ont un grand nombre de partenaires.  \n413|551|La confiance|La confiance, le comportement et les signaux d'alerte|La confiance est li\u00e9e au comportement observable, l'argument \u00e9tant que les choix pass\u00e9s sont des indicateurs de la fiabilit\u00e9 future, et le fait d'ignorer l'importance du comportement pass\u00e9 est consid\u00e9r\u00e9 comme un signal d'alerte majeur.  \n585|630|Rationalisation|Rationalisations et auto-illusion|La phrase \"mes choix n'ont pas d'importance\" est critiqu\u00e9e en tant que tactique de rationalisation, avec des exemples de la fa\u00e7on dont les actions et la pr\u00e9sentation de soi influencent la perception et la fiabilit\u00e9.\n643|704|Manipulation|Manipulation, tentation et mat\u00e9riel pour l'\u00e9pouse|L'orateur met en garde les jeunes hommes contre les comportements manipulateurs, arguant que les actions visibles, telles que les habitudes vestimentaires et sociales, pr\u00e9disent les actions futures et la fiabilit\u00e9 dans les relations.  \n709|752|Testage|Testage de la confiance et de la coh\u00e9rence|L'orateur explique comment certaines femmes peuvent tester les limites des hommes en leur demandant de faire confiance aux mots plut\u00f4t qu'aux actes, et met en garde contre le fait d'ignorer des mod\u00e8les de comportement clairs.  \n769|789|Annonce|Annonce d'un magasin de marchandises|L'\u00e9pisode se termine par une annonce l\u00e9g\u00e8re d'un nouveau magasin de marchandises, invitant \u00e0 donner son avis sur les mod\u00e8les.\n\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\">\nordre|x_px|y_px|Gauche_droite_sup\u00e9rieur_inf\u00e9rieur|texte\n1|60|34|R|<span class=\"translate\">La femme en rose est s\u00e9lective et attend pour avoir des relations sexuelles de rencontrer le 1 \u00e0 l'extr\u00eame droite de cette ligne temporelle.<\/span>\n2|60|120|R|<span class=\"translate\">La femme en violet \"re\u00e7oit\" assez souvent, environ tous les 3,2 jours ! Elle a re\u00e7u de nombreux messieurs avant de vous rencontrer \u00e0 l'extr\u00eame droite de la ligne du temps.<\/span>\n3|995|90|L|<span class=\"translate\">Si le comportement pass\u00e9 est un bon indicateur du comportement futur, quelle devrait \u00eatre la r\u00e9action de chaque femme si vous \u00eates l'homme qui les rencontre \u00e0 l'extr\u00eame droite ? Dans laquelle devriez-vous \"investir\" de l'attention, de l'amour et de l'argent ? Laquelle est susceptible d'\u00eatre encore l\u00e0 dans un an ? Dans 10 ans ?<\/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-53abaad elementor-widget elementor-widget-html\" data-id=\"53abaad\" 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.2. OPTIONAL 2nd Image CSV -->\n<!-- 2nd image, update this, else delete\n     ImageID_3 image data locations and text -->\n<div id=\"tp-translatable-strings4\"\n     style=\"color:#000101; background:#000101; width:100vw; height:auto; position:static; z-index:1; font-size:1px;\">\n<pre id=\"hotspot-data-image2\">\n<span class=\"notranslate\">\nordre|x_px|y_px|Gauche_droite_sup\u00e9rieur_inf\u00e9rieur|texte\n1|51|222|R|<span class=\"translate\">L'ultime f\u00eatarde est ici ! Elle fait la f\u00eate 5 jours par semaine !<\/span>\n2|998|310|L|<span class=\"translate\">Un chr\u00e9tien d\u00e9vou\u00e9 serait ici. Il assisterait \u00e0 la messe tous les jours ou au moins une fois par semaine.<\/span>\n3|498|773|T|<span class=\"translate\">Miss Independent serait ici !<\/span>\n4|585|11|L|<span class=\"translate\">Une fille belle, pas trop voyante mais myst\u00e9rieuse serait ici.<\/span>\n5|763|9|B|<span class=\"translate\">Elle s'en va ou passe rapidement \u00e0 autre chose, fid\u00e8le \u00e0 ses seuls d\u00e9sirs.<\/span>\n6|921|171|L|<span class=\"translate\">Dans la richesse comme dans la pauvret\u00e9, cette femme sera l\u00e0, contre vents et mar\u00e9es, pour les chanceux qu'elle c\u00f4toie.<\/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<script>\n  const imageMap = {\n    image1: \"https:\/\/itishoemath.com\/wp-content\/uploads\/2025\/07\/0171_1_every_3.2_days.png\",\n    image2: \"https:\/\/itishoemath.com\/wp-content\/uploads\/2025\/07\/0171_2_How-to-tell-who-the-cheaters-are.png\"\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 Cette question s'adresse donc aux hommes.  \n3,0 Pr\u00e9sents.  \n4.0 Supposons qu'une femme couche avec cent hommes.  \n8.0 Brut.  \n9.0 Vous la traitez de...  \n12.0 Tout ce que vous voulez.  \n13.0 Peut-\u00eatre sur Internet. Dans la vraie vie, on ne r\u00e9pond plus.  \n17.0 Une femme couche cent fois avec son homme.  \n20.0 Elle est loyale. Elle est \u00e9pouse. Elle est tout ce que vous voulez dire.  \n31.0 Quelle est la diff\u00e9rence ?  \n34.0 L'une d'entre elles est une...  \n36.0 Je ne sais pas. Vous \u00eates tous aussi stupides ?  \n40,0 Je ne sais pas. Je veux l'entendre du point de vue d'un abruti.  \n44.0 Oh, eh bien, du point de vue d'un abruti, \u00eatre une pouffiasse vous rend d\u00e9go\u00fbtant. Mais vous savez d\u00e9j\u00e0 que c'est ce que nous pensons.  \n52.0 C'est pour \u00e7a que tu as fait ta vid\u00e9o.  \n53.0 Les malentendus comme celui-ci sont de plus en plus fr\u00e9quents.  \n55,0 Si vous voulez comprendre pourquoi, vous devez examiner chaque question sous tous les angles.  \n58.0 C'est ainsi que j'utilise Ground News, ce sponsor vid\u00e9o.  \n63.0 Si vous voulez suivre, cliquez sur le lien ou scannez ici.  \n67.0 Lorsque vous vous plaignez autant que moi de vos rendez-vous, beaucoup de gens vous disent \"probl\u00e8me de comp\u00e9tences\", comme si c'\u00e9tait de votre faute et que le monde n'avait pas chang\u00e9 autour de vous.  \n76.0 Mais cet article sur la restructuration de Bumble parce que les utilisateurs en ont marre a 129 sources sur Ground News et elles sont toutes au centre.  \n83.0 Il est donc facile de voir que ce probl\u00e8me touche tout le monde.  \n88,0 Ground News vous montre qui parle de chaque article et de quel c\u00f4t\u00e9 il penche politiquement, ce qui vous permet de rep\u00e9rer les partis pris.  \n94.0 Vous pouvez faire d\u00e9filer les titres et voir ce qu'ils disent en un coup d'\u0153il.  \n97.0 Et dans ce cas, tout le monde est d'accord. Les investisseurs ont des doutes.  \n101.0 Les signes de crise sont nombreux dans le secteur. Les plateformes de rencontres et de recherche d'emploi connaissent des difficult\u00e9s financi\u00e8res.  \n107.0 C'est la vitesse \u00e0 laquelle Ground News vous donne une vue d'ensemble, dont nous avons plus que jamais besoin.  \n111.0 Voir le tableau complet pour 40% off. Scannez ici ou cliquez sur le lien dans les commentaires.  \n116.0 Je ne sais pas. Je veux l'entendre du point de vue d'un imb\u00e9cile.  \n119.0 Permettez-moi de vous donner une r\u00e9ponse moins stupide.  \n127.0 Quand quelqu'un n'aime pas quelque chose, c'est la fin de la conversation.  \n132.0 Je ne sais pas qui t'a dit que tu \u00e9tais responsable de mes sentiments, mais ce n'est pas \u00e7a.  \n138.0 Physiquement, \u00e7a ne marche pas comme \u00e7a. La r\u00e9alit\u00e9 n'a pas de place pour cela.  \n144.0 Ce sont des dessins de limites. Je dessine cela encore et encore. C'est le premier que j'ai fait.  \n148.0 Le jaune est un espace public dans lequel ils se trouvent tous les deux. C'est un bar.  \n152.0 Et donc, le gars peut commencer \u00e0 parler \u00e0 la fille, mais quand elle dit \"Non, ne fais plus \u00e7a\", c'est qu'elle n'est pas d'accord. Mais lorsqu'elle dit \"Non, ne fais plus \u00e7a\", elle impose une nouvelle limite.  \n159.0 Et s'il continue \u00e0 le faire, il y a violation des limites.  \n163.0 Donc, ce que vous faites quand vous me dites ce qui devrait \u00eatre dans mes sentiments, c'est... attendez, il faut que j'en \u00e9tablisse une nouvelle.  \n172.0 Et voil\u00e0. Vous faites la police de la pens\u00e9e. Vous prenez vos perceptions et vos sentiments \u00e0 l'int\u00e9rieur et vous me dites qu'ils devraient aussi \u00eatre les miens, et vous n'avez pas le droit de le faire.  \n182.0 Vous pouvez donc dire aux gens de ne pas vous faire de mal. Par exemple, ne mettez pas de musique quand j'essaie de dormir.  \n191.0 Mais vous ne pouvez pas prendre vos sentiments et dire d'arr\u00eater d'aimer la musique.  \n198.0 Vous n'\u00eates pas la police de mes sentiments.  \n201.0 Je ne dis pas que les gar\u00e7ons sont responsables et que nous faisons les choses telles qu'elles sont. Ce que je dis, c'est que c'est Dieu qui commande.  \n210.0 Nous aimons tous ce que nous aimons et n'aimons pas ce que nous n'aimons pas, et nous devons faire avec.  \n214.0 On ne peut donc pas dire aux hommes qu'ils doivent aimer les femmes aux m\u0153urs l\u00e9g\u00e8res.  \n220.0 Cela ne marche pas comme \u00e7a.  \n222.0 Laissez-moi vous montrer pourquoi. Imaginez que vous sortez, que vous vous promenez et que vous voyez que quelqu'un n'a pas nettoy\u00e9 son chien.  \n229.0 Cette personne a donc eu envie de ne pas faire le m\u00e9nage \u00e0 l'int\u00e9rieur et elle l'a mis dans l'espace que vous partagez.  \n238.0 Qu'en pensez-vous ? Est-ce que cela vous pla\u00eet ? Probablement pas.  \n241.0 Pouvez-vous le changer ? Pouvez-vous vous dire : \" Oh, super. Je vais me mettre \u00e7a dans les yeux.\" Bien s\u00fbr que non.  \n248.0 C'est juste ce que vous ressentez.  \n251.0 Et si je faisais un TikTok pour vous harceler \u00e0 ce sujet ?  \n254.0 Cette question s'adresse aux personnes qui n'aiment pas les chiens.  \n259.0 D'accord, disons que je prom\u00e8ne mon chien, que je le ramasse et que je le jette. Vous dites que c'est une bonne chose.  \n264.0 Maintenant, disons que j'am\u00e8ne mon chien chez vous et qu'il va sur votre oreiller. Soudain, vous dites que c'est une mauvaise chose.  \n269.0 Voil\u00e0 la diff\u00e9rence.  \n272.0 Donc, vous voyez, je pense \u00e0 vous en tant que policier. Il y a quelque chose que je veux que vous aimiez, et je vous dis que vous devriez aimer ce que je vous dis d'aimer. Cela a-t-il fonctionn\u00e9 ?  \n281.0 J'esp\u00e8re bien que non. En fait, tu m'aimes probablement encore moins parce que si je veux mettre quelque chose de mauvais dans ta vie et que tu n'en veux pas, alors tu ne m'aimeras pas.  \n291.0 Voici un exercice que j'ai cr\u00e9\u00e9 et qui s'appelle le triangle d'association. Il montre comment les gens cr\u00e9ent des sentiments en g\u00e9n\u00e9ral.  \n304.0 Ce que vous venez de nous dire, c'est que si vous voulez coucher avec une centaine de gar\u00e7ons et qu'un autre gar\u00e7on vous aime apr\u00e8s cela, alors vous voulez qu'il soit d'accord avec cela.  \n317.0 Mais nous ne sommes pas d'accord.  \n320.0 Les hommes d\u00e9testent vraiment cela. En fait, la plupart d'entre nous d\u00e9testeront cela plus que nous ne t'aimerons.  \n327.0 Au lieu de nous r\u00e9jouir de vos choix, nous allons nous sentir mal \u00e0 l'aise avec vous parce que vous venez de nous dire : \"H\u00e9, voil\u00e0 quelque chose que vous d\u00e9testez. Laisse-moi te le mettre dans les yeux.\"  \n340.0 Je sais que vous vouliez une r\u00e9ponse de con. D\u00e9sol\u00e9 pour la r\u00e9ponse intelligente. J'esp\u00e8re que tu ne l'as pas trop d\u00e9test\u00e9e parce qu'elle va devenir de moins en moins b\u00eate.  \n347.0 M\u00eame si la r\u00e9ponse que je viens de vous donner \u00e9tait suffisamment bonne, \u00e0 savoir que ce que les autres aiment ne vous regarde pas, je vais aussi vous dire pourquoi nous ne l'aimons pas.  \n357.0 Avez-vous parl\u00e9 chinois aujourd'hui par hasard ? Probablement pas.  \n362.0 Vous avez parl\u00e9 anglais hier, donc vous parlerez anglais aujourd'hui et probablement demain.  \n366.0 Avez-vous d\u00e9j\u00e0 mang\u00e9 le m\u00eame plat plus d'une fois ? Probablement.  \n373.0 Il y a donc beaucoup de choses que l'on fait \u00e0 plusieurs reprises. Et si l'une d'entre elles consiste \u00e0 changer de partenaire, il est probable que vous continuerez \u00e0 le faire.  \n388.0 Si je sais que vous avez \u00e9t\u00e9 avec un seul homme pendant longtemps, alors \u00e0 l'avenir, vous serez probablement avec un seul homme pendant longtemps.  \n397.0 Mais si je sais que vous changez souvent de partenaire, c'est-\u00e0-dire environ une fois tous les 3,2 jours, alors vous changerez probablement souvent de partenaire \u00e0 l'avenir. Et l\u00e0 encore, nous n'aimons pas cela.  \n410.0 Nous ne voulons pas d\u00e9penser du temps et de l'argent pour vous si vous ne faites que changer d'homme.  \n417.0 C'est bizarre que je doive vous dire \u00e7a. Les gens n'aiment pas tricher.  \n422.0 Et si vous changez souvent de mec, vous avez plus de chances de tromper. Les femmes adorent dire : \"Faites-moi confiance. Ignorez mon comportement. Je suis une bonne \u00e9pouse.\"  \n431.0 Mais pourquoi vous ferions-nous confiance si vous \u00eates le genre de personne le moins digne de confiance ?  \n437.0 Les tricheurs ne disent pas : \"Je vais te tromper.\" Ils disent : \"Fais-moi confiance\". Tout le monde dit \"Faites-moi confiance\".  \n442.0 Alors, comment savoir qui sont les tricheurs ? Eh bien, nous devons observer votre comportement.  \n449.0 Voici le cube du comportement. Voici l'axe du club religieux. C'est l\u00e0 que vous choisissez de passer votre temps.  \n454.0 C'est l'axe de l'ind\u00e9pendance modeste. C'est la fa\u00e7on dont vous vous pr\u00e9sentez au monde.  \n458.0 Et voici l'axe de la loyaut\u00e9. C'est la fa\u00e7on dont vous vous \u00eates comport\u00e9e avec les hommes dans le pass\u00e9.  \n463.0 Le nombre d'hommes est un signe important. Plus vous en avez, plus il est difficile de vous faire confiance.  \n470.0 Tous ceux qui ont un nombre \u00e9lev\u00e9 de cadavres ne trompent pas, mais ils sont plus nombreux \u00e0 le faire.  \n475.0 Vous pouvez voir ici que le mariage devient moins stable \u00e0 mesure que le nombre de cadavres augmente.  \n481.0 Et oui, il arrive que les gens changent, mais ce n'est pas le cas en g\u00e9n\u00e9ral.  \n484.0 Cette histoire, c'est celle d'une fois o\u00f9 je suis arriv\u00e9 \u00e0 mon motel 6 \u00e0 23h30 et o\u00f9 une fille assez mignonne m'a vu dans le hall et m'a poursuivi jusqu'\u00e0 ma voiture parce que j'\u00e9tais d\u00e9j\u00e0 attirant et elle m'a fait une lecture des lignes de la main et j'ai dit : \"H, c'est tr\u00e8s probablement une mauvaise id\u00e9e et je ne l'ai pas fait.\"  \n504.0 C'\u00e9tait nouveau pour moi \u00e0 l'\u00e9poque. C'est un changement et la plupart des gens ne le font pas.  \n510.0 Donc, si je dois vous offrir un engagement, ce qui est co\u00fbteux, je dois savoir que je peux vous faire confiance, ce que je juge en regardant vos choix, parce qu'il n'y a pas d'autre moyen.  \n518.0 Et si vous avez fait beaucoup de mauvais choix, j'ai au moins besoin de voir que vous avez chang\u00e9. Et cela prend plus de 3,2 jours.  \n525.0 Donc, le nombre de corps n'est pas tout, surtout si elle est honn\u00eate \u00e0 ce sujet et qu'elle ne l'a pas fait depuis un certain temps. Et aussi, vous savez, peut-\u00eatre que vous n'\u00eates pas parfait non plus, mais je ne donnerai jamais de mon temps ou de mon argent \u00e0 quelqu'un qui dit que mon pass\u00e9 n'a pas d'importance parce que ce que nous avons fait avant, nous le ferons \u00e0 nouveau.  \n548.0 Et plus vous le faites, moins vous risquez d'arr\u00eater.  \n551.0 Le pass\u00e9 ne dispara\u00eet donc pas comme \u00e7a. Et demain, aujourd'hui sera le pass\u00e9.  \n556.0 Donc, aujourd'hui n'a pas d'importance. Mon comportement n'a pas d'importance. Ignorez mon comportement. Je vais \u00eatre l\u00e0, mais traitez-moi comme si j'\u00e9tais l\u00e0.  \n568.0 Personne ne veut acheter une bague \u00e0 quelqu'un qui dit : \"Ne jugez pas mon comportement.\" Parce qu'on n'a pas besoin de dire \u00e7a si on ne sait pas que c'est mauvais.  \n577.0 C'est pourquoi toute variante de \"mes choix n'ont pas d'importance\" est l'un des plus grands signaux d'alarme qui soient. Aussi, les anneaux de nez dans ce que c'est.  \n585.0 Vous \u00eates tous aussi stupides ?  \n588.0 \"Mes choix n'ont pas d'importance\", c'est la m\u00eame chose que \"Je suis la table\". Cela signifie que j'obtiens ce que je veux et que je me tais sur ce que vous voulez.  \n597.0 Je suis l\u00e0, n'est-ce pas ? L'expression \"Mes choix n'ont pas d'importance\" se pr\u00e9sente sous de nombreuses formes. Cela peut ressembler \u00e0 \"mon pass\u00e9 n'a pas d'importance\".  \n605.0 \u00c7a peut \u00eatre \"quelle est la diff\u00e9rence entre un gars et une centaine\".  \n609.0 \u00c7a peut \u00eatre \"ce que je porte ne me d\u00e9finit pas\". C'est ce que ces filles ont dit.  \n614.0 Ce n'est pas parce que je m'habille de cette fa\u00e7on que je ne suis pas une femme. M\u00eame si cette fa\u00e7on de s'habiller attire l'attention et que l'attention entra\u00eene la tentation.  \n621.0 Personne n'est \u00e0 l'abri de la tentation. C'est juste une question de chance. Et vous savez tout cela et vous avez choisi de vous habiller de cette fa\u00e7on et vos choix vous d\u00e9finissent.  \n630.0 En d'autres termes, ce n'est pas parce que je me comporte ainsi que je me comporte ainsi. C'est pourquoi elle a des yeux trompeurs.  \n638.0 Et vous n'\u00eates pas oblig\u00e9 d'\u00e9couter \u00e7a.  \n640.0 Si vous \u00eates un jeune homme avec moins d'exp\u00e9rience, on vous a probablement dit toute votre vie d'\u00eatre gentil. Soyez vous-m\u00eame.  \n647.0 La soci\u00e9t\u00e9 dit que les filles sont gentilles et qu'il faut \u00eatre gentil avec elles. Sinon, c'est du contr\u00f4le et c'est de la violence, ce qui peut \u00eatre d\u00e9routant parce qu'on n'a pas l'impression d'\u00eatre violent.  \n654.0 On a l'impression d'\u00eatre maltrait\u00e9 parce que parfois on l'est.  \n664.0 Certaines femmes vous mentent pour voir si vous \u00eates assez intelligente pour les prendre en flagrant d\u00e9lit de mensonge. Et si vous ne l'\u00eates pas, c'est qu'elles ne vous aiment pas.  \n670.0 Elles font des choses que tu ne devrais pas accepter et te disent ensuite de les accepter. Comme ceci. Croyez-moi.  \n677.0 Ces filles disent que le fait de s'habiller ainsi ne signifie pas qu'elles n'ont pas l'\u00e9toffe d'une \u00e9pouse, mais que plus elles montrent de peau et plus elles sortent souvent, plus elles attirent l'attention.  \n688,0 Et plus elles boivent, moins elles y r\u00e9sistent. Ainsi, les risques que quelque chose de grave se produise sont de plus en plus \u00e9lev\u00e9s.  \n694.0 Puis ils se disent que ce n'est pas parce que je maximise les risques de mauvais comportement que je ne suis pas une bonne \u00e9pouse, m\u00eame si une bonne \u00e9pouse est quelqu'un qui minimise les risques de mauvais comportement.  \n707.0 Vous voyez ce que je veux dire ? Il y a son comportement visible, qui est facile \u00e0 juger, et puis il y a ce \"faites-moi confiance\" secret et nuageux dans la zone de myst\u00e8re.  \n714.0 Je peux faire toutes les mauvaises choses et \u00eatre quand m\u00eame bon. Ignorez mon comportement.  \n723.0 Cette fille a dit : \"Un gars, 100 gars, quelle importance ?\" Ce qui compte, c'est que je ne veux pas \u00eatre ce type.  \n729.0 Je ne veux pas \u00eatre le mec num\u00e9ro 99 qui t'ach\u00e8te des fleurs 3,2 jours avant que le mec num\u00e9ro 100 n'arrive.  \n738.0 Donc, attention au \"mes choix n'ont pas d'importance\". Je n'ai pas fait ce que j'ai fait. \u00c7a ne veut pas dire ce que \u00e7a veut dire. Faites confiance \u00e0 mes paroles, pas \u00e0 mes actes.  \n747.0 Ce n'est qu'un test. Et si vous ne lui faites pas confiance, elle dira ceci.  \n754.0 Vous \u00eates tous aussi stupides ?  \n756.0 Mais si vous lui faites confiance, elle vous dira ceci.  \n760.0 \u00cates-vous tous aussi stupides ?  \n764.0 Alors, ne faites pas confiance \u00e0 quelqu'un dans le mauvais cube. Trouvez quelqu'un dans le bon cube.  \n769.0 Petite annonce pour ceux qui regardent jusqu'au bout.  \n771.0 J'ai une nouvelle boutique de produits d\u00e9riv\u00e9s.  \n773.0 J'avais une ancienne boutique, mais personne n'y allait.  \n775.0 Vous pouvez le trouver en regardant sous la fen\u00eatre vid\u00e9o ou en faisant d\u00e9filer vers le bas, je pense. Je ne sais pas si c'est la m\u00eame chose pour vous.  \n782.0 La boutique ressemble \u00e0 \u00e7a, et on peut y acheter des posters, des t-shirts, des tasses et d'autres choses.\n787.0 Dites-moi quels dessins vous voulez dans les commentaires.\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: \"Dvd9eDcMk_E\" },\n  es: { type: \"youtube\", id: \"SY8AOd_rHHU\" }, \n  fr: { type: \"youtube\", id: \"d6WVZ4e1keo\" },\n  ja: { type: \"youtube\", id: \"Sz-2VHQGqqE\" },\n  pt: { type: \"youtube\", id: \"M8savysaBF8\" } \n\n};\n<\/script>\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<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\">Les traductions et la transcription simplifi\u00e9e sont bas\u00e9es sur les traductions du mat\u00e9riel original, localis\u00e9 en plusieurs langues. R\u00e9alis\u00e9 par PeakCreatorRoyalty.com sous licence de <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<div class=\"elementor-element elementor-element-fdce02d e-con-full e-flex e-con e-child\" data-id=\"fdce02d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6160f3a elementor-widget elementor-widget-shortcode\" data-id=\"6160f3a\" 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-f66116d elementor-widget elementor-widget-heading\" data-id=\"f66116d\" 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\">Chefs-d'\u0153uvre interactifs<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ce4511b elementor-widget elementor-widget-text-editor\" data-id=\"ce4511b\" 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<div class=\"border-borderMain\/50 ring-borderMain\/50 divide-borderMain\/50 dark:divide-borderMainDark\/50 dark:ring-borderMainDark\/50 dark:border-borderMainDark\/50 bg-transparent\"><div class=\"gap-y-sm md:gap-y-md flex flex-col\"><div class=\"relative font-sans text-base text-textMain dark:text-textMainDark selection:bg-super\/50 selection:text-textMain dark:selection:bg-super\/10 dark:selection:text-super\"><div class=\"min-w-0 break-words [word-break:break-word]\"><div id=\"markdown-content-0\" class=\"gap-y-md after:clear-both after:block after:content-['']\" dir=\"auto\"><div class=\"relative\"><div class=\"prose text-pretty dark:prose-invert inline leading-normal break-words min-w-0 [word-break:break-word]\"><p class=\"my-0\">Dans cette image interactive, explorez le parcours de deux hommes avant qu'ils ne rencontrent \"l'unique\".<\/p><\/div><\/div><\/div><\/div><\/div><div class=\"flex items-center justify-between\"><div class=\"-ml-sm gap-xs flex items-center\"><div><div>\u00a0<\/div><\/div><div>\u00a0<\/div><\/div><div class=\"gap-x-xs flex items-center\"><div class=\"gap-xs flex items-center border-borderMain\/50 ring-borderMain\/50 divide-borderMain\/50 dark:divide-borderMainDark\/50 dark:ring-borderMainDark\/50 dark:border-borderMainDark\/50 bg-transparent\">\u00a0<\/div><div class=\"\">\u00a0<\/div><\/div><\/div><\/div><\/div><div class=\"\"><div class=\"animate-in fade-in duration-100 ease-out border-borderMain\/50 ring-borderMain\/50 divide-borderMain\/50 dark:divide-borderMainDark\/50 dark:ring-borderMainDark\/50 dark:border-borderMainDark\/50 bg-transparent\"><div class=\"border-borderMain\/50 ring-borderMain\/50 divide-borderMain\/50 dark:divide-borderMainDark\/50 dark:ring-borderMainDark\/50 dark:border-borderMainDark\/50 bg-transparent\"><div class=\"flex items-center justify-between border-borderMain\/50 ring-borderMain\/50 divide-borderMain\/50 dark:divide-borderMainDark\/50 dark:ring-borderMainDark\/50 dark:border-borderMainDark\/50 bg-background\"><div class=\"flex w-full items-center justify-between mb-sm\"><div class=\"\"><div class=\"space-x-sm flex items-center\"><div class=\"font-display text-lg font-medium text-textMain dark:text-textMainDark selection:bg-super\/50 selection:text-textMain dark:selection:bg-super\/10 dark:selection:text-super\"><div class=\"w-[24px]\">\u00a0<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\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-e92154f elementor-widget elementor-widget-html\" data-id=\"e92154f\" 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      Tous\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       Cacher\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-c39202f elementor-widget elementor-widget-text-editor\" data-id=\"c39202f\" 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<p>Dans la deuxi\u00e8me image, explorez trois dimensions qui sont de puissants pr\u00e9dicteurs de ce que beaucoup d'hommes attendent d'une femme. Cette image est tridimensionnelle, avec beaucoup de \"clubbing\" \u00e0 gauche, un int\u00e9r\u00eat pour l'\u00e9glise \u00e0 droite ; plus de modestie vers le haut, plus d'ind\u00e9pendance vers le bas ; moins de loyaut\u00e9 derri\u00e8re le cube et plus de loyaut\u00e9 vers l'avant du cube. Les hommes sont plus susceptibles d'\u00eatre int\u00e9ress\u00e9s par une femme qui se trouve \u00e0 droite, vers le haut et sur la face avant du cube.<\/p>\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-138b181 elementor-widget elementor-widget-html\" data-id=\"138b181\" 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.2 OPTIONAL 2nd Image HTML -->\n<!-- 2nd image, keep or delete\n     ImageID_2 HTML -->\n\n<!-- Repeat same structure for Image Block 2 -->\n<!-- Repeat same structure for Image Block 2 -->\n<!-- Repeat same structure for Image Block 2 -->\n\n<div class=\"hotspot-block\" data-id=\"image2\" style=\"max-width:1280px; margin:80px auto; position:relative;\">\n\n  <!-- Buttons and Checkbox ABOVE the Image -->\n  <div class=\"hotspot-controls\" data-id=\"image2\" style=\"margin-bottom:30px; 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=\"image2\" style=\"margin-right:5px;\">\n      Tous\n    <\/label>\n    <label style=\"font-family: sans-serif; font-size: 14px;\">\n       <input type=\"checkbox\" class=\"hide-numbers-toggle\" data-id=\"image2\" style=\"margin-left: 12px; margin-right: 5px;\">\n       Cacher\n    <\/label>\n  <\/div>\n\n  <!-- Image and Hotspot container -->\n  <div style=\"position: relative;\">\n    <img decoding=\"async\" class=\"main-image\" data-id=\"image2\" 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>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ea60902 elementor-widget elementor-widget-html\" data-id=\"ea60902\" 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<\/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>La v\u00e9rit\u00e9 surprenante sur le jugement des hommes sur la promiscuit\u00e9 Le double standard autour de la vie sexuelle des femmes n'est pas seulement une question de \"honte sociale pour les femmes\". Hoe_math explique pourquoi les hommes jugent la promiscuit\u00e9 diff\u00e9remment de la fid\u00e9lit\u00e9, en s'appuyant sur la psychologie, la r\u00e9alit\u00e9 et la logique. + Les hommes sont c\u00e2bl\u00e9s pour voir dans l'histoire sexuelle d'une femme un indice de sa loyaut\u00e9. Pour [...]<\/p>","protected":false},"author":6,"featured_media":4562,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[134,106,100,130,103],"tags":[127,126,129,128],"class_list":["post-4522","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dating-dynamics","category-gender-roles","category-free-newsletter-insider-exclusives","category-recent","category-relationships","tag-es","tag-fr","tag-ja","tag-pt"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/posts\/4522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/comments?post=4522"}],"version-history":[{"count":64,"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/posts\/4522\/revisions"}],"predecessor-version":[{"id":5438,"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/posts\/4522\/revisions\/5438"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/media\/4562"}],"wp:attachment":[{"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/media?parent=4522"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/categories?post=4522"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itishoemath.com\/fr\/wp-json\/wp\/v2\/tags?post=4522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}