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

Aprenda a fazer risoto de pinhão com a campeã do Masterchef Michele Crispim

Bruno Calixto

Colaboração para Nossa

10/07/2021 04h00

Há quem diga que os pratos mais conhecidos da culinária catarinense são o rodízio de camarão do litoral, os doces artesanais ou as delícias italianas ou alemãs, como o eisbein (joelho de porco) e a bockwurst (salsicha). Há quem aposte em outras iguarias, como o pinhão, a semente da Araucária e a parte comestível da pinha.

"Um produto que não se encontra o ano inteiro, para comer no frio, em volta da lareira", define Zeca Camargo, ao convocar a chef e vencedora da quarta edição do MasterChef Michele Crispim para preparar um risoto de pinhão no programa Brasil com Zeca. "Um prato digno de encantar qualquer jurado", definiu.

Risoto de pinhão foi o prato do dia do Brasil com Zeca - Marcelo Santos/UOL - Marcelo Santos/UOL
Risoto de pinhão foi o prato do dia do Brasil com Zeca
Imagem: Marcelo Santos/UOL

Nativo da região Sul e de algumas áreas do Sudeste do Brasil, o pinhão é encontrado mais facilmente entre os meses de março e agosto.

"Este prato aproveita bem este ingrediente. Pinhão eu troco até por pipoca no inverno para ver um filme, combina com inverno", diz Michele, que ensina o o a o abaixo.

Antigamente, o pinhão era muito consumido pelos indígenas e ainda hoje está bastante presente em diversas festas típicas do país. Formado pela casca e amêndoa, o alimento se destaca pelo sabor e a textura diferenciada.

Prato versátil

"O bacana é que quando a gente aprende a fazer um tipo de risoto, faz qualquer um. Depende do bom caldo", sugere a cozinheira de mão cheia, que está prestes a abrir um restaurante para chamar de seu.

"Eu comecei a cozinhar fazendo risoto", diz Zeca Camargo, ao se recordar: "Uma vez, já tinha começado, mas foi chegando mais gente, e acrescentar arroz. Um erro.

Antes do "MasterChef", Michele Crispim já cozinhava. "No supermercado, eu comprava produtos que nunca tinha visto. Estou sempre na cozinha e feliz."

Michele Crispim vencei o MasterChef em 2017 - Reprodução Instagram - Reprodução Instagram
Michele Crispim vencei o MasterChef em 2017
Imagem: Reprodução Instagram

Ainda sobre o risoto, ela dá uma outra dica: "quando o arroz ficar al dente, misturar tudo, servir num prato fundo e tirar onda".

Drinque da vez

Para combinar com o sabor do pinhão e a cremosidade do arroz, o consultor etílico Leandro Santos criou no programa o drinque Alto Mar. Anote aí:

Drinque Alto Mar, criação para harmonizar com o risoto de pinhão - Marcelo Santos/UOL - Marcelo Santos/UOL
Drinque Alto Mar, criação para harmonizar com o risoto de pinhão
Imagem: Marcelo Santos/UOL

Basta colocar fatia de abacaxi cortada em quatro (sem o miolinho) dentro do copo da coqueteleira, acrescentar duas colheres de açúcar e macerar. Depois, duas pedras de gelo e 40 ml de suco de limão siciliano, 50 ml de vodca, e bater na coqueteleira. Servir num copo longo com gelo, virar o líquido e fazer uma dupla coagem. Finalizar com 30 ml de vinho tinto seco, colocado delicadamente com uma colherzinha para o vinho ficar por cima.

"Já quero colocar em meu restaurante", afirma Michele.

Anota aí

Brasil com Zeca vai ao ar toda sexta-feira, às 19 horas, no Canal UOL e no YouTube de Nossa, onde você também pode maratonar todos os episódios. Também confira conteúdos extra nas redes sociais de Nossa: Instagram, Twitter, e Facebook.