{"version":3,"file":"Test.Cb0GIimP.mjs","names":["React.useRef","React.useMemo","React.useState"],"sources":["https:/framerusercontent.com/modules/Q8C0i7KQXjt2woZKBqq6/mqwhsERP1r1JvEKZUGL7/Test.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";const MAX_PARTICLES=800;const MIN_CREATURES=2;const MAX_CREATURES=20;const MEMORY_PREFIX=\"rialto-particle-life-v53\";/**\n * Calendar creature count (insect only): day 1 → 2, day 2 → 3, …\n * Caps at 20 from day 19 through day 31.\n */function creaturesForCalendarDay(date=new Date){const day=date.getDate();return Math.max(MIN_CREATURES,Math.min(MAX_CREATURES,day+1));}function isTruthyProp(value){return value===true||value===\"true\"||value===1;}function hash01(n){let t=n>>>0;t=Math.imul(t^t>>>15,t|1);t^=t+Math.imul(t^t>>>7,t|61);return((t^t>>>14)>>>0)/4294967296;}const DEPTH_MIN=.15;const DEPTH_MAX=1;/** Stable per local calendar day; same page, same day → same depth. */function depthForCalendarDay(date=new Date){const key=date.getFullYear()*1e4+(date.getMonth()+1)*100+date.getDate();const u=hash01(Math.imul(key,2654435761));return DEPTH_MIN+u*(DEPTH_MAX-DEPTH_MIN);}function resolveCreatureDepth(calendarOn,manualDepth){if(isTruthyProp(calendarOn))return depthForCalendarDay();const n=typeof manualDepth===\"number\"?manualDepth:Number(manualDepth);return Math.max(DEPTH_MIN,Math.min(DEPTH_MAX,Number.isFinite(n)?n:.48));}/** Insect + calendar → day count; otherwise the manual Creatures value. */function resolveCreatureCount(motif,calendarOn,manualCount){const motifKey=String(motif||\"insect\").toLowerCase();if(motifKey===\"insect\"&&isTruthyProp(calendarOn)){return creaturesForCalendarDay();}const n=typeof manualCount===\"number\"?manualCount:Number(manualCount);return Math.max(MIN_CREATURES,Math.min(MAX_CREATURES,Math.round(Number.isFinite(n)?n:5)));}/** Fish U-turn: discrete yaw steps for a swimming (not card-flip) reverse */const FISH_TURN_STEPS=5;/** Snappy reassemble spring — short collapse / open */const MORPH_STIFFNESS=520;const MORPH_DAMPING=32;const MORPH_CLOSE_STIFFNESS=720;const MORPH_CLOSE_DAMPING=38;const ASSEMBLE_SLOTS=5;const ASSEMBLE_STAGGER=.14;const ASSEMBLE_SLOT=.54;const ASSEMBLE_EXIT=.32;const ASSEMBLE_TAIL=.5;const ASSEMBLE_OVERSHOOT=.12;/** Fish body girth — length / height / lateral width (iso thickness) */const FISH_LENGTH_SCALE=.96;const FISH_GIRTH_SCALE=1.55;const FISH_WIDTH_SCALE=3.2;const LAYOUT_FLASH_DURATION=420;const GROUND_X_BASE=.78;const GROUND_Y_BASE=.36;const DEFAULT_BODY_FILL=\"#A8A8A8\";const DEFAULT_BODY_STROKE=\"#E4E4E4\";const DEFAULT_LEG=\"#C8C8C8\";/** Warm near-black — lets ground contact shadows read */const SCENE_BG=\"#0E0E0C\";const LINE_CONTOUR=1.2;const LINE_STRUCT=.85;const LINE_AUX=.6;/** Avant-garde body shards — sharp, asymmetric, high-graphic *//** Angular constructivist body plates — hard facets, intentional asymmetry */const SHAPE_POOL=[// broken hex / carapace shard\n[{x:-14,y:2},{x:-7,y:9},{x:1,y:11},{x:8,y:6},{x:11,y:-1},{x:5,y:-9},{x:-4,y:-11},{x:-13,y:-5},{x:-15,y:0}],// twin-blade thorax\n[{x:-4,y:1},{x:-1,y:11},{x:6,y:13},{x:13,y:4},{x:9,y:0},{x:13,y:-4},{x:6,y:-13},{x:-1,y:-11},{x:-4,y:-1},{x:-7,y:0}],// chevron shield\n[{x:-12,y:0},{x:-4,y:10},{x:5,y:12},{x:12,y:3},{x:8,y:0},{x:12,y:-3},{x:5,y:-12},{x:-4,y:-10}],// spear head\n[{x:-2,y:0},{x:1,y:6},{x:8,y:5},{x:14,y:0},{x:8,y:-5},{x:1,y:-6}],// elongated abdomen shard\n[{x:-17,y:1},{x:-10,y:7},{x:-1,y:8},{x:5,y:3},{x:6,y:0},{x:5,y:-3},{x:-1,y:-8},{x:-10,y:-7},{x:-17,y:-1}],// offset diamond\n[{x:-9,y:1},{x:-3,y:11},{x:6,y:12},{x:13,y:4},{x:14,y:-1},{x:10,y:-8},{x:2,y:-12},{x:-6,y:-9}],// wedge capsule\n[{x:-7,y:0},{x:0,y:5},{x:8,y:6},{x:14,y:0},{x:8,y:-6},{x:0,y:-5}],// needle snout\n[{x:-1,y:0},{x:3,y:5},{x:11,y:3},{x:18,y:0},{x:11,y:-3},{x:3,y:-5}],// faceted head block\n[{x:-4,y:1},{x:0,y:8},{x:7,y:9},{x:12,y:3},{x:13,y:-1},{x:9,y:-7},{x:2,y:-8},{x:-3,y:-3}],// trapezoid plate\n[{x:-11,y:3},{x:-2,y:9},{x:8,y:7},{x:11,y:-1},{x:3,y:-9},{x:-9,y:-6},{x:-13,y:0}]];function polyCentroid(pts){let x=0;let y=0;for(const p of pts){x+=p.x;y+=p.y;}const n=Math.max(1,pts.length);return{x:x/n,y:y/n};}/** Screen-space tapered beam — femur / tibia as plates, not polylines. */function sparTrapezoid(ax,ay,bx,by,halfA,halfB){const dx=bx-ax;const dy=by-ay;const len=Math.sqrt(dx*dx+dy*dy)||1;const cap=len*.4;const a=Math.min(halfA,cap);const b=Math.min(halfB,cap);const nx=-dy/len;const ny=dx/len;return[{x:ax+nx*a,y:ay+ny*a},{x:bx+nx*b,y:by+ny*b},{x:bx-nx*b,y:by-ny*b},{x:ax-nx*a,y:ay-ny*a}];}/** Near (screen-down) edges only — thickness, not a second silhouette. */function strokeNearThickness(ctx,pts,insetPx,color,alpha,lineW){if(pts.length<3)return;let cx=0;let cy=0;for(const p of pts){cx+=p.x;cy+=p.y;}const n=pts.length;cx/=n;cy/=n;ctx.save();ctx.strokeStyle=color;ctx.globalAlpha=alpha;ctx.lineWidth=lineW;for(let i=0;i<n;i++){const a=pts[i];const b=pts[(i+1)%n];const my=(a.y+b.y)*.5;if(my<cy+.2)continue;const mx=(a.x+b.x)*.5;const ox=cx-mx;const oy=cy-my;const ol=Math.hypot(ox,oy)||1;const ux=ox/ol*insetPx;const uy=oy/ol*insetPx;ctx.beginPath();ctx.moveTo(a.x+ux,a.y+uy);ctx.lineTo(b.x+ux,b.y+uy);ctx.stroke();}ctx.restore();}function strokeLocalSeg(ctx,x0,y0,x1,y1,creature,rot,originX,originY,look,lift){const a=projectLocal(x0,y0,creature,rot,originX,originY,look,lift);const b=projectLocal(x1,y1,creature,rot,originX,originY,look,lift);ctx.beginPath();ctx.moveTo(a.x,a.y);ctx.lineTo(b.x,b.y);ctx.stroke();}function pointInPoly(p,poly){let inside=false;for(let i=0,j=poly.length-1;i<poly.length;j=i++){const a=poly[i];const b=poly[j];const hit=a.y>p.y!==b.y>p.y&&p.x<(b.x-a.x)*(p.y-a.y)/(b.y-a.y||1e-9)+a.x;if(hit)inside=!inside;}return inside;}function segIntersect(a,b,c,d){const rx=b.x-a.x;const ry=b.y-a.y;const sx=d.x-c.x;const sy=d.y-c.y;const den=rx*sy-ry*sx;if(Math.abs(den)<1e-9)return null;const t=((c.x-a.x)*sy-(c.y-a.y)*sx)/den;const u=((c.x-a.x)*ry-(c.y-a.y)*rx)/den;if(t<-1e-5||t>1+1e-5||u<-1e-5||u>1+1e-5)return null;return{x:a.x+t*rx,y:a.y+t*ry};}function clipSegToPoly(a,b,poly){if(poly.length<3)return null;const hits=[];const push=(t,p)=>{if(hits.some(q=>Math.abs(q.t-t)<1e-4))return;hits.push({t,p});};if(pointInPoly(a,poly))push(0,a);if(pointInPoly(b,poly))push(1,b);const dx=b.x-a.x;const dy=b.y-a.y;const len2=dx*dx+dy*dy||1;for(let i=0;i<poly.length;i++){const hit=segIntersect(a,b,poly[i],poly[(i+1)%poly.length]);if(!hit)continue;const t=((hit.x-a.x)*dx+(hit.y-a.y)*dy)/len2;push(Math.max(0,Math.min(1,t)),hit);}hits.sort((p,q)=>p.t-q.t);for(let i=0;i<hits.length-1;i++){const p0=hits[i].p;const p1=hits[i+1].p;const mid={x:(p0.x+p1.x)*.5,y:(p0.y+p1.y)*.5};if(pointInPoly(mid,poly)&&Math.hypot(p1.x-p0.x,p1.y-p0.y)>.4){return[p0,p1];}}return null;}function polyYsAtX(poly,x){const ys=[];for(let i=0;i<poly.length;i++){const a=poly[i];const b=poly[(i+1)%poly.length];const lo=Math.min(a.x,b.x);const hi=Math.max(a.x,b.x);if(x<lo-1e-6||x>hi+1e-6)continue;if(Math.abs(b.x-a.x)<1e-6){ys.push(a.y,b.y);continue;}const t=(x-a.x)/(b.x-a.x);if(t<-1e-4||t>1+1e-4)continue;ys.push(a.y+t*(b.y-a.y));}if(ys.length<2)return null;let y0=ys[0];let y1=ys[0];for(let i=1;i<ys.length;i++){if(ys[i]<y0)y0=ys[i];if(ys[i]>y1)y1=ys[i];}if(y1-y0<.8)return null;return[y0,y1];}function strokeInsideSeg(ctx,x0,y0,x1,y1,plate,creature,rot,originX,originY,look,lift){const clipped=clipSegToPoly({x:x0,y:y0},{x:x1,y:y1},plate);if(!clipped)return;strokeLocalSeg(ctx,clipped[0].x,clipped[0].y,clipped[1].x,clipped[1].y,creature,rot,originX,originY,look,lift);}function strokeLiftSeg(ctx,x0,y0,l0,x1,y1,l1,creature,rot,originX,originY,look){const a=projectLocal(x0,y0,creature,rot,originX,originY,look,l0);const b=projectLocal(x1,y1,creature,rot,originX,originY,look,l1);ctx.beginPath();ctx.moveTo(a.x,a.y);ctx.lineTo(b.x,b.y);ctx.stroke();}function drawAbdomenGable(ctx,plate,lift,peak,glaze,bodyFill,bodyStroke,partA,creature,rot,originX,originY,look){if(plate.length<3)return;const P=(x,y,L)=>projectLocal(x,y,creature,rot,originX,originY,look,L);let rear=plate[0];let front=plate[0];for(const p of plate){if(p.x<rear.x-1e-6||Math.abs(p.x-rear.x)<1e-6&&Math.abs(p.y)<Math.abs(rear.y)){rear=p;}if(p.x>front.x+1e-6||Math.abs(p.x-front.x)<1e-6&&Math.abs(p.y)<Math.abs(front.y)){front=p;}}const left=plate.filter(p=>p.y<-.12).sort((a,b)=>a.x-b.x);const right=plate.filter(p=>p.y>.12).sort((a,b)=>a.x-b.x);const span=Math.max(1,front.x-rear.x);const xA=rear.x+span*.28;const xB=rear.x+span*.72;const ridgeA={x:xA,y:0,L:lift+peak};const ridgeB={x:xB,y:0,L:lift+peak};const rearS=P(rear.x,rear.y,lift);const frontS=P(front.x,front.y,lift);const rA=P(ridgeA.x,ridgeA.y,ridgeA.L);const rB=P(ridgeB.x,ridgeB.y,ridgeB.L);const leftScreen=[rearS,...left.map(p=>P(p.x,p.y,lift)),frontS,rB,rA];const rightScreen=[rearS,rA,rB,frontS,...right.map(p=>P(p.x,p.y,lift)).reverse()];ctx.lineWidth=LINE_CONTOUR;strokePoly2(ctx,leftScreen,glaze>0,bodyFill,bodyStroke,{fillAlpha:glaze||undefined,hatch:false,strokeAlpha:partA});strokePoly2(ctx,rightScreen,glaze>0,bodyFill,bodyStroke,{fillAlpha:glaze||undefined,hatch:false,strokeAlpha:partA});ctx.strokeStyle=bodyStroke;ctx.lineWidth=LINE_STRUCT;ctx.globalAlpha=Math.max(.62,partA*.85);ctx.beginPath();ctx.moveTo(rearS.x,rearS.y);ctx.lineTo(rA.x,rA.y);ctx.lineTo(rB.x,rB.y);ctx.lineTo(frontS.x,frontS.y);ctx.stroke();const bandA=polyYsAtX(plate,xA);const bandB=polyYsAtX(plate,xB);const eave=.48;const eaveLift=lift+peak*.34;if(bandA&&bandB){const yAL=(bandA[0]+bandA[1])*.5-(bandA[1]-bandA[0])*.5*eave;const yAR=(bandA[0]+bandA[1])*.5+(bandA[1]-bandA[0])*.5*eave;const yBL=(bandB[0]+bandB[1])*.5-(bandB[1]-bandB[0])*.5*eave;const yBR=(bandB[0]+bandB[1])*.5+(bandB[1]-bandB[0])*.5*eave;strokeLiftSeg(ctx,rear.x,rear.y,lift,xA,yAL,eaveLift,creature,rot,originX,originY,look);strokeLiftSeg(ctx,xA,yAL,eaveLift,xB,yBL,eaveLift,creature,rot,originX,originY,look);strokeLiftSeg(ctx,xB,yBL,eaveLift,front.x,front.y,lift,creature,rot,originX,originY,look);strokeLiftSeg(ctx,rear.x,rear.y,lift,xA,yAR,eaveLift,creature,rot,originX,originY,look);strokeLiftSeg(ctx,xA,yAR,eaveLift,xB,yBR,eaveLift,creature,rot,originX,originY,look);strokeLiftSeg(ctx,xB,yBR,eaveLift,front.x,front.y,lift,creature,rot,originX,originY,look);if(left.length){strokeLiftSeg(ctx,left[0].x,left[0].y,lift,ridgeA.x,ridgeA.y,ridgeA.L,creature,rot,originX,originY,look);strokeLiftSeg(ctx,left[left.length-1].x,left[left.length-1].y,lift,ridgeB.x,ridgeB.y,ridgeB.L,creature,rot,originX,originY,look);}if(right.length){strokeLiftSeg(ctx,right[0].x,right[0].y,lift,ridgeA.x,ridgeA.y,ridgeA.L,creature,rot,originX,originY,look);strokeLiftSeg(ctx,right[right.length-1].x,right[right.length-1].y,lift,ridgeB.x,ridgeB.y,ridgeB.L,creature,rot,originX,originY,look);}}}function drawWingVenation(ctx,poly,kind,scale,creature,rot,originX,originY,look,liftBase,flapLift,flap,strokeAlpha,strokeColor){if(poly.length<4)return;let root=poly[0];let rootD=Infinity;for(const p of poly){const d=p.x*p.x+p.y*p.y;if(d<rootD){rootD=d;root=p;}}const want=kind===\"dragonfly\"||kind===\"butterfly\"?3:2;const tips=[...poly].filter(p=>p!==root).sort((a,b)=>b.x*b.x+b.y*b.y-(a.x*a.x+a.y*a.y)).slice(0,want).sort((a,b)=>Math.atan2(a.y-root.y,a.x-root.x)-Math.atan2(b.y-root.y,b.x-root.x));if(tips.length<2)return;const plate=poly.map(p=>({x:p.x*scale,y:p.y*scale}));const liftOf=p=>liftBase+Math.abs(p.y)*.12+flapLift*.15;ctx.strokeStyle=strokeColor;ctx.lineWidth=LINE_AUX;ctx.globalAlpha=Math.max(.42,strokeAlpha*.62);for(const tip of tips){strokeInsideSeg(ctx,root.x*scale,root.y*scale,tip.x*scale,tip.y*scale,plate,creature,rot,originX,originY,look,(liftOf(root)+liftOf(tip))*.5);}const stations=kind===\"dragonfly\"?[.4,.7]:[.52];ctx.lineWidth=LINE_AUX*.75;ctx.globalAlpha=Math.max(.32,strokeAlpha*.48);for(let i=0;i<tips.length-1;i++){const a=tips[i];const b=tips[i+1];for(const t of stations){const p0={x:(root.x+(a.x-root.x)*t)*scale,y:(root.y+(a.y-root.y)*t)*scale};const p1={x:(root.x+(b.x-root.x)*t)*scale,y:(root.y+(b.y-root.y)*t)*scale};strokeInsideSeg(ctx,p0.x,p0.y,p1.x,p1.y,plate,creature,rot,originX,originY,look,liftBase+flapLift*.15);}}}/** Bilateral carapace — keep concavity, mirror across the spine. */function symmetrizePolyAcrossX(pts){const all=[];for(const p of pts){all.push({x:p.x,y:p.y});if(Math.abs(p.y)>.12)all.push({x:p.x,y:-p.y});}let cx=0;for(const p of all)cx+=p.x;cx/=Math.max(1,all.length);all.sort((a,b)=>Math.atan2(a.y,a.x-cx)-Math.atan2(b.y,b.x-cx));const out=[];for(const p of all){const prev=out[out.length-1];if(!prev||Math.hypot(p.x-prev.x,p.y-prev.y)>.35){out.push(p);}}if(out.length>=3){const f=out[0];const l=out[out.length-1];if(Math.hypot(f.x-l.x,f.y-l.y)<.35)out.pop();}return out.length>=3?out:pts;}const SHAPE_POOL_SYMM=SHAPE_POOL.map(symmetrizePolyAcrossX);const STAG_HORN_SETS=[// wide forked armature — heavy upper, cut lower\n{plates:[[{x:4,y:-2},{x:11,y:-6},{x:22,y:-14},{x:31,y:-12},{x:28,y:-5},{x:18,y:-2},{x:10,y:-1}],[{x:12,y:-5},{x:20,y:-11},{x:27,y:-16},{x:25,y:-8},{x:16,y:-4}],[{x:5,y:1},{x:14,y:6},{x:24,y:13},{x:30,y:9},{x:22,y:3},{x:12,y:1}],[{x:3,y:-5},{x:8,y:0},{x:3,y:5},{x:0,y:0}],[{x:16,y:-3},{x:16,y:2},{x:21,y:0}]],filledPlate:[true,false,true,true,false],tips:[[{x:29,y:-13},{x:35,y:-17},{x:33,y:-10}],[{x:28,y:11},{x:34,y:15},{x:32,y:7}]],wires:[[{x:6,y:-1},{x:19,y:-8},{x:30,y:-13}],[{x:7,y:1},{x:20,y:8},{x:29,y:11}],[{x:14,y:-7},{x:14,y:5},{x:22,y:-1}],[{x:10,y:-3},{x:24,y:4}]]},// asymmetric scissor — dominant left rake\n{plates:[[{x:5,y:-1},{x:12,y:-7},{x:21,y:-18},{x:29,y:-22},{x:33,y:-16},{x:24,y:-8},{x:14,y:-2}],[{x:10,y:-4},{x:18,y:-12},{x:26,y:-19},{x:22,y:-9}],[{x:5,y:2},{x:13,y:7},{x:19,y:12},{x:16,y:4},{x:9,y:2}],[{x:4,y:-4},{x:4,y:4},{x:10,y:1},{x:10,y:-1}],[{x:20,y:-10},{x:28,y:-6},{x:24,y:-2},{x:18,y:-5}]],filledPlate:[true,true,false,false,true],tips:[[{x:31,y:-20},{x:38,y:-24},{x:36,y:-15}]],wires:[[{x:6,y:0},{x:24,y:-17},{x:32,y:-20}],[{x:8,y:1},{x:18,y:10}],[{x:15,y:-12},{x:15,y:3},{x:26,y:-4}],[{x:11,y:-6},{x:22,y:2},{x:11,y:6}]]},// lattice crown — many thin plates + cross spars\n{plates:[[{x:4,y:-2},{x:10,y:-8},{x:18,y:-15},{x:26,y:-14},{x:20,y:-6},{x:11,y:-2}],[{x:8,y:-5},{x:15,y:-11},{x:22,y:-17},{x:19,y:-8}],[{x:4,y:2},{x:11,y:6},{x:20,y:14},{x:27,y:12},{x:21,y:4},{x:12,y:2}],[{x:9,y:3},{x:17,y:9},{x:24,y:15},{x:20,y:6}],[{x:2,y:-3},{x:7,y:0},{x:2,y:3},{x:-1,y:0}],[{x:14,y:-2},{x:19,y:-4},{x:23,y:0},{x:19,y:4},{x:14,y:2}]],filledPlate:[true,false,true,false,true,false],tips:[[{x:24,y:-16},{x:30,y:-19},{x:28,y:-12}],[{x:25,y:14},{x:31,y:17},{x:29,y:10}]],wires:[[{x:5,y:-1},{x:17,y:-10},{x:25,y:-15}],[{x:5,y:1},{x:18,y:9},{x:26,y:13}],[{x:12,y:-8},{x:12,y:7}],[{x:9,y:-4},{x:21,y:5}],[{x:9,y:4},{x:21,y:-5}],[{x:16,y:-12},{x:23,y:0},{x:16,y:12}]]},// vertical blade stack — almost abstract sculpture\n{plates:[[{x:3,y:-1},{x:9,y:-4},{x:16,y:-9},{x:24,y:-11},{x:28,y:-6},{x:20,y:-2},{x:11,y:-1}],[{x:6,y:0},{x:14,y:-2},{x:22,y:-3},{x:26,y:1},{x:18,y:2},{x:10,y:1}],[{x:4,y:2},{x:12,y:5},{x:20,y:10},{x:25,y:7},{x:17,y:2}],[{x:15,y:-6},{x:21,y:-1},{x:15,y:4},{x:12,y:-1}]],filledPlate:[true,true,false,false],tips:[[{x:26,y:-10},{x:34,y:-13},{x:31,y:-5}],[{x:24,y:8},{x:30,y:12},{x:27,y:4}]],wires:[[{x:5,y:0},{x:27,y:-8}],[{x:7,y:1},{x:24,y:8}],[{x:13,y:-5},{x:13,y:4},{x:22,y:0}]]}];const FOUR_WING_SETS=[{foreLeft:[{x:3,y:-2},{x:-2,y:-10},{x:5,y:-17},{x:13,y:-14},{x:14,y:-6},{x:8,y:-2}],hindLeft:[{x:-2,y:-2},{x:-10,y:-8},{x:-5,y:-15},{x:3,y:-13},{x:6,y:-5},{x:1,y:-1}],foreRight:[{x:3,y:2},{x:-2,y:10},{x:5,y:17},{x:13,y:14},{x:14,y:6},{x:8,y:2}],hindRight:[{x:-2,y:2},{x:-10,y:8},{x:-5,y:15},{x:3,y:13},{x:6,y:5},{x:1,y:1}],braces:[[{x:3,y:-2},{x:5,y:-17}],[{x:3,y:2},{x:5,y:17}],[{x:-2,y:-2},{x:-5,y:-15}],[{x:-2,y:2},{x:-5,y:15}]]},{foreLeft:[{x:2,y:-1},{x:-6,y:-7},{x:1,y:-16},{x:11,y:-18},{x:16,y:-9},{x:10,y:-2}],hindLeft:[{x:-1,y:-1},{x:-11,y:-6},{x:-8,y:-14},{x:1,y:-15},{x:5,y:-7},{x:2,y:-2}],foreRight:[{x:2,y:1},{x:-6,y:7},{x:1,y:16},{x:11,y:18},{x:16,y:9},{x:10,y:2}],hindRight:[{x:-1,y:1},{x:-11,y:6},{x:-8,y:14},{x:1,y:15},{x:5,y:7},{x:2,y:2}],braces:[[{x:2,y:-1},{x:11,y:-18}],[{x:2,y:1},{x:11,y:18}]]},{foreLeft:[{x:4,y:-2},{x:0,y:-9},{x:7,y:-15},{x:13,y:-8},{x:9,y:-2}],hindLeft:[{x:-3,y:-2},{x:-11,y:-7},{x:-4,y:-13},{x:3,y:-10},{x:3,y:-3}],foreRight:[{x:4,y:2},{x:0,y:9},{x:7,y:15},{x:13,y:8},{x:9,y:2}],hindRight:[{x:-3,y:2},{x:-11,y:7},{x:-4,y:13},{x:3,y:10},{x:3,y:3}],braces:[[{x:4,y:-2},{x:7,y:-15}],[{x:4,y:2},{x:7,y:15}],[{x:-3,y:-2},{x:-4,y:-13}],[{x:-3,y:2},{x:-4,y:13}]]},// dragonfly — long lattice panes\n{foreLeft:[{x:2,y:-1},{x:-4,y:-6},{x:2,y:-14},{x:14,y:-22},{x:22,y:-18},{x:18,y:-8},{x:8,y:-2}],hindLeft:[{x:-1,y:-1},{x:-8,y:-5},{x:-2,y:-12},{x:8,y:-16},{x:14,y:-10},{x:6,y:-2}],foreRight:[{x:2,y:1},{x:-4,y:6},{x:2,y:14},{x:14,y:22},{x:22,y:18},{x:18,y:8},{x:8,y:2}],hindRight:[{x:-1,y:1},{x:-8,y:5},{x:-2,y:12},{x:8,y:16},{x:14,y:10},{x:6,y:2}],braces:[[{x:2,y:-1},{x:14,y:-22}],[{x:2,y:1},{x:14,y:22}],[{x:8,y:-8},{x:18,y:-12}],[{x:8,y:8},{x:18,y:12}],[{x:-2,y:-4},{x:10,y:-14}],[{x:-2,y:4},{x:10,y:14}]]},{foreLeft:[{x:1,y:-1},{x:-6,y:-5},{x:0,y:-13},{x:12,y:-20},{x:20,y:-15},{x:12,y:-4}],hindLeft:[{x:-2,y:-1},{x:-10,y:-4},{x:-4,y:-11},{x:6,y:-14},{x:11,y:-7},{x:3,y:-1}],foreRight:[{x:1,y:1},{x:-6,y:5},{x:0,y:13},{x:12,y:20},{x:20,y:15},{x:12,y:4}],hindRight:[{x:-2,y:1},{x:-10,y:4},{x:-4,y:11},{x:6,y:14},{x:11,y:7},{x:3,y:1}],braces:[[{x:1,y:-1},{x:12,y:-20}],[{x:1,y:1},{x:12,y:20}],[{x:-4,y:-4},{x:8,y:-12}],[{x:-4,y:4},{x:8,y:12}]]}];/** Hercules-style single horn — forward blade + optional thoracic spur */const HERCULES_HORN_SETS=[{plates:[[{x:4,y:-2},{x:12,y:-3},{x:22,y:-4},{x:32,y:-2},{x:36,y:0},{x:32,y:2},{x:22,y:4},{x:12,y:3},{x:4,y:2}],[{x:10,y:-1},{x:20,y:-2},{x:28,y:-1},{x:28,y:1},{x:20,y:2},{x:10,y:1}],[{x:2,y:-4},{x:8,y:-6},{x:14,y:-5},{x:10,y:-1},{x:4,y:-1}],[{x:0,y:-3},{x:5,y:0},{x:0,y:3},{x:-2,y:0}]],filledPlate:[true,false,true,false],tips:[[{x:34,y:-1},{x:42,y:0},{x:34,y:1}]],wires:[[{x:5,y:0},{x:24,y:0},{x:38,y:0}],[{x:12,y:-3},{x:12,y:3}],[{x:22,y:-3},{x:30,y:0},{x:22,y:3}]]},{plates:[[{x:3,y:-1},{x:11,y:-4},{x:20,y:-7},{x:28,y:-5},{x:31,y:-1},{x:26,y:1},{x:14,y:2},{x:5,y:1}],[{x:8,y:-2},{x:18,y:-5},{x:25,y:-3},{x:18,y:0}],[{x:2,y:2},{x:9,y:5},{x:16,y:4},{x:12,y:1},{x:4,y:1}],[{x:1,y:-4},{x:6,y:0},{x:1,y:4},{x:-1,y:0}]],filledPlate:[true,true,false,false],tips:[[{x:29,y:-4},{x:37,y:-2},{x:33,y:1}]],wires:[[{x:4,y:0},{x:22,y:-4},{x:32,y:-2}],[{x:10,y:-5},{x:10,y:3}],[{x:16,y:-6},{x:24,y:1}]]},{plates:[[{x:5,y:-2},{x:14,y:-2},{x:24,y:-1},{x:34,y:0},{x:24,y:1},{x:14,y:2},{x:5,y:2}],[{x:12,y:-3},{x:22,y:-4},{x:30,y:-2},{x:22,y:0}],[{x:12,y:3},{x:22,y:4},{x:30,y:2},{x:22,y:0}],[{x:3,y:-5},{x:9,y:-3},{x:9,y:3},{x:3,y:5},{x:1,y:0}]],filledPlate:[true,false,false,true],tips:[[{x:32,y:-1},{x:40,y:0},{x:32,y:1}],[{x:20,y:-5},{x:26,y:-7},{x:24,y:-2}]],wires:[[{x:6,y:0},{x:36,y:0}],[{x:14,y:-3},{x:28,y:0},{x:14,y:3}],[{x:8,y:-4},{x:8,y:4}]]}];function hornSetExtent(set){let m=0;const consider=pts=>{for(const p of pts)m=Math.max(m,Math.hypot(p.x,p.y));};for(const plate of set.plates)consider(plate);for(const wire of set.wires)consider(wire);if(set.tips)for(const tip of set.tips)consider(tip);return m;}const STAG_HORN_EXTENT=STAG_HORN_SETS.map(hornSetExtent);const HERCULES_HORN_EXTENT=HERCULES_HORN_SETS.map(hornSetExtent);const FISH_SIDE_BY_KIND={// マグロ — torpedo + crescent tail + sickle dorsal\ntuna:[{bodies:[{filled:true,poly:[{x:-16,y:0},{x:-10,y:-5},{x:2,y:-7},{x:14,y:-4},{x:20,y:-1},{x:20,y:1},{x:14,y:4},{x:2,y:6},{x:-10,y:4}]},{filled:false,poly:[{x:-8,y:-2},{x:6,y:-3},{x:12,y:0},{x:6,y:2},{x:-8,y:1}]}],fins:[{role:\"tail\",filled:true,poly:[{x:-16,y:0},{x:-24,y:-7},{x:-20,y:0},{x:-24,y:7}]},{role:\"dorsal\",filled:false,poly:[{x:-2,y:-6},{x:4,y:-14},{x:10,y:-8},{x:6,y:-5}]},{role:\"pectoral\",filled:false,poly:[{x:2,y:3},{x:-2,y:8},{x:6,y:6}]}],wires:[[{x:-12,y:0},{x:16,y:0}],[{x:4,y:-5},{x:14,y:-2}]]}],// 鯨 — massive body, small dorsal, wide fluke\nwhale:[{bodies:[{filled:true,poly:[{x:-18,y:1},{x:-8,y:-6},{x:6,y:-8},{x:18,y:-4},{x:22,y:0},{x:16,y:5},{x:2,y:7},{x:-10,y:5}]},{filled:false,poly:[{x:-4,y:-3},{x:10,y:-4},{x:14,y:0},{x:8,y:3}]}],fins:[{role:\"tail\",filled:true,poly:[{x:-18,y:0},{x:-28,y:-5},{x:-32,y:0},{x:-28,y:5}]},{role:\"dorsal\",filled:false,poly:[{x:2,y:-7},{x:6,y:-12},{x:10,y:-8}]},{role:\"pectoral\",filled:true,poly:[{x:4,y:4},{x:0,y:10},{x:10,y:8},{x:12,y:4}]}],wires:[[{x:-14,y:0},{x:18,y:0}]]}],// イワシ — slender schooling body, forked tail\nsardine:[{bodies:[{filled:true,poly:[{x:-12,y:0},{x:-6,y:-3},{x:6,y:-4},{x:14,y:-2},{x:16,y:0},{x:14,y:2},{x:6,y:3},{x:-6,y:2}]},{filled:false,poly:[{x:-4,y:-1},{x:10,y:-1},{x:10,y:1},{x:-4,y:1}]}],fins:[{role:\"tail\",filled:false,poly:[{x:-12,y:0},{x:-18,y:-4},{x:-15,y:0},{x:-18,y:4}]},{role:\"dorsal\",filled:false,poly:[{x:0,y:-3},{x:3,y:-7},{x:7,y:-4}]}],wires:[[{x:-8,y:0},{x:12,y:0}],[{x:-2,y:-2},{x:8,y:-2}],[{x:-2,y:2},{x:8,y:2}]]}],// アンコウ — bulbous head/mouth, lure, tapered tail\nangler:[{bodies:[{filled:true,poly:[{x:-10,y:2},{x:-4,y:-4},{x:6,y:-8},{x:16,y:-6},{x:20,y:-1},{x:18,y:6},{x:8,y:9},{x:-2,y:7}]},{filled:false,poly:[{x:8,y:-4},{x:18,y:-3},{x:16,y:4},{x:8,y:3}]}],fins:[{role:\"tail\",filled:false,poly:[{x:-10,y:1},{x:-18,y:-3},{x:-14,y:2},{x:-16,y:6}]},{role:\"pectoral\",filled:true,poly:[{x:2,y:4},{x:-4,y:10},{x:6,y:9}]}],wires:[[{x:12,y:-6},{x:16,y:-14},{x:20,y:-12}],[{x:19,y:-12},{x:22,y:-11},{x:20,y:-9}],[{x:-4,y:0},{x:14,y:0}]]}],// ホウボウ — armored head, oversized wing-pectorals\ngurnard:[{bodies:[{filled:true,poly:[{x:-12,y:0},{x:-4,y:-5},{x:8,y:-6},{x:16,y:-3},{x:18,y:1},{x:12,y:5},{x:0,y:5},{x:-8,y:3}]},{filled:false,poly:[{x:8,y:-4},{x:16,y:-2},{x:14,y:2},{x:8,y:1}]}],fins:[{role:\"pectoral\",filled:true,poly:[{x:-2,y:2},{x:-8,y:8},{x:2,y:14},{x:12,y:10},{x:10,y:3}]},{role:\"dorsal\",filled:false,poly:[{x:0,y:-5},{x:-6,y:-12},{x:4,y:-16},{x:12,y:-9},{x:8,y:-4}]},{role:\"tail\",filled:false,poly:[{x:-12,y:0},{x:-18,y:-5},{x:-16,y:0},{x:-18,y:5}]}],wires:[[{x:2,y:4},{x:8,y:12}],[{x:2,y:-4},{x:8,y:-12}],[{x:-6,y:0},{x:14,y:0}]]}],// アジ — jack profile, lateral line, forked tail\naji:[{bodies:[{filled:true,poly:[{x:-14,y:0},{x:-6,y:-5},{x:6,y:-6},{x:16,y:-3},{x:18,y:0},{x:16,y:3},{x:6,y:5},{x:-6,y:4}]},{filled:false,poly:[{x:-4,y:-2},{x:12,y:-2},{x:12,y:2},{x:-4,y:2}]}],fins:[{role:\"tail\",filled:false,poly:[{x:-14,y:0},{x:-22,y:-6},{x:-18,y:0},{x:-22,y:6}]},{role:\"dorsal\",filled:false,poly:[{x:-2,y:-5},{x:2,y:-11},{x:8,y:-7}]},{role:\"pectoral\",filled:false,poly:[{x:2,y:3},{x:0,y:8},{x:8,y:6}]}],wires:[[{x:-10,y:0},{x:14,y:0}],[{x:-2,y:-3},{x:10,y:-1},{x:14,y:0}]]}],// 飛魚 — elongated, huge wing-pectorals\nflyingfish:[{bodies:[{filled:true,poly:[{x:-14,y:0},{x:-6,y:-3},{x:8,y:-4},{x:18,y:-2},{x:20,y:0},{x:16,y:2},{x:4,y:3},{x:-6,y:2}]},{filled:false,poly:[{x:0,y:-1},{x:14,y:-1},{x:14,y:1},{x:0,y:1}]}],fins:[{role:\"pectoral\",filled:true,poly:[{x:0,y:-2},{x:-4,y:-8},{x:6,y:-18},{x:18,y:-14},{x:16,y:-4},{x:8,y:-2}]},{role:\"pectoral\",filled:false,poly:[{x:2,y:2},{x:0,y:6},{x:10,y:10},{x:14,y:4}]},{role:\"tail\",filled:false,poly:[{x:-14,y:0},{x:-20,y:-4},{x:-17,y:0},{x:-20,y:4}]}],wires:[[{x:2,y:-4},{x:12,y:-14}],[{x:-8,y:0},{x:16,y:0}]]}],// エイ — wide diamond disc, whip tail\nray:[{bodies:[{filled:true,poly:[{x:-8,y:0},{x:-2,y:-9},{x:8,y:-11},{x:16,y:-4},{x:18,y:0},{x:16,y:4},{x:8,y:11},{x:-2,y:9}]},{filled:false,poly:[{x:0,y:-5},{x:10,y:-6},{x:12,y:0},{x:10,y:6},{x:0,y:5}]}],fins:[{role:\"pectoral\",filled:true,poly:[{x:-4,y:-2},{x:-10,y:-14},{x:6,y:-16},{x:12,y:-6}]},{role:\"pectoral\",filled:false,poly:[{x:-4,y:2},{x:-10,y:14},{x:6,y:16},{x:12,y:6}]},{role:\"tail\",filled:false,poly:[{x:-8,y:0},{x:-22,y:-1},{x:-26,y:0},{x:-22,y:1}]}],wires:[[{x:-6,y:0},{x:14,y:0}],[{x:2,y:-8},{x:2,y:8}],[{x:8,y:-6},{x:8,y:6}]]}],// ウナギ — long serpentine body\neel:[{bodies:[{filled:true,poly:[{x:-22,y:0},{x:-14,y:-2.2},{x:-2,y:-2.8},{x:10,y:-2.4},{x:20,y:-1.2},{x:24,y:0},{x:20,y:1.2},{x:10,y:2.4},{x:-2,y:2.6},{x:-14,y:2}]}],fins:[{role:\"dorsal\",filled:false,poly:[{x:-16,y:-2},{x:-4,y:-5},{x:8,y:-4},{x:14,y:-2}]},{role:\"tail\",filled:false,poly:[{x:-22,y:0},{x:-28,y:-2.5},{x:-30,y:0},{x:-28,y:2.5}]},{role:\"pectoral\",filled:false,poly:[{x:12,y:1},{x:10,y:4},{x:16,y:3}]}],wires:[[{x:-20,y:0},{x:22,y:0}],[{x:-12,y:-1.5},{x:-12,y:1.5}],[{x:0,y:-2},{x:0,y:2}],[{x:12,y:-1.8},{x:12,y:1.8}]]}],// フグ — round balloon body, tiny fins\npuffer:[{bodies:[{filled:true,poly:[{x:-10,y:0},{x:-8,y:-7},{x:-2,y:-11},{x:8,y:-10},{x:14,y:-4},{x:15,y:0},{x:14,y:4},{x:8,y:10},{x:-2,y:11},{x:-8,y:7}]},{filled:false,poly:[{x:-4,y:-4},{x:6,y:-5},{x:8,y:0},{x:6,y:5},{x:-4,y:4}]}],fins:[{role:\"tail\",filled:false,poly:[{x:-10,y:0},{x:-16,y:-4},{x:-14,y:0},{x:-16,y:4}]},{role:\"pectoral\",filled:false,poly:[{x:4,y:6},{x:2,y:10},{x:8,y:9}]},{role:\"dorsal\",filled:false,poly:[{x:0,y:-10},{x:4,y:-14},{x:8,y:-10}]}],wires:[[{x:-6,y:0},{x:12,y:0}],[{x:0,y:-8},{x:0,y:8}],[{x:6,y:-6},{x:10,y:0},{x:6,y:6}]]}],// マンボウ — tall truncated disc\nsunfish:[{bodies:[{filled:true,poly:[{x:-6,y:0},{x:-4,y:-12},{x:4,y:-14},{x:12,y:-8},{x:14,y:0},{x:12,y:8},{x:4,y:14},{x:-4,y:12}]}],fins:[{role:\"dorsal\",filled:true,poly:[{x:0,y:-12},{x:2,y:-22},{x:8,y:-14}]},{role:\"pectoral\",filled:true,poly:[{x:2,y:12},{x:4,y:22},{x:10,y:14}]},{role:\"tail\",filled:false,poly:[{x:-6,y:-8},{x:-10,y:0},{x:-6,y:8}]}],wires:[[{x:-2,y:-10},{x:-2,y:10}],[{x:6,y:-10},{x:6,y:10}],[{x:-4,y:0},{x:12,y:0}]]}],// サバ — streamlined striped runner\nmackerel:[{bodies:[{filled:true,poly:[{x:-17,y:0},{x:-10,y:-4},{x:2,y:-5.5},{x:14,y:-3.5},{x:21,y:-1},{x:21,y:1},{x:14,y:3.5},{x:2,y:5},{x:-10,y:3.5}]},{filled:false,poly:[{x:-6,y:-2},{x:10,y:-2.5},{x:14,y:0},{x:10,y:2},{x:-6,y:1.5}]}],fins:[{role:\"tail\",filled:true,poly:[{x:-17,y:0},{x:-25,y:-6},{x:-21,y:0},{x:-25,y:6}]},{role:\"dorsal\",filled:false,poly:[{x:-4,y:-5},{x:2,y:-12},{x:8,y:-6}]},{role:\"pectoral\",filled:false,poly:[{x:6,y:2},{x:2,y:7},{x:10,y:5}]}],wires:[[{x:-12,y:0},{x:18,y:0}],[{x:-8,y:-2},{x:12,y:-2}],[{x:-8,y:2},{x:12,y:2}],[{x:0,y:-4},{x:4,y:0},{x:0,y:4}]]}],// ヒラメ — flat asymmetric side body\nflatfish:[{bodies:[{filled:true,poly:[{x:-14,y:1},{x:-6,y:-3},{x:6,y:-4.5},{x:16,y:-2},{x:18,y:1},{x:12,y:4},{x:0,y:5},{x:-10,y:3.5}]},{filled:false,poly:[{x:-2,y:-1},{x:10,y:-2},{x:12,y:1},{x:4,y:2.5}]}],fins:[{role:\"dorsal\",filled:false,poly:[{x:-10,y:-2},{x:-2,y:-7},{x:8,y:-6},{x:14,y:-2}]},{role:\"pectoral\",filled:false,poly:[{x:4,y:3},{x:0,y:8},{x:10,y:6}]},{role:\"tail\",filled:true,poly:[{x:-14,y:1},{x:-20,y:-3},{x:-18,y:1},{x:-20,y:5}]}],wires:[[{x:-10,y:0},{x:14,y:0}],[{x:2,y:-3},{x:14,y:0},{x:2,y:3}],[{x:12,y:-2.5},{x:16,y:-.5}]]}],// ジンベエザメ — massive spotted cruiser\nwhaleShark:[{bodies:[{filled:true,poly:[{x:-22,y:1},{x:-12,y:-7},{x:2,y:-10},{x:16,y:-8},{x:26,y:-3},{x:28,y:1},{x:24,y:6},{x:10,y:9},{x:-6,y:8},{x:-18,y:5}]},{filled:false,poly:[{x:-8,y:-3},{x:12,y:-5},{x:18,y:0},{x:10,y:4},{x:-6,y:3}]}],fins:[{role:\"tail\",filled:true,poly:[{x:-22,y:0},{x:-34,y:-8},{x:-28,y:0},{x:-34,y:8}]},{role:\"dorsal\",filled:true,poly:[{x:-2,y:-8},{x:4,y:-16},{x:12,y:-9}]},{role:\"pectoral\",filled:true,poly:[{x:6,y:4},{x:-2,y:12},{x:14,y:11},{x:16,y:6}]}],wires:[[{x:-18,y:0},{x:24,y:0}],[{x:-10,y:-4},{x:-6,y:0},{x:-10,y:4}],[{x:0,y:-5},{x:4,y:0},{x:0,y:5}],[{x:10,y:-5},{x:14,y:0},{x:10,y:5}],[{x:18,y:-3},{x:22,y:0},{x:18,y:3}]]}],// カツオ — sleek high-speed runner\nbonito:[{bodies:[{filled:true,poly:[{x:-18,y:0},{x:-10,y:-3.5},{x:4,y:-4.5},{x:16,y:-2.5},{x:23,y:-.6},{x:23,y:.6},{x:16,y:2.5},{x:4,y:4},{x:-10,y:3}]},{filled:false,poly:[{x:-4,y:-1.5},{x:12,y:-2},{x:16,y:0},{x:12,y:1.5},{x:-4,y:1}]}],fins:[{role:\"tail\",filled:true,poly:[{x:-18,y:0},{x:-28,y:-7},{x:-22,y:0},{x:-28,y:7}]},{role:\"dorsal\",filled:false,poly:[{x:-2,y:-4},{x:4,y:-13},{x:10,y:-5}]},{role:\"pectoral\",filled:false,poly:[{x:8,y:1.5},{x:4,y:6},{x:12,y:4}]}],wires:[[{x:-14,y:0},{x:20,y:0}],[{x:-8,y:-2},{x:14,y:-1.5}],[{x:-8,y:2},{x:14,y:1.5}],[{x:2,y:-3.5},{x:6,y:0},{x:2,y:3.5}]]}]};const FLORA_KINDS=[\"agave\",\"cactus\",\"kino\",\"yucca\",\"aloe\",\"barrel\"];const FLORA_KIND_SEED={agave:1,cactus:2,kino:3,yucca:4,aloe:5,barrel:6};function floraNiche(kind){switch(kind){case\"agave\":return{scaleMin:1.45,scaleMax:1.95,growSec:9,height:10};case\"kino\":return{scaleMin:1.55,scaleMax:2.15,growSec:10,height:36};case\"cactus\":return{scaleMin:1.45,scaleMax:2.05,growSec:12,height:42};case\"yucca\":return{scaleMin:1.5,scaleMax:2.05,growSec:12,height:36};case\"aloe\":return{scaleMin:1.3,scaleMax:1.75,growSec:8,height:14};case\"barrel\":return{scaleMin:1.35,scaleMax:1.85,growSec:10,height:14};default:return{scaleMin:1,scaleMax:1.35,growSec:10,height:18};}}function floraGrowthU(creature){const niche=floraNiche(creature.genome.kind);const age=Math.max(0,creature.dorsalPhase||0);const t=Math.min(1,age/Math.max(.01,niche.growSec));return 1-Math.pow(1-t,2.4);}function floraSeed(g){return Math.abs(g.wingId)*17+Math.abs(g.mandibleId)*31+Math.abs(g.hornId)*13+(FLORA_KIND_SEED[g.kind]||6)*97;}/** Kits are static per genome seed — cache to avoid rebuild every draw frame. */const FLORA_KIT_CACHE=new Map;const FLORA_KIT_CACHE_MAX=48;function getDryFloraKit(kind,seed){const key=`${kind}:${seed}`;const hit=FLORA_KIT_CACHE.get(key);if(hit)return hit;const kit=buildDryFloraKit(kind,seed);if(FLORA_KIT_CACHE.size>=FLORA_KIT_CACHE_MAX){const oldest=FLORA_KIT_CACHE.keys().next().value;if(oldest!==undefined)FLORA_KIT_CACHE.delete(oldest);}FLORA_KIT_CACHE.set(key,kit);return kit;}function buildDryFloraKit(kind,seed){const s0=seed%97;const jitter=(i,amp)=>(s0*(i+3)*13%17/17-.5)*amp;const leafBlade=(len,width,taper=.35)=>[{x:.4,y:-width*.12},{x:len*.32,y:-width},{x:len*.7,y:-width*taper},{x:len,y:0},{x:len*.7,y:width*taper},{x:len*.32,y:width},{x:.4,y:width*.12}];const ringPoly=(rr,segs)=>{const poly=[];for(let i=0;i<=segs;i++){const a=i/segs*Math.PI*2;poly.push({x:Math.cos(a)*rr,y:Math.sin(a)*rr*.58});}return poly;};const diskPoly=(rr,segs)=>{const poly=[];for(let i=0;i<segs;i++){const a=i/segs*Math.PI*2;poly.push({x:Math.cos(a)*rr*.9,y:Math.sin(a)*rr*.52});}return poly;};const trunk=[];const ribs=[];const leaves=[];const ringWires=[];const wires=[];const spines3=[];const spines=[];const roots=[];if(kind===\"agave\"||kind===\"aloe\"){const n=kind===\"agave\"?9+s0%2:6+s0%2;const baseLen=kind===\"agave\"?26:22;const baseW=kind===\"agave\"?4.2:5;const basePitch=kind===\"agave\"?.55:.85;for(let i=0;i<n;i++){const ang=i/n*Math.PI*2+jitter(i,.14);const len=baseLen+jitter(i+2,2.8)+i%3*.45;const w=baseW+jitter(i+5,.55);const ring=i%3;const pitch=basePitch+(ring===0?.35:ring===1?.1:-.05)+jitter(i,.08);const lift=(kind===\"aloe\"?4:3)+ring*1.4+Math.abs(jitter(i,.8));leaves.push({poly:leafBlade(len,w,kind===\"agave\"?.2:.38),filled:i%2===0,ang,lift,pitch});spines.push({along0:len*.9,along1:len*1.14,side:jitter(i,.4),ang,lift,pitch});}trunk.push({poly:[{x:-5.5,y:-4.2},{x:-.8,y:-6.2},{x:5.2,y:-3.8},{x:6.2,y:2.2},{x:.8,y:6},{x:-4.5,y:3.6}],filled:true,lift:4.5});trunk.push({poly:[{x:-3.4,y:-2.6},{x:3.4,y:-3.2},{x:4,y:1.8},{x:-2.2,y:3.2}],filled:false,lift:7});for(let i=0;i<4;i++){const a=i/4*Math.PI*2;wires.push([{x:Math.cos(a)*1.2,y:Math.sin(a)*1.2},{x:Math.cos(a)*3.4,y:Math.sin(a)*3.4}]);}}else if(kind===\"yucca\"){const tiers=4+s0%2;for(let t=0;t<tiers;t++){const w=3.4-t*.2+jitter(t,.25);trunk.push({poly:[{x:-w,y:-w*.65},{x:w*.25,y:-w},{x:w,y:-w*.15},{x:w*.55,y:w*.8},{x:-w*.35,y:w},{x:-w*.85,y:w*.1}],filled:t%2===0,lift:8+t*7.2});}const H=8+tiers*7.2;for(let i=0;i<4;i++){const ang=i/4*Math.PI*2;ribs.push({ang,filled:false,pts:[{r:1.2,side:-.6,lift:4},{r:2.4,side:-.8,lift:8},{r:2.1,side:-.5,lift:H*.55},{r:1.6,side:0,lift:H},{r:2.1,side:.5,lift:H*.55},{r:2.4,side:.8,lift:8},{r:1.2,side:.6,lift:4}]});}const crownLift=H+2;const n=11+s0%3;for(let i=0;i<n;i++){const ang=i/n*Math.PI*2+jitter(i,.1);const len=18+jitter(i,3)+i%4*.5;const pitch=.95+jitter(i,.12)+i%3*.05;leaves.push({poly:leafBlade(len,1.15+jitter(i,.25),.12),filled:false,ang,lift:crownLift,pitch});spines.push({along0:len*.92,along1:len*1.16,side:0,ang,lift:crownLift,pitch});}}else if(kind===\"cactus\"){const H=62+jitter(0,8);const R=8.2+jitter(1,1.4);const nRibs=8;for(let i=0;i<nRibs;i++){const ang=i/nRibs*Math.PI*2+jitter(i,.05);const rIn=R*.42;const rOut=R*(.9+i%2*.08);const side=1.55+jitter(i,.2);ribs.push({ang,filled:true,pts:[{r:rIn,side:-side*.2,lift:3},{r:rOut,side:-side,lift:6},{r:rOut*1.05,side:-side*.8,lift:H*.25},{r:rOut*1.02,side:-side*.6,lift:H*.5},{r:rOut*.95,side:-side*.3,lift:H*.78},{r:rOut*.82,side:0,lift:H},{r:rOut*.95,side:side*.3,lift:H*.78},{r:rOut*1.02,side:side*.6,lift:H*.5},{r:rOut*1.05,side:side*.8,lift:H*.25},{r:rOut,side:side,lift:6},{r:rIn,side:side*.2,lift:3}]});for(let k=0;k<4;k++){const lh=8+k/3*(H-16);spines3.push({r0:rOut*.98,r1:rOut*1.28,side:0,ang,lift:lh});}}for(let b=0;b<5;b++){const lh=8+b*((H-12)/4.5);const rr=R*(.92-b*.015);ringWires.push({lift:lh,poly:ringPoly(rr,10)});if(b%2===0){trunk.push({poly:diskPoly(rr*.98,6),filled:true,lift:lh});}}for(let i=0;i<3;i++){const ang=i/3*Math.PI*2+.15;leaves.push({poly:leafBlade(5.8+jitter(i,.9),1.7,.4),filled:true,ang,lift:H+2,pitch:1.28});}trunk.push({poly:[{x:-R*.75,y:-R*.42},{x:R*.75,y:-R*.42},{x:R*.75,y:R*.42},{x:-R*.75,y:R*.42}],filled:true,lift:2.2});}else if(kind===\"kino\"){const R=17.5+jitter(0,2.2);const nRibs=10;const samples=8;for(let i=0;i<nRibs;i++){const ang=i/nRibs*Math.PI*2+jitter(i,.03);const side=1.7+jitter(i,.25);const pts=[];for(let s=0;s<=samples;s++){const phi=-Math.PI/2+s/samples*Math.PI;const rr=Math.max(1.2,R*Math.cos(phi));const lh=Math.max(2.5,R+R*Math.sin(phi));const sideMul=.4+.6*Math.cos(phi)*Math.cos(phi);pts.push({r:rr,side:-side*sideMul,lift:lh});}for(let s=samples;s>=0;s--){const phi=-Math.PI/2+s/samples*Math.PI;const rr=Math.max(.8,R*Math.cos(phi)*.62);const lh=Math.max(2.5,R+R*Math.sin(phi));pts.push({r:rr,side:side*.55,lift:lh});}ribs.push({ang,pts,filled:true});for(let s=2;s<samples;s+=2){const phi=-Math.PI/2+s/samples*Math.PI;const rr=R*Math.cos(phi);const lh=R+R*Math.sin(phi);if(rr<2.5)continue;spines3.push({r0:rr*.96,r1:rr*1.24+s%3*.2,side:jitter(s+i,.35),ang,lift:lh});}}for(let b=1;b<=4;b++){const phi=-Math.PI/2+b/5*Math.PI;const rr=Math.max(2,R*Math.cos(phi));const lh=R+R*Math.sin(phi);ringWires.push({lift:lh,poly:ringPoly(rr,10)});trunk.push({poly:diskPoly(rr,7),filled:b===2||b%2===0,lift:lh});}for(let i=0;i<6;i++){const ang=i/6*Math.PI*2+.08;leaves.push({poly:leafBlade(6.2+jitter(i,1.1),1.45,.28),filled:i%2===0,ang,lift:R*2+1.5,pitch:1.32+jitter(i,.06)});}trunk.push({poly:[{x:-R*.4,y:-R*.25},{x:R*.4,y:-R*.25},{x:R*.4,y:R*.25},{x:-R*.4,y:R*.25}],filled:true,lift:2});}else if(kind===\"barrel\"){const H=32+jitter(0,4);const Rmid=13+jitter(1,1.6);const nRibs=8;for(let i=0;i<nRibs;i++){const ang=i/nRibs*Math.PI*2;const side=1.5;const profile=u=>{const bulge=Math.sin(u*Math.PI);return Rmid*(.5+.5*bulge);};const pts=[];const steps=6;for(let s=0;s<=steps;s++){const u=s/steps;pts.push({r:profile(u),side:-side*(.35+.65*Math.sin(u*Math.PI)),lift:3+u*H});}for(let s=steps;s>=0;s--){const u=s/steps;pts.push({r:profile(u)*.68,side:side*.55,lift:3+u*H});}ribs.push({ang,pts,filled:i%2===0});for(let s=2;s<steps;s+=2){const u=s/steps;const rr=profile(u);spines3.push({r0:rr,r1:rr*1.22,side:0,ang,lift:3+u*H});}}for(let b=1;b<=3;b++){const u=b/4;const rr=Rmid*(.5+.5*Math.sin(u*Math.PI));ringWires.push({lift:3+u*H,poly:ringPoly(rr,8)});}trunk.push({poly:[{x:-Rmid*.55,y:-Rmid*.32},{x:Rmid*.55,y:-Rmid*.32},{x:Rmid*.55,y:Rmid*.32},{x:-Rmid*.55,y:Rmid*.32}],filled:true,lift:2});}for(let i=0;i<3;i++){const a=i/3*Math.PI*2+.25;roots.push([{x:Math.cos(a)*1.2,y:Math.sin(a)*1.2},{x:Math.cos(a)*5.5,y:Math.sin(a)*5.5},{x:Math.cos(a)*5.5+Math.cos(a+1.1)*2,y:Math.sin(a)*5.5+Math.sin(a+1.1)*2}]);}return{trunk,ribs,leaves,ringWires,wires,spines3,spines,roots};}const DRAGONFLY_WING_IDS=[3,4];const FISH_KINDS=[\"tuna\",\"whale\",\"sardine\",\"angler\",\"gurnard\",\"aji\",\"flyingfish\",\"ray\",\"eel\",\"puffer\",\"sunfish\",\"mackerel\",\"flatfish\",\"whaleShark\",\"bonito\"];function isFishKind(kind){return FISH_KINDS.includes(kind);}function isFloraKind(kind){return FLORA_KINDS.includes(kind);}/** Modular fish part pools — mix across motifs so clicks yield “new species” */const FISH_BODY_POOL=[];const FISH_FIN_POOL=[];const FISH_WIRE_POOL=[];/** Base-profile indices per kind (before morph fan-out) */const FISH_KIND_BASE_INDICES={};for(const kind of FISH_KINDS){const list=FISH_SIDE_BY_KIND[kind]||[];const idxs=[];for(const profile of list){idxs.push(FISH_BODY_POOL.length);FISH_BODY_POOL.push(profile.bodies.map(b=>({filled:b.filled,role:b.role||\"body\",poly:b.poly.map(p=>({...p}))})));FISH_FIN_POOL.push(profile.fins.map(f=>{const plate={filled:f.filled,poly:f.poly.map(p=>({...p})),role:f.role};plate.role=f.role||classifyFishPlate(plate);return plate;}));FISH_WIRE_POOL.push((profile.wires||[]).map(w=>w.map(p=>({...p}))));}FISH_KIND_BASE_INDICES[kind]=idxs;}/** Deterministic morph recipes — each base silhouette fans into many species */const FISH_MORPH_RECIPES=[{sx:1,sy:1,shear:0,nose:1,belly:1},{sx:1.22,sy:.72,shear:.06,nose:1.25,belly:.85},{sx:.78,sy:1.38,shear:-.1,nose:.82,belly:1.3},{sx:1.12,sy:1.18,shear:.12,nose:.9,belly:1.15},{sx:.88,sy:.7,shear:-.05,nose:1.35,belly:.75},{sx:1.35,sy:.62,shear:.02,nose:1.1,belly:.7},{sx:.7,sy:1.55,shear:.08,nose:.7,belly:1.4},{sx:1.05,sy:.9,shear:-.14,nose:1.15,belly:1.05},{sx:.95,sy:1.25,shear:.04,nose:.95,belly:.9},{sx:1.18,sy:.85,shear:-.08,nose:1.4,belly:.95}];function morphFishPoly(poly,recipe){return poly.map(p=>{let x=p.x*recipe.sx+p.y*recipe.shear;let y=p.y*recipe.sy;if(p.x>10)x*=recipe.nose;if(p.y>0)y*=recipe.belly;return{x,y};});}const FISH_BODY_BASE=FISH_BODY_POOL.map(body=>body.map(plate=>({filled:plate.filled,role:plate.role||\"body\",poly:plate.poly.map(p=>({...p}))})));const FISH_FIN_BASE=FISH_FIN_POOL.map(fins=>fins.map(plate=>({filled:plate.filled,role:plate.role,poly:plate.poly.map(p=>({...p}))})));FISH_BODY_POOL.length=0;FISH_FIN_POOL.length=0;for(const recipe of FISH_MORPH_RECIPES){for(const body of FISH_BODY_BASE){FISH_BODY_POOL.push(body.map(plate=>({filled:plate.filled,role:plate.role||\"body\",poly:morphFishPoly(plate.poly,recipe)})));}for(const fins of FISH_FIN_BASE){FISH_FIN_POOL.push(fins.map(plate=>{const morph={filled:plate.filled,role:plate.role,poly:morphFishPoly(plate.poly,recipe)};morph.role=plate.role||classifyFishPlate(morph);return morph;}));}}[...FISH_FIN_POOL].forEach((fins,i)=>{if(i%3!==0)return;FISH_FIN_POOL.push(fins.map(plate=>({...plate,filled:!plate.filled,poly:plate.poly.map(p=>({...p}))})));});/** Genome → layout / density seed for facet + wire recipes */function fishGenomeSeed(g){const s=g.segments;return Math.abs(g.wingId)*17+Math.abs(g.mandibleId)*31+Math.abs(g.hornId)*13+(s[0]?.shapeId||0)*7+(s[1]?.shapeId||0)*11+(s[2]?.shapeId||0)*19+Math.floor((s[0]?.scale||1)*10)+Math.floor((s[1]?.scale||1)*13)+Math.floor((s[2]?.scale||1)*17);}const FISH_LAYOUT_STYLES=[{abMid:-9.5,abSpan:8.5,abY:.38,thMid:3.5,thSpan:9.5,thY:.95,hdMid:15.5,hdSpan:6.2,hdY:.42,ringCount:3,snout:true,ghostThorax:true,gillCount:6,ribStep:1.7,abRingStep:1.55,dorsalH:8.2,dorsalW:3.2,dorsalX:0},{abMid:-11,abSpan:10,abY:.28,thMid:2,thSpan:8,thY:1.15,hdMid:14,hdSpan:5,hdY:.55,ringCount:4,snout:true,ghostThorax:false,gillCount:4,ribStep:2.1,abRingStep:1.3,dorsalH:6.5,dorsalW:4.5,dorsalX:-2},{abMid:-7,abSpan:6,abY:.55,thMid:5,thSpan:11,thY:.75,hdMid:17,hdSpan:7.5,hdY:.32,ringCount:2,snout:true,ghostThorax:true,gillCount:8,ribStep:1.35,abRingStep:1.9,dorsalH:10,dorsalW:2.4,dorsalX:2},{abMid:-12.5,abSpan:11,abY:.22,thMid:1,thSpan:7,thY:.85,hdMid:13.5,hdSpan:4.5,hdY:.48,ringCount:5,snout:false,ghostThorax:true,gillCount:5,ribStep:1.9,abRingStep:1.15,dorsalH:5.5,dorsalW:5,dorsalX:-3},{abMid:-8,abSpan:7,abY:.7,thMid:4,thSpan:10,thY:1.25,hdMid:16,hdSpan:5.5,hdY:.6,ringCount:1,snout:true,ghostThorax:false,gillCount:3,ribStep:2.4,abRingStep:2.2,dorsalH:11,dorsalW:2.8,dorsalX:1},{abMid:-10,abSpan:9,abY:.33,thMid:3,thSpan:12,thY:.65,hdMid:18,hdSpan:8,hdY:.28,ringCount:3,snout:true,ghostThorax:true,gillCount:7,ribStep:1.5,abRingStep:1.45,dorsalH:7,dorsalW:3.8,dorsalX:.5}];function fishLayoutStyle(g){return FISH_LAYOUT_STYLES[fishGenomeSeed(g)%FISH_LAYOUT_STYLES.length];}/** Kind-level silhouette bias — extreme roles read at a glance */function fishKindSilhouette(kind){switch(kind){case\"whaleShark\":return{sx:1.55,sy:1.45,nose:1.15};case\"whale\":return{sx:1.28,sy:1.35,nose:.95};case\"ray\":return{sx:.82,sy:1.7,nose:.7};case\"eel\":return{sx:1.65,sy:.42,nose:1.2};case\"puffer\":return{sx:.7,sy:1.55,nose:.8};case\"sunfish\":return{sx:.58,sy:1.75,nose:.55};case\"mackerel\":return{sx:1.18,sy:.72,nose:1.25};case\"bonito\":return{sx:1.22,sy:.68,nose:1.3};case\"tuna\":return{sx:1.15,sy:.85,nose:1.12};case\"flatfish\":return{sx:1.12,sy:.48,nose:1};case\"sardine\":return{sx:.95,sy:.55,nose:1.15};case\"angler\":return{sx:.78,sy:1.35,nose:1.45};case\"gurnard\":return{sx:.9,sy:1.15,nose:1.05};case\"aji\":return{sx:1.12,sy:.8,nose:1.18};case\"flyingfish\":return{sx:1.08,sy:.62,nose:1.08};default:return{sx:1,sy:1,nose:1};}}function fishNiche(kind){switch(kind){case\"whaleShark\":return{scaleMin:2.15,scaleMax:2.75,speed:.42,flap:.45,heightMin:2,heightMax:10,bob:2.5,turnSlow:1.6,jump:false,depthY:.15};case\"whale\":return{scaleMin:1.7,scaleMax:2.2,speed:.55,flap:.55,heightMin:4,heightMax:14,bob:3,turnSlow:1.35,jump:false,depthY:.1};case\"tuna\":return{scaleMin:1.05,scaleMax:1.3,speed:1.65,flap:1.35,heightMin:16,heightMax:34,bob:5,turnSlow:.85,jump:false,depthY:-.15};case\"bonito\":return{scaleMin:.95,scaleMax:1.2,speed:1.85,flap:1.55,heightMin:18,heightMax:38,bob:4.5,turnSlow:.75,jump:false,depthY:-.2};case\"mackerel\":return{scaleMin:.9,scaleMax:1.15,speed:1.55,flap:1.4,heightMin:14,heightMax:32,bob:4,turnSlow:.8,jump:false,depthY:-.1};case\"flyingfish\":return{scaleMin:.7,scaleMax:.95,speed:1.4,flap:1.7,heightMin:30,heightMax:48,bob:3,turnSlow:.7,jump:true,depthY:-.35};case\"angler\":return{scaleMin:.85,scaleMax:1.2,speed:.38,flap:.65,heightMin:0,heightMax:4,bob:1.2,turnSlow:1.5,jump:false,depthY:.55};case\"sardine\":return{scaleMin:.55,scaleMax:.75,speed:1.45,flap:1.6,heightMin:20,heightMax:40,bob:3.5,turnSlow:.7,jump:false,depthY:-.25};case\"ray\":return{scaleMin:1.1,scaleMax:1.45,speed:.55,flap:.7,heightMin:1,heightMax:8,bob:2,turnSlow:1.25,jump:false,depthY:.4};case\"eel\":return{scaleMin:.85,scaleMax:1.15,speed:.7,flap:1.1,heightMin:2,heightMax:12,bob:4,turnSlow:1.1,jump:false,depthY:.35};case\"flatfish\":return{scaleMin:.85,scaleMax:1.15,speed:.5,flap:.75,heightMin:0,heightMax:3,bob:1,turnSlow:1.2,jump:false,depthY:.5};case\"sunfish\":return{scaleMin:1.35,scaleMax:1.75,speed:.4,flap:.5,heightMin:12,heightMax:28,bob:2,turnSlow:1.4,jump:false,depthY:0};case\"puffer\":return{scaleMin:.8,scaleMax:1.1,speed:.55,flap:.9,heightMin:6,heightMax:18,bob:2.5,turnSlow:1.15,jump:false,depthY:.2};default:return{scaleMin:.95,scaleMax:1.25,speed:1,flap:1,heightMin:10,heightMax:26,bob:4,turnSlow:1,jump:false,depthY:0};}}function pickFishKind(){const roll=Math.random();// Bias toward the distinctive ecological roles the user called out\nif(roll<.12)return\"whaleShark\";if(roll<.2)return\"whale\";if(roll<.32)return\"tuna\";if(roll<.44)return\"bonito\";if(roll<.56)return\"flyingfish\";if(roll<.68)return\"angler\";if(roll<.76)return\"sardine\";if(roll<.82)return\"mackerel\";return randPick([\"gurnard\",\"aji\",\"ray\",\"eel\",\"puffer\",\"sunfish\",\"flatfish\"]);}/** Prefer own-kind silhouette slots so niches stay readable; allow hybrid mix */function pickFishPartId(kind,poolLen,baseCount){const bases=FISH_KIND_BASE_INDICES[kind]||[];if(bases.length&&Math.random()<.78&&baseCount>0){const baseIdx=bases[Math.floor(Math.random()*bases.length)];const recipeIdx=Math.floor(Math.random()*FISH_MORPH_RECIPES.length);return(recipeIdx*baseCount+baseIdx)%Math.max(1,poolLen);}return Math.floor(Math.random()*Math.max(1,poolLen));}function applyFishSilhouette(plates,kind,extra){const sil=fishKindSilhouette(kind);const sx=sil.sx*(extra?.sx||1);const sy=sil.sy*(extra?.sy||1);return plates.map(plate=>({...plate,poly:plate.poly.map(p=>{let x=p.x*sx;let y=p.y*sy;if(p.x>10)x*=sil.nose;return{x,y};})}));}function densifyFishWires(wires){const base=wires&&wires.length?wires:[[{x:-12,y:0},{x:16,y:0}]];const out=[];for(const w of base){const ay=w.reduce((s,p)=>s+p.y,0)/Math.max(1,w.length);// Drop back-ridge wires — they read as a second dorsal\nif(ay<-2.8)continue;out.push(w.map(p=>({x:p.x,y:p.y})));// One lateral pair only — densify used to 5× midlines\nif(Math.abs(ay)<2.4){out.push(w.map(p=>({x:p.x,y:p.y-.7})));out.push(w.map(p=>({x:p.x,y:p.y+.7})));}}return out;}/** Map insect SHAPE_POOL onto fish zones with strong head / thorax / abdomen contrast */function buildFishFacetPlates(g){const abdomen=g.segments[0];const thorax=g.segments[1];const head=g.segments[2];const layout=fishLayoutStyle(g);const seed=fishGenomeSeed(g);// Prefer insect shapes that already read as role-specific\nconst shapeFor=(seg,prefer)=>{const pref=prefer[(Math.abs(seg.shapeId)+seed)%prefer.length];const id=seg.shapeId%4===0?seg.shapeId:pref;return SHAPE_POOL[(id%SHAPE_POOL.length+SHAPE_POOL.length)%SHAPE_POOL.length];};const mapZone=(shape,opts)=>{const skew=opts.xSkew||0;return{role:\"body\",zone:opts.zone,filled:opts.filled,poly:shape.map(p=>({x:opts.xMid+p.x/15*opts.xSpan*opts.sc+opts.ox+p.y*skew,y:p.y*opts.yMul*opts.sc+opts.oy}))};};const plates=[];const sil=fishKindSilhouette(g.kind);// Abdomen — elongated, thin, multi-ring like insect rear\nconst abScale=(.7+abdomen.scale*.55)*(.85+sil.sy*.15);const abShape=shapeFor(abdomen,[4,5,0,9]);plates.push(mapZone(abShape,{zone:\"abdomen\",xMid:layout.abMid*sil.sx,xSpan:layout.abSpan*sil.sx,yMul:layout.abY*sil.sy,sc:abScale,ox:(abdomen.offsetX||0)*.22,oy:(abdomen.offsetY||0)*.28,xSkew:-.08+seed%5*.02,filled:!!abdomen.filled}));// Secondary abdomen rings (insect segment stack)\nfor(let r=0;r<layout.ringCount;r++){const ringShape=shapeFor(abdomen,[4,9,5,0]);const t=layout.ringCount<=1?.5:r/(layout.ringCount-1);plates.push(mapZone(ringShape,{zone:\"abdomen\",xMid:(layout.abMid-4+r*2.8)*sil.sx,xSpan:(3+(1-t)*1.6)*sil.sx,yMul:(.24+t*.1)*sil.sy,sc:abScale*(.5+t*.25),ox:(abdomen.offsetX||0)*.1,oy:(abdomen.offsetY||0)*.15,filled:false}));}// Thorax — widest carapace / twin-blade plate\nconst thScale=(.85+thorax.scale*.55)*(.9+sil.sy*.1);plates.push(mapZone(shapeFor(thorax,[1,0,2,5]),{zone:\"thorax\",xMid:layout.thMid*sil.sx,xSpan:layout.thSpan*sil.sx,yMul:layout.thY*sil.sy,sc:thScale,ox:(thorax.offsetX||0)*.2,oy:(thorax.offsetY||0)*.35,filled:true}));// Ghost thorax overlap plate (constructivist stack)\nif(layout.ghostThorax){plates.push(mapZone(shapeFor(thorax,[2,1,0]),{zone:\"thorax\",xMid:(layout.thMid-2.2)*sil.sx,xSpan:layout.thSpan*.78*sil.sx,yMul:layout.thY*.75*sil.sy,sc:thScale*.82,ox:(thorax.offsetX||0)*.12-1.2,oy:(thorax.offsetY||0)*.2+.6,filled:false}));}// Head — compact block / spear snout\nconst hdScale=(.55+head.scale*.5)*(.9+sil.nose*.1);plates.push(mapZone(shapeFor(head,[8,3,7,6]),{zone:\"head\",xMid:layout.hdMid*sil.sx,xSpan:layout.hdSpan*sil.sx,yMul:layout.hdY*sil.sy,sc:hdScale,ox:(head.offsetX||0)*.18,oy:(head.offsetY||0)*.25,xSkew:.08+seed%4*.03,filled:true}));if(layout.snout){plates.push(mapZone(shapeFor(head,[7,3,6]),{zone:\"head\",xMid:(layout.hdMid+4.2)*sil.sx*sil.nose,xSpan:3.4*sil.sx,yMul:layout.hdY*.7*sil.sy,sc:hdScale*.9,ox:(head.offsetX||0)*.1,oy:(head.offsetY||0)*.12,filled:head.filled||false}));}return plates;}/** Dense constructivist wire lattice — gills, ribs, braces (no dorsal ridge) */function buildFishDetailWires(g){const headBias=(g.segments[2]?.offsetX||0)*.3;const midBias=(g.segments[1]?.offsetY||0)*.2;const abBias=(g.segments[0]?.offsetY||0)*.15;const layout=fishLayoutStyle(g);const sil=fishKindSilhouette(g.kind);const seed=fishGenomeSeed(g);const wires=[];const xL=-15.5*sil.sx;const xR=18.5*sil.sx;const yScale=sil.sy;// Longitudinal ribs — count varies by style\nconst ribYs=seed%3===0?[-2.6,-1.3,0,1.3,2.6]:seed%3===1?[-3,-1.8,-.6,.6,1.8,3]:[-2.2,0,2.2];for(const y of ribYs){wires.push([{x:xL,y:y*.55*yScale+abBias*.2},{x:-2*sil.sx,y:y*.85*yScale+midBias*.25},{x:11*sil.sx,y:y*yScale+midBias*.15},{x:xR,y:y*.55*yScale+headBias*.05}]);}// Abdomen ring seams\nfor(let x=-15*sil.sx;x<=-2*sil.sx;x+=layout.abRingStep*1.35){const t=(x/sil.sx+15)/13;const h=(2.1+t*1.6+Math.abs(abBias))*yScale;wires.push([{x,y:-h},{x:x+.35,y:0},{x,y:h}]);}// Thorax cross lattice\nfor(let x=-1*sil.sx;x<=11*sil.sx;x+=layout.ribStep*1.4){const h=(4.6+Math.abs(midBias)*.4-Math.abs(x/sil.sx-4)*.12)*yScale;wires.push([{x,y:-h},{x:x+.55,y:0},{x,y:h}]);if(seed%2===1){wires.push([{x:x-1.2,y:-h*.7},{x:x+1.6,y:h*.35}]);}}// Gill chevrons\nconst gillX=(12.2+headBias)*sil.sx;const gillN=Math.max(2,Math.min(4,layout.gillCount));for(let i=0;i<gillN;i++){const gx=gillX-i*1.05*sil.sx;const open=(3.2+i*.18)*yScale;wires.push([{x:gx,y:-open},{x:gx+1.7*sil.sx,y:-.25},{x:gx+1.7*sil.sx,y:.25},{x:gx,y:open}]);}// Jaw / snout cage — skip for blunt styles\nif(layout.snout){const nose=sil.nose;wires.push([{x:15.2*sil.sx,y:-2.4*yScale},{x:20.8*sil.sx*nose,y:-.55},{x:20.8*sil.sx*nose,y:.55},{x:15.2*sil.sx,y:2.4*yScale}]);wires.push([{x:16.5*sil.sx,y:-1.5*yScale},{x:22*sil.sx*nose,y:0},{x:16.5*sil.sx,y:1.5*yScale}]);}// Eye socket\nwires.push([{x:13.2*sil.sx,y:-2.6*yScale},{x:16.4*sil.sx,y:-2.6*yScale},{x:16.4*sil.sx,y:-.4*yScale},{x:13.2*sil.sx,y:-.4*yScale},{x:13.2*sil.sx,y:-2.6*yScale}]);// Tail peduncle braces\nfor(const span of[2.9,1.35]){wires.push([{x:-7.5*sil.sx,y:-span*yScale},{x:(-16.5-(3-span))*sil.sx,y:0},{x:-7.5*sil.sx,y:span*yScale}]);}// Diagonal constructivist overlaps — keep 2 per style\nconst diags=seed%3===0?[[{x:-14.5,y:2.6},{x:6,y:-2.4}],[{x:-10,y:-2.8},{x:12,y:2}]]:seed%3===1?[[{x:-15,y:-1.2},{x:2,y:2.6}],[{x:1,y:-3.2},{x:14.5,y:2.2}]]:[[{x:-13,y:1.8},{x:14,y:-1}],[{x:-6,y:-2.6},{x:16,y:1.4}]];for(const d of diags){wires.push(d.map(p=>({x:p.x*sil.sx,y:p.y*yScale})));}// Detail wires are already dense — skip densifyFishWires (was 3–5×)\nreturn wires;}/** Flatten the body back so the silhouette ridge doesn't read as a second dorsal */function flattenFishBack(bodies){return bodies.map(b=>{if(!b.filled||!b.poly.length)return b;let topY=Infinity;for(const p of b.poly){if(p.x>-6&&p.x<12)topY=Math.min(topY,p.y);}if(!Number.isFinite(topY))return b;const flatY=topY+1.35;return{...b,poly:b.poly.map(p=>p.x>-6&&p.x<12&&p.y<flatY?{x:p.x,y:flatY}:{x:p.x,y:p.y})};});}/** Single canonical dorsal triangle on the body top — never use hybrid extras */function buildCanonicalDorsal(bodies,g){const body=bodies.find(b=>b.filled)||bodies[0];if(!body||!body.poly.length)return null;let topY=Infinity;let sumX=0;let n=0;for(const p of body.poly){if(p.x>-8&&p.x<14){if(p.y<topY)topY=p.y;sumX+=p.x;n++;}}if(!n||!Number.isFinite(topY))return null;const layout=g?fishLayoutStyle(g):FISH_LAYOUT_STYLES[0];const sil=g?fishKindSilhouette(g.kind):{sx:1,sy:1,nose:1};const midX=Math.max(-3,Math.min(8,sumX/n+layout.dorsalX*sil.sx));const baseY=topY+.15;const h=layout.dorsalH*(.85+sil.sy*.15);const w=layout.dorsalW*sil.sx;return{role:\"dorsal\",filled:true,poly:[{x:midX-w,y:baseY},{x:midX+w*.08,y:baseY-h},{x:midX+w*1.25,y:baseY+.25}]};}function assembleFishParts(g){const seed=fishGenomeSeed(g);const bodiesRaw=FISH_BODY_POOL[Math.abs(g.wingId)%Math.max(1,FISH_BODY_POOL.length)]||FISH_BODY_POOL[0];const finsRawPool=FISH_FIN_POOL[Math.abs(g.mandibleId)%Math.max(1,FISH_FIN_POOL.length)]||FISH_FIN_POOL[0];// Secondary genome scale nudge so same pool slot still differs\nconst sxNudge=.92+(g.scale||1)*.08+(seed%7-3)*.02;const syNudge=.9+(g.segments[1]?.scale||1)*.08+((seed>>3)%7-3)*.025;const bodies=applyFishSilhouette(bodiesRaw,g.kind,{sx:sxNudge,sy:syNudge});const finsRaw=applyFishSilhouette(finsRawPool,g.kind,{sx:sxNudge,sy:syNudge});const fins=finsRaw.filter(f=>(f.role||classifyFishPlate(f))!==\"dorsal\");const baseWires=FISH_WIRE_POOL[Math.abs(g.hornId)%Math.max(1,FISH_WIRE_POOL.length)]||[];const wires=[...densifyFishWires(baseWires),...buildFishDetailWires(g)];const facets=buildFishFacetPlates(g);return{bodies,fins,wires,facets};}const FISH_DRAW_CACHE=new Map;const FISH_DRAW_CACHE_MAX=64;function fishDrawCacheKey(g){const s0=g.segments[0];const s1=g.segments[1];const s2=g.segments[2];const segKey=s=>s?`${s.shapeId}:${(s.scale||1).toFixed(2)}:${(s.offsetX||0).toFixed(1)}:${(s.offsetY||0).toFixed(1)}:${s.filled?1:0}`:\"0\";return[g.kind,g.wingId,g.mandibleId,g.hornId,(g.scale||1).toFixed(3),segKey(s0),segKey(s1),segKey(s2)].join(\"|\");}function getFishDrawKit(g){const key=fishDrawCacheKey(g);const hit=FISH_DRAW_CACHE.get(key);if(hit)return hit;const profile=assembleFishParts(g);const flatBodies=flattenFishBack(profile.bodies);const kit={bodies:flatBodies.filter(b=>(b.role||classifyFishPlate(b))===\"body\"||!b.role),facets:profile.facets||[],wires:profile.wires||[],dorsalFin:buildCanonicalDorsal(flatBodies,g),tailFin:pickPrimaryFin(profile.fins,\"tail\"),pecFin:pickPrimaryFin(profile.fins,\"pectoral\")};if(FISH_DRAW_CACHE.size>=FISH_DRAW_CACHE_MAX){const oldest=FISH_DRAW_CACHE.keys().next().value;if(oldest!==undefined)FISH_DRAW_CACHE.delete(oldest);}FISH_DRAW_CACHE.set(key,kit);return kit;}const STEP_GROUP_A=[0,2,5];const STEP_GROUP_B=[1,3,4];function createAgent(){return{x:(Math.random()-.5)*400,y:(Math.random()-.5)*400,z:(Math.random()-.5)*250,vx:(Math.random()-.5)*1.5,vy:(Math.random()-.5)*1.5,vz:(Math.random()-.5)*1.5,ax:0,ay:0,az:0};}function ensureAgentCount(agents,count){while(agents.length<count)agents.push(createAgent());}function degToRad(d){return d*Math.PI/180;}function wrapAngle(a){while(a>Math.PI)a-=Math.PI*2;while(a<-Math.PI)a+=Math.PI*2;return a;}function groundToScreen(x,y,originX,originY,perspective=1.2,depth=.5){const zoom=Math.max(.4,perspective);const d=Math.max(.15,Math.min(1,depth));const gx=GROUND_X_BASE*zoom;const gy=GROUND_Y_BASE*(.55+d*.9)*zoom;return{x:originX+(x-y)*gx,y:originY+(x+y)*gy};}function screenToGround(sx,sy,originX,originY,perspective=1.2,depth=.5){const zoom=Math.max(.4,perspective);const d=Math.max(.15,Math.min(1,depth));const gx=GROUND_X_BASE*zoom;const gy=GROUND_Y_BASE*(.55+d*.9)*zoom;const u=(sx-originX)/gx;const v=(sy-originY)/gy;return{x:(u+v)*.5,y:(v-u)*.5};}/** Original particle-life field, projected onto the creature ground plane */function updateAndDrawGroundParticles(ctx,agents,count,opts){const n=Math.max(0,Math.min(count,agents.length));if(n<2)return;const margin=opts.groundSpan*.72;const pRadius=opts.perceptionRadius*1.15;const pRadiusSq=pRadius*pRadius;const shouldUpdate=opts.frameCount%2===0;const drawLinks=opts.frameCount%2===1;// Spatial hash — replaces O(n²) neighbor scans\nconst cellSize=Math.max(14,pRadius);const invCell=1/cellSize;const buckets=new Map;const cellHash=(cx,cy,cz)=>cx*73856093^cy*19349663^cz*83492791|0;const rebuildBuckets=()=>{buckets.clear();for(let i=0;i<n;i++){const a=agents[i];if(!a)continue;const cx=Math.floor(a.x*invCell);const cy=Math.floor(a.y*invCell);const cz=Math.floor(a.z*invCell);const k=cellHash(cx,cy,cz);let bucket=buckets.get(k);if(!bucket){bucket=[];buckets.set(k,bucket);}bucket.push(i);}};if(shouldUpdate)rebuildBuckets();for(let i=0;i<n;i++){const a=agents[i];if(!a)continue;if(shouldUpdate){let closeDx=0;let closeDy=0;let closeDz=0;let avgVx=0;let avgVy=0;let avgVz=0;let avgX=0;let avgY=0;let avgZ=0;let neighbors=0;const cx=Math.floor(a.x*invCell);const cy=Math.floor(a.y*invCell);const cz=Math.floor(a.z*invCell);for(let dz=-1;dz<=1;dz++){for(let dy=-1;dy<=1;dy++){for(let dx=-1;dx<=1;dx++){const bucket=buckets.get(cellHash(cx+dx,cy+dy,cz+dz));if(!bucket)continue;for(let bi=0;bi<bucket.length;bi++){const j=bucket[bi];if(j===i)continue;const b=agents[j];const ddx=a.x-b.x;const ddy=a.y-b.y;const ddz=a.z-b.z;const distSq=ddx*ddx+ddy*ddy+ddz*ddz;if(distSq>=pRadiusSq)continue;if(distSq<225){closeDx+=ddx;closeDy+=ddy;closeDz+=ddz;}avgVx+=b.vx;avgVy+=b.vy;avgVz+=b.vz;avgX+=b.x;avgY+=b.y;avgZ+=b.z;neighbors++;}}}}if(neighbors>0){avgVx/=neighbors;avgVy/=neighbors;avgVz/=neighbors;avgX/=neighbors;avgY/=neighbors;avgZ/=neighbors;a.ax+=(avgX-a.x)*(opts.lifeForce*.001);a.ax+=(avgVx-a.vx)*(opts.lifeForce*.01);a.ax+=closeDx*.03;a.ay+=(avgY-a.y)*(opts.lifeForce*.001);a.ay+=(avgVy-a.vy)*(opts.lifeForce*.01);a.ay+=closeDy*.03;a.az+=(avgZ-a.z)*(opts.lifeForce*.001);a.az+=(avgVz-a.vz)*(opts.lifeForce*.01);a.az+=closeDz*.03;}a.az+=-a.z*.04;if(opts.hasMouse){const g=screenToGround(opts.mouseX,opts.mouseY,opts.originX,opts.originY,opts.perspective,opts.depth);const mdx=g.x-a.x;const mdy=g.y-a.y;const mdistSq=mdx*mdx+mdy*mdy;const mouseRadius=opts.groundSpan*.28;if(mdistSq<mouseRadius*mouseRadius){const mdist=Math.sqrt(mdistSq)||1;a.ax+=mdx/mdist*opts.mouseInfluence*.12;a.ay+=mdy/mdist*opts.mouseInfluence*.12;}}a.vx+=a.ax;a.vy+=a.ay;a.vz+=a.az;const maxVel=1.35*opts.speed;const velSq=a.vx*a.vx+a.vy*a.vy+a.vz*a.vz;if(velSq>maxVel*maxVel){const vel=Math.sqrt(velSq);a.vx=a.vx/vel*maxVel;a.vy=a.vy/vel*maxVel;a.vz=a.vz/vel*maxVel;}a.ax=0;a.ay=0;a.az=0;}a.x+=a.vx;a.y+=a.vy;a.z+=a.vz;if(a.x<-margin){a.x=-margin;a.vx*=-1;}if(a.x>margin){a.x=margin;a.vx*=-1;}if(a.y<-margin){a.y=-margin;a.vy*=-1;}if(a.y>margin){a.y=margin;a.vy*=-1;}if(Math.abs(a.z)>40)a.vz*=-1;}if(drawLinks)rebuildBuckets();const activeRadius=opts.perceptionRadius*1.05;const activeRadiusSq=activeRadius*activeRadius;const projected=new Array(n);const MAX_LINKS=5;for(let i=0;i<n;i++){const a=agents[i];const scr=groundToScreen(a.x,a.y,opts.originX,opts.originY,opts.perspective,opts.depth);const lift=a.z*.035;const scale=1/(1+Math.abs(a.z)*.004);projected[i]={x:scr.x,y:scr.y-lift,r:Math.max(.35,1.05*scale)};}ctx.save();ctx.lineJoin=\"round\";ctx.lineCap=\"round\";ctx.lineWidth=.5;ctx.strokeStyle=opts.lineColor;if(drawLinks){for(let i=0;i<n;i++){const a=agents[i];const pa=projected[i];const cx=Math.floor(a.x*invCell);const cy=Math.floor(a.y*invCell);const cz=Math.floor(a.z*invCell);let links=0;outer:for(let dz=-1;dz<=1;dz++){for(let dy=-1;dy<=1;dy++){for(let dx=-1;dx<=1;dx++){const bucket=buckets.get(cellHash(cx+dx,cy+dy,cz+dz));if(!bucket)continue;for(let bi=0;bi<bucket.length;bi++){const j=bucket[bi];if(j<=i)continue;const b=agents[j];const ddx=a.x-b.x;const ddy=a.y-b.y;const ddz=a.z-b.z;const dSq=ddx*ddx+ddy*ddy+ddz*ddz;if(dSq>=activeRadiusSq)continue;const pb=projected[j];const proximity=1-dSq/activeRadiusSq;ctx.globalAlpha=Math.min(.16,proximity*(.06+opts.layoutFlash*.1));ctx.beginPath();ctx.moveTo(pa.x,pa.y);ctx.lineTo(pb.x,pb.y);ctx.stroke();links++;if(links>=MAX_LINKS)break outer;}}}}}}ctx.fillStyle=opts.pointColor;for(let i=0;i<n;i++){const p=projected[i];ctx.globalAlpha=Math.min(.32,.14+opts.layoutFlash*.12);ctx.beginPath();ctx.arc(p.x,p.y,Math.max(.25,p.r*.7),0,Math.PI*2);ctx.fill();}ctx.restore();}function shadeHexOrRgb(color,factor){const channels=parseColorChannels(color);if(!channels)return color;return`rgb(${channels.map(v=>Math.round(Math.min(255,Math.max(0,v*factor)))).join(\",\")})`;}function colorsEqual(ctx,a,b){try{const na=normalizeCanvasColor(ctx,a).replace(/\\s/g,\"\").toLowerCase();const nb=normalizeCanvasColor(ctx,b).replace(/\\s/g,\"\").toLowerCase();return na===nb;}catch{return a===b;}}function resolvePartColor(ctx,specific,master,defaultSpecific,masterShade=1){const m=master||\"#C8C8C8\";if(!specific||colorsEqual(ctx,specific,defaultSpecific)){return shadeHexOrRgb(m,masterShade);}return specific;}function randRange(min,max){return min+Math.random()*(max-min);}function randPick(items){return items[Math.floor(Math.random()*items.length)];}function randShapeId(){return Math.floor(Math.random()*SHAPE_POOL.length);}/** Per-role layout ranges — head / thorax / abdomen independently shuffled */function pickSegment(role,kind,solidBias){const fish=isFishKind(kind);const flora=isFloraKind(kind);const filledChance=role===\"head\"?kind===\"scarab\"||kind===\"hercules\"||kind===\"barrel\"?.45:fish?.35:.28:solidBias?.82:flora?.62:.35;const scaleRange=role===\"abdomen\"?kind===\"dragonfly\"||kind===\"yucca\"||kind===\"cactus\"||kind===\"eel\"?[1.15,1.75]:kind===\"butterfly\"||kind===\"sardine\"||kind===\"flyingfish\"||kind===\"mackerel\"?[.55,.95]:kind===\"hercules\"||kind===\"whale\"||kind===\"tuna\"||kind===\"whaleShark\"||kind===\"sunfish\"?[.95,1.45]:kind===\"ray\"||kind===\"puffer\"||kind===\"flatfish\"||kind===\"angler\"?[.7,1.25]:kind===\"bonito\"||kind===\"mackerel\"?[.6,1]:flora?[.75,1.35]:[.75,1.35]:role===\"thorax\"?kind===\"hercules\"||kind===\"tuna\"||kind===\"barrel\"||kind===\"kino\"||kind===\"puffer\"||kind===\"whaleShark\"?[1.05,1.45]:kind===\"dragonfly\"||kind===\"sardine\"||kind===\"eel\"||kind===\"bonito\"?[.55,.95]:kind===\"scarab\"||kind===\"whale\"||kind===\"gurnard\"||kind===\"ray\"||kind===\"sunfish\"?[1,1.5]:[.7,1.35]:kind===\"hercules\"||kind===\"stag\"||kind===\"agave\"||kind===\"angler\"?[.55,1.05]:kind===\"dragonfly\"||kind===\"sardine\"||kind===\"flatfish\"||kind===\"flyingfish\"?[.4,.7]:fish?[.5,.9]:[.45,.85];const offsetXRange=role===\"abdomen\"?kind===\"dragonfly\"||kind===\"yucca\"?[-16,-6]:fish?[-12,-2]:flora?[-4,2]:[-8,-1]:role===\"thorax\"?flora?[-1,3]:[-2,4]:fish?[6,16]:flora?[4,14]:[4,12];const offsetYRange=role===\"head\"?[-2.5,2.5]:flora?[-2,2]:[-3.5,3.5];const liftBiasRange=role===\"head\"?flora?[4,12]:[0,4]:role===\"thorax\"?flora?[2,8]:[-1,3]:flora?[0,4]:[-2,2];return{shapeId:randShapeId(),scale:randRange(scaleRange[0],scaleRange[1]),filled:Math.random()<filledChance,role,offsetX:randRange(offsetXRange[0],offsetXRange[1]),offsetY:fish||flora?randRange(offsetYRange[0],offsetYRange[1]):0,liftBias:randRange(liftBiasRange[0],liftBiasRange[1])};}/** Color shade bounds mapped from Framer base color */const COLOR_FILL_MIN=.48;const COLOR_FILL_MAX=1.12;const COLOR_STROKE_MIN=.72;const COLOR_STROKE_MAX=1.28;const COLOR_LEG_MIN=.55;const COLOR_LEG_MAX=1.2;const COLOR_HUE_MIN=-18;const COLOR_HUE_MAX=18;function rgbToHsl(r,g,b){r/=255;g/=255;b/=255;const max=Math.max(r,g,b);const min=Math.min(r,g,b);const l=(max+min)/2;if(max===min)return[0,0,l];const d=max-min;const s=l>.5?d/(2-max-min):d/(max+min);let h=0;if(max===r)h=((g-b)/d+(g<b?6:0))/6;else if(max===g)h=((b-r)/d+2)/6;else h=((r-g)/d+4)/6;return[h,s,l];}function hslToRgb(h,s,l){const hue2rgb=(p,q,t)=>{let tt=t;if(tt<0)tt+=1;if(tt>1)tt-=1;if(tt<1/6)return p+(q-p)*6*tt;if(tt<1/2)return q;if(tt<2/3)return p+(q-p)*(2/3-tt)*6;return p;};if(s===0){const v=Math.round(l*255);return[v,v,v];}const q=l<.5?l*(1+s):l+s-l*s;const p=2*l-q;return[Math.round(hue2rgb(p,q,h+1/3)*255),Math.round(hue2rgb(p,q,h)*255),Math.round(hue2rgb(p,q,h-1/3)*255)];}/** Map base color with shade (brightness) + optional hue shift */function mapBaseColor(color,shade,hueShiftDeg=0){const channels=parseColorChannels(color);if(!channels)return color;let[h,s,l]=rgbToHsl(channels[0],channels[1],channels[2]);h=(h+hueShiftDeg/360+1)%1;// shade: <1 darkens, >1 lightens, clamped so near-black/white stay readable\nconst targetL=Math.min(.92,Math.max(.08,l*shade));// slight sat bump when darkening so graphic edges stay crisp\nconst sat=Math.min(1,s*(shade<1?1.08:.95));const[r,g,b]=hslToRgb(h,sat,targetL);return`rgb(${r},${g},${b})`;}function pickInsectKind(){const roll=Math.random();return roll<.12?\"beetle\":roll<.24?\"stag\":roll<.36?\"hercules\":roll<.48?\"scarab\":roll<.6?\"longhorn\":roll<.74?\"dragonfly\":roll<.88?\"butterfly\":\"ant\";}function pickCritterGenome(motif=\"insect\"){const kind=motif===\"fish\"?pickFishKind():motif===\"flora\"?randPick(FLORA_KINDS):pickInsectKind();const solidBias=motif===\"insect\"?kind===\"scarab\"?Math.random()<.72:kind===\"butterfly\"||kind===\"dragonfly\"?Math.random()<.12:Math.random()<.22:kind===\"butterfly\"||kind===\"dragonfly\"||kind===\"flyingfish\"?Math.random()<.3:kind===\"scarab\"||kind===\"barrel\"||kind===\"kino\"||kind===\"cactus\"||kind===\"whale\"||kind===\"whaleShark\"?Math.random()<.9:kind===\"aloe\"||kind===\"agave\"||kind===\"sardine\"?Math.random()<.55:Math.random()<.72;const segments=[pickSegment(\"abdomen\",kind,solidBias),pickSegment(\"thorax\",kind,solidBias),pickSegment(\"head\",kind,solidBias)];const hipRadius=kind===\"butterfly\"||kind===\"dragonfly\"||kind===\"sardine\"?3.8+Math.random()*2:isFloraKind(kind)?3.2+Math.random()*2.2:kind===\"longhorn\"||kind===\"aji\"?5.5+Math.random()*2.5:kind===\"hercules\"||kind===\"whale\"||kind===\"whaleShark\"||kind===\"tuna\"?7.5+Math.random()*3:6.5+Math.random()*3;const legLength=isFloraKind(kind)?hipRadius*(.9+Math.random()*.35):kind===\"butterfly\"||kind===\"dragonfly\"||isFishKind(kind)?hipRadius*(1.25+Math.random()*.35):kind===\"longhorn\"?hipRadius*(1.7+Math.random()*.45):hipRadius*(1.55+Math.random()*.5);let wingId=-1;let mandibleId=-1;let hornId=-1;if(motif===\"fish\"){const baseCount=Math.max(1,FISH_BODY_BASE.length);wingId=pickFishPartId(kind,FISH_BODY_POOL.length,baseCount);mandibleId=pickFishPartId(kind,FISH_FIN_POOL.length,baseCount);hornId=Math.floor(Math.random()*Math.max(1,FISH_WIRE_POOL.length));}else if(motif===\"flora\"){wingId=Math.floor(Math.random()*48);mandibleId=Math.floor(Math.random()*12);hornId=Math.floor(Math.random()*8);}else if(kind===\"dragonfly\"){wingId=randPick([...DRAGONFLY_WING_IDS]);}else if(kind===\"butterfly\"){wingId=Math.floor(Math.random()*FOUR_WING_SETS.length);}else if(kind===\"scarab\"){wingId=Math.random()<.55?Math.floor(Math.random()*FOUR_WING_SETS.length):-1;}else if(kind===\"stag\"||kind===\"beetle\"||kind===\"hercules\"||kind===\"longhorn\"){wingId=Math.random()<(kind===\"longhorn\"?.45:.7)?Math.floor(Math.random()*FOUR_WING_SETS.length):-1;}if(motif===\"insect\"){mandibleId=kind===\"stag\"?Math.floor(Math.random()*STAG_HORN_SETS.length):kind===\"beetle\"&&Math.random()<.18?Math.floor(Math.random()*STAG_HORN_SETS.length):-1;hornId=kind===\"hercules\"?Math.floor(Math.random()*HERCULES_HORN_SETS.length):kind===\"beetle\"&&Math.random()<.12?Math.floor(Math.random()*HERCULES_HORN_SETS.length):-1;}const stackGap=kind===\"dragonfly\"||kind===\"yucca\"?2.8+Math.random()*1.8:kind===\"butterfly\"||kind===\"sardine\"?3.5+Math.random()*2:kind===\"hercules\"||kind===\"barrel\"||kind===\"whale\"||kind===\"whaleShark\"?5.2+Math.random()*2.5:isFloraKind(kind)?3.6+Math.random()*2.8:4.5+Math.random()*3;const fishN=isFishKind(kind)?fishNiche(kind):null;const floraN=isFloraKind(kind)?floraNiche(kind):null;const scale=fishN?randRange(fishN.scaleMin,fishN.scaleMax):floraN?randRange(floraN.scaleMin,floraN.scaleMax):kind===\"dragonfly\"||kind===\"sardine\"?1+Math.random()*.28:kind===\"butterfly\"?1.05+Math.random()*.3:kind===\"hercules\"?1.25+Math.random()*.4:kind===\"scarab\"?1.1+Math.random()*.28:kind===\"longhorn\"?1.05+Math.random()*.32:1.15+Math.random()*.35;const colorFill=randRange(COLOR_FILL_MIN,COLOR_FILL_MAX);const colorStroke=randRange(COLOR_STROKE_MIN,COLOR_STROKE_MAX);const colorLeg=randRange(COLOR_LEG_MIN,COLOR_LEG_MAX);const colorHue=randRange(COLOR_HUE_MIN,COLOR_HUE_MAX);return{kind,motif,segments,stackGap,hipRadius,legLength,stride:hipRadius*(.9+Math.random()*.4),kneeAlong:.32+Math.random()*.25,kneeLift:kind===\"butterfly\"||kind===\"dragonfly\"||isFishKind(kind)?2+Math.random()*3:3+Math.random()*5,fanDeg:kind===\"ant\"?30+Math.random()*10:kind===\"longhorn\"||kind===\"aloe\"?22+Math.random()*10:isFloraKind(kind)?18+Math.random()*14:24+Math.random()*12,headingBias:motif===\"insect\"?0:degToRad(-18+Math.random()*6),tint:colorFill,colorFill,colorStroke,colorLeg,colorHue,scale,solidBias,wingId,mandibleId,hornId};}function legWorldAngle(heading,index,fanDeg){const side=index%2===0?-1:1;const row=Math.floor(index/2)+1;return heading+side*degToRad(row*fanDeg);}function sizeMul(creature,lookSize){return creature.genome.scale*Math.max(.4,lookSize);}/** Extra plate lift when the ground is zoomed or flattened. */function insectElevScale(look){const zoom=Math.max(.4,look.perspective||1.25);const depth=Math.max(.15,Math.min(1,look.depth??.48));const zoomBoost=.78+zoom*.42;const flatBoost=1+Math.max(0,.5-depth)*1.6;return zoomBoost*flatBoost;}/** Body sits above planted feet — fraction of projected leg length. */function insectStanceLift(creature,look,s){const zoom=Math.max(.4,look.perspective||1.25);const depth=Math.max(.15,Math.min(1,look.depth??.48));const reach=creature.genome.legLength*s*zoom*1.05;const frac=.4+Math.max(0,.5-depth)*.22;return Math.max(10,reach*frac);}function buildLegs(creature,lookSize=1.6){const g=creature.genome;const s=sizeMul(creature,lookSize);const legs=[];for(let i=0;i<6;i++){const ang=legWorldAngle(creature.heading,i,g.fanDeg);const hipX=creature.x+Math.cos(ang)*g.hipRadius*s;const hipY=creature.y+Math.sin(ang)*g.hipRadius*s;const footX=creature.x+Math.cos(ang)*g.legLength*s;const footY=creature.y+Math.sin(ang)*g.legLength*s;legs.push({hipX,hipY,footX,footY,aimX:footX,aimY:footY});}creature.legs=legs;}function coerceFramerColor(value,fallback){if(typeof value===\"string\"&&value.trim())return value.trim();if(value&&typeof value===\"object\"){const v=value;if(typeof v.value===\"string\"&&v.value.trim())return v.value.trim();if(typeof v.light===\"string\"&&v.light.trim())return v.light.trim();if(typeof v.dark===\"string\"&&v.dark.trim())return v.dark.trim();if(typeof v.color===\"string\"&&v.color.trim())return v.color.trim();}return fallback;}function plantGroup(creature,group,lookSize){const g=creature.genome;const s=sizeMul(creature,lookSize);// Small forward bias only — do NOT add full stride + full legLength (causes rubber legs)\nconst forward=g.stride*s*.32;for(const i of group){const ang=legWorldAngle(creature.heading,i,g.fanDeg);const jitter=(Math.random()-.5)*1.5*s;creature.legs[i].aimX=creature.x+Math.cos(creature.heading)*forward+Math.cos(ang)*g.legLength*s+jitter;creature.legs[i].aimY=creature.y+Math.sin(creature.heading)*forward+Math.sin(ang)*g.legLength*s+jitter;}}function clampLegReach(creature,lookSize){const g=creature.genome;const s=sizeMul(creature,lookSize);const maxR=g.legLength*s*1.06;for(const leg of creature.legs){for(const pair of[[\"footX\",\"footY\"],[\"aimX\",\"aimY\"]]){const dx=leg[pair[0]]-leg.hipX;const dy=leg[pair[1]]-leg.hipY;const d=Math.sqrt(dx*dx+dy*dy)||1;if(d>maxR){leg[pair[0]]=leg.hipX+dx/d*maxR;leg[pair[1]]=leg.hipY+dy/d*maxR;}}}}function refreshHips(creature,lookSize){const g=creature.genome;const s=sizeMul(creature,lookSize);for(let i=0;i<6;i++){const ang=legWorldAngle(creature.heading,i,g.fanDeg);creature.legs[i].hipX=creature.x+Math.cos(ang)*g.hipRadius*s;creature.legs[i].hipY=creature.y+Math.sin(ang)*g.hipRadius*s;}clampLegReach(creature,lookSize);}function placeFloraCreature(creature,groundSpan,others){// Full visible ground — flora should read as a planted field, not a pile\nconst xSpan=groundSpan*1.05;const ySpan=groundSpan*.9;const minDist=groundSpan*.22;let bestX=(Math.random()-.5)*xSpan;let bestY=(Math.random()-.5)*ySpan;let bestSep=-1;for(let attempt=0;attempt<36;attempt++){const x=(Math.random()-.5)*xSpan;const y=(Math.random()-.5)*ySpan;let nearest=Infinity;for(const o of others){if(o===creature)continue;const d=Math.hypot(o.x-x,o.y-y);if(d<nearest)nearest=d;}if(others.length===0||nearest===Infinity)nearest=minDist;if(nearest>=minDist){bestX=x;bestY=y;bestSep=nearest;break;}if(nearest>bestSep){bestSep=nearest;bestX=x;bestY=y;}}creature.x=bestX;creature.y=bestY;creature.aimX=bestX;creature.aimY=bestY;creature.destX=bestX;creature.destY=bestY;creature.aimHeading=Math.random()*Math.PI*2;creature.heading=creature.aimHeading;creature.roaming=false;creature.flying=false;}function createCreature(id,motif,groundSpan){const x=(Math.random()-.5)*groundSpan*.5;const y=(Math.random()-.5)*groundSpan*.5;const heading=Math.random()*Math.PI*2;const creature={id,motif,genome:pickCritterGenome(motif),x,y,aimX:x,aimY:y,destX:x+(Math.random()-.5)*groundSpan*.6,destY:y+(Math.random()-.5)*groundSpan*.6,heading,aimHeading:heading,height:0,legs:[],stepSide:1,stepClock:.15+Math.random()*.35,pauseLeft:0,flyLeft:motif===\"fish\"?999:0,roaming:motif!==\"flora\",flying:motif===\"fish\",flapPhase:Math.random()*Math.PI*2,dorsalPhase:Math.random()*Math.PI*2,reassembleFlash:0,morphScale:1,morphScaleV:0,morphTarget:1,morphPendingGenome:null,morphSwapped:true,assembleT:-1,facing:Math.random()<.5?1:-1,turnFrom:1,turnT:0,turnSide:Math.random()<.5?1:-1,turnCooldown:0,cruiseT:Math.random()*2,fishJumpT:0,knockVx:0,knockVy:0,knockT:0,hornClashCd:0,knockSpin:false};creature.turnFrom=creature.facing;// Spread fish across niches: depth band + water-column height\nif(motif===\"fish\"){const niche=fishNiche(creature.genome.kind);const ySpan=groundSpan*.7;const yBias=niche.depthY;creature.y=yBias*ySpan*.55+(Math.random()-.5)*ySpan*.35;creature.x=(Math.random()-.5)*groundSpan*.75;creature.aimX=creature.x;creature.aimY=creature.y;creature.destX=creature.x+creature.facing*(120+Math.random()*groundSpan*.55);creature.destY=yBias*ySpan*.5+(Math.random()-.5)*ySpan*.4;creature.height=randRange(niche.heightMin,niche.heightMax);creature.cruiseT=0;creature.turnCooldown=1+Math.random();creature.fishJumpT=0;}if(motif===\"flora\"){creature.dorsalPhase=0;creature.flapPhase=0;creature.height=0;creature.roaming=false;creature.flying=false;placeFloraCreature(creature,groundSpan,[]);creature.legs=[];}else if(motif===\"fish\"){creature.legs=[];}else{buildLegs(creature,1.6);}return creature;}function ensureCreatureCount(creatures,count,motif,nextIdRef,groundSpan,lookSize=1.6){const raw=Number.isFinite(count)?count:MIN_CREATURES;const safeCount=Math.max(MIN_CREATURES,Math.min(MAX_CREATURES,Math.round(raw)));while(creatures.length>safeCount)creatures.pop();while(creatures.length<safeCount){const next=createCreature(nextIdRef.value++,motif,groundSpan);if(motif===\"flora\")placeFloraCreature(next,groundSpan,creatures);creatures.push(next);}for(const c of creatures){const needsRegen=c.motif!==motif||!c.genome||c.genome.motif!==motif||!c.genome.kind||motif===\"fish\"&&!isFishKind(c.genome.kind)||motif===\"flora\"&&!isFloraKind(c.genome.kind)||motif===\"insect\"&&(isFishKind(c.genome.kind)||isFloraKind(c.genome.kind))||!c.genome.segments||typeof c.genome.mandibleId!==\"number\"||typeof c.genome.hornId!==\"number\"||typeof c.genome.colorFill!==\"number\"||!c.genome.segments?.[0]||typeof c.genome.segments[0].offsetX!==\"number\"||!c.legs||motif===\"insect\"&&c.legs.length!==6;c.motif=motif;if(needsRegen){c.genome=pickCritterGenome(motif);c.height=0;c.flying=false;c.flyLeft=0;c.roaming=motif!==\"flora\";c.pauseLeft=0;if(motif===\"flora\"){c.dorsalPhase=0;c.flapPhase=0;c.height=0;c.flying=false;c.flyLeft=0;placeFloraCreature(c,groundSpan,creatures.filter(o=>o!==c));c.legs=[];}else if(motif===\"fish\"){c.legs=[];}else{buildLegs(c,lookSize);}if(motif===\"fish\"){const niche=fishNiche(c.genome.kind);c.flying=false;c.flyLeft=999;c.facing=Math.random()<.5?1:-1;c.turnFrom=c.facing;c.turnT=0;c.turnCooldown=0;c.cruiseT=Math.random()*1.5;c.fishJumpT=0;const ySpan=groundSpan*.7;c.y=niche.depthY*ySpan*.55+(Math.random()-.5)*ySpan*.35;c.x=(Math.random()-.5)*groundSpan*.75;c.aimX=c.x;c.aimY=c.y;c.destX=c.x+c.facing*(50+Math.random()*groundSpan*.35);c.destY=niche.depthY*ySpan*.5+(Math.random()-.5)*ySpan*.4;c.height=randRange(niche.heightMin,niche.heightMax);}if(typeof c.facing!==\"number\")c.facing=1;if(typeof c.turnFrom!==\"number\")c.turnFrom=c.facing;if(typeof c.turnT!==\"number\")c.turnT=0;if(typeof c.turnSide!==\"number\")c.turnSide=1;if(typeof c.turnCooldown!==\"number\")c.turnCooldown=0;if(typeof c.cruiseT!==\"number\")c.cruiseT=0;if(typeof c.fishJumpT!==\"number\")c.fishJumpT=0;if(typeof c.morphScale!==\"number\")c.morphScale=1;if(typeof c.morphScaleV!==\"number\")c.morphScaleV=0;if(typeof c.morphTarget!==\"number\")c.morphTarget=1;if(c.morphPendingGenome===undefined)c.morphPendingGenome=null;if(typeof c.assembleT!==\"number\")c.assembleT=-1;if(typeof c.morphSwapped!==\"boolean\")c.morphSwapped=true;}else if((motif===\"flora\"||motif===\"fish\")&&c.legs.length){c.legs=[];}}}function stepSpring(pos,vel,target,dt,stiffness=MORPH_STIFFNESS,damping=MORPH_DAMPING){const a=-stiffness*(pos-target)-damping*vel;let v=vel+a*dt;let p=pos+v*dt;if(Math.abs(p-target)<.002&&Math.abs(v)<.02){return{pos:target,vel:0,settled:true};}return{pos:p,vel:v,settled:false};}function applyReassembledGenome(creature,genome,lookSize){const motif=creature.motif||genome.motif||\"insect\";creature.genome=genome;creature.motif=motif;if(motif===\"flora\"||motif===\"fish\")creature.legs=[];else buildLegs(creature,lookSize);creature.reassembleFlash=.55;creature.roaming=motif!==\"flora\";creature.flying=motif===\"fish\";creature.flyLeft=motif===\"fish\"?999:0;creature.pauseLeft=0;creature.stepClock=.05;creature.facing=Math.random()<.5?1:-1;creature.turnFrom=creature.facing;creature.turnT=0;creature.turnSide=Math.random()<.5?1:-1;creature.turnCooldown=0;creature.cruiseT=0;creature.fishJumpT=0;if(motif===\"flora\"){creature.destX=creature.x;creature.destY=creature.y;creature.aimX=creature.x;creature.aimY=creature.y;creature.height=0;creature.dorsalPhase=0;creature.flapPhase=0;creature.roaming=false;creature.flying=false;}if(motif===\"fish\"){const niche=fishNiche(genome.kind);const ySpan=140;creature.destX=creature.x+creature.facing*(60+Math.random()*120);creature.destY=creature.y*.35+niche.depthY*ySpan*.5+(Math.random()-.5)*ySpan*.35;creature.height=randRange(niche.heightMin,niche.heightMax);}}function easeInCubic(t){return t*t*t;}function easeInQuart(t){return t*t*t*t;}function easeOutQuart(t){return 1-Math.pow(1-t,4);}function insectAssembleTotal(){return(ASSEMBLE_SLOTS-1)*ASSEMBLE_STAGGER+ASSEMBLE_SLOT+ASSEMBLE_TAIL;}function assembleLandImpact(t,slot){const local=t-slot*ASSEMBLE_STAGGER;const enterStart=ASSEMBLE_SLOT*ASSEMBLE_EXIT;const enterDur=ASSEMBLE_SLOT*(1-ASSEMBLE_EXIT);if(local<=enterStart)return 0;const p=(local-enterStart)/enterDur;if(p<.82)return easeInQuart(p/.82);const afterContact=local-enterStart-enterDur*.82;const decayDur=enterDur*.18+ASSEMBLE_TAIL;if(afterContact>=decayDur)return 0;return 1-easeOutQuart(afterContact/decayDur);}function assembleStackWeight(t,slot,dropPx){let w=0;for(let j=slot+1;j<ASSEMBLE_SLOTS;j++){const impact=assembleLandImpact(t,j);if(impact<=0)continue;const atten=Math.max(.18,1-(j-slot-1)*.2);w+=impact*atten;}return w*dropPx*.13;}/** Fall, one overshoot, then a long settle — no bounce. */function assembleDropLift(p,dropPx){const over=dropPx*ASSEMBLE_OVERSHOOT;if(p<.82){const u=easeOutQuart(p/.82);return dropPx+(-over-dropPx)*u;}const u=easeOutQuart((p-.82)/.18);return-over*(1-u);}function insectAssembleSlot(creature,slot,dropPx){const t=creature.assembleT;if(typeof t!==\"number\"||t<0||!creature.morphPendingGenome){return{usePending:false,lift:0,alpha:1};}const local=t-slot*ASSEMBLE_STAGGER;const enterStart=ASSEMBLE_SLOT*ASSEMBLE_EXIT;const enterDur=slot===4?ASSEMBLE_SLOT*(1-ASSEMBLE_EXIT)+ASSEMBLE_TAIL:ASSEMBLE_SLOT*(1-ASSEMBLE_EXIT);const weight=assembleStackWeight(t,slot,dropPx);if(local<=0)return{usePending:false,lift:0,alpha:1};if(local<enterStart){const p=local/enterStart;return{usePending:false,lift:easeInCubic(p)*dropPx,alpha:1-p*.82};}const p=Math.min(1,(local-enterStart)/enterDur);let lift=assembleDropLift(p,dropPx);if(slot===4&&local>ASSEMBLE_SLOT){const tail=Math.min(1,(local-ASSEMBLE_SLOT)/ASSEMBLE_TAIL);lift+=dropPx*.1*Math.pow(1-tail,3);}lift-=weight;return{usePending:true,lift,alpha:Math.min(1,.08+easeOutQuart(p)*.92)};}/** Tap: insects drop in bottom→top; fish/flora keep spring morph */function reassembleCreature(creature,lookSize=1.6){const motif=creature.motif||creature.genome?.motif||\"insect\";creature._lookSize=lookSize;creature.morphPendingGenome=pickCritterGenome(motif);if(motif===\"insect\"){creature.assembleT=0;creature.morphScale=1;creature.morphScaleV=0;creature.morphTarget=1;creature.morphSwapped=true;return;}creature.morphSwapped=false;creature.morphTarget=0;if(typeof creature.morphScale!==\"number\")creature.morphScale=1;if(typeof creature.morphScaleV!==\"number\")creature.morphScaleV=0;creature.morphScaleV=Math.min(creature.morphScaleV,-8);}function updateCreatureMorph(creature,dt){if(typeof creature.morphScale!==\"number\")creature.morphScale=1;if(typeof creature.morphScaleV!==\"number\")creature.morphScaleV=0;if(typeof creature.morphTarget!==\"number\")creature.morphTarget=1;const motif=creature.genome?.motif||creature.motif||\"insect\";if(motif===\"insect\"){if(typeof creature.assembleT!==\"number\")creature.assembleT=-1;creature.morphScale=1;creature.morphScaleV=0;if(creature.assembleT>=0&&creature.morphPendingGenome){creature.assembleT+=dt;if(creature.assembleT>=insectAssembleTotal()){applyReassembledGenome(creature,creature.morphPendingGenome,creature._lookSize||1.6);creature.morphPendingGenome=null;creature.assembleT=-1;}}return;}if(creature.morphPendingGenome==null&&creature.morphTarget===1){if(creature.morphScale!==1||creature.morphScaleV!==0){creature.morphScale=1;creature.morphScaleV=0;}return;}const spring=stepSpring(creature.morphScale,creature.morphScaleV,creature.morphTarget,dt,creature.morphTarget===0?MORPH_CLOSE_STIFFNESS:MORPH_STIFFNESS,creature.morphTarget===0?MORPH_CLOSE_DAMPING:MORPH_DAMPING);creature.morphScale=Math.max(0,Math.min(1.2,spring.pos));creature.morphScaleV=spring.vel;if(!creature.morphSwapped&&creature.morphPendingGenome&&creature.morphTarget===0&&creature.morphScale<.12){applyReassembledGenome(creature,creature.morphPendingGenome,creature._lookSize||1.6);creature.morphSwapped=true;creature.morphTarget=1;creature.morphScale=Math.max(.04,creature.morphScale);creature.morphScaleV=6;}if(creature.morphSwapped&&creature.morphTarget===1&&(spring.settled||creature.morphScale>.98&&Math.abs(creature.morphScaleV)<.8)){creature.morphPendingGenome=null;creature.morphScale=1;creature.morphScaleV=0;creature.morphTarget=1;}}function pickNewDestination(creature,groundSpan,others=[]){const span=groundSpan*.7;const minDist=groundSpan*.28;let bestX=(Math.random()-.5)*span;let bestY=(Math.random()-.5)*span;let bestSep=-1;for(let attempt=0;attempt<28;attempt++){const x=(Math.random()-.5)*span;const y=(Math.random()-.5)*span;let nearest=Infinity;for(const o of others){if(o===creature)continue;const motif=o.genome?.motif||o.motif;if(motif!==\"insect\")continue;const d=Math.hypot(o.x-x,o.y-y);if(d<nearest)nearest=d;}if(others.length===0||nearest===Infinity)nearest=minDist;if(nearest>=minDist){bestX=x;bestY=y;break;}if(nearest>bestSep){bestSep=nearest;bestX=x;bestY=y;}}creature.destX=bestX;creature.destY=bestY;creature.roaming=true;creature.pauseLeft=0;creature.stepClock=.08+Math.random()*.2;}/** Visual footprint used for insect personal space / hard resolve. */function insectBodyRadius(creature,lookSize){const s=sizeMul(creature,creature._lookSize||lookSize);const g=creature.genome;return Math.max(26,(g.hipRadius*1.05+g.legLength*.95)*s);}/** Forward horn length in world units (matches drawGraphicHorns scale). */function insectHornReach(creature,lookSize){const g=creature.genome;const s=sizeMul(creature,creature._lookSize||lookSize);let reach=0;if(typeof g.mandibleId===\"number\"&&g.mandibleId>=0){const e=STAG_HORN_EXTENT[g.mandibleId%STAG_HORN_EXTENT.length]||32;reach=Math.max(reach,e*s*1.28+4*s);}if(typeof g.hornId===\"number\"&&g.hornId>=0){const e=HERCULES_HORN_EXTENT[g.hornId%HERCULES_HORN_EXTENT.length]||32;reach=Math.max(reach,e*s*1.38+4*s);}return reach;}/** Body + horn padding so large antlers don't visually fuse. */function insectCollisionRadius(creature,lookSize){const body=insectBodyRadius(creature,lookSize);const horn=insectHornReach(creature,lookSize);if(horn<=body*.85)return body;return body+horn*.42;}function ensureInsectKnockFields(creature){if(typeof creature.knockT!==\"number\")creature.knockT=0;if(typeof creature.knockVx!==\"number\")creature.knockVx=0;if(typeof creature.knockVy!==\"number\")creature.knockVy=0;if(typeof creature.hornClashCd!==\"number\")creature.hornClashCd=0;if(typeof creature.knockSpin!==\"boolean\")creature.knockSpin=false;}function applyHornKnock(attacker,victim,power,margin){ensureInsectKnockFields(attacker);ensureInsectKnockFields(victim);const fx=Math.cos(attacker.heading);const fy=Math.sin(attacker.heading);let sx=victim.x-attacker.x;let sy=victim.y-attacker.y;const sep=Math.hypot(sx,sy)||1;sx/=sep;sy/=sep;// Horn thrust forward + outward peel (victim only)\nconst kx=fx*.75+sx*.55;const ky=fy*.75+sy*.55;const kn=Math.hypot(kx,ky)||1;const thrust=95+power*1.1;victim.knockVx=kx/kn*thrust;victim.knockVy=ky/kn*thrust;victim.knockT=.48;victim.knockSpin=true;victim.hornClashCd=.7;victim.flying=false;victim.flyLeft=0;victim.roaming=true;victim.pauseLeft=0;victim.height=Math.max(victim.height,10+power*.08);victim.heading=Math.atan2(victim.knockVy,victim.knockVx);victim.aimHeading=victim.heading;victim.destX=Math.max(-margin,Math.min(margin,victim.x+kx/kn*(55+power*.35)));victim.destY=Math.max(-margin,Math.min(margin,victim.y+ky/kn*(55+power*.35)));// Attacker: positional recoil only — keep facing the thrust direction\nattacker.knockVx=-fx*thrust*.28;attacker.knockVy=-fy*thrust*.28;attacker.knockT=.2;attacker.knockSpin=false;attacker.hornClashCd=.55;attacker.height=Math.max(attacker.height,3);attacker.aimHeading=attacker.heading;attacker.destX=Math.max(-margin,Math.min(margin,attacker.x+fx*(40+power*.2)));attacker.destY=Math.max(-margin,Math.min(margin,attacker.y+fy*(40+power*.2)));attacker.roaming=true;attacker.pauseLeft=0;}/** Soft personal-space push among walking insects (Tarbell-style awareness). */function insectSeparationSteer(creature,others,lookSize){const selfR=insectCollisionRadius(creature,lookSize);const detect=selfR*2.5;let steerX=0;let steerY=0;let pushX=0;let pushY=0;let near=0;for(const o of others){if(o===creature)continue;const motif=o.genome?.motif||o.motif;if(motif!==\"insect\")continue;// Different layers (ground vs air) may pass; same layer must not\nif(!!o.flying!==!!creature.flying)continue;const dx=creature.x-o.x;const dy=creature.y-o.y;const dSq=dx*dx+dy*dy;if(dSq<.01||dSq>detect*detect)continue;const d=Math.sqrt(dSq);const otherR=insectCollisionRadius(o,lookSize);const minD=selfR+otherR;if(d>=minD*1.15){// Far but in detect range — gentle steer only\nconst w=1-d/detect;const nx=dx/d;const ny=dy/d;steerX+=nx*w*.45;steerY+=ny*w*.45;near++;continue;}const nx=dx/d;const ny=dy/d;const w=(minD-d)/minD;steerX+=nx*(.6+w*1.4);steerY+=ny*(.6+w*1.4);const crush=Math.max(0,(minD-d)/minD);pushX+=nx*(crush*2.4);pushY+=ny*(crush*2.4);near++;}if(near>1){steerX/=near;steerY/=near;pushX/=near;pushY/=near;}return{steerX,steerY,pushX,pushY};}/**\n * Hard pairwise separation after updates — stops center-through-center tunneling.\n * Splits correction 50/50 so both insects yield.\n */function resolveInsectOverlaps(creatures,lookSize,margin){for(let pass=0;pass<3;pass++){for(let i=0;i<creatures.length;i++){const a=creatures[i];const am=a.genome?.motif||a.motif;if(am!==\"insect\")continue;for(let j=i+1;j<creatures.length;j++){const b=creatures[j];const bm=b.genome?.motif||b.motif;if(bm!==\"insect\")continue;if(!!a.flying!==!!b.flying)continue;// Skip hard body resolve while tumbling from a horn hit\nif((a.knockT||0)>.05||(b.knockT||0)>.05)continue;const minD=insectCollisionRadius(a,lookSize)+insectCollisionRadius(b,lookSize);let dx=a.x-b.x;let dy=a.y-b.y;let dSq=dx*dx+dy*dy;if(dSq>=minD*minD)continue;let d=Math.sqrt(dSq);if(d<.05){const ang=(i*1.7+j*2.3+pass)%(Math.PI*2);dx=Math.cos(ang);dy=Math.sin(ang);d=1;}const overlap=minD-d;const nx=dx/d;const ny=dy/d;// Slight overshoot so they don't stick next frame\nconst half=overlap*.55;a.x+=nx*half;a.y+=ny*half;b.x-=nx*half;b.y-=ny*half;a.x=Math.max(-margin,Math.min(margin,a.x));a.y=Math.max(-margin,Math.min(margin,a.y));b.x=Math.max(-margin,Math.min(margin,b.x));b.y=Math.max(-margin,Math.min(margin,b.y));// If dest sits inside the other, bend it outward\nif(a.roaming){const ddx=a.destX-b.x;const ddy=a.destY-b.y;if(ddx*ddx+ddy*ddy<minD*minD){a.destX=a.x+nx*minD*1.4;a.destY=a.y+ny*minD*1.4;}}if(b.roaming){const ddx=b.destX-a.x;const ddy=b.destY-a.y;if(ddx*ddx+ddy*ddy<minD*minD){b.destX=b.x-nx*minD*1.4;b.destY=b.y-ny*minD*1.4;}}}}}}/**\n * Horn / mandible clash — forward tip hits another insect's body → knockback.\n */function resolveHornClashes(creatures,lookSize,margin){const tryHit=(attacker,victim)=>{ensureInsectKnockFields(attacker);ensureInsectKnockFields(victim);if((attacker.hornClashCd||0)>0||(victim.hornClashCd||0)>0)return false;if((attacker.knockT||0)>.08||(victim.knockT||0)>.08)return false;const reach=insectHornReach(attacker,lookSize);const bodyR=insectBodyRadius(attacker,lookSize);if(reach<bodyR*1.05)return false;const victR=insectBodyRadius(victim,lookSize);const fx=Math.cos(attacker.heading);const fy=Math.sin(attacker.heading);const toX=victim.x-attacker.x;const toY=victim.y-attacker.y;const toLen=Math.hypot(toX,toY)||1;// Must be in forward hemisphere of the horned insect\nif((toX*fx+toY*fy)/toLen<.2)return false;const tipX=attacker.x+fx*reach*.7;const tipY=attacker.y+fy*reach*.7;const tipR=reach*.3+bodyR*.12;const dx=victim.x-tipX;const dy=victim.y-tipY;const hitR=tipR+victR;if(dx*dx+dy*dy>hitR*hitR)return false;applyHornKnock(attacker,victim,reach,margin);return true;};for(let i=0;i<creatures.length;i++){const a=creatures[i];if((a.genome?.motif||a.motif)!==\"insect\")continue;for(let j=i+1;j<creatures.length;j++){const b=creatures[j];if((b.genome?.motif||b.motif)!==\"insect\")continue;if(!!a.flying!==!!b.flying)continue;// Prefer the larger horn as the \"attacker\" when both face in\nconst aReach=insectHornReach(a,lookSize);const bReach=insectHornReach(b,lookSize);if(aReach>=bReach){if(tryHit(a,b))continue;tryHit(b,a);}else{if(tryHit(b,a))continue;tryHit(a,b);}}}}function maybeStartFlight(creature){const kind=creature.genome.kind;const chance=kind===\"dragonfly\"?.72:kind===\"butterfly\"?.55:kind===\"scarab\"?.18:kind===\"longhorn\"?.14:kind===\"hercules\"?.08:kind===\"stag\"?.12:kind===\"beetle\"?.1:.04;if(Math.random()<chance){creature.flying=true;creature.flyLeft=kind===\"dragonfly\"?2.2+Math.random()*3.2:kind===\"butterfly\"?1.4+Math.random()*2.4:.8+Math.random()*1.2;creature.roaming=true;creature.heading+=(Math.random()-.5)*1.2;creature.aimHeading=creature.heading;}}function getPersistentState(memoryKey,initialGridLayoutMode){const fallback={agents:[],creatures:[],nextCreatureId:1,splitLevel:1,gridLayoutMode:initialGridLayoutMode};if(typeof window===\"undefined\"){ensureAgentCount(fallback.agents,MAX_PARTICLES);return fallback;}const stores=window.__rialtoParticleLifeStores__??={};const storeKey=`${MEMORY_PREFIX}:${memoryKey||\"default\"}`;const store=stores[storeKey]??={agents:[],creatures:[],nextCreatureId:1,splitLevel:1,gridLayoutMode:initialGridLayoutMode};if(!store.creatures)store.creatures=[];if(typeof store.nextCreatureId!==\"number\")store.nextCreatureId=1;ensureAgentCount(store.agents,MAX_PARTICLES);return store;}function normalizeCanvasColor(ctx,color){ctx.save();ctx.fillStyle=color;const normalized=ctx.fillStyle;ctx.restore();return normalized;}function parseColorChannels(color){const hex=color.trim().match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);if(hex){let h=hex[1];if(h.length===3){h=h[0]+h[0]+h[1]+h[1]+h[2]+h[2];}return[parseInt(h.slice(0,2),16),parseInt(h.slice(2,4),16),parseInt(h.slice(4,6),16)];}const rgb=color.match(/rgba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)/i);if(rgb)return[Number(rgb[1]),Number(rgb[2]),Number(rgb[3])];return null;}function applyTint(color,tint){const channels=parseColorChannels(color);if(!channels)return color;return`rgb(${channels.map(v=>Math.round(Math.min(255,v*tint))).join(\",\")})`;}function drawGridOverlay(ctx,currentMode,currentSplit,w,h,gridBorderColor,gridBorderWidth,layoutFlash){if(currentMode===\"chaos\")return;ctx.save();ctx.strokeStyle=gridBorderColor;ctx.lineWidth=gridBorderWidth+layoutFlash*2;ctx.globalAlpha=1;ctx.shadowBlur=layoutFlash*14;ctx.shadowColor=gridBorderColor;if(currentMode===\"single\"){if(currentSplit>1){ctx.beginPath();for(let k=1;k<currentSplit;k++){ctx.moveTo(w/currentSplit*k,0);ctx.lineTo(w/currentSplit*k,h);ctx.moveTo(0,h/currentSplit*k);ctx.lineTo(w,h/currentSplit*k);}ctx.stroke();}ctx.strokeRect(0,0,w,h);}else if(currentMode===\"asymmetric\"){const splitX=w*.4;const splitY=h*.5;ctx.beginPath();ctx.moveTo(splitX,0);ctx.lineTo(splitX,h);ctx.moveTo(0,splitY);ctx.lineTo(w,splitY);ctx.stroke();}else if(currentMode===\"matrix\"){ctx.beginPath();for(let k=1;k<3;k++){ctx.moveTo(w/3*k,0);ctx.lineTo(w/3*k,h);ctx.moveTo(0,h/3*k);ctx.lineTo(w,h/3*k);}ctx.stroke();}else if(currentMode===\"masonry\"){const col1=w*.33;const col2=w*.66;ctx.beginPath();ctx.moveTo(col1,0);ctx.lineTo(col1,h);ctx.moveTo(col2,0);ctx.lineTo(col2,h);ctx.moveTo(0,h*.4);ctx.lineTo(col1,h*.4);ctx.moveTo(col1,h*.6);ctx.lineTo(col2,h*.6);ctx.moveTo(col2,h*.3);ctx.lineTo(w,h*.3);ctx.stroke();}else if(currentMode===\"horizontal\"){ctx.beginPath();for(let k=1;k<5;k++){ctx.moveTo(0,h/5*k);ctx.lineTo(w,h/5*k);}ctx.stroke();}else if(currentMode===\"focus\"){const padX=w*.25;const padY=h*.25;ctx.strokeRect(padX,padY,w*.5,h*.5);ctx.beginPath();ctx.moveTo(padX,0);ctx.lineTo(padX,padY);ctx.moveTo(padX,h-padY);ctx.lineTo(padX,h);ctx.moveTo(w-padX,0);ctx.lineTo(w-padX,padY);ctx.moveTo(w-padX,h-padY);ctx.lineTo(w-padX,h);ctx.stroke();}else if(currentMode===\"radar\"){const radarCx=w/2;const radarCy=h/2;const minSide=Math.min(w,h);ctx.beginPath();ctx.arc(radarCx,radarCy,minSide*.15,0,Math.PI*2);ctx.arc(radarCx,radarCy,minSide*.35,0,Math.PI*2);ctx.moveTo(radarCx,0);ctx.lineTo(radarCx,h);ctx.moveTo(0,radarCy);ctx.lineTo(w,radarCy);ctx.stroke();}ctx.restore();}function strokePoly2(ctx,points,filled,fillColor,strokeColor,opts){if(points.length<2)return;const doStroke=opts?.stroke!==false;const strokeAlpha=doStroke?Math.min(1,Math.max(.5,opts?.strokeAlpha??.85)):0;const prevWidth=ctx.lineWidth;ctx.beginPath();ctx.moveTo(points[0].x,points[0].y);for(let i=1;i<points.length;i++){ctx.lineTo(points[i].x,points[i].y);}ctx.closePath();if(filled){ctx.fillStyle=fillColor;ctx.globalAlpha=opts?.fillAlpha??.78;ctx.fill();}if(doStroke){ctx.strokeStyle=strokeColor;ctx.globalAlpha=strokeAlpha;ctx.stroke();}// internal facet hatch — spokes only (chord braces were expensive)\nif(doStroke&&opts?.hatch&&points.length>=3){let cx=0;let cy=0;for(let i=0;i<points.length;i++){cx+=points[i].x;cy+=points[i].y;}cx/=points.length;cy/=points.length;ctx.globalAlpha=strokeAlpha*.35;ctx.lineWidth=.5;const step=points.length>6?2:1;for(let i=0;i<points.length;i+=step){ctx.beginPath();ctx.moveTo(cx,cy);ctx.lineTo(points[i].x,points[i].y);ctx.stroke();}ctx.lineWidth=prevWidth;ctx.globalAlpha=strokeAlpha;}}function projectLocal(lx,ly,creature,rot,originX,originY,look,lift){const wx=creature.x+lx*Math.cos(rot)-ly*Math.sin(rot);const wy=creature.y+lx*Math.sin(rot)+ly*Math.cos(rot);const scr=groundToScreen(wx,wy,originX,originY,look.perspective,look.depth);return{x:scr.x,y:scr.y-lift-creature.height-(creature._stanceLift||0)-(creature._drawPartLift||0)};}function drawGraphicHorns(ctx,horns,creature,rot,originX,originY,look,s,bodyFill,bodyStroke,headLift,scaleMul,flash,strokeAlpha){const hornScale=s*scaleMul;ctx.lineWidth=LINE_CONTOUR;horns.plates.forEach((plate,pi)=>{const pts=plate.map(p=>projectLocal(p.x*hornScale+4*s,p.y*hornScale,creature,rot,originX,originY,look,headLift+pi%3*1.1));strokePoly2(ctx,pts,horns.filledPlate[pi]??false,bodyFill,bodyStroke,{fillAlpha:.16,hatch:false,strokeAlpha});strokeNearThickness(ctx,pts,1.35,bodyStroke,Math.max(.35,strokeAlpha*.5),LINE_AUX);ctx.lineWidth=LINE_CONTOUR;});if(horns.tips){for(const tip of horns.tips){const pts=tip.map(p=>projectLocal(p.x*hornScale+4*s,p.y*hornScale,creature,rot,originX,originY,look,headLift+2.2));strokePoly2(ctx,pts,true,bodyFill,bodyStroke,{fillAlpha:.22,strokeAlpha});}}ctx.strokeStyle=bodyStroke;ctx.globalAlpha=strokeAlpha;ctx.lineWidth=LINE_STRUCT;for(const wire of horns.wires){ctx.beginPath();wire.forEach((p,idx)=>{const pt=projectLocal(p.x*hornScale+4*s,p.y*hornScale,creature,rot,originX,originY,look,headLift+1);if(idx===0)ctx.moveTo(pt.x,pt.y);else ctx.lineTo(pt.x,pt.y);});ctx.stroke();}ctx.lineWidth=LINE_CONTOUR;ctx.globalAlpha=strokeAlpha;}function sceneLuminance(bg){const c=parseColorChannels(bg||SCENE_BG);if(!c)return .05;const lin=v=>{const x=v/255;return x<=.04045?x/12.92:Math.pow((x+.055)/1.055,2.4);};return .2126*lin(c[0])+.7152*lin(c[1])+.0722*lin(c[2]);}/** Soft contact disc — radial falloff instead of a hard ellipse. */function drawContactShadow(ctx,wx,wy,originX,originY,look,rx,ry,flying=false){const scr=groundToScreen(wx,wy,originX,originY,look.perspective,look.depth);const R=Math.max(6,rx*1.38);const ryScale=Math.max(.14,ry/Math.max(rx,1));const fly=flying?.52:1;const L=sceneLuminance(look.sceneBg);const peak=(L<.18?.7:.5)*fly;ctx.save();ctx.translate(scr.x,scr.y+5);ctx.scale(1,ryScale);ctx.globalCompositeOperation=L<.18?\"source-over\":\"multiply\";const grad=ctx.createRadialGradient(0,0,0,0,0,R);grad.addColorStop(0,`rgba(0,0,0,${peak})`);grad.addColorStop(.4,`rgba(0,0,0,${peak*.82})`);grad.addColorStop(.7,`rgba(0,0,0,${peak*.32})`);grad.addColorStop(1,\"rgba(0,0,0,0)\");ctx.fillStyle=grad;ctx.beginPath();ctx.arc(0,0,R,0,Math.PI*2);ctx.fill();ctx.restore();}function drawCreature(ctx,creature,originX,originY,look){const g=creature.genome;const s=sizeMul(creature,look.size);const master=look.masterColor||look.strokeColor||\"#C8C8C8\";const hue=typeof g.colorHue===\"number\"?g.colorHue:0;const fillShade=typeof g.colorFill===\"number\"?g.colorFill:g.tint||.85;const strokeShade=typeof g.colorStroke===\"number\"?g.colorStroke:1;const legShade=typeof g.colorLeg===\"number\"?g.colorLeg:.95;const baseFill=look.bodyColor||shadeHexOrRgb(master,.78);const baseStroke=look.strokeColor||master;const baseLeg=look.legColor||master;const bodyFill=mapBaseColor(baseFill,fillShade,hue*.65);const bodyStroke=mapBaseColor(baseStroke,strokeShade,hue);const legColor=mapBaseColor(baseLeg,legShade,hue*.4);const flash=creature.reassembleFlash||0;const morphScale=Math.max(.001,typeof creature.morphScale===\"number\"?creature.morphScale:1);const strokeAlpha=Math.min(1,Math.max(.5,(.72+flash*.28)*(.35+.65*Math.min(1,morphScale))));const lineW=LINE_CONTOUR;const motif=g.motif||creature.motif||\"insect\";const anchor=motif===\"fish\"||isFishKind(g.kind)?fishWorldToScreen(creature.x,creature.y,originX,originY,look):groundToScreen(creature.x,creature.y,originX,originY,look.perspective,look.depth);// Spring morph: scale around creature anchor (fish / flora only)\nctx.save();if(motif!==\"insect\"&&(morphScale<.999||creature.morphPendingGenome!=null||creature.morphTarget===0)){ctx.translate(anchor.x,anchor.y);ctx.scale(morphScale,morphScale);ctx.translate(-anchor.x,-anchor.y);}if(motif===\"fish\"||isFishKind(g.kind)){drawFishSide(ctx,creature,originX,originY,look);ctx.restore();return;}if(motif===\"flora\"||isFloraKind(g.kind)){drawFloraDryGarden(ctx,creature,originX,originY,look);ctx.restore();return;}const center=anchor;// Insect body is bilateral about heading — don't add a crabwise graphic bias\nconst rot=creature.heading;const elev=insectElevScale(look);creature._stanceLift=insectStanceLift(creature,look,s);const dropPx=(64+24*look.size)*.5;const slotPart=slot=>{const st=insectAssembleSlot(creature,slot,dropPx);const gg=st.usePending&&creature.morphPendingGenome?creature.morphPendingGenome:g;return{st,gg};};ctx.save();ctx.lineWidth=lineW;ctx.lineJoin=\"miter\";ctx.miterLimit=2.8;ctx.lineCap=\"butt\";ctx.globalAlpha=strokeAlpha;const shadowR=Math.max(20,(g.hipRadius*1.4+5)*s*1.15);drawContactShadow(ctx,creature.x,creature.y,originX,originY,look,shadowR*(creature.flying?.72:1),shadowR*.4*(creature.flying?.72:1),!!creature.flying);// motif appendages — insect wings\n{const{st,gg}=slotPart(3);creature._drawPartLift=st.lift;const wingA=strokeAlpha*st.alpha;if(st.alpha>=.05&&gg.wingId>=0){const wings=FOUR_WING_SETS[gg.wingId%FOUR_WING_SETS.length];const flap=creature.flying?Math.sin(creature.flapPhase)*1:Math.sin(creature.flapPhase*.4)*.25;const panels=[{poly:wings.hindLeft,side:-1,layer:0},{poly:wings.hindRight,side:1,layer:0},{poly:wings.foreLeft,side:-1,layer:1},{poly:wings.foreRight,side:1,layer:1}];for(const panel of panels){const liftBase=(6+panel.layer*2.5)*elev;const flapLift=flap*(8+panel.layer*4)*panel.side*(creature.flying?1:.35);const wingScale=gg.kind===\"dragonfly\"?1.22:1.08;const pts=panel.poly.map(p=>projectLocal(p.x*s*wingScale,p.y*s*wingScale,creature,rot,originX,originY,look,liftBase+Math.abs(p.y)*.12+flapLift*.15));strokePoly2(ctx,pts,false,bodyFill,bodyStroke,{strokeAlpha});strokeNearThickness(ctx,pts,1.5,bodyStroke,Math.max(.32,strokeAlpha*.48),LINE_AUX);drawWingVenation(ctx,panel.poly,gg.kind,s*wingScale,creature,rot,originX,originY,look,liftBase,flapLift,flap,wingA,bodyStroke);ctx.lineWidth=LINE_CONTOUR;ctx.globalAlpha=strokeAlpha;}if(wings.braces){ctx.strokeStyle=bodyStroke;ctx.globalAlpha=Math.max(.5,strokeAlpha*.68);ctx.lineWidth=LINE_STRUCT;const wingScale=gg.kind===\"dragonfly\"?1.22:1.08;for(const brace of wings.braces){ctx.beginPath();brace.forEach((p,idx)=>{const side=Math.sign(p.y)||1;const layer=Math.abs(p.x)>7?1:0;const liftBase=(6+layer*2.5)*elev;const flapLift=flap*(8+layer*4)*side*(creature.flying?1:.35);const pt=projectLocal(p.x*s*wingScale,p.y*s*wingScale,creature,rot,originX,originY,look,liftBase+Math.abs(p.y)*.12+flapLift*.15+.4);if(idx===0)ctx.moveTo(pt.x,pt.y);else ctx.lineTo(pt.x,pt.y);});ctx.stroke();}ctx.lineWidth=LINE_CONTOUR;ctx.globalAlpha=strokeAlpha;}}creature._drawPartLift=0;}// stacked body — each segment independently shaped / placed\nconst bodyRoles=[\"abdomen\",\"thorax\",\"head\"];let prevBody=null;for(let i=0;i<bodyRoles.length;i++){const{st,gg}=slotPart(i);if(st.alpha<.05)continue;creature._drawPartLift=st.lift;const partA=strokeAlpha*st.alpha;const seg=gg.segments.find(s=>s.role===bodyRoles[i])||gg.segments[Math.min(i,gg.segments.length-1)];const sPart=gg.scale*Math.max(.4,look.size);const roleOffset=gg.kind===\"dragonfly\"?{abdomen:-.85,thorax:.05,head:.62}:gg.kind===\"hercules\"?{abdomen:-.4,thorax:.08,head:.5}:gg.kind===\"longhorn\"?{abdomen:-.5,thorax:0,head:.58}:{abdomen:-.35,thorax:.05,head:.55};const roleSpread=gg.kind===\"dragonfly\"?14:gg.kind===\"longhorn\"?12.5:11;const shape=SHAPE_POOL_SYMM[seg.shapeId%SHAPE_POOL_SYMM.length];const lift=(i+1)*gg.stackGap*.95*(.9+look.size*.18)*elev+(seg.role===\"head\"?3.5*elev:0)+(seg.liftBias||0)*sPart*elev;const localScale=1.15*sPart*seg.scale;const forward=(roleOffset[seg.role]||0)*roleSpread*sPart+(seg.offsetX||0)*sPart;let plateHalfW=0;let plateXMin=Infinity;let plateXMax=-Infinity;for(const p of shape){plateHalfW=Math.max(plateHalfW,Math.abs(p.y)*localScale);const px=p.x*localScale;if(px<plateXMin)plateXMin=px;if(px>plateXMax)plateXMax=px;}const plateLocal=shape.map(p=>({x:p.x*localScale+forward,y:p.y*localScale}));let pcx=0;let pcy=0;for(const p of plateLocal){pcx+=p.x;pcy+=p.y;}pcx/=Math.max(1,plateLocal.length);pcy/=Math.max(1,plateLocal.length);const clipPlate=plateLocal.map(p=>({x:pcx+(p.x-pcx)*.86,y:pcy+(p.y-pcy)*.86}));const pts2=shape.map(p=>{const lx=p.x*localScale+forward;const ly=p.y*localScale;return projectLocal(lx,ly,creature,rot,originX,originY,look,lift);});const glaze=gg.kind===\"scarab\"?seg.role===\"thorax\"?.26:seg.role===\"abdomen\"?.14:0:seg.role===\"thorax\"?.16:0;ctx.lineWidth=LINE_CONTOUR;if(seg.role===\"abdomen\"){const peak=Math.max(7,plateHalfW*.78)*elev*.3;drawAbdomenGable(ctx,plateLocal,lift,peak,glaze*st.alpha,bodyFill,bodyStroke,partA,creature,rot,originX,originY,look);}else{strokePoly2(ctx,pts2,glaze>0,bodyFill,bodyStroke,{fillAlpha:glaze?glaze*st.alpha:undefined,hatch:false,strokeAlpha:partA});strokeNearThickness(ctx,pts2,Math.max(1.15,localScale*.07),bodyStroke,Math.max(.32,partA*.48),LINE_AUX);}ctx.strokeStyle=bodyStroke;ctx.lineWidth=LINE_STRUCT;ctx.globalAlpha=Math.max(.58,partA*.8);if(seg.role===\"thorax\"){strokeInsideSeg(ctx,forward+plateXMin,plateHalfW*.42,forward+plateXMax,plateHalfW*.42,clipPlate,creature,rot,originX,originY,look,lift);strokeInsideSeg(ctx,forward+plateXMin,-plateHalfW*.42,forward+plateXMax,-plateHalfW*.42,clipPlate,creature,rot,originX,originY,look,lift);if(gg.kind===\"beetle\"||gg.kind===\"stag\"||gg.kind===\"hercules\"||gg.kind===\"scarab\"||gg.kind===\"longhorn\"){strokeInsideSeg(ctx,forward+plateXMin,0,forward+plateXMax,0,clipPlate,creature,rot,originX,originY,look,lift);}}if(seg.role===\"head\"){const eyeL=projectLocal(forward+localScale*.18,-localScale*.22,creature,rot,originX,originY,look,lift+1.4);const eyeR=projectLocal(forward+localScale*.18,localScale*.22,creature,rot,originX,originY,look,lift+1.4);ctx.strokeStyle=bodyStroke;ctx.lineWidth=LINE_AUX;ctx.globalAlpha=Math.max(.45,partA*.85);ctx.beginPath();ctx.arc(eyeL.x,eyeL.y,1.1+s*.15,0,Math.PI*2);ctx.stroke();ctx.beginPath();ctx.arc(eyeR.x,eyeR.y,1.1+s*.15,0,Math.PI*2);ctx.stroke();}if(prevBody){const xJoin=prevBody.forward+(forward-prevBody.forward)*.52;ctx.strokeStyle=bodyStroke;ctx.lineWidth=LINE_STRUCT;ctx.globalAlpha=Math.max(.42,Math.min(prevBody.partA,partA)*.78);strokeInsideSeg(ctx,xJoin,-plateHalfW,xJoin,plateHalfW,clipPlate,creature,rot,originX,originY,look,Math.max(prevBody.lift,lift));}prevBody={forward,lift,localScale,partA};ctx.lineWidth=LINE_CONTOUR;ctx.globalAlpha=strokeAlpha;creature._drawPartLift=0;}// Crown: horns + antennae drop last\n{const{st,gg:cg}=slotPart(4);creature._drawPartLift=st.lift;const crownA=strokeAlpha*st.alpha;if(st.alpha>=.05&&cg.mandibleId>=0){drawGraphicHorns(ctx,STAG_HORN_SETS[cg.mandibleId%STAG_HORN_SETS.length],creature,rot,originX,originY,look,s,bodyFill,bodyStroke,cg.stackGap*2.55*elev,1.28,flash,crownA);}if(st.alpha>=.05&&cg.hornId>=0){drawGraphicHorns(ctx,HERCULES_HORN_SETS[cg.hornId%HERCULES_HORN_SETS.length],creature,rot,originX,originY,look,s,bodyFill,bodyStroke,cg.stackGap*2.7*elev,1.38,flash,crownA);}if(st.alpha<.05){creature._drawPartLift=0;}else{ctx.strokeStyle=bodyStroke;const ant=cg.kind===\"longhorn\"?[[[5*s,-2*s],[10*s,-7*s],[7*s,-12*s],[14*s,-18*s],[11*s,-24*s],[18*s,-30*s],[22*s,-28*s]],[[5*s,2*s],[10*s,7*s],[7*s,12*s],[14*s,18*s],[11*s,24*s],[18*s,30*s],[22*s,28*s]]]:cg.kind===\"dragonfly\"?[[[5*s,-1*s],[9*s,-3*s],[12*s,-2*s]],[[5*s,1*s],[9*s,3*s],[12*s,2*s]]]:cg.kind===\"stag\"||cg.kind===\"hercules\"?[[[6*s,-2.5*s],[11*s,-8*s],[8*s,-12*s],[15*s,-16*s],[18*s,-14*s]],[[6*s,2.5*s],[12*s,7*s],[9*s,12*s],[16*s,14*s],[19*s,11*s]]]:cg.kind===\"scarab\"?[[[5*s,-1.5*s],[9*s,-4*s],[12*s,-3*s]],[[5*s,1.5*s],[9*s,4*s],[12*s,3*s]]]:[[[6*s,-1.2*s],[11*s,-5*s],[8*s,-8*s],[16*s,-9*s]],[[6*s,1.2*s],[11*s,5*s],[8*s,8*s],[16*s,9*s]]];ctx.lineWidth=LINE_AUX;ctx.globalAlpha=strokeAlpha;for(const chain of ant){ctx.beginPath();chain.forEach((p,idx)=>{const pt=projectLocal(p[0],p[1],creature,rot,originX,originY,look,cg.stackGap*2.35*elev);if(idx===0)ctx.moveTo(pt.x,pt.y);else ctx.lineTo(pt.x,pt.y);});ctx.stroke();}}creature._drawPartLift=0;}ctx.lineWidth=lineW;ctx.globalAlpha=strokeAlpha;// legs — coxa plate + tapered femur / tibia spars\nctx.strokeStyle=legColor;ctx.fillStyle=legColor;ctx.globalAlpha=strokeAlpha;ctx.lineWidth=LINE_AUX;const tuck=creature.flying?.45:1;const maxLegPx=g.legLength*s*look.perspective*1.2+(creature._stanceLift||0);const femurW=2.15+s*.55;const tibiaW=1.45+s*.35;for(let i=0;i<creature.legs.length;i++){const leg=creature.legs[i];const hip=groundToScreen(leg.hipX,leg.hipY,originX,originY,look.perspective,look.depth);hip.y-=creature.height+(creature._stanceLift||0);let footX=creature.flying?leg.hipX+(leg.footX-leg.hipX)*tuck:leg.footX;let footY=creature.flying?leg.hipY+(leg.footY-leg.hipY)*tuck:leg.footY;// hard clamp in world space before project\n{const dx=footX-leg.hipX;const dy=footY-leg.hipY;const d=Math.sqrt(dx*dx+dy*dy)||1;const maxR=g.legLength*s*1.06;if(d>maxR){footX=leg.hipX+dx/d*maxR;footY=leg.hipY+dy/d*maxR;}}const foot=groundToScreen(footX,footY,originX,originY,look.perspective,look.depth);foot.y-=creature.height*(creature.flying?.35:0);// screen-space safety clamp (prevents rare projection spikes)\n{const sdx=foot.x-hip.x;const sdy=foot.y-hip.y;const sd=Math.sqrt(sdx*sdx+sdy*sdy)||1;if(sd>maxLegPx+40){foot.x=hip.x+sdx/sd*(maxLegPx+40);foot.y=hip.y+sdy/sd*(maxLegPx+40);}}const kx=hip.x+(foot.x-hip.x)*g.kneeAlong;const ky=hip.y+(foot.y-hip.y)*g.kneeAlong-g.kneeLift*(.7+look.size*.25)*tuck;// hip socket / coxa\nconst side=i<3?-1:1;ctx.lineWidth=LINE_STRUCT;strokePoly2(ctx,[{x:hip.x,y:hip.y},{x:hip.x+side*3.4*s,y:hip.y-2.4*s},{x:hip.x+side*4.8*s,y:hip.y+1.6*s}],false,bodyFill,legColor,{strokeAlpha:Math.max(.5,strokeAlpha*.8)});ctx.lineWidth=LINE_CONTOUR;strokePoly2(ctx,sparTrapezoid(hip.x,hip.y,kx,ky,femurW,femurW*.62),false,bodyFill,legColor,{strokeAlpha});ctx.lineWidth=LINE_STRUCT;strokePoly2(ctx,sparTrapezoid(kx,ky,foot.x,foot.y,tibiaW,Math.max(.35,tibiaW*.18)),false,bodyFill,legColor,{strokeAlpha:Math.max(.55,strokeAlpha*.88)});}ctx.restore();ctx.restore()// morph scale\n;}function fishWorldToScreen(wx,wy,originX,originY,look){// Same isometric ground as insects/flora — restores scene depth\nreturn groundToScreen(wx,wy,originX,originY,look.perspective,look.depth);}/** Hold → ease within each yaw step so the turn reads as several kicks */function fishTurnStepped(u,steps=FISH_TURN_STEPS){const t=Math.max(0,Math.min(1,u));const s=Math.min(steps-1e-9,t*steps);const i=Math.floor(s);const f=s-i;// linger on each heading, then ease into the next (~fish kick)\nconst local=f<.38?0:(1-Math.cos((f-.38)/.62*Math.PI))*.5;return(i+local)/steps;}function getFishTurnPose(creature){const facing=creature.facing>=0?1:-1;const turnFrom=typeof creature.turnFrom===\"number\"?creature.turnFrom:facing;const turnSide=typeof creature.turnSide===\"number\"&&creature.turnSide!==0?Math.sign(creature.turnSide):1;if(!(creature.turnT>0)){return{alongX:facing,alongY:0,yaw:0,bank:0,bend:0,u:0,turnFrom,turnSide};}const rawU=1-creature.turnT;const u=fishTurnStepped(rawU);const yaw=u*Math.PI// 0 → 180°\n;return{alongX:turnFrom*Math.cos(yaw),alongY:turnSide*Math.sin(yaw),yaw,bank:Math.sin(yaw),bend:Math.sin(yaw)*1.15,u,turnFrom,turnSide};}function projectFishLocal(lx,ly,creature,look,originX,originY,undulate=0,depthBias=0,lz=0){const s=sizeMul(creature,look.size);const pose=getFishTurnPose(creature);const sLen=s*FISH_LENGTH_SCALE;const sGirth=s*FISH_GIRTH_SCALE;const halfW=FISH_WIDTH_SCALE*s;// C-bend + bank: head/tail oppose on the fish's lateral axis\nconst bendZ=pose.bend*(lx/18)*2.6;const bankZ=pose.bank*depthBias*2.4*pose.turnSide;const latAmt=(lz+bendZ)*sGirth*.55+depthBias*halfW+bankZ*s;// Forward + right on ground from stepped yaw\nlet fx=pose.alongX;let fy=pose.alongY;const fl=Math.hypot(fx,fy)||1;fx/=fl;fy/=fl;const rx=-fy;const ry=fx;const wx=creature.x+lx*sLen*fx+latAmt*rx;const wy=creature.y+lx*sLen*fy+latAmt*ry;// local −y = dorsal (screen-up). lift must ADD when ly is negative.\nconst pitch=pose.bank*lx*.05*sGirth;const lift=-(ly+undulate)*sGirth+pitch;const scr=groundToScreen(wx,wy,originX,originY,look.perspective,look.depth);return{x:scr.x,y:scr.y-lift-creature.height};}function pickFishDestination(creature,groundSpan,preferFacing){const niche=fishNiche(creature.genome.kind);const xSpan=groundSpan*.85;const ySpan=groundSpan*.72;const face=preferFacing!==undefined?preferFacing:creature.facing>=0?1:-1;// Fast fish take longer legs; bottom dwellers shorter crawls\nconst ahead=(110+Math.random()*Math.max(90,xSpan*.7))*(.7+niche.speed*.35);let destX=creature.x+face*ahead;const xLimit=xSpan*.48;destX=Math.max(-xLimit,Math.min(xLimit,destX));if((destX-creature.x)*face<90){destX=face*xLimit*(.85+Math.random()*.12);}const bandCenter=niche.depthY*ySpan*.48;const bandHalf=ySpan*(niche.jump?.22:.28);const yJump=Math.random()<.55?bandCenter+(Math.random()-.5)*bandHalf*2:creature.y+(Math.random()-.5)*bandHalf;creature.destY=Math.max(-ySpan*.48,Math.min(ySpan*.48,yJump));creature.destX=destX;creature.roaming=true;}function beginFishTurn(creature,newFacing){if(creature.turnT>0||(creature.turnCooldown||0)>0)return;if(newFacing===creature.facing)return;creature.turnFrom=creature.facing;creature.turnT=1;creature.cruiseT=0;const prefer=creature.y>=0?-1:1;creature.turnSide=prefer;}function updateFishCreature(creature,dt,activity,groundSpan,lookSize,margin){const g=creature.genome;const niche=fishNiche(g.kind);const s=sizeMul(creature,lookSize);if(typeof creature.facing!==\"number\")creature.facing=1;if(typeof creature.turnFrom!==\"number\")creature.turnFrom=creature.facing;if(typeof creature.turnT!==\"number\")creature.turnT=0;if(typeof creature.turnSide!==\"number\")creature.turnSide=1;if(typeof creature.turnCooldown!==\"number\")creature.turnCooldown=0;if(typeof creature.cruiseT!==\"number\")creature.cruiseT=0;if(typeof creature.fishJumpT!==\"number\")creature.fishJumpT=0;if(typeof creature.dorsalPhase!==\"number\"){creature.dorsalPhase=creature.flapPhase||0;}creature.flying=false;const turning=creature.turnT>0;const pose=getFishTurnPose(creature);const kickPulse=turning&&pose.bank>.15?1.35+Math.abs(Math.sin(creature.flapPhase*2.2))*.55:1;const flapRate=12*niche.flap*activity*(turning?.85*kickPulse:1.15);creature.flapPhase+=dt*flapRate;creature.dorsalPhase+=dt*(flapRate/3);const xMargin=margin*.95;const yMargin=margin*.78;const edgeZone=xMargin*.92;const minCruise=2.4+niche.turnSlow*.9;if(creature.turnCooldown>0){creature.turnCooldown=Math.max(0,creature.turnCooldown-dt);}// Flying-fish surface skips\nif(niche.jump&&!turning){if(creature.fishJumpT>0){creature.fishJumpT=Math.max(0,creature.fishJumpT-dt);}else if(creature.cruiseT>1.2&&Math.random()<dt*.45){creature.fishJumpT=1.05;}}else if(!niche.jump){creature.fishJumpT=0;}const jumping=niche.jump&&creature.fishJumpT>0;const jumpU=jumping?1-creature.fishJumpT/1.05:0;const jumpLift=jumping?Math.sin(Math.min(1,Math.max(0,jumpU))*Math.PI)*(52+18*s):0;if(turning){const prev=creature.turnT;const turnSpeed=.28/niche.turnSlow*Math.max(.65,activity)*(.75+pose.bank*.5);creature.turnT=Math.max(0,creature.turnT-dt*turnSpeed);if(prev>0&&creature.turnT<=0){creature.facing=-creature.turnFrom;creature.turnCooldown=(3.2+Math.random()*2.2)*niche.turnSlow;creature.cruiseT=0;pickFishDestination(creature,groundSpan,creature.facing);}}else{creature.cruiseT+=dt;}const dir=creature.facing>=0?1:-1;if(creature.turnT<=0&&creature.turnCooldown<=0&&creature.cruiseT>minCruise){if(dir>0&&creature.x>edgeZone){beginFishTurn(creature,-1);pickFishDestination(creature,groundSpan,-1);}else if(dir<0&&creature.x<-edgeZone){beginFishTurn(creature,1);pickFishDestination(creature,groundSpan,1);}}const distToDest=Math.hypot(creature.destX-creature.x,creature.destY-creature.y);if(creature.turnT<=0&&creature.cruiseT>1.6&&(!creature.roaming||distToDest<28)){pickFishDestination(creature,groundSpan,creature.facing);}else if(creature.turnT<=0&&!creature.roaming){pickFishDestination(creature,groundSpan,creature.facing);}const swim=28*niche.speed*s*.28*activity*(jumping?1.35:1);if(turning){const speed=swim*(.18+pose.bank*.2);creature.x+=pose.alongX*speed*dt;creature.y+=pose.alongY*speed*dt*.85;}else{creature.x+=dir*swim*dt;const dy=creature.destY-creature.y;const vSpeed=swim*(.35+Math.abs(Math.sin(creature.flapPhase*.35))*.25)*(niche.jump?.7:1);creature.y+=Math.sign(dy||1)*Math.min(Math.abs(dy),vSpeed)*dt;if(creature.cruiseT>1&&Math.random()<dt*.15){const ySpan=groundSpan*.72;creature.destY+=niche.depthY*4+(Math.random()-.5)*groundSpan*.08;const band=niche.depthY*ySpan*.48;const half=ySpan*.3;creature.destY=Math.max(band-half,Math.min(band+half,creature.destY));creature.destY=Math.max(-yMargin*.9,Math.min(yMargin*.9,creature.destY));}}const bandH=(niche.heightMin+niche.heightMax)*.5+Math.sin(creature.flapPhase*.22)*(niche.heightMax-niche.heightMin)*.35;const bob=Math.sin(creature.flapPhase*.55)*niche.bob*s;const targetH=(turning?pose.bank*4*s:0)+bandH+bob+jumpLift;creature.height+=(targetH-creature.height)*Math.min(1,dt*(jumping?4.5:1.6));creature.aimX=creature.x;creature.aimY=creature.y;creature.heading=Math.atan2(turning?pose.alongY:0,turning?pose.alongX:dir);creature.aimHeading=creature.heading;if(creature.x<-xMargin||creature.x>xMargin){creature.x=Math.max(-xMargin,Math.min(xMargin,creature.x));if(creature.turnT<=0&&creature.turnCooldown<=0&&creature.cruiseT>minCruise*.6){beginFishTurn(creature,creature.x>0?-1:1);pickFishDestination(creature,groundSpan,creature.x>0?-1:1);}}if(creature.y<-yMargin||creature.y>yMargin){creature.destY=Math.max(-yMargin*.7,Math.min(yMargin*.7,-creature.y*.35));creature.y=Math.max(-yMargin,Math.min(yMargin,creature.y));}}function fishPlateCentroid(plate){let sx=0;let sy=0;for(const p of plate.poly){sx+=p.x;sy+=p.y;}const n=Math.max(1,plate.poly.length);return{ax:sx/n,ay:sy/n};}function classifyFishPlate(plate){if(plate.role)return plate.role;const{ax,ay}=fishPlateCentroid(plate);if(ax<-8.5)return\"tail\";// local −y = screen-up → dorsal; +y = belly side → pectoral/pelvic pair\nif(ay<-3.5&&ax>-8)return\"dorsal\";if(ay>2.5&&ax>-6&&ax<16)return\"pectoral\";return\"body\";}/** Keep a single fin plate per role (hybrids can carry duplicates). */function pickPrimaryFin(fins,role){const cands=fins.filter(f=>(f.role||classifyFishPlate(f))===role);if(!cands.length)return null;if(role===\"dorsal\"){// Most dorsal = lowest average y (screen-up)\nreturn cands.reduce((a,b)=>fishPlateCentroid(a).ay<=fishPlateCentroid(b).ay?a:b);}if(role===\"tail\"){return cands.reduce((a,b)=>fishPlateCentroid(a).ax<=fishPlateCentroid(b).ax?a:b);}// pectoral: prefer mid-body\nreturn cands.reduce((a,b)=>{const da=Math.abs(fishPlateCentroid(a).ax-4);const db=Math.abs(fishPlateCentroid(b).ax-4);return da<=db?a:b;});}/**\n * Dorsal: rigid triangle, base fixed on the back, tip leans slightly in depth.\n * Keep amplitude small — large Z sway reads as a second fin on iso.\n */function deformDorsalPlate(poly,phase,intensity=1){const i=Math.max(.2,intensity);if(poly.length<3){return poly.map(p=>({x:p.x,y:p.y,z:0}));}const byY=poly.map((p,idx)=>({idx,y:p.y})).sort((a,b)=>b.y-a.y);const baseA=byY[0].idx;const baseB=byY[1].idx;const tip=byY[byY.length-1].idx;const lean=Math.sin(phase)*.08*i// gentle tip lean only\n;const midY=(poly[baseA].y+poly[baseB].y)*.5;return poly.map((p,idx)=>{if(idx===baseA||idx===baseB){return{x:p.x,y:p.y,z:0};}const h=Math.max(0,(midY-p.y)/10);const z=Math.sin(lean)*h*5;if(idx===tip)return{x:p.x,y:p.y,z};return{x:p.x,y:p.y,z:z*.3};});}/** Local swim kinematics: body/tail wave in Z (depth), pectoral flaps in Y\n *  pecSide: -1 | +1 for left/right pectorals (opposite phase) */function deformSwimLocal(p,phase,role,intensity=1,pecSide=0){const i=Math.max(.2,intensity);const along=p.x;const tailWeight=Math.max(0,Math.min(1,(-along+4)/22));const waveZ=Math.sin(phase-along*.22)*(.14+tailWeight*.45)*i;if(role===\"tail\"){const pivotX=-5.5;const bend=Math.sin(phase*1.15)*(.06+tailWeight*.08)*i;const dx=p.x-pivotX;const c=Math.cos(bend);const s=Math.sin(bend);return{x:pivotX+dx*c,y:p.y,z:dx*s+waveZ*.35};}if(role===\"pectoral\"){const side=pecSide===0?p.y>=0?1:-1:pecSide;// Out / in only (lateral Z). No XY rotation — that reads as violent fore-aft.\nconst open=Math.sin(phase*.45+(side>0?0:Math.PI))*.5*i;// Root near body stays put; tips move more\nconst tipW=Math.max(0,Math.min(1,(Math.abs(p.y)-.8)/7));return{x:p.x,y:p.y,z:side*(1.05+open*tipW*1.1)};}// dorsal handled by deformDorsalPlate\nreturn{x:p.x,y:p.y,z:role===\"dorsal\"?0:waveZ};}function drawFishSide(ctx,creature,originX,originY,look){const g=creature.genome;const s=sizeMul(creature,look.size);const master=look.masterColor||look.strokeColor||\"#C8C8C8\";const hue=typeof g.colorHue===\"number\"?g.colorHue:0;const fillShade=typeof g.colorFill===\"number\"?g.colorFill:g.tint||.85;const strokeShade=typeof g.colorStroke===\"number\"?g.colorStroke:1;const baseFill=look.bodyColor||shadeHexOrRgb(master,.78);const baseStroke=look.strokeColor||master;const bodyFill=mapBaseColor(baseFill,fillShade,hue*.65);const bodyStroke=mapBaseColor(baseStroke,strokeShade,hue);const flash=creature.reassembleFlash||0;const strokeAlpha=Math.min(1,Math.max(.72,.9+flash*.1));const lineW=.5;const kit=getFishDrawKit(g);const turnPose=getFishTurnPose(creature);const flipAmt=turnPose.bank;const swimIntensity=(creature.turnT>0?.55+flipAmt*.7:1)*(.85+Math.min(.25,(creature.cruiseT||0)*.05));const phase=creature.flapPhase;const dorsalPhase=typeof creature.dorsalPhase===\"number\"?creature.dorsalPhase:phase/3;ctx.save();ctx.lineWidth=lineW;ctx.lineJoin=\"miter\";ctx.miterLimit=2.8;ctx.lineCap=\"butt\";ctx.globalAlpha=strokeAlpha;drawContactShadow(ctx,creature.x,creature.y,originX,originY,look,16*s*FISH_LENGTH_SCALE,7*s*(FISH_WIDTH_SCALE/3.2),false);const drawPlate=(plate,depthBias,opts={})=>{const role=plate.role||classifyFishPlate(plate);const pecSide=opts.pecSide??0;const scale=opts.scale??1;let poly=plate.poly;if(scale!==1){const{ax,ay}=fishPlateCentroid(plate);poly=plate.poly.map(p=>({x:ax+(p.x-ax)*scale,y:ay+(p.y-ay)*scale}));}const deformed=role===\"dorsal\"?deformDorsalPlate(poly,dorsalPhase,swimIntensity):poly.map(p=>deformSwimLocal(p,phase,role,swimIntensity,pecSide));const pts=deformed.map(d=>projectFishLocal(d.x,d.y,creature,look,originX,originY,0,depthBias,d.z));const wantStroke=opts.stroke!==false;const wantFill=plate.filled||!wantStroke;strokePoly2(ctx,pts,wantFill,bodyFill,bodyStroke,{fillAlpha:opts.fillAlpha??(wantFill?wantStroke?.55:.28:undefined),hatch:opts.hatch===true,strokeAlpha,stroke:wantStroke});};// One canonical dorsal on the back; one tail; one pectoral mirrored L/R\nconst dorsalFin=kit.dorsalFin;const tailFin=kit.tailFin;const pecFin=kit.pecFin;const bodies=kit.bodies;// Body volume: far → mid → near. Sides = 90% fill-only; mid = stroke+fill.\nconst girthBias=.7+flipAmt*.2;const sideScale=.9;for(const body of bodies){if(!body.filled)continue;drawPlate(body,girthBias,{scale:sideScale,stroke:false,fillAlpha:.5,hatch:false});}let hatchedBody=false;for(const body of bodies){if(!body.filled)continue;drawPlate(body,0,{scale:1,stroke:true,fillAlpha:.5,hatch:!hatchedBody});hatchedBody=true;}for(const body of bodies){if(!body.filled)continue;drawPlate(body,-girthBias,{scale:sideScale,stroke:false,fillAlpha:.55,hatch:false});}// Insect-like head / thorax / abdomen facet plates\nconst facets=kit.facets;for(const facet of facets){const isHead=facet.zone===\"head\";const isAbdomen=facet.zone===\"abdomen\";const isThorax=facet.zone===\"thorax\";drawPlate(facet,0,{stroke:true,fillAlpha:facet.filled?isHead?.72:isAbdomen?.28:.52:undefined,hatch:isThorax&&facet.filled});if(isThorax&&facet.filled){drawPlate(facet,0,{scale:.86,stroke:true,fillAlpha:.08,hatch:false});}}// Structural seams between head / thorax / abdomen (insect segment joins)\n{const seams=[[8.5,-3.8,11.5,3.6],[-2.5,-4.2,.8,4],[-9.5,-2.6,-7.2,2.8]];ctx.strokeStyle=bodyStroke;ctx.lineWidth=lineW;ctx.globalAlpha=Math.max(.45,strokeAlpha*.6);for(const[x0,y0,x1,y1]of seams){const a=deformSwimLocal({x:x0,y:y0},phase,\"body\",swimIntensity*.7);const b=deformSwimLocal({x:x1,y:y1},phase,\"body\",swimIntensity*.7);const pa=projectFishLocal(a.x,a.y,creature,look,originX,originY,0,0,a.z);const pb=projectFishLocal(b.x,b.y,creature,look,originX,originY,0,0,b.z);ctx.beginPath();ctx.moveTo(pa.x,pa.y);ctx.lineTo(pb.x,pb.y);ctx.stroke();}ctx.globalAlpha=strokeAlpha;}if(tailFin)drawPlate(tailFin,0,{stroke:true,hatch:true,fillAlpha:.35});if(dorsalFin)drawPlate(dorsalFin,0,{stroke:true,hatch:false,fillAlpha:.42});if(pecFin){drawPlate(pecFin,girthBias,{pecSide:1,stroke:true,hatch:false});drawPlate(pecFin,-girthBias,{pecSide:-1,stroke:true,hatch:false});}if(kit.wires.length){ctx.strokeStyle=bodyStroke;ctx.lineWidth=lineW;ctx.globalAlpha=Math.max(.62,strokeAlpha*.92);const wireStep=kit.wires.length>40?2:1;for(let wi=0;wi<kit.wires.length;wi+=wireStep){const wire=kit.wires[wi];ctx.beginPath();for(let idx=0;idx<wire.length;idx++){const p=wire[idx];const d=deformSwimLocal(p,phase,p.x<-8?\"tail\":\"body\",swimIntensity*.85);const pt=projectFishLocal(d.x,d.y,creature,look,originX,originY,0,0,d.z);if(idx===0)ctx.moveTo(pt.x,pt.y);else ctx.lineTo(pt.x,pt.y);}ctx.stroke();}ctx.globalAlpha=strokeAlpha;}const eyeLocal=deformSwimLocal({x:14.5,y:-1.6},phase,\"body\",swimIntensity*.5);const eye=projectFishLocal(eyeLocal.x,eyeLocal.y,creature,look,originX,originY,0,0,eyeLocal.z);ctx.globalAlpha=strokeAlpha;ctx.beginPath();ctx.arc(eye.x,eye.y,Math.max(.8,1.2*s*.35),0,Math.PI*2);ctx.stroke();ctx.restore();}function mapFloraBladePoint(p,ang,pitch,baseLift,scale,ca=Math.cos(ang),sa=Math.sin(ang),cp=Math.cos(pitch),sp=Math.sin(pitch)){const along=p.x*scale;const wide=p.y*scale;const radial=along*cp;const lift=baseLift+along*sp;return{lx:radial*ca-wide*sa,ly:radial*sa+wide*ca,lift};}function mapFloraCyl(r,side,ang,scale,ca=Math.cos(ang),sa=Math.sin(ang)){return{lx:r*scale*ca-side*scale*sa,ly:r*scale*sa+side*scale*ca};}function drawFloraDryGarden(ctx,creature,originX,originY,look){const g=creature.genome;const niche=floraNiche(g.kind);const grow=floraGrowthU(creature);const s=sizeMul(creature,look.size)*(1.55+.7*grow);const master=look.masterColor||look.strokeColor||\"#C8C8C8\";const hue=typeof g.colorHue===\"number\"?g.colorHue:0;const fillShade=typeof g.colorFill===\"number\"?g.colorFill:g.tint||.85;const strokeShade=typeof g.colorStroke===\"number\"?g.colorStroke:1;const legShade=typeof g.colorLeg===\"number\"?g.colorLeg:.95;const baseFill=look.bodyColor||shadeHexOrRgb(master,.78);const baseStroke=look.strokeColor||master;const baseLeg=look.legColor||master;const bodyFill=mapBaseColor(baseFill,fillShade,hue*.65);const bodyStroke=mapBaseColor(baseStroke,strokeShade,hue);const legColor=mapBaseColor(baseLeg,legShade,hue*.4);const flash=creature.reassembleFlash||0;const morphScale=Math.max(.001,typeof creature.morphScale===\"number\"?creature.morphScale:1);const strokeAlpha=Math.min(1,Math.max(.5,(.72+flash*.28)*(.35+.65*Math.min(1,morphScale))));const kit=getDryFloraKit(g.kind,floraSeed(g));const rot=creature.aimHeading;const cosR=Math.cos(rot);const sinR=Math.sin(rot);const hGrow=.22+.78*grow;const liftScale=s*.95;ctx.save();ctx.lineWidth=.5;ctx.lineJoin=\"miter\";ctx.miterLimit=2.8;ctx.lineCap=\"butt\";ctx.globalAlpha=strokeAlpha;const floraShadowR=(g.kind===\"kino\"||g.kind===\"barrel\"?14+grow*10:g.kind===\"cactus\"||g.kind===\"yucca\"?10+grow*6:11+grow*7+niche.height*.05)*s*.7;drawContactShadow(ctx,creature.x,creature.y,originX,originY,look,floraShadowR,floraShadowR*.4,false);const project=(lx,ly,lift)=>{const wx=creature.x+lx*cosR-ly*sinR;const wy=creature.y+lx*sinR+ly*cosR;const scr=groundToScreen(wx,wy,originX,originY,look.perspective,look.depth);return{x:scr.x,y:scr.y-lift-creature.height};};// roots\nctx.strokeStyle=legColor;ctx.globalAlpha=strokeAlpha*(.3+.4*grow);for(const root of kit.roots){ctx.beginPath();const rootS=s*(.5+.5*grow);for(let idx=0;idx<root.length;idx++){const p=root[idx];const pt=project(p.x*rootS,p.y*rootS,.4);if(idx===0)ctx.moveTo(pt.x,pt.y);else ctx.lineTo(pt.x,pt.y);}ctx.stroke();}ctx.globalAlpha=strokeAlpha;for(let ti=0;ti<kit.trunk.length;ti++){const reveal=Math.max(0,Math.min(1,(grow-ti*.05)/.3));if(reveal<=.02)continue;const plate=kit.trunk[ti];const lift=plate.lift*hGrow*liftScale*(.85+look.size*.12);const sc=s*(.55+.45*reveal);const pts=plate.poly.map(p=>project(p.x*sc,p.y*sc,lift));strokePoly2(ctx,pts,plate.filled,bodyFill,bodyStroke,{fillAlpha:plate.filled?.78*reveal:undefined,hatch:plate.filled,strokeAlpha:strokeAlpha*(.45+.55*reveal)});ctx.globalAlpha=strokeAlpha;}for(let ri=0;ri<kit.ribs.length;ri++){const rib=kit.ribs[ri];const stagger=ri*(.35/Math.max(1,kit.ribs.length));const ribGrow=Math.max(0,Math.min(1,(grow-stagger*.4)/.55));if(ribGrow<=.03)continue;const ca=Math.cos(rib.ang);const sa=Math.sin(rib.ang);const liftMul=hGrow*liftScale*(.35+.65*ribGrow);const pts=rib.pts.map(p=>{const c=mapFloraCyl(p.r,p.side,rib.ang,s,ca,sa);return project(c.lx,c.ly,p.lift*liftMul);});strokePoly2(ctx,pts,rib.filled,bodyFill,bodyStroke,{fillAlpha:rib.filled?.72*ribGrow:undefined,hatch:rib.filled,strokeAlpha:strokeAlpha*(.4+.6*ribGrow)});// Ghost outline on alternate filled ribs only (cheaper depth cue)\nif(rib.filled&&ribGrow>.55&&ri%2===0){const ghost=rib.pts.map(p=>{const c=mapFloraCyl(p.r*.9,p.side*.85,rib.ang,s,ca,sa);return project(c.lx,c.ly,p.lift*liftMul+1.4*liftScale);});strokePoly2(ctx,ghost,false,bodyFill,bodyStroke,{strokeAlpha:Math.max(.3,strokeAlpha*.4*ribGrow)});}ctx.globalAlpha=strokeAlpha;}if(grow>.12){ctx.strokeStyle=bodyStroke;ctx.globalAlpha=Math.max(.3,strokeAlpha*.5*grow);for(const ring of kit.ringWires){const ringLift=ring.lift*hGrow*liftScale;if(ringLift<4)continue;ctx.beginPath();for(let idx=0;idx<ring.poly.length;idx++){const p=ring.poly[idx];const pt=project(p.x*s,p.y*s,ringLift);if(idx===0)ctx.moveTo(pt.x,pt.y);else ctx.lineTo(pt.x,pt.y);}ctx.stroke();}ctx.globalAlpha=strokeAlpha;}if(kit.wires.length&&grow>.08){ctx.strokeStyle=bodyStroke;ctx.globalAlpha=Math.max(.3,strokeAlpha*.4*grow);const wireLift=(kit.trunk[0]?.lift||4)*hGrow*liftScale*.7;for(let wi=0;wi<kit.wires.length;wi++){if(wi/Math.max(1,kit.wires.length)>grow)continue;const wire=kit.wires[wi];ctx.beginPath();for(let idx=0;idx<wire.length;idx++){const p=wire[idx];const pt=project(p.x*s,p.y*s,wireLift+idx*.4);if(idx===0)ctx.moveTo(pt.x,pt.y);else ctx.lineTo(pt.x,pt.y);}ctx.stroke();}ctx.globalAlpha=strokeAlpha;}for(let li=0;li<kit.leaves.length;li++){const leaf=kit.leaves[li];const stagger=li*(.55/Math.max(1,kit.leaves.length));const leafGrow=Math.max(0,Math.min(1,(grow-stagger*.5)/.6));if(leafGrow<=.02&&grow<.05)continue;const lenScale=s*(.28+.72*Math.max(leafGrow,grow*.35));const baseLift=leaf.lift*hGrow*liftScale;const ca=Math.cos(leaf.ang);const sa=Math.sin(leaf.ang);const cp=Math.cos(leaf.pitch);const sp=Math.sin(leaf.pitch);const pts=leaf.poly.map(p=>{const m=mapFloraBladePoint(p,leaf.ang,leaf.pitch,baseLift,lenScale,ca,sa,cp,sp);return project(m.lx,m.ly,m.lift);});strokePoly2(ctx,pts,leaf.filled,bodyFill,bodyStroke,{fillAlpha:leaf.filled?.75*leafGrow:undefined,hatch:leaf.filled,strokeAlpha:strokeAlpha*(.4+.6*leafGrow)});if(leafGrow>.35){const tipX=leaf.poly.reduce((m,p)=>Math.max(m,p.x),0);const a=mapFloraBladePoint({x:.6,y:0},leaf.ang,leaf.pitch,baseLift,lenScale,ca,sa,cp,sp);const b=mapFloraBladePoint({x:tipX*.92,y:0},leaf.ang,leaf.pitch,baseLift,lenScale,ca,sa,cp,sp);const pa=project(a.lx,a.ly,a.lift+.3);const pb=project(b.lx,b.ly,b.lift+.5);ctx.strokeStyle=bodyStroke;ctx.globalAlpha=Math.max(.3,strokeAlpha*.5*leafGrow);ctx.beginPath();ctx.moveTo(pa.x,pa.y);ctx.lineTo(pb.x,pb.y);ctx.stroke();ctx.globalAlpha=strokeAlpha;}}if(grow>.28&&kit.spines3.length){const spineA=Math.min(1,(grow-.28)/.45);ctx.strokeStyle=legColor;ctx.globalAlpha=strokeAlpha*(.35+.5*spineA);const max=Math.ceil(kit.spines3.length*spineA);let lastAng=NaN;let ca=1;let sa=0;for(let si=0;si<max;si++){const sp=kit.spines3[si];if(sp.ang!==lastAng){lastAng=sp.ang;ca=Math.cos(sp.ang);sa=Math.sin(sp.ang);}const a=mapFloraCyl(sp.r0,sp.side,sp.ang,s,ca,sa);const b=mapFloraCyl(sp.r1,sp.side*.4,sp.ang,s,ca,sa);const pa=project(a.lx,a.ly,sp.lift*hGrow*liftScale);const pb=project(b.lx,b.ly,sp.lift*hGrow*liftScale+.4*liftScale);ctx.beginPath();ctx.moveTo(pa.x,pa.y);ctx.lineTo(pb.x,pb.y);ctx.stroke();}ctx.globalAlpha=strokeAlpha;}if(grow>.4&&kit.spines.length){const spineA=Math.min(1,(grow-.4)/.4);ctx.strokeStyle=legColor;ctx.globalAlpha=strokeAlpha*(.35+.5*spineA);const max=Math.ceil(kit.spines.length*spineA);for(let si=0;si<max;si++){const sp=kit.spines[si];const ca=Math.cos(sp.ang);const sa=Math.sin(sp.ang);const cp=Math.cos(sp.pitch);const spp=Math.sin(sp.pitch);const lift=sp.lift*hGrow*liftScale;const a=mapFloraBladePoint({x:sp.along0,y:sp.side},sp.ang,sp.pitch,lift,s,ca,sa,cp,spp);const b=mapFloraBladePoint({x:sp.along1,y:sp.side*.5},sp.ang,sp.pitch,lift,s,ca,sa,cp,spp);const pa=project(a.lx,a.ly,a.lift);const pb=project(b.lx,b.ly,b.lift);ctx.beginPath();ctx.moveTo(pa.x,pa.y);ctx.lineTo(pb.x,pb.y);ctx.stroke();}ctx.globalAlpha=strokeAlpha;}ctx.restore();}function updateFloraCreature(creature,dt,activity,_lookSize){creature.flying=false;creature.roaming=false;creature.flyLeft=0;if(typeof creature.dorsalPhase!==\"number\")creature.dorsalPhase=0;const niche=floraNiche(creature.genome.kind);const rate=.85+activity*.35;if((creature.dorsalPhase||0)<niche.growSec){creature.dorsalPhase=Math.min(niche.growSec,(creature.dorsalPhase||0)+dt*rate);}const grow=floraGrowthU(creature);// Rise is in plate lifts — keep body height near 0 to avoid double-count.\ncreature.height+=(2*grow-creature.height)*Math.min(1,dt*2.2);creature.heading=creature.aimHeading;creature.aimX=creature.x;creature.aimY=creature.y;creature.destX=creature.x;creature.destY=creature.y;}function updateCreature(creature,dt,speed,groundSpan,lookSize,peers=[]){creature._lookSize=lookSize;updateCreatureMorph(creature,dt);if(creature.reassembleFlash>0){creature.reassembleFlash=Math.max(0,creature.reassembleFlash-dt*1.8);}const activity=Math.max(.25,speed);const g=creature.genome;const s=sizeMul(creature,lookSize);const margin=groundSpan*.72;const motif=g.motif||creature.motif||\"insect\";if(motif===\"fish\"||isFishKind(g.kind)){updateFishCreature(creature,dt,activity,groundSpan,lookSize,margin);return;}if(motif===\"flora\"||isFloraKind(g.kind)){updateFloraCreature(creature,dt,activity,lookSize);return;}ensureInsectKnockFields(creature);if((creature.assembleT||-1)>=0&&creature.morphPendingGenome){refreshHips(creature,lookSize);clampLegReach(creature,lookSize);return;}if(creature.hornClashCd>0){creature.hornClashCd=Math.max(0,creature.hornClashCd-dt);}// Horn clash tumble — slide / hop before normal gait resumes\nif(creature.knockT>0){creature.knockT=Math.max(0,creature.knockT-dt);creature.flying=false;creature.x+=creature.knockVx*dt;creature.y+=creature.knockVy*dt;const damp=Math.exp(-5.5*dt);creature.knockVx*=damp;creature.knockVy*=damp;creature.height+=(0-creature.height)*Math.min(1,dt*2.4);// Only reorient when knock is a real tumble (victim). Light recoil\n// (attacker) keeps heading so horns don't spin away from the hit.\nif(creature.knockSpin){creature.heading=wrapAngle(creature.heading+wrapAngle(Math.atan2(creature.knockVy,creature.knockVx)-creature.heading)*Math.min(1,dt*6));}creature.aimHeading=creature.heading;creature.aimX=creature.x;creature.aimY=creature.y;creature.x=Math.max(-margin,Math.min(margin,creature.x));creature.y=Math.max(-margin,Math.min(margin,creature.y));refreshHips(creature,lookSize);for(const leg of creature.legs){leg.aimX=leg.hipX+(leg.aimX-leg.hipX)*.2;leg.aimY=leg.hipY+(leg.aimY-leg.hipY)*.2;leg.footX=leg.aimX;leg.footY=leg.aimY;}clampLegReach(creature,lookSize);if(creature.knockT<=0){creature.knockVx=0;creature.knockVy=0;creature.knockSpin=false;creature.roaming=true;creature.pauseLeft=.15+Math.random()*.25;}return;}const sep=insectSeparationSteer(creature,peers,lookSize);// flight mode\nif(creature.flying){creature.flyLeft-=dt;creature.flapPhase+=dt*(g.kind===\"dragonfly\"?18:g.kind===\"butterfly\"?14:10)*activity;const targetH=(g.kind===\"dragonfly\"?40:g.kind===\"butterfly\"?34:22)+Math.sin(creature.flapPhase)*4;creature.height+=(targetH-creature.height)*Math.min(1,dt*3);// Light aerial separation — don't stack mid-air\nif(sep.steerX||sep.steerY){creature.heading=wrapAngle(creature.heading+wrapAngle(Math.atan2(sep.steerY,sep.steerX)-creature.heading)*Math.min(1,dt*3.5));}else{creature.heading=wrapAngle(creature.heading+(Math.random()-.5)*dt*1.4);}const flySpeed=(g.kind===\"dragonfly\"?55:g.kind===\"butterfly\"?42:30)*s*.35*activity;creature.x+=Math.cos(creature.heading)*flySpeed*dt;creature.y+=Math.sin(creature.heading)*flySpeed*dt;creature.x+=sep.pushX*28*dt;creature.y+=sep.pushY*28*dt;creature.aimX=creature.x;creature.aimY=creature.y;refreshHips(creature,lookSize);// Keep feet near hips while airborne so legs never rubber-band\nfor(const leg of creature.legs){leg.aimX=leg.hipX+(leg.aimX-leg.hipX)*.35;leg.aimY=leg.hipY+(leg.aimY-leg.hipY)*.35;leg.footX=leg.aimX;leg.footY=leg.aimY;}clampLegReach(creature,lookSize);if(creature.flyLeft<=0){creature.flying=false;creature.pauseLeft=.4+Math.random()*1.2;creature.roaming=false;// Replant under body on landing\nfor(let i=0;i<6;i++){const ang=legWorldAngle(creature.heading,i,g.fanDeg);const fx=creature.x+Math.cos(ang)*g.legLength*s;const fy=creature.y+Math.sin(ang)*g.legLength*s;creature.legs[i].aimX=fx;creature.legs[i].aimY=fy;creature.legs[i].footX=fx;creature.legs[i].footY=fy;}refreshHips(creature,lookSize);}if(creature.x<-margin||creature.x>margin)creature.heading=Math.PI-creature.heading;if(creature.y<-margin||creature.y>margin)creature.heading=-creature.heading;creature.x=Math.max(-margin,Math.min(margin,creature.x));creature.y=Math.max(-margin,Math.min(margin,creature.y));return;}creature.height+=(0-creature.height)*Math.min(1,dt*4);creature.flapPhase+=dt*1.5;if(!creature.roaming){creature.pauseLeft-=dt;// Still ease apart while paused so piles don't freeze stacked\nif(sep.pushX||sep.pushY){creature.x+=sep.pushX*32*dt;creature.y+=sep.pushY*32*dt;creature.x=Math.max(-margin,Math.min(margin,creature.x));creature.y=Math.max(-margin,Math.min(margin,creature.y));}for(const leg of creature.legs){leg.footX+=(leg.aimX-leg.footX)*Math.min(1,dt*8);leg.footY+=(leg.aimY-leg.footY)*Math.min(1,dt*8);}refreshHips(creature,lookSize);clampLegReach(creature,lookSize);if(creature.pauseLeft<=0){maybeStartFlight(creature);if(!creature.flying)pickNewDestination(creature,groundSpan,peers);}return;}const dx=creature.destX-creature.x;const dy=creature.destY-creature.y;const dist=Math.sqrt(dx*dx+dy*dy);if(dist<12+4*s){creature.roaming=false;creature.pauseLeft=.6+Math.random()*2.4;for(let i=0;i<6;i++){const ang=legWorldAngle(creature.heading,i,g.fanDeg);creature.legs[i].aimX=creature.x+Math.cos(ang)*g.legLength*s;creature.legs[i].aimY=creature.y+Math.sin(ang)*g.legLength*s;}return;}// Blend destination with separation — personal space bends the heading\nlet wantX=dx;let wantY=dy;if(sep.steerX||sep.steerY){const sepW=1.65;wantX=dx+sep.steerX*Math.max(dist,40)*sepW;wantY=dy+sep.steerY*Math.max(dist,40)*sepW;}creature.aimHeading=Math.atan2(wantY,wantX);let turn=wrapAngle(creature.aimHeading-creature.heading);// Allow sharper turns when crowding so they don't tunnel through\nconst crowded=Math.hypot(sep.steerX,sep.steerY)>.35;const maxTurn=degToRad(crowded?95:55)*dt*activity;if(Math.abs(turn)>maxTurn)turn=Math.sign(turn)*maxTurn;creature.heading=wrapAngle(creature.heading+turn);const stepPeriod=Math.max(.12,(.32+g.stride*.006)/activity);creature.stepClock-=dt;if(creature.stepClock<=0){creature.stepSide*=-1;const group=creature.stepSide<0?STEP_GROUP_A:STEP_GROUP_B;plantGroup(creature,group,lookSize);// Locked stride — body only commits this far, then holds until next plant\ncreature.aimX=creature.x+Math.cos(creature.heading)*g.stride*s*.72;creature.aimY=creature.y+Math.sin(creature.heading)*g.stride*s*.72;creature.height=Math.max(creature.height,2.6);creature.stepClock=stepPeriod;}const footLerp=Math.min(1,dt*(6.5*activity));for(const leg of creature.legs){leg.footX+=(leg.aimX-leg.footX)*footLerp;leg.footY+=(leg.aimY-leg.footY)*footLerp;}// First half of the step: body eases onto the planted tripod.\n// Second half: planted — feet settle, body does not slide.\nconst inCommit=creature.stepClock/stepPeriod>.48;if(inCommit){const bodyLerp=Math.min(1,dt*(9*activity));creature.x+=(creature.aimX-creature.x)*bodyLerp;creature.y+=(creature.aimY-creature.y)*bodyLerp;}// Soft body push so centers don't occupy the same spot\ncreature.x+=sep.pushX*42*dt;creature.y+=sep.pushY*42*dt;refreshHips(creature,lookSize);clampLegReach(creature,lookSize);// occasional liftoff while roaming\nif((g.kind===\"dragonfly\"||g.kind===\"butterfly\")&&Math.random()<dt*(g.kind===\"dragonfly\"?.2:.12)*activity){maybeStartFlight(creature);}else if(g.kind!==\"ant\"&&Math.random()<dt*.025*activity){maybeStartFlight(creature);}if(creature.x<-margin||creature.x>margin){creature.destX=Math.max(-margin*.8,Math.min(margin*.8,-creature.x*.3));creature.x=Math.max(-margin,Math.min(margin,creature.x));}if(creature.y<-margin||creature.y>margin){creature.destY=Math.max(-margin*.8,Math.min(margin*.8,-creature.y*.3));creature.y=Math.max(-margin,Math.min(margin,creature.y));}}function hitTestCreature(creatures,mx,my,originX,originY,look){let best=null;let bestDist=Infinity;for(const creature of creatures){const motif=creature.genome?.motif||creature.motif||\"insect\";const screen=motif===\"fish\"||isFishKind(creature.genome?.kind)?fishWorldToScreen(creature.x,creature.y,originX,originY,look):groundToScreen(creature.x,creature.y,originX,originY,look.perspective,look.depth);if(motif!==\"fish\"){screen.y-=creature.height+(creature._stanceLift||0);}const dx=mx-screen.x;const dy=my-screen.y;const dist=Math.sqrt(dx*dx+dy*dy);const radius=(motif===\"fish\"?36:30)*sizeMul(creature,look.size);if(dist<radius&&dist<bestDist){best=creature;bestDist=dist;}}return best;}/** Named exports for blog / offline still capture (real draw path). */export{createCreature,drawCreature,buildLegs,refreshHips,pickCritterGenome,groundToScreen,SHAPE_POOL,STAG_HORN_SETS,HERCULES_HORN_SETS,FOUR_WING_SETS,};export default function ParticleLifeMatrixSystemVer2({visualMode=\"creatures\",creatureMotif=\"insect\",calendarCreatureCount=true,creatureCount=5,creatureColor=\"#C8C8C8\",creatureBodyColor=\"#A8A8A8\",creatureStrokeColor=\"#E4E4E4\",creatureLegColor=\"#C8C8C8\",creatureSize=1.75,creatureSpeed=1,creaturePerspective=1.25,calendarCreatureDepth=true,creatureDepth=.48,gridLayoutMode=\"single\",pointColor=\"#FFFFFF\",lineColor=\"#FFFFFF\",particleDensity=300,perceptionRadius=50,speed=1,lifeForce=1.5,mouseInfluence=2.5,sceneBg=SCENE_BG,transparentBg=false,gridBorderColor=\"rgba(255, 255, 255, 0.25)\",gridBorderWidth=1,globalMouseCapture=true,memoryKey=\"main\",layoutSwitchDelay=.3,style}){const containerRef=React.useRef(null);const canvasRef=React.useRef(null);const mouseRef=React.useRef({x:-1e3,y:-1e3,tx:-1e3,ty:-1e3});const persistentState=React.useMemo(()=>getPersistentState(memoryKey,gridLayoutMode),[gridLayoutMode,memoryKey]);const agents=persistentState.agents;const creatures=persistentState.creatures;const[splitLevel,setSplitLevel]=React.useState(persistentState.splitLevel);const[displayGridLayoutMode,setDisplayGridLayoutMode]=React.useState(persistentState.gridLayoutMode);const stateRef=React.useRef({gridLayoutMode:displayGridLayoutMode,splitLevel,visualMode,creatureMotif,calendarCreatureCount,creatureCount,speed,mouseInfluence,creatureColor,creatureBodyColor,creatureStrokeColor,creatureLegColor,creatureSize,creatureSpeed,creaturePerspective,calendarCreatureDepth,creatureDepth,sceneBg});const lastPersistentStateRef=React.useRef(persistentState);const layoutFlashStartedAtRef=React.useRef(-Infinity);const lastFrameTimeRef=React.useRef(0);React.useEffect(()=>{stateRef.current={gridLayoutMode:displayGridLayoutMode,splitLevel,visualMode,creatureMotif,calendarCreatureCount,creatureCount,speed,mouseInfluence,creatureColor,creatureBodyColor,creatureStrokeColor,creatureLegColor,creatureSize,creatureSpeed,creaturePerspective,calendarCreatureDepth,creatureDepth,sceneBg};},[calendarCreatureCount,creatureBodyColor,creatureColor,creatureCount,creatureDepth,calendarCreatureDepth,creatureLegColor,creatureMotif,creaturePerspective,creatureSize,creatureSpeed,creatureStrokeColor,displayGridLayoutMode,mouseInfluence,sceneBg,speed,splitLevel,visualMode]);// Sync color/size every render so the rAF loop never lags a frame behind props\nstateRef.current.creatureColor=creatureColor;stateRef.current.creatureBodyColor=creatureBodyColor;stateRef.current.creatureStrokeColor=creatureStrokeColor;stateRef.current.creatureLegColor=creatureLegColor;stateRef.current.creatureSize=creatureSize;stateRef.current.creatureSpeed=creatureSpeed;stateRef.current.creaturePerspective=creaturePerspective;stateRef.current.calendarCreatureDepth=calendarCreatureDepth;stateRef.current.creatureDepth=creatureDepth;stateRef.current.speed=speed;stateRef.current.visualMode=visualMode;stateRef.current.calendarCreatureCount=calendarCreatureCount;stateRef.current.creatureCount=creatureCount;stateRef.current.creatureMotif=creatureMotif;stateRef.current.sceneBg=sceneBg;React.useEffect(()=>{if(lastPersistentStateRef.current!==persistentState){lastPersistentStateRef.current=persistentState;setSplitLevel(persistentState.splitLevel);setDisplayGridLayoutMode(persistentState.gridLayoutMode);return;}persistentState.splitLevel=splitLevel;persistentState.gridLayoutMode=displayGridLayoutMode;},[displayGridLayoutMode,persistentState,splitLevel]);React.useEffect(()=>{const delayMs=Math.max(0,layoutSwitchDelay)*1e3;const timeoutId=window.setTimeout(()=>{if(stateRef.current.gridLayoutMode!==gridLayoutMode){layoutFlashStartedAtRef.current=performance.now();}setDisplayGridLayoutMode(gridLayoutMode);},delayMs);return()=>{window.clearTimeout(timeoutId);};},[gridLayoutMode,layoutSwitchDelay]);React.useEffect(()=>{if(!globalMouseCapture)return;const handleGlobalMouseMove=e=>{const container=containerRef.current;if(!container)return;const rect=container.getBoundingClientRect();mouseRef.current.tx=e.clientX-rect.left;mouseRef.current.ty=e.clientY-rect.top;};const handleGlobalMouseLeave=()=>{mouseRef.current.tx=-1e3;mouseRef.current.ty=-1e3;};window.addEventListener(\"mousemove\",handleGlobalMouseMove);window.addEventListener(\"mouseleave\",handleGlobalMouseLeave);return()=>{window.removeEventListener(\"mousemove\",handleGlobalMouseMove);window.removeEventListener(\"mouseleave\",handleGlobalMouseLeave);};},[globalMouseCapture]);React.useEffect(()=>{const canvas=canvasRef.current;const container=containerRef.current;if(!canvas||!container)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;let animationFrameId=0;let frameCount=0;const safeDensity=Math.max(0,Math.min(MAX_PARTICLES,particleDensity));const normalizedPointColor=normalizeCanvasColor(ctx,pointColor);const normalizedLineColor=normalizeCanvasColor(ctx,lineColor);const resize=()=>{const dpr=window.devicePixelRatio||1;const w=container.clientWidth;const h=container.clientHeight;const nextWidth=Math.max(1,Math.floor(w*dpr));const nextHeight=Math.max(1,Math.floor(h*dpr));if(canvas.width!==nextWidth||canvas.height!==nextHeight){canvas.width=nextWidth;canvas.height=nextHeight;}canvas.style.width=`${w}px`;canvas.style.height=`${h}px`;ctx.setTransform(dpr,0,0,dpr,0,0);};const ro=new ResizeObserver(resize);ro.observe(container);resize();const handleMouseMove=e=>{if(globalMouseCapture)return;const rect=container.getBoundingClientRect();mouseRef.current.tx=e.clientX-rect.left;mouseRef.current.ty=e.clientY-rect.top;};const handleMouseLeave=()=>{if(globalMouseCapture)return;mouseRef.current.tx=-1e3;mouseRef.current.ty=-1e3;};const handleMouseDown=e=>{const rect=container.getBoundingClientRect();const mx=e.clientX-rect.left;const my=e.clientY-rect.top;const mode=stateRef.current.visualMode;if(mode===\"creatures\"||String(mode).includes(\"creature\")){const originX=container.clientWidth/2;const originY=container.clientHeight*.58;const st=stateRef.current;const look={size:st.creatureSize??1.75,perspective:st.creaturePerspective??1.25,depth:resolveCreatureDepth(st.calendarCreatureDepth,st.creatureDepth),masterColor:coerceFramerColor(st.creatureColor,\"#C8C8C8\"),bodyColor:coerceFramerColor(st.creatureColor,\"#C8C8C8\"),strokeColor:coerceFramerColor(st.creatureColor,\"#C8C8C8\"),legColor:coerceFramerColor(st.creatureColor,\"#C8C8C8\"),sceneBg:coerceFramerColor(st.sceneBg,SCENE_BG)};const hit=hitTestCreature(creatures,mx,my,originX,originY,look);if(hit){reassembleCreature(hit,look.size);return;}}if(!(mode===\"creatures\"||String(mode).includes(\"creature\"))&&stateRef.current.gridLayoutMode===\"single\"){setSplitLevel(prev=>prev>=4?1:prev+1);}};window.addEventListener(\"mousemove\",handleMouseMove);container.addEventListener(\"mouseleave\",handleMouseLeave);canvas.addEventListener(\"mousedown\",handleMouseDown);const render=()=>{const w=container.clientWidth;const h=container.clientHeight;if(w===0||h===0){animationFrameId=requestAnimationFrame(render);return;}const now=performance.now();const dt=Math.min(.05,(now-lastFrameTimeRef.current)/1e3);lastFrameTimeRef.current=now;frameCount++;ctx.globalAlpha=1;ctx.globalCompositeOperation=\"source-over\";const{gridLayoutMode:currentMode,splitLevel:currentSplit,visualMode:currentVisualModeRaw,creatureMotif:currentMotif,calendarCreatureCount:useCalendarCount,creatureCount:currentCreatureCount,speed:currentSpeed,creatureColor:currentCreatureColor,creatureBodyColor:currentBodyColor,creatureStrokeColor:currentStrokeColor,creatureLegColor:currentLegColor,creatureSize:currentCreatureSize,creatureSpeed:currentCreatureSpeed,creaturePerspective:currentPerspective,calendarCreatureDepth:useCalendarDepth,creatureDepth:currentDepth}=stateRef.current;const currentVisualMode=String(currentVisualModeRaw||\"creatures\").toLowerCase().includes(\"creature\")?\"creatures\":\"particles\";const resolvedCreatureCount=resolveCreatureCount(currentMotif,useCalendarCount,currentCreatureCount);const flashElapsed=performance.now()-layoutFlashStartedAtRef.current;const layoutFlash=flashElapsed>=0&&flashElapsed<LAYOUT_FLASH_DURATION?1-flashElapsed/LAYOUT_FLASH_DURATION:0;if(transparentBg){ctx.clearRect(0,0,w,h);}else{ctx.fillStyle=coerceFramerColor(stateRef.current.sceneBg,SCENE_BG);ctx.fillRect(0,0,w,h);}if(mouseRef.current.tx!==-1e3){mouseRef.current.x+=(mouseRef.current.tx-mouseRef.current.x)*.1;mouseRef.current.y+=(mouseRef.current.ty-mouseRef.current.y)*.1;}if(currentVisualMode===\"creatures\"){try{const originX=w/2;const originY=h*.58;const groundSpan=Math.max(w,h)*.55;const idRef={value:persistentState.nextCreatureId||1};const motif=currentMotif===\"fish\"||currentMotif===\"flora\"?currentMotif:\"insect\";const masterRaw=coerceFramerColor(currentCreatureColor,\"#C8C8C8\");const master=normalizeCanvasColor(ctx,masterRaw);// Creature Color always drives fill / stroke / legs.\n// Separate override controls are applied only as a soft mix\n// when they differ from defaults — never fully replace master.\nconst bodyOverride=coerceFramerColor(currentBodyColor,DEFAULT_BODY_FILL);const strokeOverride=coerceFramerColor(currentStrokeColor,DEFAULT_BODY_STROKE);const legOverride=coerceFramerColor(currentLegColor,DEFAULT_LEG);const mixOverride=(base,override,defaultValue,amount)=>{if(colorsEqual(ctx,override,defaultValue))return base;const b=parseColorChannels(base);const o=parseColorChannels(normalizeCanvasColor(ctx,override));if(!b||!o)return base;const t=amount;return`rgb(${[0,1,2].map(i=>Math.round(b[i]*(1-t)+o[i]*t)).join(\",\")})`;};const look={size:Number.isFinite(currentCreatureSize)?currentCreatureSize:1.75,perspective:Number.isFinite(currentPerspective)?currentPerspective:1.25,depth:resolveCreatureDepth(useCalendarDepth,currentDepth),masterColor:master,bodyColor:mixOverride(shadeHexOrRgb(master,.7),bodyOverride,DEFAULT_BODY_FILL,.45),strokeColor:mixOverride(master,strokeOverride,DEFAULT_BODY_STROKE,.35),legColor:mixOverride(shadeHexOrRgb(master,.92),legOverride,DEFAULT_LEG,.35),sceneBg:coerceFramerColor(stateRef.current.sceneBg,SCENE_BG)};ensureCreatureCount(creatures,resolvedCreatureCount,motif,idRef,groundSpan,look.size);persistentState.nextCreatureId=idRef.value;// Shared particle-life field on the same ground plane\nconst groundPoint=colorsEqual(ctx,normalizedPointColor,normalizeCanvasColor(ctx,\"#FFFFFF\"))?master:normalizedPointColor;const groundLine=colorsEqual(ctx,normalizedLineColor,normalizeCanvasColor(ctx,\"#FFFFFF\"))?master:normalizedLineColor;updateAndDrawGroundParticles(ctx,agents,safeDensity,{originX,originY,groundSpan,perspective:look.perspective,depth:look.depth,pointColor:groundPoint,lineColor:groundLine,perceptionRadius,speed:Number.isFinite(currentSpeed)?currentSpeed:1,lifeForce,mouseInfluence,mouseX:mouseRef.current.x,mouseY:mouseRef.current.y,hasMouse:mouseRef.current.tx!==-1e3,layoutFlash,frameCount});const safeSpeed=Number.isFinite(currentSpeed)?currentSpeed:1;const safeCreatureSpeed=Number.isFinite(currentCreatureSpeed)?currentCreatureSpeed:1;for(const creature of creatures){if(creature._lookSize!==look.size){creature._lookSize=look.size;const m=creature.genome?.motif||creature.motif;if(m===\"insect\"){buildLegs(creature,look.size);}}updateCreature(creature,dt,safeCreatureSpeed,groundSpan,look.size,creatures);}resolveHornClashes(creatures,look.size,groundSpan*.72);resolveInsectOverlaps(creatures,look.size,groundSpan*.72);const sorted=[...creatures].sort((a,b)=>{const am=a.genome?.motif||a.motif;if(am===\"fish\")return a.y-b.y;return a.x+a.y-(b.x+b.y);});for(const creature of sorted){drawCreature(ctx,creature,originX,originY,look);}}catch(err){// Keep the loop alive even if a frame fails\nconsole.error(\"Creature render error\",err);}animationFrameId=requestAnimationFrame(render);return;}let loopGridX=1;let loopGridY=1;if(currentMode===\"single\"){loopGridX=currentSplit;loopGridY=currentSplit;}else if(currentMode===\"matrix\"){loopGridX=3;loopGridY=3;}else if(currentMode===\"asymmetric\"){loopGridX=2;loopGridY=2;}else if(currentMode===\"masonry\"){loopGridX=3;loopGridY=2;}else if(currentMode===\"horizontal\"){loopGridX=1;loopGridY=5;}const cellW=w/loopGridX;const cellH=h/loopGridY;const agentsPerCell=Math.floor(safeDensity/(loopGridX*loopGridY));const pRadiusSq=perceptionRadius*perceptionRadius;for(let gy=0;gy<loopGridY;gy++){for(let gx=0;gx<loopGridX;gx++){let cx=gx*cellW+cellW/2;let cy=gy*cellH+cellH/2;let curCellW=cellW;let curCellH=cellH;let leftBound=gx*cellW;let topBound=gy*cellH;if(currentMode===\"asymmetric\"){const splitX=w*.4;const splitY=h*.5;leftBound=gx===0?0:splitX;curCellW=gx===0?splitX:w-splitX;topBound=gy===0?0:splitY;curCellH=gy===0?splitY:h-splitY;cx=leftBound+curCellW/2;cy=topBound+curCellH/2;}else if(currentMode===\"masonry\"){const col1=w*.33;const col2=w*.66;leftBound=gx===0?0:gx===1?col1:col2;curCellW=gx===0?col1:gx===1?col2-col1:w-col2;if(gx===0){topBound=gy===0?0:h*.4;curCellH=gy===0?h*.4:h*.6;}else if(gx===1){topBound=gy===0?0:h*.6;curCellH=gy===0?h*.6:h*.4;}else{topBound=gy===0?0:h*.3;curCellH=gy===0?h*.3:h*.7;}cx=leftBound+curCellW/2;cy=topBound+curCellH/2;}else if(currentMode===\"single\"&&currentSplit===1||currentMode===\"focus\"||currentMode===\"radar\"||currentMode===\"chaos\"){cx=w/2;cy=h/2;leftBound=0;topBound=0;curCellW=w;curCellH=h;}const boundaryX=curCellW/2;const boundaryY=curCellH/2;const startIdx=(gy*loopGridX+gx)*agentsPerCell;const endIdx=startIdx+agentsPerCell;const shouldUpdatePhysics=(frameCount+gy+gx)%2===0;for(let i=startIdx;i<endIdx;i++){const a=agents[i];if(!a)continue;if(shouldUpdatePhysics){let closeDx=0;let closeDy=0;let closeDz=0;let avgVx=0;let avgVy=0;let avgVz=0;let avgX=0;let avgY=0;let avgZ=0;let neighbors=0;for(let j=startIdx;j<endIdx;j++){if(i===j)continue;const b=agents[j];const dx=a.x-b.x;const dy=a.y-b.y;const dz=a.z-b.z;const distSq=dx*dx+dy*dy+dz*dz;if(distSq<pRadiusSq){if(distSq<225){closeDx+=dx;closeDy+=dy;closeDz+=dz;}avgVx+=b.vx;avgVy+=b.vy;avgVz+=b.vz;avgX+=b.x;avgY+=b.y;avgZ+=b.z;neighbors++;}}if(neighbors>0){avgVx/=neighbors;avgVy/=neighbors;avgVz/=neighbors;avgX/=neighbors;avgY/=neighbors;avgZ/=neighbors;a.ax+=(avgX-a.x)*(lifeForce*.001);a.ax+=(avgVx-a.vx)*(lifeForce*.01);a.ax+=closeDx*.03;a.ay+=(avgY-a.y)*(lifeForce*.001);a.ay+=(avgVy-a.vy)*(lifeForce*.01);a.ay+=closeDy*.03;a.az+=(avgZ-a.z)*(lifeForce*.001);a.az+=(avgVz-a.vz)*(lifeForce*.01);a.az+=closeDz*.03;}if(mouseRef.current.tx!==-1e3){const mouseInCellX=mouseRef.current.x-leftBound;const mouseInCellY=mouseRef.current.y-topBound;if(mouseInCellX>=0&&mouseInCellX<=curCellW&&mouseInCellY>=0&&mouseInCellY<=curCellH){const mdx=mouseRef.current.x-(cx+a.x);const mdy=mouseRef.current.y-(cy+a.y);const mdistSq=mdx*mdx+mdy*mdy;const mouseRadius=curCellW*.4;if(mdistSq<mouseRadius*mouseRadius){const mdist=Math.sqrt(mdistSq)||1;a.ax+=mdx/mdist*mouseInfluence*.15;a.ay+=mdy/mdist*mouseInfluence*.15;}}}a.vx+=a.ax;a.vy+=a.ay;a.vz+=a.az;const maxVel=1.5*speed;const velSq=a.vx*a.vx+a.vy*a.vy+a.vz*a.vz;if(velSq>maxVel*maxVel){const vel=Math.sqrt(velSq);a.vx=a.vx/vel*maxVel;a.vy=a.vy/vel*maxVel;a.vz=a.vz/vel*maxVel;}a.ax=0;a.ay=0;a.az=0;}a.x+=a.vx;a.y+=a.vy;a.z+=a.vz;const pad=8;if(a.x<-boundaryX+pad){a.x=-boundaryX+pad;a.vx*=-1;}if(a.x>boundaryX-pad){a.x=boundaryX-pad;a.vx*=-1;}if(a.y<-boundaryY+pad){a.y=-boundaryY+pad;a.vy*=-1;}if(a.y>boundaryY-pad){a.y=boundaryY-pad;a.vy*=-1;}if(Math.abs(a.z)>120)a.vz*=-1;}const fov=180;const currentGridDivisor=currentMode===\"single\"?currentSplit:(loopGridX+loopGridY)*.5;const activeRadius=perceptionRadius/(currentGridDivisor*.6);const activeRadiusSq=activeRadius*activeRadius;ctx.strokeStyle=normalizedLineColor;ctx.lineWidth=.5;ctx.lineJoin=\"round\";ctx.lineCap=\"round\";for(let i=startIdx;i<endIdx;i++){const a=agents[i];if(!a)continue;const scale=fov/(fov+a.z);let px=cx+a.x*scale;let py=cy+a.y*scale;px=Math.max(leftBound+2,Math.min(leftBound+curCellW-2,px));py=Math.max(topBound+2,Math.min(topBound+curCellH-2,py));for(let j=i+1;j<endIdx;j++){const b=agents[j];const dx=a.x-b.x;const dy=a.y-b.y;const dz=a.z-b.z;const dSq=dx*dx+dy*dy+dz*dz;if(dSq<activeRadiusSq){const proximity=1-dSq/activeRadiusSq;ctx.globalAlpha=Math.min(.28,proximity*(.1+layoutFlash*.15));ctx.beginPath();ctx.moveTo(px,py);let bx=cx+b.x*(fov/(fov+b.z));let by=cy+b.y*(fov/(fov+b.z));bx=Math.max(leftBound+2,Math.min(leftBound+curCellW-2,bx));by=Math.max(topBound+2,Math.min(topBound+curCellH-2,by));ctx.lineTo(bx,by);ctx.stroke();}}ctx.fillStyle=normalizedPointColor;ctx.globalAlpha=Math.min(.55,.28+layoutFlash*.2);ctx.beginPath();ctx.arc(px,py,Math.max(.3,.85*scale),0,Math.PI*2);ctx.fill();}ctx.globalAlpha=1;if(gx===0&&gy===0){drawGridOverlay(ctx,currentMode,currentSplit,w,h,gridBorderColor,gridBorderWidth,layoutFlash);}if(currentMode!==\"chaos\"&&mouseRef.current.tx!==-1e3){const mx=mouseRef.current.x;const my=mouseRef.current.y;if(mx>=leftBound&&mx<=leftBound+curCellW&&my>=topBound&&my<=topBound+curCellH){ctx.save();ctx.fillStyle=\"rgba(255, 255, 255, 0.02)\";ctx.fillRect(leftBound,topBound,curCellW,curCellH);ctx.strokeStyle=\"rgba(255, 255, 255, 0.35)\";ctx.strokeRect(leftBound,topBound,curCellW,curCellH);ctx.restore();}}}}animationFrameId=requestAnimationFrame(render);};render();return()=>{ro.disconnect();window.removeEventListener(\"mousemove\",handleMouseMove);container.removeEventListener(\"mouseleave\",handleMouseLeave);canvas.removeEventListener(\"mousedown\",handleMouseDown);cancelAnimationFrame(animationFrameId);};},[agents,creatureColor,creatures,globalMouseCapture,gridBorderColor,gridBorderWidth,lifeForce,lineColor,mouseInfluence,particleDensity,perceptionRadius,persistentState,pointColor,speed,transparentBg]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",backgroundColor:transparentBg?\"transparent\":coerceFramerColor(sceneBg,SCENE_BG),overflow:\"hidden\",cursor:\"crosshair\",...style},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{display:\"block\"}})});}ParticleLifeMatrixSystemVer2.defaultProps={visualMode:\"creatures\",creatureMotif:\"insect\",calendarCreatureCount:true,creatureCount:5,creatureColor:\"#C8C8C8\",creatureBodyColor:\"#A8A8A8\",creatureStrokeColor:\"#E4E4E4\",creatureLegColor:\"#C8C8C8\",creatureSize:1.75,creatureSpeed:1,creaturePerspective:1.25,calendarCreatureDepth:true,creatureDepth:.48,gridLayoutMode:\"single\",pointColor:\"#FFFFFF\",lineColor:\"#FFFFFF\",particleDensity:300,perceptionRadius:50,speed:1,lifeForce:1.5,mouseInfluence:2.5,sceneBg:SCENE_BG,transparentBg:false,gridBorderColor:\"rgba(255, 255, 255, 0.25)\",gridBorderWidth:1,globalMouseCapture:true,memoryKey:\"main\",layoutSwitchDelay:.3};addPropertyControls(ParticleLifeMatrixSystemVer2,{visualMode:{type:ControlType.Enum,title:\"Visual Mode\",defaultValue:\"creatures\",options:[\"particles\",\"creatures\"],optionTitles:[\"Particles\",\"Creatures\"]},creatureMotif:{type:ControlType.Enum,title:\"Motif\",defaultValue:\"insect\",options:[\"insect\",\"fish\",\"flora\"],optionTitles:[\"Insect\",\"Fish\",\"Flora\"],hidden:props=>props.visualMode!==\"creatures\"},calendarCreatureCount:{type:ControlType.Boolean,title:\"Calendar Count\",defaultValue:true,enabledTitle:\"Insect by Day\",disabledTitle:\"Use Creatures #\",hidden:props=>props.visualMode!==\"creatures\"||props.creatureMotif!==\"insect\"},creatureCount:{type:ControlType.Number,title:\"Creatures\",min:MIN_CREATURES,max:MAX_CREATURES,step:1,defaultValue:5,hidden:props=>props.visualMode!==\"creatures\"},creatureColor:{type:ControlType.Color,title:\"Creature Color\",defaultValue:\"#C8C8C8\",hidden:props=>props.visualMode!==\"creatures\"},creatureBodyColor:{type:ControlType.Color,title:\"Body Fill Override\",defaultValue:\"#A8A8A8\",hidden:props=>props.visualMode!==\"creatures\"},creatureStrokeColor:{type:ControlType.Color,title:\"Stroke Override\",defaultValue:\"#E4E4E4\",hidden:props=>props.visualMode!==\"creatures\"},creatureLegColor:{type:ControlType.Color,title:\"Leg Override\",defaultValue:\"#C8C8C8\",hidden:props=>props.visualMode!==\"creatures\"},creatureSize:{type:ControlType.Number,title:\"Creature Size\",min:.8,max:3,step:.05,defaultValue:1.75,hidden:props=>props.visualMode!==\"creatures\"},creatureSpeed:{type:ControlType.Number,title:\"Motion Speed\",min:.15,max:3,step:.05,defaultValue:1,hidden:props=>props.visualMode!==\"creatures\"},creaturePerspective:{type:ControlType.Number,title:\"Perspective Zoom\",min:.6,max:2.2,step:.05,defaultValue:1.25,hidden:props=>props.visualMode!==\"creatures\"},calendarCreatureDepth:{type:ControlType.Boolean,title:\"Daily Depth\",defaultValue:true,enabledTitle:\"By Day\",disabledTitle:\"Use Slider\",hidden:props=>props.visualMode!==\"creatures\"},creatureDepth:{type:ControlType.Number,title:\"Perspective Depth\",min:.15,max:1,step:.05,defaultValue:.48,hidden:props=>props.visualMode!==\"creatures\"||props.calendarCreatureDepth===true||props.calendarCreatureDepth===\"true\"},gridLayoutMode:{type:ControlType.Enum,title:\"Grid Mode\",defaultValue:\"single\",options:[\"single\",\"asymmetric\",\"matrix\",\"masonry\",\"horizontal\",\"focus\",\"radar\",\"chaos\"],optionTitles:[\"1. Single / Split 16\",\"2. Asymmetric Dual (ABOUT)\",\"3. Matrix Portfolio (WORKS)\",\"4. Masonry Puzzle (CMS)\",\"5. Horizontal Datasheet (BLOG)\",\"6. Focus Highlight / Center\",\"7. Radar / Circular Coordinates\",\"8. Pure Chaos (None)\"],hidden:props=>props.visualMode===\"creatures\"},pointColor:{type:ControlType.Color,title:\"Point Color\"},lineColor:{type:ControlType.Color,title:\"Net Line Color\"},sceneBg:{type:ControlType.Color,title:\"Background\",defaultValue:SCENE_BG,hidden:props=>props.transparentBg},transparentBg:{type:ControlType.Boolean,title:\"Transparent BG\"},gridBorderColor:{type:ControlType.Color,title:\"Grid Line Color\"},gridBorderWidth:{type:ControlType.Number,title:\"Grid Line Width\",min:.5,max:5,step:.5},particleDensity:{type:ControlType.Number,title:\"Density (Total)\",min:100,max:MAX_PARTICLES,step:20},perceptionRadius:{type:ControlType.Number,title:\"Life Radius\",min:20,max:120,step:5},speed:{type:ControlType.Number,title:\"Activity\",min:.1,max:4,step:.1,hidden:props=>props.visualMode===\"creatures\"},lifeForce:{type:ControlType.Number,title:\"Life Force\",min:0,max:5,step:.1},mouseInfluence:{type:ControlType.Number,title:\"Mouse React\",min:0,max:10,step:.5},globalMouseCapture:{type:ControlType.Boolean,title:\"Global Mouse Capture\"},memoryKey:{type:ControlType.String,title:\"Memory Key\",defaultValue:\"main\"},layoutSwitchDelay:{type:ControlType.Number,title:\"Switch Delay\",min:0,max:2,step:.1,defaultValue:.3}});\nexport const __FramerMetadata__ = {\"exports\":{\"HERCULES_HORN_SETS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SHAPE_POOL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"refreshHips\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"drawCreature\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"STAG_HORN_SETS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"groundToScreen\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"ParticleLifeMatrixSystemVer2\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"pickCritterGenome\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FOUR_WING_SETS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createCreature\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildLegs\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Test.map"],"mappings":"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GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACzG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EACnH,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7F,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAChE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EACxG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAC7F,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAChE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAClE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EACxF,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAk9Q,GAAgB,GAAW,IAAI,CAAqB,EAAQ,GAAe,CAC9mR,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,GAAK,GAAM,GAAK,GAAK,EAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAChkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,GAAK,GAAK,GAAM,GAAM,EAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EACvhB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,E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,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EACrqD,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CA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"}