document.addEventListener("DOMContentLoaded", function() {
    // Encontra todas as imagens com o atributo "data-src"
    const lazyElements = document.querySelectorAll("[data-src], [data-reveal]");

    // Configuração do Intersection Observer
    const observerOptions = {
        root: null,
        rootMargin: "0px",
        threshold: 0.2
    };

    // Função para tratar os elementos
    function handleElement(entry) {
        if (entry.isIntersecting) {
            const element = entry.target;
            
            // Se o elemento tem o atributo "data-src", carrega a imagem
            if (element.hasAttribute("data-src")) {
                element.src = element.getAttribute("data-src");
                element.removeAttribute("data-src");
                element.classList.remove("lazy-image");
            }
            
            // Se o elemento tem o atributo "data-reveal", revela o conteúdo
            if (element.hasAttribute("data-reveal")) {
                element.classList.add("visible");
                element.removeAttribute("data-reveal");
            }
            
            observer.unobserve(element);
        }
    }

    // Criação do Intersection Observer
    const observer = new IntersectionObserver(entries => {
        entries.forEach(handleElement);
    }, observerOptions);

    // Observa todos os elementos preguiçosos e de revelação
    lazyElements.forEach(element => {
        observer.observe(element);
    });
});

