{"id":5178,"date":"2025-08-06T15:27:14","date_gmt":"2025-08-06T20:27:14","guid":{"rendered":"https:\/\/itishoemath.com\/?p=5178"},"modified":"2025-10-17T10:18:46","modified_gmt":"2025-10-17T15:18:46","slug":"0125-subir-de-nivel-ou-manter-se-preso-maximizar-se","status":"publish","type":"post","link":"https:\/\/itishoemath.com\/pt_pt\/0125-subir-de-nivel-ou-manter-se-preso-maximizar-se\/","title":{"rendered":"Subir de n\u00edvel ou ficar preso: Auto-maximiza\u00e7\u00e3o"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"5178\" class=\"elementor elementor-5178\" 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>O sistema de auto-maximiza\u00e7\u00e3o que todos os homens precisam de ver<\/h4>\n\nPronto para melhorar o seu jogo de encontros e toda a sua vida? Este \u00e9 o Self-Maximize - um mapa mental brutalmente honesto que me levou de gorda, falida e invis\u00edvel para um \"oito\" com op\u00e7\u00f5es que a maioria dos homens<!--preview--> apenas sonham. Mas, aqui est\u00e1 a parte que ningu\u00e9m quer admitir: a maioria dos homens (e mulheres) falham porque ignoram o feedback que a vida lhes est\u00e1 a gritar.\n<br><br>\nToda a gente fala em \"sermos n\u00f3s pr\u00f3prios\" ou \"sermos simp\u00e1ticos\". Errado. Os encontros modernos s\u00e3o implac\u00e1veis. Se n\u00e3o melhorar ativamente - o f\u00edsico, a moda, a confian\u00e7a e a forma como age - ficar\u00e1 preso, repetindo infinitamente os mesmos erros. Quer saber porque \u00e9 que ainda est\u00e1 na mesma liga de encontros? Apresento os 7 passos para subir rapidamente, al\u00e9m de todos os erros de principiante que os rapazes e as raparigas continuam a cometer.\n<br><br>\nO mais estranho \u00e9 que quase todos os homens subestimam o quanto as mulheres valorizam a apar\u00eancia e a presen\u00e7a - enquanto as mulheres n\u00e3o se apercebem que a sua pr\u00f3pria \"categoria de encontros\" mal se move, por mais que tentem. Eu explico tudo: a lista de verifica\u00e7\u00e3o, a mentalidade, como construir o poder, como se tornar realmente naquilo que o sexo oposto quer. Pare de culpar a sorte. Comece a maximizar-se a si pr\u00f3prio.\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|56|Introdu\u00e7\u00e3o|Mapa mental de auto-maximiza\u00e7\u00e3o|Um mapa mental \u00e9 apresentado para ajudar as pessoas a reflectirem sobre si pr\u00f3prias e a melhorarem-se, particularmente em termos de valor no mercado de encontros, com base na viagem pessoal do criador de um valor baixo para um valor elevado auto-percebido.  \n56|120|Teoria|Teoria Integral e Consci\u00eancia|A abordagem da auto-maximiza\u00e7\u00e3o \u00e9 parcialmente baseada na Teoria Integral, simplificada para uso pr\u00e1tico, e enfatiza o poder da consci\u00eancia e da mudan\u00e7a da mente e das a\u00e7\u00f5es para alcan\u00e7ar melhores resultados na vida.  \n120|197|Processo|Feedback e Mudan\u00e7a Consciente|O mapa do processo \u00e9 explicado como um fluxo de desejos para comportamentos e feedback ambiental, destacando onde as pessoas muitas vezes falham por n\u00e3o adaptarem as suas ac\u00e7\u00f5es com base nos resultados.  \n197|284|Consci\u00eancia|Import\u00e2ncia da Consci\u00eancia|O pensamento de baixa consci\u00eancia \u00e9 criticado, especialmente no que diz respeito ao direito ou egocentrismo nos relacionamentos, e a necessidade de considerar o que o mundo quer de n\u00f3s.  \n284|436|Exemplos|Exemplos de Resist\u00eancia ao Feedback|V\u00e1rios exemplos da vida real ilustram como as pessoas n\u00e3o conseguem alcan\u00e7ar seus desejos ignorando o feedback e se recusando a mudar seus pensamentos ou comportamentos.  \n436|564|Lista de Verifica\u00e7\u00e3o|Zonas e Reflex\u00e3o Di\u00e1ria|Uma lista de verifica\u00e7\u00e3o e um mapa de sete sec\u00e7\u00f5es s\u00e3o fornecidos para encorajar a reflex\u00e3o di\u00e1ria e o ajuste consciente em todas as \u00e1reas da vida, especialmente quando os resultados s\u00e3o insatisfat\u00f3rios.  \n564|789|Corpo|Melhoria F\u00edsica para Homens|Conselhos pr\u00e1ticos s\u00e3o dados para que os homens se concentrem na boa forma f\u00edsica, na moda, no asseio e na postura como passos fundamentais para aumentar a atratividade e o sucesso.  \n789|974|Masculinidade|Masculinidade, Poder e Confian\u00e7a|A import\u00e2ncia do poder, do status, da compet\u00eancia e da confian\u00e7a \u00e9 explicada, com dicas sobre como cultivar essas carater\u00edsticas e por que elas s\u00e3o importantes em contextos sociais e rom\u00e2nticos.  \n974|1175|Investimento|Valor e Investimento nas Rela\u00e7\u00f5es|Os homens s\u00e3o encorajados a investir valor, tempo e aten\u00e7\u00e3o nas rela\u00e7\u00f5es, compreendendo a import\u00e2ncia da proximidade emocional, da apresentabilidade, da lealdade e da partilha de recursos.  \n1175|1295|Mulheres|Auto-maximiza\u00e7\u00e3o para mulheres|Os desafios e limita\u00e7\u00f5es que as mulheres enfrentam na auto-maximiza\u00e7\u00e3o s\u00e3o discutidos, enfatizando a primazia da apar\u00eancia e a dificuldade de compens\u00e1-la atrav\u00e9s do esfor\u00e7o ou de outras carater\u00edsticas.  \n1295|1435|Personalidade|Personalidade e Din\u00e2mica de Relacionamento|O papel da personalidade, da positividade, do apoio e da sa\u00fade emocional na forma\u00e7\u00e3o de relacionamentos \u00e9 destacado, com advert\u00eancias contra a auto-sabotagem e a bagagem emocional.  \n1435|1448|Conclus\u00e3o|Resumo e Encorajamento|O v\u00eddeo conclui com uma recapitula\u00e7\u00e3o do mapa de auto-maximiza\u00e7\u00e3o e encorajamento para us\u00e1-lo para autorreflex\u00e3o cont\u00ednua e crescimento pessoal.\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-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 Este \u00e9 o Self-Maximize, um mapa mental concebido para o ajudar a refletir e a melhorar, especialmente no que diz respeito ao seu valor no mercado de encontros.\n11.0 Estou qualificado para falar sobre isto porque passei de um \"quatro\" para um \"oito\" ao perder 30 quilos, ficar em forma, aprender a vestir-me, eliminar inseguran\u00e7as, trabalhar as compet\u00eancias sociais e mudar-me para o outro lado do pa\u00eds para perseguir os meus sonhos.\n44.0 Comecei este canal nas redes sociais, que agora tem milh\u00f5es de visualiza\u00e7\u00f5es e me apoia ap\u00f3s apenas sete meses.\n50,0 Conseguir essas coisas me transformou de um perdedor total em algu\u00e9m com grandes op\u00e7\u00f5es.\n56,0 O Self-Maximize \u00e9 parcialmente baseado na teoria integral, mas eu fiz a minha pr\u00f3pria vers\u00e3o para facilitar a compreens\u00e3o.\n65,0 O patrocinador, Shortform, ajuda-o a digerir livros e artigos rapidamente, com resumos e exerc\u00edcios.\n108.0 Para se auto-maximizar, preste aten\u00e7\u00e3o a estas sete coisas na sua vida.\n111.0 Se sabe o que quer e consegue mudar a sua mente e as suas ac\u00e7\u00f5es, o seu mundo come\u00e7ar\u00e1 a dar-lhe melhores resultados.\n120,0 O mapa \u00e9 um fluxograma que mostra como os desejos se transformam em pensamentos, depois em comportamentos, que influenciam o seu ambiente e a sua vida.\n195,0 A maioria das pessoas fracassa porque n\u00e3o reflecte sobre o feedback e n\u00e3o muda as suas ac\u00e7\u00f5es, por isso este mapa incentiva-o a pensar no que quer e onde o pode obter antes de agir.\n215,0 Cada sec\u00e7\u00e3o do mapa cont\u00e9m perguntas e exerc\u00edcios para o ajudar a aumentar a sua consci\u00eancia.\n225.0 A consci\u00eancia \u00e9 importante porque muitas pessoas t\u00eam uma mentalidade egoc\u00eantrica e de baixa consci\u00eancia - como esperar que os outros gostem de si sem motivo ou recusar-se a dar valor.\n260.0 Muitas pessoas querem coisas, mas nunca pensam sobre o que o mundo quer delas ou como elas poderiam fornecer isso.\n266.0 Em resumo, a auto-melhoria significa n\u00e3o se concentrar apenas nas suas pr\u00f3prias necessidades - torne-se o que os outros est\u00e3o procurando e procure pessoas dispostas a ser isso para voc\u00ea.\n286.0 Voc\u00ea n\u00e3o pode fazer com que as pessoas gostem de voc\u00ea; voc\u00ea s\u00f3 tem que ser o que elas gostam.\n293.0 Por exemplo, eu fiquei em \u00f3tima forma, mas n\u00e3o ganhei muito dinheiro at\u00e9 recentemente, ent\u00e3o as mulheres entravam e sa\u00edam da minha vida - eu tinha tra\u00e7os atraentes, mas n\u00e3o confi\u00e1veis.\n319.0 Outro exemplo: Tive um amigo russo que queria perder o sotaque, mas n\u00e3o seguia o feedback, por isso nunca mudou.\n349.0 Um f\u00e3 veio pedir-me conselhos sobre a raz\u00e3o pela qual as pessoas o achavam \"frutado\", mas ele rejeitou todas as sugest\u00f5es e manteve o problema.\n379.0 Conheci uma rapariga que se queixava de que os homens no Tinder eram demasiado atrevidos, mas o perfil dela era s\u00f3 fotos de biqu\u00edni - ela n\u00e3o queria aceitar o feedback.\n401.0 Em todos estes casos, as pessoas queriam algo mas resistiam a mudar o seu comportamento, pelo que continuavam a obter os mesmos resultados.\n420.0 O mapa e a lista de verifica\u00e7\u00e3o est\u00e3o aqui para o lembrar de n\u00e3o fazer isso - pense nas sete sec\u00e7\u00f5es todos os dias, quer esteja a conseguir o que quer ou n\u00e3o.\n436.0 Se tem um problema, descubra o que precisa de mudar em si.\n444.0 Quando crio um conte\u00fado, penso no que quero que ele fa\u00e7a e para quem o estou a mostrar, e depois fa\u00e7o ajustes com base no feedback.\n460.0 Este processo de auto-design aplica-se a todas as partes da vida.\n464.0 Pode descarregar o mapa gratuitamente ou comprar o pacote; pense nele como uma mini sess\u00e3o de treino pessoal.\n474.0 Pergunte a si pr\u00f3prio: O que \u00e9 que eu estou a fazer que preenche estas caixas para a pessoa que estou \u00e0 procura?\n480.0 Aqui est\u00e1 a minha lista do que os homens e mulheres comuns precisam de melhorar; posso fazer v\u00eddeos para cada \u00e1rea.\n487.0 \"S\u00ea apenas simp\u00e1tico\" e \"s\u00ea apenas tu pr\u00f3prio\" s\u00e3o os piores conselhos para os homens modernos - a maioria precisa de come\u00e7ar pelo corpo e pela masculinidade.\n501.0 O aspeto mais importante da atra\u00e7\u00e3o \u00e9 f\u00edsico - concentre-se em estar em forma, vestir-se bem, agir corretamente e cuidar de si.\n520.0 N\u00e3o tenho fotos de antes, mas ficar em forma me fez passar de uma categoria de mulheres para outra.\n533.0 A maioria dos homens subestima o quanto as mulheres gostam de um bom corpo - provavelmente mais do que os homens.\n541.0 Depois de mudar a minha mente, dieta e exerc\u00edcio, os meus mesmos comportamentos obtiveram resultados muito melhores com as mesmas mulheres.\n557.0 Esta lista de verifica\u00e7\u00e3o s\u00e3o as minhas notas sobre o que provavelmente precisa de melhorar primeiro.\n564.0 A boa forma f\u00edsica \u00e9 super importante; se a est\u00e1s a ignorar, p\u00e1ra.\n575.0 A maioria dos homens deveria estar a ganhar m\u00fasculo e a perder gordura - as mulheres adoram quando se \u00e9 forte.\n582.0 A seguir vem a moda - se te vestires mal, pensa em como os outros se sentem em rela\u00e7\u00e3o a ti.\n590.0 Vista-se adequadamente para o que est\u00e1 a fazer; certifique-se de que as suas roupas servem e combinam.\n621.0 Expressivo significa adicionar um toque da sua pr\u00f3pria personalidade - descubra o que funciona para si, mas n\u00e3o se sabote com \"camisas de tot\u00f3\" ou \"\u00f3culos de autismo\".\n654.0 Considere o que est\u00e1 a mostrar \u00e0s pessoas, como elas reagem e o que pode mudar.\n664.0 As maneiras s\u00e3o importantes - mantenha-se direito, fale como um homem e pare de fazer coisas grosseiras ou irritantes.\n676.0 Tive um cliente alto e inteligente que era demasiado excit\u00e1vel e falava demasiado depressa; as raparigas n\u00e3o gostam disso.\n694.0 Outro tipo falava com uma inflex\u00e3o para cima; quando ele corrigiu isso, as coisas melhoraram.\n698.0 Usei uma c\u00e2mara para verificar a minha postura e corrigi-a.\n705.0 O asseio precisa de um v\u00eddeo pr\u00f3prio, mas o corte de cabelo e os p\u00ealos faciais devem adequar-se ao rosto - pe\u00e7a feedback \u00e0s mulheres.\n731.0 A higiene \u00e9 fundamental - n\u00e3o deixe nada ao acaso, como fazem as mulheres.\n761.0 Sempre que sair, tome um duche, penteie o cabelo, escove os dentes, vista roupas limpas, use desodorizante e traga pastilhas el\u00e1sticas.\n771.0 Se n\u00e3o fizeres isso, provavelmente cheiras mal, e \u00e9 por isso que as pessoas podem n\u00e3o gostar de ti.\n779.0 Se ficares em forma, te vestires bem, te mantiveres direito, falares com confian\u00e7a e te mantiveres fresco, resolver\u00e1s muitos problemas.\n793.0 Agora, masculinidade, compet\u00eancia e confian\u00e7a - uma vez que tens bom aspeto e cheiro, tens de agir como um homem.\n803.0 O poder \u00e9 um afrodis\u00edaco - a capacidade de fazer as coisas acontecerem ou de impedir que elas aconte\u00e7am.\n818.0 Atualmente, os homens n\u00e3o conseguem obter poder atrav\u00e9s do dinheiro com tanta facilidade, mas o dinheiro continua a ser importante.\n837.0 Poder \u00e9 fazer com que as coisas aconte\u00e7am do seu jeito - leia \"48 Leis do Poder\" para saber mais.\n850.0 Quando coloquei estes princ\u00edpios em pr\u00e1tica, as pessoas come\u00e7aram a dar-me o que eu queria.\n857.0 Status, respeito, import\u00e2ncia e dom\u00ednio s\u00e3o partes da hierarquia - as mulheres n\u00e3o querem homens de baixo status.\n866.0 Se voc\u00ea n\u00e3o pode chegar ao topo de um grupo, encontre um grupo onde voc\u00ea possa.\n873.0 As mulheres dizem que querem igualdade, mas continuam a ter uma posi\u00e7\u00e3o hier\u00e1rquica nos homens.\n880.0 Com estatuto, far\u00e1s com que as pessoas fracas se sintam inseguras e ter\u00e1s amigos poderosos.\n885.0 Ser um lobo solit\u00e1rio ou apenas um tipo simp\u00e1tico n\u00e3o te leva a lado nenhum.\n890.0 Compet\u00eancias - ser bom em algo que ela valoriza; as mulheres gostam mais disto do que ser bom em jogos de v\u00eddeo.\n902.0 N\u00e3o contes com habilidades de nicho para te tornares atraente - apela ao que a maioria das mulheres quer.\n918.0 Para ter confian\u00e7a, tenha estrutura e presen\u00e7a; estrutura significa decidir o que vai acontecer e manter-se fiel a isso, mas tamb\u00e9m trazer-lhe o que ela quer.\n930.0 N\u00e3o podes simplesmente mandar nela - tens de tornar a vida dela melhor sem estar sempre a pedir.\n941.0 Presen\u00e7a \u00e9 o quanto voc\u00ea transparece nas intera\u00e7\u00f5es - m\u00e1 presen\u00e7a \u00e9 ser auto-consciente ou estar fora do seu pr\u00f3prio mundo.\n957.0 Homens de alto status projetam confian\u00e7a e fazem as coisas acontecerem, mostrando \u00e0s mulheres que coisas boas acontecer\u00e3o se eles estiverem por perto.\n966.0 Masculinidade \u00e9 criar o que se quer, evitar o que n\u00e3o se quer e mostrar que se \u00e9 o tipo que \"faz as coisas acontecerem\".\n974.0 Esse \u00e9 o eixo do \"bad boy\": ter boa apar\u00eancia e fazer coisas boas acontecerem.\n978.0 Quando se \u00e9 popular, \u00e9 preciso tratar bem as mulheres para as manter - investir valor, ter bom aspeto, fazer com que ela tenha bom aspeto e adaptar a sua vida \u00e0s necessidades dela.\n992.0 A \"gal\u00e1xia dos b\u00f3nus\" s\u00e3o todas as pequenas coisas que tem ou que lhe acontecem, n\u00e3o necessariamente quem \u00e9.\n999.0 Investimento \u00e9 tudo o que lhe d\u00e1 - tempo, dinheiro, aten\u00e7\u00e3o, energia.\n1016.0 Aten\u00e7\u00e3o \u00e9 elogio e aprecia\u00e7\u00e3o - fa\u00e7a-a sentir-se como uma estrela.\n1030.0 O dinheiro \u00e9 importante - quanto mais tiver, mais ela fica.\n1040.0 A energia \u00e9 a forma como faz avan\u00e7ar a rela\u00e7\u00e3o; n\u00e3o pode estar sempre ocupado e esperar que resulte.\n1052.0 A proximidade emocional significa partilhar coisas profundas, n\u00e3o ser fraco ou chorar.\n1070.0 Apresentabilidade \u00e9 a sua reputa\u00e7\u00e3o e o qu\u00e3o bem a faz parecer - como a vers\u00e3o de bom rapaz do estatuto.\n1081.0 O estatuto \u00e9 o quanto as pessoas precisam de si para ter poder; a apresentabilidade \u00e9 o qu\u00e3o simp\u00e1tico \u00e9 - \u00e9 melhor ter ambos, mas \u00e9 melhor ser temido do que amado se n\u00e3o conseguir ser ambos.\n1115.0 Lealdade \u00e9 o quanto ela acredita que est\u00e1 a guardar o seu investimento para ela - n\u00e3o se agarre a rela\u00e7\u00f5es antigas.\n1133.0 Concentre-se nela no presente; ela n\u00e3o quer v\u00ea-lo a investir noutras raparigas.\n1140.0 A gal\u00e1xia b\u00f3nus \u00e9 sobre coisas a que tem acesso-como o s\u00edtio onde vive, que pode ser muito importante para as mulheres.\n1159.0 Os homens podem fazer muito para se auto-maximizarem: ter melhor aspeto, fazer as coisas acontecerem e partilhar as suas coisas.\n1175.0 Para as mulheres, a auto-maximiza\u00e7\u00e3o \u00e9 mais dif\u00edcil - a maioria das coisas que os homens podem fazer n\u00e3o d\u00e1 pontos \u00e0s mulheres, e \u00e9 por isso que o feminismo n\u00e3o funciona da mesma maneira.\n1204.0 Para as mulheres, a apar\u00eancia \u00e9 o mais importante; a sua apar\u00eancia imp\u00f5e um limite r\u00edgido \u00e0 categoria em que os homens a colocam.\n1223.0 Os homens podem compensar a apar\u00eancia com esfor\u00e7o; as mulheres normalmente n\u00e3o podem - \u00e9 dif\u00edcil subir, f\u00e1cil descer.\n1232.0 Cada homem valoriza as coisas de forma diferente, mas se um homem pensa que voc\u00ea \u00e9 um quatro, voc\u00ea nunca vai passar disso, n\u00e3o importa o que voc\u00ea fa\u00e7a.\n1255.0 As mulheres devem come\u00e7ar com homens que gostam delas e depois eliminar os que n\u00e3o gostam - em vez de andar atr\u00e1s de homens que nunca se esfor\u00e7am.\n1267.0 Perseguir os homens errados faz com que as mulheres fiquem presas durante anos, sem qualquer hip\u00f3tese de sair dessa categoria.\n1274.0 A mod\u00e9stia \u00e9 importante para as mulheres; a moda n\u00e3o \u00e9 normalmente um problema, a n\u00e3o ser que se esteja seminua em p\u00fablico.\n1282.0 A lealdade para os homens tem a ver com investimento; para as mulheres, a pureza tem a ver com reservar o seu corpo para ele.\n1292.0 O seu corpo \u00e9 a parte mais importante da atra\u00e7\u00e3o, mas a sua personalidade \u00e9 a parte mais importante da forma\u00e7\u00e3o de uma rela\u00e7\u00e3o.\n1298.0 Ser interessante significa ter mais a oferecer do que apenas a apar\u00eancia ou a maquilhagem - a maioria das mulheres n\u00e3o consegue escapar sem trazer mais nada.\n1323.0 As mulheres n\u00e3o precisam necessariamente de habilidades, mas devem ser capazes de falar sobre coisas que os homens gostam.\n1334.0 Ser positiva \u00e9 importante - muitas mulheres modernas pensam que \u00e9 admir\u00e1vel ser dif\u00edcil, mas isso \u00e9 auto-sabotagem.\n1354.0 A maioria dos agregados familiares tem agora dois rendimentos; cres\u00e7a e lide com isso.\n1372.0 O apoio \u00e9 essencial - tratar o seu homem como se ele n\u00e3o merecesse apoio \u00e9 auto-sabotagem.\n1393.0 As mulheres modernas pensam que reter apoio \u00e9 forte, mas na verdade \u00e9 o que os homens procuram.\n1402.0 Muitas mulheres descarregam os danos emocionais de relacionamentos passados nos novos parceiros e recusam-se a assumir a responsabilidade.\n1414.0 N\u00e3o ignore essas coisas - use o mapa para fazer uma autorreflex\u00e3o.\n1421.0 A pureza \u00e9 medida pela probabilidade de algo como trai\u00e7\u00e3o acontecer - material de esposa n\u00e3o tem a ver com o que se veste, e ningu\u00e9m quer que sua esposa se vista de forma provocante.\n1438.0 Dei-te um mapa do que as pessoas procuram, um mapa dos teus desejos e decis\u00f5es, e uma estrutura para come\u00e7ares a mud\u00e1-los.\n1446.0 Mal posso esperar para ver o meu feedback.\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: \"hREY1FJmqpU\" },\n  es: { type: \"youtube\", id: \"kAkkFQETsEs\" }, \n  fr: { type: \"youtube\", id: \"rowR1J6xNa0\" },\n  ja: { type: \"youtube\", id: \"haI7s5qzBOA\" },\n  pt: { type: \"youtube\", id: \"8tOKVbmlJ6Y\" } \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 e-flex e-con-boxed e-con e-parent\" data-id=\"e4bc449\" data-element_type=\"container\">\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-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>O sistema Self-Maximize que todos os homens precisam de ver Pronto para melhorar o seu jogo de encontros e toda a sua vida? Este \u00e9 o Self-Maximize - um mapa mental brutalmente honesto que me levou de gorda, falida e invis\u00edvel a um \"oito\" com op\u00e7\u00f5es com que a maioria dos homens s\u00f3 sonha. Mas, aqui est\u00e1 a parte que ningu\u00e9m quer admitir: a maioria dos homens (e [...]<\/p>","protected":false},"author":6,"featured_media":5250,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[134,140,100,143],"tags":[127,126,129,128],"class_list":["post-5178","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dating-dynamics","category-levels","category-free-newsletter-insider-exclusives","category-self-maximize","tag-es","tag-fr","tag-ja","tag-pt"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts\/5178","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=5178"}],"version-history":[{"count":19,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts\/5178\/revisions"}],"predecessor-version":[{"id":5762,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts\/5178\/revisions\/5762"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/media\/5250"}],"wp:attachment":[{"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/media?parent=5178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/categories?post=5178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/tags?post=5178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}