{"history":[{"breakpoints":[],"visible":true,"aspectRatio":1,"userDownsample":1,"layerType":"effect","type":"gradient","usesPingPong":false,"texture":false,"animating":false,"mouseMomentum":0,"mouseSpring":0,"isMask":0,"compiledFragmentShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;in vec2 vTextureCoord;uniform float uTime;\nuniform vec2 uMousePos;uvec2 pcg2d(uvec2 v) {\nv = v * 1664525u + 1013904223u;\nv.x += v.y * v.y * 1664525u + 1013904223u;\nv.y += v.x * v.x * 1664525u + 1013904223u;\nv ^= v >> 16;\nv.x += v.y * v.y * 1664525u + 1013904223u;\nv.y += v.x * v.x * 1664525u + 1013904223u;\nreturn v;\n}float randFibo(vec2 p) {\nuvec2 v = floatBitsToUint(p);\nv = pcg2d(v);\nuint r = v.x ^ v.y;\nreturn float(r) / float(0xffffffffu);\n}float deband() {\nreturn (randFibo(gl_FragCoord.xy) - 0.5) / 255.0;\n}vec3 getColor(int index) {\nswitch(index) {\ncase 0: return vec3(0.00392156862745098, 0.18823529411764706, 0.09019607843137255);\ncase 1: return vec3(0.0196078431372549, 0.3411764705882353, 0.1803921568627451);\ncase 2: return vec3(0.043137254901960784, 0.5215686274509804, 0.2901960784313726);\ncase 3: return vec3(0.06274509803921569, 0.7137254901960784, 0.403921568627451);\ncase 4: return vec3(0.0784313725490196, 0.9098039215686274, 0.5215686274509804);\ncase 5: return vec3(0.807843137254902, 1, 0.8666666666666667);\ndefault: return vec3(0.0);\n}\n}float getStop(int index) {\nswitch(index) {\ncase 0: return 0.0000;\ncase 1: return 0.2000;\ncase 2: return 0.4000;\ncase 3: return 0.6000;\ncase 4: return 0.8000;\ncase 5: return 1.0000;\ndefault: return 0.0;\n}\n}const float PI = 3.14159265359;vec2 rotate(vec2 coord, float angle) {\nfloat s = sin(angle);\nfloat c = cos(angle);\nreturn vec2(\ncoord.x * c - coord.y * s,\ncoord.x * s + coord.y * c\n);\n}vec3 linear_from_srgb(vec3 rgb) {\nreturn pow(max(rgb, vec3(0.0)), vec3(2.2));\n}vec3 srgb_from_linear(vec3 lin) {\nreturn pow(max(lin, vec3(0.0)), vec3(1.0/2.2));\n}vec3 safeCbrt(vec3 v) {\nreturn sign(v) * pow(abs(v), vec3(1.0/3.0));\n}vec3 oklab_mix(vec3 lin1, vec3 lin2, float a) {\nconst mat3 kCONEtoLMS = mat3(\n0.4121656120, 0.2118591070, 0.0883097947,\n0.5362752080, 0.6807189584, 0.2818474174,\n0.0514575653, 0.1074065790, 0.6302613616);\nconst mat3 kLMStoCONE = mat3(\n4.0767245293, -1.2681437731, -0.0041119885,\n-3.3072168827, 2.6093323231, -0.7034763098,\n0.2307590544, -0.3411344290, 1.7068625689);\nvec3 lms1 = safeCbrt( kCONEtoLMS*lin1 );\nvec3 lms2 = safeCbrt( kCONEtoLMS*lin2 );\nvec3 lms = mix( lms1, lms2, a );\nlms *= 1.0 + 0.025 * a * (1.0-a);\nreturn kLMStoCONE * (lms * lms * lms);\n}vec3 getGradientColor(float position) {\nposition = clamp(position, 0.0, 1.0);\nif (6 <= 1) return getColor(0);int count = 6 - 1;for (int i = 0; i < 15; i++) {\nif (i >= count) break;\nfloat stopA = getStop(i);\nfloat stopB = getStop(i + 1);\nif (position <= stopB || i == count - 1) {\nfloat denom = max(stopB - stopA, 0.00001);\nfloat t = clamp((position - stopA) / denom, 0.0, 1.0);\nvec3 linA = linear_from_srgb(getColor(i));\nvec3 linB = linear_from_srgb(getColor(i + 1));\nvec3 mixed = oklab_mix(linA, linB, t);\nreturn srgb_from_linear(mixed);\n}\n}\nreturn getColor(min(count, 15));\n}out vec4 fragColor;vec3 applyColorToPosition(float position) {\nvec3 color = vec3(0);\nposition -= (uTime * 0.01 + 0.0000);\nfloat cycle = floor(position);\nbool reverse = 1.0000 > 0.5 && int(cycle) % 2 == 0;\nfloat animatedPos = reverse ? 1.0 - fract(position) : fract(position);color = getGradientColor(animatedPos);\nfloat dither = deband();\ncolor += dither;\nreturn color;\n}vec3 linearGrad(vec2 uv) {\nfloat position = (uv.x+0.5);\nreturn applyColorToPosition(position);\n}vec3 getGradient(vec2 uv) {\nreturn linearGrad(uv);\n}vec3 getBgColor(vec2 uv) {return getGradient(uv);return vec3(0.00392156862745098, 0.18823529411764706, 0.09019607843137255);\n}void main() {vec2 uv = vTextureCoord;\nvec2 pos = vec2(0.5, 0.5) + mix(vec2(0), (uMousePos-0.5), 0.0000);\nuv -= pos;\nuv /= max(0.5000*2., 1e-5);\nuv = rotate(uv, (0.0000 - 0.5) * 2. * PI);\nvec4 color = vec4(getBgColor(uv), 1.0) * 1.0000;\nfragColor = color;\n}"],"compiledVertexShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision mediump float;in vec3 aVertexPosition;\nin vec2 aTextureCoord;uniform mat4 uMVMatrix;\nuniform mat4 uPMatrix;out vec2 vTextureCoord;\nout vec3 vVertexPosition;void main() {\ngl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\nvTextureCoord = aTextureCoord;\n}"],"speed":0.25,"trackMouse":0,"trackAxes":"xy","data":{"depth":false,"uniforms":{},"isBackground":true},"id":"ef06d1bb-4272-476a-94b4-4da9f9cc6cb4","publicId":"gradient"},{"breakpoints":[],"visible":true,"aspectRatio":1,"userDownsample":1,"layerType":"effect","type":"mouseDraw","usesPingPong":true,"texture":false,"animating":false,"mouseMomentum":0,"mouseSpring":0,"isMask":0,"compiledFragmentShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;\nprecision highp int;in vec2 vTextureCoord;\nin vec3 vVertexPosition;uniform sampler2D uTexture;\nuniform sampler2D uPingPongTexture;uniform sampler2D uMaskTexture;\nuniform int uIsMask;\nuniform vec2 uMousePos;\nuniform float uParentTrackMouse;vec3 blend (int blendMode, vec3 src, vec3 dst) {\nreturn src + dst;\n}uvec2 pcg2d(uvec2 v) {\nv = v * 1664525u + 1013904223u;\nv.x += v.y * v.y * 1664525u + 1013904223u;\nv.y += v.x * v.x * 1664525u + 1013904223u;\nv ^= v >> 16;\nv.x += v.y * v.y * 1664525u + 1013904223u;\nv.y += v.x * v.x * 1664525u + 1013904223u;\nreturn v;\n}float randFibo(vec2 p) {\nuvec2 v = floatBitsToUint(p);\nv = pcg2d(v);\nuint r = v.x ^ v.y;\nreturn float(r) / float(0xffffffffu);\n}float deband() {\nreturn (randFibo(gl_FragCoord.xy) - 0.5) / 255.0;\n}const float PI = 3.14159265359;out vec4 fragColor;vec3 rgb2hsv(vec3 c) {\nvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\nvec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\nvec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));float d = q.x - min(q.w, q.y);\nfloat e = 1.0e-10;\nreturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n}vec2 angleToDir(float angle) {\nfloat rad = angle * 2.0 * PI;\nreturn vec2(cos(rad), sin(rad));\n}void main() {\nvec2 uv = vTextureCoord;\nvec2 pingpongUv = uv;vec3 mouseRgb = texture(uPingPongTexture, pingpongUv).rgb;\nvec3 mouseTrail = rgb2hsv(mouseRgb);\nfloat angle = mouseTrail.x;\nfloat strength = mouseTrail.z * 0.5900 * 5.0;vec2 direction = angleToDir(angle);vec4 bg = texture(uTexture, uv - direction * 0.1 * strength * 0.0000);\nvec4 color = vec4(0,0,0,1);float dither = deband();\ncolor.rgb = vec3(strength * mix(mouseRgb, vec3(1, 0.32941176470588235, 0.34509803921568627), 0.5000)) + dither;\nvec3 blendedRgb = blend(1, color.rgb, bg.rgb);\ncolor = vec4(mix(bg.rgb, blendedRgb, mouseTrail.z), 1.0);\nif(uIsMask == 1) {\nvec2 maskPos = mix(vec2(0), (uMousePos - 0.5), uParentTrackMouse);\nvec4 maskColor = texture(uMaskTexture, vTextureCoord - maskPos);\ncolor = color * (maskColor.a * maskColor.a);\n}\nfragColor = color;}","#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;in vec3 vVertexPosition;\nin vec2 vTextureCoord;uniform sampler2D uPingPongTexture;\nuniform vec2 uPreviousMousePos;\nuniform float uTime;uniform vec2 uMousePos;\nuniform vec2 uResolution;const float PI = 3.14159265359;\nconst float TAU = 6.28318530718;out vec4 fragColor;vec3 toLinear(vec3 c) { return c * c; }\nvec3 toGamma(vec3 c) { return sqrt(c); }vec3 hsv2rgb(vec3 c) {\nvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\nvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\nreturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}vec3 rgb2hsv(vec3 c) {\nvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\nvec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\nvec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));float d = q.x - min(q.w, q.y);\nfloat e = 1.0e-10;\nreturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n}mat2 rot(float a) {\nfloat s = sin(a), c = cos(a);\nreturn mat2(c, -s, s, c);\n}vec2 angleToDir(float angle) {\nfloat rad = angle * 2.0 * PI;\nreturn vec2(cos(rad), sin(rad));\n}vec2 liquify(vec2 st, vec2 dir, float aspectRatio) {\nst.x *= aspectRatio;\nfloat amplitude = 0.004;\nfloat freq = 6.;\nfor (float i = 1.0; i <= 3.0; i++) {\nst = st * rot(i / 3.0 * PI * 2.0);\nst += vec2(\namplitude * cos(i * freq * st.y + uTime * 0.02 * dir.x),\namplitude * sin(i * freq * st.x + uTime * 0.02 * dir.y)\n);\n}\nst.x /= aspectRatio;\nreturn st;\n}float trailIntensity(vec2 segStart, vec2 correctedUv, vec2 scaledDir, float segLen, float aspectRatio, float radius, float bloomExp) {\nvec2 posToUv = (correctedUv - segStart) * vec2(aspectRatio, 1.0);\nfloat projection = clamp(dot(posToUv, scaledDir), 0.0, segLen);\nvec2 closestPoint = segStart * vec2(aspectRatio, 1.0) + scaledDir * projection;float distToLine = length(correctedUv - closestPoint);\nfloat s = (1.0 + radius) / (distToLine + radius) * radius;return s;\n}void main() {\nfloat aspectRatio = uResolution.x / uResolution.y;\nvec2 uv = vTextureCoord;\nvec2 correctedUv = uv * vec2(aspectRatio, 1.0);vec3 lastFrameColor = texture(uPingPongTexture, uv).rgb;vec3 hsv = rgb2hsv(lastFrameColor);\nfloat prevStrength = hsv.z * hsv.z;\nvec2 prevDir = angleToDir(hsv.x);\nvec2 mouseVec = uMousePos - uPreviousMousePos;\nfloat mouseLen = length(mouseVec);\nvec2 dir = mouseVec * vec2(aspectRatio, 1.0);\nfloat dist = length(dir);float blurAmount = 0.03 * prevStrength;\nuv = uv - prevDir * blurAmount;if(prevStrength > 0.0) {\nuv = mix(uv, liquify(uv - prevDir * 0.005, prevDir, aspectRatio), (1.0 - prevStrength) * 0.7500);\n}lastFrameColor = toLinear(texture(uPingPongTexture, uv).rgb);float clampedDist = 0.0;\nvec3 trailColor = vec3(0.0);if (dist > 0.001) {\nvec2 normDir = mouseVec / mouseLen;\nvec2 scaledDir = normDir * vec2(aspectRatio, 1.0);float angle = atan(dir.y, dir.x);\nif (angle < 0.0) angle += TAU;\nvec3 pointColor = toLinear(hsv2rgb(vec3(angle / TAU, 1.0, 1.0)));\nfloat bloomExp = abs(10.0 * (1.0 - 0.5000 + 0.1));int numPoints = int(max(6.0, dist * 24.0));\nfloat speedFactor = clamp(dist, 0.7, 1.3);\nfloat radius = mix(0.1, 0.7, 1.0000 * speedFactor);float segLenAspect = mouseLen * aspectRatio / float(numPoints);\nfloat totalIntensity = 0.0;\nint iter = min(numPoints, 16);totalIntensity += trailIntensity(uPreviousMousePos, correctedUv, scaledDir, 0.0, aspectRatio, radius, bloomExp);for (int i = 1; i <= iter; i++) {\nfloat t = float(i - 1) / float(numPoints);\nvec2 segStart = mix(uPreviousMousePos, uMousePos, t);\ntotalIntensity += trailIntensity(segStart, correctedUv, scaledDir, segLenAspect, aspectRatio, radius, bloomExp);\n}trailColor = pointColor * totalIntensity / float(min(numPoints, 50) + 1);\ntrailColor = pow(trailColor, vec3(bloomExp));\nclampedDist = clamp(length(trailColor) * dist, 0.0, 1.0);\n}float blurRadius = 0.005;vec3 blurredLastFrame = lastFrameColor * 0.2;\nblurredLastFrame += toLinear(texture(uPingPongTexture, uv + vec2(blurRadius, 0.0)).rgb) * 0.2;\nblurredLastFrame += toLinear(texture(uPingPongTexture, uv + vec2(-blurRadius, 0.0)).rgb) * 0.2;\nblurredLastFrame += toLinear(texture(uPingPongTexture, uv + vec2(0.0, blurRadius)).rgb) * 0.2;\nblurredLastFrame += toLinear(texture(uPingPongTexture, uv + vec2(0.0, -blurRadius)).rgb) * 0.2;blurredLastFrame *= pow(abs(0.5000), 0.2);\nvec3 draw = mix(blurredLastFrame, trailColor, clampedDist);\ndraw = toGamma(draw);\ndraw = max(draw - 0.01, vec3(0.0));fragColor = vec4(draw, 1.0);\n}"],"compiledVertexShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision mediump float;in vec3 aVertexPosition;\nin vec2 aTextureCoord;uniform mat4 uMVMatrix;\nuniform mat4 uPMatrix;\nuniform mat4 uTextureMatrix;out vec2 vTextureCoord;\nout vec3 vVertexPosition;void main() {\ngl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\nvTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy;\n}","#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision mediump float;in vec3 aVertexPosition;\nin vec2 aTextureCoord;uniform mat4 uMVMatrix;\nuniform mat4 uPMatrix;out vec2 vTextureCoord;\nout vec3 vVertexPosition;void main() {\ngl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\nvTextureCoord = aTextureCoord;\n}"],"trackMouse":0,"trackAxes":"xy","data":{"depth":false,"uniforms":{},"isBackground":false},"id":"70ea7421-a181-4133-a5af-15e7df42bdc4","publicId":"light_trail"},{"breakpoints":[],"visible":true,"aspectRatio":1,"userDownsample":1,"layerType":"effect","type":"flowField","usesPingPong":false,"texture":false,"animating":true,"mouseMomentum":0.1,"mouseSpring":0.11,"isMask":0,"compiledFragmentShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;in vec3 vVertexPosition;\nin vec2 vTextureCoord;uniform sampler2D uTexture;\nuniform float uTime;uniform vec2 uMousePos;\nuniform vec2 uResolution;float ease (int easingFunc, float t) {\nreturn t;\n}vec3 hash33(vec3 p3) {\np3 = fract(p3 * vec3(0.1031, 0.11369, 0.13787));\np3 += dot(p3, p3.yxz + 19.19);\nreturn -1.0 + 2.0 * fract(vec3(\n(p3.x + p3.y) * p3.z,\n(p3.x + p3.z) * p3.y,\n(p3.y + p3.z) * p3.x\n));\n}float perlin_noise(vec3 p) {\nvec3 pi = floor(p);\nvec3 pf = p - pi;vec3 w = pf * pf * (3.0 - 2.0 * pf);float n000 = dot(pf - vec3(0.0, 0.0, 0.0), hash33(pi + vec3(0.0, 0.0, 0.0)));\nfloat n100 = dot(pf - vec3(1.0, 0.0, 0.0), hash33(pi + vec3(1.0, 0.0, 0.0)));\nfloat n010 = dot(pf - vec3(0.0, 1.0, 0.0), hash33(pi + vec3(0.0, 1.0, 0.0)));\nfloat n110 = dot(pf - vec3(1.0, 1.0, 0.0), hash33(pi + vec3(1.0, 1.0, 0.0)));\nfloat n001 = dot(pf - vec3(0.0, 0.0, 1.0), hash33(pi + vec3(0.0, 0.0, 1.0)));\nfloat n101 = dot(pf - vec3(1.0, 0.0, 1.0), hash33(pi + vec3(1.0, 0.0, 1.0)));\nfloat n011 = dot(pf - vec3(0.0, 1.0, 1.0), hash33(pi + vec3(0.0, 1.0, 1.0)));\nfloat n111 = dot(pf - vec3(1.0, 1.0, 1.0), hash33(pi + vec3(1.0, 1.0, 1.0)));float nx00 = mix(n000, n100, w.x);\nfloat nx01 = mix(n001, n101, w.x);\nfloat nx10 = mix(n010, n110, w.x);\nfloat nx11 = mix(n011, n111, w.x);float nxy0 = mix(nx00, nx10, w.y);\nfloat nxy1 = mix(nx01, nx11, w.y);float nxyz = mix(nxy0, nxy1, w.z);return nxyz;\n}const int MAX_ITERATIONS = 8;\nconst float PI = 3.14159265359;vec2 distortUV(vec2 uv) {\nvec2 st = uv;\nfloat aspectRatio = uResolution.x / max(uResolution.y, 0.001);\nvec2 aspectVec = vec2(aspectRatio, 1.);vec2 mPos = vec2(0.5017421602787456, 0.49163763066202093) + mix(vec2(0), (uMousePos-0.5), 0.1500);\nfloat mixRadiusStep = step(1.0, 1.0000);\nvec2 pos = mix(vec2(0.5017421602787456, 0.49163763066202093), mPos, mixRadiusStep);\nfloat dist = ease(0, max(0.,1. - length(st * aspectVec - mPos * aspectVec) * 4. * (1. - 1.0000)));float sprd = (1.0000 + 0.01) / ((aspectRatio + 1.) / 2.);\nfloat amt = (1.0000 * 2.0) * 0.01 * dist;\nif(amt <= 0.) {\nreturn st;\n}vec2 invPos = 1. - pos;\nfloat freq = 5. * sprd;\nfloat t = 0.4200 * 5. + uTime * 0.0166;\nfloat degrees = 360. * (0.3861 * 6.);\nfloat rad = degrees * PI / 180.;for (int i = 0; i < MAX_ITERATIONS; i++) {\nvec2 clampedSt = clamp(st, -1., 2.);\nvec2 scaled = (clampedSt - 0.5) * aspectVec + invPos;\nfloat perlin = perlin_noise(vec3((scaled - 0.5) * freq, t)) - 0.5;\nfloat ang = perlin * rad;\nst += vec2(cos(ang), sin(ang)) * amt;\n}return mix(uv, clamp(st, 0., 1.), 1.0000);\n}out vec4 fragColor;void main() {\nvec2 uv = vTextureCoord;\nuv = distortUV(uv);\nvec4 color = texture(uTexture, uv);\nfragColor = color;}"],"compiledVertexShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision mediump float;in vec3 aVertexPosition;\nin vec2 aTextureCoord;uniform mat4 uMVMatrix;\nuniform mat4 uPMatrix;\nuniform mat4 uTextureMatrix;out vec2 vTextureCoord;\nout vec3 vVertexPosition;void main() {\ngl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\nvTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy;\n}"],"speed":0.14,"trackMouse":0.15,"trackAxes":"xy","data":{"depth":false,"uniforms":{},"isBackground":false},"id":"a2d44ea0-4bfe-4c9d-bb7a-b2644f5f1a98","publicId":"flow_field"},{"breakpoints":[{"max":null,"props":{"fontSizeMode":"fixed","fontSize":80,"lineHeight":60,"letterSpacing":0,"fontWeight":"400"},"min":992,"name":"Desktop"},{"min":576,"name":"Tablet","max":991,"props":{"fontSizeMode":"relative","fontSize":0.064,"lineHeight":0.75,"letterSpacing":0,"fontWeight":"400"}},{"max":575,"props":{"fontSizeMode":"relative","fontSize":0.105,"lineHeight":0.75,"letterSpacing":0,"fontWeight":"400"},"min":0,"name":"Mobile"}],"aspectRatio":1,"userDownsample":1,"states":{"appear":[],"scroll":[],"hover":[],"mousemove":[]},"effects":[],"anchorPoint":"center","mask":0,"maskInvert":0,"maskDepth":0,"maskDepthLayer":0,"axisTilt":0.64,"layerType":"text","width":400,"widthMode":"fixed","height":60,"heightMode":"fixed","left":0.5222222222222223,"top":0.19347222222222238,"rotation":0,"fontSize":80,"lineHeight":60,"letterSpacing":0,"fontFamily":"Young Serif","fontStyle":"regular","fontWeight":"400","textAlign":"center","textContent":"Hi, I am","href":"","fill":["#ffffff"],"fontSizeMode":"fixed","noTextAsHtml":false,"fontCSS":{"family":"Young Serif","src":"https://assets.unicorn.studio/fonts/google_fonts/3qTpojO2nS2VtkB3KtkQZ2t61EcYaQ7F.ttf"},"compiledFragmentShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;\nin vec2 vTextureCoord;\nin vec3 vVertexPosition;uniform vec2 uResolution;\nuniform vec2 uMousePos;\nuniform sampler2D uBgTexture;\nuniform sampler2D uTexture;const float PI = 3.14159265359;vec2 perspectiveUV(vec2 uv) {\nfloat aspectRatio = uResolution.x/uResolution.y;\nvec2 centeredUV = uv - 0.5;\ncenteredUV.x *= aspectRatio;\nfloat strength = 1.0 + (vVertexPosition.z * 0.6400);\nvec2 perspectiveUV = centeredUV / strength;\nperspectiveUV.x /= aspectRatio;\nperspectiveUV += 0.5;\nreturn perspectiveUV;\n}out vec4 fragColor;vec4 getNormalOutput(vec4 color, vec4 background) {\nreturn mix(background, color + background * (1.0 - color.a), 1.0000);\n}vec4 getOutputByMode(vec4 color, vec4 background) {\nreturn getNormalOutput(color, background);\n}void main() {\nvec2 uv = vTextureCoord;\nvec2 pos = vec2(0);pos = mix(vec2(0), (uMousePos - 0.5), 0.0000);uv = perspectiveUV(uv) - pos;uv -= pos;vec4 background = vec4(0);background = texture(uBgTexture, vTextureCoord);\nvec4 color = texture(uTexture, uv);vec4 col = getOutputByMode(color, background);fragColor = col;\n}"],"compiledVertexShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;in vec3 aVertexPosition;\nin vec2 aTextureCoord;uniform mat4 uMVMatrix;\nuniform mat4 uPMatrix;\nuniform mat4 uTextureMatrix;\nuniform vec2 uMousePos;out vec2 vTextureCoord;\nout vec3 vVertexPosition;void main() {\nfloat angleX = uMousePos.y * 0.5 - 0.25;\nfloat angleY = (1.-uMousePos.x) * 0.5 - 0.25;mat4 rotateX = mat4(1.0, 0.0, 0.0, 0.0,\n0.0, cos(angleX), -sin(angleX), 0.0,\n0.0, sin(angleX), cos(angleX), 0.0,\n0.0, 0.0, 0.0, 1.0);\nmat4 rotateY = mat4(cos(angleY), 0.0, sin(angleY), 0.0,\n0.0, 1.0, 0.0, 0.0,\n-sin(angleY), 0.0, cos(angleY), 0.0,\n0.0, 0.0, 0.0, 1.0);mat4 rotationMatrix = rotateX * rotateY;\ngl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\nvVertexPosition = (rotationMatrix * vec4(aVertexPosition, 1.0)).xyz;\nvTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy;\n}"],"data":{"uniforms":{},"elementOpacity":1},"id":"dcdbc86b-33c5-4336-ba56-30dd807adf12","publicId":"text","windowWidth":1440},{"breakpoints":[{"max":null,"props":{"scale":0.5,"pos":{"type":"Vec3","_x":0.49530595151907547,"_y":0.5285769979170144,"_z":0}},"min":992,"name":"Desktop"},{"name":"Tablet","min":576,"props":{"scale":0.38,"pos":{"type":"Vec3","_x":0.5013607055556097,"_y":0.47711158860647296,"_z":0}},"max":991},{"name":"Mobile","min":0,"props":{"scale":0.22,"pos":{"type":"Vec3","_x":0.507229159467943,"_y":0.425732265846214,"_z":0}},"max":575}],"visible":true,"locked":false,"aspectRatio":1,"layerName":"","userDownsample":1,"states":{"appear":[],"scroll":[],"hover":[],"mousemove":[]},"layerType":"model","isModel":true,"pos":{"type":"Vec3","_x":0.49530595151907547,"_y":0.5285769979170144,"_z":0},"modelUrl":"https://assets.unicorn.studio/models/L4xOGPSPamXfgEfLEUcMrsZmdCr1/New Sud.glb","scale":0.5,"modelRotation":{"type":"Vec3","_x":0.500383141080919,"_y":0.9999999999999998,"_z":0.5},"lightIntensity":1,"ambientLightIntensity":0.27,"fillLightIntensity":0.95,"lightColor":"#FFF1BD","ambientLightColor":"#a3da00","fillLightColor":"#a3da00","lightPosition":{"type":"Vec3","_x":0.75,"_y":0.75,"_z":0.75},"materialMetalness":0,"materialRoughness":1,"rotationTracking":0.1,"lightTracking":0.15,"trackMouse":0,"animationAxis":{"type":"Vec3","_x":0,"_y":1,"_z":0},"selectedAnimationClip":"","refractScale":0.5,"chromAbAmount":0.5,"renderNormals":1,"blendMode":"NORMAL","opacity":1,"colorMapUrl":"","colorMapScale":1,"colorMapPosition":{"type":"Vec2","_x":0.5,"_y":0.5},"colorMapIntensity":1,"normalMapUrl":"","normalMapScale":1,"normalMapPosition":{"type":"Vec2","_x":0.5,"_y":0.5},"normalMapIntensity":1,"quality":"fast","environmentMapIntensity":0.71,"environmentMapUrl":"","extrudeDepth":10,"bevelEnabled":false,"bevelThickness":1,"bevelSize":1,"bevelSegments":2,"glassIOR":2.5,"glassThickness":1,"glassRoughness":0,"glassTint":"#ce8800","glassDispersion":0,"materialMode":"glass","matcapUrl":"https://assets.unicorn.studio/media/matcaps/unicorn_matcap_default.webp","matcapIntensity":0.5,"matcapRotation":0,"contextType":"webgl","trackAxes":"xy","mouseMomentum":0,"mouseSpring":0,"animating":false,"speed":0.14,"compiledFragmentShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;in vec2 vTextureCoord;\nin vec3 vVertexPosition;uniform sampler2D uBgTexture;\nuniform sampler2D uTexture;uniform float uOpacity;\nout vec4 fragColor;void main() {\nvec4 bgColor = texture(uBgTexture, vTextureCoord);\nvec4 fgColor = texture(uTexture, vTextureCoord);\nvec4 color = vec4(1.0, 0.0, 0.0, 1.0);if(uOpacity < 0.001) {\nfragColor = bgColor;\nreturn;\n}color = mix(bgColor, mix(bgColor, fgColor, fgColor.a), uOpacity);fragColor = color;\n}"],"compiledVertexShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision mediump float;in vec3 aVertexPosition;\nin vec2 aTextureCoord;uniform mat4 uMVMatrix;\nuniform mat4 uPMatrix;\nuniform mat4 uTextureMatrix;out vec2 vTextureCoord;\nout vec3 vVertexPosition;void main() {\ngl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\nvTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy;\n}"],"data":{"uniforms":{"opacity":{"name":"uOpacity","type":"1f","value":1}}},"moduleRef":"model_renderer","id":"a28c2b32-ca4e-4273-a1e6-a0df15bda2bb","publicId":"model"}],"options":{"name":"Flow gradient (Remix)","fps":60,"dpi":1.5,"scale":1,"includeLogo":false,"isProduction":false,"flatten":false},"version":"2.1.12","id":"6Wa4eMdnAHH9FLgNy4e2","modules":{"model_renderer":{"type":"cdn-import","url":"https://cdn.jsdelivr.net/gh/hiunicornstudio/unicornstudio.js@v2.1.12/extensions/model-renderer.js","version":"v2.1.12"}}}