var e=Object.defineProperty;const t=new Map;let i=!1,n=!1;performance.now();const s=document.createElement("div");s.style.position="fixed",s.style.bottom="0",s.style.left="0",s.style.font="12px monospace",s.style.color="#0f0",s.style.background="rgba(0,0,0,0.75)",s.style.padding="0.25rem 0.5rem",s.style.zIndex="9999",s.style.pointerEvents="none",s.style.display="none";const r=`
`;s.innerHTML+=r,s.style.lineHeight="1.4",document.body.appendChild(s);const o=new class{constructor({fps:e=!0}={}){this.fpsEnabled=e,this.fps=0,this.frameCount=0,this.lastTime=performance.now(),this.visible=!1,this.taskTimings=new Map,this.logs=[],this.container=document.createElement("div"),this.container.style.position="fixed",this.container.style.bottom="0",this.container.style.left="0",this.container.style.font="12px Consolas, monospace",this.container.style.color="#0f0",this.container.style.background="rgba(0,0,0,0.75)",this.container.style.padding="0.5rem",this.container.style.zIndex="9999",this.container.style.pointerEvents="none",this.container.style.lineHeight="1.4",this.container.style.whiteSpace="pre",this.container.style.display="none",document.body.appendChild(this.container),window.addEventListener("keydown",e=>{"§"===e.key&&(this.visible=!this.visible,this.container.style.display=this.visible?"block":"none")})}log(e){const t=(new Date).toLocaleTimeString();this.logs.push(`[${t}] ${e}`),this.logs.length>5&&this.logs.shift()}update(e=new Map){this.frameCount++;const t=performance.now();if(t-this.lastTime>=1e3){this.fps=this.frameCount,this.frameCount=0,this.lastTime=t;const i=[];for(const[e,t]of this.taskTimings.entries())i.push(`${e}: ${t.toFixed(2)}ms`);const n=Math.min(2*this.fps,100),s=this.logs.slice().reverse().join("\n");this.container.innerHTML=`\nFPS: ${this.fps} | Tasks: ${e.size}\n${i.join("\n")}\n\n${s?"\nLogs:\n"+s:""}\n `}}trackTask(e,t){const i=performance.now();t();const n=performance.now()-i;this.taskTimings.set(e,n)}};function a(e,s,r={}){t.set(e,s),r.autoStart&&!i&&function(){if(i)return;function e(){for(const[e,s]of t)try{n?o.trackTask(e,s):s()}catch(i){c.warn("[Frameloop] Fehler in Task:",i)}n&&o.update(t),requestAnimationFrame(e)}i=!0,requestAnimationFrame(e)}()}function l(e){t.delete(e)}window.addEventListener("keydown",e=>{"§"===e.key&&(n=!n,s.style.display=n?"block":"none")});class c{static log(...e){this._write("log","[LOG]",e)}static warn(...e){this._write("warn","[WARN]",e)}static info(...e){this._write("info","[INFO]",e)}static error(...e){this._write("error","[ERROR]",e)}static _write(e,t,i){if(!this.enabled)return;const n=`${t} [${(new Date).toLocaleTimeString("de-DE")}] ${i.map(e=>{if(e instanceof Error)return`${e.name}: ${e.message}\n${e.stack||""}`;if("object"==typeof e&&null!==e)try{return JSON.stringify(e)}catch(t){return"[Circular Object]"}return e}).join(" ")}`;if("function"==typeof console[e]&&console[e](n),o&&"function"==typeof o.log)try{o.log(n)}catch(s){}}}var d;((t,i,n)=>{i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[i]=n})(c,"symbol"!=typeof(d="enabled")?d+"":d,!0);const h=new Map,u={add(e,t,i,{module:n="global",options:s=!1}={}){e.addEventListener(t,i,s),h.has(n)||h.set(n,[]),h.get(n).push([e,t,i,s])},removeModule(e){const t=h.get(e);t&&(t.forEach(([e,t,i,n])=>{e.removeEventListener(t,i,n)}),h.delete(e))},clearAll(){for(const[e,t]of h.entries())t.forEach(([e,t,i,n])=>{e.removeEventListener(t,i,n)});h.clear()},debug(){console.table([...h.entries()].map(([e,t])=>({module:e,listeners:t.length})))}};function m(e,t,i,n=import.meta,s=!1){var r;const o="string"==typeof n?n:(null==(r=n.url)?void 0:r.split("/").slice(-2,-1)[0])||"unknown";return u.add(e,t,i,{module:o,options:s}),()=>{u.removeModule(o)}}class g{constructor(e,t={}){this.canvas=e,this.ctx=e.getContext("2d"),this.options={responsive:!0,pixelRatio:window.devicePixelRatio||1,...t},this.animationId=null,this.isAnimating=!1,this.init()}init(){this.setupCanvas(),this.options.responsive&&this.setupResponsive(),c.debug("[CanvasManager] Initialized",{width:this.canvas.width,height:this.canvas.height,pixelRatio:this.options.pixelRatio})}setupCanvas(){this.resize(),this.canvas.style.width=this.canvas.width+"px",this.canvas.style.height=this.canvas.height+"px",this.options.pixelRatio>1&&this.ctx.scale(this.options.pixelRatio,this.options.pixelRatio)}setupResponsive(){m(window,"resize",()=>{this.resize()},"canvas-manager"),m(window,"orientationchange",()=>{setTimeout(()=>this.resize(),100)},"canvas-manager")}resize(){const e=this.canvas.parentElement,t=this.options.pixelRatio;let i,n;e&&"static"!==getComputedStyle(e).position?(i=e.clientWidth,n=e.clientHeight):(i=this.canvas.clientWidth||window.innerWidth,n=this.canvas.clientHeight||window.innerHeight),this.canvas.width=Math.floor(i*t),this.canvas.height=Math.floor(n*t),this.canvas.style.width=i+"px",this.canvas.style.height=n+"px",t>1&&this.ctx.scale(t,t),c.debug("[CanvasManager] Resized",{displayWidth:i,displayHeight:n,canvasWidth:this.canvas.width,canvasHeight:this.canvas.height})}clear(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height)}getSize(){return{width:this.canvas.clientWidth,height:this.canvas.clientHeight,pixelWidth:this.canvas.width,pixelHeight:this.canvas.height}}getMousePosition(e){const t=this.canvas.getBoundingClientRect();return{x:(e.clientX-t.left)*this.options.pixelRatio,y:(e.clientY-t.top)*this.options.pixelRatio}}startAnimation(e){this.isAnimating&&this.stopAnimation(),this.isAnimating=!0;const t=i=>{this.isAnimating&&(e(i),this.animationId=requestAnimationFrame(t))};this.animationId=requestAnimationFrame(t),c.debug("[CanvasManager] Animation started")}stopAnimation(){this.animationId&&(cancelAnimationFrame(this.animationId),this.animationId=null),this.isAnimating=!1,c.debug("[CanvasManager] Animation stopped")}destroy(){this.stopAnimation(),c.debug("[CanvasManager] Destroyed")}}const f={initParallax(e,t){const i=new g(e),n=this.createParallaxElements(e,t);let s=!1;const r=()=>{s||(requestAnimationFrame(()=>{this.renderParallax(i,n,t),s=!1}),s=!0)};m(window,"scroll",r,"scroll-parallax"),m(window,"resize",r,"scroll-parallax"),r(),c.info("[ScrollEffects] Parallax initialized with",n.length,"elements")},createParallaxElements(e,t){const i=[],n=t.layers||3,s=t.elements||20;for(let r=0;r