;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

'Amor Perfeito' recupera elite negra dos anos 40 apagada pela história

Juliana Alves está em "Amor Perfeito"; 50% do elenco é negro - Globo/João Miguel Júnior
Juliana Alves está em "Amor Perfeito"; 50% do elenco é negro Imagem: Globo/João Miguel Júnior

De Splash, no Rio

20/03/2023 04h00

"Amor Perfeito", novela das seis que estreia hoje na Globo, é inspirada no livro espanhol "Marcelino, Pão e Vinho", de 1953, e ambientada no interior de Minas Gerais entre as décadas de 1930 e 1940. Apesar disso, retrata temas em pauta hoje, como diversidade e representatividade negra.

Segundo a autora Duca Rachid, a história do órfão Marcelino é contada por um elenco 50% negro. A novela vai narrar as vivências de uma elite negra que existia na década de 1940, mas foi apagada pela história. Portanto, ela quer recuperar a expertise negra que sempre existiu no Brasil.

"A partir do momento que a gente fez pesquisas para novela, a gente pensou em fazer uma novela diversa, em tentar representar um Brasil mais real, a gente descobriu coisas incríveis como uma elite negra que sempre existiu no Brasil e foi apagada pela narrativa hegemônica do Sul e do Sudeste", explicou ela em entrevista coletiva.

A novela, claro, vai tocar em temas ligados ao racismo, que se perpetua até hoje estruturalmente na sociedade, mas não é o foco dos personagens.

A gente quer mostrar um Brasil como ele é, com os problemas todos, mas os personagens não estão lá para serem afetados pelo racismo, eles estão vivendo a vida deles.
Duca Rachid

Além de Duca Rachid, Júlio Fischer e Elisio Lopes Jr. também assinam o folhetim.

Novela de época diferente

A atriz Juliana Alves acredita que "Amor Perfeito" é uma trama de época diferente das demais que omitiam as histórias de pessoas negras.

Ela dá vida a Wanda, uma mulher moderna, de espírito cosmopolita, dona da loja "A Brasileira Elegante", que oferece, entre seus artigos, produtos femininos "ousados" para a mentalidade interiorana da época, como tops, calças compridas e terninhos.

"É uma novela que não se nega a mostrar o Brasil que nos foi negado nas outras novelas de época. Foram novelas de sucesso eboas, mas a gente sabe que algumas camadas da sociedade foram omitidas pela própria construção do Brasil e pela estrutura de invisibilidade que a gente tem", disse a atriz.

Na trama, Wanda é esposa do promotor Sílvio Pacheco (Bukassa Kabengelle). Ela não suspeita que o marido foi comprado pela vilã Gilda (Mariana Ximenes).

"É muito legal vê-la empreendedora, dona do seu negócio, transitando na alta sociedade. Ver expressado culturalmente o afeto entre pessoas pretas. É importante ter o a isso através de uma novela. Importante ver esse amor preto da Wanda pelo Silvio", completou Juliana.

A caracterização da personagem já causa incômodo. "Recebi um comentário no meu Instagram: 'mas esse cabelo não é de época'. A novela se permite fazer algumas provocações. Quem assistir à novela, vai perceber que várias coisas nos vão fazer refletir e sair da caixinha. É muito legal ter as texturas de cabelo crespo, é super possível para aquela época também", ponderou.

Camila Queiroz, Diogo Almeida e Levi Asaf em foto de 'Amor Perfeito' - Divulgação/Globo - Divulgação/Globo
Camila Queiroz, Diogo Almeida e Levi Asaf em foto de "Amor Perfeito"
Imagem: Divulgação/Globo

Mas qual é a história central de Amor Perfeito?

Em 1934, Marê é uma jovem moderna que volta para São Jacinto para assumir os negócios da família após se formar em istração, mas se vê obrigada por seu preconceituoso pai Leonel a se casar com o mau-caráter Gaspar quando revela estar namorando Orlando, um médico negro.

Além disso, sua jovem e ambiciosa madrasta, Gilda, também se apaixona por Orlando e decide matar Leonel, com a ajuda de Gaspar, para que a culpa caia em Marê, ficando assim com seu dinheiro e seu homem. Na prisão, Marê descobre estar grávida de Orlando e tem a criança tirada de si, ando 8 anos reclusa até sair em liberdade condicional em 1942.

Após sair da prisão, ela decide voltar para São Jacinto a fim de se vingar de Gilda, recuperar sua herança e seu filho, que está sendo criado sob o nome de Marcelino pelos padres da cidade.

"É difícil localizar os registros desse Brasil mais diverso. A gente sabe que até nisso a questão econômica influencia. Nos anos 40, você conseguir tirar uma fotografia era um luxo. Então, esse exercício de buscar mais fundo essa diversidade faz parte do nosso interesse explícito de contar uma história brasileira com sotaque, otimismo e capacidade de superar as mazelas. Além disso, claro, contar as histórias de amor, o nosso grande objetivo", assegurou Elisio Lopes Jr.