!function(){"use strict";function e(){const e=document.querySelector("model-viewer[data-scroll-animate]");if(!e)return void console.warn("[3D-Scroll] Kein model-viewer mit data-scroll-animate gefunden");if("true"===e.dataset.scrollAnimateInitialized)return void console.warn("[3D-Scroll] Bereits initialisiert");if(e.dataset.scrollAnimateInitialized="true","undefined"==typeof gsap||"undefined"==typeof ScrollTrigger)return void console.error("[3D-Scroll] GSAP oder ScrollTrigger nicht geladen");gsap.registerPlugin(ScrollTrigger),"undefined"!=typeof Lenis&&window.lenis&&window.lenis.on("scroll",ScrollTrigger.update);const t={trigger:e.dataset.scrollTrigger||e.parentElement,start:e.dataset.scrollStart||"top top",end:e.dataset.scrollEnd||"bottom bottom",scrub:parseFloat(e.dataset.scrub)||1,markers:"true"===e.dataset.scrollMarkers},r=e.dataset.keyframes;if(r)try{!function(e,t,r){const a=()=>{e.interpolationDecay=0,r.sort(((e,t)=>e.progress-t.progress));const a={angle:0,phi:75,distance:4,targetY:0,fov:30};let s={...a};r.forEach((e=>{Object.keys(a).forEach((t=>{void 0===e[t]?e[t]=s[t]:s[t]=e[t]}))}));const o={angle:r[0].angle,phi:r[0].phi,distance:r[0].distance,targetY:r[0].targetY,fov:r[0].fov};e.setAttribute("camera-orbit",`${o.angle}deg ${o.phi}deg ${o.distance}m`),e.setAttribute("camera-target",`0m ${o.targetY}m 0m`),e.setAttribute("field-of-view",`${o.fov}deg`),requestAnimationFrame((()=>{e.jumpCameraToGoal&&e.jumpCameraToGoal();const a=gsap.timeline({scrollTrigger:{trigger:t.trigger,start:t.start,end:t.end,scrub:t.scrub,markers:t.markers,onUpdate:function(){e.setAttribute("camera-orbit",`${o.angle}deg ${o.phi}deg ${o.distance}m`),e.setAttribute("camera-target",`0m ${o.targetY}m 0m`),e.setAttribute("field-of-view",`${o.fov}deg`),e.jumpCameraToGoal&&e.jumpCameraToGoal()}}});for(let e=1;e{ScrollTrigger.refresh();const t=a.scrollTrigger;t&&t.progress>0&&(a.progress(t.progress),e.setAttribute("camera-orbit",`${o.angle}deg ${o.phi}deg ${o.distance}m`),e.setAttribute("camera-target",`0m ${o.targetY}m 0m`),e.setAttribute("field-of-view",`${o.fov}deg`),e.jumpCameraToGoal&&e.jumpCameraToGoal())}),100)}))},s=()=>{if(e.loaded&&e.modelIsVisible)a();else{const t=()=>{e.loaded&&e.modelIsVisible&&(a(),e.removeEventListener("load",t),e.removeEventListener("model-visibility",t))};e.addEventListener("load",t),e.addEventListener("model-visibility",t)}};setTimeout(s,0)}(e,t,JSON.parse(r))}catch(e){console.error("[3D-Scroll] Fehler beim Parsen der Keyframes:",e)}else!function(e,t){const r=parseFloat(e.dataset.startAngle)||0,a=parseFloat(e.dataset.endAngle)||360,s=parseFloat(e.dataset.startPhi)||75,o=parseFloat(e.dataset.endPhi)||75,i=parseFloat(e.dataset.startDistance)||4,n=parseFloat(e.dataset.endDistance)||2,l={angle:r,phi:s,distance:i};gsap.to(l,{angle:a,phi:o,distance:n,ease:"none",scrollTrigger:{trigger:t.trigger,start:t.start,end:t.end,scrub:t.scrub,markers:t.markers,onUpdate:function(){e.cameraOrbit=`${l.angle}deg ${l.phi}deg ${l.distance}m`}}})}(e,t)}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()}();