{"id":4376,"date":"2025-06-27T10:03:39","date_gmt":"2025-06-27T15:03:39","guid":{"rendered":"https:\/\/itishoemath.com\/?p=4376"},"modified":"2025-10-17T10:18:47","modified_gmt":"2025-10-17T15:18:47","slug":"o-vosso-cerebro-esta-a-ser-usado-contra-voces-psicopatas","status":"publish","type":"post","link":"https:\/\/itishoemath.com\/pt_pt\/o-vosso-cerebro-esta-a-ser-usado-contra-voces-psicopatas\/","title":{"rendered":"PSYOPS [Como o seu c\u00e9rebro est\u00e1 a ser usado contra si]"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"4376\" class=\"elementor elementor-4376\" 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><strong>Manipula\u00e7\u00e3o dos media exposta<\/strong><\/h4>\n<br>\n<span>h<\/span>oe_math arranca a m\u00e1scara dos media e das plataformas digitais que sequestram o seu c\u00e9rebro. Com um profissional no jogo, ele analisa as verdadeiras t\u00e1cticas psicol\u00f3gicas - manipula\u00e7\u00e3o emocional, gatilhos subconscientes, estilo de culto<!--preview--> Lavagem cerebral - que molda aquilo em que acreditamos sem que nos apercebamos. Distra\u00e7\u00f5es noticiosas, l\u00edderes de cultos, mensagens pand\u00e9micas - est\u00e1 tudo planeado. A maioria das pessoas nem sequer se apercebe que est\u00e1 a ser atacada. Isto \u00e9 guerra psicol\u00f3gica. Acorda. Questiona tudo. N\u00e3o sejas um pe\u00e3o.\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\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 | 84 | Cren\u00e7as | Como os media moldam as cren\u00e7as | O epis\u00f3dio come\u00e7a por explicar como os media e os ecr\u00e3s criam associa\u00e7\u00f5es subconscientes que alteram as cren\u00e7as das pessoas sem que elas se apercebam. O apresentador mostra como este processo \u00e9 semelhante \u00e0 lavagem cerebral, utilizada diariamente milhares de milh\u00f5es de vezes para moldar a opini\u00e3o p\u00fablica e distrair da realidade.\n84 | 216 | Opera\u00e7\u00f5es Psicol\u00f3gicas | Opera\u00e7\u00f5es Psicol\u00f3gicas e Distra\u00e7\u00e3o | Um perito junta-se para descrever como funcionam as opera\u00e7\u00f5es psicol\u00f3gicas (SCOPS), incluindo exemplos reais como o incidente com o drone de Nova Jersey, que alegadamente distrai das not\u00edcias pol\u00edticas. Discutem como a cobertura coordenada dos meios de comunica\u00e7\u00e3o social manipula a aten\u00e7\u00e3o colectiva e oculta acontecimentos importantes.\n216 | 507 | Manipula\u00e7\u00e3o | Ler e manipular pessoas | O especialista partilha a sua experi\u00eancia em aplica\u00e7\u00e3o da lei, seguran\u00e7a e forma\u00e7\u00e3o com o FBI, detalhando t\u00e9cnicas para ler a linguagem corporal e identificar carater\u00edsticas que tornam as pessoas suscept\u00edveis de manipula\u00e7\u00e3o, coer\u00e7\u00e3o e lavagem cerebral.\n507 | 629 | Narrativas | Narrativas versus factos | A discuss\u00e3o centra-se na forma como o controlo de uma narrativa n\u00e3o consiste apenas em contar mentiras, mas tamb\u00e9m em selecionar os factos e hist\u00f3rias a destacar ou omitir. Isto molda a opini\u00e3o p\u00fablica, fazendo com que certos pontos de vista pare\u00e7am normais ou urgentes, enquanto outros s\u00e3o descartados ou ignorados.\n629 | 855 | C\u00e9rebro | Estrutura do c\u00e9rebro e atra\u00e7\u00e3o | Os apresentadores explicam como a estrutura do c\u00e9rebro - especificamente o neoc\u00f3rtex, o sistema l\u00edmbico e o sistema reptiliano - afecta a forma como formamos liga\u00e7\u00f5es e prefer\u00eancias. Estes mesmos processos neurol\u00f3gicos que influenciam a atra\u00e7\u00e3o rom\u00e2ntica s\u00e3o explorados por comerciantes e propagandistas.\n855 | 1200 | Apego | Apego, oxitocina e ilus\u00e3o | As hormonas do apego, como a oxitocina, desempenham um papel tanto nas rela\u00e7\u00f5es como na manipula\u00e7\u00e3o, com uma discuss\u00e3o pormenorizada sobre a forma como isto leva a situa\u00e7\u00f5es de parceria e porque \u00e9 que algumas pessoas se apegam a ideias, narrativas ou l\u00edderes, mesmo quando isso as prejudica.\n1200 | 1367 | Cult Brainwashing | Magical Thinking and Cult Brainwashing | Os anfitri\u00f5es descrevem o pensamento m\u00e1gico - acreditar que eventos aleat\u00f3rios t\u00eam um significado especial - e ligam-no a t\u00e1cticas de culto, mostrando como indiv\u00edduos vulner\u00e1veis podem ser levados a aceitar cren\u00e7as extremas atrav\u00e9s de manipula\u00e7\u00e3o emocional e rituais.\n1367 | 1558 | V\u00edtimas | Reconhecendo V\u00edtimas e Perpetradores | Ensinam como identificar pessoas que sofreram lavagem cerebral ou foram manipuladas pela sua linguagem corporal e comportamentos defensivos, e como os l\u00edderes de cultos criam mentalidades e rituais \"n\u00f3s contra eles\" para manter o controlo sobre os seguidores.\n1558 | 1701 | Pandemia | Pandemia, Ritual e Controlo Social | O epis\u00f3dio estabelece paralelos entre os rituais de culto e as medidas pand\u00e9micas, argumentando que muitos comportamentos de distanciamento social e de uso de m\u00e1scaras se tornaram rituais para refor\u00e7ar a coes\u00e3o do grupo, a obedi\u00eancia e uma din\u00e2mica \"n\u00f3s contra eles\".\n1701 | 1797 | Agreeableness | The Easily Led and Agreeableness | A investiga\u00e7\u00e3o sobre tra\u00e7os de personalidade \u00e9 discutida, destacando que cerca de 35-40% das pessoas s\u00e3o altamente agrad\u00e1veis e, portanto, mais facilmente lideradas. As mulheres s\u00e3o estatisticamente mais agrad\u00e1veis, o que as torna mais suscept\u00edveis \u00e0 manipula\u00e7\u00e3o social e psicol\u00f3gica.\n1797 | 2017 | Hipnose | Hipnose, m\u00e9todo PCP e sugest\u00e3o | O especialista explica como as pessoas podem ser hipnotizadas ou persuadidas a agir contra as suas cren\u00e7as em determinadas circunst\u00e2ncias, utilizando o m\u00e9todo PCP (perce\u00e7\u00e3o, contexto, permiss\u00e3o). Passa em revista exemplos do mundo real e experi\u00eancias psicol\u00f3gicas que demonstram a conformidade.\n2017 | 2092 | Necessidades | Seis necessidades humanas fundamentais | O epis\u00f3dio descreve seis necessidades humanas fundamentais (significado, aprova\u00e7\u00e3o, aceita\u00e7\u00e3o, intelig\u00eancia, poder e simpatia) que os manipuladores exploram para influenciar cren\u00e7as e ac\u00e7\u00f5es, especialmente em tempos de crise ou incerteza.\n2092 | 2654 | Milgram | Lavagem cerebral e a experi\u00eancia de Milgram | Passam em revista a famosa experi\u00eancia de Milgram, que demonstra como a autoridade e o contexto podem levar pessoas comuns a cometer actos prejudiciais. Apenas tr\u00eas dos seis factores-chave de conformidade s\u00e3o necess\u00e1rios para levar a maioria das pessoas a obedecer a ordens extremas.\n2654 | 2888 | Estocolmo | S\u00edndrome de Estocolmo e Manipula\u00e7\u00e3o Extrema | Casos como o de Patty Hearst e o de prisioneiros de guerra ilustram como a priva\u00e7\u00e3o, o medo e a repeti\u00e7\u00e3o podem reconfigurar completamente as cren\u00e7as de algu\u00e9m atrav\u00e9s do fracionamento e do trauma, levando a uma total conformidade e mesmo devo\u00e7\u00e3o aos seus captores.\n2888 | 3490 | GovOps | Recognizing Government Psychological Operations | Explicam como os governos usam a distra\u00e7\u00e3o, a normaliza\u00e7\u00e3o, a escalada e o ritual para moldar a opini\u00e3o p\u00fablica, citando exemplos como o bal\u00e3o meteorol\u00f3gico chin\u00eas e as hist\u00f3rias dos drones de Nova Jersey. Os mesmos processos utilizados nos cultos s\u00e3o aplicados em grande escala atrav\u00e9s dos media.\n3490 | 3788 | Eventos | Guia passo a passo para eventos fabricados | Uma an\u00e1lise detalhada de como os eventos fabricados se desenrolam: deslocar a janela de Overton, normalizar novas ideias, criar tens\u00e3o, escalar relat\u00f3rios, organizar um blitz medi\u00e1tico, engendrar um evento global, criar o caos e depois apresentar uma solu\u00e7\u00e3o pr\u00e9-planeada ao p\u00fablico.\n3788 | 4049 | Poder | Manuten\u00e7\u00e3o do poder e depend\u00eancia do p\u00fablico | Os apresentadores concluem que o objetivo destas opera\u00e7\u00f5es \u00e9 aumentar a confian\u00e7a e a depend\u00eancia do p\u00fablico em rela\u00e7\u00e3o \u00e0s autoridades, fazendo com que as pessoas aceitem restri\u00e7\u00f5es e cedam liberdades sem questionar. Exortam os telespectadores a reconhecerem estes padr\u00f5es e a perguntarem sempre se as solu\u00e7\u00f5es est\u00e3o a aumentar o controlo governamental ou a reduzir as liberdades individuais.\n<\/pre>\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-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\">ordem|x_px|y_px|Esquerda_Direita_Acima_Baixo|texto\n1|5|248|R|<span class=\"translate\">As mulheres est\u00e3o literalmente a conduzir a ra\u00e7a humana \u00e0 extin\u00e7\u00e3o neste momento<\/span>\n2|10|391|R|<span class=\"translate\">As mulheres est\u00e3o a conduzir a ra\u00e7a humana \u00e0 extin\u00e7\u00e3o porque estamos fartas dos homens e da sociedade que eles constru\u00edram<\/span>\n3|18|592|R|<span class=\"translate\">PSYOPS<\/span>\n4|488|385|B|<span class=\"translate\">as mulheres devem ser pagas para existir<\/span>\n5|476|89|R|<span class=\"translate\">As suas mentes est\u00e3o sequestradas!<\/span>\n6|740|36|R|<span class=\"translate\">Neoc\u00f3rtex<\/span>\n7|1134|154|R|<span class=\"translate\">L\u00edmbico<\/span>\n8|834|401|R|<span class=\"translate\">Privado<\/span>\n9|867|673|R|<span class=\"translate\">P\u00fablico<\/span>\n10|843|561|B|<span class=\"translate\">Perce\u00e7\u00e3o<\/span>\n11|936|510|R|<span class=\"translate\">Autoriza\u00e7\u00e3o<\/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\/05\/UCsEPI9OwGEw5Lm0E7Paq62g_0003_wWrsW76bG88_en.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 A Internet est\u00e1 a enlouquecer toda a gente, uma cabe\u00e7a falante de cada vez. E n\u00e3o \u00e9 novidade - antigamente, diz\u00edamos o mesmo da televis\u00e3o. Funciona assim: vemos uma coisa, sentimos uma coisa e fazemos uma associa\u00e7\u00e3o - como \"homem mau\" - antes de podermos decidir em que \u00e9 que acreditamos. Depois, passa para a coisa seguinte, mas essa associa\u00e7\u00e3o fica no seu c\u00e9rebro, pronta a ser utilizada mais tarde.\n11.0 \u00c9 assim que as suas cren\u00e7as s\u00e3o alteradas por outra pessoa e nem sequer d\u00e1 por isso. N\u00e3o \u00e9 um acidente - esta \u00e9 basicamente a f\u00f3rmula para a lavagem cerebral, e \u00e9 usada em bili\u00f5es de pessoas todos os dias. J\u00e1 alguma vez acreditou numa coisa s\u00f3 porque a viu num ecr\u00e3? Alguma vez se distraiu com algo falso quando estava a acontecer algo real? Se pensa que n\u00e3o, isso significa apenas que n\u00e3o tem conhecimento do assunto. Acontece a toda a gente, todos os dias.\n59.0 As partes inferior e m\u00e9dia do seu c\u00e9rebro s\u00e3o f\u00e1ceis de manipular; elas apenas reagem. A \u00fanica forma de se proteger \u00e9 usar o c\u00e9rebro superior, e eu mostro-lhe como - at\u00e9 fiz um diagrama para si.\n71.0 Basicamente, v\u00ea-se algo, sente-se algo, guarda-se esse sentimento para mais tarde e segue-se em frente - sem nunca pensar realmente nisso. Esta \u00e9 a explica\u00e7\u00e3o curta. A longa pode avivar a tua mem\u00f3ria, por isso fica por aqui.\n90.0 Este v\u00eddeo \u00e9 um pouco diferente - normalmente falo sobre pensamentos subconscientes que est\u00e3o a estragar o mercado dos encontros, mas hoje \u00e9 sobre como esses mesmos pensamentos subconscientes s\u00e3o usados para controlar toda a gente, n\u00e3o apenas os encontros, atrav\u00e9s das redes sociais, da televis\u00e3o e do governo. S\u00e3o as chamadas opera\u00e7\u00f5es psicol\u00f3gicas, ou SCOPS, e s\u00e3o t\u00e3o reais e comuns como os an\u00fancios publicit\u00e1rios.\n115.0 Trouxe um perito - ele trabalha com o FBI, ensina a tra\u00e7ar perfis psicol\u00f3gicos e \u00e9 basicamente um profissional na compreens\u00e3o de como os pensamentos e sentimentos das pessoas podem ser manipulados. Ele leu documentos governamentais que a maioria das pessoas n\u00e3o leu.\n135.0 Ele explica como os SCOPS s\u00e3o usados como distrac\u00e7\u00f5es. Por exemplo, durante os avistamentos de drones em Nova Jersey no final de 2024, toda a gente estava concentrada nos drones. Mas, nessa altura, o Presidente Biden perdoou o seu filho Hunter - uma grande hist\u00f3ria que acabou por ficar enterrada sob a cobertura dos drones. Coincid\u00eancia? Nem por isso. H\u00e1 provas de que a hist\u00f3ria dos drones foi usada como uma distra\u00e7\u00e3o.\n211.0 BK, o perito, diz que as not\u00edcias s\u00e3o constantemente utilizadas para o enganar e que tem de aprender a detect\u00e1-las. Procurem grandes hist\u00f3rias promovidas por apenas um lado. O patrocinador, Ground News, ajuda-o a comparar os t\u00edtulos e a ver a parcialidade da cobertura, que \u00e9 uma forma de detetar um SCOP.\n279.0 BK tem experi\u00eancia em opera\u00e7\u00f5es banc\u00e1rias e seguran\u00e7a - foi treinado pelo FBI durante cinco anos, ensinando aos profissionais de seguran\u00e7a e de aplica\u00e7\u00e3o da lei como ler a linguagem corporal, detetar a manipula\u00e7\u00e3o e perceber quando algu\u00e9m pode ser um narcisista ou psicopata. Ele diz que os mesmos princ\u00edpios usados nos encontros - como a atra\u00e7\u00e3o - s\u00e3o os mesmos usados nas opera\u00e7\u00f5es psicol\u00f3gicas e na lavagem cerebral.\n347.0 A diferen\u00e7a entre o que as pessoas dizem e o que realmente sentem \u00e9 o ponto exato que os manipuladores visam. Altere os sentimentos, n\u00e3o o deixe pensar sobre eles, e muda o que algu\u00e9m acredita. \u00c9 por isso que ele passou tanto tempo a tentar consciencializar as pessoas para o funcionamento do seu pr\u00f3prio c\u00e9rebro.\n385.0 O curr\u00edculo de BK \u00e9 longo, mas o que interessa \u00e9 que ele consegue ler as pessoas melhor do que a maioria e sabe como perceber se algu\u00e9m foi manipulado, \u00e9 perigoso ou pode ser manipulado. Ensina a detetar e at\u00e9 a criar estas situa\u00e7\u00f5es, que os pol\u00edticos e as autoridades utilizam a toda a hora.\n535.0 \"Controlar a narrativa\" n\u00e3o \u00e9 apenas mentir. Trata-se de escrever a hist\u00f3ria em que as pessoas acreditam, misturando factos e omiss\u00f5es de forma a moldar aquilo em que as pessoas se concentram - deixando de fora detalhes ou enfatizando outros. Tem de utilizar o seu c\u00e9rebro pensante para escrever a sua pr\u00f3pria narrativa, caso contr\u00e1rio, outra pessoa f\u00e1-lo-\u00e1 por si.\n670.0 O c\u00e9rebro funciona da seguinte forma: na base est\u00e1 o \"c\u00e9rebro reptiliano\" (impulsos), depois o sistema l\u00edmbico (emo\u00e7\u00f5es) e, por fim, o neo-c\u00f3rtex (c\u00e9rebro pensante). O c\u00e9rebro s\u00f3 presta aten\u00e7\u00e3o \u00e0quilo em que o treinamos para reparar - como quando compramos um carro novo e, de repente, vemos esse modelo em todo o lado. O mesmo acontece com o tipo de pessoas que nos atrai ou com as ideias que absorvemos. O seu subconsciente decide o que \u00e9 importante e afasta o resto.\n874.0 O \"n\u00facleo accumbens\" no seu c\u00e9rebro lembra-se de tudo o que lhe deu uma descarga de dopamina, e vai continuar a empurr\u00e1-lo para perseguir essa sensa\u00e7\u00e3o. Basicamente, programamo-nos para ver o mundo de uma determinada forma, com base no que alimentamos a nossa mente.\n936.0 O apego desempenha um papel importante na manipula\u00e7\u00e3o. Se algu\u00e9m consegue fazer com que te sintas ligado a ele ou \u00e0s suas ideias, vais querer acreditar no que ele quer. \u00c9 a\u00ed que entram coisas como a oxitocina (a hormona da liga\u00e7\u00e3o). As mulheres libertam muito mais oxitocina do que os homens durante certas experi\u00eancias, o que as torna mais propensas a criar la\u00e7os. Os homens n\u00e3o se ligam da mesma forma, o que causa confus\u00e3o nas rela\u00e7\u00f5es.\n1041.0 O conselho: ter a conversa \"o que \u00e9 que n\u00f3s somos?\" antes de se apegar, n\u00e3o depois. Muitas vezes, as pessoas atiram-se para a frente, apegam-se e depois tentam definir a rela\u00e7\u00e3o, o que leva a todo o tipo de racionaliza\u00e7\u00f5es - como culpar a astrologia pelos sentimentos b\u00e1sicos.\n1112.0 Da mesma forma que as pessoas emocionais podem ser manipuladas nos relacionamentos, qualquer pessoa que seja levada a sentir coisas pode acabar acreditando em ilus\u00f5es. A isto chama-se \"pensamento m\u00e1gico\" - atribuir um valor sobrenatural a acontecimentos ou sentimentos aleat\u00f3rios. \u00c9 comum e f\u00e1cil de despoletar, e \u00e9 assim que os cultos e a lavagem cerebral funcionam.\n1223.0 Os l\u00edderes dos cultos t\u00eam como alvo as pessoas a quem falta algo nas suas vidas. Ao estimularem os nervos e os sentimentos corretos (como o nervo vago, que liga o c\u00e9rebro, o peito e o intestino), transformam os sentimentos em cren\u00e7as. Cerca de um quarto das pessoas s\u00e3o \"facilmente conduzidas\", e um ter\u00e7o mais pode ser persuadido se lhe forem dadas provas suficientes.\n1331.0 Passo a passo, os l\u00edderes de seitas (e autoridades manipuladoras) reconhecem quem precisa de perten\u00e7a, aceita\u00e7\u00e3o ou valida\u00e7\u00e3o, depois criam uma mentalidade de \"n\u00f3s contra eles\", fazem rituais ou sacrif\u00edcios e isolam os membros. Todos estes comportamentos se traduzem em gestos de auto-prote\u00e7\u00e3o e medo da autoridade.\n1570.0 Isto \u00e9 semelhante ao que aconteceu durante a pandemia da COVID: as pessoas perderam liga\u00e7\u00f5es, foram-lhes atribu\u00eddos inimigos para culpar e adoptaram comportamentos e linguagem de prote\u00e7\u00e3o. Tudo isso se encaixa nos padr\u00f5es cl\u00e1ssicos de manipula\u00e7\u00e3o e lavagem cerebral.\n1727.0 Come\u00e7a pequeno - como \"15 dias para achatar a curva\" - e cresce \u00e0 medida que as pessoas obedecem, muitas vezes porque s\u00e3o agrad\u00e1veis ou querem integrar-se. A elevada agradabilidade \u00e9 mais comum nas mulheres, mas a educa\u00e7\u00e3o e as circunst\u00e2ncias tamb\u00e9m s\u00e3o importantes.\n1811.0 A hipnose \u00e9 basicamente sugest\u00e3o - as pessoas n\u00e3o podem ser hipnotizadas para fazer algo totalmente contra o seu car\u00e1cter, mas com a combina\u00e7\u00e3o certa de sugestionabilidade, concentra\u00e7\u00e3o, abertura, liga\u00e7\u00e3o, conformidade e expetativa, quase qualquer pessoa pode ser levada longe, como demonstrado nas experi\u00eancias de Milgram (chocar as pessoas porque uma autoridade lhes disse para o fazerem).\n2017.0 As pessoas com necessidades fortes - import\u00e2ncia, aprova\u00e7\u00e3o, intelig\u00eancia, poder ou simpatia - s\u00e3o mais suscept\u00edveis de serem manipuladas. Os \u00faltimos anos mostraram que as pessoas ganham aceita\u00e7\u00e3o seguindo regras, poder aplicando-as e assim por diante.\n2104.0 A manipula\u00e7\u00e3o requer ser visto como uma autoridade, mostrar provas sociais (como celebridades e pol\u00edticos), criar apego, isolar o alvo e depois adicionar ciclos de stress e al\u00edvio - um processo chamado fracionamento.\n2323.0 Nas redes sociais, o fracionamento est\u00e1 em todo o lado: v\u00ea-se uma coisa gira, depois uma coisa assustadora, depois uma coisa reconfortante, e de novo - as emo\u00e7\u00f5es s\u00e3o sacudidas, fazendo com que se agarre ao que parece seguro, mesmo que seja a coisa que o deixou perturbado.\n2416.0 As mesmas pessoas que te fazem ter medo oferecem-te a solu\u00e7\u00e3o, controlando aquilo em que acreditas. \u00c9 assim que se consegue que as pessoas \"apanhem uma faca que cai\" - agarram-se a qualquer coisa que pare\u00e7a segura.\n2448.0 H\u00e1 seis elementos principais que tornam algu\u00e9m sugestion\u00e1vel: sugestionabilidade, foco, abertura, conex\u00e3o, conformidade e expetativa. Nas experi\u00eancias de Milgram, apenas alguns destes elementos estavam presentes, mas eram suficientes para fazer com que as pessoas carregassem num bot\u00e3o de \"matar\".\n2681.0 Lidar com algo desconhecido consome os recursos do seu c\u00e9rebro e torna-o mais vulner\u00e1vel a sugest\u00f5es, a n\u00e3o ser que esteja hiper-vigilante.\n2730.0 O caso Patty Hearst \u00e9 um exemplo cl\u00e1ssico: ela foi raptada, isolada, passou fome e foi bombardeada com propaganda, acabando por se juntar aos seus captores nos seus crimes - S\u00edndrome de Estocolmo. As mesmas t\u00e9cnicas t\u00eam sido usadas por governos em prisioneiros de guerra e por cultos.\n2848.0 A quebra de algu\u00e9m envolve medo, isolamento, interrup\u00e7\u00e3o de rotinas, fome e repeti\u00e7\u00e3o. Isso molda as pessoas at\u00e9 que elas fa\u00e7am qualquer coisa, acreditando que a id\u00e9ia foi delas.\n2894.0 \u00c9 a mesma coisa que o seu telem\u00f3vel faz - perturba-o e depois conforta-o, vezes sem conta. Se pensas que \u00e9s imune, \u00e9 quando est\u00e1s mais vulner\u00e1vel.\n2949.0 At\u00e9 o criador deste v\u00eddeo j\u00e1 caiu em t\u00e1cticas de vendas quando estava com fome e desconcentrado - ningu\u00e9m est\u00e1 imune se as condi\u00e7\u00f5es forem adequadas.\n3014.0 Agora, como \u00e9 que estas t\u00e9cnicas s\u00e3o usadas pelos governos e ag\u00eancias de intelig\u00eancia? BK confirma que, sim, o governo conhece e utiliza estas t\u00e9cnicas, por vezes atrav\u00e9s de distrac\u00e7\u00f5es p\u00fablicas (SCOPS), outras vezes com agentes como Charles Manson (que foi apoiado nos bastidores).\n3151.0 Uma SCOP (opera\u00e7\u00e3o psicol\u00f3gica) \u00e9 basicamente uma \"realidade projectada\". \u00c9 usada como uma distra\u00e7\u00e3o - como um truque de magia. Se estiver a acontecer alguma coisa importante, procura hist\u00f3rias grandes e unificadoras nas not\u00edcias que distraiam a aten\u00e7\u00e3o.\nO 3280.0 BK confirma que quando se v\u00eaem frases e hist\u00f3rias id\u00eanticas em todos os meios de comunica\u00e7\u00e3o social, \u00e9 sinal de que o governo est\u00e1 envolvido, canalizando pontos de discuss\u00e3o para controlar a narrativa. Ele viu os documentos.\n3409.0 Durante a COVID, o medo foi repetido em todas as esta\u00e7\u00f5es, promovendo rituais (como m\u00e1scaras e distanciamento) que, desde ent\u00e3o, foram desmentidos, mas que serviram para unir as pessoas em comportamento.\n3497.0 Aqui est\u00e1 o manual para uma grande opera\u00e7\u00e3o psicol\u00f3gica:\n* Deslocar a \"janela de Overton\" de modo a que se possa falar do que est\u00e1 para vir.\n* Normalizar o t\u00f3pico atrav\u00e9s da repeti\u00e7\u00e3o nos media.\n* Preparar o palco, criando antecipa\u00e7\u00e3o e medo, para que as pessoas sintam a necessidade de salva\u00e7\u00e3o.\n* Tornar o assunto pessoal, usando hist\u00f3rias do homem da rua.\n* Fazer um blitz em todos os meios de comunica\u00e7\u00e3o para que todos digam a mesma coisa.\n* Desencadear um grande \"acontecimento\" (real ou falso) para criar o caos.\n* Oferecer a solu\u00e7\u00e3o - que \u00e9 o que se pretendia desde o in\u00edcio.\n3814.0 Pensem em coisas como o Patriot Act, em que as pessoas abdicaram voluntariamente da privacidade em troca de seguran\u00e7a. As restri\u00e7\u00f5es tempor\u00e1rias nunca acabam por ser tempor\u00e1rias.\n3935.0 A pergunta a fazer a si pr\u00f3prio: \"Isto est\u00e1 a dar mais controlo ao governo ou a tirar as liberdades de algu\u00e9m?\" Se sim, procure as fases de normaliza\u00e7\u00e3o, escalada e personaliza\u00e7\u00e3o nas semanas anteriores.\n3998.0 Agora j\u00e1 sabe o que s\u00e3o SCOPS e como funcionam. Mantenha-se alerta, mantenha-se ativo e questione tudo - ver\u00e1 os sinais se os procurar.\n4037.0 Queres a c\u00e1bula dos SCOPS? Verifica o Patreon do criador ou a \u00e1rvore de links - ele est\u00e1 a public\u00e1-la gratuitamente para os membros do YouTube e do Patreon.\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: \"wWrsW76bG88\" },\n  es: { type: \"bunny\", id: \"b32eed75-9913-49a2-a5b0-c0adf28c0048\"},  \n  fr: { type: \"bunny\", id: \"83d061d3-8dc2-4fba-8bab-62e040e50714\" }, \n  ja: { type: \"bunny\", id: \"d6903e3b-83f7-4eb1-8078-f11a43510d74\"},\n  pt: { type: \"bunny\", id: \"9aeab9b5-6c44-40e6-81c7-c525cb6282bf\"},   \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\">As tradu\u00e7\u00f5es e a transcri\u00e7\u00e3o simplificada baseiam-se em tradu\u00e7\u00f5es do material original, localizadas em v\u00e1rias l\u00ednguas. Criado por PeakCreatorRoyalty.com sob licen\u00e7a com <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\">Obras-primas interactivas<\/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\">Nesta imagem interactiva, pode explorar a forma como cada n\u00edvel age e afirma a sua vis\u00e3o do mundo.<\/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      Todos\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       Esconder\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-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>Media Manipulation Exposed hoe_math arranca a m\u00e1scara dos media e das plataformas digitais que sequestram o seu c\u00e9rebro. Com um profissional no jogo, ele destrincha as verdadeiras t\u00e1cticas psicol\u00f3gicas - manipula\u00e7\u00e3o emocional, gatilhos subconscientes, lavagem cerebral ao estilo de um culto - que moldam aquilo em que acreditamos sem que nos apercebamos. Distra\u00e7\u00f5es noticiosas, l\u00edderes de seitas, mensagens pand\u00e9micas - est\u00e1 tudo planeado. A maioria das pessoas nem sequer se apercebe [...]<\/p>","protected":false},"author":6,"featured_media":2199,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[97,100],"tags":[127,126,129,128],"class_list":["post-4376","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-media-propaganda-and-persuasion","category-free-newsletter-insider-exclusives","tag-es","tag-fr","tag-ja","tag-pt"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts\/4376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/comments?post=4376"}],"version-history":[{"count":36,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts\/4376\/revisions"}],"predecessor-version":[{"id":5436,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts\/4376\/revisions\/5436"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/media\/2199"}],"wp:attachment":[{"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/media?parent=4376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/categories?post=4376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/tags?post=4376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}