.elementor-695 .elementor-element.elementor-element-64e03fa{width:100%;max-width:100%;}.elementor-bc-flex-widget .elementor-695 .elementor-element.elementor-element-7180bfa.elementor-column .elementor-widget-wrap{align-items:flex-start;}.elementor-695 .elementor-element.elementor-element-7180bfa.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-start;align-items:flex-start;}.elementor-695 .elementor-element.elementor-element-7180bfa.elementor-column > .elementor-widget-wrap{justify-content:center;}:root{--page-title-display:none;}/* Start custom CSS for html, class: .elementor-element-64e03fa */<script>
  document.addEventListener('DOMContentLoaded', () => {
    const video = document.getElementById('mca-video');
    const wrapper = document.getElementById('scroll-wrapper');
    const logoBox = document.getElementById('mca-logo-box');
    const preloader = document.getElementById('mca-preloader');
    const enterBtn = document.getElementById('mca-enter-btn');

    document.body.style.overflow = 'hidden';

    // Garante que o vídeo seja baixado inteiro antes de liberar o botão
    video.preload = 'auto';
    video.addEventListener('canplaythrough', liberarAcesso);
    const backupTimeout = setTimeout(liberarAcesso, 4000); 

    function liberarAcesso() {
      clearTimeout(backupTimeout);
      enterBtn.classList.add('ready');
      enterBtn.innerText = "INICIAR EXPERIÊNCIA";
    }

    enterBtn.addEventListener('click', () => {
      preloader.classList.add('loaded');
      document.body.style.overflow = 'auto';
    });

    let targetScroll = 0; 
    let currentVideoProg = 0; 
    const suavidade = 0.05; // Diminuí ainda mais a suavidade para arrastar mais macio

    window.addEventListener('scroll', () => {
      const start = wrapper.offsetTop;
      const end = start + wrapper.offsetHeight - window.innerHeight;
      let progress = (window.scrollY - start) / (end - start);
      targetScroll = Math.max(0, Math.min(1, progress));
    });

    // Usa requestVideoFrameCallback se o navegador suportar (nova API muito mais rápida)
    const animFrame = ('requestVideoFrameCallback' in video) ? 
                      video.requestVideoFrameCallback.bind(video) : 
                      requestAnimationFrame;

    function renderLoop() {
      // Diferença entre onde estamos e onde queremos ir
      let diff = targetScroll - currentVideoProg;
      
      // Só atualiza se a diferença for perceptível (evita tremulação de micro-scrolls)
      if (Math.abs(diff) > 0.0001) {
        currentVideoProg += diff * suavidade;

        if (!isNaN(video.duration) && video.duration > 0) {
          let videoPct = Math.min(1, currentVideoProg / 0.8);
          // O pulo do gato: arredondar o tempo para evitar que o navegador calcule casas decimais infinitas
          video.currentTime = Number((video.duration * videoPct).toFixed(3));
        }

        if (currentVideoProg > 0.8) {
          let zoomPct = (currentVideoProg - 0.8) / 0.2;
          video.style.transform = `scale(${1 + (zoomPct * 1.5)}) translateZ(0)`; 
          video.style.opacity = 1 - zoomPct;
          
          logoBox.style.opacity = zoomPct;
          logoBox.style.transform = `translate(-50%, -50%) scale(${0.8 + (zoomPct * 0.2)})`;
        } else {
          video.style.transform = 'scale(1) translateZ(0)';
          video.style.opacity = 1;
          logoBox.style.opacity = 0;
          logoBox.style.transform = 'translate(-50%, -50%) scale(0.8)';
        }
      }

      requestAnimationFrame(renderLoop);
    }

    requestAnimationFrame(renderLoop);
  });
</script>/* End custom CSS */