1(function () { 2 "use strict"; 3 4 var nav = document.querySelector("[data-toyora-nav]"); 5 var toggle = document.querySelector("[data-toyora-nav-toggle]"); 6 if (nav && toggle) { 7 nav.classList.add("is-collapsed"); 8 toggle.addEventListener("click", function () { 9 nav.classList.toggle("is-collapsed"); 10 }); 11 } 12 13 // Reveal on scroll for stamps & cards 14 var revealItems = document.querySelectorAll(".toyora-stamp, .toyora-card, .toyora-stat"); 15 if ("IntersectionObserver" in window && revealItems.length) { 16 revealItems.forEach(function (el) { 17 el.style.opacity = "0"; 18 el.style.transform = "translateY(18px)"; 19 el.style.transition = "opacity 0.55s ease, transform 0.55s ease"; 20 }); 21 var io = new IntersectionObserver( 22 function (entries) { 23 entries.forEach(function (entry) { 24 if (entry.isIntersecting) { 25 entry.target.style.opacity = "1"; 26 entry.target.style.transform = "translateY(0)"; 27 io.unobserve(entry.target); 28 } 29 }); 30 }, 31 { threshold: 0.12 } 32 ); 33 revealItems.forEach(function (el) { 34 io.observe(el); 35 }); 36 } 37 38 // Soft parallax on hero shapes 39 var shapes = document.querySelector(".toyora-hero__shapes"); 40 if (shapes) { 41 window.addEventListener( 42 "pointermove", 43 function (e) { 44 var x = (e.clientX / window.innerWidth - 0.5) * 12; 45 var y = (e.clientY / window.innerHeight - 0.5) * 12; 46 shapes.style.transform = "translate(" + x + "px, " + y + "px)"; 47 }, 48 { passive: true } 49 ); 50 } 51})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.