{"id":3013,"date":"2026-05-19T18:21:31","date_gmt":"2026-05-19T16:21:31","guid":{"rendered":"https:\/\/vair.world\/?page_id=3013"},"modified":"2026-05-20T22:23:38","modified_gmt":"2026-05-20T20:23:38","slug":"investieren-testseite","status":"publish","type":"page","link":"https:\/\/vair.world\/en\/investieren-testseite\/","title":{"rendered":"Investieren (Testseite)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3013\" class=\"elementor elementor-3013\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-be5d15d e-con-full e-flex e-con e-parent\" data-id=\"be5d15d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-315444c ha-css-transform-yes elementor-widget elementor-widget-html\" data-id=\"315444c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"gradient-balken\">\r\n  <canvas style=\"--gradient-color-1:#0c2c4c;\r\n  --gradient-color-2:#b33c3d;\r\n  --gradient-color-3:#b49c44;\r\n  --gradient-color-4:#0c2c4c;\" id=\"gradient-canvas\" data-transition-in><\/canvas>\r\n<\/div>\r\n\r\n<script>\r\n\twindow.addEventListener('DOMContentLoaded', (e) => {\r\n\t\tvar gradient = new Gradient;\r\n\t\tgradient.initGradient(\"#gradient-canvas\");\r\n\t});\r\n<\/script>\r\n\r\n<script>\r\n    function normalizeColor(hexCode) {\r\n\treturn [\r\n\t\t((hexCode >> 16) & 255) \/ 255,\r\n\t\t((hexCode >> 8) & 255) \/ 255,\r\n\t\t(255 & hexCode) \/ 255\r\n\t];\r\n}\r\n[\"SCREEN\", \"LINEAR_LIGHT\"].reduce(\r\n\t(hexCode, t, n) => Object.assign(hexCode, { [t]: n }),\r\n\t{}\r\n);\r\nclass MiniGl {\r\n\tconstructor(canvas, width, height, debug = !1) {\r\n\t\tconst _miniGl = this,\r\n\t\t\tdebug_output =\r\n\t\t\t\t-1 !== document.location.search.toLowerCase().indexOf(\"debug=webgl\");\r\n\t\t(_miniGl.canvas = canvas),\r\n\t\t\t(_miniGl.gl = _miniGl.canvas.getContext(\"webgl\", { antialias: !0 })),\r\n\t\t\t(_miniGl.meshes = []);\r\n\t\tconst context = _miniGl.gl;\r\n\t\twidth && height && this.setSize(width, height),\r\n\t\t\t_miniGl.lastDebugMsg,\r\n\t\t\t(_miniGl.debug =\r\n\t\t\t\tdebug && debug_output\r\n\t\t\t\t\t? function (e) {\r\n\t\t\t\t\t\t\tconst t = new Date();\r\n\t\t\t\t\t\t\tt - _miniGl.lastDebugMsg > 1e3 && console.log(\"---\"),\r\n\t\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t\tt.toLocaleTimeString() +\r\n\t\t\t\t\t\t\t\t\t\tArray(Math.max(0, 32 - e.length)).join(\" \") +\r\n\t\t\t\t\t\t\t\t\t\te +\r\n\t\t\t\t\t\t\t\t\t\t\": \",\r\n\t\t\t\t\t\t\t\t\t...Array.from(arguments).slice(1)\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t(_miniGl.lastDebugMsg = t);\r\n\t\t\t\t\t  }\r\n\t\t\t\t\t: () => {}),\r\n\t\t\tObject.defineProperties(_miniGl, {\r\n\t\t\t\tMaterial: {\r\n\t\t\t\t\tenumerable: !1,\r\n\t\t\t\t\tvalue: class {\r\n\t\t\t\t\t\tconstructor(vertexShaders, fragments, uniforms = {}) {\r\n\t\t\t\t\t\t\tconst material = this;\r\n\t\t\t\t\t\t\tfunction getShaderByType(type, source) {\r\n\t\t\t\t\t\t\t\tconst shader = context.createShader(type);\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\tcontext.shaderSource(shader, source),\r\n\t\t\t\t\t\t\t\t\tcontext.compileShader(shader),\r\n\t\t\t\t\t\t\t\t\tcontext.getShaderParameter(shader, context.COMPILE_STATUS) ||\r\n\t\t\t\t\t\t\t\t\t\tconsole.error(context.getShaderInfoLog(shader)),\r\n\t\t\t\t\t\t\t\t\t_miniGl.debug(\"Material.compileShaderSource\", { source: source }),\r\n\t\t\t\t\t\t\t\t\tshader\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfunction getUniformVariableDeclarations(uniforms, type) {\r\n\t\t\t\t\t\t\t\treturn Object.entries(uniforms)\r\n\t\t\t\t\t\t\t\t\t.map(([uniform, value]) => value.getDeclaration(uniform, type))\r\n\t\t\t\t\t\t\t\t\t.join(\"\\n\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t(this.uniforms = uniforms), (this.uniformInstances = []);\r\n\t\t\t\t\t\t\tconst prefix = \"\\n              precision highp float;\\n            \";\r\n\t\t\t\t\t\t\t(this.vertexSource = `\\n              ${prefix}\\n              attribute vec4 position;\\n              attribute vec2 uv;\\n              attribute vec2 uvNorm;\\n              ${getUniformVariableDeclarations(\r\n\t\t\t\t\t\t\t\t_miniGl.commonUniforms,\r\n\t\t\t\t\t\t\t\t\"vertex\"\r\n\t\t\t\t\t\t\t)}\\n              ${getUniformVariableDeclarations(\r\n\t\t\t\t\t\t\t\tuniforms,\r\n\t\t\t\t\t\t\t\t\"vertex\"\r\n\t\t\t\t\t\t\t)}\\n              ${vertexShaders}\\n            `),\r\n\t\t\t\t\t\t\t\t(this.Source = `\\n              ${prefix}\\n              ${getUniformVariableDeclarations(\r\n\t\t\t\t\t\t\t\t\t_miniGl.commonUniforms,\r\n\t\t\t\t\t\t\t\t\t\"fragment\"\r\n\t\t\t\t\t\t\t\t)}\\n              ${getUniformVariableDeclarations(\r\n\t\t\t\t\t\t\t\t\tuniforms,\r\n\t\t\t\t\t\t\t\t\t\"fragment\"\r\n\t\t\t\t\t\t\t\t)}\\n              ${fragments}\\n            `),\r\n\t\t\t\t\t\t\t\t(this.vertexShader = getShaderByType(\r\n\t\t\t\t\t\t\t\t\tcontext.VERTEX_SHADER,\r\n\t\t\t\t\t\t\t\t\tthis.vertexSource\r\n\t\t\t\t\t\t\t\t)),\r\n\t\t\t\t\t\t\t\t(this.fragmentShader = getShaderByType(\r\n\t\t\t\t\t\t\t\t\tcontext.FRAGMENT_SHADER,\r\n\t\t\t\t\t\t\t\t\tthis.Source\r\n\t\t\t\t\t\t\t\t)),\r\n\t\t\t\t\t\t\t\t(this.program = context.createProgram()),\r\n\t\t\t\t\t\t\t\tcontext.attachShader(this.program, this.vertexShader),\r\n\t\t\t\t\t\t\t\tcontext.attachShader(this.program, this.fragmentShader),\r\n\t\t\t\t\t\t\t\tcontext.linkProgram(this.program),\r\n\t\t\t\t\t\t\t\tcontext.getProgramParameter(this.program, context.LINK_STATUS) ||\r\n\t\t\t\t\t\t\t\t\tconsole.error(context.getProgramInfoLog(this.program)),\r\n\t\t\t\t\t\t\t\tcontext.useProgram(this.program),\r\n\t\t\t\t\t\t\t\tthis.attachUniforms(void 0, _miniGl.commonUniforms),\r\n\t\t\t\t\t\t\t\tthis.attachUniforms(void 0, this.uniforms);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tattachUniforms(name, uniforms) {\r\n\t\t\t\t\t\t\tconst material = this;\r\n\t\t\t\t\t\t\tvoid 0 === name\r\n\t\t\t\t\t\t\t\t? Object.entries(uniforms).forEach(([name, uniform]) => {\r\n\t\t\t\t\t\t\t\t\t\tmaterial.attachUniforms(name, uniform);\r\n\t\t\t\t\t\t\t\t  })\r\n\t\t\t\t\t\t\t\t: \"array\" == uniforms.type\r\n\t\t\t\t\t\t\t\t? uniforms.value.forEach((uniform, i) =>\r\n\t\t\t\t\t\t\t\t\t\tmaterial.attachUniforms(`${name}[${i}]`, uniform)\r\n\t\t\t\t\t\t\t\t  )\r\n\t\t\t\t\t\t\t\t: \"struct\" == uniforms.type\r\n\t\t\t\t\t\t\t\t? Object.entries(uniforms.value).forEach(([uniform, i]) =>\r\n\t\t\t\t\t\t\t\t\t\tmaterial.attachUniforms(`${name}.${uniform}`, i)\r\n\t\t\t\t\t\t\t\t  )\r\n\t\t\t\t\t\t\t\t: (_miniGl.debug(\"Material.attachUniforms\", {\r\n\t\t\t\t\t\t\t\t\t\tname: name,\r\n\t\t\t\t\t\t\t\t\t\tuniform: uniforms\r\n\t\t\t\t\t\t\t\t  }),\r\n\t\t\t\t\t\t\t\t  material.uniformInstances.push({\r\n\t\t\t\t\t\t\t\t\t\tuniform: uniforms,\r\n\t\t\t\t\t\t\t\t\t\tlocation: context.getUniformLocation(material.program, name)\r\n\t\t\t\t\t\t\t\t  }));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tUniform: {\r\n\t\t\t\t\tenumerable: !1,\r\n\t\t\t\t\tvalue: class {\r\n\t\t\t\t\t\tconstructor(e) {\r\n\t\t\t\t\t\t\t(this.type = \"float\"),\r\n\t\t\t\t\t\t\t\tObject.assign(this, e),\r\n\t\t\t\t\t\t\t\t(this.typeFn =\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tfloat: \"1f\",\r\n\t\t\t\t\t\t\t\t\t\tint: \"1i\",\r\n\t\t\t\t\t\t\t\t\t\tvec2: \"2fv\",\r\n\t\t\t\t\t\t\t\t\t\tvec3: \"3fv\",\r\n\t\t\t\t\t\t\t\t\t\tvec4: \"4fv\",\r\n\t\t\t\t\t\t\t\t\t\tmat4: \"Matrix4fv\"\r\n\t\t\t\t\t\t\t\t\t}[this.type] || \"1f\"),\r\n\t\t\t\t\t\t\t\tthis.update();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tupdate(value) {\r\n\t\t\t\t\t\t\tvoid 0 !== this.value &&\r\n\t\t\t\t\t\t\t\tcontext[`uniform${this.typeFn}`](\r\n\t\t\t\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\t\t\t\t0 === this.typeFn.indexOf(\"Matrix\") ? this.transpose : this.value,\r\n\t\t\t\t\t\t\t\t\t0 === this.typeFn.indexOf(\"Matrix\") ? this.value : null\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tgetDeclaration(name, type, length) {\r\n\t\t\t\t\t\t\tconst uniform = this;\r\n\t\t\t\t\t\t\tif (uniform.excludeFrom !== type) {\r\n\t\t\t\t\t\t\t\tif (\"array\" === uniform.type)\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\tuniform.value[0].getDeclaration(name, type, uniform.value.length) +\r\n\t\t\t\t\t\t\t\t\t\t`\\nconst int ${name}_length = ${uniform.value.length};`\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tif (\"struct\" === uniform.type) {\r\n\t\t\t\t\t\t\t\t\tlet name_no_prefix = name.replace(\"u_\", \"\");\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t(name_no_prefix =\r\n\t\t\t\t\t\t\t\t\t\t\tname_no_prefix.charAt(0).toUpperCase() + name_no_prefix.slice(1)),\r\n\t\t\t\t\t\t\t\t\t\t`uniform struct ${name_no_prefix} \\n                                {\\n` +\r\n\t\t\t\t\t\t\t\t\t\t\tObject.entries(uniform.value)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.map(([name, uniform]) =>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuniform.getDeclaration(name, type).replace(\/^uniform\/, \"\")\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.join(\"\") +\r\n\t\t\t\t\t\t\t\t\t\t\t`\\n} ${name}${length > 0 ? `[${length}]` : \"\"};`\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn `uniform ${uniform.type} ${name}${\r\n\t\t\t\t\t\t\t\t\tlength > 0 ? `[${length}]` : \"\"\r\n\t\t\t\t\t\t\t\t};`;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tPlaneGeometry: {\r\n\t\t\t\t\tenumerable: !1,\r\n\t\t\t\t\tvalue: class {\r\n\t\t\t\t\t\tconstructor(width, height, n, i, orientation) {\r\n\t\t\t\t\t\t\tcontext.createBuffer(),\r\n\t\t\t\t\t\t\t\t(this.attributes = {\r\n\t\t\t\t\t\t\t\t\tposition: new _miniGl.Attribute({\r\n\t\t\t\t\t\t\t\t\t\ttarget: context.ARRAY_BUFFER,\r\n\t\t\t\t\t\t\t\t\t\tsize: 3\r\n\t\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t\tuv: new _miniGl.Attribute({ target: context.ARRAY_BUFFER, size: 2 }),\r\n\t\t\t\t\t\t\t\t\tuvNorm: new _miniGl.Attribute({\r\n\t\t\t\t\t\t\t\t\t\ttarget: context.ARRAY_BUFFER,\r\n\t\t\t\t\t\t\t\t\t\tsize: 2\r\n\t\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t\tindex: new _miniGl.Attribute({\r\n\t\t\t\t\t\t\t\t\t\ttarget: context.ELEMENT_ARRAY_BUFFER,\r\n\t\t\t\t\t\t\t\t\t\tsize: 3,\r\n\t\t\t\t\t\t\t\t\t\ttype: context.UNSIGNED_SHORT\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\tthis.setTopology(n, i),\r\n\t\t\t\t\t\t\t\tthis.setSize(width, height, orientation);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsetTopology(e = 1, t = 1) {\r\n\t\t\t\t\t\t\tconst n = this;\r\n\t\t\t\t\t\t\t(n.xSegCount = e),\r\n\t\t\t\t\t\t\t\t(n.ySegCount = t),\r\n\t\t\t\t\t\t\t\t(n.vertexCount = (n.xSegCount + 1) * (n.ySegCount + 1)),\r\n\t\t\t\t\t\t\t\t(n.quadCount = n.xSegCount * n.ySegCount * 2),\r\n\t\t\t\t\t\t\t\t(n.attributes.uv.values = new Float32Array(2 * n.vertexCount)),\r\n\t\t\t\t\t\t\t\t(n.attributes.uvNorm.values = new Float32Array(2 * n.vertexCount)),\r\n\t\t\t\t\t\t\t\t(n.attributes.index.values = new Uint16Array(3 * n.quadCount));\r\n\t\t\t\t\t\t\tfor (let e = 0; e <= n.ySegCount; e++)\r\n\t\t\t\t\t\t\t\tfor (let t = 0; t <= n.xSegCount; t++) {\r\n\t\t\t\t\t\t\t\t\tconst i = e * (n.xSegCount + 1) + t;\r\n\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t((n.attributes.uv.values[2 * i] = t \/ n.xSegCount),\r\n\t\t\t\t\t\t\t\t\t\t(n.attributes.uv.values[2 * i + 1] = 1 - e \/ n.ySegCount),\r\n\t\t\t\t\t\t\t\t\t\t(n.attributes.uvNorm.values[2 * i] = (t \/ n.xSegCount) * 2 - 1),\r\n\t\t\t\t\t\t\t\t\t\t(n.attributes.uvNorm.values[2 * i + 1] = 1 - (e \/ n.ySegCount) * 2),\r\n\t\t\t\t\t\t\t\t\t\tt < n.xSegCount && e < n.ySegCount)\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\tconst s = e * n.xSegCount + t;\r\n\t\t\t\t\t\t\t\t\t\t(n.attributes.index.values[6 * s] = i),\r\n\t\t\t\t\t\t\t\t\t\t\t(n.attributes.index.values[6 * s + 1] = i + 1 + n.xSegCount),\r\n\t\t\t\t\t\t\t\t\t\t\t(n.attributes.index.values[6 * s + 2] = i + 1),\r\n\t\t\t\t\t\t\t\t\t\t\t(n.attributes.index.values[6 * s + 3] = i + 1),\r\n\t\t\t\t\t\t\t\t\t\t\t(n.attributes.index.values[6 * s + 4] = i + 1 + n.xSegCount),\r\n\t\t\t\t\t\t\t\t\t\t\t(n.attributes.index.values[6 * s + 5] = i + 2 + n.xSegCount);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tn.attributes.uv.update(),\r\n\t\t\t\t\t\t\t\tn.attributes.uvNorm.update(),\r\n\t\t\t\t\t\t\t\tn.attributes.index.update(),\r\n\t\t\t\t\t\t\t\t_miniGl.debug(\"Geometry.setTopology\", {\r\n\t\t\t\t\t\t\t\t\tuv: n.attributes.uv,\r\n\t\t\t\t\t\t\t\t\tuvNorm: n.attributes.uvNorm,\r\n\t\t\t\t\t\t\t\t\tindex: n.attributes.index\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsetSize(width = 1, height = 1, orientation = \"xz\") {\r\n\t\t\t\t\t\t\tconst geometry = this;\r\n\t\t\t\t\t\t\t(geometry.width = width),\r\n\t\t\t\t\t\t\t\t(geometry.height = height),\r\n\t\t\t\t\t\t\t\t(geometry.orientation = orientation),\r\n\t\t\t\t\t\t\t\t(geometry.attributes.position.values &&\r\n\t\t\t\t\t\t\t\t\tgeometry.attributes.position.values.length ===\r\n\t\t\t\t\t\t\t\t\t\t3 * geometry.vertexCount) ||\r\n\t\t\t\t\t\t\t\t\t(geometry.attributes.position.values = new Float32Array(\r\n\t\t\t\t\t\t\t\t\t\t3 * geometry.vertexCount\r\n\t\t\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\tconst o = width \/ -2,\r\n\t\t\t\t\t\t\t\tr = height \/ -2,\r\n\t\t\t\t\t\t\t\tsegment_width = width \/ geometry.xSegCount,\r\n\t\t\t\t\t\t\t\tsegment_height = height \/ geometry.ySegCount;\r\n\t\t\t\t\t\t\tfor (let yIndex = 0; yIndex <= geometry.ySegCount; yIndex++) {\r\n\t\t\t\t\t\t\t\tconst t = r + yIndex * segment_height;\r\n\t\t\t\t\t\t\t\tfor (let xIndex = 0; xIndex <= geometry.xSegCount; xIndex++) {\r\n\t\t\t\t\t\t\t\t\tconst r = o + xIndex * segment_width,\r\n\t\t\t\t\t\t\t\t\t\tl = yIndex * (geometry.xSegCount + 1) + xIndex;\r\n\t\t\t\t\t\t\t\t\t(geometry.attributes.position.values[\r\n\t\t\t\t\t\t\t\t\t\t3 * l + \"xyz\".indexOf(orientation[0])\r\n\t\t\t\t\t\t\t\t\t] = r),\r\n\t\t\t\t\t\t\t\t\t\t(geometry.attributes.position.values[\r\n\t\t\t\t\t\t\t\t\t\t\t3 * l + \"xyz\".indexOf(orientation[1])\r\n\t\t\t\t\t\t\t\t\t\t] = -t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tgeometry.attributes.position.update(),\r\n\t\t\t\t\t\t\t\t_miniGl.debug(\"Geometry.setSize\", {\r\n\t\t\t\t\t\t\t\t\tposition: geometry.attributes.position\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tMesh: {\r\n\t\t\t\t\tenumerable: !1,\r\n\t\t\t\t\tvalue: class {\r\n\t\t\t\t\t\tconstructor(geometry, material) {\r\n\t\t\t\t\t\t\tconst mesh = this;\r\n\t\t\t\t\t\t\t(mesh.geometry = geometry),\r\n\t\t\t\t\t\t\t\t(mesh.material = material),\r\n\t\t\t\t\t\t\t\t(mesh.wireframe = !1),\r\n\t\t\t\t\t\t\t\t(mesh.attributeInstances = []),\r\n\t\t\t\t\t\t\t\tObject.entries(mesh.geometry.attributes).forEach(([e, attribute]) => {\r\n\t\t\t\t\t\t\t\t\tmesh.attributeInstances.push({\r\n\t\t\t\t\t\t\t\t\t\tattribute: attribute,\r\n\t\t\t\t\t\t\t\t\t\tlocation: attribute.attach(e, mesh.material.program)\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t_miniGl.meshes.push(mesh),\r\n\t\t\t\t\t\t\t\t_miniGl.debug(\"Mesh.constructor\", { mesh: mesh });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdraw() {\r\n\t\t\t\t\t\t\tcontext.useProgram(this.material.program),\r\n\t\t\t\t\t\t\t\tthis.material.uniformInstances.forEach(({ uniform: e, location: t }) =>\r\n\t\t\t\t\t\t\t\t\te.update(t)\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\tthis.attributeInstances.forEach(({ attribute: e, location: t }) =>\r\n\t\t\t\t\t\t\t\t\te.use(t)\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\tcontext.drawElements(\r\n\t\t\t\t\t\t\t\t\tthis.wireframe ? context.LINES : context.TRIANGLES,\r\n\t\t\t\t\t\t\t\t\tthis.geometry.attributes.index.values.length,\r\n\t\t\t\t\t\t\t\t\tcontext.UNSIGNED_SHORT,\r\n\t\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tremove() {\r\n\t\t\t\t\t\t\t_miniGl.meshes = _miniGl.meshes.filter((e) => e != this);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tAttribute: {\r\n\t\t\t\t\tenumerable: !1,\r\n\t\t\t\t\tvalue: class {\r\n\t\t\t\t\t\tconstructor(e) {\r\n\t\t\t\t\t\t\t(this.type = context.FLOAT),\r\n\t\t\t\t\t\t\t\t(this.normalized = !1),\r\n\t\t\t\t\t\t\t\t(this.buffer = context.createBuffer()),\r\n\t\t\t\t\t\t\t\tObject.assign(this, e),\r\n\t\t\t\t\t\t\t\tthis.update();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tupdate() {\r\n\t\t\t\t\t\t\tvoid 0 !== this.values &&\r\n\t\t\t\t\t\t\t\t(context.bindBuffer(this.target, this.buffer),\r\n\t\t\t\t\t\t\t\tcontext.bufferData(this.target, this.values, context.STATIC_DRAW));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tattach(e, t) {\r\n\t\t\t\t\t\t\tconst n = context.getAttribLocation(t, e);\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\tthis.target === context.ARRAY_BUFFER &&\r\n\t\t\t\t\t\t\t\t\t(context.enableVertexAttribArray(n),\r\n\t\t\t\t\t\t\t\t\tcontext.vertexAttribPointer(\r\n\t\t\t\t\t\t\t\t\t\tn,\r\n\t\t\t\t\t\t\t\t\t\tthis.size,\r\n\t\t\t\t\t\t\t\t\t\tthis.type,\r\n\t\t\t\t\t\t\t\t\t\tthis.normalized,\r\n\t\t\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t\t\t)),\r\n\t\t\t\t\t\t\t\tn\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tuse(e) {\r\n\t\t\t\t\t\t\tcontext.bindBuffer(this.target, this.buffer),\r\n\t\t\t\t\t\t\t\tthis.target === context.ARRAY_BUFFER &&\r\n\t\t\t\t\t\t\t\t\t(context.enableVertexAttribArray(e),\r\n\t\t\t\t\t\t\t\t\tcontext.vertexAttribPointer(\r\n\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\tthis.size,\r\n\t\t\t\t\t\t\t\t\t\tthis.type,\r\n\t\t\t\t\t\t\t\t\t\tthis.normalized,\r\n\t\t\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\tconst a = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\r\n\t\t_miniGl.commonUniforms = {\r\n\t\t\tprojectionMatrix: new _miniGl.Uniform({ type: \"mat4\", value: a }),\r\n\t\t\tmodelViewMatrix: new _miniGl.Uniform({ type: \"mat4\", value: a }),\r\n\t\t\tresolution: new _miniGl.Uniform({ type: \"vec2\", value: [1, 1] }),\r\n\t\t\taspectRatio: new _miniGl.Uniform({ type: \"float\", value: 1 })\r\n\t\t};\r\n\t}\r\n\tsetSize(e = 640, t = 480) {\r\n\t\t(this.width = e),\r\n\t\t\t(this.height = t),\r\n\t\t\t(this.canvas.width = e),\r\n\t\t\t(this.canvas.height = t),\r\n\t\t\tthis.gl.viewport(0, 0, e, t),\r\n\t\t\t(this.commonUniforms.resolution.value = [e, t]),\r\n\t\t\t(this.commonUniforms.aspectRatio.value = e \/ t),\r\n\t\t\tthis.debug(\"MiniGL.setSize\", { width: e, height: t });\r\n\t}\r\n\tsetOrthographicCamera(e = 0, t = 0, n = 0, i = -2e3, s = 2e3) {\r\n\t\t(this.commonUniforms.projectionMatrix.value = [\r\n\t\t\t2 \/ this.width,\r\n\t\t\t0,\r\n\t\t\t0,\r\n\t\t\t0,\r\n\t\t\t0,\r\n\t\t\t2 \/ this.height,\r\n\t\t\t0,\r\n\t\t\t0,\r\n\t\t\t0,\r\n\t\t\t0,\r\n\t\t\t2 \/ (i - s),\r\n\t\t\t0,\r\n\t\t\te,\r\n\t\t\tt,\r\n\t\t\tn,\r\n\t\t\t1\r\n\t\t]),\r\n\t\t\tthis.debug(\r\n\t\t\t\t\"setOrthographicCamera\",\r\n\t\t\t\tthis.commonUniforms.projectionMatrix.value\r\n\t\t\t);\r\n\t}\r\n\trender() {\r\n\t\tthis.gl.clearColor(0, 0, 0, 0),\r\n\t\t\tthis.gl.clearDepth(1),\r\n\t\t\tthis.meshes.forEach((e) => e.draw());\r\n\t}\r\n}\r\nfunction e(object, propertyName, val) {\r\n\treturn (\r\n\t\tpropertyName in object\r\n\t\t\t? Object.defineProperty(object, propertyName, {\r\n\t\t\t\t\tvalue: val,\r\n\t\t\t\t\tenumerable: !0,\r\n\t\t\t\t\tconfigurable: !0,\r\n\t\t\t\t\twritable: !0\r\n\t\t\t  })\r\n\t\t\t: (object[propertyName] = val),\r\n\t\tobject\r\n\t);\r\n}\r\nclass Gradient {\r\n\tconstructor(...t) {\r\n\t\te(this, \"el\", void 0),\r\n\t\t\te(this, \"cssVarRetries\", 0),\r\n\t\t\te(this, \"maxCssVarRetries\", 200),\r\n\t\t\te(this, \"angle\", 0),\r\n\t\t\te(this, \"isLoadedClass\", !1),\r\n\t\t\te(this, \"isScrolling\", !1),\r\n\t\t\te(this, \"scrollingTimeout\", void 0),\r\n\t\t\te(this, \"scrollingRefreshDelay\", 200),\r\n\t\t\te(this, \"isIntersecting\", !1),\r\n\t\t\te(this, \"shaderFiles\", void 0),\r\n\t\t\te(this, \"vertexShader\", void 0),\r\n\t\t\te(this, \"sectionColors\", void 0),\r\n\t\t\te(this, \"computedCanvasStyle\", void 0),\r\n\t\t\te(this, \"conf\", void 0),\r\n\t\t\te(this, \"uniforms\", void 0),\r\n\t\t\te(this, \"t\", 1253106),\r\n\t\t\te(this, \"last\", 0),\r\n\t\t\te(this, \"width\", void 0),\r\n\t\t\te(this, \"minWidth\", 1111),\r\n\t\t\te(this, \"height\", 600),\r\n\t\t\te(this, \"xSegCount\", void 0),\r\n\t\t\te(this, \"ySegCount\", void 0),\r\n\t\t\te(this, \"mesh\", void 0),\r\n\t\t\te(this, \"material\", void 0),\r\n\t\t\te(this, \"geometry\", void 0),\r\n\t\t\te(this, \"minigl\", void 0),\r\n\t\t\te(this, \"scrollObserver\", void 0),\r\n\t\t\te(this, \"amp\", 320),\r\n\t\t\te(this, \"seed\", 5),\r\n\t\t\te(this, \"freqX\", 14e-5),\r\n\t\t\te(this, \"freqY\", 29e-5),\r\n\t\t\te(this, \"freqDelta\", 1e-5),\r\n\t\t\te(this, \"activeColors\", [1, 1, 1, 1]),\r\n\t\t\te(this, \"isMetaKey\", !1),\r\n\t\t\te(this, \"isGradientLegendVisible\", !1),\r\n\t\t\te(this, \"isMouseDown\", !1),\r\n\t\t\te(this, \"handleScroll\", () => {\r\n\t\t\t\tclearTimeout(this.scrollingTimeout),\r\n\t\t\t\t\t(this.scrollingTimeout = setTimeout(\r\n\t\t\t\t\t\tthis.handleScrollEnd,\r\n\t\t\t\t\t\tthis.scrollingRefreshDelay\r\n\t\t\t\t\t)),\r\n\t\t\t\t\tthis.isGradientLegendVisible && this.hideGradientLegend(),\r\n\t\t\t\t\tthis.conf.playing && ((this.isScrolling = !0), this.pause());\r\n\t\t\t}),\r\n\t\t\te(this, \"handleScrollEnd\", () => {\r\n\t\t\t\t(this.isScrolling = !1), this.isIntersecting && this.play();\r\n\t\t\t}),\r\n\t\t\te(this, \"resize\", () => {\r\n\t\t\t\t(this.width = window.innerWidth),\r\n\t\t\t\t\tthis.minigl.setSize(this.width, this.height),\r\n\t\t\t\t\tthis.minigl.setOrthographicCamera(),\r\n\t\t\t\t\t(this.xSegCount = Math.ceil(this.width * this.conf.density[0])),\r\n\t\t\t\t\t(this.ySegCount = Math.ceil(this.height * this.conf.density[1])),\r\n\t\t\t\t\tthis.mesh.geometry.setTopology(this.xSegCount, this.ySegCount),\r\n\t\t\t\t\tthis.mesh.geometry.setSize(this.width, this.height),\r\n\t\t\t\t\t(this.mesh.material.uniforms.u_shadow_power.value =\r\n\t\t\t\t\t\tthis.width < 600 ? 5 : 6);\r\n\t\t\t}),\r\n\t\t\te(this, \"handleMouseDown\", (e) => {\r\n\t\t\t\tthis.isGradientLegendVisible &&\r\n\t\t\t\t\t((this.isMetaKey = e.metaKey),\r\n\t\t\t\t\t(this.isMouseDown = !0),\r\n\t\t\t\t\t!1 === this.conf.playing && requestAnimationFrame(this.animate));\r\n\t\t\t}),\r\n\t\t\te(this, \"handleMouseUp\", () => {\r\n\t\t\t\tthis.isMouseDown = !1;\r\n\t\t\t}),\r\n\t\t\te(this, \"animate\", (e) => {\r\n\t\t\t\tif (!this.shouldSkipFrame(e) || this.isMouseDown) {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t((this.t += Math.min(e - this.last, 1e3 \/ 15)),\r\n\t\t\t\t\t\t(this.last = e),\r\n\t\t\t\t\t\tthis.isMouseDown)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tlet e = 160;\r\n\t\t\t\t\t\tthis.isMetaKey && (e = -160), (this.t += e);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t(this.mesh.material.uniforms.u_time.value = this.t), this.minigl.render();\r\n\t\t\t\t}\r\n\t\t\t\tif (0 !== this.last && this.isStatic)\r\n\t\t\t\t\treturn this.minigl.render(), void this.disconnect();\r\n\t\t\t\t(this.conf.playing || this.isMouseDown) &&\r\n\t\t\t\t\trequestAnimationFrame(this.animate);\r\n\t\t\t}),\r\n\t\t\te(this, \"addIsLoadedClass\", () => {\r\n\t\t\t\t!this.isLoadedClass &&\r\n\t\t\t\t\t((this.isLoadedClass = !0),\r\n\t\t\t\t\tthis.el.classList.add(\"isLoaded\"),\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.el.parentElement.classList.add(\"isLoaded\");\r\n\t\t\t\t\t}, 3e3));\r\n\t\t\t}),\r\n\t\t\te(this, \"pause\", () => {\r\n\t\t\t\tthis.conf.playing = !1;\r\n\t\t\t}),\r\n\t\t\te(this, \"play\", () => {\r\n\t\t\t\trequestAnimationFrame(this.animate), (this.conf.playing = !0);\r\n\t\t\t}),\r\n\t\t\te(\r\n\t\t\t\tthis,\r\n\t\t\t\t\"initGradient\",\r\n\t\t\t\t(selector) => (\r\n\t\t\t\t\t(this.el = document.querySelector(selector)), this.connect(), this\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t}\r\n\tasync connect() {\r\n\t\t(this.shaderFiles = {\r\n\t\t\tvertex:\r\n\t\t\t\t\"varying vec3 v_color;\\n\\nvoid main() {\\n  float time = u_time * u_global.noiseSpeed;\\n\\n  vec2 noiseCoord = resolution * uvNorm * u_global.noiseFreq;\\n\\n  vec2 st = 1. - uvNorm.xy;\\n\\n  \/\/\\n  \/\/ Tilting the plane\\n  \/\/\\n\\n  \/\/ Front-to-back tilt\\n  float tilt = resolution.y \/ 2.0 * uvNorm.y;\\n\\n  \/\/ Left-to-right angle\\n  float incline = resolution.x * uvNorm.x \/ 2.0 * u_vertDeform.incline;\\n\\n  \/\/ Up-down shift to offset incline\\n  float offset = resolution.x \/ 2.0 * u_vertDeform.incline * mix(u_vertDeform.offsetBottom, u_vertDeform.offsetTop, uv.y);\\n\\n  \/\/\\n  \/\/ Vertex noise\\n  \/\/\\n\\n  float noise = snoise(vec3(\\n    noiseCoord.x * u_vertDeform.noiseFreq.x + time * u_vertDeform.noiseFlow,\\n    noiseCoord.y * u_vertDeform.noiseFreq.y,\\n    time * u_vertDeform.noiseSpeed + u_vertDeform.noiseSeed\\n  )) * u_vertDeform.noiseAmp;\\n\\n  \/\/ Fade noise to zero at edges\\n  noise *= 1.0 - pow(abs(uvNorm.y), 2.0);\\n\\n  \/\/ Clamp to 0\\n  noise = max(0.0, noise);\\n\\n  vec3 pos = vec3(\\n    position.x,\\n    position.y + tilt + incline + noise - offset,\\n    position.z\\n  );\\n\\n  \/\/\\n  \/\/ Vertex color, to be passed to fragment shader\\n  \/\/\\n\\n  if (u_active_colors[0] == 1.) {\\n    v_color = u_baseColor;\\n  }\\n\\n  for (int i = 0; i < u_waveLayers_length; i++) {\\n    if (u_active_colors[i + 1] == 1.) {\\n      WaveLayers layer = u_waveLayers[i];\\n\\n      float noise = smoothstep(\\n        layer.noiseFloor,\\n        layer.noiseCeil,\\n        snoise(vec3(\\n          noiseCoord.x * layer.noiseFreq.x + time * layer.noiseFlow,\\n          noiseCoord.y * layer.noiseFreq.y,\\n          time * layer.noiseSpeed + layer.noiseSeed\\n        )) \/ 2.0 + 0.5\\n      );\\n\\n      v_color = blendNormal(v_color, layer.color, pow(noise, 4.));\\n    }\\n  }\\n\\n  \/\/\\n  \/\/ Finish\\n  \/\/\\n\\n  gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);\\n}\",\r\n\t\t\tnoise:\r\n\t\t\t\t\"\/\/\\n\/\/ Description : Array and textureless GLSL 2D\/3D\/4D simplex\\n\/\/               noise functions.\\n\/\/      Author : Ian McEwan, Ashima Arts.\\n\/\/  Maintainer : stegu\\n\/\/     Lastmod : 20110822 (ijm)\\n\/\/     License : Copyright (C) 2011 Ashima Arts. All rights reserved.\\n\/\/               Distributed under the MIT License. See LICENSE file.\\n\/\/               https:\/\/github.com\/ashima\/webgl-noise\\n\/\/               https:\/\/github.com\/stegu\/webgl-noise\\n\/\/\\n\\nvec3 mod289(vec3 x) {\\n  return x - floor(x * (1.0 \/ 289.0)) * 289.0;\\n}\\n\\nvec4 mod289(vec4 x) {\\n  return x - floor(x * (1.0 \/ 289.0)) * 289.0;\\n}\\n\\nvec4 permute(vec4 x) {\\n    return mod289(((x*34.0)+1.0)*x);\\n}\\n\\nvec4 taylorInvSqrt(vec4 r)\\n{\\n  return 1.79284291400159 - 0.85373472095314 * r;\\n}\\n\\nfloat snoise(vec3 v)\\n{\\n  const vec2  C = vec2(1.0\/6.0, 1.0\/3.0) ;\\n  const vec4  D = vec4(0.0, 0.5, 1.0, 2.0);\\n\\n\/\/ First corner\\n  vec3 i  = floor(v + dot(v, C.yyy) );\\n  vec3 x0 =   v - i + dot(i, C.xxx) ;\\n\\n\/\/ Other corners\\n  vec3 g = step(x0.yzx, x0.xyz);\\n  vec3 l = 1.0 - g;\\n  vec3 i1 = min( g.xyz, l.zxy );\\n  vec3 i2 = max( g.xyz, l.zxy );\\n\\n  \/\/   x0 = x0 - 0.0 + 0.0 * C.xxx;\\n  \/\/   x1 = x0 - i1  + 1.0 * C.xxx;\\n  \/\/   x2 = x0 - i2  + 2.0 * C.xxx;\\n  \/\/   x3 = x0 - 1.0 + 3.0 * C.xxx;\\n  vec3 x1 = x0 - i1 + C.xxx;\\n  vec3 x2 = x0 - i2 + C.yyy; \/\/ 2.0*C.x = 1\/3 = C.y\\n  vec3 x3 = x0 - D.yyy;      \/\/ -1.0+3.0*C.x = -0.5 = -D.y\\n\\n\/\/ Permutations\\n  i = mod289(i);\\n  vec4 p = permute( permute( permute(\\n            i.z + vec4(0.0, i1.z, i2.z, 1.0 ))\\n          + i.y + vec4(0.0, i1.y, i2.y, 1.0 ))\\n          + i.x + vec4(0.0, i1.x, i2.x, 1.0 ));\\n\\n\/\/ Gradients: 7x7 points over a square, mapped onto an octahedron.\\n\/\/ The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)\\n  float n_ = 0.142857142857; \/\/ 1.0\/7.0\\n  vec3  ns = n_ * D.wyz - D.xzx;\\n\\n  vec4 j = p - 49.0 * floor(p * ns.z * ns.z);  \/\/  mod(p,7*7)\\n\\n  vec4 x_ = floor(j * ns.z);\\n  vec4 y_ = floor(j - 7.0 * x_ );    \/\/ mod(j,N)\\n\\n  vec4 x = x_ *ns.x + ns.yyyy;\\n  vec4 y = y_ *ns.x + ns.yyyy;\\n  vec4 h = 1.0 - abs(x) - abs(y);\\n\\n  vec4 b0 = vec4( x.xy, y.xy );\\n  vec4 b1 = vec4( x.zw, y.zw );\\n\\n  \/\/vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0;\\n  \/\/vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0;\\n  vec4 s0 = floor(b0)*2.0 + 1.0;\\n  vec4 s1 = floor(b1)*2.0 + 1.0;\\n  vec4 sh = -step(h, vec4(0.0));\\n\\n  vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;\\n  vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;\\n\\n  vec3 p0 = vec3(a0.xy,h.x);\\n  vec3 p1 = vec3(a0.zw,h.y);\\n  vec3 p2 = vec3(a1.xy,h.z);\\n  vec3 p3 = vec3(a1.zw,h.w);\\n\\n\/\/Normalise gradients\\n  vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\\n  p0 *= norm.x;\\n  p1 *= norm.y;\\n  p2 *= norm.z;\\n  p3 *= norm.w;\\n\\n\/\/ Mix final noise value\\n  vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);\\n  m = m * m;\\n  return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),\\n                                dot(p2,x2), dot(p3,x3) ) );\\n}\",\r\n\t\t\tblend:\r\n\t\t\t\t\"\/\/\\n\/\/ https:\/\/github.com\/jamieowen\/glsl-blend\\n\/\/\\n\\n\/\/ Normal\\n\\nvec3 blendNormal(vec3 base, vec3 blend) {\\n\\treturn blend;\\n}\\n\\nvec3 blendNormal(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendNormal(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Screen\\n\\nfloat blendScreen(float base, float blend) {\\n\\treturn 1.0-((1.0-base)*(1.0-blend));\\n}\\n\\nvec3 blendScreen(vec3 base, vec3 blend) {\\n\\treturn vec3(blendScreen(base.r,blend.r),blendScreen(base.g,blend.g),blendScreen(base.b,blend.b));\\n}\\n\\nvec3 blendScreen(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendScreen(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Multiply\\n\\nvec3 blendMultiply(vec3 base, vec3 blend) {\\n\\treturn base*blend;\\n}\\n\\nvec3 blendMultiply(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendMultiply(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Overlay\\n\\nfloat blendOverlay(float base, float blend) {\\n\\treturn base<0.5?(2.0*base*blend):(1.0-2.0*(1.0-base)*(1.0-blend));\\n}\\n\\nvec3 blendOverlay(vec3 base, vec3 blend) {\\n\\treturn vec3(blendOverlay(base.r,blend.r),blendOverlay(base.g,blend.g),blendOverlay(base.b,blend.b));\\n}\\n\\nvec3 blendOverlay(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendOverlay(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Hard light\\n\\nvec3 blendHardLight(vec3 base, vec3 blend) {\\n\\treturn blendOverlay(blend,base);\\n}\\n\\nvec3 blendHardLight(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendHardLight(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Soft light\\n\\nfloat blendSoftLight(float base, float blend) {\\n\\treturn (blend<0.5)?(2.0*base*blend+base*base*(1.0-2.0*blend)):(sqrt(base)*(2.0*blend-1.0)+2.0*base*(1.0-blend));\\n}\\n\\nvec3 blendSoftLight(vec3 base, vec3 blend) {\\n\\treturn vec3(blendSoftLight(base.r,blend.r),blendSoftLight(base.g,blend.g),blendSoftLight(base.b,blend.b));\\n}\\n\\nvec3 blendSoftLight(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendSoftLight(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Color dodge\\n\\nfloat blendColorDodge(float base, float blend) {\\n\\treturn (blend==1.0)?blend:min(base\/(1.0-blend),1.0);\\n}\\n\\nvec3 blendColorDodge(vec3 base, vec3 blend) {\\n\\treturn vec3(blendColorDodge(base.r,blend.r),blendColorDodge(base.g,blend.g),blendColorDodge(base.b,blend.b));\\n}\\n\\nvec3 blendColorDodge(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendColorDodge(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Color burn\\n\\nfloat blendColorBurn(float base, float blend) {\\n\\treturn (blend==0.0)?blend:max((1.0-((1.0-base)\/blend)),0.0);\\n}\\n\\nvec3 blendColorBurn(vec3 base, vec3 blend) {\\n\\treturn vec3(blendColorBurn(base.r,blend.r),blendColorBurn(base.g,blend.g),blendColorBurn(base.b,blend.b));\\n}\\n\\nvec3 blendColorBurn(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendColorBurn(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Vivid Light\\n\\nfloat blendVividLight(float base, float blend) {\\n\\treturn (blend<0.5)?blendColorBurn(base,(2.0*blend)):blendColorDodge(base,(2.0*(blend-0.5)));\\n}\\n\\nvec3 blendVividLight(vec3 base, vec3 blend) {\\n\\treturn vec3(blendVividLight(base.r,blend.r),blendVividLight(base.g,blend.g),blendVividLight(base.b,blend.b));\\n}\\n\\nvec3 blendVividLight(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendVividLight(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Lighten\\n\\nfloat blendLighten(float base, float blend) {\\n\\treturn max(blend,base);\\n}\\n\\nvec3 blendLighten(vec3 base, vec3 blend) {\\n\\treturn vec3(blendLighten(base.r,blend.r),blendLighten(base.g,blend.g),blendLighten(base.b,blend.b));\\n}\\n\\nvec3 blendLighten(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendLighten(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Linear burn\\n\\nfloat blendLinearBurn(float base, float blend) {\\n\\t\/\/ Note : Same implementation as BlendSubtractf\\n\\treturn max(base+blend-1.0,0.0);\\n}\\n\\nvec3 blendLinearBurn(vec3 base, vec3 blend) {\\n\\t\/\/ Note : Same implementation as BlendSubtract\\n\\treturn max(base+blend-vec3(1.0),vec3(0.0));\\n}\\n\\nvec3 blendLinearBurn(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendLinearBurn(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Linear dodge\\n\\nfloat blendLinearDodge(float base, float blend) {\\n\\t\/\/ Note : Same implementation as BlendAddf\\n\\treturn min(base+blend,1.0);\\n}\\n\\nvec3 blendLinearDodge(vec3 base, vec3 blend) {\\n\\t\/\/ Note : Same implementation as BlendAdd\\n\\treturn min(base+blend,vec3(1.0));\\n}\\n\\nvec3 blendLinearDodge(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendLinearDodge(base, blend) * opacity + base * (1.0 - opacity));\\n}\\n\\n\/\/ Linear light\\n\\nfloat blendLinearLight(float base, float blend) {\\n\\treturn blend<0.5?blendLinearBurn(base,(2.0*blend)):blendLinearDodge(base,(2.0*(blend-0.5)));\\n}\\n\\nvec3 blendLinearLight(vec3 base, vec3 blend) {\\n\\treturn vec3(blendLinearLight(base.r,blend.r),blendLinearLight(base.g,blend.g),blendLinearLight(base.b,blend.b));\\n}\\n\\nvec3 blendLinearLight(vec3 base, vec3 blend, float opacity) {\\n\\treturn (blendLinearLight(base, blend) * opacity + base * (1.0 - opacity));\\n}\",\r\n\t\t\tfragment:\r\n\t\t\t\t\"varying vec3 v_color;\\n\\nvoid main() {\\n  vec3 color = v_color;\\n  if (u_darken_top == 1.0) {\\n    vec2 st = gl_FragCoord.xy\/resolution.xy;\\n    color.g -= pow(st.y + sin(-12.0) * st.x, u_shadow_power) * 0.4;\\n  }\\n  gl_FragColor = vec4(color, 1.0);\\n}\"\r\n\t\t}),\r\n\t\t\t(this.conf = {\r\n\t\t\t\tpresetName: \"\",\r\n\t\t\t\twireframe: !1,\r\n\t\t\t\tdensity: [0.06, 0.16],\r\n\t\t\t\tzoom: 1,\r\n\t\t\t\trotation: 0,\r\n\t\t\t\tplaying: !0\r\n\t\t\t}),\r\n\t\t\tdocument.querySelectorAll(\"canvas\").length < 1\r\n\t\t\t\t? console.log(\"DID NOT LOAD HERO STRIPE CANVAS\")\r\n\t\t\t\t: ((this.minigl = new MiniGl(this.el, null, null, !0)),\r\n\t\t\t\t  requestAnimationFrame(() => {\r\n\t\t\t\t\t\tthis.el &&\r\n\t\t\t\t\t\t\t((this.computedCanvasStyle = getComputedStyle(this.el)),\r\n\t\t\t\t\t\t\tthis.waitForCssVars());\r\n\t\t\t\t  }));\r\n\t}\r\n\tdisconnect() {\r\n\t\tthis.scrollObserver &&\r\n\t\t\t(window.removeEventListener(\"scroll\", this.handleScroll),\r\n\t\t\twindow.removeEventListener(\"mousedown\", this.handleMouseDown),\r\n\t\t\twindow.removeEventListener(\"mouseup\", this.handleMouseUp),\r\n\t\t\twindow.removeEventListener(\"keydown\", this.handleKeyDown),\r\n\t\t\tthis.scrollObserver.disconnect()),\r\n\t\t\twindow.removeEventListener(\"resize\", this.resize);\r\n\t}\r\n\tinitMaterial() {\r\n\t\tthis.uniforms = {\r\n\t\t\tu_time: new this.minigl.Uniform({ value: 0 }),\r\n\t\t\tu_shadow_power: new this.minigl.Uniform({ value: 5 }),\r\n\t\t\tu_darken_top: new this.minigl.Uniform({\r\n\t\t\t\tvalue: \"\" === this.el.dataset.jsDarkenTop ? 1 : 0\r\n\t\t\t}),\r\n\t\t\tu_active_colors: new this.minigl.Uniform({\r\n\t\t\t\tvalue: this.activeColors,\r\n\t\t\t\ttype: \"vec4\"\r\n\t\t\t}),\r\n\t\t\tu_global: new this.minigl.Uniform({\r\n\t\t\t\tvalue: {\r\n\t\t\t\t\tnoiseFreq: new this.minigl.Uniform({\r\n\t\t\t\t\t\tvalue: [this.freqX, this.freqY],\r\n\t\t\t\t\t\ttype: \"vec2\"\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tnoiseSpeed: new this.minigl.Uniform({ value: 5e-6 })\r\n\t\t\t\t},\r\n\t\t\t\ttype: \"struct\"\r\n\t\t\t}),\r\n\t\t\tu_vertDeform: new this.minigl.Uniform({\r\n\t\t\t\tvalue: {\r\n\t\t\t\t\tincline: new this.minigl.Uniform({\r\n\t\t\t\t\t\tvalue: Math.sin(this.angle) \/ Math.cos(this.angle)\r\n\t\t\t\t\t}),\r\n\t\t\t\t\toffsetTop: new this.minigl.Uniform({ value: -0.5 }),\r\n\t\t\t\t\toffsetBottom: new this.minigl.Uniform({ value: -0.5 }),\r\n\t\t\t\t\tnoiseFreq: new this.minigl.Uniform({ value: [3, 4], type: \"vec2\" }),\r\n\t\t\t\t\tnoiseAmp: new this.minigl.Uniform({ value: this.amp }),\r\n\t\t\t\t\tnoiseSpeed: new this.minigl.Uniform({ value: 10 }),\r\n\t\t\t\t\tnoiseFlow: new this.minigl.Uniform({ value: 3 }),\r\n\t\t\t\t\tnoiseSeed: new this.minigl.Uniform({ value: this.seed })\r\n\t\t\t\t},\r\n\t\t\t\ttype: \"struct\",\r\n\t\t\t\texcludeFrom: \"fragment\"\r\n\t\t\t}),\r\n\t\t\tu_baseColor: new this.minigl.Uniform({\r\n\t\t\t\tvalue: this.sectionColors[0],\r\n\t\t\t\ttype: \"vec3\",\r\n\t\t\t\texcludeFrom: \"fragment\"\r\n\t\t\t}),\r\n\t\t\tu_waveLayers: new this.minigl.Uniform({\r\n\t\t\t\tvalue: [],\r\n\t\t\t\texcludeFrom: \"fragment\",\r\n\t\t\t\ttype: \"array\"\r\n\t\t\t})\r\n\t\t};\r\n\t\tfor (let e = 1; e < this.sectionColors.length; e += 1)\r\n\t\t\tthis.uniforms.u_waveLayers.value.push(\r\n\t\t\t\tnew this.minigl.Uniform({\r\n\t\t\t\t\tvalue: {\r\n\t\t\t\t\t\tcolor: new this.minigl.Uniform({\r\n\t\t\t\t\t\t\tvalue: this.sectionColors[e],\r\n\t\t\t\t\t\t\ttype: \"vec3\"\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tnoiseFreq: new this.minigl.Uniform({\r\n\t\t\t\t\t\t\tvalue: [\r\n\t\t\t\t\t\t\t\t2 + e \/ this.sectionColors.length,\r\n\t\t\t\t\t\t\t\t3 + e \/ this.sectionColors.length\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\ttype: \"vec2\"\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tnoiseSpeed: new this.minigl.Uniform({ value: 11 + 0.3 * e }),\r\n\t\t\t\t\t\tnoiseFlow: new this.minigl.Uniform({ value: 6.5 + 0.3 * e }),\r\n\t\t\t\t\t\tnoiseSeed: new this.minigl.Uniform({ value: this.seed + 10 * e }),\r\n\t\t\t\t\t\tnoiseFloor: new this.minigl.Uniform({ value: 0.1 }),\r\n\t\t\t\t\t\tnoiseCeil: new this.minigl.Uniform({ value: 0.63 + 0.07 * e })\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttype: \"struct\"\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\treturn (\r\n\t\t\t(this.vertexShader = [\r\n\t\t\t\tthis.shaderFiles.noise,\r\n\t\t\t\tthis.shaderFiles.blend,\r\n\t\t\t\tthis.shaderFiles.vertex\r\n\t\t\t].join(\"\\n\\n\")),\r\n\t\t\tnew this.minigl.Material(\r\n\t\t\t\tthis.vertexShader,\r\n\t\t\t\tthis.shaderFiles.fragment,\r\n\t\t\t\tthis.uniforms\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\tinitMesh() {\r\n\t\t(this.material = this.initMaterial()),\r\n\t\t\t(this.geometry = new this.minigl.PlaneGeometry()),\r\n\t\t\t(this.mesh = new this.minigl.Mesh(this.geometry, this.material));\r\n\t}\r\n\tshouldSkipFrame(e) {\r\n\t\treturn (\r\n\t\t\t!!window.document.hidden ||\r\n\t\t\t!this.conf.playing ||\r\n\t\t\tparseInt(e, 10) % 2 == 0 ||\r\n\t\t\tvoid 0\r\n\t\t);\r\n\t}\r\n\tupdateFrequency(e) {\r\n\t\t(this.freqX += e), (this.freqY += e);\r\n\t}\r\n\ttoggleColor(index) {\r\n\t\tthis.activeColors[index] = 0 === this.activeColors[index] ? 1 : 0;\r\n\t}\r\n\tshowGradientLegend() {\r\n\t\tthis.width > this.minWidth &&\r\n\t\t\t((this.isGradientLegendVisible = !0),\r\n\t\t\tdocument.body.classList.add(\"isGradientLegendVisible\"));\r\n\t}\r\n\thideGradientLegend() {\r\n\t\t(this.isGradientLegendVisible = !1),\r\n\t\t\tdocument.body.classList.remove(\"isGradientLegendVisible\");\r\n\t}\r\n\tinit() {\r\n\t\tthis.initGradientColors(),\r\n\t\t\tthis.initMesh(),\r\n\t\t\tthis.resize(),\r\n\t\t\trequestAnimationFrame(this.animate),\r\n\t\t\twindow.addEventListener(\"resize\", this.resize);\r\n\t}\r\n\twaitForCssVars() {\r\n\t\tif (\r\n\t\t\tthis.computedCanvasStyle &&\r\n\t\t\t-1 !==\r\n\t\t\t\tthis.computedCanvasStyle.getPropertyValue(\"--gradient-color-1\").indexOf(\"#\")\r\n\t\t)\r\n\t\t\tthis.init(), this.addIsLoadedClass();\r\n\t\telse {\r\n\t\t\tif (((this.cssVarRetries += 1), this.cssVarRetries > this.maxCssVarRetries))\r\n\t\t\t\treturn (\r\n\t\t\t\t\t(this.sectionColors = [16711680, 16711680, 16711935, 65280, 255]),\r\n\t\t\t\t\tvoid this.init()\r\n\t\t\t\t);\r\n\t\t\trequestAnimationFrame(() => this.waitForCssVars());\r\n\t\t}\r\n\t}\r\n\tinitGradientColors() {\r\n\t\tthis.sectionColors = [\r\n\t\t\t\"--gradient-color-1\",\r\n\t\t\t\"--gradient-color-2\",\r\n\t\t\t\"--gradient-color-3\",\r\n\t\t\t\"--gradient-color-4\"\r\n\t\t]\r\n\t\t\t.map((cssPropertyName) => {\r\n\t\t\t\tlet hex = this.computedCanvasStyle.getPropertyValue(cssPropertyName).trim();\r\n\t\t\t\tif (4 === hex.length) {\r\n\t\t\t\t\tconst hexTemp = hex\r\n\t\t\t\t\t\t.substr(1)\r\n\t\t\t\t\t\t.split(\"\")\r\n\t\t\t\t\t\t.map((hexTemp) => hexTemp + hexTemp)\r\n\t\t\t\t\t\t.join(\"\");\r\n\t\t\t\t\thex = `#${hexTemp}`;\r\n\t\t\t\t}\r\n\t\t\t\treturn hex && `0x${hex.substr(1)}`;\r\n\t\t\t})\r\n\t\t\t.filter(Boolean)\r\n\t\t\t.map(normalizeColor);\r\n\t}\r\n}\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-597ab5f e-flex e-con-boxed e-con e-parent\" data-id=\"597ab5f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-cb7f306 e-con-full e-flex e-con e-child\" data-id=\"cb7f306\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1b18314 elementor-widget__width-initial ha-css-transform-yes elementor-widget elementor-widget-text-editor\" data-id=\"1b18314\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Investieren in\u00a0reale Werte, Projekte &amp; Wachstum<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f210e41 elementor-widget__width-initial ha-css-transform-yes elementor-hidden-mobile elementor-widget elementor-widget-text-editor\" data-id=\"f210e41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Kapital sinnvoll investieren \u2013 in Immobilien und Edelmetalle.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4815cc2 ha-css-transform-yes elementor-widget elementor-widget-button\" data-id=\"4815cc2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#elementor-action%3Aaction%3Dpopup%3Aopen%26settings%3DeyJpZCI6IjI3NzciLCJ0b2dnbGUiOmZhbHNlfQ%3D%3D\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Investmentanfrage starten<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9211f1d elementor-widget__width-initial ha-css-transform-yes elementor-widget elementor-widget-button\" data-id=\"9211f1d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#finanzierungen\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Investmentbereiche ansehen \u2193  <\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3118079 ha-css-transform-yes elementor-widget elementor-widget-html\" data-id=\"3118079\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"vair-invest-visual\">\r\n  <div class=\"vair-chart\">\r\n    <svg viewBox=\"0 0 1200 560\" preserveAspectRatio=\"xMidYMid meet\">\r\n      <defs>\r\n        <linearGradient id=\"lineGradient\" x1=\"0\" x2=\"1\">\r\n          <stop offset=\"0%\" stop-color=\"#0C2C4C\" stop-opacity=\"0.25\"\/>\r\n          <stop offset=\"100%\" stop-color=\"#0C2C4C\"\/>\r\n        <\/linearGradient>\r\n\r\n        <filter id=\"softGlow\">\r\n          <feGaussianBlur stdDeviation=\"4\" result=\"blur\"\/>\r\n          <feMerge>\r\n            <feMergeNode in=\"blur\"\/>\r\n            <feMergeNode in=\"SourceGraphic\"\/>\r\n          <\/feMerge>\r\n        <\/filter>\r\n      <\/defs>\r\n\r\n      <g class=\"grid\">\r\n        <path d=\"M70 460 H1160 M70 380 H1160 M70 300 H1160 M70 220 H1160 M70 140 H1160\"\/>\r\n        <path d=\"M140 110 V490 M280 110 V490 M420 110 V490 M560 110 V490 M700 110 V490 M840 110 V490 M980 110 V490 M1120 110 V490\"\/>\r\n      <\/g>\r\n\r\n      <path class=\"area\" d=\"M80 435 C150 410 210 390 270 400 C350 415 385 325 460 340 C540 355 565 270 650 275 C730 280 760 205 850 210 C930 215 950 160 1030 170 C1095 178 1135 130 1195 112 L1195 500 L80 500 Z\"\/>\r\n\r\n      <path class=\"course-line\" d=\"M80 435 C150 410 210 390 270 400 C350 415 385 325 460 340 C540 355 565 270 650 275 C730 280 760 205 850 210 C930 215 950 160 1030 170 C1095 178 1135 130 1195 112\"\/>\r\n\r\n      <circle class=\"pulse-dot\" cx=\"1168\" cy=\"124\" r=\"7\"\/>\r\n      <circle class=\"pulse-ring\" cx=\"1168\" cy=\"124\" r=\"7\"\/>\r\n    <\/svg>\r\n\r\n    <div class=\"portfolio-card\">\r\n      <div class=\"card-label\">Portfolio<\/div>\r\n      <div class=\"card-title\">Aktiv<\/div>\r\n\r\n      <div class=\"asset\">\r\n        <span>Gold<\/span>\r\n        <strong><\/strong>\r\n      <\/div>\r\n      <div class=\"bar\"><span style=\"width:42%\"><\/span><\/div>\r\n\r\n      <div class=\"asset\">\r\n        <span>Immobilie<\/span>\r\n        <strong><\/strong>\r\n      <\/div>\r\n      <div class=\"bar\"><span style=\"width:38%\"><\/span><\/div>\r\n\r\n      <div class=\"asset\">\r\n        <span>Silber<\/span>\r\n        <strong><\/strong>\r\n      <\/div>\r\n      <div class=\"bar\"><span style=\"width:20%\"><\/span><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n.vair-invest-visual {\r\n  width: 100%;\r\n  min-height: 560px;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: flex-end;\r\n  background: transparent;\r\n  overflow: hidden;\r\n  font-family: inherit;\r\n  box-sizing: border-box;\r\n}\r\n\r\n.vair-invest-visual * {\r\n  box-sizing: border-box;\r\n}\r\n\r\n.vair-chart {\r\n  position: relative;\r\n  width: min(1180px, 115%);\r\n  height: 560px;\r\n  margin-right: -90px;\r\n  transform: translateY(35px);\r\n}\r\n\r\n.vair-chart svg {\r\n  width: 100%;\r\n  height: 100%;\r\n  overflow: visible;\r\n}\r\n\r\n.grid path {\r\n  stroke: #0C2C4C;\r\n  stroke-width: 1;\r\n  opacity: 0.08;\r\n  fill: none;\r\n}\r\n\r\n.area {\r\n  fill: #0C2C4C;\r\n  opacity: 0.08;\r\n  animation: fadeArea 1.6s ease forwards;\r\n}\r\n\r\n.course-line {\r\n  fill: none;\r\n  stroke: url(#lineGradient);\r\n  stroke-width: 7;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  filter: url(#softGlow);\r\n  stroke-dasharray: 1600;\r\n  stroke-dashoffset: 1600;\r\n  animation: drawLine 3.4s ease forwards;\r\n}\r\n\r\n.pulse-dot {\r\n  fill: #0C2C4C;\r\n  opacity: 0;\r\n  animation: showDot .4s ease forwards 3s;\r\n}\r\n\r\n.pulse-ring {\r\n  fill: none;\r\n  stroke: #0C2C4C;\r\n  stroke-width: 3;\r\n  opacity: 0;\r\n  animation: pulse 1.8s ease-out infinite 3.2s;\r\n}\r\n\r\n.portfolio-card {\r\n  position: absolute;\r\n  left: 22%;\r\n  top: 4%;\r\n  width: 320px;\r\n  padding: 32px;\r\n  border-radius: 28px;\r\n  background: rgba(255,255,255,0.84);\r\n  backdrop-filter: blur(18px);\r\n  box-shadow: 0 28px 80px rgba(12,44,76,0.18);\r\n  border: 1px solid rgba(12,44,76,0.12);\r\n  color: #0C2C4C;\r\n  opacity: 0;\r\n  transform: translateY(20px);\r\n  animation: cardIn 1s ease forwards .8s;\r\n  z-index: 2;\r\n}\r\n\r\n.card-label {\r\n  font-size: 15px;\r\n  opacity: .65;\r\n  margin-bottom: 6px;\r\n}\r\n\r\n.card-title {\r\n  font-size: 32px;\r\n  font-weight: 700;\r\n  margin-bottom: 28px;\r\n}\r\n\r\n.asset {\r\n  display: flex;\r\n  justify-content: space-between;\r\n  font-size: 17px;\r\n  margin-top: 18px;\r\n}\r\n\r\n.asset strong {\r\n  font-weight: 700;\r\n}\r\n\r\n.bar {\r\n  height: 10px;\r\n  background: rgba(12,44,76,0.12);\r\n  border-radius: 999px;\r\n  margin-top: 10px;\r\n  overflow: hidden;\r\n}\r\n\r\n.bar span {\r\n  display: block;\r\n  height: 100%;\r\n  background: #0C2C4C;\r\n  border-radius: 999px;\r\n  transform: scaleX(0);\r\n  transform-origin: left;\r\n  animation: fillBar 1.4s ease forwards 1.5s;\r\n}\r\n\r\n@keyframes drawLine {\r\n  to { stroke-dashoffset: 0; }\r\n}\r\n\r\n@keyframes fadeArea {\r\n  from { opacity: 0; }\r\n  to { opacity: 0.08; }\r\n}\r\n\r\n@keyframes showDot {\r\n  to { opacity: 1; }\r\n}\r\n\r\n@keyframes pulse {\r\n  0% { r: 7; opacity: .45; }\r\n  100% { r: 34; opacity: 0; }\r\n}\r\n\r\n@keyframes cardIn {\r\n  to {\r\n    opacity: 1;\r\n    transform: translateY(0);\r\n  }\r\n}\r\n\r\n@keyframes fillBar {\r\n  to { transform: scaleX(1); }\r\n}\r\n\r\n@media (max-width: 767px) {\r\n  .vair-invest-visual {\r\n    min-height: 300px;\r\n  }\r\n\r\n  .vair-chart {\r\n    height: 260px;\r\n    width: 100%;\r\n    margin-right: 0;\r\n    transform: translateY(10px);\r\n  }\r\n\r\n  .course-line {\r\n    stroke-width: 4;\r\n  }\r\n\r\n  .portfolio-card {\r\n    left: 50%;\r\n    top: 8%;\r\n    width: 210px;\r\n    padding: 18px;\r\n    border-radius: 18px;\r\n    transform: translate(-50%, 14px);\r\n  }\r\n\r\n  .card-label {\r\n    font-size: 11px;\r\n  }\r\n\r\n  .card-title {\r\n    font-size: 21px;\r\n    margin-bottom: 16px;\r\n  }\r\n\r\n  .asset {\r\n    font-size: 12px;\r\n    margin-top: 11px;\r\n  }\r\n\r\n  .bar {\r\n    height: 6px;\r\n    margin-top: 6px;\r\n  }\r\n\r\n  @keyframes cardIn {\r\n    to {\r\n      opacity: 1;\r\n      transform: translate(-50%, 0);\r\n    }\r\n  }\r\n}\r\n\r\n@media (max-width: 420px) {\r\n  .vair-invest-visual {\r\n    min-height: 270px;\r\n  }\r\n\r\n  .vair-chart {\r\n    height: 230px;\r\n    width: 100%;\r\n    margin-right: 0;\r\n    transform: translateY(8px);\r\n  }\r\n\r\n  .portfolio-card {\r\n    width: 185px;\r\n    padding: 15px;\r\n    border-radius: 16px;\r\n  }\r\n\r\n  .course-line {\r\n    stroke-width: 3.5;\r\n  }\r\n}\r\n\r\n  @keyframes cardIn {\r\n    to {\r\n      opacity: 1;\r\n      transform: translate(-50%, 0);\r\n    }\r\n  }\r\n\r\n  @keyframes pulse {\r\n    0% { r: 5; opacity: .45; }\r\n    100% { r: 24; opacity: 0; }\r\n  }\r\n}\r\n\r\n@media (max-width: 767px) {\r\n  .vair-invest-visual {\r\n    min-height: 300px;\r\n  }\r\n\r\n  .vair-chart {\r\n    height: 260px;\r\n    width: 100%;\r\n    margin-right: 0;\r\n    transform: translateY(10px);\r\n  }\r\n\r\n  .course-line {\r\n    stroke-width: 4;\r\n  }\r\n\r\n  .portfolio-card {\r\n    left: 50%;\r\n    top: 8%;\r\n    width: 210px;\r\n    padding: 18px;\r\n    border-radius: 18px;\r\n    transform: translate(-50%, 14px);\r\n  }\r\n\r\n  .card-label {\r\n    font-size: 11px;\r\n  }\r\n\r\n  .card-title {\r\n    font-size: 21px;\r\n    margin-bottom: 16px;\r\n  }\r\n\r\n  .asset {\r\n    font-size: 12px;\r\n    margin-top: 11px;\r\n  }\r\n\r\n  .bar {\r\n    height: 6px;\r\n    margin-top: 6px;\r\n  }\r\n\r\n  @keyframes cardIn {\r\n    to {\r\n      opacity: 1;\r\n      transform: translate(-50%, 0);\r\n    }\r\n  }\r\n}\r\n\r\n@media (max-width: 420px) {\r\n  .vair-invest-visual {\r\n    min-height: 270px;\r\n  }\r\n\r\n  .vair-chart {\r\n    height: 230px;\r\n    width: 100%;\r\n    margin-right: 0;\r\n    transform: translateY(8px);\r\n  }\r\n\r\n  .portfolio-card {\r\n    width: 185px;\r\n    padding: 15px;\r\n    border-radius: 16px;\r\n  }\r\n\r\n  .course-line {\r\n    stroke-width: 3.5;\r\n  }\r\n}\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-448775a elementor-widget__width-initial ha-css-transform-yes elementor-widget elementor-widget-html\" data-id=\"448775a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"vair-benefits-grid\">\r\n\r\n  <div class=\"vair-benefit-item\">\r\n    <div class=\"vair-icon\">\r\n      <svg viewBox=\"0 0 24 24\">\r\n        <path d=\"M8 12l2 2 4-4\"\/>\r\n        <path d=\"M3 12a9 9 0 1 0 18 0 9 9 0 0 0-18 0z\"\/>\r\n      <\/svg>\r\n    <\/div>\r\n\r\n    <h3>Ein \u00d6kosystem statt einzelner Angebote<\/h3>\r\n\r\n    <p>\r\n     VAIR WORLD verbindet Finanzierung, Beratung, Immobilien, Fahrzeuge, Edelmetalle und internationale M\u00e4rkte in einer Plattform.\r\n    <\/p>\r\n  <\/div>\r\n\r\n\r\n  <div class=\"vair-benefit-item\">\r\n    <div class=\"vair-icon\">\r\n      <svg viewBox=\"0 0 24 24\">\r\n        <path d=\"M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14z\"\/>\r\n        <path d=\"M20 20l-4.35-4.35\"\/>\r\n        <path d=\"M8.5 11l1.8 1.8 3.2-3.6\"\/>\r\n      <\/svg>\r\n    <\/div>\r\n\r\n    <h3>Zugang zu realen Projekten<\/h3>\r\n\r\n    <p>\r\n      Wir bringen Investoren, Unternehmer, Projektentwickler und Partner zusammen \u2013 diskret und zielgerichtet.\r\n    <\/p>\r\n  <\/div>\r\n\r\n\r\n  <div class=\"vair-benefit-item\">\r\n    <div class=\"vair-icon\">\r\n      <svg viewBox=\"0 0 24 24\">\r\n        <path d=\"M12 3v18\"\/>\r\n        <path d=\"M3 12h18\"\/>\r\n        <path d=\"M5 7h14\"\/>\r\n        <path d=\"M5 17h14\"\/>\r\n        <path d=\"M12 3a9 9 0 0 1 0 18\"\/>\r\n        <path d=\"M12 3a9 9 0 0 0 0 18\"\/>\r\n      <\/svg>\r\n    <\/div>\r\n\r\n    <h3>Sachwerte & Wachstumsthemen<\/h3>\r\n\r\n    <p>\r\n      Ob Immobilien, Gold, Fahrzeuge oder Business-Projekte: Der Fokus liegt auf nachvollziehbaren Investmentbereichen mit realem Bezug.\r\n    <\/p>\r\n  <\/div>\r\n\r\n\r\n  <div class=\"vair-benefit-item\">\r\n    <div class=\"vair-icon\">\r\n      <svg viewBox=\"0 0 24 24\">\r\n        <path d=\"M7 11V8a5 5 0 0 1 10 0v3\"\/>\r\n        <path d=\"M6 11h12v9H6z\"\/>\r\n        <path d=\"M12 15v2\"\/>\r\n      <\/svg>\r\n    <\/div>\r\n\r\n    <h3>Strukturierte Pr\u00fcfung<\/h3>\r\n\r\n    <p>\r\n      Investmentm\u00f6glichkeiten werden nicht nur vorgestellt, sondern nach Ziel, Kapitalrahmen, Bedarf und Umsetzbarkeit eingeordnet.\r\n    <\/p>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<style>\r\n\r\n.vair-benefits-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(4, 1fr);\r\n  max-width: 1200px;\r\n  margin: 0 auto;\r\n  border-left: 1px solid #e8edf3;\r\n  background: #fff;\r\n}\r\n\r\n.vair-benefit-item {\r\n  padding: 40px 30px;\r\n  border-right: 1px solid #e8edf3;\r\n  font-family: Arial, sans-serif;\r\n}\r\n\r\n.vair-icon {\r\n  margin-bottom: 24px;\r\n}\r\n\r\n.vair-icon svg {\r\n  width: 34px;\r\n  height: 34px;\r\n  stroke: #0C2C4C;\r\n  stroke-width: 1.8;\r\n  fill: none;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n}\r\n\r\n.vair-benefit-item h3 {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 27px;\r\n  line-height: 1.08;\r\n  font-weight: 500;\r\n  color: #0C2C4C;\r\n  margin: 0 0 16px 0;\r\n}\r\n\r\n.vair-benefit-item p {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 15px;\r\n  line-height: 1.55;\r\n  font-weight: 400;\r\n  color: #0C2C4C;\r\n  margin: 0;\r\n}\r\n\r\n\/* Tablet *\/\r\n@media (max-width: 992px) {\r\n  .vair-benefits-grid {\r\n    grid-template-columns: repeat(2, 1fr);\r\n  }\r\n\r\n  .vair-benefit-item:nth-child(2) {\r\n    border-right: none;\r\n  }\r\n}\r\n\r\n\/* Mobile *\/\r\n@media (max-width: 600px) {\r\n  .vair-benefits-grid {\r\n    grid-template-columns: 1fr;\r\n    border-left: none;\r\n  }\r\n\r\n  .vair-benefit-item {\r\n    border-right: none;\r\n    border-bottom: 1px solid #e8edf3;\r\n  }\r\n}\r\n\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-424dc7d e-con-full e-flex e-con e-child\" data-id=\"424dc7d\" data-element_type=\"container\" data-e-type=\"container\" id=\"finanzierungen\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7fe9ec9 elementor-widget elementor-widget-html\" data-id=\"7fe9ec9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"vw-finance-slider\" id=\"vwFinanceSlider\">\r\n  <div class=\"vw-finance-top\">\r\n    <h2>Investmentbereiche<\/h2>\r\n\r\n    <div class=\"vw-nav\">\r\n      <button class=\"vw-arrow vw-prev\" type=\"button\" aria-label=\"Zur\u00fcck\">\r\n        <span>\u2039<\/span>\r\n      <\/button>\r\n      <button class=\"vw-arrow vw-next\" type=\"button\" aria-label=\"Weiter\">\r\n        <span>\u203a<\/span>\r\n      <\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"vw-window\">\r\n    <div class=\"vw-track\">\r\n      <div class=\"vw-box selected\">\r\n        <div class=\"vw-gradient\">\r\n          <div class=\"vw-mockup\">\r\n            <div class=\"vw-card-icon\">\r\n              <!-- Immobilien: Haus\/Geb\u00e4ude -->\r\n              <svg viewBox=\"0 0 24 24\">\r\n                <path d=\"M3 11l9-7 9 7\" \/>\r\n                <path d=\"M5 10v10h14V10\" \/>\r\n                <path d=\"M9 20v-6h6v6\" \/>\r\n                <path d=\"M8 12h2\" \/>\r\n                <path d=\"M14 12h2\" \/>\r\n              <\/svg>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <h3>Immobilien<\/h3>\r\n        <p>Immobilienfinanzierung<\/p>\r\n        <p>Finanzierung ohne Zinsen m\u00f6glich<\/p>\r\n        <p>Internationale Immobilienprojekte<\/p>\r\n        <button class=\"vw-popup-btn\" type=\"button\">Anmelden<\/button>\r\n      <\/div>\r\n\r\n      <div class=\"vw-box\">\r\n        <div class=\"vw-gradient\">\r\n          <div class=\"vw-mockup\">\r\n            <div class=\"vw-card-icon\">\r\n              <!-- Gold & Edelmetalle: Goldbarren\/Diamant -->\r\n              <svg viewBox=\"0 0 24 24\">\r\n                <path d=\"M5 17h14l-1.5-5h-11z\" \/>\r\n                <path d=\"M8 12h8l-1.2-4H9.2z\" \/>\r\n                <path d=\"M9 17l1-5\" \/>\r\n                <path d=\"M15 17l-1-5\" \/>\r\n                <path d=\"M11 8h2\" \/>\r\n                <path d=\"M12 3l3 3-3 3-3-3z\" \/>\r\n              <\/svg>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <h3>Gold & Edelmetalle<\/h3>\r\n        <p>Gold & Edelmetalle kaufen<\/p>\r\n        <p>Finanzierung f\u00fcr Goldankauf<\/p>\r\n        <p>Edelmetalle als Kapitalanlage<\/p>\r\n        <p>Schlie\u00dffachl\u00f6sungen f\u00fcr Wertsachen<\/p>\r\n        <button class=\"vw-popup-btn\" type=\"button\">Anmelden<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n#vwFinanceSlider {\r\n  width: 100%;\r\n  padding: 60px 0;\r\n  overflow: hidden;\r\n  font-family: Arial, sans-serif;\r\n}\r\n\r\n#vwFinanceSlider .vw-finance-top {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n  gap: 20px;\r\n  margin-bottom: 35px;\r\n}\r\n\r\n#vwFinanceSlider .vw-finance-top h2 {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 27px;\r\n  line-height: 1.08;\r\n  font-weight: 500;\r\n  color: #0C2C4C;\r\n  margin: 0;\r\n  padding-left: 440px;\r\n}\r\n\r\n#vwFinanceSlider .vw-nav {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 12px;\r\n  padding-right: 30px;\r\n}\r\n\r\n#vwFinanceSlider .vw-arrow {\r\n  width: 42px;\r\n  height: 42px;\r\n  min-width: 42px;\r\n  min-height: 42px;\r\n  border-radius: 50%;\r\n  border: 1px solid rgba(12,44,76,.18);\r\n  background: #ffffff;\r\n  color: #0C2C4C;\r\n  cursor: pointer;\r\n  padding: 0;\r\n  margin: 0;\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  box-shadow: 0 8px 22px rgba(12,44,76,.10);\r\n  transition: all .25s ease;\r\n}\r\n\r\n#vwFinanceSlider .vw-arrow span {\r\n  display: block;\r\n  font-size: 28px;\r\n  line-height: 1;\r\n  transform: translateY(-1px);\r\n}\r\n\r\n#vwFinanceSlider .vw-arrow:hover {\r\n  background: #B49C44;\r\n  color: #ffffff;\r\n  border-color: #B49C44;\r\n}\r\n\r\n#vwFinanceSlider .vw-window {\r\n  width: 100%;\r\n  overflow-x: auto;\r\n  overflow-y: hidden;\r\n  cursor: grab;\r\n  user-select: none;\r\n  scroll-behavior: smooth;\r\n  scrollbar-width: none;\r\n  -ms-overflow-style: none;\r\n  padding: 10px 30px 40px;\r\n}\r\n\r\n#vwFinanceSlider .vw-window::-webkit-scrollbar {\r\n  display: none;\r\n}\r\n\r\n#vwFinanceSlider .vw-window.dragging {\r\n  cursor: grabbing;\r\n  scroll-behavior: auto;\r\n}\r\n\r\n#vwFinanceSlider .vw-track {\r\n  display: flex;\r\n  gap: 28px;\r\n  width: max-content;\r\n}\r\n\r\n#vwFinanceSlider .vw-box {\r\n  flex: 0 0 340px;\r\n  background: #ffffff;\r\n  border-radius: 22px;\r\n  padding: 26px;\r\n  min-height: 430px;\r\n  cursor: pointer;\r\n  border: 1px solid rgba(12,44,76,.08);\r\n  box-shadow: 0 18px 45px rgba(12,44,76,.10);\r\n  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;\r\n  scroll-margin-top: 110px;\r\n}\r\n\r\n#vwFinanceSlider .vw-box:hover {\r\n  transform: translateY(-6px);\r\n  box-shadow: 0 24px 58px rgba(12,44,76,.14);\r\n}\r\n\r\n#vwFinanceSlider .vw-box.selected {\r\n  border-color: rgba(180,156,68,.75);\r\n  box-shadow: 0 24px 60px rgba(12,44,76,.16);\r\n}\r\n\r\n#vwFinanceSlider .vw-gradient {\r\n  height: 205px;\r\n  border-radius: 18px;\r\n  margin-bottom: 28px;\r\n  position: relative;\r\n  overflow: hidden;\r\n  background: linear-gradient(135deg, #B49C44 0%, #f6f2e3 42%, #0C2C4C 100%);\r\n}\r\n\r\n#vwFinanceSlider .vw-box.selected .vw-gradient {\r\n  background: linear-gradient(135deg, #B49C44 0%, #ffffff 36%, #0C2C4C 100%);\r\n}\r\n\r\n#vwFinanceSlider .vw-mockup {\r\n  position: absolute;\r\n  left: 42px;\r\n  right: 42px;\r\n  top: 42px;\r\n  bottom: 42px;\r\n  background: rgba(255,255,255,.88);\r\n  border-radius: 16px;\r\n  box-shadow: 0 20px 40px rgba(12,44,76,.18);\r\n}\r\n\r\n#vwFinanceSlider .vw-card-icon {\r\n  position: absolute;\r\n  inset: 0;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n\r\n#vwFinanceSlider .vw-card-icon svg {\r\n  width: 74px;\r\n  height: 74px;\r\n  fill: none;\r\n  stroke: #B49C44;\r\n  stroke-width: 1.8;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  filter: drop-shadow(0 6px 10px rgba(12,44,76,.12));\r\n}\r\n\r\n#vwFinanceSlider h3 {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 27px;\r\n  line-height: 1.08;\r\n  font-weight: 500;\r\n  color: #0C2C4C;\r\n  margin: 0 0 18px;\r\n}\r\n\r\n#vwFinanceSlider p {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 15px;\r\n  line-height: 1.55;\r\n  font-weight: 400;\r\n  color: #0C2C4C;\r\n  margin: 11px 0;\r\n  padding-left: 25px;\r\n  position: relative;\r\n}\r\n\r\n#vwFinanceSlider p:before {\r\n  content: \"\u2713\";\r\n  position: absolute;\r\n  left: 0;\r\n  top: 0;\r\n  color: #B49C44;\r\n  font-weight: 700;\r\n}\r\n\r\n#vwFinanceSlider .vw-popup-btn {\r\n  margin-top: 18px;\r\n  background: #B49C44;\r\n  color: #ffffff;\r\n  border: none;\r\n  border-radius: 999px;\r\n  padding: 12px 22px;\r\n  font-size: 15px;\r\n  font-weight: 700;\r\n  cursor: pointer;\r\n  transition: all .25s ease;\r\n}\r\n\r\n#vwFinanceSlider .vw-popup-btn:hover {\r\n  background: #0C2C4C;\r\n}\r\n\r\n@media(max-width: 767px) {\r\n  #vwFinanceSlider {\r\n    padding: 40px 20px;\r\n    overflow: visible;\r\n  }\r\n\r\n  #vwFinanceSlider .vw-finance-top {\r\n    display: block;\r\n    margin-bottom: 25px;\r\n  }\r\n\r\n  #vwFinanceSlider .vw-finance-top h2 {\r\n  font-size: 27px;\r\n  line-height: 1.08;\r\n  font-weight: 500;\r\n  padding-left: 0;\r\n  text-align: center;\r\n  width: 100%;\r\n  margin: 0 auto;\r\n}\r\n  #vwFinanceSlider .vw-nav {\r\n    display: none;\r\n  }\r\n\r\n  #vwFinanceSlider .vw-window {\r\n    padding: 0;\r\n    overflow: visible;\r\n    cursor: default;\r\n    user-select: auto;\r\n  }\r\n\r\n  #vwFinanceSlider .vw-track {\r\n    width: 100%;\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 22px;\r\n  }\r\n\r\n  #vwFinanceSlider .vw-box {\r\n    width: 100%;\r\n    flex: none;\r\n    min-height: auto;\r\n    padding: 22px;\r\n  }\r\n\r\n  #vwFinanceSlider .vw-box:hover {\r\n    transform: none;\r\n  }\r\n\r\n  #vwFinanceSlider .vw-gradient {\r\n    height: 185px;\r\n    margin-bottom: 24px;\r\n  }\r\n\r\n  #vwFinanceSlider .vw-mockup {\r\n    left: 32px;\r\n    right: 32px;\r\n    top: 36px;\r\n    bottom: 36px;\r\n  }\r\n\r\n  #vwFinanceSlider h3 {\r\n    font-size: 19px;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  function initFinanceSlider() {\r\n    const slider = document.getElementById(\"vwFinanceSlider\");\r\n    if (!slider || slider.dataset.ready === \"true\") return;\r\n\r\n    slider.dataset.ready = \"true\";\r\n\r\n    const windowEl = slider.querySelector(\".vw-window\");\r\n    const cards = Array.from(slider.querySelectorAll(\".vw-box\"));\r\n    const prev = slider.querySelector(\".vw-prev\");\r\n    const next = slider.querySelector(\".vw-next\");\r\n\r\n    let isDown = false;\r\n    let startX = 0;\r\n    let scrollLeft = 0;\r\n    let moved = false;\r\n\r\n    function isMobile() {\r\n      return window.matchMedia(\"(max-width: 767px)\").matches;\r\n    }\r\n\r\n    function cardStep() {\r\n      const firstCard = cards[0];\r\n      if (!firstCard) return 360;\r\n      return firstCard.offsetWidth + 28;\r\n    }\r\n\r\n    function selectCard(card) {\r\n  cards.forEach(function (item) {\r\n    item.classList.remove(\"selected\");\r\n  });\r\n\r\n  card.classList.add(\"selected\");\r\n\r\n  if (!isMobile()) {\r\n    card.scrollIntoView({\r\n      behavior: \"smooth\",\r\n      block: \"nearest\",\r\n      inline: \"center\"\r\n    });\r\n  }\r\n}\r\n\r\nfunction selectCardFromHash() {\r\n  const hash = window.location.hash;\r\n  if (!hash) return;\r\n\r\n  const target = slider.querySelector(hash);\r\n  if (!target || !target.classList.contains(\"vw-box\")) return;\r\n\r\n  selectCard(target);\r\n}\r\n\r\nselectCardFromHash();\r\n\r\nwindow.addEventListener(\"hashchange\", function () {\r\n  selectCardFromHash();\r\n});\r\n\r\n    cards.forEach(function (card) {\r\n      const button = card.querySelector(\".vw-popup-btn\");\r\n\r\n      card.addEventListener(\"click\", function () {\r\n        if (moved) return;\r\n        selectCard(card);\r\n      });\r\n\r\n      if (button) {\r\n        button.addEventListener(\"click\", function (e) {\r\n          e.stopPropagation();\r\n\r\n          if (typeof elementorProFrontend !== \"undefined\") {\r\n            elementorProFrontend.modules.popup.showPopup({\r\n              id: 2777\r\n            });\r\n          }\r\n        });\r\n      }\r\n    });\r\n\r\n    if (next) {\r\n      next.addEventListener(\"click\", function () {\r\n        if (isMobile()) return;\r\n\r\n        windowEl.scrollBy({\r\n          left: cardStep(),\r\n          behavior: \"smooth\"\r\n        });\r\n      });\r\n    }\r\n\r\n    if (prev) {\r\n      prev.addEventListener(\"click\", function () {\r\n        if (isMobile()) return;\r\n\r\n        windowEl.scrollBy({\r\n          left: -cardStep(),\r\n          behavior: \"smooth\"\r\n        });\r\n      });\r\n    }\r\n\r\n    windowEl.addEventListener(\"mousedown\", function (e) {\r\n      if (isMobile()) return;\r\n\r\n      isDown = true;\r\n      moved = false;\r\n      windowEl.classList.add(\"dragging\");\r\n      startX = e.pageX - windowEl.offsetLeft;\r\n      scrollLeft = windowEl.scrollLeft;\r\n    });\r\n\r\n    windowEl.addEventListener(\"mouseleave\", function () {\r\n      isDown = false;\r\n      windowEl.classList.remove(\"dragging\");\r\n    });\r\n\r\n    windowEl.addEventListener(\"mouseup\", function () {\r\n      isDown = false;\r\n      windowEl.classList.remove(\"dragging\");\r\n\r\n      setTimeout(function () {\r\n        moved = false;\r\n      }, 80);\r\n    });\r\n\r\n    windowEl.addEventListener(\"mousemove\", function (e) {\r\n      if (!isDown || isMobile()) return;\r\n      e.preventDefault();\r\n\r\n      const x = e.pageX - windowEl.offsetLeft;\r\n      const walk = (x - startX) * 1.2;\r\n\r\n      if (Math.abs(walk) > 5) moved = true;\r\n\r\n      windowEl.scrollLeft = scrollLeft - walk;\r\n    });\r\n  }\r\n\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", initFinanceSlider);\r\n  } else {\r\n    initFinanceSlider();\r\n  }\r\n\r\n  window.addEventListener(\"load\", initFinanceSlider);\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e0d4d64 elementor-widget elementor-widget-html\" data-id=\"e0d4d64\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n.vair-stats-section {\r\n  font-family: Arial, sans-serif;\r\n  display: grid;\r\n  grid-template-columns: repeat(2, 1fr);\r\n  gap: 32px;\r\n  max-width: 980px;\r\n  margin: 0 auto;\r\n}\r\n\r\n.vair-stat {\r\n  display: flex;\r\n  flex-direction: column;\r\n  height: 100%;\r\n}\r\n\r\n.vair-text {\r\n  min-height: 210px;\r\n}\r\n\r\n.vair-stat h3 {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 27px;\r\n  line-height: 1.08;\r\n  font-weight: 500;\r\n  color: #0C2C4C;\r\n  margin: 0 0 18px;\r\n}\r\n\r\n.vair-stat p,\r\n.vair-caption {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 15px;\r\n  line-height: 1.55;\r\n  font-weight: 400;\r\n  color: #0C2C4C;\r\n}\r\n\r\n.vair-number-box {\r\n  background: #f6f8fb;\r\n  border: 1px solid #e7edf3;\r\n  border-radius: 8px;\r\n  height: 210px;\r\n  display: flex;\r\n  flex-direction: column;\r\n  justify-content: center;\r\n  align-items: center;\r\n  text-align: center;\r\n}\r\n\r\n.vair-number {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 64px;\r\n  font-weight: 700;\r\n  line-height: 1;\r\n  background: linear-gradient(90deg, #0C2C4C, #B49C44);\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  background-clip: text;\r\n  margin-bottom: 14px;\r\n}\r\n\r\n.vair-caption {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 15px;\r\n  font-weight: 400;\r\n  color: #0C2C4C;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n  .vair-stats-section {\r\n    grid-template-columns: 1fr;\r\n  }\r\n\r\n  .vair-text {\r\n    min-height: auto;\r\n    margin-bottom: 24px;\r\n  }\r\n\r\n\r\n}\r\n<\/style>\r\n\r\n<div class=\"vair-stats-section\">\r\n\r\n  <div class=\"vair-stat\">\r\n    <div class=\"vair-text\">\r\n      <h3>Individuelle L\u00f6sungen f\u00fcr jede Investitionsstrategie<\/h3>\r\n      <p>\r\n       Wir begleiten Investoren mit klar strukturierten Ans\u00e4tzen f\u00fcr Immobilien, Edelmetalle und reale Werte \u2013 passend zu Anlageziel, Sicherheit und Wachstum.\r\n      <\/p>\r\n    <\/div>\r\n    <div class=\"vair-number-box\">\r\n      <div class=\"vair-number\">4<\/div>\r\n      <div class=\"vair-caption\">Investmentbereiche<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"vair-stat\">\r\n    <div class=\"vair-text\">\r\n      <h3>Vielf\u00e4ltige Modelle f\u00fcr mehr Flexibilit\u00e4t beim Investieren<\/h3>\r\n      <p>\r\n        Von direkten Investments bis hin zu strukturierten Beteiligungen schaffen wir Zugang zu ausgew\u00e4hlten M\u00f6glichkeiten, die sich flexibel an Ihre Strategie anpassen.\r\n      <\/p>\r\n    <\/div>\r\n    <div class=\"vair-number-box\">\r\n      <div class=\"vair-number\">6<\/div>\r\n      <div class=\"vair-caption\">internationale M\u00e4rkte<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"vair-stat\">\r\n    <div class=\"vair-text\">\r\n      <h3>Starke Partner f\u00fcr nachhaltige Investments<\/h3>\r\n      <p>\r\n        Durch unser gepr\u00fcftes Netzwerk verbinden wir Investoren mit hochwertigen Projekten, erfahrenen Partnern und langfristigen Chancen im Bereich Immobilien und Edelmetalle.\r\n      <\/p>\r\n    <\/div>\r\n    <div class=\"vair-number-box\">\r\n      <div class=\"vair-number\">1<\/div>\r\n      <div class=\"vair-caption\">gro\u00dfes Netzwerk<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"vair-stat\">\r\n    <div class=\"vair-text\">\r\n      <h3>Ganzheitliche Betreuung von Anfang bis Abschluss<\/h3>\r\n      <p>\r\n       Wir begleiten den gesamten Investmentprozess transparent, diskret und individuell gepr\u00fcft \u2013 von der Auswahl bis zur erfolgreichen Umsetzung.\r\n      <\/p>\r\n    <\/div>\r\n    <div class=\"vair-number-box\">\r\n      <div class=\"vair-number\">360\u00b0<\/div>\r\n      <div class=\"vair-caption\">Begleitung<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2828940 elementor-widget elementor-widget-html\" data-id=\"2828940\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n.vair-faq {\r\n  font-family: Arial, sans-serif;\r\n  max-width: 980px;\r\n  margin: 0 auto;\r\n  padding: 40px 20px;\r\n}\r\n\r\n.vair-faq-title {\r\n  text-align: center;\r\n  margin-bottom: 36px;\r\n}\r\n\r\n.vair-faq-title span {\r\n  color: #B49C44;\r\n  font-size: 15px;\r\n  font-weight: 400;\r\n  letter-spacing: 2px;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.vair-faq-title h2 {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 27px;\r\n  line-height: 1.08;\r\n  font-weight: 500;\r\n  color: #0C2C4C;\r\n  margin: 0;\r\n}\r\n\r\n.vair-faq-item {\r\n  background: #ffffff;\r\n  border-radius: 18px;\r\n  margin-bottom: 18px;\r\n  box-shadow: 0 14px 35px rgba(12, 44, 76, 0.12);\r\n  overflow: hidden;\r\n  border: 1px solid rgba(12, 44, 76, 0.08);\r\n}\r\n\r\n.vair-faq-question {\r\n  width: 100%;\r\n  background: transparent !important;\r\n  border: none !important;\r\n  outline: none !important;\r\n  box-shadow: none !important;\r\n  padding: 26px 30px;\r\n  cursor: pointer;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n  color: #0C2C4C !important;\r\n  font-family: Arial, sans-serif;\r\n  font-size: 27px;\r\n  line-height: 1.08;\r\n  font-weight: 500;\r\n  text-align: left;\r\n}\r\n\r\n.vair-faq-question:hover,\r\n.vair-faq-question:focus,\r\n.vair-faq-question:active {\r\n  background: transparent !important;\r\n  color: #0C2C4C !important;\r\n  border: none !important;\r\n  outline: none !important;\r\n  box-shadow: none !important;\r\n}\r\n\r\n.vair-faq-question-left {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 20px;\r\n}\r\n\r\n.vair-faq-icon {\r\n  min-width: 38px;\r\n  width: 38px;\r\n  height: 38px;\r\n  border-radius: 50%;\r\n  background: linear-gradient(135deg, #0C2C4C, #B49C44);\r\n  color: #ffffff;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  font-size: 26px;\r\n  font-weight: 400;\r\n  transition: 0.3s ease;\r\n}\r\n\r\n.vair-faq-arrow {\r\n  color: #B49C44;\r\n  font-size: 24px;\r\n  transition: 0.3s ease;\r\n  margin-left: 20px;\r\n  flex-shrink: 0;\r\n}\r\n\r\n.vair-faq-answer {\r\n  max-height: 0;\r\n  overflow: hidden;\r\n  transition: max-height 0.35s ease;\r\n}\r\n\r\n.vair-faq-answer p {\r\n  font-family: Arial, sans-serif;\r\n  color: #0C2C4C;\r\n  font-size: 15px;\r\n  line-height: 1.55;\r\n  font-weight: 400;\r\n  margin: 0;\r\n  padding: 0 30px 28px 88px;\r\n}\r\n\r\n.vair-faq-item.active .vair-faq-answer {\r\n  max-height: 500px;\r\n}\r\n\r\n.vair-faq-item.active .vair-faq-icon {\r\n  background: linear-gradient(135deg, #B49C44, #0C2C4C);\r\n}\r\n\r\n.vair-faq-item.active .vair-faq-icon::before {\r\n  content: \"\u2212\";\r\n}\r\n\r\n.vair-faq-item:not(.active) .vair-faq-icon::before {\r\n  content: \"+\";\r\n}\r\n\r\n.vair-faq-item.active .vair-faq-arrow {\r\n  transform: rotate(180deg);\r\n}\r\n\r\n@media (max-width: 768px) {\r\n  .vair-faq {\r\n    padding: 35px 16px;\r\n    max-width: 100%;\r\n  }\r\n\r\n  .vair-faq-title {\r\n    margin-bottom: 26px;\r\n  }\r\n\r\n  .vair-faq-title span {\r\n    font-size: 13px;\r\n    letter-spacing: 1.6px;\r\n  }\r\n\r\n  .vair-faq-title h2 {\r\n    font-size: 24px;\r\n    line-height: 1.25;\r\n  }\r\n\r\n  .vair-faq-item {\r\n    border-radius: 16px;\r\n    margin-bottom: 14px;\r\n    box-shadow: 0 10px 26px rgba(12, 44, 76, 0.10);\r\n  }\r\n\r\n  .vair-faq-question {\r\n    padding: 20px 16px;\r\n    font-size: 16px;\r\n    line-height: 1.35;\r\n    align-items: flex-start;\r\n    gap: 10px;\r\n  }\r\n\r\n  .vair-faq-question-left {\r\n    display: grid;\r\n    grid-template-columns: 34px 1fr;\r\n    gap: 12px;\r\n    align-items: flex-start;\r\n    min-width: 0;\r\n    flex: 1;\r\n  }\r\n\r\n  .vair-faq-question-left span:last-child {\r\n    display: block;\r\n    white-space: normal;\r\n    overflow-wrap: break-word;\r\n    word-break: normal;\r\n    max-width: 100%;\r\n  }\r\n\r\n  .vair-faq-icon {\r\n    min-width: 34px;\r\n    width: 34px;\r\n    height: 34px;\r\n    font-size: 23px;\r\n  }\r\n\r\n  .vair-faq-arrow {\r\n    display: none;\r\n  }\r\n\r\n  .vair-faq-answer p {\r\n    font-size: 15px;\r\n    line-height: 1.65;\r\n    padding: 0 16px 22px 62px;\r\n  }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n  .vair-faq {\r\n    padding: 30px 14px;\r\n  }\r\n\r\n  .vair-faq-title h2 {\r\n    font-size: 22px;\r\n  }\r\n\r\n  .vair-faq-question {\r\n    padding: 18px 14px;\r\n    font-size: 15.5px;\r\n  }\r\n\r\n  .vair-faq-question-left {\r\n    grid-template-columns: 32px 1fr;\r\n    gap: 10px;\r\n  }\r\n\r\n  .vair-faq-icon {\r\n    min-width: 32px;\r\n    width: 32px;\r\n    height: 32px;\r\n    font-size: 22px;\r\n  }\r\n\r\n  .vair-faq-answer p {\r\n    padding: 0 14px 22px 56px;\r\n    font-size: 14.5px;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<div class=\"vair-faq\">\r\n  <div class=\"vair-faq-title\">\r\n   \r\n    <h2>H\u00e4ufig gestellte Fragen<\/h2>\r\n  <\/div>\r\n\r\n  <div class=\"vair-faq-item active\">\r\n    <button class=\"vair-faq-question\" type=\"button\">\r\n      <div class=\"vair-faq-question-left\">\r\n        <span class=\"vair-faq-icon\"><\/span>\r\n        <span>Warum sollte ich in Gold, Edelmetalle oder Immobilien investieren?<\/span>\r\n      <\/div>\r\n      <span class=\"vair-faq-arrow\">\u2304<\/span>\r\n    <\/button>\r\n    <div class=\"vair-faq-answer\">\r\n      <p>Gold, Edelmetalle und Immobilien gelten als sachwertorientierte Anlagen und k\u00f6nnen helfen, Verm\u00f6gen langfristig zu diversifizieren und gegen Inflation abzusichern.<\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"vair-faq-item\">\r\n    <button class=\"vair-faq-question\" type=\"button\">\r\n      <div class=\"vair-faq-question-left\">\r\n        <span class=\"vair-faq-icon\"><\/span>\r\n        <span>Welche Investitionsm\u00f6glichkeiten gibt es in diesen Bereichen?<\/span>\r\n      <\/div>\r\n      <span class=\"vair-faq-arrow\">\u2304<\/span>\r\n    <\/button>\r\n    <div class=\"vair-faq-answer\">\r\n      <p>M\u00f6gliche Optionen sind physisches Gold und Edelmetalle, Beteiligungen an Immobilienprojekten, Direktinvestments oder individuell gepr\u00fcfte Anlagekonzepte \u00fcber ausgew\u00e4hlte Partner.<\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"vair-faq-item\">\r\n    <button class=\"vair-faq-question\" type=\"button\">\r\n      <div class=\"vair-faq-question-left\">\r\n        <span class=\"vair-faq-icon\"><\/span>\r\n        <span>Wie unterst\u00fctzt VAIR WORLD bei der Auswahl geeigneter Investments?<\/span>\r\n      <\/div>\r\n      <span class=\"vair-faq-arrow\">\u2304<\/span>\r\n    <\/button>\r\n    <div class=\"vair-faq-answer\">\r\n      <p>VAIR WORLD bietet eine strukturierte Vorauswahl, Zugang zu einem gepr\u00fcften Netzwerk und begleitet Interessenten von der ersten Anfrage bis zur m\u00f6glichen Umsetzung.<\/p>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.querySelectorAll('.vair-faq-question').forEach(function(button) {\r\n  button.addEventListener('click', function() {\r\n    const item = this.closest('.vair-faq-item');\r\n\r\n    document.querySelectorAll('.vair-faq-item').forEach(function(faq) {\r\n      if (faq !== item) {\r\n        faq.classList.remove('active');\r\n      }\r\n    });\r\n\r\n    item.classList.toggle('active');\r\n  });\r\n});\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab660b9 elementor-widget elementor-widget-html\" data-id=\"ab660b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"process-flow\">\r\n  <h2 class=\"process-title\">Wie funktioniert es?<\/h2>\r\n\r\n  <div class=\"process-steps\">\r\n    <div class=\"process-card\">\r\n      <div class=\"icon\">\u2709<\/div>\r\n      <span>Investmentanfrage senden<\/span>\r\n      <div class=\"hover-text\">\r\n        Sie teilen uns mit, in welchem Bereich Sie investieren m\u00f6chten und welchen Kapitalrahmen Sie pr\u00fcfen wollen.\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"process-card\">\r\n      <div class=\"icon\">\u2713<\/div>\r\n      <span>Ziele & Rahmen kl\u00e4ren<\/span>\r\n      <div class=\"hover-text\">\r\n        Wir besprechen Ihre Interessen, Priorit\u00e4ten, m\u00f6gliche Laufzeiten und gew\u00fcnschte Investmentbereiche.\r\n\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"process-card\">\r\n      <div class=\"icon\">\u2194<\/div>\r\n      <span>M\u00f6glichkeiten pr\u00fcfen<\/span>\r\n      <div class=\"hover-text\">\r\n        VAIR WORLD pr\u00fcft passende Projekte, Partner oder Sachwertm\u00f6glichkeiten innerhalb des Netzwerks.\r\n\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"process-card\">\r\n      <div class=\"icon\">\u2699<\/div>\r\n      <span>Optionen vergleichen<\/span>\r\n      <div class=\"hover-text\">\r\n        Sie erhalten eine strukturierte \u00dcbersicht m\u00f6glicher Investmentrichtungen und k\u00f6nnen die n\u00e4chsten Schritte abw\u00e4gen.\r\n\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n.process-flow {\r\n  font-family: Arial, sans-serif;\r\n  color: #0C2C4C;\r\n  width: 100%;\r\n  margin: 0 auto;\r\n}\r\n\r\n.process-title {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 27px !important;\r\n  line-height: 1.08;\r\n  font-weight: 500;\r\n  color: #0C2C4C;\r\n  margin: 0 0 18px 0;\r\n  text-align: center;\r\n}\r\n\r\n.process-steps {\r\n  display: flex;\r\n  gap: 16px;\r\n  justify-content: center;\r\n  align-items: stretch;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n.process-card {\r\n  position: relative;\r\n  background: #ffffff;\r\n  border: 1px solid #e2e8f0;\r\n  border-radius: 8px;\r\n  padding: 16px;\r\n  width: 210px;\r\n  min-height: 110px;\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 14px;\r\n  color: #0C2C4C;\r\n  font-family: Arial, sans-serif;\r\n  font-size: 15px;\r\n  font-weight: 400;\r\n  cursor: pointer;\r\n}\r\n\r\n.icon {\r\n  width: 42px;\r\n  height: 42px;\r\n  min-width: 42px;\r\n  border-radius: 8px;\r\n  background: rgba(12, 44, 76, 0.10);\r\n  color: #0C2C4C;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  font-size: 20px;\r\n}\r\n\r\n.hover-text {\r\n  display: none;\r\n  position: absolute;\r\n  top: calc(100% + 10px);\r\n  left: 0;\r\n  right: 0;\r\n  background: #ffffff;\r\n  border: 1px solid #e2e8f0;\r\n  border-radius: 8px;\r\n  padding: 14px;\r\n  color: #0C2C4C;\r\n  font-family: Arial, sans-serif;\r\n  font-size: 15px;\r\n  line-height: 1.55;\r\n  font-weight: 400;\r\n  z-index: 10;\r\n  box-shadow: 0 8px 20px rgba(12, 44, 76, 0.10);\r\n}\r\n\r\n.process-card:hover .hover-text {\r\n  display: block;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n  .process-steps {\r\n    flex-direction: column;\r\n  }\r\n\r\n  .process-card {\r\n    width: 100%;\r\n  }\r\n}\r\n.process-flow h2.process-title {\r\n  font-family: Arial, sans-serif !important;\r\n  font-size: 27px !important;\r\n  line-height: 1.08 !important;\r\n  font-weight: 500 !important;\r\n  color: #0C2C4C !important;\r\n  margin: 0 0 18px 0 !important;\r\n  text-align: center !important;\r\n}\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f5c4a56 e-flex e-con-boxed e-con e-parent\" data-id=\"f5c4a56\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6589da2 elementor-widget elementor-widget-html\" data-id=\"6589da2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n  .vair-footer {\r\n  font-family: Arial, sans-serif;\r\n  color: #0C2C4C;\r\n  background: #fff;\r\n  padding: 50px 50px 70px;\r\n}\r\n\r\n  .vair-footer-grid {\r\n    display: grid;\r\n    grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr;\r\n    gap: 55px;\r\n    max-width: 1140px;\r\n    margin: 0 auto;\r\n    align-items: start;\r\n  }\r\n\r\n  .vair-logo-space {\r\n    height: 76px;\r\n    margin-bottom: 10px;\r\n  }\r\n\r\n  .vair-footer-brand p,\r\n.vair-footer a,\r\n.vair-cta-text p {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 15px;\r\n  line-height: 1.55;\r\n  font-weight: 400;\r\n  color: #0C2C4C;\r\n}\r\n\r\n  .vair-footer h4,\r\n.vair-cta-text h3 {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 27px;\r\n  line-height: 1.08;\r\n  font-weight: 500;\r\n  color: #0C2C4C;\r\n  margin: 0 0 22px;\r\n  text-align: left;\r\n}\r\n\r\n.vair-footer a {\r\n  display: block;\r\n  font-family: Arial, sans-serif;\r\n  font-size: 15px;\r\n  line-height: 1.55;\r\n  font-weight: 400;\r\n  color: #0C2C4C;\r\n  text-decoration: none;\r\n  margin-bottom: 12px;\r\n  text-align: left;\r\n}\r\n\r\n  .vair-footer a:hover {\r\n  color: #031322;\r\n}\r\n\r\n  .vair-cta {\r\n    max-width: 1140px;\r\n    margin: 60px auto 0;\r\n    background: #eef6ff;\r\n    border-radius: 10px;\r\n    display: grid;\r\n    grid-template-columns: 1fr 260px;\r\n    align-items: center;\r\n    min-height: 72px;\r\n  }\r\n\r\n  .vair-cta-text {\r\n    padding: 11px 28px;\r\n  }\r\n\r\n  .vair-cta-text h3 {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 27px;\r\n  line-height: 1.08;\r\n  font-weight: 500;\r\n  color: #0C2C4C;\r\n  margin: 0 0 6px;\r\n}\r\n\r\n.vair-cta-text p {\r\n  margin: 0;\r\n  font-size: 15px;\r\n  line-height: 1.25;\r\n  max-width: 520px;\r\n}\r\n\r\n  .vair-button-space {\r\n    min-height: 42px;\r\n  }\r\n\r\n  @media (max-width: 900px) {\r\n    .vair-footer {\r\n      padding: 45px 25px 55px;\r\n    }\r\n\r\n    .vair-footer-grid {\r\n      grid-template-columns: 1fr 1fr;\r\n      gap: 35px;\r\n      text-align: center;\r\n    }\r\n\r\n    .vair-footer-brand {\r\n      grid-column: 1 \/ -1;\r\n      text-align: center;\r\n    }\r\n\r\n    .vair-footer-brand p {\r\n      margin: 0 auto;\r\n    }\r\n\r\n    .vair-logo-space {\r\n      height: 35px;\r\n    }\r\n\r\n    .vair-cta {\r\n      grid-template-columns: 1fr;\r\n      text-align: center;\r\n      margin-top: 45px;\r\n      padding-bottom: 18px;\r\n    }\r\n\r\n    .vair-cta-text p {\r\n      margin: 0 auto;\r\n    }\r\n\r\n    .vair-button-space {\r\n      min-height: 36px;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 600px) {\r\n    .vair-footer-grid {\r\n      grid-template-columns: 1fr;\r\n      gap: 30px;\r\n    }\r\n\r\n    .vair-footer h4 {\r\n      margin-bottom: 14px;\r\n    }\r\n\r\n    .vair-footer a {\r\n      margin-bottom: 11px;\r\n    }\r\n\r\n    .vair-cta-text {\r\n      padding: 22px 18px 8px;\r\n    }\r\n\r\n    @media (max-width: 600px) {\r\n  .vair-cta-text h3 {\r\n    font-family: Arial, sans-serif;\r\n    font-size: 27px;\r\n    line-height: 1.08;\r\n    font-weight: 500;\r\n    color: #0C2C4C;\r\n    text-align: center;\r\n    margin: 0 0 14px;\r\n  }\r\n\r\n  .vair-cta-text p {\r\n    text-align: center;\r\n  }\r\n}\r\n\r\n.vair-cta-text p {\r\n  font-family: Arial, sans-serif;\r\n  font-size: 15px;\r\n  line-height: 1.55;\r\n  font-weight: 400;\r\n  color: #0C2C4C;\r\n}\r\n\r\n.vair-footer h4,\r\n.vair-footer a {\r\n  text-align: center;\r\n}\r\n\r\n}\r\n<\/style>\r\n\r\n<footer class=\"vair-footer\">\r\n  <div class=\"vair-footer-grid\">\r\n\r\n    <div class=\"vair-footer-brand\">\r\n      <div class=\"vair-logo-space\"><\/div>\r\n      <p>Das Business-\u00d6kosystem f\u00fcr Unternehmer, Investoren und Gr\u00fcnder.<\/p>\r\n    <\/div>\r\n\r\n    <div>\r\n      <h4>Finanzierung<\/h4>\r\n     <a href=\"\/finanzierung-testseite\/#autokredit\">Autokredit<\/a>\r\n      <a href=\"\/finanzierung-testseite\/#immobilienkredit\">Immobilienkredit<\/a>\r\n      <a href=\"\/finanzierung-testseite\/#projektfinanzierung\">Projektfinanzierung<\/a>\r\n      <a href=\"\/finanzierung-testseite\/#goldkredit\">Goldkredit<\/a>\r\n    <\/div>\r\n\r\n    <div>\r\n      <h4>Fahrzeuge<\/h4>\r\n      <a href=\"\/fahrzeuge-testseite\/#fahrzeughandel\">Fahrzeughandel<\/a>\r\n      <a href=\"\/fahrzeuge-testseite\/#absatzfinanzierung\">Absatzfinanzierung<\/a>\r\n      <a href=\"\/fahrzeuge-testseite\/#einkaufsfinanzierung\">Einkaufsfinanzierung<\/a>\r\n      <a href=\"\/fahrzeuge-testseite\/#flottenloesungen\">Flottenl\u00f6sungen<\/a>\r\n    <\/div>\r\n\r\n    <div>\r\n  <h4>Konto<\/h4>\r\n      <a href=\"\/konto-testseite\/#geschaeftskonto\">Gesch\u00e4ftskonto<\/a>\r\n      <a href=\"\/konto-testseite\/#sparkonto\">Sparkonto<\/a>\r\n      <a href=\"\/konto-testseite\/#privatkonto\">Privatkonto<\/a>\r\n      <a href=\"\/konto-testseite\/#goldkonto\">Goldkonto<\/a>\r\n<\/div>\r\n\r\n    <div>\r\n      <h4>Support<\/h4>\r\n      <a href=\"\/ueber-uns-testseite\/\">\u00dcber uns<\/a>\r\n      <a href=\"\/kontakt-testseite\/\">Kontakt<\/a>\r\n      <a href=\"\/datenschutz-testseite\/\">Datenschutz<\/a>\r\n      <a href=\"\/impressum-testseite\/\">Impressum<\/a>\r\n    <\/div>\r\n\r\n  <\/div>\r\n\r\n  <div class=\"vair-cta\">\r\n    <div class=\"vair-cta-text\">\r\n      <h3>Bereit zu starten?<\/h3>\r\n      <p>Treten Sie unserem \u00d6kosystem bei und finden Sie die perfekte Finanzierungsl\u00f6sung f\u00fcr Ihr Unternehmen.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"vair-button-space\"><\/div>\r\n  <\/div>\r\n<\/footer>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7715500 ha-css-transform-yes elementor-widget elementor-widget-theme-site-logo elementor-widget-image\" data-id=\"7715500\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-site-logo.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/vair.world\/en\">\n\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"555\" height=\"245\" src=\"https:\/\/vair.world\/wp-content\/uploads\/2024\/03\/Logo_Vair_komplett_4c_compressed.svg\" class=\"attachment-full size-full wp-image-526\" alt=\"\" \/>\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9b4cccd elementor-widget__width-initial ha-css-transform-yes elementor-widget elementor-widget-button\" data-id=\"9b4cccd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#elementor-action%3Aaction%3Dpopup%3Aopen%26settings%3DeyJpZCI6IjI3NzciLCJ0b2dnbGUiOmZhbHNlfQ%3D%3D\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Anfrage senden<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>Investieren in\u00a0reale Werte, Projekte &amp; Wachstum Kapital sinnvoll investieren \u2013 in Immobilien und Edelmetalle. Investmentanfrage starten Investmentbereiche ansehen \u2193 Portfolio Aktiv Gold Immobilie Silber Investmentbereiche \u2039 \u203a Immobilien Immobilienfinanzierung Finanzierung ohne Zinsen m\u00f6glich Internationale Immobilienprojekte Anmelden Gold &#038; Edelmetalle Gold &#038; Edelmetalle kaufen Finanzierung f\u00fcr Goldankauf Edelmetalle als Kapitalanlage Schlie\u00dffachl\u00f6sungen f\u00fcr Wertsachen Anmelden Individuelle L\u00f6sungen [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_angie_page":false,"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"footnotes":""},"class_list":["post-3013","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vair.world\/en\/wp-json\/wp\/v2\/pages\/3013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vair.world\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vair.world\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vair.world\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/vair.world\/en\/wp-json\/wp\/v2\/comments?post=3013"}],"version-history":[{"count":235,"href":"https:\/\/vair.world\/en\/wp-json\/wp\/v2\/pages\/3013\/revisions"}],"predecessor-version":[{"id":5697,"href":"https:\/\/vair.world\/en\/wp-json\/wp\/v2\/pages\/3013\/revisions\/5697"}],"wp:attachment":[{"href":"https:\/\/vair.world\/en\/wp-json\/wp\/v2\/media?parent=3013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}