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

"Bermuda comprada em supermercado me acompanhou na minha 1ª maratona"

A peça comprada em um supermercado por Stephanie se tornou uma companheira e fez parte da sua primeira maratona de corrida - Arquivo Pessoal
A peça comprada em um supermercado por Stephanie se tornou uma companheira e fez parte da sua primeira maratona de corrida Imagem: Arquivo Pessoal

Stephanie Steponovicius, em depoimento a Marilia Marasciulo

Colaboração para Nossa

15/11/2021 04h00

Stephanie Steponovicius

Stephanie Steponovicius

Profissão

Produtora de TV e cinema

Minha roupa com história

Bermuda biker que usei para correr minha primeira maratona

Comprei esses shorts em maio deste ano, para uma viagem para o Havaí. Eu me encantei por esse modelo biker quando provei a peça de uma amiga, achei que seria ótimo para fazer as trilhas na ilha. Ela me disse que tinha comprado em um supermercado, então lá fui eu atrás de um. Não encontrei igual, mas achei uma versão super confortável, com bolsinhos, era perfeito. Viajei, fiz trilhas, foi ótimo.

E aí dois meses depois eu decidi correr a maratona de Los Angeles. Moro aqui há mais de cinco anos e, desde que cheguei, esse era um dos meus maiores sonhos. Mas sempre surgia algum empecilho: trabalho novo, pandemia, enfim. Até que dessa vez peguei firme para valer.

Stephanie durante a maratona - Arquivo Pessoal - Arquivo Pessoal
Stephanie durante a maratona
Imagem: Arquivo Pessoal

Apesar de ter um bilhão de shorts de ginástica, porque já corria e fazia academia, decidi dar uma chance para a minha bermudinha biker. Os outros são muito curtinhos e me deixavam aquela marca horrorosa de sol, mega esquisita, e não têm bolso. Já é difícil achar bolso em roupa de mulher, em roupa de academia, então, mais ainda. E nos treinos mais longos gosto de carregar garrafinhas de água, isotônico, protetor labial, celular. A minha bermudinha tem dois bolsos na lateral onde cabia celular, chave e cartão. Então comecei a fazer os treinos mais longos com ela.

Foram 16 semanas de treino, e eu usava a bermuda biker uma vez por semana para os mais longos. Mesmo quando as quilometragens começaram a ficar muito altas, e meu clube de corrida ou a colocar barracas de hidratação ao longo do caminho, eu continuei com ela.

Virou uma espécie de amuleto: tirava no sábado para lavar e secar, colocava na gaveta e tirava na semana seguinte para o treino longo".

Stephanie com a bermuda biker para a maratona - Arquivo Pessoal - Arquivo Pessoal
Stephanie com a bermuda biker em uma das corridas
Imagem: Arquivo Pessoal

Troquei o top várias vezes, os tênis, a meia, as blusinhas, comprei mochilinha de hidratação e até cinto para colocar mais coisas. Mas os shorts são os mesmos. Se olhar as fotos das 16 semanas de preparação, estou sempre com ele. Chegou um ponto em que eu pensava "se eu não trocar alguma peça de roupa, vai parecer que não tenho outra". Mas ele foi feito para isso.

Peça acompanha Stephanie para diversas atividades - Arquivo Pessoal - Arquivo Pessoal
Peça se tornou "amuleto" de Stephanie
Imagem: Arquivo Pessoal

E aí, quando chegou a hora da prova, cansei de ouvir que não era para testar nada novo, porque poderia dar algo ruim. Então obviamente fui correr com minha bermudinha biker. Não poderia escolher outra peça para realizar o sonho de terminar uma maratona! De tudo, ele foi a única coisa que se manteve constante e foi comigo até o fim da prova.

E ele está ótimo, uma qualidade muito boa para ter sido comprado em um mercado e tão barato. Agora vou dar um descanso para ele, mas tenho certeza que vai continuar comigo, porque é a lembrança de uma das maiores conquistas da minha vida. Ele é perfeito. Apesar de estar comigo há poucos meses, provavelmente foi a peça de roupa que mais usei na vida e pela qual vou ter um carinho especial para sempre.

Como usar

Escritório esportivo

Da maratona para o escritório ou do escritório para a maratona? Não importa. Com salto fino, camisa ou blazer acinturado, a peça quebra as barreiras da corrida e tira a mesmice de looks formais.

Maratonista urbana

As bermudas bikers viraram febre entre fashionistas, que montam produções com a peça. Combinar com camiseta e coturno ou sandália é a melhor maneira de aproveitar a tendência para sair por aí esbanjando conforto e estilo.