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

Vikings, elfos e dragões: festival reúne fãs de 'Idade Média' no Rio

Emanuelle Marques, 20, e Lucas Flores, 20, na Feira Medieval Midgard, na Barra da Tijuca, no Rio - Fabiana Batista/UOL
Emanuelle Marques, 20, e Lucas Flores, 20, na Feira Medieval Midgard, na Barra da Tijuca, no Rio
Imagem: Fabiana Batista/UOL

Fabiana Batista

Colaboração para o TAB, do Rio

20/09/2022 04h01

Ao som de música celta regida pela DJ Luna Queiroz, jovens e famílias inteiras, inclusive avós, se reuniram na Feira Medieval Midgard, um festival no Uptown, na Barra da Tijuca, com mais de 40 barracas, de armaduras a produtos esotéricos no sábado (17) de sol no Rio de Janeiro.

Muitos dos visitantes estavam vestidos com trajes tidos como típicos da Idade Média, com toda a licença poética que o imaginário da época permite: orelhas de elfo, máscara de dragão, chifres de demônios, asas de fada.

Teve até quem, apaixonado por esse tipo de encontro, ou meses pensando no figurino. Foi o caso dos jovens Emanuelle Marques, 20, e Lucas Flores, 20, que pareciam sair de um filme de fantasia. Ela, uma princesa elfa. Ele, um demônio. "A ideia é se divertir", conta a estudante.

Num dos cantos, um casal exibia animais exóticos, uma cobra enrolada no braço dela, duas corujas pousando no ombro dele.

O dramaturgo Marcelo de Barros conta que se inspirou em encontros europeus para idealizar a feira na Barra da Tijuca para "celebrar as eras medieval e viking" — a ideia surgiu em 2019 e a primeira ocorreu em 2021.

Autor de uma peça intitulada "Judas Iscariotes e sua reencarnação como Joana D'Arc", Marcelo é produtor cultural há 15 anos e se diz apaixonado por história. Entretanto, pontua: "Aqui não é uma representação histórica de nada, é apenas uma reunião de apaixonados como eu".

Marcelo de Barros, idealizador da Feira Medieval - Fabiana Batista/UOL - Fabiana Batista/UOL
O dramaturgo e produtor cultural Marcelo de Barros, idealizador do festival
Imagem: Fabiana Batista/UOL

Tarô, taberna e 'tribal fusion'

"Midgard" faz referência à terra dos vikings — na mitologia nórdica, há nove mundos e Midgard é um deles.

Uma das tendas vendia reproduções de escudos vikings e outras armas. Ali foi fixado um alvo para a prática do arco e flecha, e os jovens gritavam animados a cada vez que uma amiga acertava uma sequência de três flechas. Do outro lado, oraculistas buscavam certo silêncio para suas cartas de tarô e de baralho cigano.

Arkana, 39, faz leitura simbólica de cartas e baralhos, na Feira Medieval, no Rio - Fabiana Batista/UOL - Fabiana Batista/UOL
'Não é sobre o futuro, mas sobre o presente', diz Arkana, 39, que faz leitura simbólica de cartas
Imagem: Fabiana Batista/UOL

"Desejo encontrar caminhos possíveis para que o consulente entenda sua realidade. Não é sobre o futuro, mas sobre o presente", conta a estudante Arkana Preta, 39, que oferece consulta de cartas e baralhos (R$ 70 por 30 minutos; R$ 100 a hora).

Ao lado de Arkana, a artesã Claudia Castro, 51, vendia vestuários caprichados feitos à mão, de braceletes de couro a armaduras (de até R$ 1.800). O público, diz ela, é principalmente de diretores de arte.

Artesanal também era o chope das barracas, apinhadas de amigos que riam e relembravam as edições anteriores do festival. Como se estivessem prontos para beber em uma taberna, uma rodinha mesclou referências de filmes e séries.

Os amigos Maiara, 28, Diego, 39, Cristiane, 45, e Tais, 31 - Fabiana Batista/UOL - Fabiana Batista/UOL
Na ordem, Maiara Nóbrega, 28, Diego Bassos, 39, Cristiane Gonçalves, 45, e Tais Serra, 31
Imagem: Fabiana Batista/UOL

Tais Serra, 31, se fantasiou de taberneira. De preto e pochete, Maiara Nóbrega, 28, incorporou uma "dark elfa". De vestido preto, cinto de couro e um chapéu de cone, Cristiane Gonçalves, 45, diz que se inspirou no universo da bruxaria e na série "Outlander". Diego Bassos, 39, se vestiu de "Blade", o caçador de vampiros.

"É nosso hobbie sofisticado há 15 anos", conta Cristiane. Diego e ela já viajaram a outros estados para participar de encontros assim — o último foi o Taberna Folk, em São Paulo.

Na arena de atrações, bailarinas dançaram estilos como "tribal fusion". A festa foi embalada por hidromel — as bancas da bebida alcóolica, considerada uma das mais antigas do mundo, ficaram lotadas do início ao fim do dia.

Valéria, 55, dona do Nectar dos Deuses, marca de Hidromel, na Feira Medieval Midgard, no Rio - Fabiana Batista/UOL - Fabiana Batista/UOL
Valéria, 55, do Nectar dos Deuses, uma das marcas de hidromel no festival
Imagem: Fabiana Batista/UOL

Anoitecia e o vento frio arrepiava quem não estava preparado para os últimos dias de inverno no Rio. Mas a feira seguiu a todo vapor. Enquanto o público "comum" aos poucos ia embora, os fantasiados dominaram a noite, com suas indumentárias especiais e esotéricas e espadas de guerra. Ficou difícil andar entre as barracas.

Beirando às 19h, o silêncio entre os espectadores indicava um suspense para o show mais esperado do dia: o gaitista Alex Navar, considerado como referência mundial de gaita de fole irlandesa pelos organizadores.

Foi assim, ao som de gaita e com doses generosas de hidromel em copos de chifre ou de madeira, que o público aproveitou o friozinho para, em terras tupiniquins, imaginar-se em uma Idade Média de dragões, guerreiros e taberneiros.