;(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

Lan Lanh: 'Sempre quis ser mãe. Quando a gente vê o positivo, muda tudo'

Nanda Costa e Lan Lahn anunciam gravidez de gêmeas - Rê Duarte/Divulgação
Nanda Costa e Lan Lahn anunciam gravidez de gêmeas Imagem: Rê Duarte/Divulgação

Mariana Gonzalez

De Universa, em São Paulo

26/08/2021 04h00

"Quando a gente vê o positivo, muda tudo", diz Lan Lanh, em entrevista a Universa, a menos de dois meses de se tornar mãe. A percussionista aguarda o nascimento das filhas gêmeas, que estão há sete meses na barriga da mulher, a atriz Nanda Costa.

"Eu sempre gostei de criança, sempre quis ser mãe, mas ei 30 anos na estrada, emendando uma turnê em outra, meu tempo de gestar foi ando e acabou acontecendo agora, aos 53 anos", diz. "Fico me perguntando se existe momento certo para ser mãe, se teria sido melhor quando eu tinha 25, 30 anos, mas não tem essa, está sendo tão bom agora".

O casal anunciou a gravidez há dois meses, no Fantástico. A Universa, Lan Lanh contou que boa parte dos amigos e familiares souberam da notícia pela televisão.

"Eu nunca sofri violência por conta da minha sexualidade, mas muita gente sofre, e tornar isso público foi uma tentativa de mostrar a nossa família natural como ela é, e de trazer representatividade para famílias como a nossa".

A gestação, primeira das duas, aconteceu após três tentativas de fertilização in vitro — para comemorar, Lan Lanh compôs a música "Duas Mães" de presente para a mulher. "Não tenha medo/nós somos fortes/tem duas mães/você tem sorte", diz a letra.

"Quando fiz essa música, não imaginava trazer tanta representatividade. E o que mais me emocionou foi receber o retorno dos filhos de dupla maternidade. Recebemos tantas mensagens de crianças, meninos e meninas que têm duas mães, que fomos nos conectando a outras famílias como a nossa", lembra a percussionista.

"Vamos deixar um terreno mais bonito para nossas filhas"

Lan Lanh e Nanda Costa tornaram o relacionamento público há três anos, mas estão juntas há sete, e sempre sonharam em ter filhos.

"Com o tempo, firmamos nossos pilares. Fizemos a união estável, depois convertemos em casamento civil, justamente pensando em ter filhos, registrá-los em nossos nomes, um direito conquistado há tão pouco tempo no Brasil", diz.

Ela continua: "Todo mundo pergunta como vai ser criar essas crianças em meio a tanto preconceito, mas a gente vai continuar caminhando com muito respeito, com essa coragem que a gente tem de viver, de ser feliz."

Lan Lanh diz que "a gente já andou muito nas nossas conquistas [enquanto movimento LGBTQIA+], mas ainda temos muito o que avançar".

"Eu celebro cada conquista, mas acho que a gente tem que ficar sempre ligada, sempre atenta para seguir em frente e não perder os direitos que já foram conquistados. Vale a pena, porque vamos deixar para as nossas filhas e nossas netas um terreno muito mais bonito, mais igual e mais justo do que aquele por onde eu caminhei."