PageSourceSearch

https://www.sequencehq.com/_next/static/chunks/3izqhtdyms6jx.js

js sequencehq.com collected 2026-09-25 14:49:16 UTC 43,470 bytes, 433 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,491344,e=>{"use strict";var o=e.i(503423),t=e.i(111760),i=e.i(912184),n=e.i(49806);e.s(["Image",0,e=>{let{borderRadius:r,fadeIn:a,quality:l=95,...s}=e,[b,d]=(0,n.useState)(!1);return(0,o.jsx)(i.default,{...s,"data-nosnippet":!0,quality:l,"data-loaded":b,"data-fade":a,onLoad:o=>{d(!0),e.onLoad?.(o)},style:{borderRadius:r,...s.style},className:(0,t.clx)("transition duration-700 [transition-timing-function:cubic-bezier(0.31,0.325,0,0.92)]",{"opacity-0":a&&!b},e.className)})}])},851315,e=>{"use strict";var o=e.i(49806);e.s(["useShouldAnimate",0,()=>{let[e,t]=(0,o.useState)(!1);return(0,o.useLayoutEffect)(()=>{window.matchMedia("(prefers-reduced-motion: reduce)").matches||("deviceMemory"in navigator?navigator.deviceMemory<=4:navigator.hardwareConcurrency<=2)||t(!0)},[]),e}])},209439,853104,e=>{"use strict";var o=e.i(503423),t=e.i(111760),i=e.i(49806);let n={showBlobs:!0,blob1:{position:{x:.11,y:.86},width:.72,height:1.34,cornerRadius:1,intensity:1,rotation:47.057},blob2:{position:{x:.5,y:.9},width:.71,height:.64,cornerRadius:1,intensity:1,rotation:-16.443},blob3:{position:{x:.85,y:.85},width:1.15,height:.95,cornerRadius:1,intensity:1,rotation:39.057},blobInnerGlow:0,noiseEnabled:!0,noiseType:1,noiseIntensity:.5,noiseScale:.6,noiseSpeed:.24,noiseOctaves:2,blobBlendMode:9,noiseRotation:145,noiseDirection:{x:-.5,y:0},noisePosition:{x:0,y:0},noiseBrightness:1,noiseRefraction:0,showGlass:!0,columnCount:12,refractionStrength:.059,blurRadius:.08,borderOpacity:1,borderWidth:.012,glassOverlay:.2,glassBlendMode:1,glassTint:.2,paused:!0,backgroundColor:"#F2EDE9",color1:"#C0E6FF",color2:"#BAD9F9",color3:"#C0E6FF"};function r(e){let o=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return o?[parseInt(o[1],16)/255,parseInt(o[2],16)/255,parseInt(o[3],16)/255]:[.72,.83,.91]}let a=`
2  attribute vec2 a_position;
3  varying vec2 v_uv;
4  void main() {
5    v_uv = a_position * 0.5 + 0.5;
6    gl_Position = vec4(a_position, 0.0, 1.0);
7  }
8`,l=`
9  precision highp float;
10  varying vec2 v_uv;
11  uniform sampler2D u_backgroundTexture;
12  uniform vec2 u_resolution;
13  uniform vec3 u_color1;
14  uniform vec3 u_color2;
15  uniform vec3 u_color3;
16  uniform vec2 u_blob1Pos;
17  uniform vec2 u_blob2Pos;
18  uniform vec2 u_blob3Pos;
19  uniform vec2 u_blob1Size;
20  uniform vec2 u_blob2Size;
21  uniform vec2 u_blob3Size;
22  uniform float u_blob1Corner;
23  uniform float u_blob2Corner;
24  uniform float u_blob3Corner;
25  uniform float u_blob1Intensity;
26  uniform float u_blob2Intensity;
27  uniform float u_blob3Intensity;
28  uniform float u_showBlobs;
29  uniform float u_blob1Rotation;
30  uniform float u_blob2Rotation;
31  uniform float u_blob3Rotation;
32  uniform float u_blobInnerGlow;
33  uniform float u_blobIntro;
34  uniform float u_blendMode;
35
36  // Blend helpers
37  float colorDodge(float base, float blend) {
38    return (blend >= 1.0) ? 1.0 : min(1.0, base / (1.0 - blend));
39  }
40  float colorBurn(float base, float blend) {
41    return (blend <= 0.0) ? 0.0 : max(0.0, 1.0 - (1.0 - base) / blend);
42  }
43  float vividLight(float base, float blend) {
44    return blend < 0.5
45      ? ((blend <= 0.0) ? 0.0 : max(0.0, 1.0 - (1.0 - base) / (2.0 * blend)))
46      : ((blend >= 1.0) ? 1.0 : min(1.0, base / (2.0 * (1.0 - blend))));
47  }
48
49  vec3 blendColors(vec3 base, vec3 blend, float mode) {
50    vec3 result;
51    if (mode < 0.5) {
52      result = blend;
53    } else if (mode < 1.5) {
54      result.r = base.r < 0.5 ? 2.0 * base.r * blend.r : 1.0 - 2.0 * (1.0 - base.r) * (1.0 - blend.r);
55      result.g = base.g < 0.5 ? 2.0 * base.g * blend.g : 1.0 - 2.0 * (1.0 - base.g) * (1.0 - blend.g);
56      result.b = base.b < 0.5 ? 2.0 * base.b * blend.b : 1.0 - 2.0 * (1.0 - base.b) * (1.0 - blend.b);
57    } else if (mode < 2.5) {
58      result.r = blend.r < 0.5 ? base.r - (1.0 - 2.0 * blend.r) * base.r * (1.0 - base.r) : base.r + (2.0 * blend.r - 1.0) * (sqrt(base.r) - base.r);
59      result.g = blend.g < 0.5 ? base.g - (1.0 - 2.0 * blend.g) * base.g * (1.0 - base.g) : base.g + (2.0 * blend.g - 1.0) * (sqrt(base.g) - base.g);
60      result.b = blend.b < 0.5 ? base.b - (1.0 - 2.0 * blend.b) * base.b * (1.0 - base.b) : base.b + (2.0 * blend.b - 1.0) * (sqrt(base.b) - base.b);
61    } else if (mode < 3.5) {
62      result = base * blend;
63    } else if (mode < 4.5) {
64      result = 1.0 - (1.0 - base) * (1.0 - blend);
65    } else if (mode < 5.5) {
66      result = min(base + blend, 1.0);
67    } else if (mode < 6.5) {
68      result = max(base - blend, 0.0);
69    } else if (mode < 7.5) {
70      result = abs(base - blend);
71    } else if (mode < 8.5) {
72      result = base + blend - 2.0 * base * blend;
73    } else if (mode < 9.5) {
74      result.r = blend.r < 0.5 ? 2.0 * base.r * blend.r : 1.0 - 2.0 * (1.0 - base.r) * (1.0 - blend.r);
75      result.g = blend.g < 0.5 ? 2.0 * base.g * blend.g : 1.0 - 2.0 * (1.0 - base.g) * (1.0 - blend.g);
76      result.b = blend.b < 0.5 ? 2.0 * base.b * blend.b : 1.0 - 2.0 * (1.0 - base.b) * (1.0 - blend.b);
77    } else if (mode < 10.5) {
78      result = vec3(colorDodge(base.r, blend.r), colorDodge(base.g, blend.g), colorDodge(base.b, blend.b));
79    } else if (mode < 11.5) {
80      result = vec3(colorBurn(base.r, blend.r), colorBurn(base.g, blend.g), colorBurn(base.b, blend.b));
81    } else if (mode < 12.5) {
82      result = vec3(vividLight(base.r, blend.r), vividLight(base.g, blend.g), vividLight(base.b, blend.b));
83    } else if (mode < 13.5) {
84      result = clamp(base + 2.0 * blend - 1.0, 0.0, 1.0);
85    } else {
86      result = vec3(vividLight(base.r, blend.r), vividLight(base.g, blend.g), vividLight(base.b, blend.b));
87      result = step(0.5, result);
88    }
89    return result;
90  }
91
92  // Signed distance function for a rounded rectangle
93  float sdRoundedRect(vec2 p, vec2 halfSize, float cornerRadius) {
94    vec2 d = abs(p) - halfSize + vec2(cornerRadius);
95    return length(max(d, 0.0)) + min(max(d.x, d.y), 0.0) - cornerRadius;
96  }
97
98  // Rotate a 2D point
99  vec2 rotate2d(vec2 p, float angle) {
100    float c = cos(angle);
101    float s = sin(angle);
102    return vec2(p.x * c - p.y * s, p.x * s + p.y * c);
103  }
104
105  // Conic gradient (approximated) from CSS: from 195deg
106  vec3 conicGrad(vec2 p, vec3 colorA, vec3 colorB) {
107    float angle = atan(p.y, p.x);
108    float t = (angle + 3.14159) / (2.0 * 3.14159);
109    t = fract(t + 195.0 / 360.0);
110    return mix(colorA, colorB, t);
111  }
112
113  vec4 blobShape(vec2 uv, vec2 center, vec2 size, float corner, float rotation, vec3 tintA, vec3 tintB, float intensity) {
114    vec2 local = uv - center;
115    local = rotate2d(local, rotation);
116
117    vec2 halfSize = size * 0.5;
118    float cornerRadius = min(halfSize.x, halfSize.y) * corner;
119    float h = halfSize.y;
120
121    float d = sdRoundedRect(local, halfSize, cornerRadius);
122
123    // Sharp mask with thin anti-aliased edge
124    float px = 0.003;
125    float mask = 1.0 - smoothstep(-px, px, d);
126
127    // Conic gradient fill
128    vec3 fill = conicGrad(local, tintA, tintB);
129
130    // Inset glow: white glow toward center (box-shadow inset)
131    float glowDist = -d / (h * 0.6);
132    float glow = smoothstep(0.0, 1.0, glowDist) * u_blobInnerGlow;
133    fill = mix(fill, vec3(1.0), glow);
134
135    // Apply intensity
136    fill = mix(vec3(1.0), fill, intensity);
137
138    return vec4(fill, mask);
139  }
140
141  void main() {
142    vec2 uv = v_uv;
143    float aspect = u_resolution.x / u_resolution.y;
144    uv.x *= aspect;
145
146    vec2 p1 = vec2(u_blob1Pos.x * aspect, u_blob1Pos.y);
147    vec2 p2 = vec2(u_blob2Pos.x * aspect, u_blob2Pos.y);
148    vec2 p3 = vec2(u_blob3Pos.x * aspect, u_blob3Pos.y);
149
150    vec3 noiseBg = texture2D(u_backgroundTexture, v_uv).rgb;
151    vec3 color = noiseBg;
152
153    if (u_showBlobs > 0.5) {
154      vec4 b1 = blobShape(uv, p1, u_blob1Size, u_blob1Corner, u_blob1Rotation, u_color1, u_color2, u_blob1Intensity);
155      vec4 b2 = blobShape(uv, p2, u_blob2Size, u_blob2Corner, u_blob2Rotation, u_color1, u_color2, u_blob2Intensity);
156      vec4 b3 = blobShape(uv, p3, u_blob3Size, u_blob3Corner, u_blob3Rotation, u_color3, u_color2, u_blob3Intensity);
157
158      // Composite blobs onto white background
159      vec3 blobLayer = vec3(1.0);
160      blobLayer = mix(blobLayer, b3.rgb, b3.a);
161      blobLayer = mix(blobLayer, b1.rgb, b1.a);
162      blobLayer = mix(blobLayer, b2.rgb, b2.a);
163
164      // Blend entire blob layer (white + blobs) onto noise
165      vec3 blended = blendColors(noiseBg, blobLayer, u_blendMode);
166      color = mix(noiseBg, blended, u_blobIntro);
167    }
168
169    // Dither to break up banding (triangular noise, \xb10.5/255)
170    vec3 dither = vec3(fract(sin(dot(v_uv, vec2(12.9898, 78.233))) * 43758.5453));
171    color += (dither - 0.5) / 255.0;
172
173    gl_FragColor = vec4(color, 1.0);
174  }
175`,s=`
176  precision highp float;
177  varying vec2 v_uv;
178  uniform float u_noiseType;
179  uniform float u_noiseIntensity;
180  uniform float u_noiseScale;
181  uniform vec2 u_noiseOffset;
182  uniform vec2 u_noisePosition;
183  uniform float u_noiseBrightness;
184  uniform float u_noiseOctaves;
185  uniform float u_noiseRotation;
186  uniform float u_noiseColumns;
187  uniform float u_noiseRefraction;
188  uniform float u_noiseIntro;
189
190  // Simplex noise (Ashima Arts, public domain)
191  vec3 mod289(vec3 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }
192  vec2 mod289(vec2 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }
193  vec3 permute(vec3 x) { return mod289(((x * 34.0) + 1.0) * x); }
194
195  float snoise(vec2 v) {
196    const vec4 C = vec4(0.211324865405187, 0.366025403784439,
197                       -0.577350269189626, 0.024390243902439);
198    vec2 i = floor(v + dot(v, C.yy));
199    vec2 x0 = v - i + dot(i, C.xx);
200    vec2 i1;
201    i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
202    vec4 x12 = x0.xyxy + C.xxzz;
203    x12.xy -= i1;
204    i = mod289(i);
205    vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0))
206                             + i.x + vec3(0.0, i1.x, 1.0));
207    vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x12.xy, x12.xy),
208                             dot(x12.zw, x12.zw)), 0.0);
209    m = m * m;
210    m = m * m;
211    vec3 x = 2.0 * fract(p * C.www) - 1.0;
212    vec3 h = abs(x) - 0.5;
213    vec3 ox = floor(x + 0.5);
214    vec3 a0 = x - ox;
215    m *= 1.79284291400159 - 0.85373472095314 * (a0 * a0 + h * h);
216    vec3 g;
217    g.x = a0.x * x0.x + h.x * x0.y;
218    g.yz = a0.yz * x12.xz + h.yz * x12.yw;
219    return 130.0 * dot(m, g);
220  }
221
222  float sineWaves(vec2 p, float octaves) {
223    float value = 0.0;
224    float amplitude = 0.6;
225    float frequency = 1.0;
226    for (int i = 0; i < 4; i++) {
227      if (float(i) >= octaves) break;
228      float angle = float(i) * 1.047;
229      float c = cos(angle);
230      float s = sin(angle);
231      vec2 rp = vec2(p.x * c - p.y * s, p.x * s + p.y * c);
232      value += amplitude * sin(rp.x * frequency * 6.28318);
233      frequency *= 1.8;
234      amplitude *= 0.5;
235    }
236    return value;
237  }
238
239  float stripePattern(vec2 p, float octaves) {
240    float angle = 0.7854;
241    float c = cos(angle);
242    float s = sin(angle);
243    vec2 rp = vec2(p.x * c - p.y * s, p.x * s + p.y * c);
244    float stripe = sin(rp.x * 6.28318 * 2.0);
245    if (octaves > 1.0) {
246      stripe += snoise(p * 2.0) * 0.3;
247    }
248    if (octaves > 2.0) {
249      stripe += snoise(p * 4.0) * 0.15;
250    }
251    return stripe;
252  }
253
254  float getPattern(vec2 p, float type, float octaves) {
255    if (type < 0.5) {
256      return sineWaves(p, octaves) * 0.5 + 0.5;
257    } else {
258      return stripePattern(p, octaves) * 0.5 + 0.5;
259    }
260  }
261
262  void main() {
263    vec3 color = vec3(1.0);
264
265    if (u_noiseIntensity > 0.0) {
266      vec2 centeredUv = v_uv - 0.5;
267      float rc = cos(u_noiseRotation);
268      float rs = sin(u_noiseRotation);
269      centeredUv = vec2(centeredUv.x * rc - centeredUv.y * rs, centeredUv.x * rs + centeredUv.y * rc);
270      vec2 rotatedUv = centeredUv + 0.5;
271
272      vec2 noiseUv = rotatedUv * u_noiseScale + u_noiseOffset + u_noisePosition;
273
274      // Column-based refraction: warp noise UVs to match glass column structure
275      if (u_noiseRefraction > 0.0 && u_noiseColumns > 1.0) {
276        float colUv = v_uv.x * u_noiseColumns;
277        float colIdx = floor(colUv);
278        float withinCol = fract(colUv);
279        float colPhase = colIdx * 2.39996;
280        float bend = sin(withinCol * 3.14159);
281        noiseUv.x += bend * u_noiseRefraction * u_noiseScale * sin(colPhase);
282        noiseUv.y += bend * u_noiseRefraction * u_noiseScale * 0.5 * cos(colPhase);
283      }
284
285      float n = getPattern(noiseUv, u_noiseType, u_noiseOctaves);
286      color = mix(vec3(1.0), vec3(n), u_noiseIntensity * u_noiseIntro);
287      color = min(color, vec3(u_noiseBrightness));
288    }
289
290    gl_FragColor = vec4(color, 1.0);
291  }
292`,b=`
293  precision highp float;
294  varying vec2 v_uv;
295  uniform sampler2D u_blobTexture;
296  uniform vec2 u_resolution;
297  uniform float u_time;
298  uniform float u_columns;
299  uniform float u_refractionStrength;
300  uniform float u_blurRadius;
301  uniform float u_borderOpacity;
302  uniform float u_borderWidth;
303  uniform float u_glassOverlay;
304  uniform float u_glassBlendMode;
305  uniform float u_glassTint;
306  uniform vec3 u_bgColor;
307  uniform float u_showGlass;
308  uniform float u_glassIntro;
309
310  // Blend helpers
311  float colorDodge(float base, float blend) {
312    return (blend >= 1.0) ? 1.0 : min(1.0, base / (1.0 - blend));
313  }
314  float colorBurn(float base, float blend) {
315    return (blend <= 0.0) ? 0.0 : max(0.0, 1.0 - (1.0 - base) / blend);
316  }
317  float vividLight(float base, float blend) {
318    return blend < 0.5
319      ? ((blend <= 0.0) ? 0.0 : max(0.0, 1.0 - (1.0 - base) / (2.0 * blend)))
320      : ((blend >= 1.0) ? 1.0 : min(1.0, base / (2.0 * (1.0 - blend))));
321  }
322
323  vec3 blendColors(vec3 base, vec3 blend, float mode) {
324    vec3 result;
325    if (mode < 0.5) {
326      result = blend;
327    } else if (mode < 1.5) {
328      result.r = base.r < 0.5 ? 2.0 * base.r * blend.r : 1.0 - 2.0 * (1.0 - base.r) * (1.0 - blend.r);
329      result.g = base.g < 0.5 ? 2.0 * base.g * blend.g : 1.0 - 2.0 * (1.0 - base.g) * (1.0 - blend.g);
330      result.b = base.b < 0.5 ? 2.0 * base.b * blend.b : 1.0 - 2.0 * (1.0 - base.b) * (1.0 - blend.b);
331    } else if (mode < 2.5) {
332      result.r = blend.r < 0.5 ? base.r - (1.0 - 2.0 * blend.r) * base.r * (1.0 - base.r) : base.r + (2.0 * blend.r - 1.0) * (sqrt(base.r) - base.r);
333      result.g = blend.g < 0.5 ? base.g - (1.0 - 2.0 * blend.g) * base.g * (1.0 - base.g) : base.g + (2.0 * blend.g - 1.0) * (sqrt(base.g) - base.g);
334      result.b = blend.b < 0.5 ? base.b - (1.0 - 2.0 * blend.b) * base.b * (1.0 - base.b) : base.b + (2.0 * blend.b - 1.0) * (sqrt(base.b) - base.b);
335    } else if (mode < 3.5) {
336      result = base * blend;
337    } else if (mode < 4.5) {
338      result = 1.0 - (1.0 - base) * (1.0 - blend);
339    } else if (mode < 5.5) {
340      result = min(base + blend, 1.0);
341    } else if (mode < 6.5) {
342      result = max(base - blend, 0.0);
343    } else if (mode < 7.5) {
344      result = abs(base - blend);
345    } else if (mode < 8.5) {
346      result = base + blend - 2.0 * base * blend;
347    } else if (mode < 9.5) {
348      result.r = blend.r < 0.5 ? 2.0 * base.r * blend.r : 1.0 - 2.0 * (1.0 - base.r) * (1.0 - blend.r);
349      result.g = blend.g < 0.5 ? 2.0 * base.g * blend.g : 1.0 - 2.0 * (1.0 - base.g) * (1.0 - blend.g);
350      result.b = blend.b < 0.5 ? 2.0 * base.b * blend.b : 1.0 - 2.0 * (1.0 - base.b) * (1.0 - blend.b);
351    } else if (mode < 10.5) {
352      result = vec3(colorDodge(base.r, blend.r), colorDodge(base.g, blend.g), colorDodge(base.b, blend.b));
353    } else if (mode < 11.5) {
354      result = vec3(colorBurn(base.r, blend.r), colorBurn(base.g, blend.g), colorBurn(base.b, blend.b));
355    } else if (mode < 12.5) {
356      result = vec3(vividLight(base.r, blend.r), vividLight(base.g, blend.g), vividLight(base.b, blend.b));
357    } else if (mode < 13.5) {
358      result = clamp(base + 2.0 * blend - 1.0, 0.0, 1.0);
359    } else {
360      result = vec3(vividLight(base.r, blend.r), vividLight(base.g, blend.g), vividLight(base.b, blend.b));
361      result = step(0.5, result);
362    }
363    return result;
364  }
365
366  void main() {
367    vec2 uv = v_uv;
368
369    // When glass is off, pass through the blob texture directly
370    if (u_showGlass < 0.5) {
371      gl_FragColor = texture2D(u_blobTexture, uv);
372      return;
373    }
374
375    float columnUv = uv.x * u_columns;
376    float columnIndex = floor(columnUv);
377    float withinColumn = fract(columnUv);
378
379    float columnPhase = columnIndex * 2.39996;
380    float refractX = u_refractionStrength * sin(columnPhase + u_time * 0.06);
381    float refractY = u_refractionStrength * 0.7 * cos(columnPhase + u_time * 0.05);
382
383    // Blur simulation
384    vec3 color = vec3(0.0);
385    float totalWeight = 0.0;
386
387    for (int i = -4; i <= 4; i++) {
388      for (int j = -4; j <= 4; j++) {
389        vec2 offset = vec2(float(i), float(j)) * u_blurRadius / 4.0;
390        vec2 sampleUv = uv + offset + vec2(refractX, refractY);
391        sampleUv = clamp(sampleUv, 0.0, 1.0);
392
393        float weight = 1.0 - length(vec2(float(i), float(j))) / 5.66;
394        weight = max(weight, 0.0);
395        weight *= weight;
396
397        color += texture2D(u_blobTexture, sampleUv).rgb * weight;
398        totalWeight += weight;
399      }
400    }
401    color /= totalWeight;
402
403    // Glass column tint (backgroundColor at glassTint opacity)
404    color = mix(color, u_bgColor, u_glassTint);
405
406    // Horizontal gradient per column (left to right):
407    // white 0% → #808076 28% → white 100%, at 20% opacity
408    vec3 gradWhite = vec3(1.0);
409    vec3 gradGray = vec3(0.502, 0.502, 0.463); // #808076
410    vec3 gradColor;
411    if (withinColumn < 0.28) {
412      gradColor = mix(gradWhite, gradGray, withinColumn / 0.28);
413    } else {
414      gradColor = mix(gradGray, gradWhite, (withinColumn - 0.28) / (1.0 - 0.28));
415    }
416    vec3 blended = blendColors(color, gradColor, u_glassBlendMode);
417    color = mix(color, blended, u_glassOverlay);
418
419    // Column left-edge border: thin vertical line at each column boundary
420    float borderLine = 1.0 - smoothstep(0.0, u_borderWidth, withinColumn);
421    color = mix(color, vec3(1.0), borderLine * u_borderOpacity);
422
423    // Intro fade: glass emerges from raw blob texture
424    vec3 rawColor = texture2D(u_blobTexture, uv).rgb;
425    color = mix(rawColor, color, u_glassIntro);
426
427    // Dither to break up banding (triangular noise, \xb10.5/255)
428    vec3 dither = vec3(fract(sin(dot(v_uv, vec2(12.9898, 78.233))) * 43758.5453));
429    color += (dither - 0.5) / 255.0;
430
431    gl_FragColor = vec4(color, 1.0);
432  }
433`;function d(e,o,t){let i=e.createShader(o);return i?(e.shaderSource(i,t),e.compileShader(i),e.getShaderParameter(i,e.COMPILE_STATUS))?i:(console.error("Shader compile error:",e.getShaderInfoLog(i)),e.deleteShader(i),null):null}function u(e,o,t){let i=d(e,e.VERTEX_SHADER,o),n=d(e,e.FRAGMENT_SHADER,t);if(!i||!n)return null;let r=e.createProgram();return r?(e.attachShader(r,i),e.attachShader(r,n),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS))?r:(console.error("Program link error:",e.getProgramInfoLog(r)),e.deleteProgram(r),null):null}e.s(["DEFAULT_CONFIG",0,n,"FractalGlassShader",0,function({config:e,configRef:d,canvasRef:c,className:f,paused:g=!1,onReady:m}){let v=(0,i.useRef)(null),h=c??v,p=(0,i.useRef)(0),x=(0,i.useRef)(null),_=(0,i.useRef)(!0),y=(0,i.useRef)(m);y.current=m;let R=(0,i.useRef)(e??n);e&&!d&&(R.current=e);let w=d??R,B=(0,i.useCallback)(()=>{let e=h.current;if(!e)return null;let o=e.getContext("webgl",{alpha:!1,antialias:!1,preserveDrawingBuffer:!0});return o||(console.warn("WebGL not supported"),null)},[]);return(0,i.useEffect)(()=>{let e=B();if(!e)return;let o=e.canvas,t=r(w.current.backgroundColor);e.clearColor(t[0],t[1],t[2],1),e.clear(e.COLOR_BUFFER_BIT);let i=u(e,a,l),n=u(e,a,s),d=u(e,a,b);if(!i||!n||!d)return;let c=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,c),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),e.STATIC_DRAW);let f=e.createTexture(),g=e.createFramebuffer(),m=e.createTexture(),v=e.createFramebuffer();function h(e,o,t,i,n){e.bindTexture(e.TEXTURE_2D,o),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,i,n,0,e.RGBA,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindFramebuffer(e.FRAMEBUFFER,t),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,o,0),e.bindFramebuffer(e.FRAMEBUFFER,null)}let R={a_position:e.getAttribLocation(i,"a_position"),u_backgroundTexture:e.getUniformLocation(i,"u_backgroundTexture"),u_resolution:e.getUniformLocation(i,"u_resolution"),u_color1:e.getUniformLocation(i,"u_color1"),u_color2:e.getUniformLocation(i,"u_color2"),u_color3:e.getUniformLocation(i,"u_color3"),u_blob1Pos:e.getUniformLocation(i,"u_blob1Pos"),u_blob2Pos:e.getUniformLocation(i,"u_blob2Pos"),u_blob3Pos:e.getUniformLocation(i,"u_blob3Pos"),u_blob1Size:e.getUniformLocation(i,"u_blob1Size"),u_blob2Size:e.getUniformLocation(i,"u_blob2Size"),u_blob3Size:e.getUniformLocation(i,"u_blob3Size"),u_blob1Corner:e.getUniformLocation(i,"u_blob1Corner"),u_blob2Corner:e.getUniformLocation(i,"u_blob2Corner"),u_blob3Corner:e.getUniformLocation(i,"u_blob3Corner"),u_blob1Intensity:e.getUniformLocation(i,"u_blob1Intensity"),u_blob2Intensity:e.getUniformLocation(i,"u_blob2Intensity"),u_blob3Intensity:e.getUniformLocation(i,"u_blob3Intensity"),u_showBlobs:e.getUniformLocation(i,"u_showBlobs"),u_blob1Rotation:e.getUniformLocation(i,"u_blob1Rotation"),u_blob2Rotation:e.getUniformLocation(i,"u_blob2Rotation"),u_blob3Rotation:e.getUniformLocation(i,"u_blob3Rotation"),u_blobInnerGlow:e.getUniformLocation(i,"u_blobInnerGlow"),u_blobIntro:e.getUniformLocation(i,"u_blobIntro"),u_blendMode:e.getUniformLocation(i,"u_blendMode")},L={a_position:e.getAttribLocation(n,"a_position"),u_noiseType:e.getUniformLocation(n,"u_noiseType"),u_noiseIntensity:e.getUniformLocation(n,"u_noiseIntensity"),u_noiseScale:e.getUniformLocation(n,"u_noiseScale"),u_noiseOffset:e.getUniformLocation(n,"u_noiseOffset"),u_noisePosition:e.getUniformLocation(n,"u_noisePosition"),u_noiseBrightness:e.getUniformLocation(n,"u_noiseBrightness"),u_noiseOctaves:e.getUniformLocation(n,"u_noiseOctaves"),u_noiseRotation:e.getUniformLocation(n,"u_noiseRotation"),u_noiseColumns:e.getUniformLocation(n,"u_noiseColumns"),u_noiseRefraction:e.getUniformLocation(n,"u_noiseRefraction"),u_noiseIntro:e.getUniformLocation(n,"u_noiseIntro")},C={a_position:e.getAttribLocation(d,"a_position"),u_blobTexture:e.getUniformLocation(d,"u_blobTexture"),u_resolution:e.getUniformLocation(d,"u_resolution"),u_time:e.getUniformLocation(d,"u_time"),u_columns:e.getUniformLocation(d,"u_columns"),u_refractionStrength:e.getUniformLocation(d,"u_refractionStrength"),u_blurRadius:e.getUniformLocation(d,"u_blurRadius"),u_borderOpacity:e.getUniformLocation(d,"u_borderOpacity"),u_borderWidth:e.getUniformLocation(d,"u_borderWidth"),u_glassOverlay:e.getUniformLocation(d,"u_glassOverlay"),u_glassBlendMode:e.getUniformLocation(d,"u_glassBlendMode"),u_glassTint:e.getUniformLocation(d,"u_glassTint"),u_bgColor:e.getUniformLocation(d,"u_bgColor"),u_showGlass:e.getUniformLocation(d,"u_showGlass"),u_glassIntro:e.getUniformLocation(d,"u_glassIntro")},S=0,U=0;function T(){let t=Math.min(window.devicePixelRatio,2),i=Math.floor(o.clientWidth*t),n=Math.floor(o.clientHeight*t);(S!==i||U!==n)&&(o.width=i,o.height=n,S=i,U=n,h(e,m,v,i,n),h(e,f,g,i,n))}let E=!1,P=0,I=-1;function A(o){T();let t=w.current;I>=0&&!t.paused&&(P+=(o-I)*.001),I=o;let a=r(t.backgroundColor),l=r(t.color1),s=r(t.color2),b=r(t.color3);e.bindFramebuffer(e.FRAMEBUFFER,g),e.viewport(0,0,S,U),e.useProgram(n),e.bindBuffer(e.ARRAY_BUFFER,c),e.enableVertexAttribArray(L.a_position),e.vertexAttribPointer(L.a_position,2,e.FLOAT,!1,0,0);let u=P*t.noiseSpeed;e.uniform1f(L.u_noiseType,t.noiseType),e.uniform1f(L.u_noiseIntensity,t.noiseEnabled?t.noiseIntensity:0),e.uniform1f(L.u_noiseScale,t.noiseScale),e.uniform2f(L.u_noiseOffset,u*t.noiseDirection.x,u*t.noiseDirection.y),e.uniform2f(L.u_noisePosition,t.noisePosition.x,t.noisePosition.y),e.uniform1f(L.u_noiseBrightness,t.noiseBrightness),e.uniform1f(L.u_noiseOctaves,t.noiseOctaves),e.uniform1f(L.u_noiseRotation,t.noiseRotation*Math.PI/180),e.uniform1f(L.u_noiseColumns,t.columnCount),e.uniform1f(L.u_noiseRefraction,t.noiseRefraction),e.uniform1f(L.u_noiseIntro,1),e.drawArrays(e.TRIANGLES,0,6),e.bindFramebuffer(e.FRAMEBUFFER,v),e.viewport(0,0,S,U),e.useProgram(i),e.bindBuffer(e.ARRAY_BUFFER,c),e.enableVertexAttribArray(R.a_position),e.vertexAttribPointer(R.a_position,2,e.FLOAT,!1,0,0),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,f),e.uniform1i(R.u_backgroundTexture,0),e.uniform2f(R.u_resolution,S,U),e.uniform3f(R.u_color1,l[0],l[1],l[2]),e.uniform3f(R.u_color2,s[0],s[1],s[2]),e.uniform3f(R.u_color3,b[0],b[1],b[2]),e.uniform2f(R.u_blob1Pos,t.blob1.position.x,t.blob1.position.y),e.uniform2f(R.u_blob2Pos,t.blob2.position.x,t.blob2.position.y),e.uniform2f(R.u_blob3Pos,t.blob3.position.x,t.blob3.position.y),e.uniform2f(R.u_blob1Size,t.blob1.width,t.blob1.height),e.uniform2f(R.u_blob2Size,t.blob2.width,t.blob2.height),e.uniform2f(R.u_blob3Size,t.blob3.width,t.blob3.height),e.uniform1f(R.u_blob1Corner,t.blob1.cornerRadius),e.uniform1f(R.u_blob2Corner,t.blob2.cornerRadius),e.uniform1f(R.u_blob3Corner,t.blob3.cornerRadius),e.uniform1f(R.u_blob1Intensity,t.blob1.intensity),e.uniform1f(R.u_blob2Intensity,t.blob2.intensity),e.uniform1f(R.u_blob3Intensity,t.blob3.
433intensity),e.uniform1f(R.u_showBlobs,+!!t.showBlobs),e.uniform1f(R.u_blob1Rotation,t.blob1.rotation*Math.PI/180),e.uniform1f(R.u_blob2Rotation,t.blob2.rotation*Math.PI/180),e.uniform1f(R.u_blob3Rotation,t.blob3.rotation*Math.PI/180),e.uniform1f(R.u_blobInnerGlow,t.blobInnerGlow),e.uniform1f(R.u_blobIntro,1),e.uniform1f(R.u_blendMode,t.blobBlendMode),e.drawArrays(e.TRIANGLES,0,6),e.bindFramebuffer(e.FRAMEBUFFER,null),e.viewport(0,0,S,U),e.useProgram(d),e.bindBuffer(e.ARRAY_BUFFER,c),e.enableVertexAttribArray(C.a_position),e.vertexAttribPointer(C.a_position,2,e.FLOAT,!1,0,0),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,m),e.uniform1i(C.u_blobTexture,0),e.uniform2f(C.u_resolution,S,U),e.uniform1f(C.u_time,P),e.uniform1f(C.u_columns,t.columnCount),e.uniform1f(C.u_refractionStrength,t.refractionStrength),e.uniform1f(C.u_blurRadius,t.blurRadius),e.uniform1f(C.u_borderOpacity,t.borderOpacity),e.uniform1f(C.u_borderWidth,t.borderWidth),e.uniform1f(C.u_glassOverlay,t.glassOverlay),e.uniform1f(C.u_glassBlendMode,t.glassBlendMode),e.uniform1f(C.u_glassTint,t.glassTint),e.uniform3f(C.u_bgColor,a[0],a[1],a[2]),e.uniform1f(C.u_showGlass,+!!t.showGlass),e.uniform1f(C.u_glassIntro,1),e.drawArrays(e.TRIANGLES,0,6),!E&&S>0&&U>0&&(E=!0,y.current?.()),_.current&&(p.current=requestAnimationFrame(A))}x.current=A,T(),p.current=requestAnimationFrame(A);let j=new ResizeObserver(()=>T());return j.observe(o),()=>{x.current=null,cancelAnimationFrame(p.current),j.disconnect(),e.deleteProgram(i),e.deleteProgram(n),e.deleteProgram(d),e.deleteBuffer(c),e.deleteTexture(m),e.deleteTexture(f),e.deleteFramebuffer(v),e.deleteFramebuffer(g)}},[B,w]),(0,i.useEffect)(()=>{_.current=!g,!g&&x.current&&(cancelAnimationFrame(p.current),p.current=requestAnimationFrame(x.current))},[g]),(0,o.jsx)("canvas",{ref:h,"data-visual-mask":!0,className:(0,t.clx)("block size-full",f)})}],209439);var c=e.i(847510);let f={Normal:0,Overlay:1,"Soft Light":2,Multiply:3,Screen:4,Add:5,Subtract:6,Difference:7,Exclusion:8,"Hard Light":9,"Color Dodge":10,"Color Burn":11,"Vivid Light":12,"Linear Light":13,"Hard Mix":14};e.s(["ShaderTweakpane",0,function({configRef:e,canvasRef:t,className:r}){let a=(0,i.useRef)(null),l=(0,i.useRef)(null),s=(0,i.useRef)({dragging:!1,startX:0,startY:0,origX:0,origY:0}),b=(0,i.useCallback)(e=>{let o=a.current?.getBoundingClientRect();if(!o||!a.current||e.clientY-o.top>30)return;let t=a.current;s.current={dragging:!0,startX:e.clientX,startY:e.clientY,origX:o.left,origY:o.top},t.style.right="auto",t.style.left=`${o.left}px`,t.style.top=`${o.top}px`,t.setPointerCapture(e.pointerId)},[]),d=(0,i.useCallback)(e=>{let o=s.current;o.dragging&&a.current&&(a.current.style.left=`${o.origX+(e.clientX-o.startX)}px`,a.current.style.top=`${o.origY+(e.clientY-o.startY)}px`)},[]),u=(0,i.useCallback)(()=>{s.current.dragging=!1},[]);return(0,i.useEffect)(()=>{let o=e.current;if(!a.current||!o)return;let i=new c.Pane({title:"Shader Controls",expanded:!0,container:a.current});l.current=i;let r=i.addFolder({title:"Blobs",expanded:!1});r.addBinding(o,"showBlobs",{label:"Show"});let s=(e,o)=>{e.addBinding(o.position,"x",{min:0,max:1,step:.01,label:"X"}),e.addBinding(o.position,"y",{min:0,max:1.5,step:.01,label:"Y"}),e.addBinding(o,"width",{min:.1,max:2,step:.01,label:"Width"}),e.addBinding(o,"height",{min:.1,max:2,step:.01,label:"Height"}),e.addBinding(o,"rotation",{min:-180,max:180,step:.5,label:"Rotation (deg)"}),e.addBinding(o,"cornerRadius",{min:0,max:1,step:.01,label:"Corner Radius"})};s(r.addFolder({title:"Blob 1 (Left)"}),o.blob1),s(r.addFolder({title:"Blob 2 (Center)"}),o.blob2),s(r.addFolder({title:"Blob 3 (Right)"}),o.blob3),r.addBinding(o,"blobBlendMode",{label:"Blend Mode",options:f}),r.addBinding(o,"color1",{label:"Color 1"}),r.addBinding(o,"color2",{label:"Color 2"}),r.addBinding(o,"color3",{label:"Color 3"});let b=i.addFolder({title:"Glass",expanded:!1});b.addBinding(o,"showGlass",{label:"Show"}),b.addBinding(o,"columnCount",{min:1,max:30,step:1,label:"Columns"}),b.addBinding(o,"refractionStrength",{min:0,max:.1,step:.001,label:"Refraction"}),b.addBinding(o,"blurRadius",{min:0,max:.1,step:.001,label:"Blur Radius"}
433),b.addBinding(o,"borderOpacity",{min:0,max:1,step:.01,label:"Border Opacity"}),b.addBinding(o,"borderWidth",{min:0,max:.02,step:.001,label:"Border Width"}),b.addBinding(o,"glassOverlay",{min:0,max:1,step:.01,label:"Gradient Overlay"}),b.addBinding(o,"glassTint",{min:0,max:1,step:.01,label:"Glass Tint"}),b.addBinding(o,"glassBlendMode",{label:"Blend Mode",options:f}),b.addBinding(o,"backgroundColor",{label:"Tint Color"});let d=i.addFolder({title:"Noise",expanded:!1});return d.addBinding(o,"noiseEnabled",{label:"Enabled"}),d.addBinding(o,"noiseType",{label:"Pattern",options:{Waves:0,Stripes:1}}),d.addBinding(o,"noiseIntensity",{min:0,max:.5,step:.01,label:"Intensity"}),d.addBinding(o,"noiseBrightness",{min:0,max:1,step:.01,label:"Brightness"}),d.addBinding(o,"noiseScale",{min:.5,max:10,step:.1,label:"Scale"}),d.addBinding(o,"noiseSpeed",{min:0,max:2,step:.01,label:"Speed"}),d.addBinding(o,"noiseOctaves",{min:1,max:4,step:1,label:"Octaves"}),d.addBinding(o,"noiseRotation",{min:-180,max:180,step:1,label:"Rotation"}),d.addBinding(o,"noiseRefraction",{min:0,max:.2,step:.005,label:"Column Refraction"}),d.addBinding(o.noiseDirection,"x",{min:-2,max:2,step:.1,label:"Dir X"}),d.addBinding(o.noiseDirection,"y",{min:-2,max:2,step:.1,label:"Dir Y"}),d.addBinding(o.noisePosition,"x",{min:-5,max:5,step:.1,label:"Pos X"}),d.addBinding(o.noisePosition,"y",{min:-5,max:5,step:.1,label:"Pos Y"}),i.addButton({title:"Play / Pause"}).on("click",()=>{o.paused=!o.paused}),i.addButton({title:"Copy Config to Clipboard"}).on("click",()=>{let o=JSON.stringify(e.current,null,2);navigator.clipboard.writeText(o)}),t&&i.addButton({title:"Capture Frame"}).on("click",()=>{let e=t.current;if(!e)return;let o=document.createElement("a");o.download="shader-frame.png",o.href=e.toDataURL("image/png"),o.click()}),i.addButton({title:"Reset to Defaults"}).on("click",()=>{let o=e.current;o&&(Object.assign(o.blob1.position,n.blob1.position),Object.assign(o.blob1,{width:n.blob1.width,height:n.blob1.height,rotation:n.blob1.rotation}),Object.assign(o.blob2.position,n.blob2.position),Object.assign(o.blob2,{width:n.blob2.width,height:n.blob2.height,rotation:n.blob2.rotation}),Object.assign(o.blob3.position,n.blob3.position),Object.assign(o.blob3,{width:n.blob3.width,height:n.blob3.height,rotation:n.blob3.rotation}),o.showBlobs=n.showBlobs,o.showGlass=n.showGlass,o.noiseEnabled=n.noiseEnabled,o.noiseType=n.noiseType,o.noiseIntensity=n.noiseIntensity,o.noiseScale=n.noiseScale,o.noiseSpeed=n.noiseSpeed,o.noiseOctaves=n.noiseOctaves,o.blobBlendMode=n.blobBlendMode,o.noiseRotation=n.noiseRotation,o.noiseBrightness=n.noiseBrightness,o.noiseRefraction=n.noiseRefraction,Object.assign(o.noiseDirection,n.noiseDirection),Object.assign(o.noisePosition,n.noisePosition),o.columnCount=n.columnCount,o.refractionStrength=n.refractionStrength,o.blurRadius=n.blurRadius,o.borderOpacity=n.borderOpacity,o.borderWidth=n.borderWidth,o.glassOverlay=n.glassOverlay,o.glassBlendMode=n.glassBlendMode,o.glassTint=n.glassTint,o.backgroundColor=n.backgroundColor,o.color1=n.color1,o.color2=n.color2,o.color3=n.color3,o.paused=n.paused,i.refresh())}),()=>{i.dispose()}},[e]),(0,o.jsx)("div",{ref:a,className:r,style:{cursor:"grab"},onPointerDown:b,onPointerMove:d,onPointerUp:u})}],853104)},779452,e=>{"use strict";e.s(["CUSTOMER_LOGOS",0,[{src:"/logos/legora.svg",alt:"Legora",title:"Legora",originalWidth:135,originalHeight:42,width:80},{src:"/logos/collect/incidentio-white.svg",alt:"incident.io's logo",title:"incident.io",className:"-translate-y-1 invert",originalWidth:1e3,originalHeight:248,width:95},{src:"/logos/bridge.svg",alt:"Bridge's logo",title:"Bridge",className:"translate-y-0.5",originalWidth:95,originalHeight:37,width:90},{src:"/logos/cognition.svg",alt:"Cognition's logo",title:"Cognition",originalWidth:160,originalHeight:38,width:100},{src:"/logos/openrouter.svg",alt:"OpenRouter's logo",title:"OpenRouter",originalWidth:135,originalHeight:42,width:130},{src:"/logos/lead.svg",alt:"Lead Bank's logo",title:"Lead Bank",originalWidth:1024,originalHeight:321,width:80},{src:"/logos/wispr.svg",alt:"Wispr's logo",title:"Wispr",originalWidth:135,originalHeight:42,width:110},{src:"/logos/pearl.svg",alt:"Pearl Health's logo",title:"Pearl Health",originalWidth:445,originalHeight:115,width:95},{src:"/logos/primer.svg",alt:"Primer's logo",title:"Primer",originalWidth:90,originalHeight:23,width:72},{src:"/logos/buildkite.svg",alt:"Buildkite's logo",title:"Buildkite",originalWidth:962,originalHeight:160,width:105},{src:"/logos/attention.svg",alt:"Attention's logo",title:"Attention",originalWidth:829,originalHeight:204,width:90},{src:"/logos/moonpay.svg",alt:"MoonPay's logo",title:"MoonPay",originalWidth:129,originalHeight:27,width:100},{src:"/logos/collect/sphere-white.svg",alt:"Sphere's logo",title:"Sphere",className:"invert",originalWidth:1199,originalHeight:366,width:85},{src:"/logos/dovetail.svg",alt:"Dovetail's logo",title:"Dovetail",originalWidth:1384,originalHeight:240,width:104}],"getLogoSize",0,({originalWidth:e,originalHeight:o,width:t})=>({width:t,height:t*o/e})])},925316,e=>{"use strict";var o=e.i(503423),t=e.i(111760),i=e.i(665096);e.s(["ArrowLink",0,function({children:e,className:n,arrowClassName:r,...a}){return(0,o.jsxs)(i.default,{...a,className:(0,t.clx)("group text-sm",n),children:[e," ",(0,o.jsx)("span",{"aria-hidden":"true",className:(0,t.clx)("ml-1.5 inline-block transition duration-150 group-hover:translate-x-1 group-focus-visible:translate-x-1",r),children:"→"})]})}])},903825,e=>{"use strict";var o=e.i(503423),t=e.i(925316),i=e.i(348978),n=e.i(745983),r=e.i(6278),a=e.i(851315),l=e.i(111760),s=e.i(779452),b=e.i(912184),d=e.i(665096),u=e.i(49806),c=e.i(491344),f=e.i(209439);function g({children:e,className:t}){let[i,{inView:n}]=(0,r.useIntersectionObserver)({triggerOnce:!1,rootMargin:"0px 0px -5% 0px"});return(0,o.jsx)("div",{className:"col-span-full pb-14 max-1079:pt-3",children:(0,o.jsx)("div",{ref:i,"data-inview":n,className:(0,l.clx)("flex flex-wrap items-center justify-center gap-x-10 gap-y-4 transition duration-500 ease-out-quad data-[inview=false]:opacity-50 max-767:scale-90 min-768:gap-x-16 min-1080:gap-x-14",t),children:e})})}function m({src:e,alt:t,title:i,width:n,height:r,className:a}){return(0,o.jsx)(b.default,{src:e,alt:t,title:i,width:n,height:r,className:a})}function v({label:e,headline:l,description:s,image:g,poster:m,shaderConfig:h,showTourLink:p=!1,ctaLabel:x="Book demo",ctaHref:_="/book-a-demo",tourHref:y,tourLabel:R,children:w}){let B=(0,u.useRef)({...structuredClone(f.DEFAULT_CONFIG),...h}),L=(0,u.useRef)(null),C=(0,a.useShouldAnimate)(),[S,U]=(0,u.useState)(!1),T=(0,u.useCallback)(()=>U(!0),[]),[E,{inView:P}]=(0,r.useIntersectionObserver)({initialValue:!0}),[I,A]=(0,u.useState)(!1),[j,O]=(0,u.useState)(!1);return(0,o.jsx)("section",{className:"pt-12 min-1080:pt-10",children:(0,o.jsxs)(n.SectionContainer,{className:"min-1080:gap-y-14",children:[(0,o.jsxs)("div",{className:"col-span-full grid gap-8 max-1079:px-3 min-1080:grid-cols-12",children:[(0,o.jsxs)("div",{className:"min-1080:col-span-6",children:[(0,o.jsx)("span",{className:"mb-6 block text-lg font-medium tracking-normal",children:e}),(0,o.jsx)("h1",{className:"mb-10 font-serif text-4xl font-light leading-[1] tracking-tight min-1080:text-[48px]",children:l}),(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)(d.default,{href:_,className:"contents",children:(0,o.jsx)(i.Button,{variant:"primary",label:x})}),p&&y&&(0,o.jsx)(t.ArrowLink,{href:y,className:"px-4 py-3 opacity-70 transition-opacity hover:opacity-100",arrowClassName:"group-hover:translate-x-1.5",children:R})]})]}),(0,o.jsx)("div",{className:"flex items-end min-1080:col-span-5 min-1080:col-start-8 min-1080:mb-[5.5rem]",children:(0,o.jsx)("p",{className:"text-pretty text-sm leading-relaxed text-brand-gray-muted",children:s})})]}),g&&m&&(0,o.jsx)("div",{"data-ready":j,className:"col-span-full rounded-2xl transition-opacity duration-200 data-[ready=false]:opacity-0",children:(0,o.jsxs)("div",{ref:E,"data-visual-mask":!0,className:"relative aspect-[1095/522] w-full overflow-clip rounded-2xl",children:[C&&
433(0,o.jsx)("div",{className:"absolute overflow-clip rounded-2xl",children:(0,o.jsx)(f.FractalGlassShader,{configRef:B,canvasRef:L,paused:!P,onReady:T})}),(0,o.jsx)(b.default,{src:m,alt:"","aria-hidden":"true",className:"object-cover transition-opacity duration-500 data-[hidden=true]:pointer-events-none data-[hidden=true]:opacity-0","data-hidden":S,onLoad:()=>O(!0),priority:!0}),!1,(0,o.jsx)("div",{"data-loaded":I,className:"absolute bottom-0 left-1/2 w-full max-w-[912px] -translate-x-1/2 translate-y-1 transform-gpu rounded-t-2xl bg-[radial-gradient(100%_86.26%_at_38.25%_-4.84%,rgba(247,247,247,0.70)_0%,rgba(247,247,247,0.60)_25%,rgba(247,247,247,0.50)_80%,_rgba(229,228,228,0.1))] px-2 pt-2 ring-1 ring-[#fafafa]/80 backdrop-blur-2xl duration-[600ms] ease-[cubic-bezier(0.25,0.75,0.65,0.94)] data-[loaded=false]:scale-[1.015] data-[loaded=false]:opacity-0 max-767:max-w-[calc(100%-2rem)] md:max-1079:max-w-[calc(100%-8rem)]",children:(0,o.jsx)("div",{className:"relative overflow-clip rounded-t-lg shadow-md after:absolute after:inset-0 after:rounded-t-lg after:ring-1 after:ring-black/[0.03]",children:(0,o.jsx)(c.Image,{src:g.src,onLoad:()=>A(!0),alt:g.alt,className:"object-contain",quality:100,priority:!0})})})]})}),w]})})}e.i(853104),v.Logos=g,v.Logo=m,v.DefaultLogos=function({className:e}){return(0,o.jsx)(g,{className:e,children:s.CUSTOMER_LOGOS.map(e=>(0,o.jsx)(m,{src:e.src,alt:e.alt,title:e.title,className:e.className,...(0,s.getLogoSize)(e)},e.src))})},e.s(["ProductHero",0,v])},19499,e=>{"use strict";var o=e.i(503423),t=e.i(745983),i=e.i(6278),n=e.i(111760),r=e.i(912184),a=e.i(49806);function l({children:e}){return(0,o.jsx)("h2",{className:"text-brand-gray-dark min-1080:text-[40px] font-serif text-3xl leading-none font-light text-pretty",children:e})}function s({children:e}){return(0,o.jsx)("p",{className:"text-brand-gray-dark max-w-[50ch] text-sm leading-[1.4] text-pretty",children:e})}function b({integrations:e,className:t}){let[a,{inView:l}]=(0,i.useIntersectionObserver)({triggerOnce:!0,rootMargin:"0px 0px -20% 0px"});return(0,o.jsxs)("div",{className:t??"min-1080:col-span-6 min-1080:p-20 relative",children:[(0,o.jsx)("div",{className:"bg-brand-gray-dark/10 max-1079:hidden absolute inset-y-0 -left-2 w-px"}),(0,o.jsx)(u,{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"}),(0,o.jsxs)("div",{className:"relative",children:[(0,o.jsx)("div",{className:"text-brand-gray-dark/10 dashed-border-l max-1079:hidden absolute -inset-y-20 left-0 w-px"}),(0,o.jsx)("div",{className:"text-brand-gray-dark/10 dashed-border-l max-1079:hidden absolute -inset-y-20 right-0 w-px"}),(0,o.jsx)("div",{className:"text-brand-gray-dark/10 dashed-border-t absolute -inset-x-[5.5rem] top-0 h-px"}),(0,o.jsx)("div",{className:"text-brand-gray-dark/10 dashed-border-b absolute -inset-x-[5.5rem] bottom-0 h-px"}),(0,o.jsx)("div",{ref:a,className:"bg-brand-gray-light/40 after:border-brand-gray-light relative grid grid-cols-5 after:pointer-events-none after:absolute after:inset-0 after:border",children:e.map((e,t)=>(0,o.jsx)("div",{className:(0,n.clx)("border-brand-gray-light relative flex aspect-square w-full items-center justify-center border-r border-b",{"before:absolute before:inset-0 before:bg-white before:opacity-0":e,"before:animate-fade-in before:[--duration:500ms] before:[--easing:cubic-bezier(0.25,0.46,0.45,0.94)]":e&&l}),style:{"--delay":`${e?.delay??0}ms`},children:e&&(0,o.jsx)(r.default,{src:e.icon,alt:`${e.name} logo`,title:e.name,width:28,height:28,className:`object-contain ${l?"animate-fade-in-zoom opacity-0 [--duration:800ms] [--easing:cubic-bezier(0.25,0.46,0.45,0.94)] [--scale:0.9]":"opacity-0"}`})},e?.name??`empty-${t}`))}),(0,o.jsx)("div",{className:"bg-brand-gray-medium absolute -top-[3px] -left-[3px] size-1.5 rounded-full"}),(0,o.jsx)("div",{className:"bg-brand-gray-medium absolute -top-[3px] -right-[3px] size-1.5 rounded-full"}),(0,o.jsx)("div",{className:"bg-brand-gray-medium absolute -right-[3px] -bottom-[3px] size-1.5 rounded-full"}),(0,o.jsx)("div",{className:"bg-brand-gray-medium absolute -bottom-[3px] -left-[3px] size-1.5 rounded-full"})]})]})}function d({children:e}){let i=a.Children.toArray(e),n=i.find(e=>(0,a.isValidElement)(e)&&e.type===l),r=i.find(e=>(0,a.isValidElement)(e)&&e.type===s),u=i.find(e=>(0,a.isValidElement)(e)&&e.type===b);return(0,o.jsxs)("section",{className:"relative",children:[(0,o.jsx)(t.OuterContainer,{children:(0,o.jsx)("div",{className:"bg-brand-gray-muted/10 h-
433px"})}),(0,o.jsxs)(t.SectionContainer,{className:"min-1080:gap-y-0 relative",children:[(0,o.jsx)(t.SectionContainerLines,{className:"min-1080:block hidden"}),(0,o.jsxs)("div",{className:"max-1079:px-3 max-1079:pt-12 min-1080:col-span-6 min-1080:pb-12 min-1080:pl-6 flex flex-col justify-center gap-6 pb-6 text-left",children:[n,r]}),u]})]})}d.Title=l,d.Description=s,d.Grid=b;let u=e=>(0,o.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:486,height:486,fill:"none",...e,children:(0,o.jsxs)("g",{opacity:.12,children:[(0,o.jsx)("mask",{id:"path-1-inside-1_702_532",fill:"#fff",children:(0,o.jsx)("path",{d:"M486 243c0 134.205-108.795 243-243 243C108.795 486 0 377.205 0 243 0 108.795 108.795 0 243 0c134.205 0 243 108.795 243 243Zm-454.653 0c0 116.893 94.76 211.653 211.653 211.653 116.893 0 211.653-94.76 211.653-211.653 0-116.893-94.76-211.653-211.653-211.653-116.893 0-211.653 94.76-211.653 211.653Z"})}),(0,o.jsx)("path",{stroke:"#808076",strokeDasharray:"2.99 2.99",strokeOpacity:.8,strokeWidth:2.99,d:"M486 243c0 134.205-108.795 243-243 243C108.795 486 0 377.205 0 243 0 108.795 108.795 0 243 0c134.205 0 243 108.795 243 243Zm-454.653 0c0 116.893 94.76 211.653 211.653 211.653 116.893 0 211.653-94.76 211.653-211.653 0-116.893-94.76-211.653-211.653-211.653-116.893 0-211.653 94.76-211.653 211.653Z",mask:"url(#path-1-inside-1_702_532)"})]})});e.s(["IntegrationsGrid",0,d])}]);

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.