(function () {
          const logo = document.getElementById("siteLogo");
          const wrap = logo && logo.parentElement;
          if (!logo || !wrap) return;

          // Pointer tilt
          function handleMove(e) {
            const rect = wrap.getBoundingClientRect();
            const cx = rect.left + rect.width / 2;
            const cy = rect.top + rect.height / 2;
            const dx = e.clientX - cx;
            const dy = e.clientY - cy;
            const max = 12; // degrees
            const rx = (-dy / (rect.height / 2)) * max;
            const ry = (dx / (rect.width / 2)) * max;
            logo.style.transform = `rotate(${-6}deg) translateZ(0) rotateX(${rx.toFixed(
              2
            )}deg) rotateY(${ry.toFixed(2)}deg)`;
          }

          function reset() {
            logo.style.transform = "rotate(-6deg)";
          }

          wrap.addEventListener("pointermove", handleMove);
          wrap.addEventListener("pointerleave", reset);

          // Pop on click/tap
          wrap.addEventListener("click", () => {
            logo.classList.remove("pop");
            // force reflow to restart animation
            void logo.offsetWidth;
            logo.classList.add("pop");
          });

          // Mobile menu toggle
          const mobileBtn = document.getElementById("mobileMenuButton");
          const mobileMenu = document.getElementById("mobileMenu");
          if (mobileBtn && mobileMenu) {
            mobileBtn.addEventListener("click", () => {
              const isOpen = !mobileMenu.classList.contains("hidden");
              mobileMenu.classList.toggle("hidden");
              mobileBtn.setAttribute("aria-expanded", String(!isOpen));
            });

            // Close mobile menu when resizing to desktop
            window.addEventListener("resize", () => {
              if (window.innerWidth >= 768) {
                mobileMenu.classList.add("hidden");
                mobileBtn.setAttribute("aria-expanded", "false");
              }
            });
          }
        })();