1function P(e,a){const n=Math.sin(e*12.9898+a*78.233)*43758.5453;return n-Math.floor(n)}function T(e,a,n){if(a.length<2)return;const t=a.length,o=n.jitter??.35,r=n.alpha??1;if(e.save(),e.strokeStyle=n.color,e.lineCap="round",e.lineJoin="round",e.globalAlpha=r,n.sketch){e.globalAlpha=r*.28,e.lineWidth=Math.max(.7,n.wBase*.55);const s=(P(n.seed,3)-.5)*o*2,l=(P(n.seed,7)-.5)*o*2;e.beginPath(),e.moveTo(a[0][0]+s,a[0][1]+l);for(let i=1;i<t;i++)e.lineTo(a[i][0]+s,a[i][1]+l);e.stroke(),e.globalAlpha=r}for(let s=0;s<t-1;s++){const l=s/(t-1),i=(s+1)/(t-1),u=n.wBase+(n.wTip-n.wBase)*l,h=n.wBase+(n.wTip-n.wBase)*i;e.lineWidth=(u+h)*.5;const d=(P(n.seed,s*2)-.5)*o,f=(P(n.seed,s*2+1)-.5)*o,c=(P(n.seed,(s+1)*2)-.5)*o,p=(P(n.seed,(s+1)*2+1)-.5)*o;e.beginPath(),e.moveTo(a[s][0]+d,a[s][1]+f),e.lineTo(a[s+1][0]+c,a[s+1][1]+p),e.stroke()}e.restore()}function W(e,a,n,t){const o=[];for(let r=0;r<=t;r++){const s=r/t,l=1-s,i=l*l*e[0]+2*l*s*a[0]+s*s*n[0],u=l*l*e[1]+2*l*s*a[1]+s*s*n[1];o.push([i,u])}return o}function J(e,a,n){const t=[];for(let o=0;o<=n;o++){const r=o/n;t.push([e[0]+(a[0]-e[0])*r,e[1]+(a[1]-e[1])*r])}return t}function y(e,a=0){const n=Math.sin(e*12.9898+a*78.233)*43758.5453;return n-Math.floor(n)}function I(e,a,n){for(let t=0;t<n.count;t++){const o=t/Math.max(1,n.count-1),r=n.arcStart+(n.arcEnd-n.arcStart)*o,s=(y(a.seed,t)-.5)*.15,l=a.r*n.lenRel*(.7+y(a.seed,t+99)*.6),i=a.r*n.radiusRel,u=Math.cos(r)*i,h=Math.sin(r)*i,d=Math.cos(r+s)*(i+l),f=Math.sin(r+s)*(i+l),c=(u+d)*.5+Math.cos(r+Math.PI/2)*l*.08*(t%2===0?1:-1),p=(h+f)*.5+Math.sin(r+Math.PI/2)*l*.08*(t%2===0?1:-1),g=W([u,h],[c,p],[d,f],5);T(e,g,{wBase:Math.max(1,a.r*.07),wTip:.4,color:a.ink,seed:a.seed+t,jitter:.25})}}function N(e,a,n){const t=a.r*n.lenRel;for(const o of[-1,1]){const r=-Math.PI/2+o*n.spreadRad,s=Math.cos(r)*a.r*.5,l=Math.sin(r)*a.r*.5+n.baseY,i=s+Math.cos(r)*t,u=l+Math.sin(r)*t,h=s+Math.cos(r+o*n.curve)*t*.6,d=l+Math.sin(r+o*n.curve)*t*.6;if(n.filled){const f=a.r*.15,c=s-Math.sin(r)*f,p=l+Math.cos(r)*f,g=s+Math.sin(r)*f,v=l-Math.cos(r)*f;e.save(),e.fillStyle=a.paper,e.strokeStyle=a.ink,e.lineWidth=1.4,e.lineJoin="round",e.beginPath(),e.moveTo(c,p),e.quadraticCurveTo(h,d,i,u),e.quadraticCurveTo(h,d,g,v),e.closePath(),e.fill(),e.stroke(),e.restore()}else{const f=W([s,l],[h,d],[i,u],8);T(e,f,{wBase:Math.max(2.2,a.r*.18),wTip:.5,color:a.ink,seed:a.seed+(o===1?11:17),sketch:!0,jitter:.3})}}}function $(e,a,n){e.save(),e.strokeStyle=a.ink,e.fillStyle=a.ink,e.lineWidth=1.8;const t=Math.sin(a.ageMs/1e3*n.flapHz*Math.PI*2+a.seed)*.35,o=a.r*n.spanRel,r=a.r*n.heightRel;for(const s of[-1,1]){e.save(),e.translate(s*a.r*.3,n.anchorY),e.rotate(s*t),e.beginPath(),e.moveTo(0,0),e.quadraticCurveTo(s*o*.6,-r*.8,s*o,-r*.2),e.quadraticCurveTo(s*o*.7,r*.1,0,0),e.closePath(),e.globalAlpha=.92,e.fill(),e.globalAlpha=1,e.stroke();for(let l=1;l<=n.feathers;l++){const i=l/(n.feathers+1),u=s*o*i,h=-r*.6*Math.sin(i*Math.PI);e.beginPath(),e.moveTo(u*.4,h*.4),e.lineTo(u,h),e.stroke()}e.restore()}e.restore()}function G(e,a,n){e.save(),e.strokeStyle=a.ink,e.lineWidth=.9,e.globalAlpha=.7;const[t,o,r,s]=n.box,l=r-t,i=s-o,u=l/n.cols,h=i/n.rows;for(let d=0;d<n.rows;d++){const f=d%2*u*.5;for(let c=0;c<n.cols;c++){const p=t+c*u+f,g=o+d*h;p<t||p>r||(e.beginPath(),e.arc(p,g,n.size,Math.PI,0),e.stroke())}}e.restore()}function D(e,a,n){const t=a.ageMs/1e3;for(let o=0;o<n.strands;o++){const r=o/Math.max(1,n.strands-1),s=n.rootAng+(r-.5)*n.spread,l=a.r*n.lenRel*(.8+y(a.seed,o)*.4),i=Math.cos(s)*a.r*.85,u=Math.sin(s)*a.r*.85,h=Math.sin(t*n.waveHz*2+o*.7+a.seed)*l*.15,d=i+Math.cos(s)*l*.5+h,f=u+Math.sin(s)*l*.5,c=i+Math.cos(s)*l+h*1.5,p=u+Math.sin(s)*l+l*.1,g=W([i,u],[d,f],[c,p],6);T(e,g,{wBase:Math.max(1.3,a.r*.06),wTip:.35,color:a.ink,seed:a.seed+o*3,jitter:.25})}}function z(e,a,n){const t=n.count??3,o=n.spread??.6,r=n.at[0],s=n.at[1],l=n.len*1.4,i=r+Math.cos(n.ang)*l,u=s+Math.sin(n.ang)*l,h=a.ageMs/1e3,d=Math.sin(h*1.5+a.seed)*.12,f=r+Math.cos(n.ang-d)*l*.55,c=s+Math.sin(n.ang-d)*l*.55,p=W([r,s],[f,c],[i,u],7);T(e,p,{wBase:Math.max(2,a.r*.14),wTip:Math.max(1,a.r*.06),color:a.ink,seed:a.seed+31,sketch:!0,jitter:.3}),e.save(),e.translate(i,u),e.fillStyle=a.paper,e.strokeStyle=a.ink;for(let g=0;g<t;g++){const v=t===1?.5:g/(t-1),M=n.ang+(v-.5)*o,C=Math.cos(M)*n.len,w=Math.sin(M)*n.len,b=n.len*.15,q=-Math.sin(M)*b,O=Math.cos(M)*b;e.lineWidth=1.3,e.beginPath(),e.moveTo(q,O),e.lineTo(C,w),e.lineTo(-q,-O),e.closePath(),e.fill(),e.stroke();const F=J([0,0],[C,w],4);T(e,F,{wBase:1.4,wTip:.3,color:a.ink,seed:a.seed+g*5+41,jitter:.15})}
1e.restore()}function H(e,a,n){e.save(),e.translate(n.cx,n.cy);const t=(n.open??0)*n.height*.6;e.fillStyle=a.paper,e.strokeStyle=a.ink,e.lineWidth=1.2;const o=n.width/n.count,r=-n.width/2;if(n.fangs)for(const s of[-1,1]){const l=s*n.width*.35;e.beginPath(),e.moveTo(l-n.width*.08,-t),e.lineTo(l+n.width*.08,-t),e.lineTo(l,n.height),e.closePath(),e.fill(),e.stroke()}else{e.beginPath(),e.moveTo(r,-t);for(let s=0;s<n.count;s++){const l=r+s*o;e.lineTo(l+o*.5,n.height),e.lineTo(l+o,-t)}e.closePath(),e.fill(),e.stroke()}e.restore()}function Q(e,a,n){e.save(),e.strokeStyle=a.ink,e.lineWidth=1.2,e.globalAlpha=.55;const[t,o,r,s]=n.box,l=r-t;for(let i=0;i<n.stripes;i++){const u=(i+.5)/n.stripes,h=t+l*u+(y(a.seed,i)-.5)*l*.15;e.beginPath(),e.moveTo(h,o),e.bezierCurveTo(h+(y(a.seed,i+7)-.5)*6,o+(s-o)*.35,h+(y(a.seed,i+13)-.5)*6,o+(s-o)*.7,h+(y(a.seed,i+23)-.5)*4,s),e.stroke()}e.restore()}function U(e,a,n){if(n.damage<=.05)return;e.save(),e.strokeStyle=a.ink,e.lineWidth=Math.max(.8,1.6*n.damage),e.globalAlpha=.85;const t=Math.floor(2+n.damage*5);for(let o=0;o<t;o++){const r=y(a.seed,o+31)*Math.PI*2,s=n.bodyR*(.1+y(a.seed,o+41)*.3),l=n.bodyR*(.7+y(a.seed,o+51)*.3)*n.damage,i=Math.cos(r)*s,u=Math.sin(r)*s;let h=i,d=u;e.beginPath(),e.moveTo(i,u);const f=3;for(let c=1;c<=f;c++){const p=s+(l-s)*c/f,g=r+(y(a.seed,o*13+c)-.5)*.9;h=Math.cos(g)*p,d=Math.sin(g)*p,e.lineTo(h,d)}e.stroke()}e.restore()}function Z(e,a,n){e.save();const t=a.ageMs/1e3,o=(Math.sin(t*n.flickerHz*Math.PI*2+a.seed)+1)*.5,r=n.rOuter*(1.05+o*.1),s=n.rOuter*.7,l=n.rOuter*.32;e.fillStyle=a.accent??a.ink,e.globalAlpha=.35,e.beginPath(),e.arc(0,-a.r*.05,r,0,Math.PI*2),e.fill(),e.globalAlpha=.85,e.fillStyle=a.ink,e.beginPath(),e.moveTo(0,-s),e.bezierCurveTo(s*.9,-s*.5,s*.7,s*.6,0,s),e.bezierCurveTo(-s*.7,s*.6,-s*.9,-s*.5,0,-s),e.fill(),e.globalAlpha=1,e.fillStyle=a.paper,e.beginPath(),e.arc(0,-a.r*.05,l,0,Math.PI*2),e.fill(),e.restore()}const L=[{name:"sumi",body:"var(--ink)",accent:"var(--paper)",outline:"var(--ink)"},{name:"aguada",body:"var(--ink-2)",accent:"var(--paper)",outline:"var(--ink)"},{name:"kasumi",body:"var(--ink-3)",accent:"var(--paper)",outline:"var(--ink)"},{name:"kami",body:"var(--paper-2)",accent:"var(--ink)",outline:"var(--ink)"},{name:"shimi",body:"var(--ink)",accent:"var(--paper-2)",outline:"var(--ink)"},{name:"sumi-2",body:"var(--ink-2)",accent:"var(--ink-3)",outline:"var(--ink)"},{name:"boro",body:"var(--ink-3)",accent:"var(--ink-2)",outline:"var(--ink)"}],j={neutral:["sumi","aguada","sumi-2"],fire:["sumi","shimi","sumi-2"],water:["aguada","kasumi","boro"],ice:["kasumi","kami","boro"],lightning:["sumi","aguada","shimi"],ink:["sumi","sumi-2","shimi"]};function x(e,a=0){const n=Math.sin(e*12.9898+a*78.233)*43758.5453;return n-Math.floor(n)}function me(e,a="neutral"){const n=j[a]??j.neutral,t=n[Math.floor(x(e,7)*n.length)]??"sumi";return L.find(o=>o.name===t)??L[0]}function k(e){return L.find(a=>a.name===e)??L[0]}function fe(e,a){return a==="elite"?{name:e.name+"-elite",body:e.accent,accent:e.body,outline:e.accent}:a==="boss"?{name:e.name+"-boss",body:"var(--paper)",accent:e.body,outline:e.body}:e}function ce(e,a){const n=t=>{if(!t.startsWith("var("))return t;const o=t.slice(4,-1).trim(),[r,s]=o.split(",").map(i=>i.trim()),l=a(r);return l||(s?n(s):"#000")};return{body:n(e.body),accent:n(e.accent),outline:n(e.outline)}}function ee(e){const a=new Set,n=[];for(const t of e.signatureKnobs??[])a.has(t.category)||(a.add(t.category),n.push(t.category));return n}function E(e){return{x:`__ox__${e}`,y:`__oy__${e}`}}function pe(e,a){const n={};for(const t of e.signatureKnobs??[])n[t.key]=t.default;for(const t of ee(e)){const o=E(t);n[o.x]=0,n[o.y]=0}return n}function ge(e,a){const n={};for(const t of e.signatureVariants??[])n[t.key]=t.default;return n}function m(e,a,n,t){const o=E(n),r=a.sig[o.x]??0,s=a.sig[o.y]??0;e.save(),(r!==0||s!==0)&&e.translate(r*a.r,s*a.r),t(),e.restore()}const S=e=>({ink:e.ink,paper:e.paper,accent:e.accent,seed:e.seed,ageMs:e.ageMs,r:e.r}),ae={id:"manifest-oni-borrao",name:"Oni-Borrão",family:"blob",silhouette:"blob",element:"ink",desc:"Gosma viscosa pingando tinta. LÃngua de fora, dois chifres baixos.",baseHp:2,baseSpeedMul:.95,bodyVar:"var(--ink-violet)",palette:k("kami"),eye:{variant:"round"},mouth:{variant:"fang-pair",cyRel:.38,widthRel:.6,heightRel:.22},labDefaults:{limbs:{armsCount:0,armsLengthMul:1,armsBend:.4,armsWeightMul:1,armsSpread:.6,armsDropY:-.2,legsCount:0,legsLengthMul:1,legsBend:-.35,legsWeightMul:1,legsSpread:.5,legsDropY:.55,forceShow:!0}},signatureKnobs:[{key:"hornsSpread",label:"chifres · spread",category:"chifres",min:0,max:2.5,step:.
102,default:.85},{key:"hornsLen",label:"chifres · comprimento",category:"chifres",min:0,max:2,step:.02,default:.55},{key:"hornsCurve",label:"chifres · curvatura",category:"chifres",min:-1.5,max:1.5,step:.02,default:.4},{key:"hornsBaseY",label:"chifres · base Y",category:"chifres",min:-2,max:.5,step:.02,default:-.7},{key:"dropsCount",label:"gotas · qtd",category:"gotas de tinta",min:0,max:12,step:1,default:3,int:!0},{key:"dropsRadius",label:"gotas · raio orbital",category:"gotas de tinta",min:0,max:1.5,step:.02,default:.7},{key:"dropsSpeed",label:"gotas · velocidade",category:"gotas de tinta",min:0,max:3,step:.05,default:.7},{key:"tongueLen",label:"lÃngua · comprimento",category:"lÃngua",min:0,max:2,step:.02,default:1},{key:"tongueWidth",label:"lÃngua · largura",category:"lÃngua",min:0,max:2,step:.02,default:1}],drawSignature(e,a){const n=S(a),t=a.sig;m(e,a,"chifres",()=>{N(e,n,{spreadRad:t.hornsSpread,lenRel:t.hornsLen,curve:t.hornsCurve,baseY:a.r*t.hornsBaseY,filled:!0})}),m(e,a,"gotas de tinta",()=>{e.save(),e.fillStyle=a.ink;const o=a.ageMs/1e3,r=Math.max(0,Math.round(t.dropsCount));for(let s=0;s<r;s++){const l=s/Math.max(1,r)*Math.PI*2+a.seed*.3,i=Math.cos(l)*a.r*t.dropsRadius,u=(o*t.dropsSpeed+s*.37)%1,h=a.r*(.6+u*1.4),d=a.r*.12*(1-u*.4);d<.5||(e.globalAlpha=1-u*.7,e.beginPath(),e.arc(i,h,d,0,Math.PI*2),e.fill())}e.globalAlpha=1,e.restore()}),m(e,a,"lÃngua",()=>{if(t.tongueLen>.02){e.save(),e.rotate(a.lookAng),e.fillStyle=a.accent??"#a83246",e.strokeStyle=a.ink,e.lineWidth=1.4;const o=t.tongueLen,r=t.tongueWidth;e.beginPath(),e.moveTo(a.r*.45,-a.r*.05*r),e.quadraticCurveTo(a.r*(.45+.5*o),0,a.r*(.45+.25*o),a.r*.18*r),e.quadraticCurveTo(a.r*.5,a.r*.05*r,a.r*.45,-a.r*.05*r),e.fill(),e.stroke(),e.restore()}})}},te={id:"manifest-inu-sombra",name:"Inu-Sombra",family:"quadruped",silhouette:"blob",element:"neutral",desc:"Cão-sombra de pelo eriçado, 4 patas com garras, cauda peluda.",baseHp:3,baseSpeedMul:1.15,bodyVar:"var(--ink)",palette:k("sumi"),eye:{variant:"slit-v"},mouth:{variant:"fang-pair",cyRel:.45,widthRel:.5,heightRel:.16},labDefaults:{limbs:{armsCount:0,armsLengthMul:.75,armsBend:.45,armsWeightMul:1,armsSpread:.6,armsDropY:.45,legsCount:4,legsLengthMul:.55,legsBend:-.25,legsWeightMul:1.1,legsSpread:.95,legsDropY:.55,forceShow:!0}},signatureKnobs:[{key:"pawsCount",label:"patas · qtd",category:"patas + garras",min:0,max:8,step:1,default:4,int:!0},{key:"pawRadius",label:"patas · raio orbital",category:"patas + garras",min:0,max:1.5,step:.02,default:.65},{key:"pawDropY",label:"patas · Y",category:"patas + garras",min:-1,max:1.5,step:.02,default:.35},{key:"clawsPerPaw",label:"garras por pata",category:"patas + garras",min:1,max:6,step:1,default:3,int:!0},{key:"clawLen",label:"garras · comprimento",category:"patas + garras",min:0,max:1,step:.01,default:.28},{key:"clawSpread",label:"garras · spread",category:"patas + garras",min:0,max:1.5,step:.02,default:.55},{key:"furBackCount",label:"pelo costas · qtd",category:"pelo + cauda",min:0,max:30,step:1,default:12,int:!0},{key:"furBackLen",label:"pelo costas · comprimento",category:"pelo + cauda",min:0,max:1,step:.02,default:.35},{key:"tailStrands",label:"cauda · fios",category:"pelo + cauda",min:0,max:20,step:1,default:6,int:!0},{key:"tailLen",label:"cauda · comprimento",category:"pelo + cauda",min:0,max:2,step:.02,default:.8},{key:"teethCount",label:"presas · qtd",category:"presas",min:0,max:8,step:1,default:2,int:!0},{key:"teethOpen",label:"presas · abertura",category:"presas",min:0,max:1,step:.02,default:.3}],drawSignature(e,a){const n=S(a),t=a.sig,o=a.r;m(e,a,"patas + garras",()=>{const r=Math.max(0,Math.round(t.pawsCount));for(let s=0;s<r;s++){const l=r===1?.5:s/(r-1),i=Math.PI*(.15+.7*l),u=Math.cos(i)*o*t.pawRadius*-1,h=Math.sin(i)*o*t.pawDropY+o*.2,d=Math.max(1,Math.round(t.clawsPerPaw));z(e,n,{at:[u,h],len:o*t.clawLen,ang:Math.PI/2+(l-.5)*.6,count:d,spread:t.clawSpread})}}),m(e,a,"pelo + cauda",()=>{t.furBackCount>0&&t.furBackLen>.01&&I(e,n,{count:Math.max(1,Math.round(t.furBackCount)),arcStart:-Math.PI*.9,arcEnd:-Math.PI*.1,lenRel:t.furBackLen,radiusRel:.95}),t.tailStrands>0&&t.tailLen>.02&&(e.save(),e.rotate(a.lookAng+Math.PI),I(e,{...n,seed:a.seed+999},{count:Math.max(1,Math.round(t.tailStrands)),arcStart:-.4,arcEnd:.4,lenRel:t.tailLen,radiusRel:.9}
1),e.restore())}),m(e,a,"presas",()=>{t.teethCount>0&&(e.save(),e.rotate(a.lookAng),H(e,n,{cx:o*.5,cy:o*.1,width:o*.4,height:o*.2,count:Math.max(1,Math.round(t.teethCount)),fangs:!0,open:t.teethOpen}),e.restore())})}},ne={id:"manifest-karakasa-real",name:"Karakasa-Real",family:"biped",silhouette:"umbrella",element:"ink",desc:"Guarda-chuva ancestral em uma perna, lÃngua escarlate, sandália de madeira.",baseHp:2,baseSpeedMul:1,bodyVar:"var(--ink-violet)",palette:k("shimi"),eye:{count:1,layout:"single",variant:"round",scleraRel:.6,pupilRel:.42,pupilTravel:.7,spacing:0},mouth:{variant:"fang-single",cyRel:.48,widthRel:.45,heightRel:.18},labDefaults:{limbs:{armsCount:0,armsLengthMul:1,armsBend:.45,armsWeightMul:1,armsSpread:.65,armsDropY:-.2,legsCount:1,legsLengthMul:1.1,legsBend:0,legsWeightMul:1.4,legsSpread:0,legsDropY:.5,forceShow:!0}},signatureKnobs:[{key:"ribs",label:"varetas · qtd",category:"guarda-chuva",min:2,max:20,step:1,default:7,int:!0},{key:"ribOpacity",label:"varetas · opacidade",category:"guarda-chuva",min:0,max:1,step:.05,default:1},{key:"legShow",label:"perna · mostrar (0/1)",category:"perna + geta",min:0,max:1,step:1,default:1,int:!0},{key:"legLen",label:"perna · comprimento",category:"perna + geta",min:0,max:2,step:.02,default:1.05},{key:"getaWidth",label:"geta · largura",category:"perna + geta",min:0,max:1.5,step:.02,default:.7},{key:"getaHeels",label:"geta · saltos (0/1)",category:"perna + geta",min:0,max:1,step:1,default:1,int:!0},{key:"tongueLen",label:"lÃngua · comprimento",category:"lÃngua",min:0,max:2.5,step:.02,default:1.15},{key:"tongueWave",label:"lÃngua · ondulação",category:"lÃngua",min:0,max:3,step:.05,default:1}],drawSignature(e,a){const n=a.sig,t=a.r;m(e,a,"guarda-chuva",()=>{const o=Math.max(2,Math.round(n.ribs));e.save(),e.strokeStyle=a.ink,e.lineWidth=1.2,e.globalAlpha=n.ribOpacity;for(let r=1;r<o;r++){const l=(r/o-.5)*t*2;e.beginPath(),e.moveTo(0,-t*.2),e.lineTo(l,t*.3),e.stroke()}e.globalAlpha=1,e.restore()}),m(e,a,"perna + geta",()=>{n.legShow>=.5&&(e.save(),e.strokeStyle=a.ink,e.fillStyle=a.paper,e.lineWidth=2,e.beginPath(),e.moveTo(0,t*.3),e.lineTo(0,t*n.legLen),e.stroke(),e.beginPath(),e.rect(-t*.5*n.getaWidth,t*(n.legLen-.05),t*n.getaWidth,t*.15),e.fill(),e.stroke(),n.getaHeels>=.5&&(e.beginPath(),e.rect(-t*.4*n.getaWidth,t*(n.legLen+.1),t*.12,t*.1),e.rect(t*.22*n.getaWidth,t*(n.legLen+.1),t*.12,t*.1),e.fill(),e.stroke()),e.restore())}),m(e,a,"lÃngua",()=>{if(n.tongueLen>.02){e.save(),e.rotate(a.lookAng),e.fillStyle=a.accent??"#a83246",e.strokeStyle=a.ink,e.lineWidth=1.4;const o=Math.sin(a.ageMs*.005+a.seed)*t*.12*n.tongueWave,r=n.tongueLen;e.beginPath(),e.moveTo(t*.2,t*.05),e.quadraticCurveTo(t*(.2+r*.5),o,t*(.2+r),t*.15),e.quadraticCurveTo(t*(.2+r*.55),o+t*.1,t*.2,t*.15),e.closePath(),e.fill(),e.stroke(),e.restore()}})}},oe={id:"manifest-tengu-asa-negra",name:"Tengu-Asa-Negra",family:"winged",silhouette:"bird",element:"lightning",desc:"Corvo-tengu de bico longo, asas com penas marcadas, garras afiadas.",baseHp:2,baseSpeedMul:1.25,bodyVar:"var(--ink)",palette:k("aguada"),eye:{variant:"dot",scleraRel:.28,pupilRel:.7},mouth:{variant:"none"},labDefaults:{limbs:{armsCount:0,armsLengthMul:1,armsBend:.45,armsWeightMul:1,armsSpread:.7,armsDropY:-.3,legsCount:2,legsLengthMul:.55,legsBend:-.4,legsWeightMul:1,legsSpread:.45,legsDropY:.5,forceShow:!0}},signatureKnobs:[{key:"wingSpan",label:"asas · envergadura",category:"asas",min:0,max:3,step:.02,default:1.4},{key:"wingHeight",label:"asas · altura",category:"asas",min:0,max:2,step:.02,default:.7},{key:"feathers",label:"asas · penas",category:"asas",min:0,max:12,step:1,default:4,int:!0},{key:"flapHz",label:"asas · frequência bater",category:"asas",min:0,max:10,step:.1,default:2.5},{key:"beakLen",label:"bico · comprimento",category:"bico",min:0,max:2.5,step:.02,default:1.1},{key:"beakWidth",label:"bico · largura",category:"bico",min:0,max:1,step:.01,default:.08},{key:"talonCount",label:"garras · qtd",category:"garras",min:1,max:6,step:1,default:3,int:!0},{key:"talonLen",label:"garras · comprimento",category:"garras",min:0,max:1,step:.
101,default:.32},{key:"crestCount",label:"penacho · qtd",category:"penacho",min:0,max:10,step:1,default:3,int:!0},{key:"crestLen",label:"penacho · comprimento",category:"penacho",min:0,max:1.5,step:.02,default:.4}],drawSignature(e,a){const n=S(a),t=a.sig,o=a.r;m(e,a,"asas",()=>{t.wingSpan>.02&&$(e,n,{spanRel:t.wingSpan,heightRel:t.wingHeight,feathers:Math.max(0,Math.round(t.feathers)),flapHz:t.flapHz,anchorY:-o*.15})}),m(e,a,"bico",()=>{t.beakLen>.02&&(e.save(),e.rotate(a.lookAng),e.fillStyle=a.accent??a.ink,e.strokeStyle=a.ink,e.lineWidth=1.6,e.beginPath(),e.moveTo(o*.4,-o*t.beakWidth),e.lineTo(o*(.4+t.beakLen*.65),0),e.lineTo(o*.4,o*t.beakWidth),e.closePath(),e.fill(),e.stroke(),e.restore())}),m(e,a,"garras",()=>{if(t.talonCount>0&&t.talonLen>.01){const r=Math.max(1,Math.round(t.talonCount));z(e,n,{at:[-o*.3,o*.55],len:o*t.talonLen,ang:Math.PI/2+.1,count:r}),z(e,n,{at:[o*.3,o*.55],len:o*t.talonLen,ang:Math.PI/2-.1,count:r})}}),m(e,a,"penacho",()=>{t.crestCount>0&&t.crestLen>.02&&I(e,{...n,seed:a.seed+17},{count:Math.max(1,Math.round(t.crestCount)),arcStart:-Math.PI*.7,arcEnd:-Math.PI*.3,lenRel:t.crestLen,radiusRel:.9})})}}
1,se={id:"manifest-nure-onna",name:"Nure-Onna",family:"serpentine",silhouette:"serpent",element:"water",desc:"Serpente d'água articulada, escamas em losango, cabelo preto flutuando.",baseHp:3,baseSpeedMul:1.05,bodyVar:"var(--ink-cobalt)",palette:k("kasumi"),eye:{variant:"slit-v"},mouth:{variant:"stitched",cyRel:.42,widthRel:.55,heightRel:.18},signatureKnobs:[{key:"scaleRows",label:"escamas · linhas",category:"escamas",min:0,max:10,step:1,default:3,int:!0},{key:"scaleCols",label:"escamas · colunas",category:"escamas",min:0,max:20,step:1,default:8,int:!0},{key:"scaleSize",label:"escamas · tamanho",category:"escamas",min:0,max:.5,step:.005,default:.16},{key:"scaleBoxW",label:"escamas · largura caixa",category:"escamas",min:0,max:2.5,step:.02,default:1.1},{key:"scaleBoxH",label:"escamas · altura caixa",category:"escamas",min:0,max:1.5,step:.02,default:.4},{key:"segments",label:"segmentos · qtd",category:"segmentos",min:0,max:20,step:1,default:6,int:!0},{key:"segWave",label:"segmentos · onda",category:"segmentos",min:0,max:1,step:.02,default:.2},{key:"hairStrands",label:"cabelo · fios",category:"cabelo",min:0,max:30,step:1,default:7,int:!0},{key:"hairLen",label:"cabelo · comprimento",category:"cabelo",min:0,max:3,step:.02,default:1.4},{key:"hairSpread",label:"cabelo · spread",category:"cabelo",min:0,max:3,step:.02,default:1},{key:"hairWaveHz",label:"cabelo · ondulação",category:"cabelo",min:0,max:3,step:.05,default:.6},{key:"teethCount",label:"presas · qtd",category:"presas",min:0,max:6,step:1,default:2,int:!0},{key:"teethOpen",label:"presas · abertura",category:"presas",min:0,max:1,step:.02,default:.2}],drawSignature(e,a){const n=S(a),t=a.sig,o=a.r;m(e,a,"escamas",()=>{t.scaleRows>0&&t.scaleCols>0&&t.scaleSize>.005&&G(e,n,{rows:Math.max(1,Math.round(t.scaleRows)),cols:Math.max(1,Math.round(t.scaleCols)),size:o*t.scaleSize,box:[-o*t.scaleBoxW,-o*t.scaleBoxH,o*t.scaleBoxW,o*t.scaleBoxH]})}),m(e,a,"segmentos",()=>{const r=Math.max(0,Math.round(t.segments));if(r>0){e.save(),e.fillStyle=a.ink;for(let s=0;s<r;s++){const l=r===1?.5:s/(r-1),i=-o*1+l*o*2,u=Math.sin(a.ageMs*.003+l*Math.PI*2+a.seed)*o*t.segWave;e.beginPath(),e.arc(i,u,o*.06,0,Math.PI*2),e.fill()}e.restore()}}),m(e,a,"cabelo",()=>{t.hairStrands>0&&t.hairLen>.02&&(e.save(),D(e,n,{strands:Math.max(1,Math.round(t.hairStrands)),lenRel:t.hairLen,rootAng:a.lookAng+Math.PI,spread:t.hairSpread,waveHz:t.hairWaveHz}),e.restore())}),m(e,a,"presas",()=>{t.teethCount>0&&(e.save(),e.rotate(a.lookAng),H(e,n,{cx:o*.55,cy:o*.08,width:o*.3,height:o*.18,count:Math.max(1,Math.round(t.teethCount)),fangs:!0,open:t.teethOpen}),e.restore())})}},le={id:"manifest-rokurokubi-pedra",name:"Rokurokubi-Pedra",family:"mineral",silhouette:"blob",element:"neutral",desc:"Pedra ciclópica facetada, rachada conforme leva dano, musgo nos cantos.",baseHp:6,baseSpeedMul:.6,bodyVar:"var(--ink)",palette:k("sumi-2"),eye:{count:1,layout:"single",variant:"painted",scleraRel:.42,spacing:0,pupilRel:.45},mouth:{variant:"slit",cyRel:.5,widthRel:.55,heightRel:.1},signatureKnobs:[{key:"facets",label:"facetas · qtd",category:"rocha",min:0,max:15,step:1,default:5,int:!0},{key:"facetAlpha",label:"facetas · opacidade",category:"rocha",min:0,max:1,step:.05,default:.55},{key:"cracksMul",label:"rachaduras · intensidade",category:"rocha",min:0,max:3,step:.05,default:1},{key:"mossSpots",label:"musgo · tufos",category:"musgo",min:0,max:10,step:1,default:3,int:!0},{key:"mossSize",label:"musgo · tamanho",category:"musgo",min:0,max:.5,step:.01,default:.16}],drawSignature(e,a){const n=S(a),t=a.sig,o=a.r;m(e,a,"rocha",()=>{const r=Math.max(0,Math.round(t.facets));if(r>0){e.save(),e.strokeStyle=a.ink,e.lineWidth=1.2,e.globalAlpha=t.facetAlpha;for(let s=0;s<r;s++){const l=s/r*Math.PI*2+a.seed,i=l+Math.PI*.6;e.beginPath(),e.moveTo(Math.cos(l)*o*.95,Math.sin(l)*o*.95),e.lineTo(Math.cos(i)*o*.95,Math.sin(i)*o*.95),e.stroke()}e.restore()}U(e,n,{damage:(1-a.hpFrac)*t.cracksMul,bodyR:o})}),m(e,a,"musgo",()=>{const r=Math.max(0,Math.round(t.mossSpots));if(r>0){e.save(),e.fillStyle=a.accent??"#5d7a3a",e.globalAlpha=.85;for(let s=0;s<r;s++){const l=s/r*Math.PI+Math.PI*.15+a.seed*.07,i=o*(.55+s%3*.1),u=Math.cos(l)*i,h=Math.abs(Math.sin(l))*i,d=o*t.mossSize*(.7+s*.17%.5);e.beginPath(),e.arc(u,h,d,0,Math.PI*2),e.fill(),e.fillStyle=a.ink,e.globalAlpha=.6;for(let f=0;f<3;f++){const c=f*2.1+a.seed;e.beginPath(),e.arc(u+Math.cos(c)*d*.4,h+Math.sin(c)*d*.4,.8,0,Math.PI*2),e.fill()}e.fillStyle=a.accent??"#5d7a3a",e.globalAlpha=.85}
1e.restore()}})}},re={id:"manifest-mokumoku-folha",name:"Mokumoku-Folha",family:"vegetal",silhouette:"blob",element:"neutral",desc:"Tronco com casca e nó, três olhos triangulares espiando, folhas brotando do topo, raÃzes garranchosas na base.",baseHp:4,baseSpeedMul:.7,bodyVar:"var(--ink-jade, var(--ink))",palette:k("boro"),eye:{count:3,layout:"triangle",scleraRel:.2,pupilRel:.55,spacing:.55,pupilTravel:.5,blinkInterval:4.5,outline:!0,variant:"dot"},mouth:{variant:"none"},labDefaults:{limbs:{armsCount:0,armsLengthMul:1,armsBend:.4,armsWeightMul:1,armsSpread:.6,armsDropY:-.2,legsCount:5,legsLengthMul:.55,legsBend:.15,legsWeightMul:1.2,legsSpread:1,legsDropY:.8,forceShow:!0}},signatureKnobs:[{key:"barkStripes",label:"casca · listras",category:"tronco",min:0,max:15,step:1,default:6,int:!0},{key:"barkW",label:"casca · largura",category:"tronco",min:0,max:1.5,step:.02,default:.7},{key:"barkH",label:"casca · altura",category:"tronco",min:0,max:2,step:.02,default:.7},{key:"knotShow",label:"nó · mostrar (0/1)",category:"tronco",min:0,max:1,step:1,default:1,int:!0},{key:"leafCount",label:"folhas · qtd",category:"folhas",min:0,max:12,step:1,default:3,int:!0},{key:"leafSize",label:"folhas · tamanho",category:"folhas",min:0,max:2,step:.02,default:1},{key:"leafSpread",label:"folhas · spread arco",category:"folhas",min:0,max:2,step:.02,default:1},{key:"leafSway",label:"folhas · balanço",category:"folhas",min:0,max:2,step:.02,default:1},{key:"rootCount",label:"raÃzes · qtd",category:"raÃzes",min:0,max:15,step:1,default:5,int:!0},{key:"rootLen",label:"raÃzes · comprimento",category:"raÃzes",min:0,max:3,step:.02,default:1},{key:"rootSpread",label:"raÃzes · spread",category:"raÃzes",min:0,max:2,step:.02,default:1},{key:"rootWeight",label:"raÃzes · peso traço",category:"raÃzes",min:.2,max:6,step:.05,default:2.6}],signatureVariants:[{key:"rootShape",label:"raÃzes · shape",category:"raÃzes",options:["root-tendril","root-vine","root-branch","root-tentacle","root-spine"],default:"root-tendril"},{key:"leafShape",label:"folhas · shape",category:"folhas",options:["leaf-lotus","leaf-maple","leaf-pine","leaf-ginkgo"],default:"leaf-lotus"},{key:"barkShape",label:"casca · shape",category:"tronco",options:["bark-default","bark-bands","bark-cracked","bark-mossy"],default:"bark-default"}],drawSignature(e,a){const n=S(a),t=a.sig,o=a.r,r="var(--ink-jade, #5d7a3a)";m(e,a,"tronco",()=>{if(t.barkStripes>0&&Q(e,n,{stripes:Math.max(1,Math.round(t.barkStripes)),box:[-o*t.barkW,-o*(t.barkH*.71),o*t.barkW,o*(t.barkH*1.29)]}),t.knotShow>=.5){e.save();const s=(a.seed*17%100/100-.5)*o*.5,l=o*.1+a.seed*31%30/100*o;e.translate(s,l),e.fillStyle=a.ink,e.globalAlpha=.55,e.beginPath(),e.ellipse(0,0,o*.11,o*.07,.4,0,Math.PI*2),e.fill(),e.globalAlpha=1,e.strokeStyle=a.ink,e.lineWidth=1,e.beginPath(),e.moveTo(-o*.07,-o*.02),e.lineTo(o*.08,o*.03),e.stroke(),e.restore()}}),m(e,a,"folhas",()=>{const s=Math.max(0,Math.round(t.leafCount));if(s>0&&t.leafSize>.02){const l=Math.sin(a.ageMs*.0018+a.seed*.7)*.15*t.leafSway;for(let i=0;i<s;i++){const u=s===1?.5:i/(s-1),h=-Math.PI*(.85-.7*u),d=t.leafSpread,f=Math.cos(h)*o*.4*d,c=-o*.55+Math.sin(h+Math.PI/2)*o*.07,p=h+l*(i%2===0?1:.6),g=t.leafSize*(i===Math.floor(s/2)?1.15:1);e.save(),e.translate(f,c),e.strokeStyle=a.ink,e.lineWidth=1.6,e.lineCap="round",e.beginPath(),e.moveTo(0,0);const v=o*.18*g,M=Math.cos(p)*v,C=Math.sin(p)*v;e.lineTo(M,C),e.stroke(),e.translate(M,C),e.rotate(p+Math.PI/2);const w=o*.18*g,b=o*.42*g;e.fillStyle=r,e.strokeStyle=a.ink,e.lineWidth=1.4,e.beginPath(),e.moveTo(0,b*.5),e.quadraticCurveTo(w,b*.1,0,-b*.5),e.quadraticCurveTo(-w,b*.1,0,b*.5),e.closePath(),e.fill(),e.stroke(),e.strokeStyle=a.ink,e.globalAlpha=.7,e.lineWidth=1,e.beginPath(),e.moveTo(0,b*.45),e.lineTo(0,-b*.45),e.stroke(),e.globalAlpha=.45,e.beginPath(),e.moveTo(0,b*.15),e.lineTo(w*.55,-b*.05),e.moveTo(0,b*.15),e.lineTo(-w*.55,-b*.05),e.stroke(),e.restore()}}}),m(e,a,"raÃzes",()=>{const s=Math.max(0,Math.round(t.rootCount));if(s>0&&t.rootLen>.02)for(let l=0;l<s;l++){const i=s===1?.5:l/(s-1),u=(i-.5)*o*1.1*t.rootSpread,h=o*.82,d=Math.PI*(.78-.56*i),f=o*t.rootLen*(.45+l%2*.1),c=u+Math.cos(d)*f,p=h+Math.sin(d)*f,g=(u+c)/2+Math.cos(d+Math.PI/2)*f*.15*(l%2===0?1:-1),v=(h+p)/2+Math.sin(d+Math.PI/2)*f*.15*(l%2===0?1:-1),M=W([u,h],[g,v],[c,p],8);T(e,M,{wBase:t.rootWeight,wTip:.6,color:a.ink,seed:a.seed+l*11,sketch:!1,jitter:.3}),e.save(),e.fillStyle=a.ink,e.beginPath(),e.arc(c,p,1.2,0,Math.PI*2),e.fill(),e.restore(
1)}})}},ie={id:"manifest-shikigami",name:"Shikigami",family:"paper",silhouette:"lantern",element:"ink",desc:"Origami com vincos firmes, selo japonês no centro, pontas afiadas.",baseHp:2,baseSpeedMul:1.1,bodyVar:"var(--paper)",palette:k("kami"),eye:{variant:"painted",scleraRel:.22,pupilRel:.85},mouth:{variant:"smile-broken",cyRel:.45,widthRel:.5,heightRel:.16},signatureKnobs:[{key:"paperSides",label:"papel · lados",category:"papel",min:3,max:12,step:1,default:5,int:!0},{key:"paperSize",label:"papel · tamanho",category:"papel",min:.3,max:2,step:.02,default:1.05},{key:"paperSpin",label:"papel · giro",category:"papel",min:0,max:2,step:.05,default:1},{key:"creaseAlpha",label:"vincos · opacidade",category:"vincos",min:0,max:1,step:.05,default:.55},{key:"sealSize",label:"selo · tamanho",category:"selo",min:0,max:2,step:.02,default:.56},{key:"sealShow",label:"selo · mostrar (0/1)",category:"selo",min:0,max:1,step:1,default:1,int:!0}],drawSignature(e,a){const n=a.sig,t=a.r,o=Math.sin(a.ageMs*.0012+a.seed)*.35*n.paperSpin,r=Math.max(3,Math.round(n.paperSides)),s=t*n.paperSize;m(e,a,"papel",()=>{e.save(),e.rotate(o),e.fillStyle=a.flash>0?"white":a.paper,e.strokeStyle=a.ink,e.lineWidth=2,e.beginPath();for(let l=0;l<r;l++){const i=-Math.PI/2+l/r*Math.PI*2,u=Math.cos(i)*s,h=Math.sin(i)*s;l===0?e.moveTo(u,h):e.lineTo(u,h)}e.closePath(),e.fill(),e.stroke(),e.restore()}),m(e,a,"vincos",()=>{if(n.creaseAlpha>.01){e.save(),e.rotate(o),e.strokeStyle=a.ink,e.lineWidth=1,e.globalAlpha=n.creaseAlpha;for(let l=0;l<r;l++){const i=-Math.PI/2+l/r*Math.PI*2;e.beginPath(),e.moveTo(0,0),e.lineTo(Math.cos(i)*s,Math.sin(i)*s),e.stroke()}e.globalAlpha=1,e.restore()}}),m(e,a,"selo",()=>{if(n.sealShow>=.5&&n.sealSize>.01){e.save(),e.rotate(o);const l=t*n.sealSize/2;e.fillStyle=a.accent??"#a83246",e.fillRect(-l,-l,l*2,l*2),e.strokeStyle=a.paper,e.lineWidth=2,e.beginPath(),e.moveTo(0,-l*.64),e.lineTo(0,l*.64),e.moveTo(-l*.64,0),e.lineTo(l*.64,0),e.moveTo(-l*.64,-l*.64),e.lineTo(l*.64,l*.64),e.stroke(),e.restore()}})}},ue={id:"manifest-hi-no-tama",name:"Hi-no-Tama",family:"spirit",silhouette:"wisp",element:"fire",desc:"Bola de fogo fátuo, três camadas (núcleo, miolo, halo), faÃscas e rastro.",baseHp:2,baseSpeedMul:1.2,bodyVar:"var(--ink-cinnabar)",palette:k("aguada"),eye:{variant:"flame",scleraRel:.22,pupilRel:.95,outline:!1},mouth:{variant:"none"},signatureKnobs:[{key:"flameSize",label:"chama · tamanho",category:"chama",min:0,max:3,step:.02,default:1.1},{key:"flameFlickerHz",label:"chama · flicker Hz",category:"chama",min:0,max:20,step:.1,default:6},{key:"sparkCount",label:"faÃscas · qtd",category:"faÃscas",min:0,max:15,step:1,default:4,int:!0},{key:"sparkSpeed",label:"faÃscas · velocidade",category:"faÃscas",min:0,max:3,step:.05,default:.9},{key:"smokeCount",label:"fumaça · puffs",category:"fumaça",min:0,max:10,step:1,default:3,int:!0},{key:"smokeAlpha",label:"fumaça · opacidade",category:"fumaça",min:0,max:1,step:.02,default:.18}],drawSignature(e,a){const n=S(a),t=a.sig,o=a.r;m(e,a,"chama",()=>{t.flameSize>.02&&Z(e,n,{rOuter:o*t.flameSize,flickerHz:t.flameFlickerHz})}),m(e,a,"faÃscas",()=>{const r=Math.max(0,Math.round(t.sparkCount));if(r>0){e.save(),e.fillStyle=a.accent??a.ink;const s=a.ageMs/1e3;for(let l=0;l<r;l++){const i=(s*t.sparkSpeed+l*.25)%1,u=(l-(r-1)/2)*o*.25+Math.sin(s*3+l)*o*.1,h=-o*.4-i*o*1.2,d=o*.06*(1-i);d<.4||(e.globalAlpha=1-i,e.beginPath(),e.arc(u,h,d,0,Math.PI*2),e.fill())}e.globalAlpha=1,e.restore()}}),m(e,a,"fumaça",()=>{const r=Math.max(0,Math.round(t.smokeCount));if(r>0&&t.smokeAlpha>.01){const s=a.ageMs/1e3;e.save(),e.rotate(a.lookAng+Math.PI),e.fillStyle=a.ink;for(let l=0;l<r;l++){const i=(l+1)/(r+1);e.globalAlpha=t.smokeAlpha*(1-i),e.beginPath(),e.arc(o*(.4+i*.8),Math.sin(s*2+l)*o*.1,o*(.18+i*.12),0,Math.PI*2),e.fill()}e.globalAlpha=1,e.restore()}})}},he={id:"manifest-hannya",name:"Hannya",family:"mask",silhouette:"mask",element:"ink",desc:"Máscara noh demonÃaca: chifres curvos, dentes serrilhados, lágrima de sangue, cabelo selvagem.",baseHp:4,baseSpeedMul:1,bodyVar:"var(--paper)",palette:k("shimi"),eye:{variant:"slit-h",scleraRel:.28,pupilRel:.9},mouth:{variant:"none"},signatureKnobs:[{key:"hairStrands",label:"cabelo · fios",category:"cabelo",min:0,max:30,step:1,default:11,int:!0},{key:"hairLen",label:"cabelo · comprimento",category:"cabelo",min:0,max:3,step:.02,default:1.2},{key:"hairSpread",label:"cabelo · spread (rad)",category:"cabelo",min:0,max:6,step:.
105,default:Math.PI*1.5},{key:"hairWaveHz",label:"cabelo · ondulação",category:"cabelo",min:0,max:3,step:.05,default:.5},{key:"hornsSpread",label:"chifres · spread",category:"chifres",min:0,max:2,step:.02,default:.7},{key:"hornsLen",label:"chifres · comprimento",category:"chifres",min:0,max:2,step:.02,default:.85},{key:"hornsCurve",label:"chifres · curvatura",category:"chifres",min:-1.5,max:2,step:.02,default:.6},{key:"teethCount",label:"dentes · qtd",category:"dentes",min:0,max:15,step:1,default:6,int:!0},{key:"teethOpen",label:"dentes · abertura",category:"dentes",min:0,max:1,step:.02,default:.4},{key:"browsWeight",label:"sobrancelhas · peso",category:"sobrancelhas",min:0,max:8,step:.1,default:2.5},{key:"tearSize",label:"lágrima · tamanho",category:"lágrima",min:0,max:3,step:.02,default:1}],drawSignature(e,a){const n=S(a),t=a.sig,o=a.r;m(e,a,"cabelo",()=>{t.hairStrands>0&&t.hairLen>.02&&(e.save(),D(e,n,{strands:Math.max(1,Math.round(t.hairStrands)),lenRel:t.hairLen,rootAng:-Math.PI/2,spread:t.hairSpread,waveHz:t.hairWaveHz}),e.restore())}),m(e,a,"chifres",()=>{t.hornsLen>.02&&N(e,n,{spreadRad:t.hornsSpread,lenRel:t.hornsLen,curve:t.hornsCurve,baseY:-o*.55,filled:!0})}),m(e,a,"dentes",()=>{t.teethCount>0&&H(e,n,{cx:0,cy:o*.35,width:o*.7,height:o*.22,count:Math.max(1,Math.round(t.teethCount)),fangs:!1,open:t.teethOpen})}),m(e,a,"sobrancelhas",()=>{t.browsWeight>.02&&(e.save(),e.strokeStyle=a.ink,e.lineWidth=t.browsWeight,e.lineCap="round",e.beginPath(),e.moveTo(-o*.55,-o*.05),e.lineTo(-o*.15,-o*.25),e.moveTo(o*.55,-o*.05),e.lineTo(o*.15,-o*.25),e.stroke(),e.restore())}),m(e,a,"lágrima",()=>{if(t.tearSize>.02){const r=t.tearSize;e.save(),e.fillStyle=a.accent??"#a83246",e.strokeStyle=a.ink,e.lineWidth=1,e.beginPath(),e.moveTo(o*.25,o*.05),e.quadraticCurveTo(o*(.25-.03*r),o*(.05+.25*r),o*.28,o*(.05+.4*r)),e.quadraticCurveTo(o*(.25+.09*r),o*(.05+.25*r),o*.25,o*.05),e.fill(),e.stroke(),e.restore()}})}},Y=[re,se,ne,oe,ie,le,te,he,ue,ae],de=Object.fromEntries(Y.map(e=>[e.id,e]));function be(e){return de[e]}function ye(){return Y}Y.length;const _={"manifest-oni-borrao":{locomotion:"chase",attacks:["melee-touch","aura-pulse","shoot-ring"]},"manifest-inu-sombra":{locomotion:"chase",attacks:["melee-lunge","dash-charge","shoot-spread"]},"manifest-karakasa-real":{locomotion:"hop",attacks:["melee-lunge","dash-charge","aura-pulse"]},"manifest-tengu-asa-negra":{locomotion:"glide",attacks:["melee-touch","shoot-spread","dash-charge"]},"manifest-nure-onna":{locomotion:"weave",attacks:["shoot-single","melee-touch","aura-pulse"]},"manifest-rokurokubi-pedra":{locomotion:"drift",attacks:["shoot-single","aura-pulse","melee-touch"]},"manifest-mokumoku-folha":{locomotion:"orbit",attacks:["aura-pulse","shoot-spread","melee-touch"]},"manifest-shikigami":{locomotion:"weave",attacks:["shoot-spread","shoot-single","dash-charge"]},"manifest-hi-no-tama":{locomotion:"orbit",attacks:["shoot-ring","shoot-single","aura-pulse"]},"manifest-hannya":{locomotion:"chase",attacks:["shoot-single","shoot-ring","dash-charge"]}};function ke(e){return _[e]}function Me(e,a,n){const t=_[e];if(!t||t.attacks.length===0)return"melee-touch";const o=((a>>>0)+(n|0))%t.attacks.length;return t.attacks[o]}const K="md-enemy-compositions-v2",R=new Map;let B=!1;function V(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function A(){if(B)return;B=!0;const e=V();if(e)try{const a=e.getItem(K);if(!a)return;const n=JSON.parse(a);for(const[t,o]of Object.entries(n))R.set(t,o)}catch{}}function X(){const e=V();if(!e)return;const a={};for(const[n,t]of R.entries())a[n]=t;try{e.setItem(K,JSON.stringify(a))}catch{}}function ve(e){return A(),R.get(e)}function Se(e,a){A(),R.set(e,a),X(),typeof window<"u"&&(window.dispatchEvent(new CustomEvent("md:enemy-tuning",{detail:{id:e}})),window.parent&&window.parent!==window&&window.parent.postMessage({type:"md:enemy-tuning",id:e},window.location.origin))}function we(e){A(),R.delete(e),X()}function Pe(){B=!1,R.clear(),A()}export{ye as a,be as b,ke as c,we as d,ce as e,W as f,ve as g,me as h,T as i,Z as j,U as k,Q as l,H as m,z as n,D as o,Me as p,G as q,Pe as r,Se as s,$ as t,N as u,fe as v,I as w,ge as x,pe as y};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.