(function () {
  'use strict';

  /* NAV scrolled state */
  const nav = document.querySelector('.nav');
  if (nav) {
    const onScroll = () => nav.classList.toggle('nav--scrolled', window.scrollY > 40);
    window.addEventListener('scroll', onScroll, { passive: true });
    onScroll();
  }

  /* Mobile menu */
  const hamburger = document.getElementById('hamburger-btn');
  const mobileNav = document.getElementById('mobile-nav');
  if (hamburger && mobileNav) {
    hamburger.addEventListener('click', () => {
      const open = mobileNav.classList.toggle('is-open');
      hamburger.setAttribute('aria-expanded', open);
      document.body.style.overflow = open ? 'hidden' : '';
    });
  }
  window.closeMobileNav = function () {
    if (mobileNav) mobileNav.classList.remove('is-open');
    document.body.style.overflow = '';
  };

  /* Scroll reveal */
  const revealEls = document.querySelectorAll('.reveal, .reveal-stagger');
  if ('IntersectionObserver' in window && revealEls.length) {
    const obs = new IntersectionObserver((entries) => {
      entries.forEach((e) => {
        if (e.isIntersecting) { e.target.classList.add('is-visible'); obs.unobserve(e.target); }
      });
    }, { threshold: 0.08 });
    revealEls.forEach((el) => obs.observe(el));
  } else {
    revealEls.forEach((el) => el.classList.add('is-visible'));
  }

  /* Ticker pause on hover */
  const ticker = document.querySelector('.ticker-track');
  if (ticker) {
    const wrap = ticker.closest('.ticker-wrap');
    if (wrap) {
      wrap.addEventListener('mouseenter', () => (ticker.style.animationPlayState = 'paused'));
      wrap.addEventListener('mouseleave', () => (ticker.style.animationPlayState = 'running'));
    }
  }

  /* Smooth scroll anchors */
  document.querySelectorAll('a[href^="#"]').forEach((a) => {
    a.addEventListener('click', (e) => {
      const target = document.querySelector(a.getAttribute('href'));
      if (target) { e.preventDefault(); closeMobileNav(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); }
    });
  });

})();