{"version":3,"file":"ParticleCore.B4S-Yqxt.mjs","names":["useMemo","p","useRef","React.useState","__esmMin","init_ssg_sandbox_shims","te","window","_e","de","pe","p","init_jsx_runtime","init_npm_react_18_3_1","ce","addPropertyControls","init_framer_B6PCHH0A","ControlType","useIsStaticRenderer","rng","a","seed","t","gaussFrom","u","r","TAU","rotX","c","s","rotZ","smooth","x","e0","e1","buildShape","out","n","shape","g","i","put","y","z","dir","shell","ga","k","rr","th","rad","core","d","R","torus","phi","glowArc","halo","cols","rows","row","L","lines","axis","b","onLines","ln","j","ax","ay","az","bulge","arm","ang","m","textMask","text","weight","idx","px","py","tmp","rasterText","word","font","ctx","w","data","xs","ys","parseColor","input","VAR","v","h","ch","hh","ss","ll","q","pp","f","name","fallback","perspective","fovY","nf","near","far","aspect","viewMatrix","cx","tilt","sx","cy","yaw","sy","ease","ringAngle","code","ring","RING_B","evalMorph","o","kClock","SPREAD","cf","from","ct","to","af","at","fx","fz","tx","tz","env","SWIRL","pz","wv","waveFrom","waveTo","time","pointCount","phone","density","createEngine","gl","canvas","parallel","n0","target","t0","look","l0","kStart","shapeNow","toKey","lookKey","masks","scrub","pairKey","prog","ready","vao","bFrom","bTo","bSeed","U","dpr","dprCap","raf","visible","lost","last","slow","frames","pose","POSE","vel","mouse","shapeData","mask","l","key","makeSeeds","compile","vs","fs","VS","FS","finishLink","log","upload","buf","buildBuffers","startLook","endLook","bind","loc","clock","morphFrom","cur","setPair","resize","root","spring","omega","goal","dt","pa","pb","mix","P","frame","now","fit","narrow","front","shiftX","shiftY","FOV_Y","gx","gy","gs","start","stop","onPointer","onLost","onRestored","ro","io","entries","onVis","next","nextN","wasScrub","clamp","sectionSegments","tops","named","vh","ends","maxScroll","minTrigger","segs","lastTrigger","end","trigger","stepAt","activeStep","findSection","visibleEl","el","low","sectionLooks","hero","items","runSections","VIEWPORT_LINE","warned","ticks","lastStep","apply","move","looks","engine","measure","docH","id","top","onScroll","timer","Still","props","dots","pts","view","res","acc","vx","vy","nx","ny","col","CAM_Z","ParticleCore","p$1","DEFAULTS","isStatic","rootRef","canvasRef","glowRef","engineRef","failed","setFailed","colA","colB","glowRgb","MAX_SECTIONS","sectionsKey","makeTarget","reduced","glowEl","alive","showStill","stillLook","VIEWPORTS","SHAPES","SHAPE_TITLES","init_ParticleCore"],"sources":["https:/framerusercontent.com/modules/afKTocoep5D0we6V42sd/prWB9ELQJ70xEzpho2KR/ParticleCore.js"],"sourcesContent":["// Particle Core: one point cloud that morphs between shapes (orb, ring, wave, lattice, galaxy, a word).\n// Raw WebGL2, one draw call, no external code. List the page's sections (their Scroll Section names)\n// with a shape each, and the points travel to that shape as each section arrives, the way the\n// Malakut globe follows its sections.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{useEffect,useMemo,useRef}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const DEFAULTS={shape:\"orb\",text:\"VIREO\",textWeight:600,offsetX:0,offsetY:0,scale:1,particleColor:\"#EAF5F1\",accentColor:\"#3CF0C2\",glow:.6,density:1,pointSize:1.6,morphDuration:1.8,spin:1,ringSpeed:1,interactive:true,sections:[{sectionId:\"\",shape:\"ring\",text:\"VIREO\",offsetX:0,offsetY:0,scale:1,viewport:\"center\"},{sectionId:\"\",shape:\"lattice\",text:\"VIREO\",offsetX:0,offsetY:0,scale:.9,viewport:\"center\"}],move:\"trigger\",preview:0};// Per-shape pose: camera tilt, how much it spins, whether the wave animation runs.\nconst POSE={orb:{tilt:.22,spin:1,wave:0},ring:{tilt:1.1,spin:1,wave:0},wave:{tilt:.62,spin:.3,wave:1},lattice:{tilt:.5,spin:1,wave:0},galaxy:{tilt:1,spin:.6,wave:0},text:{tilt:0,spin:0,wave:0}};const CAM_Z=6.6;const FOV_Y=30*Math.PI/180;const SPREAD=.42;const SWIRL=.32;const TAU=Math.PI*2;/* ------------------------------------------------------------------ shapes */function rng(seed){let a=seed>>>0;return function(){a=a+1831565813>>>0;let t=a;t=Math.imul(t^t>>>15,t|1);t^=t+Math.imul(t^t>>>7,t|61);return((t^t>>>14)>>>0)/4294967296;};}function gaussFrom(r){return function(){const u=Math.max(1e-7,r());return Math.sqrt(-2*Math.log(u))*Math.cos(TAU*r());};}function rotX(p,a){const c=Math.cos(a),s=Math.sin(a);return[p[0],p[1]*c-p[2]*s,p[1]*s+p[2]*c];}function rotZ(p,a){const c=Math.cos(a),s=Math.sin(a);return[p[0]*c-p[1]*s,p[0]*s+p[1]*c,p[2]];}function smooth(e0,e1,x){const t=Math.min(1,Math.max(0,(x-e0)/(e1-e0)));return t*t*(3-2*t);}/** Fills out (n × [x, y, z, accent]) with the shape, in a seeded random order. */function buildShape(shape,n,text,weight,textMask){const out=new Float32Array(n*4);const r=rng(shape.length*7919+n);const g=gaussFrom(r);let i=0;const put=(x,y,z,a)=>{if(i>=n)return;out[i*4]=x;out[i*4+1]=y;out[i*4+2]=z;out[i*4+3]=a;i++;};const dir=()=>{const z=r()*2-1;const t=r()*TAU;const s=Math.sqrt(1-z*z);return[s*Math.cos(t),s*Math.sin(t),z];};if(shape===\"orb\"){const shell=Math.round(n*.56);const ga=Math.PI*(3-Math.sqrt(5));for(let k=0;k<shell;k++){const y=1-2*(k+.5)/shell;const rr=Math.sqrt(1-y*y);const th=ga*k;const rad=1+g()*.03;put(Math.cos(th)*rr*rad,y*rad,Math.sin(th)*rr*rad,r()<.08?.85:.04);}const core=Math.round(n*.2);for(let k=0;k<core;k++){const d=dir();const rad=.44*Math.pow(r(),.65);put(d[0]*rad,d[1]*rad,d[2]*rad,1-rad/.44*.55);}while(i<n){const a=r()<.56;const R=a?1.42:1.7;const t=r()*TAU;let p=[Math.cos(t)*(R+g()*.012),g()*.012,Math.sin(t)*(R+g()*.012)];p=a?rotZ(rotX(p,1.12),.32):rotZ(rotX(p,-.86),-.52);// the ring number rides on the accent (accent + 2 × ring) so the shader can spin each ring its own way\nput(p[0],p[1],p[2],a?2+.85:4+.3);}}else if(shape===\"ring\"){const torus=Math.round(n*.8);for(let k=0;k<torus;k++){const phi=r()*TAU;const a=r()*TAU;const rr=.17*(.7+.3*r());const R=1+rr*Math.cos(a);const glowArc=Math.pow(Math.max(0,Math.cos(phi-.9)),4);put(R*Math.cos(phi),rr*Math.sin(a),R*Math.sin(phi),.06+glowArc*.9);}const halo=Math.round(n*.12);for(let k=0;k<halo;k++){const t=r()*TAU;const R=1.48+g()*.01;put(R*Math.cos(t),g()*.01,R*Math.sin(t),.55);}while(i<n){const t=r()*TAU;const R=.7*Math.sqrt(r());put(R*Math.cos(t),g()*.05,R*Math.sin(t),.25);}}else if(shape===\"wave\"){const cols=Math.ceil(Math.sqrt(n*1.6));const rows=Math.ceil(n/cols);for(let row=0;row<rows;row++){for(let c=0;c<cols;c++){const x=-1.75+3.5*(c+.5+(r()-.5)*.3)/cols;const z=-1.1+2.2*(row+.5+(r()-.5)*.3)/rows;const y=.2*Math.sin(x*1.7)*Math.cos(z*1.5)+.06*Math.sin(x*4.1+z*2.3);put(x,y,z,smooth(.1,.24,y)*.95+.03);}}}else if(shape===\"lattice\"){const L=1.5;const cells=4;const lines=[];for(let axis=0;axis<3;axis++){for(let a=0;a<=cells;a++){for(let b=0;b<=cells;b++)lines.push([axis,-L/2+L*a/cells,-L/2+L*b/cells]);}}const onLines=Math.round(n*.86);for(let k=0;k<onLines;k++){const ln=lines[Math.floor(r()*lines.length)];const t=-L/2+L*r();const j=()=>g()*.006;if(ln[0]===0)put(t,ln[1]+j(),ln[2]+j(),.08);else if(ln[0]===1)put(ln[1]+j(),t,ln[2]+j(),.08);else put(ln[1]+j(),ln[2]+j(),t,.08);}while(i<n){const ax=Math.floor(r()*(cells+1)),ay=Math.floor(r()*(cells+1)),az=Math.floor(r()*(cells+1));const s=.022;put(-L/2+L*ax/cells+g()*s,-L/2+L*ay/cells+g()*s,-L/2+L*az/cells+g()*s,1);}}else if(shape===\"galaxy\"){const bulge=Math.round(n*.18);for(let k=0;k<bulge;k++)put(g()*.2,g()*.11,g()*.2,.9);while(i<n){const arm=Math.floor(r()*3);const rad=.18+1.55*Math.pow(r(),.85);const ang=arm*TAU/3+rad*2.4+g()*.26/(rad+.4);put(rad*Math.cos(ang),g()*.045*(1.25-rad/1.9),rad*Math.sin(ang),r()<.12?.9:.14*(1-rad/1.9));}}else if(shape===\"text\"){const m=textMask;if(!m||m.count===0)return buildShape(\"orb\",n,text,weight,null);const s=2.9/Math.max(m.w,m.h*2.4);for(let k=0;k<n;k++){const idx=Math.floor(r()*m.count);const px=m.xs[idx]+(r()-.5)*m.step;const py=m.ys[idx]+(r()-.5)*m.step;put((px-m.w/2)*s,-(py-m.h/2)*s,g()*.035,r()<.14?.9:.06);}}// Seeded shuffle, so the points of one shape scatter over the next instead of sliding in rows.\nconst tmp=new Float32Array(4);for(let k=n-1;k>0;k--){const j=Math.floor(r()*(k+1));tmp.set(out.subarray(k*4,k*4+4));out.copyWithin(k*4,j*4,j*4+4);out.set(tmp,j*4);}return out;}function rasterText(text,weight){if(typeof document===\"undefined\")return null;const word=(text||\" \").slice(0,24);const size=220;const font=`${weight} ${size}px Geist, Inter, \"Helvetica Neue\", Arial, sans-serif`;const c=document.createElement(\"canvas\");const ctx=c.getContext(\"2d\",{willReadFrequently:true});if(!ctx)return null;ctx.font=font;const w=Math.ceil(ctx.measureText(word).width)+40;const h=Math.ceil(size*1.3);c.width=w;c.height=h;ctx.font=font;ctx.textBaseline=\"middle\";ctx.fillStyle=\"#fff\";ctx.fillText(word,20,h/2);const data=ctx.getImageData(0,0,w,h).data;const step=2;const xs=[];const ys=[];for(let y=0;y<h;y+=step){for(let x=0;x<w;x+=step)if(data[(y*w+x)*4+3]>140)xs.push(x),ys.push(y);}return{xs:new Float32Array(xs),ys:new Float32Array(ys),count:xs.length,w,h,step};}/* ------------------------------------------------------------------ colour + maths */function parseColor(input,fallback){let s=(input||\"\").trim();// Framer hands token colours over as `var(--token-…, rgb(…))`; use the fallback inside\nconst VAR=/^var\\(\\s*--[^,]+,\\s*(.+)\\)$/;for(let v=VAR.exec(s);v;v=VAR.exec(s))s=v[1].trim();let m=/^#([0-9a-f]{3,8})$/i.exec(s);if(m){let h=m[1];if(h.length===3||h.length===4)h=h.split(\"\").map(ch=>ch+ch).join(\"\");return[0,2,4].map(k=>parseInt(h.slice(k,k+2),16)/255);}m=/^rgba?\\(([^)]+)\\)$/i.exec(s);if(m){const p=m[1].split(/[ ,/]+/).filter(Boolean).map(parseFloat);return[p[0]/255,p[1]/255,p[2]/255];}m=/^hsla?\\(([^)]+)\\)$/i.exec(s);if(m){const p=m[1].split(/[ ,/]+/).filter(Boolean).map(parseFloat);const hh=(p[0]%360+360)%360/360,ss=p[1]/100,ll=p[2]/100;const q=ll<.5?ll*(1+ss):ll+ss-ll*ss;const pp=2*ll-q;const f=t=>{t=(t+1)%1;if(t<1/6)return pp+(q-pp)*6*t;if(t<1/2)return q;if(t<2/3)return pp+(q-pp)*(2/3-t)*6;return pp;};return[f(hh+1/3),f(hh),f(hh-1/3)];}// a token without a fallback: read its value from the page\nconst name=/^var\\(\\s*(--[^,)\\s]+)/.exec(s);if(name&&typeof document!==\"undefined\"&&document.body){const v=getComputedStyle(document.body).getPropertyValue(name[1]).trim();if(v&&!/^var\\(/.test(v))return parseColor(v,fallback);}return fallback;}function perspective(fovY,aspect,near,far){const f=1/Math.tan(fovY/2);const nf=1/(near-far);return new Float32Array([f/aspect,0,0,0,0,f,0,0,0,0,(far+near)*nf,-1,0,0,2*far*near*nf,0]);}/** view = translate(0, 0, -CAM_Z) · rotX(tilt) · rotY(yaw) · scale(s), column-major. */function viewMatrix(tilt,yaw,s){const cx=Math.cos(tilt),sx=Math.sin(tilt),cy=Math.cos(yaw),sy=Math.sin(yaw);return new Float32Array([cy*s,sx*sy*s,-cx*sy*s,0,0,cx*s,sx*s,0,sy*s,-sx*cy*s,cx*cy*s,0,0,0,-CAM_Z,1]);}function ease(x){return x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2;}/** Orb rings turn about the object's vertical axis: ring 1 one way, ring 2 the other. */const RING_B=-.8;function ringAngle(code,ring){return code<.5?0:code<1.5?ring:ring*RING_B;}/** The CPU twin of the vertex shader's morph, used to start a new morph from wherever the points are now. */function evalMorph(from,to,seed,kClock,waveFrom,waveTo,time,ring,out){const n=seed.length/4;for(let i=0;i<n;i++){const o=i*4;const k=ease(Math.min(1,Math.max(0,(kClock-seed[o]*SPREAD)/(1-SPREAD))));const cf=Math.floor(from[o+3]/2),ct=Math.floor(to[o+3]/2);const af=ringAngle(cf,ring),at=ringAngle(ct,ring);const fx=from[o]*Math.cos(af)-from[o+2]*Math.sin(af),fz=from[o]*Math.sin(af)+from[o+2]*Math.cos(af);const tx=to[o]*Math.cos(at)-to[o+2]*Math.sin(at),tz=to[o]*Math.sin(at)+to[o+2]*Math.cos(at);let x=fx+(tx-fx)*k;let y=from[o+1]+(to[o+1]-from[o+1])*k;let z=fz+(tz-fz)*k;const env=Math.sin(Math.PI*k)*SWIRL;if(env>1e-5){const s=seed[o+3],t=k*3;const px=x*1.3,py=y*1.3,pz=z*1.3;x+=Math.sin(py*3.1+t+s*TAU)*env;y+=Math.sin(pz*2.7+t*1.13+s*4.1)*env;z+=Math.sin(px*2.9+t*.87+s*5.3)*env;}const wv=waveFrom+(waveTo-waveFrom)*k;if(wv>1e-5)y+=(Math.sin(x*2.4+time*.9)*.07+Math.cos(z*3+time*.7)*.045)*wv;out[o]=x;out[o+1]=y;out[o+2]=z;// baked positions no longer spin, so only the accent is kept\nout[o+3]=from[o+3]-2*cf+(to[o+3]-2*ct-(from[o+3]-2*cf))*k;}}/* ------------------------------------------------------------------ shaders */const VS=`#version 300 es\r\nprecision highp float;\r\nlayout(location = 0) in vec4 aFrom;\r\nlayout(location = 1) in vec4 aTo;\r\nlayout(location = 2) in vec4 aSeed;\r\nuniform mat4 uProj;\r\nuniform mat4 uView;\r\nuniform vec2 uShift;\r\nuniform float uK;\r\nuniform float uWaveFrom;\r\nuniform float uWaveTo;\r\nuniform float uTime;\r\nuniform float uSize;\r\nuniform vec4 uMouse;\r\nuniform vec3 uColA;\r\nuniform vec3 uColB;\r\nuniform float uDim;\r\nuniform float uRing;\r\nout vec3 vCol;\r\nout float vA;\r\nfloat easeIO(float x) { return x < 0.5 ? 4.0 * x * x * x : 1.0 - pow(-2.0 * x + 2.0, 3.0) * 0.5; }\r\nvec3 nz(vec3 p, float s, float t) {\r\n  return vec3(sin(p.y * 3.1 + t + s * 6.2831853), sin(p.z * 2.7 + t * 1.13 + s * 4.1), sin(p.x * 2.9 + t * 0.87 + s * 5.3));\r\n}\r\nvec3 ringSpin(vec3 p, float code) {\r\n  if (code < 0.5) return p;\r\n  float a = code < 1.5 ? uRing : uRing * ${RING_B.toFixed(2)};\r\n  float c = cos(a), s = sin(a);\r\n  return vec3(p.x * c - p.z * s, p.y, p.x * s + p.z * c);\r\n}\r\nvoid main() {\r\n  float k = easeIO(clamp((uK - aSeed.x * ${SPREAD.toFixed(2)}) / ${(1-SPREAD).toFixed(2)}, 0.0, 1.0));\r\n  float cf = floor(aFrom.w * 0.5), ct = floor(aTo.w * 0.5);\r\n  vec3 p = mix(ringSpin(aFrom.xyz, cf), ringSpin(aTo.xyz, ct), k);\r\n  p += nz(p * 1.3, aSeed.w, k * 3.0) * sin(3.14159265 * k) * ${SWIRL.toFixed(2)};\r\n  float wv = mix(uWaveFrom, uWaveTo, k);\r\n  p.y += (sin(p.x * 2.4 + uTime * 0.9) * 0.07 + cos(p.z * 3.0 + uTime * 0.7) * 0.045) * wv;\r\n  p += nz(p * 2.0, aSeed.w, uTime * 0.6) * 0.008;\r\n  float acc = mix(aFrom.w - 2.0 * cf, aTo.w - 2.0 * ct, k);\r\n  vec4 vp = uView * vec4(p, 1.0);\r\n  vec4 cp = uProj * vp;\r\n  vec2 ndc = cp.xy / cp.w + uShift;\r\n  vec2 d = (ndc - uMouse.xy) * vec2(uMouse.w, 1.0);\r\n  float push = uMouse.z * exp(-dot(d, d) / 0.035);\r\n  vp.xy += d / (length(d) + 0.03) * push * 0.11 * (-vp.z) * 0.27;\r\n  gl_Position = uProj * vp;\r\n  gl_Position.xy += uShift * gl_Position.w;\r\n  float depth = -vp.z;\r\n  gl_PointSize = uSize * aSeed.y * (${CAM_Z.toFixed(1)} / depth);\r\n  float fog = smoothstep(${(CAM_Z+2).toFixed(1)}, ${(CAM_Z-1.3).toFixed(1)}, depth);\r\n  float core = exp(-dot(p, p) * 2.2);\r\n  float tw = 0.8 + 0.2 * sin(uTime * 1.6 + aSeed.w * 37.0);\r\n  vCol = mix(uColA, uColB, clamp(acc + core * 0.5, 0.0, 1.0));\r\n  vA = (0.2 + 0.8 * fog) * tw * (0.62 + core * 0.4) * uDim;\r\n}`;const FS=`#version 300 es\r\nprecision mediump float;\r\nin vec3 vCol;\r\nin float vA;\r\nout vec4 o;\r\nvoid main() {\r\n  vec2 c = gl_PointCoord - 0.5;\r\n  float r2 = dot(c, c) * 4.0;\r\n  if (r2 > 1.0) discard;\r\n  float a = 1.0 - r2;\r\n  a *= a * vA;\r\n  o = vec4(vCol * a, a);\r\n}`;const lookKey=l=>l.shape+(l.shape===\"text\"?\"|\"+l.text+\"|\"+l.weight:\"\");const mix=(a,b,t)=>a+(b-a)*t;function pointCount(density){const phone=typeof window!==\"undefined\"&&Math.min(window.innerWidth,window.innerHeight)<600;return Math.max(1500,Math.round((phone?12e3:26e3)*density));}function createEngine(root,canvas,glowEl,n0,t0,l0){const gl=canvas.getContext(\"webgl2\",{alpha:true,premultipliedAlpha:true,antialias:false,depth:false,powerPreference:\"high-performance\"});if(!gl)return null;const ctx=gl;const parallel=ctx.getExtension(\"KHR_parallel_shader_compile\");let n=n0;let target=t0;let look=l0;let from=new Float32Array(0);let to=new Float32Array(0);let seed=new Float32Array(0);let kStart=0;let waveFrom=0;let shapeNow=l0.shape// the shape the points are heading to\n;let toKey=lookKey(l0);const masks=new Map;// With Scroll: the pair of looks the scroll sits between, and how far along it is\nlet scrub=null;let pairKey=\"\";let prog=null;let ready=false;let vao=null;let bFrom=null;let bTo=null;let bSeed=null;const U={};let w=1,h=1,dpr=1,dprCap=2;let raf=0;let visible=false;let lost=false;let last=0;let time=0;let slow=0;let frames=0;// pose spring state: tilt, scale, ox, oy, spin weight\nconst pose={tilt:POSE[l0.shape].tilt,scale:l0.scale,ox:l0.ox,oy:l0.oy,spinW:POSE[l0.shape].spin};const vel={tilt:0,scale:0,ox:0,oy:0,spinW:0};let yaw=.6;let ring=0// the orb's rings turn on their own, in opposite directions\n;const mouse={x:0,y:0,tx:0,ty:0,s:0,ts:0,lastMove:-1e9};function shapeData(l){let mask=null;if(l.shape===\"text\"){const key=l.text+\"|\"+l.weight;if(!masks.has(key))masks.set(key,rasterText(l.text,l.weight));mask=masks.get(key)||null;}return buildShape(l.shape,n,l.text,l.weight,mask);}function makeSeeds(){const r=rng(9001+n);seed=new Float32Array(n*4);for(let i=0;i<n;i++){seed[i*4]=r();seed[i*4+1]=.55+Math.pow(r(),2.2)*1.3;seed[i*4+2]=r();seed[i*4+3]=r();}}function compile(){const vs=ctx.createShader(ctx.VERTEX_SHADER);const fs=ctx.createShader(ctx.FRAGMENT_SHADER);ctx.shaderSource(vs,VS);ctx.shaderSource(fs,FS);ctx.compileShader(vs);ctx.compileShader(fs);const p=ctx.createProgram();ctx.attachShader(p,vs);ctx.attachShader(p,fs);ctx.linkProgram(p);prog=p;ready=false;}function finishLink(){if(!prog)return false;if(parallel&&!ctx.getProgramParameter(prog,parallel.COMPLETION_STATUS_KHR))return false;if(!ctx.getProgramParameter(prog,ctx.LINK_STATUS)){const log=ctx.getProgramInfoLog(prog);prog=null;throw new Error(\"ParticleCore shader: \"+log);}for(const name of[\"uProj\",\"uView\",\"uShift\",\"uK\",\"uWaveFrom\",\"uWaveTo\",\"uTime\",\"uSize\",\"uMouse\",\"uColA\",\"uColB\",\"uDim\",\"uRing\"])U[name]=ctx.getUniformLocation(prog,name);ready=true;return true;}function upload(buf,data){ctx.bindBuffer(ctx.ARRAY_BUFFER,buf);ctx.bufferData(ctx.ARRAY_BUFFER,data,ctx.DYNAMIC_DRAW);}function buildBuffers(){if(vao)ctx.deleteVertexArray(vao);for(const b of[bFrom,bTo,bSeed])if(b)ctx.deleteBuffer(b);makeSeeds();const startLook=scrub?scrub.a:look;const endLook=scrub?scrub.b:look;from=shapeData(startLook);to=scrub?shapeData(endLook):from.slice();shapeNow=endLook.shape;toKey=lookKey(endLook);pairKey=scrub?lookKey(startLook)+\">\"+lookKey(endLook):\"\";waveFrom=POSE[startLook.shape].wave;kStart=-1e9;vao=ctx.createVertexArray();ctx.bindVertexArray(vao);bFrom=ctx.createBuffer();bTo=ctx.createBuffer();bSeed=ctx.createBuffer();const bind=(loc,buf,data)=>{upload(buf,data);ctx.enableVertexAttribArray(loc);ctx.vertexAttribPointer(loc,4,ctx.FLOAT,false,0,0);};bind(0,bFrom,from);bind(1,bTo,to);bind(2,bSeed,seed);ctx.bindVertexArray(null);}function clock(){if(scrub)return scrub.k;return Math.min(1,(time-kStart)/Math.max(.05,target.reduced?.05:target.duration));}/** Start a timed morph to `look` from wherever the points are at morph clock k. */function morphFrom(k){const cur=new Float32Array(n*4);evalMorph(from,to,seed,k,waveFrom,POSE[shapeNow].wave,time,ring,cur);from=cur;waveFrom=0;to=shapeData(look);shapeNow=look.shape;toKey=lookKey(look);kStart=time;upload(bFrom,from);upload(bTo,to);}/** With Scroll: put the two looks the scroll sits between into the buffers. */function setPair(a,b){const key=lookKey(a)+\">\"+lookKey(b);if(key===pairKey)return;pairKey=key;from=shapeData(a);to=key.split(\">\")[0]===key.split(\">\")[1]?from.slice():shapeData(b);waveFrom=POSE[a.shape].wave;shapeNow=b.shape;toKey=lookKey(b);upload(bFrom,from);upload(bTo,to);}function resize(){const r=root.getBoundingClientRect();w=Math.max(1,r.width);h=Math.max(1,r.height);const phone=Math.min(window.innerWidth,window.innerHeight)<600;dprCap=phone?1.5:2;dpr=Math.min(window.devicePixelRatio||1,dprCap);canvas.width=Math.round(w*dpr);canvas.height=Math.round(h*dpr);}function spring(key,goal,omega,dt){const x=pose[key],v=vel[key];const a=omega*omega*(goal-x)-2*omega*v;vel[key]=v+a*dt;pose[key]=x+vel[key]*dt;}/** Where the pose is heading: the current look, or a blend of the scrub pair. */function goal(){if(scrub){const{a,b,k}=scrub;const pa=POSE[a.shape],pb=POSE[b.shape];return{tilt:mix(pa.tilt,pb.tilt,k),scale:mix(a.scale,b.scale,k),ox:mix(a.ox,b.ox,k),oy:mix(a.oy,b.oy,k),spin:mix(pa.spin,pb.spin,k),front:(k>.5?b:a).shape===\"text\"};}const P=POSE[look.shape];return{tilt:P.tilt,scale:look.scale,ox:look.ox,oy:look.oy,spin:P.spin,front:look.shape===\"text\"};}function frame(now){raf=0;if(!visible||lost)return;const t=now/1e3;const dt=last?Math.min(.05,t-last):1/60;last=t;time+=dt;if(!ready){try{if(!finishLink()){raf=requestAnimationFrame(frame);return;}}catch(e){console.error(e);return;}}// adaptive resolution: a run of slow frames lowers the pixel ratio a step\nframes++;slow=dt>.026?slow+1:Math.max(0,slow-1);if(slow>40&&dpr>1){dpr=Math.max(1,dpr*.8);canvas.width=Math.round(w*dpr);canvas.height=Math.round(h*dpr);slow=0;}const g=goal();// a scrub follows the scroll closely; a triggered move eases over the morph time\nconst omega=scrub?9:4.2/Math.max(.4,target.duration);const aspect=w/h;const fit=aspect<1?Math.max(.5,aspect*1.08):1;spring(\"tilt\",g.tilt+(target.interactive?mouse.y*.12:0),omega,dt);spring(\"scale\",g.scale*fit,omega,dt);const narrow=Math.min(1,Math.max(.25,(aspect-.6)/.9));spring(\"ox\",g.ox*narrow,omega,dt);spring(\"oy\",g.oy,omega,dt);spring(\"spinW\",target.reduced?0:g.spin,omega,dt);yaw+=dt*.14*target.spin*pose.spinW;if(!target.reduced)ring+=dt*.32*target.ringSpeed;if(g.front||target.reduced){// turn to the nearest front-facing angle\nconst front=Math.round(yaw/TAU)*TAU;yaw+=(front-yaw)*Math.min(1,dt*2.2);}mouse.x+=(mouse.tx-mouse.x)*Math.min(1,dt*6);mouse.y+=(mouse.ty-mouse.y)*Math.min(1,dt*6);mouse.ts=target.interactive&&time-mouse.lastMove<1.6?1:0;mouse.s+=(mouse.ts-mouse.s)*Math.min(1,dt*3);const shiftX=pose.ox/50;const shiftY=-pose.oy/50;ctx.viewport(0,0,canvas.width,canvas.height);ctx.clearColor(0,0,0,0);ctx.clear(ctx.COLOR_BUFFER_BIT);ctx.enable(ctx.BLEND);ctx.blendFunc(ctx.ONE,ctx.ONE);ctx.useProgram(prog);ctx.uniformMatrix4fv(U.uProj,false,perspective(FOV_Y,aspect,.1,50));ctx.uniformMatrix4fv(U.uView,false,viewMatrix(pose.tilt,yaw+(target.interactive?mouse.x*.22:0),pose.scale));ctx.uniform2f(U.uShift,shiftX,shiftY);ctx.uniform1f(U.uK,clock());ctx.uniform1f(U.uWaveFrom,waveFrom);ctx.uniform1f(U.uWaveTo,POSE[shapeNow].wave);ctx.uniform1f(U.uTime,time);ctx.uniform1f(U.uSize,target.pointSize*dpr*Math.sqrt(h/900)*1.6);ctx.uniform4f(U.uMouse,mouse.x,mouse.y,mouse.s,aspect);ctx.uniform3fv(U.uColA,target.colA);ctx.uniform3fv(U.uColB,target.colB);// portrait screens put copy over the cloud, so it steps back a little\nctx.uniform1f(U.uDim,aspect<1?.72:1);ctx.uniform1f(U.uRing,ring);ctx.bindVertexArray(vao);ctx.drawArrays(ctx.POINTS,0,n);ctx.bindVertexArray(null);// the accent glow follows the core on screen\nconst gx=(.5+shiftX*.5)*w;const gy=(.5-shiftY*.5)*h;const gs=Math.min(w,h)*1.15*pose.scale;glowEl.style.transform=`translate3d(${(gx-gs/2).toFixed(1)}px, ${(gy-gs/2).toFixed(1)}px, 0) scale(${(gs/100).toFixed(3)})`;raf=requestAnimationFrame(frame);}function start(){if(!raf&&visible&&!lost){last=0;raf=requestAnimationFrame(frame);}}function stop(){if(raf)cancelAnimationFrame(raf);raf=0;}function onPointer(e){if(!target.interactive||e.pointerType===\"touch\")return;const r=canvas.getBoundingClientRect();if(e.clientX<r.left||e.clientX>r.right||e.clientY<r.top||e.clientY>r.bottom)return;mouse.tx=(e.clientX-r.left)/r.width*2-1;mouse.ty=-((e.clientY-r.top)/r.height*2-1);mouse.lastMove=time;}function onLost(e){e.preventDefault();lost=true;stop();}function onRestored(){lost=false;compile();buildBuffers();start();}compile();buildBuffers();resize();const ro=new ResizeObserver(()=>resize());ro.observe(root);const io=new IntersectionObserver(entries=>{visible=entries[entries.length-1].isIntersecting&&document.visibilityState!==\"hidden\";visible?start():stop();},{rootMargin:\"150% 0px 150% 0px\"});io.observe(root);const onVis=()=>{if(document.visibilityState===\"hidden\")stop();else if(visible)start();};document.addEventListener(\"visibilitychange\",onVis);window.addEventListener(\"pointermove\",onPointer,{passive:true});canvas.addEventListener(\"webglcontextlost\",onLost);canvas.addEventListener(\"webglcontextrestored\",onRestored);return{/** Colours, sizes and motion settings; a new point count rebuilds the cloud. */set(next,nextN){target=next;if(nextN!==n){n=nextN;masks.clear();buildBuffers();}},/** On Trigger (or no sections): glide to this look over the morph time. */setLook(l){const k=clock();const wasScrub=!!scrub;scrub=null;pairKey=\"\";look=l;if(wasScrub||lookKey(l)!==toKey)morphFrom(k);},/** With Scroll: sit k of the way from look a to look b. */scrubTo(a,b,k){scrub={a,b,k:Math.min(1,Math.max(0,k))};look=k>.5?b:a;setPair(a,b);},refreshText(){masks.clear();if(scrub){pairKey=\"\";setPair(scrub.a,scrub.b);}else if(look.shape===\"text\")morphFrom(clock());},debug(){return{n,shape:shapeNow,look:lookKey(look),k:clock(),scrub:scrub?lookKey(scrub.a)+\">\"+lookKey(scrub.b)+\"@\"+scrub.k.toFixed(2):null,pose:{...pose},yaw,dpr,frames,ready};},destroy(){stop();ro.disconnect();io.disconnect();document.removeEventListener(\"visibilitychange\",onVis);window.removeEventListener(\"pointermove\",onPointer);canvas.removeEventListener(\"webglcontextlost\",onLost);canvas.removeEventListener(\"webglcontextrestored\",onRestored);if(prog)ctx.deleteProgram(prog);ctx.deleteBuffer(bFrom);ctx.deleteBuffer(bTo);ctx.deleteBuffer(bSeed);ctx.deleteVertexArray(vao);}};}/* ------------------------------------------------------------------ sections (scroll triggers) */const MAX_SECTIONS=10;/** Framer's Viewport choice: the line on the screen a section's top has to cross, as a share of the screen height from the top. */const VIEWPORT_LINE={top:0,center:.5,bottom:1};const VIEWPORTS=[\"top\",\"center\",\"bottom\"];function clamp(x,a,b){return Math.min(b,Math.max(a,x));}/**\r\n * Where on the page each move happens, as [start, end, trigger] scroll positions (index 0 is the hero,\r\n * unused). A named section's move triggers when its top crosses its Viewport line. On Trigger, the morph\r\n * starts there. With Scroll, the move runs from half a screen before that point to half a screen after,\r\n * never overlapping the move before it. Unnamed (or missing) sections share out the scroll between their\r\n * named neighbours; the last one ends at the bottom of the page. Nothing triggers at the very top, so the\r\n * hero always shows there. (The same rules as the Malakut globe.)\r\n */function sectionSegments(tops,lines,vh,maxScroll){const n=tops.length;const named=i=>{const t=tops[i];return t!==null&&t!==undefined&&isFinite(t);};const at=i=>tops[i]-(lines[i]??.5)*vh;const ends=new Array(n).fill(NaN);ends[0]=0;for(let i=1;i<n;i++)if(named(i))ends[i]=clamp(at(i)+vh/2,0,maxScroll);if(n>1&&isNaN(ends[n-1]))ends[n-1]=maxScroll;for(let i=1;i<n;i++){if(!isNaN(ends[i]))continue;let b=i;while(isNaN(ends[b]))b++;const a=i-1;for(let k=i;k<b;k++)ends[k]=ends[a]+(ends[b]-ends[a])*(k-a)/(b-a);}for(let i=1;i<n;i++)ends[i]=Math.max(ends[i],ends[i-1]);const minTrigger=Math.max(1,.05*vh)// a deliberate scroll, not a trackpad twitch, leaves the hero\n;const segs=[[0,0,0]];let lastTrigger=0;for(let i=1;i<n;i++){let start=Math.max(named(i)?at(i)-vh/2:ends[i-1],ends[i-1]);start=Math.min(start,Math.max(ends[i-1],ends[i]-vh/2));const end=Math.max(ends[i],start+1);const trigger=Math.max(minTrigger,named(i)?Math.min(at(i),maxScroll):(start+end)/2);// Viewports can cross (a short section on Top, the next on Bottom): the later one then waits a\n// quarter screen after the earlier, so every section's look still shows, in page order.\nlastTrigger=i>1?Math.min(Math.max(trigger,lastTrigger+vh/4),Math.max(trigger,maxScroll)):trigger;segs.push([start,end,lastTrigger]);}return segs;}/** With Scroll: how far along the steps the page is at scroll position y (0 = hero, fractional in a move). */function stepAt(y,segs){let s=0;for(let i=1;i<segs.length;i++){const[a,b]=segs[i];if(y<=a)break;if(y<b)return i-1+smooth(0,1,(y-a)/(b-a));s=i;}return s;}/** On Trigger: the last section whose move has fired at scroll position y. */function activeStep(y,segs){let k=0;for(let i=1;i<segs.length;i++)if(y>=segs[i][2])k=i;return k;}/** The element a Framer Scroll Section name points to (its id). Framer can render a copy per breakpoint, so take a visible one. */function findSection(name){if(typeof document===\"undefined\"||!name)return null;const visibleEl=el=>el.getClientRects().length>0;let el=Array.from(document.querySelectorAll('[id=\"'+name.replace(/[\"\\\\]/g,\"\\\\$&\")+'\"]')).find(visibleEl);if(!el){const low=name.toLowerCase();el=Array.from(document.querySelectorAll(\"[id]\")).find(e=>e.id.toLowerCase()===low&&visibleEl(e));}return el||null;}function sectionLooks(hero,items){return[hero,...items.map(s=>({shape:POSE[s.shape]?s.shape:\"orb\",text:s.text||hero.text,weight:hero.weight,ox:isFinite(s.offsetX)?s.offsetX:0,oy:isFinite(s.offsetY)?s.offsetY:0,scale:isFinite(s.scale)?s.scale:1}))];}/** Drive the engine from the page scroll: measure the sections, then follow window.scrollY. */function runSections(engine,looks,items,move){const lines=[0,...items.map(s=>VIEWPORT_LINE[s.viewport]??.5)];let segs=[[0,0,0]];const warned=new Set;let ticks=0;let lastStep=-1;const apply=()=>{const y=window.scrollY;if(move===\"scroll\"){const s=stepAt(y,segs);const i=Math.min(looks.length-1,Math.floor(s));const j=Math.min(looks.length-1,i+1);engine.scrubTo(looks[i],looks[j],j===i?0:s-i);}else{const k=activeStep(y,segs);if(k!==lastStep){lastStep=k;engine.setLook(looks[k]);}}};// Layout moves as images and fonts land, so this re-runs every second.\nconst measure=()=>{const vh=window.innerHeight;if(vh<1)return;// a collapsed or hidden view: keep the last layout\nconst docH=document.documentElement.scrollHeight;const tops=[null];for(const s of items){const id=String(s.sectionId||\"\").trim().replace(/^#/,\"\");let top=null;if(id){const el=findSection(id);if(el)top=el.getBoundingClientRect().top+window.scrollY;else if(ticks>2&&!warned.has(id)){warned.add(id);console.warn(`[ParticleCore] No section with the id \"${id}\" on this page, so its move is spread over the scroll instead. Check the frame's Scroll Section name.`);}}tops.push(top);}segs=sectionSegments(tops,lines,vh,Math.max(0,docH-vh));apply();};const onScroll=()=>apply();const timer=window.setInterval(()=>{ticks++;measure();},1e3);window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"resize\",measure);measure();return()=>{window.clearInterval(timer);window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"resize\",measure);};}/* ------------------------------------------------------------------ still (editor, export, no WebGL2) */function Still(props){const{look,a,b}=props;const dots=useMemo(()=>{const n=2400;const shape=POSE[look.shape]?look.shape:\"orb\";const mask=shape===\"text\"?rasterText(look.text,look.weight):null;const pts=buildShape(shape,n,look.text,look.weight,mask);const P=POSE[shape];const view=viewMatrix(P.tilt,.6,look.scale);const aspect=1.6;const f=1/Math.tan(FOV_Y/2);const res=[];for(let i=0;i<n;i++){const x=pts[i*4],y=pts[i*4+1],z=pts[i*4+2],acc=pts[i*4+3]%2;const vx=view[0]*x+view[4]*y+view[8]*z+view[12];const vy=view[1]*x+view[5]*y+view[9]*z+view[13];const vz=view[2]*x+view[6]*y+view[10]*z+view[14];const d=-vz;const nx=f/aspect*(vx/d)+look.ox/50;const ny=f*(vy/d)-look.oy/50;const core=Math.exp(-(x*x+y*y+z*z)*2.2);const m=Math.min(1,acc+core*.5);const col=[0,1,2].map(k=>Math.round((a[k]+(b[k]-a[k])*m)*255));res.push({x:80+nx*80,y:50-ny*50,r:.11+.08*(CAM_Z/d-.8),o:.2+.55*smooth(CAM_Z+2,CAM_Z-1.3,d),c:`rgb(${col.join(\",\")})`});}return res;},[lookKey(look),look.scale,look.ox,look.oy,a.join(),b.join()]);return /*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 160 100\",preserveAspectRatio:\"xMidYMid slice\",style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\"},\"aria-hidden\":\"true\",children:dots.map((d,i)=>/*#__PURE__*/_jsx(\"circle\",{cx:d.x.toFixed(2),cy:d.y.toFixed(2),r:d.r.toFixed(3),fill:d.c,opacity:d.o.toFixed(2)},i))});}/* ------------------------------------------------------------------ component *//**\r\n * Particle Core\r\n *\r\n * @framerIntrinsicWidth 1200\r\n * @framerIntrinsicHeight 800\r\n *\r\n * @framerSupportedLayoutWidth any-prefer-fixed\r\n * @framerSupportedLayoutHeight any-prefer-fixed\r\n */export default function ParticleCore(props){const p={...DEFAULTS,...props};const isStatic=useIsStaticRenderer();const rootRef=useRef(null);const canvasRef=useRef(null);const glowRef=useRef(null);const engineRef=useRef(null);const[failed,setFailed]=React.useState(false);const colA=useMemo(()=>parseColor(p.particleColor,[.92,.96,.95]),[p.particleColor]);const colB=useMemo(()=>parseColor(p.accentColor,[.24,.94,.76]),[p.accentColor]);const glowRgb=colB.map(c=>Math.round(c*255)).join(\",\");const hero={shape:POSE[p.shape]?p.shape:\"orb\",text:p.text,weight:p.textWeight,ox:p.offsetX,oy:p.offsetY,scale:p.scale};const items=(Array.isArray(p.sections)?p.sections:[]).slice(0,MAX_SECTIONS);const looks=sectionLooks(hero,items);const sectionsKey=JSON.stringify(items)+\"|\"+p.move+\"|\"+JSON.stringify(hero);const makeTarget=()=>{const reduced=typeof window!==\"undefined\"&&!!window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;return{colA,colB,pointSize:p.pointSize,duration:p.morphDuration,spin:p.spin,ringSpeed:p.ringSpeed,interactive:p.interactive,reduced};};useEffect(()=>{if(isStatic)return;const root=rootRef.current,canvas=canvasRef.current,glowEl=glowRef.current;if(!root||!canvas||!glowEl)return;let engine=null;try{engine=createEngine(root,canvas,glowEl,pointCount(p.density),makeTarget(),hero);}catch(e){console.error(e);}if(!engine){React.startTransition(()=>setFailed(true));return;}engineRef.current=engine;const w=window;if(w.__PCORE_TEST)w.__pcore=engine;// the Text shape is drawn with the page's Geist once it has loaded\nlet alive=true;if(document.fonts&&document.fonts.load){document.fonts.load(`${p.textWeight} 220px Geist`).then(()=>alive&&engine&&engine.refreshText(),()=>{});}return()=>{alive=false;engine&&engine.destroy();engineRef.current=null;};},[isStatic]);useEffect(()=>{const e=engineRef.current;if(e)e.set(makeTarget(),pointCount(p.density));},[colA,colB,p.pointSize,p.morphDuration,p.spin,p.ringSpeed,p.interactive,p.density]);// the look: the Shape settings alone, or the section the page has scrolled to\nuseEffect(()=>{const e=engineRef.current;if(!e)return;if(p.move===\"none\"||items.length===0){e.setLook(hero);return;}return runSections(e,looks,items,p.move);},[isStatic,failed,sectionsKey]);const showStill=isStatic||failed;const stillLook=looks[clamp(Math.round(p.preview||0),0,looks.length-1)];return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:{...p.style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",pointerEvents:\"none\"},\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"div\",{ref:glowRef,style:{position:\"absolute\",left:0,top:0,width:100,height:100,transformOrigin:\"0 0\",transform:showStill?`translate3d(-50%, -50%, 0)`:\"translate3d(-9999px, 0, 0)\",borderRadius:\"50%\",opacity:p.glow,background:`radial-gradient(circle, rgba(${glowRgb},0.24) 0%, rgba(${glowRgb},0.08) 32%, rgba(${glowRgb},0) 66%)`,willChange:\"transform\",...showStill?{left:`${50+stillLook.ox/2}%`,top:`${50+stillLook.oy/2}%`,width:\"70%\",height:\"auto\",aspectRatio:\"1\",transformOrigin:\"50% 50%\"}:null}}),showStill?/*#__PURE__*/_jsx(Still,{look:stillLook,a:colA,b:colB}):/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",display:\"block\"}})]});}const SHAPES=[\"orb\",\"ring\",\"wave\",\"lattice\",\"galaxy\",\"text\"];const SHAPE_TITLES=[\"Orb\",\"Ring\",\"Wave\",\"Lattice\",\"Galaxy\",\"Text\"];addPropertyControls(ParticleCore,{shape:{type:ControlType.Enum,title:\"Shape\",options:SHAPES,optionTitles:SHAPE_TITLES,defaultValue:DEFAULTS.shape,description:\"The look at the top of the page. Each section below takes over as you scroll to it.\"},text:{type:ControlType.String,title:\"Text\",defaultValue:DEFAULTS.text,hidden:p=>p.shape!==\"text\"},textWeight:{type:ControlType.Number,title:\"Weight\",min:300,max:900,step:100,defaultValue:DEFAULTS.textWeight,hidden:p=>p.shape!==\"text\"},offsetX:{type:ControlType.Number,title:\"Offset X\",min:-50,max:50,step:1,unit:\"%\",defaultValue:DEFAULTS.offsetX},offsetY:{type:ControlType.Number,title:\"Offset Y\",min:-50,max:50,step:1,unit:\"%\",defaultValue:DEFAULTS.offsetY},scale:{type:ControlType.Number,title:\"Scale\",min:.3,max:2.5,step:.05,defaultValue:DEFAULTS.scale},sections:{type:ControlType.Array,title:\"Sections\",maxCount:MAX_SECTIONS,defaultValue:DEFAULTS.sections,description:\"After the hero, in page order, up to 10. Section ID is the frame's Scroll Section name; leave it empty to share the scroll evenly.\",control:{type:ControlType.Object,controls:{sectionId:{type:ControlType.String,title:\"Section ID\",defaultValue:\"\",placeholder:\"pricing\"},shape:{type:ControlType.Enum,title:\"Shape\",options:SHAPES,optionTitles:SHAPE_TITLES,defaultValue:\"ring\"},text:{type:ControlType.String,title:\"Text\",defaultValue:DEFAULTS.text,hidden:p=>p.shape!==\"text\"},offsetX:{type:ControlType.Number,title:\"Offset X\",min:-50,max:50,step:1,unit:\"%\",defaultValue:0},offsetY:{type:ControlType.Number,title:\"Offset Y\",min:-50,max:50,step:1,unit:\"%\",defaultValue:0},scale:{type:ControlType.Number,title:\"Scale\",min:.3,max:2.5,step:.05,defaultValue:1},viewport:{type:ControlType.Enum,title:\"Viewport\",defaultValue:\"center\",options:VIEWPORTS,optionTitles:[\"Top\",\"Center\",\"Bottom\"],displaySegmentedControl:true,description:\"When this section takes over: as its top reaches the top of the screen, the middle, or the bottom (the moment it starts to show).\"}}}},move:{type:ControlType.Enum,title:\"Move\",defaultValue:DEFAULTS.move,options:[\"trigger\",\"scroll\",\"none\"],optionTitles:[\"On Trigger\",\"With Scroll\",\"Off\"],displaySegmentedControl:true,description:\"On Trigger: the points travel to a section's shape when its top crosses its Viewport line. With Scroll: the morph follows the scroll around that point. Off: only the Shape above.\"},preview:{type:ControlType.Number,title:\"Canvas Preview\",min:0,max:MAX_SECTIONS,step:1,defaultValue:0,description:\"Which look the editor shows: 0 is the hero, 1 the first section, and so on.\"},particleColor:{type:ControlType.Color,title:\"Particles\",defaultValue:DEFAULTS.particleColor},accentColor:{type:ControlType.Color,title:\"Accent\",defaultValue:DEFAULTS.accentColor},glow:{type:ControlType.Number,title:\"Glow\",min:0,max:1,step:.05,defaultValue:DEFAULTS.glow},density:{type:ControlType.Number,title:\"Density\",min:.25,max:1.5,step:.05,defaultValue:DEFAULTS.density},pointSize:{type:ControlType.Number,title:\"Point Size\",min:.5,max:4,step:.1,defaultValue:DEFAULTS.pointSize},morphDuration:{type:ControlType.Number,title:\"Morph\",min:.4,max:4,step:.1,unit:\"s\",defaultValue:DEFAULTS.morphDuration},spin:{type:ControlType.Number,title:\"Spin\",min:0,max:3,step:.1,defaultValue:DEFAULTS.spin},ringSpeed:{type:ControlType.Number,title:\"Ring Speed\",min:0,max:3,step:.1,defaultValue:DEFAULTS.ringSpeed,description:\"The Orb's two rings turn round it in opposite directions. 0 holds them still.\"},interactive:{type:ControlType.Boolean,title:\"Pointer\",defaultValue:DEFAULTS.interactive}});// test hooks, only when a harness asks for them\nif(typeof window!==\"undefined\"&&window.__PCORE_TEST)window.__pcoreFns={sectionSegments,stepAt,activeStep,findSection};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ParticleCore\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1200\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"800\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ParticleCore.map"],"mappings":"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"}