1import{d as m,o as x,f as p,t as g,v as h,P as b,r as P}from"./vendor-core-CUMhuV44.js";import{_ as y}from"./_plugin-vue_export-helper-DlAUqK2U.js";const C={class:"lightrays-background fixed inset-0 z-0 pointer-events-none overflow-hidden"},M=m({__name:"LightRaysBackground",props:{opacity:{},color1:{},color2:{},layoutBg:{}},setup(T){const i=P(null);let e=null,a=null,n=null;const u={history:[{breakpoints:[],visible:!0,aspectRatio:1,userDownsample:1,layerType:"effect",type:"gradient",usesPingPong:!1,speed:.25,trackMouse:0,trackAxes:"xy",mouseMomentum:0,texture:!1,animating:!1,isMask:0,compiledFragmentShaders:[`#version 300 es 2precision highp float;in vec2 vTextureCoord;uniform float uTime; 3uniform vec2 uMousePos;uvec2 pcg2d(uvec2 v) { 4v = v * 1664525u + 1013904223u; 5v.x += v.y * v.y * 1664525u + 1013904223u; 6v.y += v.x * v.x * 1664525u + 1013904223u; 7v ^= v >> 16; 8v.x += v.y * v.y * 1664525u + 1013904223u; 9v.y += v.x * v.x * 1664525u + 1013904223u; 10return v; 11}float randFibo(vec2 p) { 12uvec2 v = floatBitsToUint(p); 13v = pcg2d(v); 14uint r = v.x ^ v.y; 15return float(r) / float(0xffffffffu); 16}vec3 getColor(int index) { 17switch(index) { 18case 0: return vec3(0.5450980392156862, 0.8862745098039215, 1); 19case 1: return vec3(0.8784313725490196, 0.9607843137254902, 1); 20case 2: return vec3(0, 0, 0); 21case 3: return vec3(0, 0, 0); 22case 4: return vec3(0, 0, 0); 23case 5: return vec3(0, 0, 0); 24case 6: return vec3(0, 0, 0); 25case 7: return vec3(0, 0, 0); 26case 8: return vec3(0, 0, 0); 27case 9: return vec3(0, 0, 0); 28case 10: return vec3(0, 0, 0); 29case 11: return vec3(0, 0, 0); 30case 12: return vec3(0, 0, 0); 31case 13: return vec3(0, 0, 0); 32case 14: return vec3(0, 0, 0); 33case 15: return vec3(0, 0, 0); 34default: return vec3(0.0); 35} 36}float getStop(int index) { 37switch(index) { 38case 0: return 0.0000; 39case 1: return 1.0000; 40case 2: return 0.0000; 41case 3: return 0.0000; 42case 4: return 0.0000; 43case 5: return 0.0000; 44case 6: return 0.0000; 45case 7: return 0.0000; 46case 8: return 0.0000; 47case 9: return 0.0000; 48case 10: return 0.0000; 49case 11: return 0.0000; 50case 12: return 0.0000; 51case 13: return 0.0000; 52case 14: return 0.0000; 53case 15: return 0.0000; 54default: return 0.0; 55} 56}const float PI = 3.14159265;vec2 rotate(vec2 coord, float angle) { 57float s = sin(angle); 58float c = cos(angle); 59return vec2( 60coord.x * c - coord.y * s, 61coord.x * s + coord.y * c 62); 63}vec3 linear_from_srgb(vec3 rgb) { 64return pow(max(rgb, vec3(0.0)), vec3(2.2)); 65}vec3 srgb_from_linear(vec3 lin) { 66return pow(max(lin, vec3(0.0)), vec3(1.0/2.2)); 67}vec3 safeCbrt(vec3 v) { 68return sign(v) * pow(abs(v), vec3(1.0/3.0)); 69}vec3 oklab_mix(vec3 lin1, vec3 lin2, float a) { 70const mat3 kCONEtoLMS = mat3( 710.4121656120, 0.2118591070, 0.0883097947, 720.5362752080, 0.6807189584, 0.2818474174, 730.0514575653, 0.1074065790, 0.6302613616); 74const mat3 kLMStoCONE = mat3( 754.0767245293, -1.2681437731, -0.0041119885, 76-3.3072168827, 2.6093323231, -0.7034763098, 770.2307590544, -0.3411344290, 1.7068625689); 78vec3 lms1 = safeCbrt( kCONEtoLMS*lin1 ); 79vec3 lms2 = safeCbrt( kCONEtoLMS*lin2 ); 80vec3 lms = mix( lms1, lms2, a ); 81lms *= 1.0 + 0.025 * a * (1.0-a); 82return kLMStoCONE * (lms * lms * lms); 83}vec3 getGradientColor(float position) { 84position = clamp(position, 0.0, 1.0); 85if (2 <= 1) return getColor(0);for (int i = 0; i < 15; i++) { 86if (i >= 2 - 1) break; 87float stopA = getStop(i); 88float stopB = getStop(i + 1); 89if (position <= stopB || i == 2 - 2) { 90float denom = max(stopB - stopA, 0.00001); 91float t = clamp((position - stopA) / denom, 0.0, 1.0); 92vec3 linA = linear_from_srgb(getColor(i)); 93vec3 linB = linear_from_srgb(getColor(i + 1)); 94vec3 mixed = oklab_mix(linA, linB, t); 95return srgb_from_linear(mixed); 96} 97} 98return getColor(min(2 - 1, 15)); 99}out vec4 fragColor;vec3 applyColorToPosition(float position) { 100vec3 color = vec3(0); 101position -= (uTime * 0.01 + 0.0000); 102float cycle = floor(position); 103bool reverse = 1.0000 > 0.5 && int(cycle) % 2 == 0; 104float animatedPos = reverse ? 1.0 - fract(position) : fract(position);color = getGradientColor(animatedPos); 105float dither = (randFibo(gl_FragCoord.xy) - 0.5) / 255.0; 106color += dither; 107return color; 108}vec3 linearGrad(vec2 uv) { 109float position = (uv.x+0.5); 110return applyColorToPosition(position); 111}vec3 getGradient(vec2 uv) { 112return linearGrad(uv); 113}vec3 getColor(vec2 uv) {return getGradient(uv);return vec3(0.5450980392156862, 0.8862745098039215, 1); 114}void main() {vec2 uv = vTextureCoord; 115vec2 pos = vec2(0.5, 0.5) + mix(vec2(0), (uMousePos-0.5), 0.0000); 116uv -= pos; 117uv /= max(0.5000*2., 1e-5); 118uv = rotate(uv, (0.2500 - 0.5) * 2. * PI); 119vec4 color = vec4(getColor(uv), 1.0000); 120fragColor = color; 121}`],compiledVertexShaders:[`#version 300 es 122precision mediump float;in vec3 aVertexPosition; 123in vec2 aTextureCoord;uniform mat4 uMVMatrix; 124uniform mat4 uPMatrix;out vec2 vTextureCoord; 125out vec3 vVertexPosition;void main() {
126gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); 127vTextureCoord = aTextureCoord; 128}`],data:{depth:!1,uniforms:{},isBackground:!0},id:"gradient"},{breakpoints:[],aspectRatio:1.6,userDownsample:1,states:{appear:[],scroll:[],hover:[],mousemove:[]},effects:["ad8e81b7-d919-4c18-98bf-ee2d7108820c","1de6a609-0df5-44d8-aaa5-33b5cfb7c48b","e255032e-b98e-4672-9093-58bccded779f"],anchorPoint:0,mask:0,maskDepthLayer:1,layerType:"shape",width:200,widthMode:1,height:200,heightMode:1,left:.3340416666666667,top:.2409,compiledFragmentShaders:[`#version 300 es 129precision highp float;in vec2 vTextureCoord; 130in vec3 vVertexPosition;vec3 getColor(int index) { 131switch(index) { 132case 0: return vec3(0, 0, 0); 133case 1: return vec3(0, 0, 0); 134case 2: return vec3(0, 0, 0); 135case 3: return vec3(0, 0, 0); 136case 4: return vec3(0, 0, 0); 137case 5: return vec3(0, 0, 0); 138case 6: return vec3(0, 0, 0); 139case 7: return vec3(0, 0, 0); 140case 8: return vec3(0, 0, 0); 141case 9: return vec3(0, 0, 0); 142case 10: return vec3(0, 0, 0); 143case 11: return vec3(0, 0, 0); 144case 12: return vec3(0, 0, 0); 145case 13: return vec3(0, 0, 0); 146case 14: return vec3(0, 0, 0); 147case 15: return vec3(0, 0, 0); 148default: return vec3(0.0); 149} 150}uniform vec2 uArtboardResolution;uniform vec2 uMousePos;const float TAU = 6.28318530718; 151const float PI = 3.14159265;out vec4 fragColor;vec2 rotate2D(vec2 p, float angle) { 152float s = sin(angle); 153float c = cos(angle); 154return vec2(p.x * c - p.y * s, p.x * s + p.y * c); 155}vec2 getAnchorOffsets() { 156return vec2(0.0, 0.0); 157}vec3 getFillColor(vec2 localPos, vec2 elementSize, float signedDist, float maxInset) { 158vec2 halfSize = elementSize * 0.5; 159vec2 p = localPos - halfSize;return getColor(0); 160}float sdBox(vec2 p, vec2 b) { 161vec2 d = abs(p) - b; 162return length(max(d, 0.0)) + min(max(d.x, d.y), 0.0); 163}float sdShape(vec2 canvasPosPx, vec2 elementPosPx, vec2 elementSizePx, float rotationTurns) { 164vec2 p = vec2(0.0); 165vec2 halfSize = vec2(0.0);halfSize = uArtboardResolution * 0.5; 166p = canvasPosPx - halfSize; 167return sdBox(p, halfSize);elementSizePx = abs(elementSizePx);vec2 centerPx = elementPosPx + elementSizePx * 0.5; 168vec2 rel = canvasPosPx - centerPx; 169vec2 local = rotate2D(rel, -rotationTurns * TAU) + elementSizePx * 0.5; 170p = local - elementSizePx * 0.5; 171halfSize = elementSizePx * 0.5; 172return sdBox(p, halfSize); 173}vec4 sampleShape(vec2 canvasUV) { 174vec2 canvasPosPx = vec2(canvasUV.x * uArtboardResolution.x, (1.0 - canvasUV.y) * uArtboardResolution.y);float absWidth = 200.0000; 175float absHeight = 200.0000;if (1 == 2) { 176absWidth = absHeight * 1.6000; 177} else if (1 == 2) { 178absHeight = absWidth / 1.6000; 179}vec2 elementSizePx = vec2(absWidth, absHeight); 180vec2 elementPosPx = vec2(0.3340, 0.2409) * uArtboardResolution - getAnchorOffsets() * elementSizePx;float dist = sdShape(canvasPosPx, elementPosPx, elementSizePx, 0.0000); 181float aa = max(length(vec2(dFdx(dist), dFdy(dist))), 0.75);float fillAlpha = 1.0 - smoothstep(mix(0.0, -150., 0.0000), mix(aa, 150., 0.0000), dist); 182vec2 localPos; 183localPos = canvasPosPx; 184vec2 localSize; 185localSize = uArtboardResolution; 186vec2 centerPx; 187centerPx = uArtboardResolution * 0.5; 188float centerDist = sdShape(centerPx, elementPosPx, elementSizePx, 0.0000); 189float maxInset = max(-centerDist, 0.00001);vec3 fillRgb = getFillColor(localPos, localSize, dist, maxInset); 190float finalFillAlpha = fillAlpha * 1.0000; 191vec4 fill = vec4(fillRgb * finalFillAlpha, finalFillAlpha);float strokeAlpha = 0.0; 192vec4 stroke = vec4(vec3(0, 0, 0) * strokeAlpha, strokeAlpha); 193vec4 col = stroke + fill * (1.0 - stroke.a); 194return col; 195}vec4 getSourceOutput(vec2 uv) { 196return sampleShape(uv); 197}void main() { 198vec2 uv = vTextureCoord; 199vec2 pos = (uMousePos - 0.5) * 0.0000;uv -= pos;fragColor = getSourceOutput(uv); 200}`],compiledVertexShaders:[`#version 300 es 201precision highp float;in vec3 aVertexPosition; 202in vec2 aTextureCoord;uniform mat4 uMVMatrix; 203uniform mat4 uPMatrix; 204uniform vec2 uMousePos;out vec2 vTextureCoord; 205out vec3 vVertexPosition;void main() { 206float angleX = uMousePos.y * 0.5 - 0.25; 207float angleY = (1.-uMousePos.x) * 0.5 - 0.25;mat4 rotateX = mat4(1.0, 0.0, 0.0, 0.0, 2080.0, cos(angleX), -sin(angleX), 0.0, 2090.0, sin(angleX), cos(angleX), 0.0, 2100.0, 0.0, 0.0, 1.0); 211mat4 rotateY = mat4(cos(angleY), 0.0, sin(angleY), 0.0, 2120.0, 1.0, 0.0, 0.0, 213-sin(angleY), 0.0, cos(angleY), 0.0, 2140.0, 0.0, 0.0, 1.0);mat4 rotationMatrix = rotateX * rotateY;
215gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); 216vVertexPosition = (rotationMatrix * vec4(aVertexPosition, 1.0)).xyz; 217vTextureCoord = (vec4(aTextureCoord, 0.0, 1.0)).xy; 218}`],data:{uniforms:{artboardResolution:{name:"uArtboardResolution",type:"2f",value:{type:"Vec2",_x:1440,_y:900}},aspectRatio:{name:"uAspectRatio",type:"1f",value:1.6}},compositeShader:{fragmentShader:`#version 300 es 219precision highp float; 220in vec2 vTextureCoord; 221in vec3 vVertexPosition;uniform sampler2D uBgTexture; 222uniform sampler2D uTexture;vec3 blend (int blendMode, vec3 src, vec3 dst) { 223return 1. - (1. - src) * (1. - dst); 224}const float STEPS = 24.0; 225const float PI = 3.1415926;out vec4 fragColor;vec4 getNormalOutput(vec4 color, vec4 background) { 226vec3 unpremultColor = color.rgb / max(color.a, 0.0001); 227vec3 blendedColor = blend(4, unpremultColor, background.rgb); 228color = vec4(blendedColor, 1.0) * (color.a * 1.0000); 229color = color + background * (1.0 - color.a); 230return color; 231return mix(background, color + background * (1.0 - color.a), 1.0000); 232}vec4 getOutputByMode(vec4 color, vec4 background) { 233return getNormalOutput(color, background); 234}void main() { 235vec2 uv = vTextureCoord; 236vec2 pos = vec2(0);uv -= pos;vec4 background = vec4(0);background = texture(uBgTexture, vTextureCoord); 237vec4 color = texture(uTexture, uv);vec4 col = getOutputByMode(color, background);fragColor = col; 238}`,vertexShader:`#version 300 es 239precision highp float;in vec3 aVertexPosition; 240in vec2 aTextureCoord;uniform mat4 uMVMatrix; 241uniform mat4 uPMatrix; 242uniform mat4 uTextureMatrix; 243uniform vec2 uMousePos;out vec2 vTextureCoord; 244out vec3 vVertexPosition;void main() { 245float angleX = uMousePos.y * 0.5 - 0.25; 246float angleY = (1.-uMousePos.x) * 0.5 - 0.25;mat4 rotateX = mat4(1.0, 0.0, 0.0, 0.0, 2470.0, cos(angleX), -sin(angleX), 0.0, 2480.0, sin(angleX), cos(angleX), 0.0, 2490.0, 0.0, 0.0, 1.0); 250mat4 rotateY = mat4(cos(angleY), 0.0, sin(angleY), 0.0, 2510.0, 1.0, 0.0, 0.0, 252-sin(angleY), 0.0, cos(angleY), 0.0, 2530.0, 0.0, 0.0, 1.0);mat4 rotationMatrix = rotateX * rotateY;
254gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); 255vVertexPosition = (rotationMatrix * vec4(aVertexPosition, 1.0)).xyz; 256vTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy; 257}`},compositeUniforms:{resolution:{name:"uResolution",type:"2f",value:{type:"Vec2",_x:1080,_y:1080}},opacity:{name:"uOpacity",type:"1f",value:1},mousePos:{name:"uMousePos",type:"2f",value:{type:"Vec2",_x:.5,_y:.5}}}},id:"shape"},{breakpoints:[],visible:!0,aspectRatio:1,userDownsample:1,layerType:"effect",type:"noiseFill",usesPingPong:!1,speed:.18,trackMouse:0,trackAxes:"xy",mouseMomentum:0,texture:!1,parentLayer:"ad8e81b7-d919-4c18-98bf-ee2d7108820c",animating:!0,isMask:0,compiledFragmentShaders:[`#version 300 es 258precision highp float; 259in vec2 vTextureCoord; 260in vec3 vVertexPosition;uniform sampler2D uTexture; 261uniform float uTime; 262uniform vec2 uMousePos; 263uniform vec2 uResolution;vec4 permute(vec4 t) { 264return t * (t * 34.0 + 133.0); 265}vec3 grad(float hash) { 266vec3 cube = mod(floor(hash / vec3(1.0, 2.0, 4.0)), 2.0) * 2.0 - 1.0; 267vec3 cuboct = cube;float index0 = step(0.0, 1.0 - floor(hash / 16.0)); 268float index1 = step(0.0, floor(hash / 16.0) - 1.0);cuboct.x *= 1.0 - index0; 269cuboct.y *= 1.0 - index1; 270cuboct.z *= 1.0 - (1.0 - index0 - index1);float type = mod(floor(hash / 8.0), 2.0); 271vec3 rhomb = (1.0 - type) * cube + type * (cuboct + cross(cube, cuboct));vec3 grad = cuboct * 1.22474487139 + rhomb;grad *= (1.0 - 0.042942436724648037 * type) * 3.5946317686139184;return grad; 272} 273vec4 bccNoiseDerivativesPart(vec3 X) { 274vec3 b = floor(X); 275vec4 i4 = vec4(X - b, 2.5); 276vec3 v1 = b + floor(dot(i4, vec4(.25))); 277vec3 v2 = b + vec3(1, 0, 0) + vec3(-1, 1, 1) * floor(dot(i4, vec4(-.25, .25, .25, .35))); 278vec3 v3 = b + vec3(0, 1, 0) + vec3(1, -1, 1) * floor(dot(i4, vec4(.25, -.25, .25, .35))); 279vec3 v4 = b + vec3(0, 0, 1) + vec3(1, 1, -1) * floor(dot(i4, vec4(.25, .25, -.25, .35))); 280vec4 hashes = permute(mod(vec4(v1.x, v2.x, v3.x, v4.x), 289.0)); 281hashes = permute(mod(hashes + vec4(v1.y, v2.y, v3.y, v4.y), 289.0)); 282hashes = mod(permute(mod(hashes + vec4(v1.z, v2.z, v3.z, v4.z), 289.0)), 48.0); 283vec3 d1 = X - v1; vec3 d2 = X - v2; vec3 d3 = X - v3; vec3 d4 = X - v4; 284vec4 a = max(0.75 - vec4(dot(d1, d1), dot(d2, d2), dot(d3, d3), dot(d4, d4)), 0.0); 285vec4 aa = a * a; vec4 aaaa = aa * aa; 286vec3 g1 = grad(hashes.x); vec3 g2 = grad(hashes.y); 287vec3 g3 = grad(hashes.z); vec3 g4 = grad(hashes.w); 288vec4 extrapolations = vec4(dot(d1, g1), dot(d2, g2), dot(d3, g3), dot(d4, g4)); 289vec3 derivative = -8.0 * mat4x3(d1, d2, d3, d4) * (aa * a * extrapolations) 290+ mat4x3(g1, g2, g3, g4) * aaaa; 291return vec4(derivative, dot(aaaa, extrapolations)); 292} 293vec4 bccNoiseDerivatives_XYBeforeZ(vec3 X) { 294mat3 orthonormalMap = mat3( 2950.788675134594813, -0.211324865405187, -0.577350269189626, 296-0.211324865405187, 0.788675134594813, -0.577350269189626, 2970.577350269189626, 0.577350269189626, 0.577350269189626); 298X = orthonormalMap * X; 299vec4 result = bccNoiseDerivativesPart(X) + bccNoiseDerivativesPart(X + 144.5); 300return vec4(result.xyz * orthonormalMap, result.w); 301} 302uvec2 pcg2d(uvec2 v) { 303v = v * 1664525u + 1013904223u; 304v.x += v.y * v.y * 1664525u + 1013904223u; 305v.y += v.x * v.x * 1664525u + 1013904223u; 306v ^= v >> 16; 307v.x += v.y * v.y * 1664525u + 1013904223u; 308v.y += v.x * v.x * 1664525u + 1013904223u; 309return v; 310}float randFibo(vec2 p) { 311uvec2 v = floatBitsToUint(p); 312v = pcg2d(v); 313uint r = v.x ^ v.y; 314return float(r) / float(0xffffffffu); 315}out vec4 fragColor;const float PI = 3.14159265359; 316const float TAU = 6.28318530718;vec3 anchoredPal(float t, vec3 col1, vec3 col2) { 317vec3 mid = 0.5 * (col1 + col2); 318vec3 axisAmp = 0.5 * (col2 - col1);vec3 base = mid + axisAmp * cos(TAU * t);vec3 axis = length(axisAmp) > 0.0001 ? normalize(axisAmp) : vec3(1.0, 0.0, 0.0); 319vec3 ref = abs(axis.x) > 0.9 ? vec3(0.0, 1.0, 0.0) : vec3(1.0, 0.0, 0.0); 320vec3 tangent1 = normalize(cross(axis, ref)); 321vec3 tangent2 = normalize(cross(axis, tangent1));float richness = 0.24 * length(axisAmp) + 0.02; 322vec3 ripple = 323tangent1 * sin(TAU * (t * 2.0 + 0.123)) + 324tangent2 * sin(TAU * (t * 3.0 + 0.437));vec3 col = base + (richness * 0.0000) * ripple; 325col = clamp(col, -10.0, 10.0); 326col = 1./(1. + exp(-col * 4. + 0.25) * 7.5); 327return clamp(col, 0.0, 1.0); 328}mat2 rot(float a) { 329return mat2(cos(a),-sin(a),sin(a),cos(a)); 330}float get2sNoise(vec2 uv) { 331float turb = 0.6100 * 2.; 332vec2 drift = vec2(0, -0.4600 * uTime * 0.008) * mix(1., 14., 1.9400); 333vec4 noise = bccNoiseDerivatives_XYBeforeZ(vec3(uv * vec2(0.9600, 1. - 0.9600) * 0.7 - drift, 0.0000 + uTime*0.02)); 334return mix(0.5, noise.w * 0.5 + 0.5, turb); 335}float getNoise(vec2 uv) { 336return get2sNoise(uv); 337}void main() { 338vec2 uv = vTextureCoord; 339float aspectRatio = uResolution.x/uResolution.y; 340vec2 aspect = vec2(aspectRatio, 1.0);vec2 mPos = vec2(0.5, 0.5) + mix(vec2(0), (uMousePos-0.5), 0.0000);vec2 pos = mix(vec2(0.5, 0.5), mPos, 0.0000); 341float scale = mix(1., 14., 1.9400); 342vec2 drift = vec2(0, -0.4600 * uTime * 0.0125); 343mat2 rotation = rot(-0.2500 * 2. * PI);vec2 st = (uv - pos) * aspect * scale * rotation; 344float noise = getNoise(st);noise = getNoise(st);noise = smoothstep(noise - 0.5, noise + 0.5, 0.5000);vec4 color = texture(uTexture, uv); 345vec4 bg = color; 346float shift = 0.3500 + (0.0000 * uTime * 0.01); 347vec3 noiseColor = anchoredPal(noise + shift, vec3(1, 1, 1), vec3(0, 0, 0)); 348color.rgb = noiseColor.rgb;
348float dither = (randFibo(gl_FragCoord.xy) - 0.5) / 255.0; 349color.rgb += dither * 0.5;color.rgb = mix(bg.rgb, color.rgb, 1.0000); 350color.a = max(bg.a, 1.0000); 351color = clamp(color, 0.0, 1.0); 352fragColor = color;}`],compiledVertexShaders:[`#version 300 es 353precision mediump float;in vec3 aVertexPosition; 354in vec2 aTextureCoord;uniform mat4 uMVMatrix; 355uniform mat4 uPMatrix; 356uniform mat4 uTextureMatrix;out vec2 vTextureCoord; 357out vec3 vVertexPosition;void main() { 358gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); 359vTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy; 360}`],data:{depth:!1,uniforms:{},isBackground:!1},id:"noise_fill"},{breakpoints:[],visible:!0,aspectRatio:1,userDownsample:1,layerType:"effect",type:"polar",usesPingPong:!1,speed:.25,trackMouse:0,trackAxes:"xy",mouseMomentum:0,texture:!1,parentLayer:"1de6a609-0df5-44d8-aaa5-33b5cfb7c48b",animating:!1,isMask:0,compiledFragmentShaders:[`#version 300 es 361precision mediump float;in vec3 vVertexPosition; 362in vec2 vTextureCoord;uniform sampler2D uTexture; 363uniform float uTime;uniform vec2 uMousePos; 364uniform vec2 uResolution;out vec4 fragColor;const float PI = 3.1415926;vec2 polar(vec2 uv, vec2 pos) { 365uv -= pos; 366float angle = atan(uv.y, uv.x); 367float radius = length(uv);float xCoord = mod((angle + 0.0000 * 2.0 * PI) + (uTime * 0.05) + PI, 2.0 * PI) / (2.0 * PI); 368float yCoordRaw = radius * 0.2900; 369float gamma = pow(2.0, (0.9500 - 0.5) * 4.0); 370float yCoord = pow(fract(yCoordRaw), gamma);return fract(vec2(yCoord, xCoord)); 371}void main() { 372vec2 uv = vTextureCoord; 373vec2 aspectRatio = vec2(uResolution.x/uResolution.y, 1); 374vec2 pos = vec2(0.5121951219512195, 1.1620209059233448) + mix(vec2(0), (uMousePos-0.5), 0.0000); 375vec2 polarCoord = polar(uv * aspectRatio, pos * aspectRatio); 376vec4 color1 = texture(uTexture, polarCoord); 377vec2 oppositePolar = vec2(polarCoord.x, polarCoord.y > 0.5 ? polarCoord.y - 0.5 : polarCoord.y + 0.5); 378vec4 color2 = texture(uTexture, oppositePolar); 379float seamBlend = 0.0; 380float blendWidth = 1.0000 * 0.1; 381if (polarCoord.y < blendWidth || polarCoord.y > 1.0 - blendWidth) { 382if (polarCoord.y < blendWidth) { 383seamBlend = 1.0 - (polarCoord.y / blendWidth); 384} else { 385seamBlend = (polarCoord.y - (1.0 - blendWidth)) / blendWidth; 386} 387seamBlend = smoothstep(0.0, 1.0, seamBlend); 388} 389fragColor = mix(color1, color2, seamBlend); 390}`],compiledVertexShaders:[`#version 300 es 391precision mediump float;in vec3 aVertexPosition; 392in vec2 aTextureCoord;uniform mat4 uMVMatrix; 393uniform mat4 uPMatrix; 394uniform mat4 uTextureMatrix;out vec2 vTextureCoord; 395out vec3 vVertexPosition;void main() {
396gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); 397vTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy; 398}`],data:{depth:!1,uniforms:{},isBackground:!1},id:"polar"},{breakpoints:[],visible:!0,aspectRatio:1,userDownsample:1,layerType:"effect",type:"vignette",usesPingPong:!1,trackMouse:0,trackAxes:"xy",mouseMomentum:0,texture:!1,parentLayer:"e255032e-b98e-4672-9093-58bccded779f",animating:!1,isMask:0,compiledFragmentShaders:[`#version 300 es 399precision highp float; 400in vec3 vVertexPosition; 401in vec2 vTextureCoord; 402uniform sampler2D uTexture; 403uniform vec2 uResolution;out vec4 fragColor; 404mat2 rot(float a) { 405return mat2(cos(a),-sin(a),sin(a),cos(a)); 406} 407void main() { 408vec2 uv = vTextureCoord; 409vec4 bg = texture(uTexture, uv); 410float luma = dot(bg.rgb, vec3(0.299, 0.587, 0.114)); 411float displacement = (luma - 0.5) * 0.0000 * 0.5; 412vec2 aspectRatio = vec2(uResolution.x/uResolution.y, 1.0); 413vec2 skew = vec2(0.5000, 1.0 - 0.5000); 414float halfRadius = 0.5300 * 0.5; 415float innerEdge = halfRadius - 1.0000 * halfRadius * 0.5; 416float outerEdge = halfRadius + 1.0000 * halfRadius * 0.5; 417vec2 pos = vec2(0.514808362369338, 0.8247386759581882); 418const float TWO_PI = 6.28318530718; 419vec2 scaledUV = uv * aspectRatio * rot(0.0000 * TWO_PI) * skew; 420vec2 scaledPos = pos * aspectRatio * rot(0.0000 * TWO_PI) * skew; 421float radius = distance(scaledUV, scaledPos); 422float falloff = smoothstep(innerEdge + displacement, outerEdge + displacement, radius); 423vec3 finalColor;finalColor = mix(bg.rgb, mix(bg.rgb, vec3(0, 0, 0), 1.0000), falloff);float alpha = max(bg.a, falloff * 1.0000); 424vec4 color = mix(bg * (1.-falloff), vec4(finalColor * alpha, alpha), 1.0000); 425fragColor = color;}`],compiledVertexShaders:[`#version 300 es 426precision mediump float;in vec3 aVertexPosition; 427in vec2 aTextureCoord;uniform mat4 uMVMatrix; 428uniform mat4 uPMatrix; 429uniform mat4 uTextureMatrix;out vec2 vTextureCoord; 430out vec3 vVertexPosition;void main() {
431gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); 432vTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy; 433}`],data:{depth:!1,uniforms:{},isBackground:!1},id:"vignette"}],options:{name:"Light rays (Remix)",fps:60,dpi:1.5,scale:1,includeLogo:!1,isProduction:!1},version:"2.0.4",id:"z86LD0gRJAFFaN2nCKGs"};async function v(){return window.UnicornStudio?window.UnicornStudio:new Promise((t,o)=>{const r=document.createElement("script");r.src="/js/unicornStudio.umd.js",r.async=!0,r.onload=()=>{const l=window.UnicornStudio;l?t(l):o(new Error("UnicornStudio not found after script load"))},r.onerror=()=>{o(new Error("Failed to load UnicornStudio library"))},document.head.appendChild(r)})}function d(t){const o=new Blob([JSON.stringify(t)],{type:"application/json"});return URL.createObjectURL(o)}async function f(){const t=i.value;if(t)try{if(a=await v(),!a)return;n&&URL.revokeObjectURL(n),n=d(u);const o={element:t,filePath:n,fps:60,scale:1,dpi:Math.min(window.devicePixelRatio||1,2),lazyLoad:!1,interactivity:!0};e=await a.addScene(o)}catch(o){console.error("Failed to initialize Light Rays scene:",o)}}function c(){e&&(e.paused=document.hidden)}function s(){e!=null&&e.resize&&e.resize()}return x(()=>{f(),document.addEventListener("visibilitychange",c),window.addEventListener("resize",s)}),p(()=>{document.removeEventListener("visibilitychange",c),window.removeEventListener("resize",s),e!=null&&e.destroy&&e.destroy(),e=null,n&&(URL.revokeObjectURL(n),n=null)}),(t,o)=>(g(),h("div",C,[b("div",{ref_key:"containerRef",ref:i,class:"unicorn-container w-full h-full"},null,512)]))}}),R=y(M,[["__scopeId","data-v-5cc9671c"]]);export{R as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.