1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,182360,e=>{"use strict";let t,i,r;var s,a=e.i(466471),n=e.i(536355),o=e.i(884702),l=e.i(103979);let d=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],u=new Set(d),c=e=>180*e/Math.PI,m=e=>p(c(Math.atan2(e[1],e[0]))),h={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:m,rotateZ:m,skewX:e=>c(Math.atan(e[1])),skewY:e=>c(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},p=e=>((e%=360)<0&&(e+=360),e),g=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),f=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),v={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:g,scaleY:f,scale:e=>(g(e)+f(e))/2,rotateX:e=>p(c(Math.atan2(e[6],e[5]))),rotateY:e=>p(c(Math.atan2(-e[2],e[0]))),rotateZ:m,rotate:m,skewX:e=>c(Math.atan(e[4])),skewY:e=>c(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function x(e){return+!!e.includes("scale")}function b(e,t){let i,r;if(!e||"none"===e)return x(t);let s=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);if(s)i=v,r=s;else{let t=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);i=h,r=t}if(!r)return x(t);let a=i[t],n=r[1].split(",").map(y);return"function"==typeof a?a(n):n[a]}function y(e){return parseFloat(e.trim())}let w=e=>t=>"string"==typeof t&&t.startsWith(e),T=w("--"),S=w("var(--"),P=e=>!!S(e)&&k.test(e.split("/*")[0].trim()),k=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function L({top:e,left:t,right:i,bottom:r}){return{x:{min:t,max:i},y:{min:e,max:r}}}let D=(e,t,i)=>e+(t-e)*i;function j(e){return void 0===e||1===e}function M({scale:e,scaleX:t,scaleY:i}){return!j(e)||!j(t)||!j(i)}function A(e){return M(e)||C(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function C(e){var t,i;return(t=e.x)&&"0%"!==t||(i=e.y)&&"0%"!==i}function E(e,t,i,r,s){return void 0!==s&&(e=r+s*(e-r)),r+i*(e-r)+t}function _(e,t=0,i=1,r,s){e.min=E(e.min,t,i,r,s),e.max=E(e.max,t,i,r,s)}function N(e,{x:t,y:i}){_(e.x,t.translate,t.scale,t.originPoint),_(e.y,i.translate,i.scale,i.originPoint)}function B(e,t){e.min=e.min+t,e.max=e.max+t}function V(e,t,i,r,s=.5){let a=D(e.min,e.max,s);_(e,t,i,a,r)}function z(e,t){V(e.x,t.x,t.scaleX,t.scale,t.originX),V(e.y,t.y,t.scaleY,t.scale,t.originY)}function I(e,t){return L(function(e,t){if(!t)return e;let i=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:i.y,left:i.x,bottom:r.y,right:r.x}}(e.getBoundingClientRect(),t))}let R=new Set(["width","height","top","left","right","bottom",...d]),F=(e,t,i)=>i>t?t:i<e?e:i,G={test:e=>"number"==typeof e,parse:parseFloat,transform:e=>e},O={...G,transform:e=>F(0,1,e)},U={...G,default:1},q=e=>({test:t=>"string"==typeof t&&t.endsWith(e)&&1===t.split(" ").length,parse:parseFloat,transform:t=>`${t}${e}`}),W=q("deg"),H=q("%"),$=q("px"),J=q("vh"),K=q("vw"),Y={...H,parse:e=>H.parse(e)/100,transform:e=>H.transform(100*e)},X=e=>t=>t.test(e),Z=[G,$,H,W,K,J,{test:e=>"auto"===e,parse:e=>e}],Q=e=>Z.find(X(e));e.i(90985);let ee=()=>{},et=()=>{},ei=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u,er=e=>e===G||e===$,es=new Set(["x","y","z"]),ea=d.filter(e=>!es.has(e)),en={width:({x:e},{paddingLeft:t="0",paddingRight:i="0"})=>e.max-e.min-parseFloat(t)-parseFloat(i),height:({y:e},{paddingTop:t="0",paddingBottom:i="0"})=>e.max-e.min-parseFloat(t)-parseFloat(i),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>b(t,"x"),y:(e,{transform:t})=>b(t,"y")};en.translateX=en.x,en.translateY=en.y;let eo=e=>e,el={},ed=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function eu(e,t){let i=!1,r=!0,s={delta:0,timestamp:0,isProcessing:!1},a=()=>i=!0,n=ed.reduce((e,i)=>(e[i]=function(e,t){let i=new Set,r=new Set,s=!1,a=!1,n=new WeakSet,o={delta:0,timestamp:0,isProcessing:!1},l=0;function d(t){n.has(t)&&(u.schedule(t),e()),l++,t(o)}let u={schedule:(e,t=!1,a=!1)=>{let o=a&&s?i:r;return t&&n.add(e),o.has(e)||o.add(e),e},cancel:e=>{r.delete(e),n.delete(e)},process:e=>{if(o=e,s){a=!0;return}
1s=!0,[i,r]=[r,i],i.forEach(d),t,l=0,i.clear(),s=!1,a&&(a=!1,u.process(e))}};return u}(a,t?i:void 0),e),{}),{setup:o,read:l,resolveKeyframes:d,preUpdate:u,update:c,preRender:m,render:h,postRender:p}=n,g=()=>{let a=el.useManualTiming?s.timestamp:performance.now();i=!1,el.useManualTiming||(s.delta=r?1e3/60:Math.max(Math.min(a-s.timestamp,40),1)),s.timestamp=a,s.isProcessing=!0,o.process(s),l.process(s),d.process(s),u.process(s),c.process(s),m.process(s),h.process(s),p.process(s),s.isProcessing=!1,i&&t&&(r=!1,e(g))};return{schedule:ed.reduce((t,a)=>{let o=n[a];return t[a]=(t,a=!1,n=!1)=>(!i&&(i=!0,r=!0,s.isProcessing||e(g)),o.schedule(t,a,n)),t},{}),cancel:e=>{for(let t=0;t<ed.length;t++)n[ed[t]].cancel(e)},state:s,steps:n}}let{schedule:ec,cancel:em,state:eh,steps:ep}=eu("undefined"!=typeof requestAnimationFrame?requestAnimationFrame:eo,!0),eg=new Set,ef=!1,ev=!1,ex=!1;function eb(){if(ev){let e=Array.from(eg).filter(e=>e.needsMeasurement),t=new Set(e.map(e=>e.element)),i=new Map;t.forEach(e=>{let t,r=(t=[],ea.forEach(i=>{let r=e.getValue(i);void 0!==r&&(t.push([i,r.get()]),r.set(+!!i.startsWith("scale")))}),t);r.length&&(i.set(e,r),e.render())}),e.forEach(e=>e.measureInitialState()),t.forEach(e=>{e.render();let t=i.get(e);t&&t.forEach(([t,i])=>{e.getValue(t)?.set(i)})}),e.forEach(e=>e.measureEndState()),e.forEach(e=>{void 0!==e.suspendedScrollY&&window.scrollTo(0,e.suspendedScrollY)})}ev=!1,ef=!1,eg.forEach(e=>e.complete(ex)),eg.clear()}function ey(){eg.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(ev=!0)})}class ew{constructor(e,t,i,r,s,a=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=t,this.name=i,this.motionValue=r,this.element=s,this.isAsync=a}scheduleResolve(){this.state="scheduled",this.isAsync?(eg.add(this),ef||(ef=!0,ec.read(ey),ec.resolveKeyframes(eb))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:e,name:t,element:i,motionValue:r}=this;if(null===e[0]){let s=r?.get(),a=e[e.length-1];if(void 0!==s)e[0]=s;else if(i&&t){let r=i.readValue(t,a);null!=r&&(e[0]=r)}void 0===e[0]&&(e[0]=a),r&&void 0===s&&r.set(e[0])}for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),eg.delete(this)}cancel(){"scheduled"===this.state&&(eg.delete(this),this.state="pending")}resume(){"pending"===this.state&&this.scheduleResolve()}}let eT=e=>Math.round(1e5*e)/1e5,eS=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu,eP=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,ek=(e,t)=>i=>!!("string"==typeof i&&eP.test(i)&&i.startsWith(e)||t&&null!=i&&Object.prototype.hasOwnProperty.call(i,t)),eL=(e,t,i)=>r=>{if("string"!=typeof r)return r;let[s,a,n,o]=r.match(eS);return{[e]:parseFloat(s),[t]:parseFloat(a),[i]:parseFloat(n),alpha:void 0!==o?parseFloat(o):1}},eD={...G,transform:e=>Math.round(F(0,255,e))},ej={test:ek("rgb","red"),parse:eL("red","green","blue"),transform:({red:e,green:t,blue:i,alpha:r=1})=>"rgba("+eD.transform(e)+", "+eD.transform(t)+", "+eD.transform(i)+", "+eT(O.transform(r))+")"},eM={test:ek("#"),parse:function(e){let t="",i="",r="",s="";return e.length>5?(t=e.substring(1,3),i=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),i=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,i+=i,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(i,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}},transform:ej.transform},eA={test:ek("hsl","hue"),parse:eL("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:i,alpha:r=1})=>"hsla("+Math.round(e)+", "+H.transform(eT(t))+", "+H.transform(eT(i))+", "+eT(O.transform(r))+")"},eC={test:e=>ej.test(e)||eM.test(e)||eA.test(e),parse:e=>ej.test(e)?ej.parse(e):eA.test(e)?eA.parse(e):eM.parse(e),transform:e=>"string"==typeof e?e:e.hasOwnProperty("red")?ej.transform(e):eA.transform(e),getAnimatableNone:e=>{let t=eC.parse(e);return t.alpha=0,eC.transform(t)}},eE=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,e_="number",eN="color",eB=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function eV(e){let t=e.toString(),i=[],r={color:[],number:[],var:[]},s=[],a=0,n=t.replace(eB,e=>(eC.test(e)?(r.color.push(a),s.push(eN),i.push(eC.parse(e))):e.startsWith("var(")?(r.var.push(a),s.push("var"),i.push(e)):(r.number.push(a),s.push(e_),i.push(parseFloat(e))),++a,"${}")).split("${}");return{values:i,split:n,indexes:r,types:s}}function ez(e){return eV(e).values}function eI(e){let{split:t,types:i}=eV(e),r=t.length;return e=>{let s="";for(let a=0;a<r;a++)if(s+=t[a],void 0!==e[a]){let t=i[a];t===e_?s+=eT(e[a]):t===eN?s+=eC.transform(e[a]):s+=e[a]}return s}}let eR=e=>"number"==typeof e?0:eC.test(e)?eC.getAnimatableNone(e):e,eF={test:function(e){return isNaN(e)&&"string"==typeof e&&(e.match(eS)?.length||0)+(e.match(eE)?.length||0)>0},parse:ez,createTransformer:eI,getAnimatableNone:function(e){let t=ez(e);return eI(e)(t.map(eR))}},eG=new Set(["brightness","contrast","saturate","opacity"]);function eO(e){let[t,i]=e.slice(0,-1).split("(");if("drop-shadow"===t)return e;let[r]=i.match(eS)||[];if(!r)return e;let s=i.replace(r,""),a=+!!eG.has(t);return r!==i&&(a*=100),t+"("+a+s+")"}let eU=/\b([a-z-]*)\(.*?\)/gu,eq={...eF,getAnimatableNone:e=>{let t=e.match(eU);return t?t.map(eO).join(" "):e}},eW={...G,transform:Math.round},eH={borderWidth:$,borderTopWidth:$,borderRightWidth:$,borderBottomWidth:$,borderLeftWidth:$,borderRadius:$,radius:$,borderTopLeftRadius:$,borderTopRightRadius:$,borderBottomRightRadius:$,borderBottomLeftRadius:$,width:$,maxWidth:$,height:$,maxHeight:$,top:$,right:$,bottom:$,left:$,padding:$,paddingTop:$,paddingRight:$,paddingBottom:$,paddingLeft:$,margin:$,marginTop:$,marginRight:$,marginBottom:$,marginLeft:$,backgroundPositionX:$,backgroundPositionY:$,rotate:W,rotateX:W,rotateY:W,rotateZ:W,scale:U,scaleX:U,scaleY:U,scaleZ:U,skew:W,skewX:W,skewY:W,distance:$,translateX:$,translateY:$,translateZ:$,x:$,y:$,z:$,perspective:$,transformPerspective:$,opacity:O,originX:Y,originY:Y,originZ:$,zIndex:eW,fillOpacity:O,strokeOpacity:O,numOctaves:eW},e$={...eH,color:eC,backgroundColor:eC,outlineColor:eC,fill:eC,stroke:eC,borderColor:eC,borderTopColor:eC,borderRightColor:eC,borderBottomColor:eC,borderLeftColor:eC,filter:eq,WebkitFilter:eq},eJ=e=>e$[e];function eK(e,t){let i=eJ(e);return i!==eq&&(i=eF),i.getAnimatableNone?i.getAnimatableNone(t):void 0}
1let eY=new Set(["auto","none","0"]);class eX extends ew{constructor(e,t,i,r,s){super(e,t,i,r,s,!0)}readKeyframes(){let{unresolvedKeyframes:e,element:t,name:i}=this;if(!t||!t.current)return;super.readKeyframes();for(let i=0;i<e.length;i++){let r=e[i];if("string"==typeof r&&P(r=r.trim())){let s=function e(t,i,r=1){et(r<=4,`Max CSS variable fallback depth detected in property "${t}". This may indicate a circular fallback dependency.`,"max-css-var-depth");let[s,a]=function(e){let t=ei.exec(e);if(!t)return[,];let[,i,r,s]=t;return[`--${i??r}`,s]}(t);if(!s)return;let n=window.getComputedStyle(i).getPropertyValue(s);if(n){let e=n.trim();return/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e)?parseFloat(e):e}return P(a)?e(a,i,r+1):a}(r,t.current);void 0!==s&&(e[i]=s),i===e.length-1&&(this.finalKeyframe=r)}}if(this.resolveNoneKeyframes(),!R.has(i)||2!==e.length)return;let[r,s]=e,a=Q(r),n=Q(s);if(a!==n)if(er(a)&&er(n))for(let t=0;t<e.length;t++){let i=e[t];"string"==typeof i&&(e[t]=parseFloat(i))}else en[i]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){let{unresolvedKeyframes:e,name:t}=this,i=[];for(let t=0;t<e.length;t++)(null===e[t]||function(e){if("number"==typeof e)return 0===e;if(null===e)return!0;return"none"===e||"0"===e||/^0[^.\s]+$/u.test(e)}(e[t]))&&i.push(t);i.length&&function(e,t,i){let r,s=0;for(;s<e.length&&!r;){let t=e[s];"string"==typeof t&&!eY.has(t)&&eV(t).values.length&&(r=e[s]),s++}if(r&&i)for(let s of t)e[s]=eK(i,r)}(e,i,t)}measureInitialState(){let{element:e,unresolvedKeyframes:t,name:i}=this;if(!e||!e.current)return;"height"===i&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=en[i](e.measureViewportBox(),window.getComputedStyle(e.current)),t[0]=this.measuredOrigin;let r=t[t.length-1];void 0!==r&&e.getValue(i,r).jump(r,!1)}measureEndState(){let{element:e,name:t,unresolvedKeyframes:i}=this;if(!e||!e.current)return;let r=e.getValue(t);r&&r.jump(this.measuredOrigin,!1);let s=i.length-1,a=i[s];i[s]=en[t](e.measureViewportBox(),window.getComputedStyle(e.current)),null!==a&&void 0===this.finalKeyframe&&(this.finalKeyframe=a),this.removedTransforms?.length&&this.removedTransforms.forEac
1h(([t,i])=>{e.getValue(t).set(i)}),this.resolveNoneKeyframes()}}let eZ=e=>!!(e&&e.getVelocity);function eQ(){t=void 0}let e0={now:()=>(void 0===t&&e0.set(eh.isProcessing||el.useManualTiming?eh.timestamp:performance.now()),t),set:e=>{t=e,queueMicrotask(eQ)}};function e1(e,t){-1===e.indexOf(t)&&e.push(t)}function e2(e,t){let i=e.indexOf(t);i>-1&&e.splice(i,1)}class e3{constructor(){this.subscriptions=[]}add(e){return e1(this.subscriptions,e),()=>e2(this.subscriptions,e)}notify(e,t,i){let r=this.subscriptions.length;if(r)if(1===r)this.subscriptions[0](e,t,i);else for(let s=0;s<r;s++){let r=this.subscriptions[s];r&&r(e,t,i)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}class e5{constructor(e,t={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=e=>{let t=e0.now();if(this.updatedAt!==t&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(e),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let e of this.dependents)e.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=t.owner}setCurrent(e){this.current=e,this.updatedAt=e0.now(),null===this.canTrackVelocity&&void 0!==e&&(this.canTrackVelocity=!isNaN(parseFloat(this.current)))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on("change",e)}on(e,t){this.events[e]||(this.events[e]=new e3);let i=this.events[e].add(t);return"change"===e?()=>{i(),ec.read(()=>{this.events.change.getSize()||this.stop()})}:i}clearListeners(){for(let e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,t,i){this.set(t),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-i}jump(e,t=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,t&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(e){this.dependents||(this.dependents=new Set),this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return r&&r.push(this),this.current}getPrevious(){return this.prev}getVelocity(){var e;let t=e0.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||t-this.updatedAt>30)return 0;let i=Math.min(this.updatedAt-this.prevUpdatedAt,30);return e=parseFloat(this.current)-parseFloat(this.prevFrameValue),i?1e3/i*e:0}start(e){return this.stop(),new Promise(t=>{this.hasAnimated=!0,this.animation=e(t),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function e4(e,t){return new e5(e,t)}let e6=[...Z,eC,eF],{schedule:e8}=eu(queueMicrotask,!1),e9={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},e7={};for(let e in e9)e7[e]={isEnabled:t=>e9[e].some(e=>!!t[e])};let te=()=>({translate:0,scale:1,origin:0,originPoint:0}),tt=()=>({x:te(),y:te()}),ti=()=>({min:0,max:0}),tr=()=>({x:ti(),y:ti()}),ts="undefined"!=typeof window,ta={current:null},tn={current:!1},to=new WeakMap;function tl(e){return null!==e&&"object"==typeof e&&"function"==typeof e.start}function td(e){return"string"==typeof e||Array.isArray(e)}let tu=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],tc=["initial",...tu];function tm(e){return tl(e.animate)||tc.some(t=>td(e[t]))}function th(e){return!!(tm(e)||e.variants)}function tp(e){let t=[{},{}];
1return e?.values.forEach((e,i)=>{t[0][i]=e.get(),t[1][i]=e.getVelocity()}),t}function tg(e,t,i,r){if("function"==typeof t){let[s,a]=tp(r);t=t(void 0!==i?i:e.custom,s,a)}if("string"==typeof t&&(t=e.variants&&e.variants[t]),"function"==typeof t){let[s,a]=tp(r);t=t(void 0!==i?i:e.custom,s,a)}return t}let tf=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class tv{scrapeMotionValuesFromProps(e,t,i){return{}}constructor({parent:e,props:t,presenceContext:i,reducedMotionConfig:r,blockInitialAnimation:s,visualState:a},n={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=ew,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let e=e0.now();this.renderScheduledAt<e&&(this.renderScheduledAt=e,ec.render(this.render,!1,!0))};const{latestValues:o,renderState:l}=a;this.latestValues=o,this.baseTarget={...o},this.initialValues=t.initial?{...o}:{},this.renderState=l,this.parent=e,this.props=t,this.presenceContext=i,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.options=n,this.blockInitialAnimation=!!s,this.isControllingVariants=tm(t),this.isVariantNode=th(t),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);const{willChange:d,...u}=this.scrapeMotionValuesFromProps(t,{},this);for(const e in u){const t=u[e];void 0!==o[e]&&eZ(t)&&t.set(o[e])}}mount(e){this.current=e,to.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((e,t)=>this.bindToMotionValue(t,e)),tn.current||function(){if(tn.current=!0,ts)if(window.matchMedia){let e=window.matchMedia("(prefers-reduced-motion)"),t=()=>ta.current=e.matches;e.addEventListener("change",t),t()}else ta.current=!1}(),this.shouldReduceMotion="never"!==this.reducedMotionConfig&&("always"===this.reducedMotionConfig||ta.current),this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){for(let e in this.projection&&this.projection.unmount(),em(this.notifyUpdate),em(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this),this.events)this.events[e].clear();for(let e in this.features){let t=this.features[e];t&&(t.unmount(),t.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,t){let i;this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)();let r=u.has(e);r&&this.onBindTransform&&this.onBindTransform();let s=t.on("change",t=>{this.latestValues[e]=t,this.props.onUpdate&&ec.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,e,t)),this.valueSubscriptions.set(e,()=>{s(),i&&i(),t.owner&&t.stop()})}sortNodePosition(e){return this.current&&this.sortInstanceNodePosition&&this.type===e.type?this.sortInstanceNodePosition(this.current,e.current):0}updateFeatures(){let e="animation";for(e in e7){let t=e7[e];if(!t)continue;let{isEnabled:i,Feature:r}=t;if(!this.features[e]&&r&&i(this.props)&&(this.features[e]=new r(this)),this.features[e]){let t=this.features[e];t.isMounted?t.update():(t.mount(),t.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):tr()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,t){this.latestValues[e]=t}update(e,t){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=t;for(let t=0;t<tf.length;t++){let i=tf[t];this.propEventSubscriptions[i]&&(this.propEventSubscriptions[i](),delete this.propEventSubscriptions[i]);let r=e["on"+i];r&&(this.propEventSubscriptions[i]=this.on(i,r))}this.prevMotionValues=function(e,t,i){for(let r in t){let s=t[r],a=i[r];if(eZ(s))e.addValue(r,s);else if(eZ(a))e.addValue(r,e4(s,{owner:e}));else if(a!==s)if(e.hasValue(r)){let t=e.getValue(r);!0===t.liveStyle?t.jump(s):t.hasAnimated||t.set(s)}else{let t=e.getStaticValue(r);e.addValue(r,e4(void 0!==t?t:s,{owner:e}))}}for(let r in i)void 0===t[r]&&e.removeValue(r);return t}(this,this.scrapeMotionValuesFromProps(e,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}
1addVariantChild(e){let t=this.getClosestVariantNode();if(t)return t.variantChildren&&t.variantChildren.add(e),()=>t.variantChildren.delete(e)}addValue(e,t){let i=this.values.get(e);t!==i&&(i&&this.removeValue(e),this.bindToMotionValue(e,t),this.values.set(e,t),this.latestValues[e]=t.get())}removeValue(e){this.values.delete(e);let t=this.valueSubscriptions.get(e);t&&(t(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,t){if(this.props.values&&this.props.values[e])return this.props.values[e];let i=this.values.get(e);return void 0===i&&void 0!==t&&(i=e4(null===t?void 0:t,{owner:this}),this.addValue(e,i)),i}readValue(e,t){let i=void 0===this.latestValues[e]&&this.current?this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options):this.latestValues[e];if(null!=i){let r,s;if("string"==typeof i&&(r=i,/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(r)||(s=i,/^0[^.\s]+$/u.test(s))))i=parseFloat(i);else{let r;r=i,!e6.find(X(r))&&eF.test(t)&&(i=eK(e,t))}this.setBaseTarget(e,eZ(i)?i.get():i)}return eZ(i)?i.get():i}setBaseTarget(e,t){this.baseTarget[e]=t}getBaseTarget(e){let t,{initial:i}=this.props;if("string"==typeof i||"object"==typeof i){let r=tg(this.props,i,this.presenceContext?.custom);r&&(t=r[e])}if(i&&void 0!==t)return t;let r=this.getBaseTargetFromProps(this.props,e);return void 0===r||eZ(r)?void 0!==this.initialValues[e]&&void 0===t?void 0:this.baseTarget[e]:r}on(e,t){return this.events[e]||(this.events[e]=new e3),this.events[e].add(t)}notify(e,...t){this.events[e]&&this.events[e].notify(...t)}scheduleRenderMicrotask(){e8.render(this.render)}}class tx extends tv{constructor(){super(...arguments),this.KeyframeResolver=eX}sortInstanceNodePosition(e,t){return 2&e.compareDocumentPosition(t)?1:-1}getBaseTargetFromProps(e,t){return e.style?e.style[t]:void 0}removeValueFromRenderState(e,{vars:t,style:i}){delete t[e],delete i[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:e}=this.props;eZ(e)&&(this.childSubscription=e.on("change",e=>{this.current&&(this.current.textContent=`${e}`)}))}}let tb=(e,t)=>t&&"number"==typeof e?t.transform(e):e,ty={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},tw=d.length;function tT(e,t,i){let{style:r,vars:s,transformOrigin:a}=e,n=!1,o=!1;for(let e in t){let i=t[e];if(u.has(e)){n=!0;continue}if(T(e)){s[e]=i;continue}{let t=tb(i,eH[e]);e.startsWith("origin")?(o=!0,a[e]=t):r[e]=t}}if(!t.transform&&(n||i?r.transform=function(e,t,i){let r="",s=!0;for(let a=0;a<tw;a++){let n=d[a],o=e[n];if(void 0===o)continue;let l=!0;if(!(l="number"==typeof o?o===+!!n.startsWith("scale"):0===parseFloat(o))||i){let e=tb(o,eH[n]);if(!l){s=!1;let t=ty[n]||n;r+=`${t}(${e}) `}i&&(t[n]=e)}}return r=r.trim(),i?r=i(t,s?"":r):s&&(r="none"),r}(t,e.transform,i):r.transform&&(r.transform="none")),o){let{originX:e="50%",originY:t="50%",originZ:i=0}=a;r.transformOrigin=`${e} ${t} ${i}`}}function tS(e,{style:t,vars:i},r,s){let a,n=e.style;for(a in t)n[a]=t[a];for(a in s?.applyProjectionStyles(n,r),i)n.setProperty(a,i[a])}let tP={};function tk(e,{layout:t,layoutId:i}){return u.has(e)||e.startsWith("origin")||(t||void 0!==i)&&(!!tP[e]||"opacity"===e)}function tL(e,t,i){let{style:r}=e,s={};for(let a in r)(eZ(r[a])||t.style&&eZ(t.style[a])||tk(a,e)||i?.getValue(a)?.liveStyle!==void 0)&&(s[a]=r[a]);return s}class tD extends tx{constructor(){super(...arguments),this.type="html",this.renderInstance=tS}readValueFromInstance(e,t){if(u.has(t))return this.projection?.isProjecting?x(t):((e,t)=>{let{transform:i="none"}=getComputedStyle(e);return b(i,t)})(e,t);{let i=window.getComputedStyle(e),r=(T(t)?i.getPropertyValue(t):i[t])||0;return"string"==typeof r?r.trim():r}}measureInstanceViewportBox(e,{transformPagePoint:t}){return I(e,t)}build(e,t,i){tT(e,t,i.transformTemplate)}scrapeMotionValuesFromProps(e,t,i){return tL(e,t,i)}}let tj=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),tM={offset:"stroke-dashoffset",array:"stroke-dasharray"},tA={offset:"strokeDashoffset",array:"strokeDasharray"};function tC(e,{attrX:t,attrY:i,attrScale:r,pathLength:s,pathSpacing:a=1,pathOffset:n=0,...o}
1,l,d,u){if(tT(e,o,d),l){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};let{attrs:c,style:m}=e;c.transform&&(m.transform=c.transform,delete c.transform),(m.transform||c.transformOrigin)&&(m.transformOrigin=c.transformOrigin??"50% 50%",delete c.transformOrigin),m.transform&&(m.transformBox=u?.transformBox??"fill-box",delete c.transformBox),void 0!==t&&(c.x=t),void 0!==i&&(c.y=i),void 0!==r&&(c.scale=r),void 0!==s&&function(e,t,i=1,r=0,s=!0){e.pathLength=1;let a=s?tM:tA;e[a.offset]=$.transform(-r);let n=$.transform(t),o=$.transform(i);e[a.array]=`${n} ${o}`}(c,s,a,n,!1)}let tE=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),t_=e=>"string"==typeof e&&"svg"===e.toLowerCase();function tN(e,t,i){let r=tL(e,t,i);for(let i in e)(eZ(e[i])||eZ(t[i]))&&(r[-1!==d.indexOf(i)?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i]=e[i]);return r}class tB extends tx{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=tr}getBaseTargetFromProps(e,t){return e[t]}readValueFromInstance(e,t){if(u.has(t)){let e=eJ(t);return e&&e.default||0}return t=tE.has(t)?t:tj(t),e.getAttribute(t)}scrapeMotionValuesFromProps(e,t,i){return tN(e,t,i)}build(e,t,i){tC(e,t,this.isSVGTag,i.transformTemplate,i.style)}renderInstance(e,t,i,r){for(let i in tS(e,t,void 0,r),t.attrs)e.setAttribute(tE.has(i)?i:tj(i),t.attrs[i])}mount(e){this.isSVGTag=t_(e.tagName),super.mount(e)}}let tV=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function tz(e){if("string"!=typeof e||e.includes("-"));else if(tV.indexOf(e)>-1||/[A-Z]/u.test(e))return!0;return!1}let tI=(0,o.createContext)({}),tR=(0,o.createContext)({strict:!1}),tF=(0,o.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),tG=(0,o.createContext)({});function tO(e){return Array.isArray(e)?e.join(" "):e}let tU=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function tq(e,t,i){for(let r in t)eZ(t[r])||tk(r,i)||(e[r]=t[r])}let tW=()=>({...tU(),attrs:{}}),tH=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function t$(e){return e.startsWith("while")||e.startsWith("drag")&&"draggable"!==e||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||tH.has(e)}let tJ=e=>!t$(e);try{s=(()=>{let e=Error("Cannot find module '@emotion/is-prop-valid'");throw e.code="MODULE_NOT_FOUND",e})().default,"function"==typeof s&&(tJ=e=>e.startsWith("on")?!t$(e):s(e))}catch{}let tK=(0,o.createContext)(null);function tY(e){return eZ(e)?e.get():e}let tX=e=>(t,i)=>{let r,s=(0,o.useContext)(tG),a=(0,o.useContext)(tK),n=()=>(function({scrapeMotionValuesFromProps:e,createRenderState:t},i,r,s){return{latestValues:function(e,t,i,r){let s={},a=r(e,{});
1for(let e in a)s[e]=tY(a[e]);let{initial:n,animate:o}=e,l=tm(e),d=th(e);t&&d&&!l&&!1!==e.inherit&&(void 0===n&&(n=t.initial),void 0===o&&(o=t.animate));let u=!!i&&!1===i.initial,c=(u=u||!1===n)?o:n;if(c&&"boolean"!=typeof c&&!tl(c)){let t=Array.isArray(c)?c:[c];for(let i=0;i<t.length;i++){let r=tg(e,t[i]);if(r){let{transitionEnd:e,transition:t,...i}=r;for(let e in i){let t=i[e];if(Array.isArray(t)){let e=u?t.length-1:0;t=t[e]}null!==t&&(s[e]=t)}for(let t in e)s[t]=e[t]}}}return s}(i,r,s,e),renderState:t()}})(e,t,s,a);return i?n():(null===(r=(0,o.useRef)(null)).current&&(r.current=n()),r.current)},tZ=tX({scrapeMotionValuesFromProps:tL,createRenderState:tU}),tQ=tX({scrapeMotionValuesFromProps:tN,createRenderState:tW}),t0=Symbol.for("motionComponentSymbol");function t1(e){return e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,"current")}let t2="data-"+tj("framerAppearId"),t3=(0,o.createContext)({}),t5=ts?o.useLayoutEffect:o.useEffect;function t4(e,{forwardMotionProps:t=!1}={},i,r){i&&function(e){for(let t in e)e7[t]={...e7[t],...e[t]}}(i);let s=tz(e)?tQ:tZ;function n(i,n){var l;let d,u={...(0,o.useContext)(tF),...i,layoutId:function({layoutId:e}){let t=(0,o.useContext)(tI).id;return t&&void 0!==e?t+"-"+e:e}(i)},{isStatic:c}=u,m=function(e){let{initial:t,animate:i}=function(e,t){if(tm(e)){let{initial:t,animate:i}=e;return{initial:!1===t||td(t)?t:void 0,animate:td(i)?i:void 0}}return!1!==e.inherit?t:{}}(e,(0,o.useContext)(tG));return(0,o.useMemo)(()=>({initial:t,animate:i}),[tO(t),tO(i)])}(i),h=s(i,c);if(!c&&ts){(0,o.useContext)(tR).strict;let t=function(e){let{drag:t,layout:i}=e7;if(!t&&!i)return{};let r={...t,...i};return{MeasureLayout:t?.isEnabled(e)||i?.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}(u);d=t.MeasureLayout,m.visualElement=function(e,t,i,r,s){let{visualElement:a}=(0,o.useContext)(tG),n=(0,o.useContext)(tR),l=(0,o.useContext)(tK),d=(0,o.useContext)(tF).reducedMotion,u=(0,o.useRef)(null);r=r||n.renderer,!u.current&&r&&(u.current=r(e,{visualState:t,parent:a,props:i,presenceContext:l,blockInitialAnimation:!!l&&!1===l.initial,reducedMotionConfig:d}));let c=u.current,m=(0,o.useContext)(t3);c&&!c.projection&&s&&("html"===c.type||"svg"===c.type)&&function(e,t,i,r){let{layoutId:s,layout:a,drag:n,dragConstraints:o,layoutScroll:l,layoutRoot:d,layoutCrossfade:u}=t;e.projection=new i(e.latestValues,t["data-framer-portal-id"]?void 0:function e(t){if(t)return!1!==t.options.allowProjection?t.projection:e(t.parent)}(e.parent)),e.projection.setOptions({layoutId:s,layout:a,alwaysMeasureLayout:!!n||o&&t1(o),visualElement:e,animationType:"string"==typeof a?a:"both",initialPromotionConfig:r,crossfade:u,layoutScroll:l,layoutRoot:d})}(u.current,i,s,m);let h=(0,o.useRef)(!1);(0,o.useInsertionEffect)(()=>{c&&h.current&&c.update(i,l)});let p=i[t2],g=(0,o.useRef)(!!p&&!window.MotionHandoffIsComplete?.(p)&&window.MotionHasOptimisedAnimation?.(p));return t5(()=>{c&&(h.current=!0,window.MotionIsMounted=!0,c.updateFeatures(),c.scheduleRenderMicrotask(),g.current&&c.animationState&&c.animationState.animateChanges())}),(0,o.useEffect)(()=>{c&&(!g.current&&c.animationState&&c.animationState.animateChanges(),g.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(p)}),g.current=!1),c.enteringChildren=void 0)}),c}(e,h,u,r,t.ProjectionNode)}return(0,a.jsxs)(tG.Provider,{value:m,children:[d&&m.visualElement?(0,a.jsx)(d,{visualElement:m.visualElement,...u}):null,function(e,t,i,{latestValues:r},s,a=!1){let n=(tz(e)?function(e,t,i,r){let s=(0,o.useMemo)(()=>{let i=tW();return tC(i,t,t_(r),e.transformTemplate,e.style),{...i.attrs,style:{...i.style}}},[t]);if(e.style){let t={};tq(t,e.style,e),s.style={...t,...s.style}}return s}:function(e,t){let i,r,s={},a=(i=e.style||{},tq(r={},i,e),Object.assign(r,function({transformTemplate:e},t){return(0,o.useMemo)(()=>{let i=tU();return tT(i,t,e),Object.assign({},i.vars,i.style)},[t])}(e,t)),r);return e.drag&&!1!==e.dragListener&&(s.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=!0===e.drag?"none":`pan-${"x"===e.drag?"y":"x"}
1`),void 0===e.tabIndex&&(e.onTap||e.onTapStart||e.whileTap)&&(s.tabIndex=0),s.style=a,s})(t,r,s,e),l=function(e,t,i){let r={};for(let s in e)("values"!==s||"object"!=typeof e.values)&&(tJ(s)||!0===i&&t$(s)||!t&&!t$(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}(t,"string"==typeof e,a),d=e!==o.Fragment?{...l,...n,ref:i}:{},{children:u}=t,c=(0,o.useMemo)(()=>eZ(u)?u.get():u,[u]);return(0,o.createElement)(e,{...d,children:c})}(e,i,(l=m.visualElement,(0,o.useCallback)(e=>{e&&h.onMount&&h.onMount(e),l&&(e?l.mount(e):l.unmount()),n&&("function"==typeof n?n(e):t1(n)&&(n.current=e))},[l])),h,c,t)]})}n.displayName=`motion.${"string"==typeof e?e:`create(${e.displayName??e.name??""})`}`;let l=(0,o.forwardRef)(n);return l[t0]=e,l}function t6(e,t,i){let r=e.getProps();return tg(r,t,void 0!==i?i:r.custom,e)}function t8(e,t){return e?.[t]??e?.default??e}let t9=e=>Array.isArray(e);function t7(e,t){let i=e.getValue("willChange");if(eZ(i)&&i.add)return i.add(t);if(!i&&el.WillChange){let i=new el.WillChange("auto");e.addValue("willChange",i),i.add(t)}}function ie(e){e.duration=0,e.type}let it=(e,t)=>i=>t(e(i)),ii=(...e)=>e.reduce(it),ir=e=>1e3*e,is={layout:0,mainThread:0,waapi:0};function ia(e,t,i){return(i<0&&(i+=1),i>1&&(i-=1),i<1/6)?e+(t-e)*6*i:i<.5?t:i<2/3?e+(t-e)*(2/3-i)*6:e}function io(e,t){return i=>i>0?t:e}let il=(e,t,i)=>{let r=e*e,s=i*(t*t-r)+r;return s<0?0:Math.sqrt(s)},id=[eM,ej,eA];function iu(e){let t=id.find(t=>t.test(e));if(ee(!!t,`'${e}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!t)return!1;let i=t.parse(e);return t===eA&&(i=function({hue:e,saturation:t,lightness:i,alpha:r}){e/=360,i/=100;let s=0,a=0,n=0;if(t/=100){let r=i<.5?i*(1+t):i+t-i*t,o=2*i-r;s=ia(o,r,e+1/3),a=ia(o,r,e),n=ia(o,r,e-1/3)}else s=a=n=i;return{red:Math.round(255*s),green:Math.round(255*a),blue:Math.round(255*n),alpha:r}}(i)),i}let ic=(e,t)=>{let i=iu(e),r=iu(t);if(!i||!r)return io(e,t);let s={...i};return e=>(s.red=il(i.red,r.red,e),s.green=il(i.green,r.green,e),s.blue=il(i.blue,r.blue,e),s.alpha=D(i.alpha,r.alpha,e),ej.transform(s))},im=new Set(["none","hidden"]);function ih(e,t){return i=>D(e,t,i)}function ip(e){return"number"==typeof e?ih:"string"==typeof e?P(e)?io:eC.test(e)?ic:ix:Array.isArray(e)?ig:"object"==typeof e?eC.test(e)?ic:iv:io}function ig(e,t){let i=[...e],r=i.length,s=e.map((e,i)=>ip(e)(e,t[i]));return e=>{for(let t=0;t<r;t++)i[t]=s[t](e);return i}}function iv(e,t){let i={...e,...t},r={};for(let s in i)void 0!==e[s]&&void 0!==t[s]&&(r[s]=ip(e[s])(e[s],t[s]));return e=>{for(let t in r)i[t]=r[t](e);return i}}let ix=(e,t)=>{let i=eF.createTransformer(t),r=eV(e),s=eV(t);if(!(r.indexes.var.length===s.indexes.var.length&&r.indexes.color.length===s.indexes.color.length&&r.indexes.number.length>=s.indexes.number.length))return ee(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),io(e,t);if(im.has(e)&&!s.values.length||im.has(t)&&!r.values.length)return im.has(e)?i=>i<=0?e:t:i=>i>=1?t:e;return ii(ig(function(e,t){let i=[],r={color:0,var:0,number:0};for(let s=0;s<t.values.length;s++){let a=t.types[s],n=e.indexes[a][r[a]],o=e.values[n]??0;i[s]=o,r[a]++}return i}(r,s),s.values),i)};function ib(e,t,i){return"number"==typeof e&&"number"==typeof t&&"number"==typeof i?D(e,t,i):ip(e)(e,t)}let iy=e=>{let t=({timestamp:t})=>e(t);return{start:(e=!0)=>ec.update(t,e),stop:()=>em(t),now:()=>eh.isProcessing?eh.timestamp:e0.now()}},iw=(e,t,i=10)=>{let r="",s=Math.max(Math.round(t/i),2);for(let t=0;t<s;t++)r+=Math.round(1e4*e(t/(s-1)))/1e4+", ";return`linear(${r.substring(0,r.length-2)})`};function iT(e){let t=0,i=e.next(t);for(;!i.done&&t<2e4;)t+=50,i=e.next(t);return t>=2e4?1/0:t}function iS(e,t,i){var r,s;let a=Math.max(t-5,0);return r=i-e(a),(s=t-a)?1e3/s*r:0}let iP=.01,ik=2,iL=.005,iD=.5;function ij(e,t){return e*Math.sqrt(1-t*t)}let iM=["duration","bounce"],iA=["stiffness","damping","mass"];function iC(e,t){return t.some(t=>void 0!==e[t])}function iE(e=.3,t=.3){let i,r="object"!=typeof e?{visualDuration:e,keyframes:[0,1],bounce:t}:e,{restSpeed:s,restDelta:a}=r,n=r.keyframes[0],o=r.keyframes[r.keyframes.length-1],l={done:!1,value:n},{stiffness:d,damping:u,mass:c,duration:m,velocity:h,isResolvedFromDuration:p}=function(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!iC(e,iA)&&iC(e,iM))if(e.visualDuration){let i=2*Math.PI/(1.2*e.visualDuration),r=i*i,s=2*F(.05,1,1-(e.bounce||0))*Math.sqrt(r);t={...t,mass:1,stiffness:r,damping:s}}else{let i=function({duration:e=800,bounce:t=.3,velocity:i=0,mass:r=1}){let s,a;ee(e<=ir(10),"Spring duration must be 10 seconds or less","spring-duration-limit");let n=1-t;n=F(.05,1,n),e=F(.01,10,e/1e3),n<1?(s=t=>{let r=t*n,s=r*e;return .001-(r-i)/ij(t,n)*Math.exp(-s)},a=t=>{let r=t*n*e,a=Math.pow(n,2)*Math.pow(t,2)*e,o=Math.exp(-r),l=ij(Math.pow(t,2),n);return(r*i+i-a)*o*(-s(t)+.001>0?-1:1)/l}):(s=t=>-.001+Math.exp(-t*e)*((t-i)*e+1),a=t=>e*e*(i-t)*Math.exp(-t*e));let o=function(e,t,i){let r=i;for(let i=1;i<12;i++)r-=e(r)/t(r);return r}(s,a,5/e);if(e=ir(e),isNaN(o))return{stiffness:100,damping:10,duration:e};{let t=Math.pow(o,2)*r;return{stiffness:t,damping:2*n*Math.sqrt(r*t),duration:e}}}(e);(t={...t,...i,mass:1}).isResolvedFromDuration=!0}return t}({...r,velocity:-((r.velocity||0)/1e3)}),g=h||0,f=u/(2*Math.sqrt(d*c)),v=o-n,x=Math.sqrt(d/c)/1e3,b=5>Math.abs(v);if(s||(s=b?iP:ik),a||(a=b?iL:iD),f<1){let e=ij(x,f);i=t=>o-Math.exp(-f*x*t)*((g+f*x*v)/e*Math.sin(e*t)+v*Math.cos(e*t))}else if(1===f)i=e=>
1o-Math.exp(-x*e)*(v+(g+x*v)*e);else{let e=x*Math.sqrt(f*f-1);i=t=>{let i=Math.exp(-f*x*t),r=Math.min(e*t,300);return o-i*((g+f*x*v)*Math.sinh(r)+e*v*Math.cosh(r))/e}}let y={calculatedDuration:p&&m||null,next:e=>{let t=i(e);if(p)l.done=e>=m;else{let r=0===e?g:0;f<1&&(r=0===e?ir(g):iS(i,e,t));let n=Math.abs(o-t)<=a;l.done=Math.abs(r)<=s&&n}return l.value=l.done?o:t,l},toString:()=>{let e=Math.min(iT(y),2e4),t=iw(t=>y.next(e*t).value,e,30);return e+"ms "+t},toTransition:()=>{}};return y}function i_({keyframes:e,velocity:t=0,power:i=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:a=500,modifyTarget:n,min:o,max:l,restDelta:d=.5,restSpeed:u}){let c,m,h=e[0],p={done:!1,value:h},g=i*t,f=h+g,v=void 0===n?f:n(f);v!==f&&(g=v-h);let x=e=>-g*Math.exp(-e/r),b=e=>v+x(e),y=e=>{let t=x(e),i=b(e);p.done=Math.abs(t)<=d,p.value=p.done?v:i},w=e=>{let t;if(t=p.value,void 0!==o&&t<o||void 0!==l&&t>l){var i;c=e,m=iE({keyframes:[p.value,(i=p.value,void 0===o?l:void 0===l||Math.abs(o-i)<Math.abs(l-i)?o:l)],velocity:iS(b,e,p.value),damping:s,stiffness:a,restDelta:d,restSpeed:u})}};return w(0),{calculatedDuration:null,next:e=>{let t=!1;return(m||void 0!==c||(t=!0,y(e),w(e)),void 0!==c&&e>=c)?m.next(e-c):(t||y(e),p)}}}iE.applyToOptions=e=>{let t=function(e,t=100,i){let r=i({...e,keyframes:[0,t]}),s=Math.min(iT(r),2e4);return{type:"keyframes",ease:e=>r.next(s*e).value/t,duration:s/1e3}}(e,100,iE);return e.ease=t.ease,e.duration=ir(t.duration),e.type="keyframes",e};let iN=(e,t,i)=>(((1-3*i+3*t)*e+(3*i-6*t))*e+3*t)*e;function iB(e,t,i,r){return e===t&&i===r?eo:s=>0===s||1===s?s:iN(function(e,t,i,r,s){let a,n,o=0;do(a=iN(n=t+(i-t)/2,r,s)-e)>0?i=n:t=n;while(Math.abs(a)>1e-7&&++o<12)return n}(s,0,1,e,i),t,r)}let iV=iB(.42,0,1,1),iz=iB(0,0,.58,1),iI=iB(.42,0,.58,1),iR=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,iF=e=>t=>1-e(1-t),iG=iB(.33,1.53,.69,.99),iO=iF(iG),iU=iR(iO),iq=e=>(e*=2)<1?.5*iO(e):.5*(2-Math.pow(2,-10*(e-1))),iW=e=>1-Math.sin(Math.acos(e)),iH=iF(iW),i$=iR(iW),iJ=e=>Array.isArray(e)&&"number"==typeof e[0],iK={linear:eo,easeIn:iV,easeInOut:iI,easeOut:iz,circIn:iW,circInOut:i$,circOut:iH,backIn:iO,backInOut:iU,backOut:iG,anticipate:iq},iY=e=>{if(iJ(e)){et(4===e.length,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[t,i,r,s]=e;return iB(t,i,r,s)}return"string"==typeof e?(et(void 0!==iK[e],`Invalid easing type '${e}'`,"invalid-easing-type"),iK[e]):e},iX=(e,t,i)=>{let r=t-e;return 0===r?1:(i-e)/r};function iZ({duration:e=300,keyframes:t,times:i,ease:r="easeInOut"}){var s;let a,n=Array.isArray(r)&&"number"!=typeof r[0]?r.map(iY):iY(r),o={done:!1,value:t[0]},l=function(e,t,{clamp:i=!0,ease:r,mixer:s}={}){let a=e.length;if(et(a===t.length,"Both input and output ranges must be the same length","range-length"),1===a)return()=>t[0];if(2===a&&t[0]===t[1])return()=>t[1];let n=e[0]===e[1];e[0]>e[a-1]&&(e=[...e].reverse(),t=[...t].reverse());let o=function(e,t,i){let r=[],s=i||el.mix||ib,a=e.length-1;for(let i=0;i<a;i++){let a=s(e[i],e[i+1]);t&&(a=ii(Array.isArray(t)?t[i]||eo:t,a)),r.push(a)}return r}(t,r,s),l=o.length,d=i=>{if(n&&i<e[0])return t[0];let r=0;if(l>1)for(;r<e.length-2&&!(i<e[r+1]);r++);let s=iX(e[r],e[r+1],i);return o[r](s)};return i?t=>d(F(e[0],e[a-1],t)):d}((s=i&&i.length===t.length?i:(!function(e,t){let i=e[e.length-1];for(let r=1;r<=t;r++){let s=iX(0,t,r);e.push(D(i,1,s))}}(a=[0],t.length-1),a),s.map(t=>t*e)),t,{ease:Array.isArray(n)?n:t.map(()=>n||iI).splice(0,t.length-1)});return{calculatedDuration:e,next:t=>(o.value=l(t),o.done=t>=e,o)}}let iQ=e=>null!==e;function i0(e,{repeat:t,repeatType:i="loop"},r,s=1){let a=e.filter(iQ),n=s<0||t&&"loop"!==i&&t%2==1?0:a.length-1;return n&&void 0!==r?r:a[n]}let i1={decay:i_,inertia:i_,tween:iZ,keyframes:iZ,spring:iE};function i2(e){"string"==typeof e.type&&(e.type=i1[e.type])}class i3{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,t){return this.finished.then(e,t)}}let i5=e=>e/100;class i4 extends i3{constructor(e){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{let{motionValue:e}=this.options;e&&e.updatedAt!==e0.now()&&this.tick(e0.now()),this.isStopped=!0,"idle"!==this.state&&(this.teardown(),this.options.onStop?.())},is.mainThread++,this.options=e,this.initAnimation(),this.play(),!1===e.autoplay&&this.pause()}initAnimation(){let{options:e}=this;i2(e);let{type:t=iZ,repeat:i=0,repeatDelay:r=0,repeatType:s,velocity:a=0}=e,{keyframes:n}=e,o=t||iZ;o!==iZ&&"number"!=typeof n[0]&&(this.mixKeyframes=ii(i5,ib(n[0],n[1])),n=[0,100]);let l=o({...e,keyframes:n});"mirror"===s&&(this.mirroredGenerator=o({...e,keyframes:[...n].reverse(),velocity:-a})),null===l.calculatedDuration&&(l.calculatedDuration=iT(l));let{calculatedDuration:d}=l;this.calculatedDuration=d,this.resolvedDuration=d+r,this.totalDuration=this.resolvedDuration*(i+1)-r,this.generator=l}updateTime(e){let t=Math.round(e-this.startTime)*this.playbackSpeed;null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=t}tick(e,t=!1){let{generator:i,totalDuration:r,mixKeyframes:s,mirroredGenerator:a,resolvedDuration:n,calculatedDuration:o}=this;if(null===this.startTime)return i.next(0);let{delay:l=0,keyframes:d,repeat:u,repeatType:c,repeatDelay:m,type:h,onUpdate:p,finalKeyframe:g}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-r/this.speed,this.startTime)),t?this.currentTime=e:this.updateTime(e);let f=this.currentTime-l*(this.playbackSpeed>=0?1:-1),v=this.playbackSpeed>=0?f<0:f>r;this.currentTime=Math.max(f,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=r);let x=this.currentTime,b=i;if(u){let e=Math.min(this.currentTime,r)/n,t=Math.floor(e),i=e%1;!i&&e>=1&&(i=1),1===i&&t--,(t=Math.min(t,u+1))%2&&("reverse"===c?(i=1-i,m&&(i-=m/n)):"mirror"===c&&(b=a)),x=F(0,1,i)*n}let y=v?{done:!1,value:d[0]}:b.next(x);s&&(y.value=s(y.value));let{done:w}=y;v||null===o||(w=this.playbackSpeed>=0?this.currentTime>=r:this.currentTime<=0);let T=null===this.holdTime&&("finished"===this.state||"running"===this.state&&w);return T&&h!==i_&&(y.value=i0(d,this.options,g,this.speed)),p&&p(y.value),T&&this.finish(),y}then(e,t){return this.finished.then(e,t)}get duration(){return this.calculatedDuration/1e3}get time(){return this.currentTime/1e3}set time(e){e=ir(e),this.currentTime=e,null===this.startTime||null!==this.holdTime||0===this.playbackSpeed?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(e){this.updateTime(e0.now());let t=this.playbackSpeed!==e;this.playbackSpeed=e,t&&(this.time=this.currentTime/1e3)}play(){if(this.isStopped)return;let{driver:e=iy,startTime:t}=this.options;this.driver||(this.driver=e(e=>this.tick(e))),this.options.onPlay?.();let i=this.driver.now();"finished"===this.state?(this.updateFinished(),this.startTime=i):null!==this.holdTime?this.startTime=i-this.holdTime:this.startTime||(this.startTime=t??i),"finished"===this.state&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(e0.now()),this.holdTime=this.currentTime}complete(){"running"!==this.state&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null,is.mainThread--}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),e.observe(this)}}function i6(e){let t;return()=>(void 0===t&&(t=e()),t)}let i8=i6(()=>void 0!==window.ScrollTimeline),i9={},i7=(i=i6(()=>{try{document.createElement("div").animate({opacity:0}
1,{easing:"linear(0, 1)"})}catch(e){return!1}return!0}),()=>i9.linearEasing??i()),re=([e,t,i,r])=>`cubic-bezier(${e}, ${t}, ${i}, ${r})`,rt={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:re([0,.65,.55,1]),circOut:re([.55,0,1,.45]),backIn:re([.31,.01,.66,-.59]),backOut:re([.33,1.53,.69,.99])};function ri(e){return"function"==typeof e&&"applyToOptions"in e}class rr extends i3{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,!e)return;const{element:t,name:i,keyframes:r,pseudoElement:s,allowFlatten:a=!1,finalKeyframe:n,onComplete:o}=e;this.isPseudoElement=!!s,this.allowFlatten=a,this.options=e,et("string"!=typeof e.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");const l=function({type:e,...t}){return ri(e)&&i7()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}(e);this.animation=function(e,t,i,{delay:r=0,duration:s=300,repeat:a=0,repeatType:n="loop",ease:o="easeOut",times:l}={},d){let u={[t]:i};l&&(u.offset=l);let c=function e(t,i){if(t)return"function"==typeof t?i7()?iw(t,i):"ease-out":iJ(t)?re(t):Array.isArray(t)?t.map(t=>e(t,i)||rt.easeOut):rt[t]}(o,s);Array.isArray(c)&&(u.easing=c);let m={delay:r,duration:s,easing:Array.isArray(c)?"linear":c,fill:"both",iterations:a+1,direction:"reverse"===n?"alternate":"normal"};d&&(m.pseudoElement=d);let h=e.animate(u,m);return h}(t,i,r,l,s),!1===l.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!s){let e=i0(r,this.options,n,this.speed);this.updateMotionValue?this.updateMotionValue(e):i.startsWith("--")?t.style.setProperty(i,e):t.style[i]=e,this.animation.cancel()}o?.(),this.notifyFinished()}}play(){this.isStopped||(this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch(e){}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:e}=this;"idle"!==e&&"finished"!==e&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){return Number(this.animation.effect?.getComputedTiming?.().duration||0)/1e3}get time(){return(Number(this.animation.currentTime)||0)/1e3}set time(e){this.finishedTime=null,this.animation.currentTime=ir(e)}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){return Number(this.animation.startTime)}set startTime(e){this.animation.startTime=e}attachTimeline({timeline:e,observe:t}){return(this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,e&&i8())?(this.animation.timeline=e,eo):t(this)}}let rs={anticipate:iq,backInOut:iU,circInOut:i$};class ra extends rr{constructor(e){!function(e){"string"==typeof e.ease&&e.ease in rs&&(e.ease=rs[e.ease])}(e),i2(e),super(e),e.startTime&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){let{motionValue:t,onUpdate:i,onComplete:r,element:s,...a}=this.options;if(!t)return;if(void 0!==e)return void t.set(e);let n=new i4({...a,autoplay:!1}),o=ir(this.finishedTime??this.time);t.setWithVelocity(n.sample(o-10).value,n.sample(o).value,10),n.stop()}}let rn=(e,t)=>"zIndex"!==t&&!!("number"==typeof e||Array.isArray(e)||"string"==typeof e&&(eF.test(e)||"0"===e)&&!e.startsWith("url(")),ro=new Set(["opacity","clipPath","filter","transform"]),rl=i6(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));class rd extends i3{constructor({autoplay:e=!0,delay:t=0,type:i="keyframes",repeat:r=0,repeatDelay:s=0,repeatType:a="loop",keyframes:n,name:o,motionValue:l,element:d,...u}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=e0.now();const c={autoplay:e,delay:t,type:i,repeat:r,repeatDelay:s,repeatType:a,name:o,motionValue:l,element:d,...u},m=d?.KeyframeResolver||ew;this.keyframeResolver=new m(n,(e,t,i)=>this.onKeyframesResolved(e,t,c,!i),o,l,d),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,t,i,r){this.keyframeResolver=void 0;let{name:s,type:a,velocity:n,delay:o,isHandoff:l,onUpdate:d}=i;this.resolvedAt=e0.now(),!function(e,t,i,r){let s=e[0];if(null===s)return!1;if("display"===t||"visibility"===t)return!0;let a=e[e.length-1],n=rn(s,t),o=rn(a,t);return ee(n===o,`You are trying to animate ${t} from "${s}" to "${a}". "${n?a:s}" is not an animatable value.`,"value-not-animatable"),!!n&&!!o&&(function(e){let t=e[0];if(1===e.length)return!0;for(let i=0;i<e.length;i++)if(e[i]!==t)return!0}(e)||("spring"===i||ri(i))&&r)}(e,s,a,n)&&((el.instantAnimations||!o)&&d?.(i0(e,i,t)),e[0]=e[e.length-1],ie(i),i.repeat=0);let u={startTime:r?this.resolvedAt&&this.resolvedAt-this.createdAt>40?this.resolvedAt:this.createdAt:void 0,finalKeyframe:t,...i,keyframes:e},c=!l&&function(e){let{motionValue:t,name:i,repeatDelay:r,repeatType:s,damping:a,type:n}=e;if(!(t?.owner?.current instanceof HTMLElement))return!1;
1let{onUpdate:o,transformTemplate:l}=t.owner.getProps();return rl()&&i&&ro.has(i)&&("transform"!==i||!l)&&!o&&!r&&"mirror"!==s&&0!==a&&"inertia"!==n}(u)?new ra({...u,element:u.motionValue.owner.current}):new i4(u);c.finished.then(()=>this.notifyFinished()).catch(eo),this.pendingTimeline&&(this.stopTimeline=c.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=c}get finished(){return this._animation?this.animation.finished:this._finished}then(e,t){return this.finished.finally(e).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),ex=!0,ey(),eb(),ex=!1),this._animation}get duration(){return this.animation.duration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}let ru=e=>null!==e,rc={type:"spring",stiffness:500,damping:25,restSpeed:10},rm={type:"keyframes",duration:.8},rh={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},rp=(e,t,i,r={},s,a)=>n=>{let o=t8(r,e)||{},l=o.delay||r.delay||0,{elapsed:d=0}=r;d-=ir(l);let c={keyframes:Array.isArray(i)?i:[null,i],ease:"easeOut",velocity:t.getVelocity(),...o,delay:-d,onUpdate:e=>{t.set(e),o.onUpdate&&o.onUpdate(e)},onComplete:()=>{n(),o.onComplete&&o.onComplete()},name:e,motionValue:t,element:a?void 0:s};!function({when:e,delay:t,delayChildren:i,staggerChildren:r,staggerDirection:s,repeat:a,repeatType:n,repeatDelay:o,from:l,elapsed:d,...u}){return!!Object.keys(u).length}(o)&&Object.assign(c,((e,{keyframes:t})=>t.length>2?rm:u.has(e)?e.startsWith("scale")?{type:"spring",stiffness:550,damping:0===t[1]?2*Math.sqrt(550):30,restSpeed:10}:rc:rh)(e,c)),c.duration&&(c.duration=ir(c.duration)),c.repeatDelay&&(c.repeatDelay=ir(c.repeatDelay)),void 0!==c.from&&(c.keyframes[0]=c.from);let m=!1;if(!1!==c.type&&(0!==c.duration||c.repeatDelay)||(ie(c),0===c.delay&&(m=!0)),(el.instantAnimations||el.skipAnimations)&&(m=!0,ie(c),c.delay=0),c.allowFlatten=!o.type&&!o.ease,m&&!a&&void 0!==t.get()){let e=function(e,{repeat:t,repeatType:i="loop"},r){let s=e.filter(ru),a=t&&"loop"!==i&&t%2==1?0:s.length-1;return s[a]}(c.keyframes,o);if(void 0!==e)return void ec.update(()=>{c.onUpdate(e),c.onComplete()})}return o.isSync?new i4(c):new rd(c)};function rg(e,t,{delay:i=0,transitionOverride:r,type:s}={}){let{transition:a=e.getDefaultTransition(),transitionEnd:n,...o}=t;r&&(a=r);let l=[],d=s&&e.animationState&&e.animationState.getState()[s];for(let t in o){let r=e.getValue(t,e.latestValues[t]??null),s=o[t];if(void 0===s||d&&function({protectedKeys:e,needsAnimating:t},i){let r=e.hasOwnProperty(i)&&!0!==t[i];return t[i]=!1,r}(d,t))continue;let n={delay:i,...t8(a||{},t)},u=r.get();if(void 0!==u&&!r.isAnimating&&!Array.isArray(s)&&s===u&&!n.velocity)continue;let c=!1;if(window.MotionHandoffAnimation){let i=e.props[t2];if(i){let e=window.MotionHandoffAnimation(i,t,ec);null!==e&&(n.startTime=e,c=!0)}}t7(e,t),r.start(rp(t,r,s,e.shouldReduceMotion&&R.has(t)?{type:!1}:n,e,c));let m=r.animation;m&&l.push(m)}return n&&Promise.all(l).then(()=>{ec.update(()=>{n&&function(e,t){let{transitionEnd:i={},transition:r={},...s}=t6(e,t)||{};for(let t in s={...s,...i}){var a;let i=t9(a=s[t])?a[a.length-1]||0:a;e.hasValue(t)?e.getValue(t).set(i):e.addValue(t,e4(i))}}(e,n)})}),l}function rf(e,t,i,r=0,s=1){let a=Array.from(e).sort((e,t)=>e.sortNodePosition(t)).indexOf(t),n=e.size,o=(n-1)*r;return"function"==typeof i?i(a,n):1===s?a*r:o-a*r}function rv(e,t,i={}){let r=t6(e,t,"exit"===i.type?e.presenceContext?.custom:void 0),{transition:s=e.getDefaultTransition()||{}}=r||{};i.transitionOverride&&(s=i.transitionOverride);let a=r?()=>Promise.all(rg(e,r,i)):()=>Promise.resolve(),n=e.variantChildren&&e.variantChildren.size?(r=0)=>{let{delayChildren:a=0,staggerChildren:n,staggerDirection:o}=s;return function(e,t,i=0,r=0,s=0,a=1,n){let o=[];for(let l of e.variantChildren)l.notify("AnimationStart",t),o.push(rv(l,t,{...n,delay:i+("function"==typeof r?0:r)+rf(e.variantChildren,l,r,s,a)}).then(()=>l.notify("AnimationComplete",t)));return Promise.all(o)}(e,t,r,a,n,o,i)}:()=>Promise.resolve(),{when:o}=s;if(!o)return Promise.all([a(),n(i.delay)]);{let[e,t]="beforeChildren"===o?[a,n]:[n,a];return e().then(()=>t())}}function rx(e,t){if(!Array.isArray(t))return!1;let i=t.length;if(i!==e.length)return!1;for(let r=0;r<i;r++)if(t[r]!==e[r])return!1;return!0}let rb=tc.length,ry=[...tu].reverse(),rw=tu.length;function rT(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function rS(){return{animate:rT(!0),whileInView:rT(),whileHover:rT(),whileTap:rT(),whileDrag:rT(),whileFocus:rT(),exit:rT()}}class rP{constructor(e){this.isMounted=!1,this.node=e}update(){}}let rk=0,rL={x:!1,y:!1};function rD(e,t,i,r={passive:!0}){return e.addEventListener(t,i,r),()=>e.removeEventListener(t,i)}let rj=e=>
1"mouse"===e.pointerType?"number"!=typeof e.button||e.button<=0:!1!==e.isPrimary;function rM(e){return{point:{x:e.pageX,y:e.pageY}}}function rA(e,t,i,r){return rD(e,t,e=>rj(e)&&i(e,rM(e)),r)}function rC(e){return e.max-e.min}function rE(e,t,i,r=.5){e.origin=r,e.originPoint=D(t.min,t.max,e.origin),e.scale=rC(i)/rC(t),e.translate=D(i.min,i.max,e.origin)-e.originPoint,(e.scale>=.9999&&e.scale<=1.0001||isNaN(e.scale))&&(e.scale=1),(e.translate>=-.01&&e.translate<=.01||isNaN(e.translate))&&(e.translate=0)}function r_(e,t,i,r){rE(e.x,t.x,i.x,r?r.originX:void 0),rE(e.y,t.y,i.y,r?r.originY:void 0)}function rN(e,t,i){e.min=i.min+t.min,e.max=e.min+rC(t)}function rB(e,t,i){e.min=t.min-i.min,e.max=e.min+rC(t)}function rV(e,t,i){rB(e.x,t.x,i.x),rB(e.y,t.y,i.y)}function rz(e){return[e("x"),e("y")]}let rI=({current:e})=>e?e.ownerDocument.defaultView:null,rR=(e,t)=>Math.abs(e-t);class rF{constructor(e,t,{transformPagePoint:i,contextWindow:r=window,dragSnapToOrigin:s=!1,distanceThreshold:a=3}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{var e,t;if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let i=rU(this.lastMoveEventInfo,this.history),r=null!==this.startEvent,s=(e=i.offset,t={x:0,y:0},Math.sqrt(rR(e.x,t.x)**2+rR(e.y,t.y)**2)>=this.distanceThreshold);if(!r&&!s)return;let{point:a}=i,{timestamp:n}=eh;this.history.push({...a,timestamp:n});let{onStart:o,onMove:l}=this.handlers;r||(o&&o(this.lastMoveEvent,i),this.startEvent=this.lastMoveEvent),l&&l(this.lastMoveEvent,i)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastMoveEventInfo=rG(t,this.transformPagePoint),ec.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.end();let{onEnd:i,onSessionEnd:r,resumeAnimation:s}=this.handlers;if(this.dragSnapToOrigin&&s&&s(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let a=rU("pointercancel"===e.type?this.lastMoveEventInfo:rG(t,this.transformPagePoint),this.history);this.startEvent&&i&&i(e,a),r&&r(e,a)},!rj(e))return;this.dragSnapToOrigin=s,this.handlers=t,this.transformPagePoint=i,this.distanceThreshold=a,this.contextWindow=r||window;const n=rG(rM(e),this.transformPagePoint),{point:o}=n,{timestamp:l}=eh;this.history=[{...o,timestamp:l}];const{onSessionStart:d}=t;d&&d(e,rU(n,this.history)),this.removeListeners=ii(rA(this.contextWindow,"pointermove",this.handlePointerMove),rA(this.contextWindow,"pointerup",this.handlePointerUp),rA(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),em(this.updatePoint)}}function rG(e,t){return t?{point:t(e.point)}:e}function rO(e,t){return{x:e.x-t.x,y:e.y-t.y}}function rU({point:e},t){return{point:e,delta:rO(e,rq(t)),offset:rO(e,t[0]),velocity:function(e,t){if(e.length<2)return{x:0,y:0};let i=e.length-1,r=null,s=rq(e);for(;i>=0&&(r=e[i],!(s.timestamp-r.timestamp>ir(.1)));)i--;if(!r)return{x:0,y:0};let a=(s.timestamp-r.timestamp)/1e3;if(0===a)return{x:0,y:0};let n={x:(s.x-r.x)/a,y:(s.y-r.y)/a};return n.x===1/0&&(n.x=0),n.y===1/0&&(n.y=0),n}(t,.1)}}function rq(e){return e[e.length-1]}function rW(e,t,i){return{min:void 0!==t?e.min+t:void 0,max:void 0!==i?e.max+i-(e.max-e.min):void 0}}function rH(e,t){let i=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([i,r]=[r,i]),{min:i,max:r}}function r$(e,t,i){return{min:rJ(e,t),max:rJ(e,i)}}function rJ(e,t){return"number"==typeof e?e:e[t]||0}let rK=new WeakMap;class rY{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=tr(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:t=!1,distanceThreshold:i}={}){let{presenceContext:r}=this.visualElement;if(r&&!1===r.isPresent)return;let s=e=>{let{dragSnapToOrigin:i}=this.getProps();i?this.pauseAnimation():this.stopAnimation(),t&&this.snapToCursor(rM(e).point)},a=(e,t)=>{let{drag:i,dragPropagation:r,onDragStart:s}=this.getProps();if(i&&!r&&(this.openDragLock&&this.openDragLock(),this.openDragLock=function(e){if("x"===e||"
1y"===e)if(rL[e])return null;else return rL[e]=!0,()=>{rL[e]=!1};return rL.x||rL.y?null:(rL.x=rL.y=!0,()=>{rL.x=rL.y=!1})}(i),!this.openDragLock))return;this.latestPointerEvent=e,this.latestPanInfo=t,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),rz(e=>{let t=this.getAxisMotionValue(e).get()||0;if(H.test(t)){let{projection:i}=this.visualElement;if(i&&i.layout){let r=i.layout.layoutBox[e];r&&(t=rC(r)*(parseFloat(t)/100))}}this.originPoint[e]=t}),s&&ec.postRender(()=>s(e,t)),t7(this.visualElement,"transform");let{animationState:a}=this.visualElement;a&&a.setActive("whileDrag",!0)},n=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t;let{dragPropagation:i,dragDirectionLock:r,onDirectionLock:s,onDrag:a}=this.getProps();if(!i&&!this.openDragLock)return;let{offset:n}=t;if(r&&null===this.currentDirection){this.currentDirection=function(e,t=10){let i=null;return Math.abs(e.y)>t?i="y":Math.abs(e.x)>t&&(i="x"),i}(n),null!==this.currentDirection&&s&&s(this.currentDirection);return}this.updateAxis("x",t.point,n),this.updateAxis("y",t.point,n),this.visualElement.render(),a&&a(e,t)},o=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t,this.stop(e,t),this.latestPointerEvent=null,this.latestPanInfo=null},l=()=>rz(e=>"paused"===this.getAnimationState(e)&&this.getAxisMotionValue(e).animation?.play()),{dragSnapToOrigin:d}=this.getProps();this.panSession=new rF(e,{onSessionStart:s,onStart:a,onMove:n,onSessionEnd:o,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:d,distanceThreshold:i,contextWindow:rI(this.visualElement)})}stop(e,t){let i=e||this.latestPointerEvent,r=t||this.latestPanInfo,s=this.isDragging;if(this.cancel(),!s||!r||!i)return;let{velocity:a}=r;this.startAnimation(a);let{onDragEnd:n}=this.getProps();n&&ec.postRender(()=>n(i,r))}cancel(){this.isDragging=!1;let{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;let{dragPropagation:i}=this.getProps();!i&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),t&&t.setActive("whileDrag",!1)}updateAxis(e,t,i){let{drag:r}=this.getProps();if(!i||!rX(e,r,this.currentDirection))return;let s=this.getAxisMotionValue(e),a=this.originPoint[e]+i[e];this.constraints&&this.constraints[e]&&(a=function(e,{min:t,max:i},r){return void 0!==t&&e<t?e=r?D(t,e,r.min):Math.max(e,t):void 0!==i&&e>i&&(e=r?D(i,e,r.max):Math.min(e,i)),e}(a,this.constraints[e],this.elastic[e])),s.set(a)}resolveConstraints(){let{dragConstraints:e,dragElastic:t}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,r=this.constraints;e&&t1(e)?this.constraints||(this.constraints=this.resolveRefConstraints()):e&&i?this.constraints=function(e,{top:t,left:i,bottom:r,right:s}){return{x:rW(e.x,i,s),y:rW(e.y,t,r)}}(i.layoutBox,e):this.constraints=!1,this.elastic=function(e=.35){return!1===e?e=0:!0===e&&(e=.35),{x:r$(e,"left","right"),y:r$(e,"top","bottom")}}(t),r!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&rz(e=>{var t,r;let s;!1!==this.constraints&&this.getAxisMotionValue(e)&&(this.constraints[e]=(t=i.layoutBox[e],r=this.constraints[e],s={},void 0!==r.min&&(s.min=r.min-t.min),void 0!==r.max&&(s.max=r.max-t.min),s))})}resolveRefConstraints(){var e;let{dragConstraints:t,onMeasureDragConstraints:i}=this.getProps();if(!t||!t1(t))return!1;let r=t.current;et(null!==r,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");let{projection:s}=this.visualElement;if(!s||!s.layout)return!1;let a=function(e,t,i){let r=I(e,i),{scroll:s}=t;return s&&(B(r.x,s.offset.x),B(r.y,s.offset.y)),r}(r,s.root,this.visualElement.getTransformPagePoint()),n=(e=s.layout.layoutBox,{x:rH(e.x,a.x),y:rH(e.y,a.y)});if(i){let e=i(function({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}(n));this.hasMutatedConstraints=!!e,e&&(n=L(e))}return n}startAnimation(e){let{drag:t,dragMomentum:i,dragElastic:r,dragTransition:s,dragSnapToOrigin:a,onDragTransitionEnd:n}=this.getProps(),o=this.constraints||{};return Promise.all(rz(n=>{if(!rX(n,t,this.currentDirection))return;let l=o&&o[n]||{};a&&(l={min:0,max:0});let d={type:"inertia",velocity:i?e[n]:0,bounceStiffness:r?200:1e6,bounceDamping:r?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...s,...l};return this.startAxisValueAnimation(n,d)})).then(n)}startAxisValueAnimation(e,t){let i=this.getAxisMotionValue(e);return t7(this.visualElement,e),i.start(rp(e,i,0,t,this.visualElement,!1))}stopAnimation(){rz(e=>this.getAxisMotionValue(e).stop())}pauseAnimation(){rz(e=>this.getAxisMotionValue(e).animation?.pause())}getAnimationState(e){return this.getAxisMotionValue(e).animation?.state}getAxisMotionValue(e){let t=`_drag${e.toUpperCase()}`,i=this.visualElement.getProps();return i[t]||this.visualElement.getValue(e,(i.initial?i.initial[e]:void 0)||0)}snapToCursor(e){rz(t=>{let{drag:i}=this.getProps();if(!rX(t,i,this.currentDirection))return;let{projection:r}=this.visualElement,s=this.getAxisMotionValue(t);if(r&&r.layout){let{min:i,max:a}=r.layout.layoutBox[t];s.set(e[t]-D(i,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:e,dragConstraints:t}=this.getProps(),{projection:i}=this.visualElement;if(!t1(t)||!i||!this.constraints)return;this.stopAnimation();let r={x:0,y:0};rz(e=>{let t=this.getAxisMotionValue(e);if(t&&!1!==this.constraints){var i,s;let a,n,o,l=t.get();r[e]=(i={min:l,max:l},s=this.constraints[e],a=.5,n=rC(i),(o=rC(s))>n?a=iX(s.min,s.max-n,i.min):n>o&&(a=iX(i.min,i.max-o,s.min)),F(0,1,a))}});let{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",i.root&&i.root.updateScroll(),i.updateLayout(),this.resolveConstraints(),rz(t=>{if(!rX(t,e,null))return;let i=this.getAxisMotionValue(t),{min:s,max:a}=this.constraints[t];i.set(D(s,a,r[t]))})}addListeners(){if(!this.visualElement.current)return;rK.set(this.visualElement,this);let e=rA(this.visualElement.current,"pointerdown",e=>{let{drag:t,dragListener:i=!0}=this.getProps();t&&i&&this.start(e)}),t=()=>{let{dragConstraints:e}=this.getProps();t1(e)&&e.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,r=i.addEventListener("measure",t);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),ec.read(t);let s=rD(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(rz(t=>{let i=this.getAxisMotionValue(t);i&&(this.originPoint[t]+=e[t].translate,i.set(i.get()+e[t].translate))}),this.visualElement.render())});return()=>{s(),e(),r(),a&&a()}}getProps(){let e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:i=!1,dragPropagation:r=!1,dragConstraints:s=!1,dragElastic:a=.35,dragMomentum:n=!0}=e;return{...e,drag:t,dragDirectionLock:i,dragPropagation:r,dragConstraints:s,dragElastic:a,dragMomentum:n}}}function rX(e,t,i){return(!0===t||t===e)&&(null===i||i===e)}let rZ=e=>(t,i)=>{e&&ec.postRender(()=>e(t,i))};var rQ=o;let r0={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function r1(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}let r2={correct:(e,t)=>
1{if(!t.target)return e;if("string"==typeof e)if(!$.test(e))return e;else e=parseFloat(e);let i=r1(e,t.target.x),r=r1(e,t.target.y);return`${i}% ${r}%`}},r3=!1;class r5 extends rQ.Component{componentDidMount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:i,layoutId:r}=this.props,{projection:s}=e;for(let e in r6)tP[e]=r6[e],T(e)&&(tP[e].isCSSVariable=!0);s&&(t.group&&t.group.add(s),i&&i.register&&r&&i.register(s),r3&&s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),r0.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){let{layoutDependency:t,visualElement:i,drag:r,isPresent:s}=this.props,{projection:a}=i;return a&&(a.isPresent=s,r3=!0,r||e.layoutDependency!==t||void 0===t||e.isPresent!==s?a.willUpdate():this.safeToRemove(),e.isPresent!==s&&(s?a.promote():a.relegate()||ec.postRender(()=>{let e=a.getStack();e&&e.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{projection:e}=this.props.visualElement;e&&(e.root.didUpdate(),e8.postRender(()=>{!e.currentAnimation&&e.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:i}=this.props,{projection:r}=e;r3=!0,r&&(r.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(r),i&&i.deregister&&i.deregister(r))}safeToRemove(){let{safeToRemove:e}=this.props;e&&e()}render(){return null}}function r4(e){let[t,i]=function(e=!0){let t=(0,o.useContext)(tK);if(null===t)return[!0,null];let{isPresent:i,onExitComplete:r,register:s}=t,a=(0,o.useId)();(0,o.useEffect)(()=>{if(e)return s(a)},[e]);let n=(0,o.useCallback)(()=>e&&r&&r(a),[a,r,e]);return!i&&r?[!1,n]:[!0]}(),r=(0,rQ.useContext)(tI);return(0,a.jsx)(r5,{...e,layoutGroup:r,switchLayoutGroup:(0,rQ.useContext)(t3),isPresent:t,safeToRemove:i})}let r6={borderRadius:{...r2,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:r2,borderTopRightRadius:r2,borderBottomLeftRadius:r2,borderBottomRightRadius:r2,boxShadow:{correct:(e,{treeScale:t,projectionDelta:i})=>{let r=eF.parse(e);if(r.length>5)return e;let s=eF.createTransformer(e),a=+("number"!=typeof r[0]),n=i.x.scale*t.x,o=i.y.scale*t.y;r[0+a]/=n,r[1+a]/=o;let l=D(n,o,.5);return"number"==typeof r[2+a]&&(r[2+a]/=l),"number"==typeof r[3+a]&&(r[3+a]/=l),s(r)}}};function r8(e){return"object"==typeof e&&null!==e}function r9(e){return r8(e)&&"ownerSVGElement"in e}let r7=(e,t)=>e.depth-t.depth;class se{constructor(){this.children=[],this.isDirty=!1}add(e){e1(this.children,e),this.isDirty=!0}remove(e){e2(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(r7),this.isDirty=!1,this.children.forEach(e)}}let st=["TopLeft","TopRight","BottomLeft","BottomRight"],si=st.length,sr=e=>"string"==typeof e?parseFloat(e):e,ss=e=>"number"==typeof e||$.test(e);function sa(e,t){return void 0!==e[t]?e[t]:e.borderRadius}let sn=sl(0,.5,iH),so=sl(.5,.95,eo);function sl(e,t,i){return r=>r<e?0:r>t?1:i(iX(e,t,r))}function sd(e,t){e.min=t.min,e.max=t.max}function su(e,t){sd(e.x,t.x),sd(e.y,t.y)}function sc(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function sm(e,t,i,r,s){return e-=t,e=r+1/i*(e-r),void 0!==s&&(e=r+1/s*(e-r)),e}function sh(e,t,[i,r,s],a,n){!function(e,t=0,i=1,r=.5,s,a=e,n=e){if(H.test(t)&&(t=parseFloat(t),t=D(n.min,n.max,t/100)-n.min),"number"!=typeof t)return;let o=D(a.min,a.max,r);e===a&&(o-=t),e.min=sm(e.min,t,i,o,s),e.max=sm(e.max,t,i,o,s)}(e,t[i],t[r],t[s],t.scale,a,n)}let sp=["x","scaleX","originX"],sg=["y","scaleY","originY"];function sf(e,t,i,r){sh(e.x,t,sp,i?i.x:void 0,r?r.x:void 0),sh(e.y,t,sg,i?i.y:void 0,r?r.y:void 0)}function sv(e){return 0===e.translate&&1===e.scale}function sx(e){return sv(e.x)&&sv(e.y)}function sb(e,t){return e.min===t.min&&e.max===t.max}function sy(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function sw(e,t){return sy(e.x,t.x)&&sy(e.y,t.y)}function sT(e){return rC(e.x)/rC(e.y)}function sS(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class sP{constructor(){this.members=[]}add(e){e1(this.members,e),e.scheduleRender()}remove(e){if(e2(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){let e=this.members[this.members.length-1];e&&this.promote(e)}}relegate(e){let t,i=this.members.findIndex(t=>e===t);if(0===i)return!1;for(let e=i;e>=0;e--){let i=this.members[e];if(!1!==i.isPresent){t=i;break}}return!!t&&(this.promote(t),!0)}promote(e,t){let i=this.lead;if(e!==i&&(this.prevLead=i,this.lead=e,e.show(),i)){i.instance&&i.scheduleRender(),e.scheduleRender(),e.resumeFrom=i,t&&(e.resumeFrom.preserveOpacity=!0),i.snapshot&&(e.snapshot=i.snapshot,e.snapshot.latestValues=i.animationValues||i.latestValues),e.root&&e.root.isUpdating&&(e.isLayoutDirty=!0);let{crossfade:r}=e.options;!1===r&&i.hide()}}
1exitAnimationComplete(){this.members.forEach(e=>{let{options:t,resumingFrom:i}=e;t.onExitComplete&&t.onExitComplete(),i&&i.options.onExitComplete&&i.options.onExitComplete()})}scheduleRender(){this.members.forEach(e=>{e.instance&&e.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}let sk=["","X","Y","Z"],sL=0;function sD(e,t,i,r){let{latestValues:s}=t;s[e]&&(i[e]=s[e],t.setStaticValue(e,0),r&&(r[e]=0))}function sj({attachResizeListener:e,defaultParent:t,measureScroll:i,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(e={},i=t?.()){this.id=sL++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(sC),this.nodes.forEach(sI),this.nodes.forEach(sR),this.nodes.forEach(sE)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=e,this.root=i?i.root||i:this,this.path=i?[...i.path,i]:[],this.parent=i,this.depth=i?i.depth+1:0;for(let e=0;e<this.path.length;e++)this.path[e].shouldResetTransform=!0;this.root===this&&(this.nodes=new se)}addEventListener(e,t){return this.eventHandlers.has(e)||this.eventHandlers.set(e,new e3),this.eventHandlers.get(e).add(t)}notifyListeners(e,...t){let i=this.eventHandlers.get(e);i&&i.notify(...t)}hasListeners(e){return this.eventHandlers.has(e)}mount(t){if(this.instance)return;this.isSVG=r9(t)&&!(r9(t)&&"svg"===t.tagName),this.instance=t;let{layoutId:i,layout:r,visualElement:s}=this.options;if(s&&!s.current&&s.mount(t),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(r||i)&&(this.isLayoutDirty=!0),e){let i,r=0,s=()=>this.root.updateBlockedByResize=!1;ec.read(()=>{r=window.innerWidth}),e(t,()=>{let e=window.innerWidth;if(e!==r){let t,a;r=e,this.root.updateBlockedByResize=!0,i&&i(),t=e0.now(),a=({timestamp:e})=>{let i=e-t;i>=250&&(em(a),s(i-250))},ec.setup(a,!0),i=()=>em(a),r0.hasAnimatedSinceResize&&(r0.hasAnimatedSinceResize=!1,this.nodes.forEach(sz))}})}i&&this.root.registerSharedNode(i,this),!1!==this.options.animate&&s&&(i||r)&&this.addEventListener("didUpdate",({delta:e,hasLayoutChanged:t,hasRelativeLayoutChanged:i,layout:r})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let a=this.options.transition||s.getDefaultTransition()||sW,{onLayoutAnimationStart:n,onLayoutAnimationComplete:o}=s.getProps(),l=!this.targetLayout||!sw(this.targetLayout,r),d=!t&&i;if(this.options.layoutRoot||this.resumeFrom||d||t&&(l||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let t={...t8(a,"layout"),onPlay:n,onComplete:o};(s.shouldReduceMotion||this.options.layoutRoot)&&(t.delay=0,t.type=!1),this.startAnimation(t),this.setAnimationOrigin(e,d)}else t||sz(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=r})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let e=this.getStack();e&&e.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),em(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){!this.isUpdateBlocked()&&(this.isUpdating=!0,this.nodes&&this.nodes.forEac
1h(sF),this.animationId++)}getTransformTemplate(){let{visualElement:e}=this.options;return e&&e.getProps().transformTemplate}willUpdate(e=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&function e(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;let{visualElement:i}=t.options;if(!i)return;let r=i.props[t2];if(window.MotionHasOptimisedAnimation(r,"transform")){let{layout:e,layoutId:i}=t.options;window.MotionCancelOptimisedAnimation(r,"transform",ec,!(e||i))}let{parent:s}=t;s&&!s.hasCheckedOptimisedAppear&&e(s)}(this),this.root.isUpdating||this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let e=0;e<this.path.length;e++){let t=this.path[e];t.shouldResetTransform=!0,t.updateScroll("snapshot"),t.options.layoutRoot&&t.willUpdate(!1)}let{layoutId:t,layout:i}=this.options;if(void 0===t&&!i)return;let r=this.getTransformTemplate();this.prevTransformTemplateValue=r?r(this.latestValues,""):void 0,this.updateSnapshot(),e&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(sN);return}if(this.animationId<=this.animationCommitId)return void this.nodes.forEach(sB);this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(sV),this.nodes.forEach(sM),this.nodes.forEach(sA)):this.nodes.forEach(sB),this.clearAllSnapshots();let e=e0.now();eh.delta=F(0,1e3/60,e-eh.timestamp),eh.timestamp=e,eh.isProcessing=!0,ep.update.process(eh),ep.preRender.process(eh),ep.render.process(eh),eh.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,e8.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(s_),this.sharedNodes.forEach(sG)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,ec.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){ec.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),!this.snapshot||rC(this.snapshot.measuredBox.x)||rC(this.snapshot.measuredBox.y)||(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let e=0;e<this.path.length;e++)this.path[e].updateScroll();let e=this.layout;this.layout=this.measure(!1),this.layoutCorrected=tr(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);let{visualElement:t}=this.options;t&&t.notify("LayoutMeasure",this.layout.layoutBox,e?e.layoutBox:void 0)}updateScroll(e="measure"){let t=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===e&&(t=!1),t&&this.instance){let t=r(this.instance);this.scroll={animationId:this.root.animationId,phase:e,isRoot:t,offset:i(this.instance),wasRoot:this.scroll?this.scroll.isRoot:t}}}resetTransform(){if(!s)return;let e=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,t=this.projectionDelta&&!sx(this.projectionDelta),i=this.getTransformTemplate(),r=i?i(this.latestValues,""):void 0,a=r!==this.prevTransformTemplateValue;e&&this.instance&&(t||A(this.latestValues)||a)&&(s(this.instance,r),this.shouldResetTransform=!1,this.scheduleRender())}measure(e=!0){var t;let i=this.measurePageBox(),r=this.removeElementScroll(i);return e&&(r=this.removeTransform(r)),sJ((t=r).x),sJ(t.y),{animationId:this.root.animationId,measuredBox:i,layoutBox:r,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:e}=this.options;if(!e)return tr();let t=e.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(sY))){let{scroll:e}=this.root;e&&(B(t.x,e.offset.x),B(t.y,e.offset.y))}return t}removeElementScroll(e){let t=tr();if(su(t,e),this.scroll?.wasRoot)return t;for(let i=0;i<this.path.length;i++){let r=this.path[i],{scroll:s,options:a}=r;r!==this.root&&s&&a.layoutScroll&&(s.wasRoot&&su(t,e),B(t.x,s.offset.x),B(t.y,s.offset.y))}return t}applyTransform(e,t=!1){let i=tr();su(i,e);for(let e=0;e<this.path.length;e++){let r=this.path[e];!t&&r.options.layoutScroll&&r.scroll&&r!==r.root&&z(i,{x:-r.scroll.offset.x,y:-r.scroll.offset.y}),A(r.latestValues)&&z(i,r.latestValues)}return A(this.latestValues)&&z(i,this.latestValues),i}removeTransform(e){let t=tr();su(t,e);for(let e=0;e<this.path.length;e++){let i=this.path[e];if(!i.instance||!A(i.latestValues))continue;M(i.latestValues)&&i.updateSnapshot();let r=tr();su(r,i.measurePageBox()),sf(t,i.latestValues,i.snapshot?i.snapshot.layoutBox:void 0,r)}return A(this.latestValues)&&sf(t,this.latestValues),t}setTargetDelta(e){this.targetDelta=e,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(e){this.options={...this.options,...e,crossfade:void 0===e.crossfade||e.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==eh.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(e=!1){let t=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=t.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=t.
1isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=t.isSharedProjectionDirty);let i=!!this.resumingFrom||this!==t;if(!(e||i&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:r,layoutId:s}=this.options;if(this.layout&&(r||s)){if(this.resolvedRelativeTargetAt=eh.timestamp,!this.targetDelta&&!this.relativeTarget){let e=this.getClosestProjectingParent();e&&e.layout&&1!==this.animationProgress?(this.relativeParent=e,this.forceRelativeParentToResolveTarget(),this.relativeTarget=tr(),this.relativeTargetOrigin=tr(),rV(this.relativeTargetOrigin,this.layout.layoutBox,e.layout.layoutBox),su(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(this.relativeTarget||this.targetDelta){if(this.target||(this.target=tr(),this.targetWithTransforms=tr()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target){var a,n,o;this.forceRelativeParentToResolveTarget(),a=this.target,n=this.relativeTarget,o=this.relativeParent.target,rN(a.x,n.x,o.x),rN(a.y,n.y,o.y)}else this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):su(this.target,this.layout.layoutBox),N(this.target,this.targetDelta)):su(this.target,this.layout.layoutBox);if(this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;let e=this.getClosestProjectingParent();e&&!!e.resumingFrom==!!this.resumingFrom&&!e.options.layoutScroll&&e.target&&1!==this.animationProgress?(this.relativeParent=e,this.forceRelativeParentToResolveTarget(),this.relativeTarget=tr(),this.relativeTargetOrigin=tr(),rV(this.relativeTargetOrigin,this.target,e.target),su(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}}}}getClosestProjectingParent(){if(!(!this.parent||M(this.parent.latestValues)||C(this.parent.latestValues)))if(this.parent.isProjecting())return this.parent;else return this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){let e=this.getLead(),t=!!this.resumingFrom||this!==e,i=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(i=!1),t&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(i=!1),this.resolvedRelativeTargetAt===eh.timestamp&&(i=!1),i)return;let{layout:r,layoutId:s}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(r||s))return;su(this.layoutCorrected,this.layout.layoutBox);let a=this.treeScale.x,n=this.treeScale.y;!function(e,t,i,r=!1){let s,a,n=i.length;if(n){t.x=t.y=1;for(let o=0;o<n;o++){a=(s=i[o]).projectionDelta;let{visualElement:n}=s.options;(!n||!n.props.style||"contents"!==n.props.style.display)&&(r&&s.options.layoutScroll&&s.scroll&&s!==s.root&&z(e,{x:-s.scroll.offset.x,y:-s.scroll.offset.y}),a&&(t.x*=a.x.scale,t.y*=a.y.scale,N(e,a)),r&&A(s.latestValues)&&z(e,s.latestValues))}t.x<1.0000000000001&&t.x>.999999999999&&(t.x=1),t.y<1.0000000000001&&t.y>.999999999999&&(t.y=1)}}(this.layoutCorrected,this.treeScale,this.path,t),e.layout&&!e.target&&(1!==this.treeScale.x||1!==this.treeScale.y)&&(e.target=e.layout.layoutBox,e.targetWithTransforms=tr());let{target:o}=e;if(!o){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}this.projectionDelta&&this.prevProjectionDelta?(sc(this.prevProjectionDelta.x,this.projectionDelta.x),sc(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),r_(this.projectionDelta,this.layoutCorrected,o,this.latestValues),this.treeScale.x===a&&this.treeScale.y===n&&sS(this.projectionDelta.x,this.prevProjectionDelta.x)&&sS(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",o))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(e=!0){if(this.options.visualElement?.scheduleRender(),e){let e=this.getStack();e&&e.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=tt(),this.projectionDelta=tt(),this.projectionDeltaWithTransform=tt()}setAnimationOrigin(e,t=!1){let i,r=this.snapshot,s=r?r.latestValues:{},a={...this.latestValues},n=tt();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!t;let o=tr(),l=(r?r.source:void 0)!==(this.layout?this.layout.source:void 0),d=this.getStack(),u=!d||d.members.length<=1,c=!!(l&&!u&&!0===this.options.crossfade&&!this.path.some(sq));this.animationProgress=0,this.mixTargetDelta=t=>{let r=t/1e3;if(sO(n.x,e.x,r),sO(n.y,e.y,r),this.setTargetDelta(n),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout){var d,m,h,p,g,f;rV(o,this.layout.layoutBox,this.relativeParent.layout.layoutBox),h=this.relativeTarget,p=this.relativeTargetOrigin,g=o,f=r,sU(h.x,p.x,g.x,f),sU(h.y,p.y,g.y,f),i&&(d=this.relativeTarget,m=i,sb(d.x,m.x)&&sb(d.y,m.y))&&(this.isProjectionDirty=!1),i||(i=tr()),su(i,this.relativeTarget)}l&&(this.animationValues=a,function(e,t,i,r,s,a){s?(e.opacity=D(0,i.opacity??1,sn(r)),e.opacityExit=D(t.opacity??1,0,so(r))):a&&(e.opacity=D(t.opacity??1,i.opacity??1,r));for(let s=0;s<si;s++){let a=`border${st[s]}Radius`,n=sa(t,a),o=sa(i,a);(void 0!==n||void 0!==o)&&(n||(n=0),o||(o=0),0===n||0===o||ss(n)===ss(o)?(e[a]=Math.max(D(sr(n),sr(o),r),0),(H.test(o)||H.test(n))&&(e[a]+="%")):e[a]=o)}(t.rotate||i.rotate)&&(e.rotate=D(t.rotate||0,i.rotate||0,r))}(a,s,this.latestValues,r,c,u)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=r},this.mixTargetDelta(1e3*!!this.options.layoutRoot)}startAnimation(e){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(em(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=ec.update(()=>{var t,i,r;let s;r0.hasAnimatedSinceResize=!0,is.layout++,this.motionValue||(this.motionValue=e4(0)),this.currentAnimation=(t=this.motionValue,i=[0,1e3],r={...e,velocity:0,isSync:!0,onUpdate:t=>{this.mixTargetDelta(t),e.onUpdate&&e.onUpdate(t)},onStop:()=>{is.layout--},onComplete:()=>{is.layout--,e.onComplete&&e.onComplete(),this.completeAnimation()}},(s=eZ(t)?t:e4(t)).start(rp("",s,i,r)),s.animation),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let e=this.getStack();e&&e.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let e=this.getLead(),{targetWithTransforms:t,target:i,layout:r,latestValues:s}=e;if(t&&i&&r){if(this!==e&&this.layout&&r&&sK(this.options.animationType,this.layout.layoutBox,r.layoutBox)){i=this.target||tr();let t=rC(this.layout.layoutBox.x);i.x.min=e.target.x.min,i.x.max=i.x.min+t;let r=rC(this.layout.layoutBox.y);i.y.min=e.target.y.min,i.y.max=i.y.min+r}su(t,i),z(t,s),r_(this.projectionDeltaWithTransform,this.layoutCorrected,t,s)}}registerSharedNode(e,t){this.sharedNodes.has(e)||this.sharedNodes.set(e,new sP),this.sharedNodes.get(e).add(t);let i=t.options.initialPromotionConfig;t.promote({transition:i?i.transition:void 0,preserveFollowOpacity:i&&i.shouldPreserveFollowOpacity?i.shouldPreserveFollowOpacity(t):void 0})}isLead(){let e=this.getStack();return!e||e.lead===this}getLead(){let{layoutId:e}=this.options;
1return e&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:e}=this.options;return e?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:e}=this.options;if(e)return this.root.sharedNodes.get(e)}promote({needsReset:e,transition:t,preserveFollowOpacity:i}={}){let r=this.getStack();r&&r.promote(this,i),e&&(this.projectionDelta=void 0,this.needsReset=!0),t&&this.setOptions({transition:t})}relegate(){let e=this.getStack();return!!e&&e.relegate(this)}resetSkewAndRotation(){let{visualElement:e}=this.options;if(!e)return;let t=!1,{latestValues:i}=e;if((i.z||i.rotate||i.rotateX||i.rotateY||i.rotateZ||i.skewX||i.skewY)&&(t=!0),!t)return;let r={};i.z&&sD("z",e,r,this.animationValues);for(let t=0;t<sk.length;t++)sD(`rotate${sk[t]}`,e,r,this.animationValues),sD(`skew${sk[t]}`,e,r,this.animationValues);for(let t in e.render(),r)e.setStaticValue(t,r[t]),this.animationValues&&(this.animationValues[t]=r[t]);e.scheduleRender()}applyProjectionStyles(e,t){if(!this.instance||this.isSVG)return;if(!this.isVisible){e.visibility="hidden";return}let i=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,e.visibility="",e.opacity="",e.pointerEvents=tY(t?.pointerEvents)||"",e.transform=i?i(this.latestValues,""):"none";return}let r=this.getLead();if(!this.projectionDelta||!this.layout||!r.target){this.options.layoutId&&(e.opacity=void 0!==this.latestValues.opacity?this.latestValues.opacity:1,e.pointerEvents=tY(t?.pointerEvents)||""),this.hasProjected&&!A(this.latestValues)&&(e.transform=i?i({},""):"none",this.hasProjected=!1);return}e.visibility="";let s=r.animationValues||r.latestValues;this.applyTransformsToTarget();let a=function(e,t,i){let r="",s=e.x.translate/t.x,a=e.y.translate/t.y,n=i?.z||0;if((s||a||n)&&(r=`translate3d(${s}px, ${a}px, ${n}px) `),(1!==t.x||1!==t.y)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),i){let{transformPerspective:e,rotate:t,rotateX:s,rotateY:a,skewX:n,skewY:o}=i;e&&(r=`perspective(${e}px) ${r}`),t&&(r+=`rotate(${t}deg) `),s&&(r+=`rotateX(${s}deg) `),a&&(r+=`rotateY(${a}deg) `),n&&(r+=`skewX(${n}deg) `),o&&(r+=`skewY(${o}deg) `)}let o=e.x.scale*t.x,l=e.y.scale*t.y;return(1!==o||1!==l)&&(r+=`scale(${o}, ${l})`),r||"none"}(this.projectionDeltaWithTransform,this.treeScale,s);i&&(a=i(s,a)),e.transform=a;let{x:n,y:o}=this.projectionDelta;for(let t in e.transformOrigin=`${100*n.origin}% ${100*o.origin}% 0`,r.animationValues?e.opacity=r===this?s.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:s.opacityExit:e.opacity=r===this?void 0!==s.opacity?s.opacity:"":void 0!==s.opacityExit?s.opacityExit:0,tP){if(void 0===s[t])continue;let{correct:i,applyTo:n,isCSSVariable:o}=tP[t],l="none"===a?s[t]:i(s[t],r);if(n){let t=n.length;for(let i=0;i<t;i++)e[n[i]]=l}else o?this.options.visualElement.renderState.vars[t]=l:e[t]=l}this.options.layoutId&&(e.pointerEvents=r===this?tY(t?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(e=>e.currentAnimation?.stop()),this.root.nodes.forEach(sN),this.root.sharedNodes.clear()}}}function sM(e){e.updateLayout()}function sA(e){let t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){let{layoutBox:i,measuredBox:r}=e.layout,{animationType:s}=e.options,a=t.source!==e.layout.source;"size"===s?rz(e=>{let r=a?t.measuredBox[e]:t.layoutBox[e],s=rC(r);r.min=i[e].min,r.max=r.min+s}):sK(s,t.layoutBox,i)&&rz(r=>{let s=a?t.measuredBox[r]:t.layoutBox[r],n=rC(i[r]);s.max=s.min+n,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[r].max=e.relativeTarget[r].min+n)});let n=tt();r_(n,i,t.layoutBox);let o=tt();a?r_(o,e.applyTransform(r,!0),t.measuredBox):r_(o,i,t.layoutBox);let l=!sx(n),d=!1;if(!e.resumeFrom){let r=e.getClosestProjectingParent();if(r&&!r.resumeFrom){let{snapshot:s,layout:a}=r;if(s&&a){let n=tr();rV(n,t.layoutBox,s.layoutBox);let o=tr();rV(o,i,a.layoutBox),sw(n,o)||(d=!0),r.options.layoutRoot&&(e.relativeTarget=o,e.relativeTargetOrigin=n,e.relativeParent=r)}}}e.notifyListeners("didUpdate",{layout:i,snapshot:t,delta:o,layoutDelta:n,hasLayoutChanged:l,hasRelativeLayoutChanged:d})}else if(e.isLead()){let{onExitComplete:t}=e.options;t&&t()}e.options.transition=void 0}function sC(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function sE(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function s_(e){e.clearSnapshot()}function sN(e){e.clearMeasurements()}function sB(e){e.isLayoutDirty=!1}function sV(e){let{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function sz(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function sI(e){e.resolveTargetDelta()}function sR(e){e.calcProjection()}
1function sF(e){e.resetSkewAndRotation()}function sG(e){e.removeLeadSnapshot()}function sO(e,t,i){e.translate=D(t.translate,0,i),e.scale=D(t.scale,1,i),e.origin=t.origin,e.originPoint=t.originPoint}function sU(e,t,i,r){e.min=D(t.min,i.min,r),e.max=D(t.max,i.max,r)}function sq(e){return e.animationValues&&void 0!==e.animationValues.opacityExit}let sW={duration:.45,ease:[.4,0,.1,1]},sH=e=>"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),s$=sH("applewebkit/")&&!sH("chrome/")?Math.round:eo;function sJ(e){e.min=s$(e.min),e.max=s$(e.max)}function sK(e,t,i){return"position"===e||"preserve-aspect"===e&&!(.2>=Math.abs(sT(t)-sT(i)))}function sY(e){return e!==e.root&&e.scroll?.wasRoot}let sX=sj({attachResizeListener:(e,t)=>rD(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),sZ={current:void 0},sQ=sj({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!sZ.current){let e=new sX({});e.mount(window),e.setOptions({layoutScroll:!0}),sZ.current=e}return sZ.current},resetTransform:(e,t)=>{e.style.transform=void 0!==t?t:"none"},checkIsScrollRoot:e=>"fixed"===window.getComputedStyle(e).position});function s0(e,t){let i=function(e,t,i){if(e instanceof EventTarget)return[e];if("string"==typeof e){let t=document,i=(void 0)??t.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}(e),r=new AbortController;return[i,{passive:!0,...t,signal:r.signal},()=>r.abort()]}function s1(e){return!("touch"===e.pointerType||rL.x||rL.y)}function s2(e,t,i){let{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover","Start"===i);let s=r["onHover"+i];s&&ec.postRender(()=>s(t,rM(t)))}let s3=(e,t)=>!!t&&(e===t||s3(e,t.parentElement)),s5=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]),s4=new WeakSet;function s6(e){return t=>{"Enter"===t.key&&e(t)}}function s8(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}function s9(e){return rj(e)&&!(rL.x||rL.y)}function s7(e,t,i){let{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap","Start"===i);let s=r["onTap"+("End"===i?"":i)];s&&ec.postRender(()=>s(t,rM(t)))}let ae=new WeakMap,at=new WeakMap,ai=e=>{let t=ae.get(e.target);t&&t(e)},ar=e=>{e.forEach(ai)},as={some:0,all:1},aa=function(e,t){if("undefined"==typeof Proxy)return t4;let i=new Map,r=(i,r)=>t4(i,r,e,t);return new Proxy((e,t)=>r(e,t),{get:(s,a)=>"create"===a?r:(i.has(a)||i.set(a,t4(a,void 0,e,t)),i.get(a))})}({animation:{Feature:class extends rP{constructor(e){super(e),e.animationState||(e.animationState=function(e){let t=t=>Promise.all(t.map(({animation:t,options:i})=>(function(e,t,i={}){let r;if(e.notify("AnimationStart",t),Array.isArray(t))r=Promise.all(t.map(t=>rv(e,t,i)));else if("string"==typeof t)r=rv(e,t,i);else{let s="function"==typeof t?t6(e,t,i.custom):t;r=Promise.all(rg(e,s,i))}return r.then(()=>{e.notify("AnimationComplete",t)})})(e,t,i))),i=rS(),r=!0,s=t=>(i,r)=>{let s=t6(e,r,"exit"===t?e.presenceContext?.custom:void 0);if(s){let{transition:e,transitionEnd:t,...r}=s;i={...i,...r,...t}}return i};function a(a){let{props:n}=e,o=function e(t){if(!t)return;if(!t.isControllingVariants){let i=t.parent&&e(t.parent)||{};return void 0!==t.props.initial&&(i.initial=t.props.initial),i}let i={};for(let e=0;e<rb;e++){let r=tc[e],s=t.props[r];(td(s)||!1===s)&&(i[r]=s)}return i}(e.parent)||{},l=[],d=new Set,u={},c=1/0;for(let t=0;t<rw;t++){var m,h;let p=ry[t],g=i[p],f=void 0!==n[p]?n[p]:o[p],v=td(f),x=p===a?g.isActive:null;!1===x&&(c=t);let b=f===o[p]&&f!==n[p]&&v;if(b&&r&&e.manuallyAnimateOnMount&&(b=!1),g.protectedKeys={...u},!g.isActive&&null===x||!f&&!g.prevProp||tl(f)||"boolean"==typeof f)continue;let y=(m=g.prevProp,"string"==typeof(h=f)?h!==m:!!Array.isArray(h)&&!rx(h,m)),w=y||p===a&&g.isActive&&!b&&v||t>c&&v,T=!1,S=Array.isArray(f)?f:[f],P=S.reduce(s(p),{});!1===x&&(P={});let{prevResolvedValues:k={}}=g,L={...k,...P},D=t=>{w=!0,d.has(t)&&(T=!0,d.delete(t)),g.needsAnimating[t]=!0;let i=e.getValue(t);i&&(i.liveStyle=!1)};for(let e in L){let t=P[e],i=k[e];if(!u.hasOwnProperty(e))(t9(t)&&t9(i)?rx(t,i):t===i)?void 0!==t&&d.has(e)?D(e):g.protectedKeys[e]=!0:null!=t?D(e):d.add(e)}g.prevProp=f,g.prevResolvedValues=P,g.isActive&&(u={...u,...P}),r&&e.blockInitialAnimation&&(w=!1);let j=b&&y,M=!j||T;w&&M&&l.push(...S.map(t=>{let i={type:p};if("string"==typeof t&&r&&!j&&e.manuallyAnimateOnMount&&e.parent){let{parent:r}=e,s=t6(r,t);if(r.enteringChildren&&s){let{delayChildren:t}=s.transition||{};i.delay=rf(r.enteringChildren,e,t)}}return{animation:t,options:i}}))}if(d.size){let t={};if("boolean"!=typeof n.initial){let i=t6(e,Array.isArray(n.initial)?n.initial[0]:n.initial);i&&i.transition&&(t.transition=i.transition)}
1d.forEach(i=>{let r=e.getBaseTarget(i),s=e.getValue(i);s&&(s.liveStyle=!0),t[i]=r??null}),l.push({animation:t})}let p=!!l.length;return r&&(!1===n.initial||n.initial===n.animate)&&!e.manuallyAnimateOnMount&&(p=!1),r=!1,p?t(l):Promise.resolve()}return{animateChanges:a,setActive:function(t,r){if(i[t].isActive===r)return Promise.resolve();e.variantChildren?.forEach(e=>e.animationState?.setActive(t,r)),i[t].isActive=r;let s=a(t);for(let e in i)i[e].protectedKeys={};return s},setAnimateFunction:function(i){t=i(e)},getState:()=>i,reset:()=>{i=rS(),r=!0}}}(e))}updateAnimationControlsSubscription(){let{animate:e}=this.node.getProps();tl(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}},exit:{Feature:class extends rP{constructor(){super(...arguments),this.id=rk++}update(){if(!this.node.presenceContext)return;let{isPresent:e,onExitComplete:t}=this.node.presenceContext,{isPresent:i}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===i)return;let r=this.node.animationState.setActive("exit",!e);t&&!e&&r.then(()=>{t(this.id)})}mount(){let{register:e,onExitComplete:t}=this.node.presenceContext||{};t&&t(this.id),e&&(this.unmount=e(this.id))}unmount(){}}},inView:{Feature:class extends rP{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var e;let t;this.unmount();let{viewport:i={}}=this.node.getProps(),{root:r,margin:s,amount:a="some",once:n}=i,o={root:r?r.current:void 0,rootMargin:s,threshold:"number"==typeof a?a:as[a]},l=e=>{let{isIntersecting:t}=e;if(this.isInView===t||(this.isInView=t,n&&!t&&this.hasEnteredView))return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",t);let{onViewportEnter:i,onViewportLeave:r}=this.node.getProps(),s=t?i:r;s&&s(e)};return e=this.node.current,t=function({root:e,...t}){let i=e||document;at.has(i)||at.set(i,{});let r=at.get(i),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(ar,{root:e,...t})),r[s]}(o),ae.set(e,l),t.observe(e),()=>{ae.delete(e),t.unobserve(e)}}mount(){this.startObserver()}update(){if("undefined"==typeof IntersectionObserver)return;let{props:e,prevProps:t}=this.node;["amount","margin","root"].some(function({viewport:e={}},{viewport:t={}}={}){return i=>e[i]!==t[i]}(e,t))&&this.startObserver()}unmount(){}}},tap:{Feature:class extends rP{mount(){let{current:e}=this.node;e&&(this.unmount=function(e,t,i={}){let[r,s,a]=s0(e,i),n=e=>{let r=e.currentTarget;if(!s9(e))return;s4.add(r);let a=t(r,e),n=(e,t)=>{window.removeEventListener("pointerup",o),window.removeEventListener("pointercancel",l),s4.has(r)&&s4.delete(r),s9(e)&&"function"==typeof a&&a(e,{success:t})},o=e=>{n(e,r===window||r===document||i.useGlobalTarget||s3(r,e.target))},l=e=>{n(e,!1)};window.addEventListener("pointerup",o,s),window.addEventListener("pointercancel",l,s)};return r.forEach(e=>{(i.useGlobalTarget?window:e).addEventListener("pointerdown",n,s),r8(e)&&"offsetHeight"in e&&(e.addEventListener("focus",e=>((e,t)=>{let i=e.currentTarget;if(!i)return;let r=s6(()=>{if(s4.has(i))return;s8(i,"down");let e=s6(()=>{s8(i,"up")});i.addEventListener("keyup",e,t),i.addEventListener("blur",()=>s8(i,"cancel"),t)});i.addEventListener("keydown",r,t),i.addEventListener("blur",()=>i.removeEventListener("keydown",r),t)})(e,s)),s5.has(e.tagName)||-1!==e.tabIndex||e.hasAttribute("tabindex")||(e.tabIndex=0))}),a}(e,(e,t)=>(s7(this.node,t,"Start"),(e,{success:t})=>s7(this.node,e,t?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}},focus:{Feature:class extends rP{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(":focus-visible")}catch(t){e=!0}e&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=ii(rD(this.node.current,"focus",()=>this.onFocus()),rD(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}},hover:{Feature:class extends rP{mount(){let{current:e}=this.node;e&&(this.unmount=function(e,t,i={}){let[r,s,a]=s0(e,i),n=e=>{if(!s1(e))return;let{target:i}=e,r=t(i,e);if("function"!=typeof r||!i)return;let a=e=>{s1(e)&&(r(e),i.removeEventListener("pointerleave",a))};i.addEventListener("pointerleave",a,s)};
1return r.forEach(e=>{e.addEventListener("pointerenter",n,s)}),a}(e,(e,t)=>(s2(this.node,t,"Start"),e=>s2(this.node,e,"End"))))}unmount(){}}},pan:{Feature:class extends rP{constructor(){super(...arguments),this.removePointerDownListener=eo}onPointerDown(e){this.session=new rF(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:rI(this.node)})}createPanHandlers(){let{onPanSessionStart:e,onPanStart:t,onPan:i,onPanEnd:r}=this.node.getProps();return{onSessionStart:rZ(e),onStart:rZ(t),onMove:i,onEnd:(e,t)=>{delete this.session,r&&ec.postRender(()=>r(e,t))}}}mount(){this.removePointerDownListener=rA(this.node.current,"pointerdown",e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}},drag:{Feature:class extends rP{constructor(e){super(e),this.removeGroupControls=eo,this.removeListeners=eo,this.controls=new rY(e)}mount(){let{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||eo}unmount(){this.removeGroupControls(),this.removeListeners()}},ProjectionNode:sQ,MeasureLayout:r4},layout:{ProjectionNode:sQ,MeasureLayout:r4}},(e,t)=>tz(e)?new tB(t):new tD(t,{allowProjection:e!==o.Fragment}));var an=e.i(695859),ao=e.i(460896),al=e.i(636680),ad=e.i(518658),au=e.i(910776),ac=e.i(169543),am=e.i(249353),ah=e.i(889522);let ap=(0,ah.default)("printer",[["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"143wyd"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}],["rect",{x:"6",y:"14",width:"12",height:"8",rx:"1",key:"1ue0tg"}]]);var ag=e.i(550573),af=e.i(174053),av=e.i(199978);let ax=(0,ah.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var ab=e.i(420444);let ay=(0,ah.default)("expand",[["path",{d:"m15 15 6 6",key:"1s409w"}],["path",{d:"m15 9 6-6",key:"ko1vev"}],["path",{d:"M21 16v5h-5",key:"1ck2sf"}],["path",{d:"M21 8V3h-5",key:"1qoq8a"}],["path",{d:"M3 16v5h5",key:"1t08am"}],["path",{d:"m3 21 6-6",key:"wwnumi"}],["path",{d:"M3 8V3h5",key:"1ln10m"}],["path",{d:"M9 9 3 3",key:"v551iv"}]]),aw=(0,ah.default)("file-down",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]),aT=(0,ah.default)("hand",[["path",{d:"M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1fvzgz"}],["path",{d:"M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2",key:"1kc0my"}],["path",{d:"M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8",key:"10h0bg"}],["path",{d:"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",key:"1s1gnw"}]]),aS=(0,ah.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);var aP=e.i(141836);let ak=(0,ah.default)("type",[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]]);var aL=e.i(526683);let aD={en:{title:"See how inputs become",titleAccent:"printable STL models",subtitle:"Upload an image, write a prompt, or provide multiple views. We will generate a clean STL draft you can preview before downloading.",before:"Before",yourInput:"Your input",after:"After",stlPreview:"STL preview",ready:"STL · Ready to download",prompt:"Small golden bird, sharp beak, printable figurine",style:"Style: printable figure",mode:"Mode: standard",multiHint:"Four angles help the STL draft keep the main silhouette.",promptLabel:"Prompt",singleImageAlt:"Single object input for image-to-STL conversion",inputView:"input view",viewLabels:["Front","Left","Right","Back"],loadingPreview:"Loading STL previewâ¦",unavailablePreview:"Preview is unavailable right now.",tabs:{image:"Image to STL",text:"Text to STL",multi:"Multi image / Multi-view"},chips:[{label:"Printable STL draft",description:"A geometry-only starting point"},{label:"3D preview",description:"Inspect and rotate before download"},{label:"Check in slicer",description:"Verify scale and supports before print"}]},zh:{title:"ççè¾å
¥å¦ä½åæ",titleAccent:"å¯æå° STL 模å",subtitle:"ä¸ä¼ å¾çãè¾å
¥æåæç¤ºè¯ï¼ææä¾å¤è§è§å¾çãæä»¬ä¼çæä¸ä¸ªå¯é¢è§ç STL è稿ï¼ä¸è½½åå
çæ¸
ç
1»æã",before:"çæå",yourInput:"ä½ çè¾å
¥",after:"çæå",stlPreview:"STL é¢è§",ready:"STL · å¯ä¸è½½",prompt:"å°å·§çéè²é¸ï¼å°åï¼å¯æå°æä»¶",style:"飿 ¼ï¼å¯æå°æä»¶",mode:"模å¼ï¼æ å",multiHint:"å¤è§åº¦å¾çæå©äºä¿ç主ä½è½®å»ï¼çææ´å¥½å¤æç STL è稿ã",promptLabel:"æç¤ºè¯",singleImageAlt:"ç¨äºå¾ç转 STL çå主ä½è¾å
¥å¾ç",inputView:"è¾å
¥è§è§",viewLabels:["æ£é¢","左侧","å³ä¾§","èé¢"],loadingPreview:"æ£å¨å è½½ STL é¢è§â¦",unavailablePreview:"ææ¶æ æ³æ¾ç¤ºé¢è§ã",tabs:{image:"å¾ç转 STL",text:"ææ¬çæ 3D",multi:"å¤å¾ / å¤è§è§"},chips:[{label:"å¯æå° STL è稿",description:"以å 使¨¡åä½ä¸ºèµ·ç¹"},{label:"3D é¢è§",description:"ä¸è½½åå
æè½¬æ£æ¥"},{label:"åçè½¯ä»¶æ£æ¥",description:"æå°åç¡®è®¤å°ºå¯¸ä¸æ¯æ"}]},fr:{title:"Voyez comment vos entrées deviennent",titleAccent:"des modèles STL imprimables",subtitle:"Importez une image, écrivez un prompt ou ajoutez plusieurs vues. Nous générons un brouillon STL propre à prévisualiser avant le téléchargement.",before:"Avant",yourInput:"Votre entrée",after:"Après",stlPreview:"Aperçu STL",ready:"STL · Prêt à télécharger",prompt:"Petit oiseau doré, bec pointu, figurine imprimable",style:"Style : figurine imprimable",mode:"Mode : standard",multiHint:"Plusieurs angles aident le brouillon STL à conserver la silhouette.",promptLabel:"Prompt",singleImageAlt:"Image dâun objet unique pour la conversion image vers STL",inputVie
1w:"vue dâentrée",viewLabels:["Face","Gauche","Droite","Dos"],loadingPreview:"Chargement de lâaperçu STLâ¦",unavailablePreview:"Lâaperçu est momentanément indisponible.",tabs:{image:"Image en STL",text:"Texte en 3D",multi:"Multi-image / Multi-vue"},chips:[{label:"Brouillon STL imprimable",description:"Un point de départ en géométrie seule"},{label:"Aperçu 3D",description:"Inspectez et faites pivoter avant de télécharger"},{label:"Vérifier dans le slicer",description:"Contrôlez l'échelle et les supports"}]},de:{title:"So werden Eingaben zu",titleAccent:"druckbaren STL-Modellen",subtitle:"Lade ein Bild hoch, schreibe einen Prompt oder nutze mehrere Ansichten. Wir erzeugen einen sauberen STL-Entwurf, den du vor dem Download prüfen kannst.",before:"Vorher",yourInput:"Deine Eingabe",after:"Nachher",stlPreview:"STL-Vorschau",ready:"STL · Bereit zum Download",prompt:"Kleiner goldener Vogel, spitzer Schnabel, druckbare Figur",style:"Stil: druckbare Figur",mode:"Modus: Standard",multiHint:"Mehrere Blickwinkel helfen dem STL-Entwurf bei der Silhouette.",promptLabel:"Beschreibung",singleImageAlt:"Einzelnes Eingabeobjekt für die Bild-zu-STL-Konvertierung",inputView:"Eingabeansicht",viewLabels:["Vorne","Links","Rechts","Hinten"],loadingPreview:"STL-Vorschau wird geladenâ¦",unavailablePreview:"Die Vorschau ist derzeit nicht verfügbar.",tabs:{image:"Bild zu STL",text:"Text zu 3D",multi:"Mehrere Bilder / Ansichten"},chips:[{label:"Druckbarer STL-Entwurf",description:"Ein Ausgangspunkt nur mit Geometrie"},{label:"3D-Vorschau",description:"Vor dem Download drehen und prüfen"},{label:"Im Slicer prüfen",description:"MaÃstab und Supports kontrollieren"}]},es:{title:"Mira cómo tus entradas se convierten en",titleAccent:"modelos STL imprimibles",subtitle:"Sube una imagen, escribe un prompt o aporta varias vistas. Generamos un borrador STL limpio que puedes previsualizar antes de descargar.",before:"Antes",yourInput:"Tu entrada",after:"Después",stlPreview:"Vista STL",ready:"STL · Listo para descargar",prompt:"Pájaro dorado pequeño, pico afilado, figura imprimible",style:"Estilo: figura imprimible",mode:"Modo: estándar",multiHint:"Varias vistas ayudan a conservar la silueta principal.",promptLabel:"Descripción",singleImageAlt:"Objeto único de entrada para convertir imagen a STL",inputVie
1w:"vista de entrada",viewLabels:["Frente","Izquierda","Derecha","Atrás"],loadingPreview:"Cargando vista previa STLâ¦",unavailablePreview:"La vista previa no está disponible ahora.",tabs:{image:"Imagen a STL",text:"Texto a 3D",multi:"Varias imágenes / vistas"},chips:[{label:"Borrador STL imprimible",description:"Un punto de partida solo geométrico"},{label:"Vista 3D",description:"Inspecciona y rota antes de descargar"},{label:"Revisar en slicer",description:"Verifica escala y soportes"}]},pt:{title:"Veja como entradas viram",titleAccent:"modelos STL imprimÃveis",subtitle:"Envie uma imagem, escreva um prompt ou forneça várias vistas. Geramos um rascunho STL limpo para pré-visualizar antes do download.",before:"Antes",yourInput:"Sua entrada",after:"Depois",stlPreview:"Prévia STL",ready:"STL · Pronto para baixar",prompt:"Pássaro dourado pequeno, bico afiado, miniatura imprimÃvel",style:"Estilo: figura imprimÃvel",mode:"Modo: padrão",multiHint:"Várias vistas ajudam o rascunho STL a manter a silhueta.",promptLabel:"Descrição",singleImageAlt:"Objeto único de entrada para conversão de imagem em STL",inputVie
1w:"vista de entrada",viewLabels:["Frente","Esquerda","Direita","Trás"],loadingPreview:"Carregando prévia STLâ¦",unavailablePreview:"A prévia não está disponÃvel no momento.",tabs:{image:"Imagem para STL",text:"Texto para 3D",multi:"Várias imagens / vistas"},chips:[{label:"Rascunho STL imprimÃvel",description:"Um ponto de partida apenas com geometria"},{label:"Prévia 3D",description:"Inspecione e gire antes de baixar"},{label:"Conferir no slicer",description:"Verifique escala e suportes"}]}},aj=[{id:"image",icon:ac.ImageIcon,model:"/examples/image-to-stl/before-after/car.glb"},{id:"text",icon:ak,model:"/examples/image-to-stl/before-after/bird.glb"},{id:"multi",icon:ad.Cuboid,model:"/examples/image-to-stl/before-after/multi.glb"}],aM=[{src:"/examples/image-to-stl/before-after/nick-front.webp",label:"Front"},{src:"/examples/image-to-stl/before-after/nick-left.webp",label:"Left"},{src:"/examples/image-to-stl/before-after/nick-right.webp",label:"Right"},{src:"/examples/image-to-stl/before-after/nick-back.webp",label:"Back"}];function aA(e){let t,i,r,s,l,d,u,c,m,h,p,g,f,v,x,b,y,w,T,S,P,k,L,D,j,M,A=(0,n.c)(58),{locale:C}=e,[E,_]=(0,o.useState)("image"),N=aD[C]??aD.en;A[0]!==E?(t=aj.find(e=>e.id===E)??aj[0],A[0]=E,A[1]=t):t=A[1];let B=t;return A[2]===Symbol.for("react.memo_cache_sentinel")?(i=(0,a.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 bg-[linear-gradient(to_right,rgb(79_70_229_/_0.055)_1px,transparent_1px),linear-gradient(to_bottom,rgb(14_165_233_/_0.05)_1px,transparent_1px)] [mask-image:radial-gradient(circle_at_center,black,transparent_72%)] bg-[size:42px_42px]"}),r=(0,a.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-10 mx-auto h-72 max-w-5xl rounded-full bg-[radial-gradient(circle,rgb(99_102_241_/_0.16),transparent_68%)] blur-3xl"}),A[2]=i,A[3]=r):(i=A[2],r=A[3]),A[4]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute left-4 top-28 h-44 w-44 rounded-[38px] border border-indigo-200/45 opacity-40 [transform:rotateX(62deg)_rotateZ(45deg)] dark:border-indigo-400/20"}),l=(0,a.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute right-8 top-20 hidden text-7xl font-black tracking-[0.22em] text-indigo-200/20 md:block",children:"STL"}),d=(0,a.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute bottom-16 right-20 hidden h-28 w-28 rounded-full border border-sky-200/50 opacity-50 md:block"}),A[4]=s,A[5]=l,A[6]=d):(s=A[4],l=A[5],d=A[6]),A[7]!==E||A[8]!==N.tabs?(u=aj.map(e=>{let t=e.icon,i=E===e.id;return(0,a.jsxs)("button",{type:"button",onClick:()=>_(e.id),className:(0,aL.cn)("inline-flex min-w-max flex-1 items-center justify-center gap-2 rounded-2xl px-4 py-3 text-sm font-semibold transition sm:text-base",i?"bg-gradient-to-r from-indigo-500 via-violet-500 to-sky-400 text-white shadow-lg shadow-indigo-500/25":"bg-white/55 text-slate-600 hover:bg-white/85 hover:text-slate-950 dark:bg-slate-950/45 dark:text-slate-300 dark:hover:bg-slate-900"),children:[(0,a.jsx)(t,{className:"size-4"}),N.tabs[e.id]]},e.id)}),A[7]=E,A[8]=N.tabs,A[9]=u):u=A[9],A[10]!==u?(c=(0,a.jsx)("div",{className:"relative mx-auto flex max-w-3xl gap-2 overflow-x-auto rounded-3xl border border-slate-200/70 bg-white/54 p-1.5 shadow-sm backdrop-blur md:justify-center dark:border-slate-800 dark:bg-slate-900/50",children:u}),A[10]=u,A[11]=c):c=A[11],A[12]!==N.titleAccent?(m=(0,a.jsx)("span",{className:"bg-gradient-to-r from-indigo-500 via-violet-500 to-sky-400 bg-clip-text text-transparent",children:N.titleAccent}),A[12]=N.titleAccent,A[13]=m):m=A[13],A[14]!==N.title||A[15]!==m?(h=(0,a.jsxs)("h2",{className:"text-3xl font-semibold tracking-tight text-slate-950 md:text-5xl dark:text-white",children:[N.title," ",m]}),A[14]=N.title,A[15]=m,A[16]=h):h=A[16],A[17]!==N.subtitle?(p=(0,a.jsx)("p",{className:"mx-auto mt-4 max-w-3xl text-base leading-7 text-slate-600 md:text-lg dark:text-slate-300",children:N.subtitle}),A[17]=N.subtitle,A[18]=p):p=A[18],A[19]!==h||A[20]!==p?(g=(0,a.jsxs)("div",{className:"relative z-10 mx-auto mt-8 max-w-4xl text-center",children:[h,p]}),A[19]=h,A[20]=p,A[21]=g):g=A[21],A[22]!==E||A[23]!==N?(f=(0,a.jsx)(aN,{mode:E,copy:N}),A[22]=E,A[23]=N,A[24]=f):f=A[24],A[25]!==N.before||A[26]!==N.yourInput||A[27]!==f?(v=(0,a.jsx)(a_,{tone:"before",eyebrow:N.before,title:N.yourInput,icon:ac.ImageIcon,children:f}),A[25]=N.before,A[26]=N.yourInput,A[27]=f,A[28]=v):v=A[28],A[29]===Symbol.for("react.memo_cache_sentinel")?(x=(0,a.jsx)("div",{className:"flex items-center justify-center",children:(0,a.jsxs)("div",{className:"flex size-14 items-center justify-center rounded-full border border-white/80 bg-white/75 shadow-[0_16px_42px_-22px_rgba(79,70,229,0.82)] ring-1 ring-indigo-100 backdrop-blur dark:border-slate-700 dark:bg-slate-900/70 dark:ring-slate-800",children:[(0,a.jsx)(an.ArrowRight,{className:"hidden size-7 text-violet-500 lg:block"}),(0,a.jsx)(ax,{className:"size-7 text-violet-500 lg:hidden"})]})}),A[29]=x):x=A[29],A[30]!==B.model||A[31]!==N.loadingPreview||A[32]!==N.unavailablePreview?(b=(0,a.jsx)(aV,{src:B.model,loadingLabel:N.loadingPreview,unavailableLabel:N.unavailablePreview},B.model),A[30]=B.model,A[31]=N.loadingPreview,A[32]=N.unavailablePreview,A[33]=b):b=A[33],A[34]===Symbol.for("react.memo_cache_sentinel")?(y=(0,a.jsx)("div",{className:"pointer-events-none absolute right-4 top-20 flex flex-col gap-2",children:[aS,aT,aP.Search,ay].map(aE)}),A[34]=y):y=A[34],A[35]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(aw,{className:"size-4 text-sky-500"}),A[35]=w):w=A[35],A[36]!==N.ready?(T=(0,a.jsxs)("div",{className:"pointer-events-none absolute bottom-5 left-5 inline-flex items-center gap-2 rounded-2xl border border-sky-100 bg-white/82 px-3 py-2 text-xs font-semibold text-slate-600 shadow-sm backdrop-blur dark:border-slate-700 dark:bg-slate-900/82 dark:text-slate-300",children:[w,N.ready]}),A[36]=N.ready,A[37]=T):T=A[37],A[38]===Symbol.for("react.memo_cache_sentinel")?(S=(0,a.jsx)(az,{}),A[38]=S):S=A[38],A[39]!==b||A[40]!==T?(P=(0,a.jsxs)("div",{className:"relative h-full min-h-[22rem] overflow-hidden rounded-[24px] bg-[radial-gradient(circle_at_50%_20%,rgb(255_255_255_/_0.96),rgb(226_232_240_/_0.62)_58%,rgb(219_234_254_/_0.42))] dark:bg-[radial-gradient(circle_at_50%_20%,rgb(30_41_59_/_0.92),rgb(15_23_42_/_0.98)_68%)]",children:[b,y,T,S]}),A[39]=b,A[40]=T,A[41]=P):P=A[41],A[42]!==N.after||A[43]!==N.stlPreview||A[44]!==P?(k=(0,a.jsx)(a_,{tone:"after",eyebrow:N.after,title:N.stlPreview,icon:ab.Box,children:P}),A[42]=N.after,A[43]=N.stlPreview,A[44]=P,A[45]=k):k=A[45],A[46]!==v||A[47]!==k?(L=(0,a.jsxs)("div",{className:"relative z-10 mt-8 grid items-stretch gap-5 lg:grid-cols-[1fr_auto_1fr] lg:gap-6",children:[v,x,k]}),A[46]=v,A[47]=k,A[48]=L):L=A[48],A[49]!==N.chips?(D=N.chips.map(aC),A[49]=N.chips,A[50]=D):D=A[50],A[51]!==D?(j=(0,a.jsx)("div",{className:"relative z-10 mx-auto mt-7 grid max-w-4xl gap-3 sm:grid-cols-3",children:D}),A[51]=D,A[52]=j):j=A[52],A[53]!==g||A[54]!==L||A[55]!==j||A[56]!==c?(M=(0,a.jsxs)("section",{className:"relative overflow-hidden bg-slate-50 px-4 py-14 sm:px-5 md:py-20 dark:bg-slate-950",children:[i,r,(0,a.jsx)("div",{className:"relative mx-auto max-w-7xl",children:(0,a.jsxs)("div",{className:"relative overflow-hidden rounded-[30px] border border-white/80 bg-white/70 px-4 py-6 shadow-[0_26px_90px_-58px_rgba(79,70,229,0.78)] ring-1 ring-indigo-100/70 backdrop-blur-2xl sm:px-6 md:rounded-[42px] md:px-10 md:py-9 dark:border-slate-800/80 dark:bg-slate-950/72 dark:ring-slate-800/80",children:[s,l,d,c,g,L,j]})})]}),A[53]=g,A[54]=L,A[55]=j,A[56]=c,A[57]=M):M=A[57],M}function aC(e,t){let i=[ad.Cuboid,ag.Sparkles,am.Layers3][t]??ag.Sparkles;return(0,a.jsxs)("div",{className:"flex min-h-20 items-center gap-3 rounded-2xl border border-slate-200/70 bg-white/65 px-4 py-3 shadow-sm backdrop-blur dark:border-slate-800 dark:bg-slate-900/56",children:[(0,a.jsx)("span",{className:"flex size-11 shrink-0 items-center justify-center rounded-2xl bg-gradient-to-br from-indigo-100 to-sky-100 text-indigo-500 shadow-sm dark:from-indigo-500/20 dark:to-sky-400/20 dark:text-sky-300",children:(0,a.jsx)(i,{className:"size-5"})}),(0,a.jsxs)("span",{children:[(0,a.jsx)("span",{className:"block text-sm font-semibold text-slate-950 dar
1k:text-white",children:e.label}),(0,a.jsx)("span",{className:"mt-0.5 block text-xs leading-5 text-slate-500 dark:text-slate-400",children:e.description})]})]},e.label)}function aE(e,t){return(0,a.jsx)("span",{className:"flex size-10 items-center justify-center rounded-xl border border-white/80 bg-white/78 text-slate-500 shadow-sm backdrop-blur dark:border-slate-700 dark:bg-slate-900/74 dark:text-slate-300",children:(0,a.jsx)(e,{className:"size-4"})},t)}function a_(e){let t,i,r,s,o,l,d,u=(0,n.c)(18),{eyebrow:c,title:m,icon:h,tone:p,children:g}=e,f="after"===p?"border-sky-100/90 bg-white/76 shadow-sky-950/[0.08] dark:border-slate-700 dark:bg-slate-900/76":"border-indigo-100/90 bg-white/62 shadow-indigo-950/[0.06] dark:border-slate-800 dark:bg-slate-900/62";return u[0]!==f?(t=(0,aL.cn)("relative min-h-[28rem] overflow-hidden rounded-[30px] border p-3 shadow-xl ring-1 ring-white/80 backdrop-blur-xl sm:p-4",f),u[0]=f,u[1]=t):t=u[1],u[2]!==h?(i=(0,a.jsx)("span",{className:"flex size-11 items-center justify-center rounded-2xl border border-white/80 bg-white/82 text-indigo-500 shadow-sm backdrop-blur dark:border-slate-700 dark:bg-slate-900/82 dark:text-sky-300",children:(0,a.jsx)(h,{className:"size-5"})}),u[2]=h,u[3]=i):i=u[3],u[4]!==c?(r=(0,a.jsx)("span",{className:"block text-base font-bold text-indigo-600 dark:text-sky-300",children:c}),u[4]=c,u[5]=r):r=u[5],u[6]!==m?(s=(0,a.jsx)("span",{className:"block text-xs font-medium text-slate-500 dark:text-slate-400",children:m}),u[6]=m,u[7]=s):s=u[7],u[8]!==r||u[9]!==s?(o=(0,a.jsxs)("span",{children:[r,s]}),u[8]=r,u[9]=s,u[10]=o):o=u[10],u[11]!==i||u[12]!==o?(l=(0,a.jsxs)("div",{className:"absolute left-5 top-5 z-10 flex items-center gap-3",children:[i,o]}),u[11]=i,u[12]=o,u[13]=l):l=u[13],u[14]!==g||u[15]!==t||u[16]!==l?(d=(0,a.jsxs)("article",{className:t,children:[l,g]}),u[14]=g,u[15]=t,u[16]=l,u[17]=d):d=u[17],d}function aN(e){let t,i,r,s=(0,n.c)(27),{mode:o,copy:d}=e;if("text"===o){let e,t,i,r,n;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,a.jsx)(ag.Sparkles,{className:"size-4"}),s[0]=e):e=s[0],s[1]!==d.promptLabel?(t=(0,a.jsxs)("div",{className:"mb-4 flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.16em] text-indigo-500",children:[e,d.promptLabel]}),s[1]=d.promptLabel,s[2]=t):t=s[2],s[3]!==d.prompt?(i=(0,a.jsxs)("p",{className:"text-xl font-semibold leading-8 text-slate-950 dark:text-white",children:["â",d.prompt,"â"]}),s[3]=d.prompt,s[4]=i):i=s[4],s[5]!==d.mode||s[6]!==d.style?(r=(0,a.jsx)("div",{className:"mt-5 flex flex-wrap gap-2",children:[d.style,d.mode].map(aB)}),s[5]=d.mode,s[6]=d.style,s[7]=r):r=s[7],s[8]!==t||s[9]!==i||s[10]!==r?(n=(0,a.jsx)("div",{className:"flex h-full min-h-[22rem] items-center justify-center rounded-[24px] bg-[linear-gradient(145deg,rgb(238_242_255_/_0.72),rgb(255_255_255_/_0.86)_55%,rgb(224_242_254_/_0.58))] px-5 pt-16 dark:bg-[linear-gradient(145deg,rgb(30_41_59_/_0.76),rgb(15_23_42_/_0.92))]",children:(0,a.jsxs)("div",{className:"w-full max-w-md rounded-[26px] border border-white/85 bg-white/76 p-5 shadow-[0_22px_60px_-36px_rgba(79,70,229,0.72)] backdrop-blur dark:border-slate-700 dark:bg-slate-900/78",children:[t,i,r]})}),s[8]=t,s[9]=i,s[10]=r,s[11]=n):n=s[11],n}if("multi"===o){let e,t,i,r;return s[12]!==d.inputView||s[13]!==d.viewLabels?(e=aM.map((e,t)=>(0,a.jsxs)("div",{className:"relative aspect-[4/3] overflow-hidden rounded-2xl border border-white/80 bg-white/70 shadow-sm dark:border-slate-700 dark:bg-slate-900/70",children:[(0,a.jsx)(l.default,{src:e.src,alt:`${d.viewLabels[t]} \xb7 ${d.inputView}`,fill:!0,sizes:"(max-width: 1024px) 45vw, 18vw",className:"object-cover"}),(0,a.jsx)("span",{className:"absolute bottom-2 left-2 rounded-full bg-white/78 px-2.5 py-1 text-[11px] font-semibold text-slate-600 shadow-sm backdrop-blur dark:bg-slate-900/78 dark:text-slate-300",children:d.viewLabels[t]})]},e.src)),s[12]=d.inputView,s[13]=d.viewLabels,s[14]=e):e=s[14],s[15]!==e?(t=(0,a.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:e}),s[15]=e,s[16]=t):t=s[16],s[17]!==d.multiHint?(i=(0,a.jsx)("p",{className:"mt-4 rounded-2xl border border-white/75 bg-white/68 px-4 py-3 text-sm leading-6 text-slate-600 backdrop-blur dark:border-slate-700 dark:bg-slate-900/68 dark:text-slate-300",children:d.multiHint}),s[17]=d.multiHint,s[18]=i):i=s[18],s[19]!==t||s[20]!==i?(r=(0,a.jsxs)("div",{className:"flex h-full min-h-[22rem] flex-col justify-end rounded-[24px] bg-[linear-gradient(145deg,rgb(248_250_252_/_0.9),rgb(238_242_255_/_0.72),rgb(236_254_255_/_0.55))] p-4 pt-20 dark:bg-[linear-gradient(145deg,rgb(30_41_59_/_0.8),rgb(15_23_42_/_0.95))]",children:[t,i]}),s[19]=t,s[20]=i,s[21]=r):r=s[21],r}return s[22]!==d.singleImageAlt?(t=(0,a.jsx)(l.default,{src:"/examples/image-to-stl/before-after/car.webp",alt:d.singleImageAlt,fill:!0,sizes:"(max-width: 1024px) 92vw, 38vw",className:"object-contain p-8 pt-20",priority:!1}),s[22]=d.singleImageAlt,s[23]=t):t=s[23],s[24]===Symbol.for("react.memo_cache_sentinel")?(i=(0,a.jsx)("div",{className:"pointer-events-none absolute inset-x-10 bottom-8 h-10 rounded-full bg-indigo-950/10 blur-2xl"}),s[24]=i):i=s[24],s[25]!==t?(r=(0,a.jsxs)("div",{className:"relative h-full min-h-[22rem] overflow-hidden rounded-[24px] bg-[linear-gradient(145deg,rgb(245_243_255_/_0.84),rgb(255_255_255_/_0.82)_55%,rgb(224_242_254_/_0.58))] pt-16 dark:bg-[linear-gradient(145deg,rgb(30_41_59_/_0.8),rgb(15_23_42_/_0.95))]",children:[t,i]}),s[25]=t,s[26]=r):r=s[26],r}function aB(e){return(0,a.jsx)("span",{className:"rounded-full border border-indigo-100 bg-indigo-50/80 px-3 py-1 text-xs font-semibold text-indigo-600 dark:border-indigo-400/20 dark:bg-indigo-400/10 dark:text-indigo-200",children:e},e)}function aV({src:t,loadingLabel:i,unavailableLabel:r}){let s=(0,o.useRef)(null),[n,l]=(0,o.useState)("loading");return(0,o.useEffect)(()=>{let i=s.current;if(!i)return;let r=!1,a=()=>{};return l("loading"),(async()=>{let s,n=await e.A(990563),{OrbitControls:o}=await e.A(808720),{GLTFLoader:d}=await e.A(925494),{DRACOLoader:u}=await e.A(73919);if(r)return;let c=new n.Scene,m=new n.PerspectiveCamera(38,1,.1,1e3),h=new n.WebGLRenderer({antialias:!0,alpha:!0});h.setPixelRatio(Math.min(window.devicePixelRatio,2)),h.outputColorSpace
1=n.SRGBColorSpace,h.domElement.className="block h-full w-full cursor-grab active:cursor-grabbing",i.appendChild(h.domElement);let p=new u().setDecoderPath("/vendor/three/draco/"),g=new d().setDRACOLoader(p),f=new o(m,h.domElement);f.enableDamping=!0,f.dampingFactor=.08,f.autoRotate=!0,f.autoRotateSpeed=.85,f.enablePan=!1;let v=[new n.HemisphereLight(0xffffff,9741240,3.2),new n.DirectionalLight(0xffffff,2.9),new n.DirectionalLight(9684477,1.25)];v[1].position.set(50,70,80),v[2].position.set(-50,30,-50),c.add(...v);let x=new n.GridHelper(120,24,0xcbd5e1,0xe2e8f0);x.material.opacity=.45,x.material.transparent=!0,c.add(x);let b=new Set,y=new Set,w=0,T=()=>{let e=i.getBoundingClientRect(),t=Math.max(Math.floor(e.width),1),r=Math.max(Math.floor(e.height),1);h.setSize(t,r,!1),m.aspect=t/r,m.updateProjectionMatrix()},S=()=>{f.update(),h.render(c,m),w=requestAnimationFrame(S)};try{let e,a,o,d,u,h,p;(s=new ResizeObserver(T)).observe(i),T();let v=await g.loadAsync(t);if(r)return;let w=v.scene;e=new n.MeshStandardMaterial({color:"#f8fafc",metalness:.02,roughness:.82}),y.add(e),w.traverse(t=>{if(!t.isMesh)return;t.castShadow=!0,t.receiveShadow=!0,t.geometry&&b.add(t.geometry);let i=t.material;Array.isArray(i)?i.forEach(e=>y.add(e)):i&&y.add(i),t.material=e}),c.add(w),a=new n.Box3().setFromObject(w),o=new n.Vector3,d=new n.Vector3,a.getCenter(o),a.getSize(d),w.position.sub(o),(u=new n.Box3().setFromObject(w)).getSize(d),h=Math.max(d.x,d.y,d.z,1),p=1.95*Math.abs(h/2/Math.tan(n.MathUtils.degToRad(m.fov/2))),m.near=Math.max(h/1e3,.01),m.far=Math.max(8*p,18*h),m.position.set(.52*p,.36*p,p),m.lookAt(0,0,0),m.updateProjectionMatrix(),f.target.set(0,0,0),f.minDistance=Math.max(.6*h,1),f.maxDistance=Math.max(3*p,50),f.update(),x.scale.setScalar(Math.max(h/80,.5)),x.position.y=u.min.y-Math.max(.02*h,.5),l("ready"),S()}catch{r||(l("error"),S())}a=()=>{cancelAnimationFrame(w),s?.disconnect(),f.dispose(),p.dispose(),b.forEach(e=>e.dispose()),y.forEach(e=>e.dispose()),h.dispose(),h.domElement.remove()}})(),()=>{r=!0,a()}},[t]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{ref:s,className:"absolute inset-0"}),"loading"===n?(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-white/40 text-sm font-medium text-slate-500 backdrop-blur-sm dark:bg-slate-950/40 dark:text-slate-300",children:i}):null,"error"===n?(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center p-6 text-center text-sm font-medium text-slate-500 dark:text-slate-300",children:r}):null]})}function az(){let e,t=(0,n.c)(1);return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,a.jsxs)("div",{className:"pointer-events-none absolute bottom-6 right-6 size-20 text-[11px] font-bold",children:[(0,a.jsx)("span",{className:"absolute bottom-8 right-4 h-9 w-0.5 origin-bottom -rotate-90 bg-red-500"}),(0,a.jsx)("span",{className:"absolute bottom-8 right-3 text-red-500",children:"X"}),(0,a.jsx)("span",{className:"absolute bottom-8 right-4 h-9 w-0.5 origin-bottom rotate-[28deg] bg-emerald-500"}),(0,a.jsx)("span",{className:"absolute bottom-12 right-9 text-emerald-500",children:"Y"}),(0,a.jsx)("span",{className:"absolute bottom-8 right-4 h-9 w-0.5 origin-bottom -rotate-[32deg] bg-blue-500"}),(0,a.jsx)("span",{className:"absolute bottom-11 right-0 text-blue-500",children:"Z"})]}),t[0]=e):e=t[0],e}let aI=[{title:{en:"Castle architecture",fr:"Architecture de château",de:"Burgarchitektur",es:"Arquitectura de castillo",pt:"Arquitetura de castelo",zh:"åå ¡å»ºç"},description:{en:"A detailed castle-style model preview generated from an image prompt.",fr:"Un aperçu détaillé de modèle de style château généré à partir dâune image.",de:"Eine detaillierte Vorschau eines burgartigen Modells, generiert aus einem Bild.",es:"Una vista previa detallada de un modelo estilo castillo generado desde una imagen.",pt:"Uma prévia detalhada de modelo em estilo castelo gerada a partir de uma imagem.",zh:"ç±å¾ççæçåå ¡é£æ ¼ 3D 模åé¢è§ã"},image:"/examples/image-to-stl/imagetostl-castle-poster.jpg",video:"/examples/image-to-stl/imagetostl-castle.mp4",alt:{en:"Castle architecture 3D model example",fr:"Exemple de modèle 3D dâarchitecture de château",de:"Beispiel eines 3D-Modells für Burgarchitektur",es:"Ejemplo de modelo 3D de arquitectura de castillo",pt:"Exemplo de modelo 3D de arquitetura de castelo",zh:"åå ¡å»ºç 3D 模å示ä¾"},source:"imagetostl.org"},{title:{en:"Mechanical design",fr:"Conception mécanique",de:"Mechanisches Design",es:"Diseño mecánico",pt:"Design mecânico",zh:"æºæ¢°è®¾è®¡"},description:{en:"A hard-surface mechanical model example for engineering-style visuals.",fr:"Un exemple de modèle mécanique à surfaces dures pour des visuels de style ingénierie.",de:"Ein mechanisches Hard-Surface-Modellbeispiel für technische Visualisierungen.",es:"Un ejemplo de modelo mecánico de superficie dura para visuales de estilo ingenierÃa.",pt:"Um exemplo de modelo mecânico hard-surface para visuais de estilo engenharia.",zh:"ç¡¬è¡¨é¢æºæ¢°æ¨¡å示ä¾ï¼éåå·¥ç¨é£æ ¼è§è§åèã"},image:"/examples/image-to-stl/imagetostl-mechanical-poster.jpg",video:"/examples/image-to-stl/imagetostl-mechanical.mp4",alt:{en:"Mechanical design 3D model example",fr:"Exemple de modèle 3D de conception mécanique",de:"Beispiel eines 3D-Modells für mechanisches Design",es:"Ejemplo de modelo 3D de diseño mecánico",pt:"Exemplo de modelo 3D de design mecânico",zh:"æºæ¢°è®¾è®¡ 3D 模å示ä¾"},source:"imagetostl.org"},{title:{en:"Ship design",fr:"Conception de navire",de:"Schiffsdesign",es:"Diseño de barco",pt:"Design de navio",zh:"è°è¹è®¾è®¡"}
1,description:{en:"A ship-like object converted into a detailed 3D model preview.",fr:"Un objet de type navire converti en aperçu détaillé de modèle 3D.",de:"Ein schiffsähnliches Objekt, umgewandelt in eine detaillierte 3D-Modellvorschau.",es:"Un objeto tipo barco convertido en una vista previa detallada de modelo 3D.",pt:"Um objeto semelhante a navio convertido em uma prévia detalhada de modelo 3D.",zh:"ç±å¾ç转æ¢çæçè°è¹ 3D 模åé¢è§ã"},image:"/examples/image-to-stl/imagetostl-ship-poster.jpg",video:"/examples/image-to-stl/imagetostl-ship.mp4",alt:{en:"Ship design 3D model example",fr:"Exemple de modèle 3D de conception de navire",de:"Beispiel eines 3D-Modells für Schiffsdesign",es:"Ejemplo de modelo 3D de diseño de barco",pt:"Exemplo de modelo 3D de design de navio",zh:"è°è¹è®¾è®¡ 3D 模å示ä¾"},source:"imagetostl.org"},{title:{en:"Fantasy armor model",fr:"Modèle dâarmure fantasy",de:"Fantasy-Rüstungsmodell",es:"Modelo de armadura fantástica",pt:"Modelo de armadura fantástica",zh:"å¥å¹»çç²æ¨¡å"},description:{en:"A Meshy Hero GLB model rendered into a looping video preview.",fr:"Un modèle GLB Meshy Hero rendu en aperçu vidéo en boucle.",de:"Ein Meshy-Hero-GLB-Modell als geloopte Videovorschau gerendert.",es:"Un modelo GLB de Meshy Hero renderizado como vista previa en video en bucle.",pt:"Um modelo GLB do Meshy Hero renderizado em uma prévia de vÃdeo em loop.",zh:"Meshy Hero GLB æ¨¡åæ¸²æç循ç¯è§é¢é¢è§ã"},image:"/examples/image-to-stl/meshy-hero-model-1-poster.jpg",video:"/examples/image-to-stl/meshy-hero-model-1.webm",alt:{en:"Fantasy armor 3D model video preview",fr:"Aperçu vidéo de modèle 3D dâarmure fantasy",de:"Videovorschau eines Fantasy-Rüstungsmodells in 3D",es:"Vista previa en video de modelo 3D de armadura fantástica",pt:"Prévia em vÃdeo de modelo 3D de armadura fantástica",zh:"å¥å¹»çç² 3D 模åè§é¢é¢è§"},source:"meshy.ai"},{title:{en:"Cybernetic hand model",fr:"Modèle de main cybernétique",de:"Kybernetisches Handmodell",es:"Modelo de mano cibernética",pt:"Modelo de mão cibernética",zh:"æºæ¢°æè模å"},description:{en:"A Meshy Hero GLB asset recorded as a smooth rotating WebM preview.",fr:"Un asset GLB Meshy Hero enregistré comme aperçu WebM en rotation fluide.",de:"Ein Meshy-Hero-GLB-Asset als sanft rotierende WebM-Vorschau aufgenommen.",es:"Un asset GLB de Meshy Hero grabado como vista previa WebM con rotación suave.",pt:"Um asset GLB do Meshy Hero gravado como prévia WebM com rotação suave.",zh:"Meshy Hero GLB èµäº§å½å¶çå¹³æ»æè½¬ WebM é¢è§ã"},image:"/examples/image-to-stl/meshy-hero-model-2-poster.jpg",video:"/examples/image-to-stl/meshy-hero-model-2.webm",alt:{en:"Cybernetic hand 3D model video preview",fr:"Aperçu vidéo de modèle 3D de main cybernétique",de:"Videovorschau eines kybernetischen Handmodells in 3D",es:"Vista previa en video de modelo 3D de mano cibernética",pt:"Prévia em vÃdeo de modelo 3D de mão cibernética",zh:"æºæ¢°æè 3D 模åè§é¢é¢è§"},source:"meshy.ai"},{title:{en:"Sculpture bust model",fr:"Modèle de buste sculpté",de:"Skulpturenbüste",es:"Modelo de busto escultórico",pt:"Modelo de busto esculpido",zh:"éå¡å身å"},description:{en:"A Meshy Hero GLB example converted into a lightweight gallery video.",fr:"Un exemple GLB Meshy Hero converti en vidéo de galerie légère.",de:"Ein Meshy-Hero-GLB-Beispiel, konvertiert in ein leichtes Galerievideo.",es:"Un ejemplo GLB de Meshy Hero convertido en un video ligero de galerÃa.",pt:"Um exemplo GLB do Meshy Hero convertido em um vÃdeo leve de galeria.",zh:"Meshy Hero GLB 示ä¾è½¬æ¢çè½»éç»å»è§é¢ã"},image:"/examples/image-to-stl/meshy-hero-model-3-poster.jpg",video:"/examples/image-to-stl/meshy-hero-model-3.webm",alt:{en:"Sculpture bust 3D model video preview",fr:"Aperçu vidéo de modèle 3D de buste sculpté",de:"Videovorschau eines 3D-Modells einer Skulpturenbüste",es:"Vista previa en video de modelo 3D de busto escultórico",pt:"Prévia em vÃdeo de modelo 3D de busto esculpido",zh:"éå¡å身å 3D 模åè§é¢é¢è§"},source:"meshy.ai"}];function aR(e){let t,i,r,s,o,l,d,u,c=(0,n.c)(21),{locale:m,title:h,description:p,items:g}=e,f=void 0===m?"en":m,v=void 0===g?aI:g;c[0]!==f?(t=f.split("-"),c[0]=f,c[1]=t):t=c[1];let x=t[0];c[2]!==x?(i=e=>e[x]??e.en,c[2]=x,c[3]=i):i=c[3];let b=i;if(c[4]!==h?(r=(0,a.jsx)("h2",{className:"mt-3 text-3xl font-semibold tracking-tight md:text-4xl",children:h}),c[4]=h,c[5]=r):r=c[5],c[6]!==p?(s=(0,a.jsx)("p",{className:"text-muted-foreground mt-4",children:p}),c[6]=p,c[7]=s):s=c[7],c[8]!==r||c[9]!==s?(o=(0,a.jsxs)("div",{className:"mb-10 max-w-3xl",children:[r,s]}),c[8]=r,c[9]=s,c[10]=o):o=c[10],c[11]!==v||c[12]!==b){let e;c[14]!==b?(e=e=>(0,a.jsxs)("article",{className:"bg-card overflow-hidden rounded-3xl border shadow-sm transition hover:-translate-y-0.5 hover:shadow-md",children:[(0,a.jsx)("div",{className:"bg-muted relative aspect-[4/3]",children:e.video?(0,a.jsx)("video",{src:e.video,poster:e.image,"aria-label":b(e.alt),autoPlay:!0,muted:!0,loop:!0,playsInl
1ine:!0,preload:"metadata",className:"h-full w-full object-cover"}):(0,a.jsx)("img",{src:e.image,alt:b(e.alt),loading:"lazy",className:"h-full w-full object-cover"})}),(0,a.jsxs)("div",{className:"p-5",children:[(0,a.jsx)("h3",{className:"mt-2 text-lg font-semibold",children:b(e.title)}),(0,a.jsx)("p",{className:"text-muted-foreground mt-2 text-sm leading-6",children:b(e.description)})]})]},`${e.source}-${e.title.en}`),c[14]=b,c[15]=e):e=c[15],l=v.map(e),c[11]=v,c[12]=b,c[13]=l}else l=c[13];return c[16]!==l?(d=(0,a.jsx)("div",{className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-3",children:l}),c[16]=l,c[17]=d):d=c[17],c[18]!==o||c[19]!==d?(u=(0,a.jsxs)("section",{id:"examples",className:"mx-auto max-w-7xl px-5 py-16 md:py-24",children:[o,d]}),c[18]=o,c[19]=d,c[20]=u):u=c[20],u}var aF=e.i(525600),aG=e.i(312063),aO=e.i(62361),aU=e.i(311079);let aq=[{id:"image-to-stl",label:{en:"Image to STL",fr:"Image en STL",de:"Bild zu STL",es:"Imagen a STL",pt:"Imagem para STL",zh:"å¾ç转 STL"},icon:ac.ImageIcon},{id:"text-to-3d",label:{en:"Text to 3D",fr:"Texte en 3D",de:"Text zu 3D",es:"Texto a 3D",pt:"Texto para 3D",zh:"ææ¬ç 3D"},icon:aF.Text},{id:"multi-image",label:{en:"Multi image",fr:"Multi-image",de:"Mehrere Bilder",es:"Multi imagen",pt:"Multi imagem",zh:"å¤è§è§"},icon:ab.Box}];function aW(e){let t,i,r,s,l,d,u,c=(0,n.c)(21),{locale:m}=e,[h,p]=(0,o.useState)("image-to-stl");return c[0]!==m||c[1]!==h?(t=aq.map(e=>{let t=e.icon,i=h===e.id;return(0,a.jsxs)("button",{type:"button",onClick:()=>p(e.id),className:(0,aL.cn)("flex min-h-11 items-center justify-center gap-1.5 rounded-xl px-2 py-2 text-center transition sm:px-3",i?"bg-white text-slate-950 shadow-sm ring-1 ring-slate-200/70 dark:bg-slate-800 dark:text-slate-50 dark:ring-slate-700":"text-slate-500 hover:bg-white/55 hover:text-slate-900 dark:text-slate-400 dark:hover:bg-slate-800/70 dark:hover:text-slate-100"),children:[(0,a.jsx)(t,{className:"size-4"}),(0,a.jsx)("span",{children:e.label[m]??e.label.en})]},e.id)}),c[0]=m,c[1]=h,c[2]=t):t=c[2],c[3]!==t?(i=(0,a.jsx)("div",{className:"border-b border-slate-200/70 bg-white/55 px-3 py-3 transition-colors sm:px-5 dark:border-slate-800/80 dark:bg-slate-950/60",children:(0,a.jsx)("div",{className:"mx-auto grid max-w-2xl grid-cols-3 rounded-2xl border border-slate-200/70 bg-slate-100/70 p-1 text-sm font-semibold shadow-inner shadow-slate-950/[0.03] transition-colors dark:border-slate-800 dark:bg-slate-900/80 dark:shadow-black/20",children:t})}),c[3]=t,c[4]=i):i=c[4],c[5]!==m||c[6]!==h?(r="image-to-stl"===h&&(0,a.jsx)(aU.UploadStudio,{locale:m,sectionId:void 0}),c[5]=m,c[6]=h,c[7]=r):r=c[7],c[8]!==m||c[9]!==h?(s="text-to-3d"===h&&(0,a.jsx)(aO.TextTo3D,{locale:m}),c[8]=m,c[9]=h,c[10]=s):s=c[10],c[11]!==m||c[12]!==h?(l="multi-image"===h&&(0,a.jsx)(aG.MultiImageUpload,{locale:m}),c[11]=m,c[12]=h,c[13]=l):l=c[13],c[14]!==r||c[15]!==s||c[16]!==l?(d=(0,a.jsxs)("div",{className:"p-3 sm:p-5 lg:p-6",children:[r,s,l]}),c[14]=r,c[15]=s,c[16]=l,c[17]=d):d=c[17],c[18]!==i||c[19]!==d?(u=(0,a.jsxs)("div",{children:[i,d]}),c[18]=i,c[19]=d,c[20]=u):u=c[20],u}let aH=[{alt:"Upload JPG PNG WEBP image for STL conversion",accent:"blue",cardClass:"border-blue-200/80 bg-[linear-gradient(145deg,rgb(239_246_255_/_0.96),rgb(255_255_255_/_0.88)_56%,rgb(219_234_254_/_0.86))] shadow-blue-950/10",glowClass:"bg-blue-300/30",imageClass:"translate-y-1 scale-[1.23]",numberClass:"text-blue-600 shadow-blue-400/20 ring-blue-200/80",src:"/images/image-to-stl/workflow/upload-image.png"},{alt:"AI generates a wireframe 3D model from an image",accent:"violet",cardClass:"border-violet-200/80 bg-[linear-gradient(145deg,rgb(245_243_255_/_0.96),rgb(255_255_255_/_0.88)_54%,rgb(237_233_254_/_0.88))] shadow-violet-950/10",glowClass:"bg-violet-300/30",imageClass:"translate-y-1 scale-[1.18] rotate-[-8deg]",numberClass:"text-violet-600 shadow-violet-400/20 ring-violet-200/80",src:"/images/image-to-stl/workflow/generate-stl.png"},{alt:"Inspect generated low-poly 3D model preview",accent:"cyan",cardClass:"border-cyan-200/80 bg-[linear-gradient(145deg,rgb(236_254_255_/_0.96),rgb(255_255_255_/_0.88)_56%,rgb(224_242_254_/_0.88))] shadow-cyan-950/10",glowClass:"bg-cyan-300/30",imageClass:"translate-y-2 scale-[1.19] rotate-[-4deg]",numberClass:"text-cyan-600 shadow-cyan-400/20 ring-cyan-200/80",src:"/images/image-to-stl/workflow/inspect-model.png"},{alt:"Download print-ready STL model for 3D printing",accent:"emerald",cardClass:"border-emerald-200/80 bg-[linear-gradient(145deg,rgb(240_253_244_/_0.96),rgb(255_255_255_/_0.88)_55%,rgb(220_252_231_/_0.86))] shadow-emerald-950/10",glowClass:"bg-emerald-300/30",imageClass:"translate-y-1 scale-[1.2]",numberClass:"text-emerald-600 shadow-emerald-400/20 ring-emerald-200/80",src:"/images/image-to-stl/workflow/print-ready.png"}],a$={hidden:{opacity:0,y:24},visible:{opacity:1,y:0,transition:{duration:.8,staggerChildren:.12}}},aJ={hidden:{opacity:0,y:24},visible:{opacity:1,y:0,transition:{duration:.6,ease:"easeOut"}}};function aK(){let e,t,i,r,s,l,d=(0,n.c)(6),u=(0,o.useRef)(null);d[0]===Symbol.for("react.memo_cache_sentinel")?(e={x:0,y:0},d[0]=e):e=d[0];let c=(0,o.useRef)(e);d[1]===Symbol.for("react.memo_cache_sentinel")?(t={x:0,y:0},d[1]=t):t=d[1];let m=(0,o.useRef)(t);return d[2]===Symbol.for("react.memo_cache_sentinel")?(i=()=>{let e,t=u.current;if(!t)return;let i=t.getContext("2d");if(!i)return;let r=0,s=aY,a=s(),n=new MutationObserver(()=>{a=s()});n.observe(document.documentElement,{attributes:!0,attributeFilter:["class","data-theme"]});let o=window.matchMedia("(prefers-reduced-motion: reduce)").matches,l=o?10:70,d=o?160:320,h=o?.04:.1,p=()=>{let e=t.getBoundingClientRect(),r=window.devicePixelRatio||1;t.width=Math.max(1,Math.floor(e.width*r)),t.height=Math.max(1,Math.floor(e.height*r)),i.setTransform(r,0,0,r,0,0)},g=()=>({height:t.height/(window.devicePixelRatio||1),width:t.width/(window.devicePixelRatio||1)}),f=()=>{let{height:e,width:t}=g(),i={x:t/2,y:e/2};c.current=i,m.current=i},v=()=>{p(),f()},x=e=>{let i=t.getBoundingClientRect();m.current={x:e.clientX-i.left,y:e.clientY-i.top}},b=()=>{f()};p(),f(),window.addEventListener("resize",v),window.addEventListener("mousemove",x),window.addEventListener("mouseleave",b);let y=e=>{let{height:t,width:s}=g();i.save(),i.beginPath();for(let a=0;a<=s;a+=4){let s=a-c.current.x,n=t/2-c.current.y,o=Math.max(0,1-Math.sqrt(s*s+n*n)/d)*l*Math.sin(.001*r+.01*a+e.offset),u=t/2+Math.sin(a*e.frequency+.002*r+e.offset)*e.amplitude+Math.sin(a*e.frequency*.4+.003*r)*(.45*e.amplitude)+o;0===a?i.moveTo(a,u):i.lineTo(a,u)}
1i.lineWidth=2.5,i.strokeStyle=e.color,i.globalAlpha=e.opacity,i.shadowBlur=35,i.shadowColor=e.color,i.stroke(),i.restore()},w=()=>{let{height:t,width:s}=g();r+=1,c.current.x=c.current.x+(m.current.x-c.current.x)*h,c.current.y=c.current.y+(m.current.y-c.current.y)*h;let n=i.createLinearGradient(0,0,0,t);n.addColorStop(0,a.backgroundTop),n.addColorStop(1,a.backgroundBottom),i.fillStyle=n,i.fillRect(0,0,s,t),i.globalAlpha=1,i.shadowBlur=0,a.wavePalette.forEach(y),e=window.requestAnimationFrame(w)};return e=window.requestAnimationFrame(w),()=>{window.removeEventListener("resize",v),window.removeEventListener("mousemove",x),window.removeEventListener("mouseleave",b),cancelAnimationFrame(e),n.disconnect()}},r=[],d[2]=i,d[3]=r):(i=d[2],r=d[3]),(0,o.useEffect)(i,r),d[4]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)("canvas",{ref:u,className:"absolute inset-0 h-full w-full","aria-hidden":"true"}),d[4]=s):s=d[4],d[5]===Symbol.for("react.memo_cache_sentinel")?(l=(0,a.jsxs)("div",{className:"absolute inset-0 -z-10 overflow-hidden",children:[s,(0,a.jsxs)("div",{className:"pointer-events-none absolute inset-0",children:[(0,a.jsx)("div",{className:"bg-primary/12 absolute top-[-6rem] right-[10%] h-[24rem] w-[24rem] rounded-full blur-3xl"}),(0,a.jsx)("div",{className:"absolute bottom-[-8rem] left-[8%] h-[20rem] w-[28rem] rounded-full bg-[#ffb347]/12 blur-3xl"}),(0,a.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_center,transparent_0%,transparent_58%,var(--background)_100%)]"})]})]}),d[5]=l):l=d[5],l}function aY(){let e=getComputedStyle(document.documentElement),t=(t,i)=>{let r=void 0===i?1:i,s=document.createElement("div");s.style.position="absolute",s.style.visibility="hidden",s.style.width="1px",s.style.height="1px",document.body.appendChild(s);let a=`rgba(255, 255, 255, ${r})`;for(let i of t)if(e.getPropertyValue(i).trim()){s.style.backgroundColor=`var(${i})`;let e=getComputedStyle(s).backgroundColor;if(e&&"rgba(0, 0, 0, 0)"!==e){if(r<1){let t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/);a=t?`rgba(${t[1]}, ${t[2]}, ${t[3]}, ${r})`:e}else a=e;break}}return document.body.removeChild(s),a};return{backgroundTop:t(["--background"],1),backgroundBottom:t(["--muted","--background"],.95),wavePalette:[{offset:0,amplitude:70,frequency:.003,color:t(["--primary"],.8),opacity:.45},{offset:Math.PI/2,amplitude:90,frequency:.0026,color:t(["--accent","--primary"],.7),opacity:.35},{offset:Math.PI,amplitude:60,frequency:.0034,color:t(["--secondary","--foreground"],.65),opacity:.3},{offset:1.5*Math.PI,amplitude:80,frequency:.0022,color:t(["--primary-foreground","--foreground"],.25),opacity:.25},{offset:2*Math.PI,amplitude:55,frequency:.004,color:t(["--foreground"],.2),opacity:.2}]}}let aX={capabilityItems:["4 image formats · Max 8 MB","3 generation modes · 2â4 credits","Estimated generation · ~30â90 seconds","Browser 3D preview · STL download"],workflow:[{title:"Upload",description:"Choose one clear image with a visible subject and simple background."},{title:"Generate",description:"AI creates STL geometry from the source image."},{title:"Inspect",description:"Rotate the preview and check the model before download."},{title:"Print",description:"Open the STL in your slicer to set scale, supports, and orientation."}],inputTips:[{title:"Use one clear subject",description:"Crop the image when the object is small or surrounded by clutter."},{title:"Prefer simple backgrounds",description:"Clean contrast helps the model infer the outline and main form."},{title:"Keep edges visible",description:"Sharp silhouettes usually produce more useful STL drafts."},{title:"Avoid blur and dark lighting",description:"Crowded or low-light images are harder to turn into printable geometry."}],useCases:[{title:"3D printing drafts",description:"Turn reference images into first-pass STL geometry."},{title:"Etsy product tests",description:"Prototype charms, ornaments, reliefs, and keepsakes before refining."},{title:"Custom gifts",description:"Create printable model ideas from pets, objects, and drawings."},{title:"Classroom demos",description:"Show how a 2D image can become a physical model."},{title:"Maker experiments",description:"Try silhouettes, icons, and product shapes quickly."}],included:["Turn clear images into STL drafts","Preview the model before download","Test gifts, decor, and shop ideas","Download STL for slicer review","Use fast, standard, or advanced modes","Credits return if generation fails"],notIncluded:["Check
1scale and supports before printing","Use CAD for exact mechanical dimensions","Use modeling tools for production cleanup","Prepare more views for accurate reconstruction","Use asset tools for game-ready characters"],faqs:[["How do I convert an image to STL?","Upload one JPG, PNG, JPEG, or WEBP image, start generation, preview the 3D result, then download the STL file. For printing, open the STL in your slicer and check scale, orientation, and supports."],["Can I convert a JPG or PNG to STL?","Yes. The converter accepts JPG, JPEG, PNG, and WEBP images up to 8MB. Format-specific pages are available for PNG to STL and JPG to STL."],["Which images give the best STL results?","Use a clear image with one main subject, visible edges, and a simple background. Crop away clutter before uploading when possible."],["Is the generated STL ready for 3D printing?","It is a printable STL draft. Before printing, check the model in your slicer for scale, manifoldness, wall thickness, orientation, and supports."],["Which generation mode should I choose?","Use Fast for quick shape tests, Standard for most printable STL drafts, and Advanced when you want a more detailed starting point before cleanup."],["Can I preview the model before downloading?","Yes. After generation, you can rotate the 3D preview in the browser and decide whether the STL is worth downloading or refining."],["Can I use it for gifts or Etsy product ideas?","Yes. It is useful for testing charms, ornaments, keepsakes, decor, and product concepts. You should still verify source-image rights, print quality, and product safety."],["Can I create a model from text instead of an image?","Yes. The site includes a Text to 3D entry so you can describe an object and generate a 3D model when you do not have a source image."],["Can I use multiple images for better results?","Yes. The multi-image workflow lets you add extra views when one photo is not enough, which can help with subjects that need more shape information."],["Can I convert existing 3D files too?","Yes. The format converter supports workflows such as OBJ, GLB, or FBX to STL and other downloadable formats, depending on the page you open."],["Does ImageToSTL create color STL files?","The main workflow focuses on downloadable STL for print review. If you need color, textures, or game-ready formats, plan for a 3D editor or a dedicated asset workflow after generation."],["What happens if generation fails?","Failed generation tasks automatically return credits."],["Do I need CAD or Blender experience?","No experience is needed to generate and preview the STL. For exact dimensions, production cleanup, or advanced editing, CAD or Blender can help after download."]]},aZ={en:aX,fr:{capabilityItems:["4 formats dâimage · 8 Mo max.","3 modes de génération · 2â4 crédits","Génération estimée · ~30â90 secondes","Aperçu 3D dans le navigateur · STL"],workflow:[{title:"Importer",description:"Choisissez une image claire avec un sujet visible et un fond simple."},{title:"Générer",description:"LâIA crée une géométrie STL à partir de lâimage source."},{title:"Inspecter",description:"Faites tourner lâaperçu et vérifiez le modèle avant téléchargement."},{title:"Imprimer",description:"Ouvrez le STL dans votre slicer pour régler lâéchelle, les supports et lâorientation."}],inputTips:[{title:"Un sujet clair",description:"Recadrez lâimage si lâobjet est petit ou entouré dâéléments parasites."},{title:"Fond simple",description:"Un contraste propre aide lâIA à comprendre le contour et la forme principale."},{title:"Bords visibles",description:"Les silhouettes nettes donnent souvent des brouillons STL plus utiles."},{title:"Ãviter flou et faible lumière",description:"Les images sombres, floues ou trop chargées sont plus difficiles à convertir."}],useCases:[{title:"Brouillons pour impression 3D",description:"Transformez une image de référence en première géométrie STL."},{title:"Tests de produits Etsy",description:"Prototypez pendentifs, ornements, reliefs et souvenirs avant finition."},{title:"Cadeaux personnalisés",description:"Créez des idées de modèles imprimables à partir dâanimaux, objets et dessins."},{title:"Démonstrations en classe",description:"Montrez comment une image 2D devient un modèle physique."}
1,{title:"Expériences maker",description:"Essayez rapidement silhouettes, icônes et formes de produit."}],included:["Transformer des images claires en brouillons STL","Prévisualiser le modèle avant téléchargement","Tester cadeaux, déco et idées boutique","Télécharger le STL pour contrôle dans le slicer","Choisir un mode rapide, standard ou avancé","Crédits remboursés en cas dâéchec"],notIncluded:["Vérifier échelle et supports avant impression","Utiliser la CAO pour des dimensions mécaniques exactes","Nettoyer le modèle dans un outil 3D pour un rendu final","Préparer plusieurs vues pour une reconstruction plus fidèle","Utiliser des outils dâasset pour personnages prêts pour le jeu"],faqs:[["Comment convertir une image en STL ?","Importez une image JPG, PNG, JPEG ou WEBP, lancez la génération, prévisualisez le résultat 3D puis téléchargez le STL. Avant impression, vérifiez lâéchelle, lâorientation et les supports dans votre slicer."],["Puis-je convertir un JPG ou PNG en STL ?","Oui. Le convertisseur accepte JPG, JPEG, PNG et WEBP jusquâà 8 Mo."],["Quelles images donnent les meilleurs résultats ?","Utilisez une image nette avec un sujet principal, des bords visibles et un fond simple. Recadrez les éléments parasites avant lâimport."],["Le STL généré est-il prêt à imprimer ?","Câest un brouillon STL imprimable. Vérifiez toujours lâéchelle, lâépaisseur, lâorientation et les supports avant impression."],["Quel mode de génération choisir ?","Utilisez Rapide pour tester la forme, Standard pour la plupart des brouillons STL et Avancé pour un point de départ plus détaillé avant retouche."],["Puis-je prévisualiser le modèle avant téléchargement ?","Oui. Après génération, vous pouvez faire tourner lâaperçu 3D dans le navigateur et décider si le STL mérite dâêtre téléchargé ou affiné."],["Puis-je lâutiliser pour des cadeaux ou des idées Etsy ?","Oui. Câest utile pour tester pendentifs, ornements, souvenirs, déco et concepts de produit. Vérifiez ensuite les droits de lâimage, la qualité dâimpression et la sécurité."],["Puis-je générer depuis du texte sans image ?","Oui. Le site inclut une entrée Texte vers 3D pour décrire un objet et générer un modèle lorsque vous nâavez pas dâimage source."],["Puis-je utiliser plusieurs images ?","Oui. Le flux multi-image permet dâajouter dâautres vues quand une seule photo ne suffit pas, afin dâapporter plus dâinformations de forme."],["Puis-je convertir des fichiers 3D existants ?","Oui. Le convertisseur de formats prend en charge des flux comme OBJ, GLB ou FBX vers STL et dâautres formats téléchargeables selon la page ouverte."],["ImageToSTL crée-t-il des STL couleur ?","Le flux principal se concentre sur un STL téléchargeable pour contrôle dâimpression. Pour couleur, textures ou formats dâasset, prévoyez une retouche dans un éditeur 3D après génération."],["Que se passe-t-il si la génération échoue ?","Les crédits sont automatiquement remboursés en cas dâéchec."],["Faut-il connaître la CAO ou Blender ?","Non pour générer, prévisualiser et télécharger le STL. Pour des dimensions exactes, une finition de production ou des modifications avancées, un outil CAO ou Blender peut aider ensuite."]]},de:{capabilityItems:["4 Bildformate · Max. 8 MB","3 Generierungsmodi · 2â4 Credits","Geschätzte Dauer · ~30â90 Sekunden","3D-Vorschau im Browser · STL-Download"],workflow:[{title:"Hochladen",description:"Wähle ein klares Bild mit sichtbarem Motiv und einfachem Hintergrund."},{title:"Generieren",description:"Die KI erzeugt STL-Geometrie aus dem Quellbild."},{title:"Prüfen",description:"Drehe die Vorschau und kontrolliere das Modell vor dem Download."},{title:"Drucken",description:"Ãffne die STL im Slicer, um MaÃstab, Stützen und Ausrichtung festzulegen."}],inputTips:[{title:"Ein klares Motiv nutzen",description:"Beschneide das Bild, wenn das Objekt klein ist oder viel Ablenkung im Hintergrund hat."},{title:"Einfache Hintergründe bevorzugen",description:"Sauberer Kontrast hilft bei Kontur und Hauptform."},{title:"Kanten sichtbar halten",description:"Scharfe Silhouetten ergeben meist nützlichere STL-Entwürfe."},{title:"Unschärfe und Dunkelheit vermeiden",description:"Ãberladene oder dunkle Bilder sind schwerer in druckbare Geometrie zu verwandeln."}],useCases:[{title:"3D-Druck-Entwürfe",description:"Verwandle Referenzbilder in erste STL-Geometrie."},{title:"Etsy-Produkttests",description:"Teste Anhänger, Ornamente, Reliefs und Andenken vor der Verfeinerung."},{title:"Personalisierte Geschenke",description:"Erstelle druckbare Modellideen aus Haustieren, Objekten und Zeichnungen."},{title:"Unterrichtsdemos",description:"Zeige, wie aus einem 2D-Bild ein physisches Modell wird."},{title:"Maker-Experimente",description:"Probiere Silhouetten, Icons und Produktformen schnell aus."}],included:["Klare Bilder in STL-Entwürfe verwandeln","Modell vor dem Download prüfen","Geschenke, Deko und Shop-Ideen testen","STL zur Slicer-Prüfung herunterladen","Schnellen, Standard- oder erweiterten Modus wählen","Credits bei Fehlschlag zurückerhalten"],notIncluded:["MaÃstab und Stützen vor dem Druck prüfen","Für exakte mechanische MaÃe CAD nutzen","Für fertige Produkte im 3D-Tool nac
1hbearbeiten","Für bessere Rekonstruktion mehrere Ansichten vorbereiten","Für spielfertige Charaktere Topologie und Materialien ergänzen"],faqs:[["Wie konvertiere ich ein Bild in STL?","Lade ein JPG-, PNG-, JPEG- oder WEBP-Bild hoch, starte die Generierung, prüfe das 3D-Ergebnis und lade die STL-Datei herunter. Prüfe vor dem Druck MaÃstab, Ausrichtung und Stützen im Slicer."],["Kann ich JPG oder PNG in STL umwandeln?","Ja. Der Converter akzeptiert JPG, JPEG, PNG und WEBP bis 8 MB."],["Welche Bilder liefern die besten STL-Ergebnisse?","Nutze ein scharfes Bild mit einem klaren Hauptmotiv, sichtbaren Kanten und einfachem Hintergrund. Schneide störende Bereiche vor dem Hochladen weg."],["Ist die generierte STL direkt druckfertig?","Sie ist ein druckbarer STL-Entwurf. Prüfe vor dem Druck MaÃstab, Wandstärke, Ausrichtung und Stützen."],["Welchen Generierungsmodus sollte ich wählen?","Schnell eignet sich für Formtests, Standard für die meisten STL-Entwürfe und Erweitert für einen detailreicheren Startpunkt vor der Nachbearbeitung."],["Kann ich das Modell vor dem Download ansehen?","Ja. Nach der Generierung kannst du die 3D-Vorschau im Browser drehen und entscheiden, ob sich Download, Druck oder Nachbearbeitung lohnt."],["Kann ich damit Geschenke oder Etsy-Ideen testen?","Ja. Es eignet sich für Anhänger, Ornamente, Erinnerungsstücke, Deko und Produktkonzepte. Prüfe vor dem Verkauf Bildrechte, Druckqualität und Produktsicherheit."],["Kann ich ohne Bild per Text generieren?","Ja. Die Seite enthält einen Text-zu-3D-Einstieg, mit dem du ein Objekt beschreiben und ein 3D-Modell erzeugen kannst."],["Kann ich mehrere Bilder nutzen?","Ja. Der Mehrbild-Workflow erlaubt zusätzliche Ansichten, wenn ein einzelnes Foto nicht genug Forminformationen liefert."],["Kann ich vorhandene 3D-Dateien konvertieren?","Ja. Der Formatkonverter unterstützt Workflows wie OBJ, GLB oder FBX zu STL sowie weitere herunterladbare Formate je nach Seite."],["Erstellt ImageToSTL farbige STL-Dateien?","Der Hauptworkflow konzentriert sich auf herunterladbare STL-Entwürfe zur Druckprüfung. Für Farbe, Texturen oder Asset-Formate solltest du nach der Generierung ein 3D-Tool einplanen."],["Was passiert, wenn die Generierung fehlschlägt?","Fehlgeschlagene Aufgaben erstatten Credits automatisch zurück."],["Brauche ich CAD- oder Blender-Erfahrung?","Nein für Generierung, Vorschau und Download. Für exakte MaÃe, Produktions-Finish oder komplexe Bearbeitung helfen CAD oder Blender nach dem Download."]]},es:{capabilityItems:["4 formatos de imagen · Máx. 8 MB","3 modos de generación · 2â4 créditos","Generación estimada · ~30â90 segundos","Vista previa 3D · Descarga STL"],workflow:[{title:"Subir",description:"Elige una imagen clara con un sujeto visible y fondo simple."},{title:"Generar",description:"La IA crea geometrÃa STL desde la imagen fuente."},{title:"Inspeccionar",description:"Gira la vista previa y revisa el modelo antes de descargarlo."},{title:"Imprimir",description:"Abre el STL en tu slicer para ajustar escala, soportes y orientación."}],inputTips:[{title:"Usa un sujeto claro",description:"Recorta la imagen si el objeto es pequeño o el fondo tiene demasiado ruido visual."},{title:"Prefiere fondos simples",description:"Un contraste limpio ayuda a inferir el contorno y la forma principal."},{title:"Mantén bordes visibles",description:"Las siluetas nÃtidas suelen producir borradores STL más útiles."},{title:"Evita desenfoque y poca luz",description:"Las imágenes oscuras, borrosas o cargadas son más difÃciles de convertir."}],useCases:[{title:"Borradores para impresión 3D",description:"Convierte imágenes de referencia en primera geometrÃa STL."},{title:"Pruebas de productos Etsy",description:"Prototipa charms, adornos, relieves y recuerdos antes de refinarlos."},{title:"Regalos personalizados",description:"Crea ideas imprimibles desde mascotas, objetos y dibujos."},{title:"Demos en clase",description:"Muestra cómo una imagen 2D puede convertirse en un modelo fÃsico."},{title:"Experimentos maker",description:"Prueba siluetas, iconos y formas de producto rápidamente."}
1],included:["Convertir imágenes claras en borradores STL","Previsualizar el modelo antes de descargar","Probar regalos, decoración e ideas de tienda","Descargar STL para revisar en el slicer","Elegir modo rápido, estándar o avanzado","Recuperar créditos si falla la generación"],notIncluded:["Revisar escala y soportes antes de imprimir","Usar CAD para dimensiones mecánicas exactas","Limpiar el modelo en software 3D para acabado final","Preparar más vistas para reconstrucciones más fieles","Usar herramientas de assets para personajes listos para juego"],faqs:[["¿Cómo convierto una imagen a STL?","Sube una imagen JPG, PNG, JPEG o WEBP, inicia la generación, revisa el resultado 3D y descarga el STL. Antes de imprimir, comprueba escala, orientación y soportes en tu slicer."],["¿Puedo convertir JPG o PNG a STL?","SÃ. El convertidor acepta JPG, JPEG, PNG y WEBP hasta 8 MB."],["¿Qué imágenes dan mejores resultados STL?","Usa una imagen nÃtida con un sujeto principal, bordes visibles y fondo simple. Recorta el ruido visual antes de subirla cuando sea posible."],["¿El STL generado está listo para imprimir?","Es un borrador STL imprimible. Antes de imprimir, revisa escala, grosor, orientación y soportes."],["¿Qué modo de generación deberÃa elegir?","Usa Rápido para probar la forma, Estándar para la mayorÃa de borradores STL y Avanzado cuando quieras un punto de partida con más detalle."],["¿Puedo previsualizar el modelo antes de descargar?","SÃ. Después de generar, puedes girar la vista previa 3D en el navegador y decidir si vale la pena descargar, imprimir o refinar el STL."],["¿Puedo usarlo para regalos o ideas de Etsy?","SÃ. Sirve para probar charms, adornos, recuerdos, decoración y conceptos de producto. Antes de vender, revisa derechos de imagen, calidad de impresión y seguridad."],["¿Puedo generar desde texto sin imagen?","SÃ. El sitio incluye Texto a 3D para describir un objeto y generar un modelo cuando no tienes una imagen fuente."],["¿Puedo usar varias imágenes?","SÃ. El flujo multi imagen permite añadir vistas extra cuando una sola foto no aporta suficiente información de forma."],["¿Puedo convertir archivos 3D existentes?","SÃ. El convertidor de formatos admite flujos como OBJ, GLB o FBX a STL y otros formatos descargables según la página que abras."],["¿ImageToSTL crea archivos STL con color?","El flujo principal se centra en STL descargables para revisar impresión. Si necesitas color, texturas o formatos de assets, planifica continuar en un editor 3D después de generar."],["¿Qué pasa si falla la generación?","Las tareas fallidas devuelven los créditos automáticamente."],["¿Necesito saber CAD o Blender?","No para generar, previsualizar y descargar el STL. Para dimensiones exactas, acabado de producción o edición avanzada, CAD o Blender pueden ayudar después."]]},pt:{capabilityItems:["4 formatos de imagem · Máx. 8 MB","3 modos de geração · 2â4 créditos","Geração estimada · ~30â90 segundos","Prévia 3D no navegador · Download STL"],workflow:[{title:"Enviar",description:"Escolha uma imagem clara com assunto visÃvel e fundo simples."},{title:"Gerar",description:"A IA cria geometria STL a partir da imagem original."},{title:"Inspecionar",description:"Gire a prévia e confira o modelo antes do download."},{title:"Imprimir",description:"Abra o STL no slicer para ajustar escala, suportes e orientação."}],inputTips:[{title:"Use um assunto claro",description:"Recorte a imagem quando o objeto for pequeno ou o fundo estiver poluÃdo."},{title:"Prefira fundos simples",description:"Contraste limpo ajuda a IA a entender contorno e forma principal."},{title:"Mantenha bordas visÃveis",description:"Silhuetas nÃtidas costumam gerar rascunhos STL mais úteis."},{title:"Evite desfoque e pouca luz",description:"Imagens escuras, borradas ou muito carregadas são mais difÃceis de converter."}],useCases:[{title:"Rascunhos para impressão 3D",description:"Transforme imagens de referência em primeira geometria STL."},{title:"Testes de produtos Etsy",description:"Prototipe pingentes, ornamentos, relevos e lembranças antes do refinamento."},{title:"Presentes personalizados",description:"Crie ideias imprimÃveis a partir de pets, objetos e desenhos."},{title:"Demonstrações em aula",description:"Mostre como uma imagem 2D vira um modelo fÃsico."},{title:"Experimentos maker",description:"Teste silhuetas, Ãcones e formas de produto rapidamente."}],included:["Transformar imagens claras em rascunhos STL","Visualizar o modelo antes do download","Testar presentes, decoração e ideias de loja","Baixar STL para revisar no slicer","Escolher modo rápido, padrão ou avançado","Receber créditos de volta se falhar"],notIncluded:["Verificar escala e suportes antes de imprimir","Usar CAD para dimensões mecânicas exatas","Limpar o modelo em software 3D para acabamento final","Preparar mais vistas para reconstruções mais fiéis","Usar ferramentas de assets para personagens prontos para jogos"],faqs:[["Como converter uma imagem em STL?","Envie uma imagem JPG, PNG, JPEG ou WEBP, inicie a geração, visualize o resultado 3D e baixe o STL. Antes de imprimir, confira escala, orientação e suportes no slicer."],["Posso converter JPG ou PNG para STL?","Sim. O conversor aceita JPG, JPEG, PNG e WEBP até 8 MB."],["Quais imagens geram melhores resultados STL?","Use uma imagem nÃtida com um assunto principal, bordas visÃveis e fundo simples. Recorte distrações antes do envio sempre que possÃvel."],["O STL gerado está pronto para imprimir?","à um rascunho STL imprimÃvel. Antes de imprimir, confira escala, espessura, orientação e suportes."],["Qual modo de geração devo escolher?","Use Rápido para testar a forma, Padrão para a maioria dos rascunhos STL e Avançado quando quiser um ponto de partida com mais detalhes."],["Posso visualizar o modelo antes de baixar?","Sim. Depois da geração, você pode girar a prévia 3D no navegador e decidir se vale baixar, imprimir ou refinar o STL."],["Posso usar para presentes ou ideias de Etsy?","Sim. à útil para testar pingentes, ornamentos, lembranças, decoração e c
1onceitos de produto. Antes de vender, confira direitos da imagem, qualidade de impressão e segurança."],["Posso gerar com texto em vez de imagem?","Sim. O site inclui Texto para 3D para descrever um objeto e gerar um modelo quando você não tem uma imagem de origem."],["Posso usar várias imagens?","Sim. O fluxo multi imagem permite adicionar outras vistas quando uma única foto não traz informação suficiente sobre a forma."],["Posso converter arquivos 3D existentes?","Sim. O conversor de formatos aceita fluxos como OBJ, GLB ou FBX para STL e outros formatos baixáveis dependendo da página aberta."],["O ImageToSTL cria STL colorido?","O fluxo principal foca em STL baixável para revisão de impressão. Se você precisa de cor, texturas ou formatos de assets, planeje continuar em um editor 3D depois da geração."],["O que acontece se a geração falhar?","Tarefas com falha devolvem os créditos automaticamente."],["Preciso saber CAD ou Blender?","Não para gerar, visualizar e baixar o STL. Para dimensões exatas, acabamento de produção ou edição avançada, CAD ou Blender podem ajudar depois."]]},zh:{capabilityItems:["4 ç§å¾çæ ¼å¼ Â· æå¤§ 8 MB","3 ç§çææ¨¡å¼ · 2â4 积å","é¢è®¡çææ¶é´ Â· 约 30â90 ç§","æµè§å¨ 3D é¢è§ · STL ä¸è½½"],workflow:[{title:"ä¸ä¼ ",description:"éæ©ä¸å¼ 䏻使¸
æ°ãèæ¯ç®åçå¾çã"},{title:"çæ",description:"AI æ ¹æ®æºå¾çæ STL å ä½ã"},{title:"æ£æ¥",description:"æè½¬ 3D é¢è§ï¼å¨ä¸è½½å确认模åå½¢æã"},{title:"æå°",description:"å¨åç软件ä¸è®¾ç½®æ¯ä¾ãæ¯æåæå°æ¹åã"}],inputTips:[{title:"使ç¨å䏿¸
æ°ä¸»ä½",description:"主ä½å¤ªå°æèæ¯å¤ªä¹±æ¶ï¼å»ºè®®å
è£åªã"},{title:"ä¼å
ç®åèæ¯",description:"å¹²å对æ¯è½å¸®å©æ¨¡åè¯å«è½®å»å主ä½å½¢æã"},{title:"ä¿çæ¸
æ¥è¾¹ç¼",description:"è½®å»ææ¾çå¾çé常æ´å®¹æçæå¯ç¨ STL èæ¨¡ã"},{title:"é¿å
模ç³åæå
",description:"æ¥æ¤ãæå
ææ¨¡ç³å¾çæ´é¾è½¬æå¯æå°å ä½ã"}],useCases:[{title:"3D æå°è模",description:"æåèå¾çå¿«é转æç¬¬ä¸ç STL å ä½ã"},{title:"Etsy ååæµè¯",description:"å
éªè¯æä»¶ãè£
é¥°ãæµ®éåçºªå¿µåæ¹åï¼åç»§ç»ç²¾ä¿®ã"},{title:"å®å¶ç¤¼ç©",description:"ä»å® ç©ãç©ä½åæç»å¾çæå¯æå°æ¨¡åæ³æ³ã"},{title:"è¯¾å æ¼ç¤º",description:"å±ç¤º 2D å¾çå¦ä½åæå®ä½æ¨¡åã"},{title:"Maker å®éª",description:"å¿«éå°è¯åªå½±ã徿 å产åå¤å½¢ã"}],included:["ææ¸
æ°å¾ççæ STL èæ¨¡","ä¸è½½åå¨çº¿é¢è§æ¨¡åå½¢æ","å¿«ééªè¯ç¤¼ç©ãè£
饰ååºéºæ³æ³","ä¸è½½ STL å°åçè½¯ä»¶æ£æ¥","å¯éæ©æéãæ åãè¿é¶æ¨¡å¼","çæå¤±è´¥èªå¨éå积å"],notIncluded:["æå°åä»éæ£æ¥æ¯ä¾åæ¯æ","æºæ¢°é¶ä»¶å°ºå¯¸éç¨ CAD æ ¡å","æ£å¼æå建议继ç»å»ºæ¨¡æ¸
ç","é«è¿åéæ±å»ºè®®åå¤å¤è§åº¦å¾ç","游æè§è²èµäº§éç»§ç»åææåæè´¨"],faqs:[["å¦ä½æå¾çè½¬æ¢æ STLï¼","ä¸ä¼ ä¸å¼ JPGãPNGãJPEG æ WEBP å¾çï¼å¯å¨çæï¼é¢è§ 3D ç»æï¼ç¶åä¸è½½ STL æä»¶ãæå°å请å¨åçè½¯ä»¶ä¸æ£æ¥æ¯ä¾ãæ¹å忝æã"],["å¯ä»¥æ JPG æ PNG 转æ STL åï¼","å¯ä»¥ã转æ¢å¨æ¯æ 8MB 以å
ç JPGãJPEGãPNG å WEBP å¾çï¼ä¹å¯ä»¥éè¿ PNG to STL ä¸ JPG to STL 页é¢è¿å
¥å¯¹åºæ ¼å¼æµç¨ã"],["ä»ä¹æ ·çå¾çæ´å®¹æçæå¥½ç»æï¼","建议使ç¨ä¸»ä½æ¸
æ°ãè¾¹ç¼ææ¾ãèæ¯ç®åçå¾çã妿ç»é¢æä¹±ï¼ä¸ä¼ åå
è£æå¤ä½èæ¯ã"],["çæç STL å¯ä»¥ç´æ¥æå°åï¼","宿¯å¯æå° STL èæ¨¡ãæå°åä»å»ºè®®æ£æ¥æ¯ä¾ãå°éæ§ãå£åãæ¹å忝æã"],["æéãæ åãè¿é¶æ¨¡å¼è¯¥æä¹éï¼","æééåå¿«éç大è´å½¢æï¼æ åéå大夿° STL èæ¨¡ï¼è¿é¶éåæ³è¦æ´ç»èçèµ·ç¹åç»§ç»ç²¾ä¿®ã"],["ä¸è½½åå¯ä»¥å
ç 3D ææåï¼","å¯ä»¥ãçæåå¯ä»¥å¨æµè§å¨éæè½¬é¢è§æ¨¡åï¼ç¡®è®¤å½¢ææ¯å¦å¼å¾ä¸è½½ãæå°æç»§ç»å¤çã"],["å¯ä»¥ç¨æ¥åç¤¼ç©æ Etsy åºéºæ³æ³åï¼","å¯ä»¥ãå®éåéªè¯æä»¶ãè£
饰ã纪念ååååæ¦å¿µãæ£å¼å®åå请确认æºå¾æå©ãæå°è´¨éå产åå®å
¨ã"],["没æå¾çï¼å¯ä»¥ç´æ¥ç¨æåçæåï¼
1","å¯ä»¥ãç½ç«æä¾ææ¬è½¬ 3D å
¥å£ï¼ä½ å¯ä»¥æè¿°æ³è¦çç©ä½ï¼åçæ 3D 模åèµ·ç¹ã"],["å¯ä»¥ä¸ä¼ å¤å¼ å¾çæé«ææåï¼","å¯ä»¥ãå¤å¾çæå
¥å£æ¯æè¡¥å
ä¸åè§åº¦å¾çï¼éååå¼ ç
§çä¿¡æ¯ä¸å¤ãæ³æé«å½¢ä½è¿å度çæ
åµã"],["å·²æ 3D æä»¶ä¹è½è½¬æ¢åï¼","å¯ä»¥ãæ ¼å¼è½¬æ¢å·¥å
·æ¯æ OBJãGLBãFBX 转 STLï¼ä»¥åé¨å USDZãFBXãGIFãMP4 çä¸è½½æ ¼å¼ã"],["ImageToSTL æ¯æå½©è² STL åï¼","主æµç¨èç¦å¯ä¸è½½ã坿£æ¥ç STL æå°è模ãå¦æä½ éè¦é¢è²ãè´´å¾ææ¸¸æèµäº§æ ¼å¼ï¼å»ºè®®çæåç»§ç»ç¨ 3D å·¥å
·å¤çã"],["çæå¤±è´¥ä¼ææ ·ï¼","失败任å¡ä¼èªå¨éå积åã"],["éè¦ä¼ CAD æ Blender åï¼","ä¸éè¦ãçæãé¢è§åä¸è½½é½å¯ä»¥å¨çº¿å®æï¼å¦æä½ éè¦ç²¾ç¡®å°ºå¯¸ãæ£å¼æå精修æå¤æç¼è¾ï¼åç¨ CAD æ Blender ç»§ç»å¤çã"]]}},aQ={en:{badge:"Image to STL Converter",heroBefore:"Turn an image into a",heroHighlight:"3D printable STL",heroDescription:"Upload one JPG, PNG, JPEG, or WEBP image. Choose a generation mode, preview in 3D, then download the STL.",uploadButton:"Upload image",examplesButton:"See examples",workflowTitle:"Upload, generate, inspect, print",workflowDescription:"The homepage is the core tool. Every step is designed around a printable STL workflow.",inputTitle:"Images that convert better",inputDescription:"ImageToSTL works best when the image has a clear subject and enough structure for AI to infer printable geometry.",examplesTitle:"Real image-to-3D example previews",examplesDescription:"Authorized examples show the visual range users can expect from image-to-3D and image-to-STL workflows.",useCasesTitle:"Built for printable drafts, gifts, and shop ideas",useCasesDescription:"This is not a full 3D modeling suite. It is a focused online tool for turning images into STL drafts quickly.",boundariesTitle:"What you can make here",boundariesDescription:"Use ImageToSTL to get a fast, inspectable STL starting point, then finish scale, supports, and cleanup in your slicer or 3D editor.",includedTitle:"Best for",notIncludedTitle:"Plan for next",faqTitle:"Frequently asked questions",faqDescription:"Answers for image quality, STL output, printing, credits, and the fastest path from upload to download.",faqFooter:"Still deciding? Start with one clear image and use the 3D preview to judge the result before you download or spend time preparing a print.",relatedTitle:"Continue the image-to-STL workflow",relatedDescription:"Format pages and guides handle specific search intent while the homepage stays focused on the core converter.",openPage:"Open page",ctaTitle:"Create your first STL from an image",ctaDescription:"Start with one clear source image. Preview the generated model before downloading the STL.",pricingButton:"View pricing",relatedPages:[["Photo to 3D Model","/photo-to-3d-model"],["PNG to STL","/png-to-stl"],["JPG to STL","/jpg-to-stl"],["How to Convert Image to STL","/how-to-convert-image-to-stl"],["How to Turn a Photo into a 3D Model","/how-to-turn-a-photo-into-a-3d-model"],["Best Image to STL Converter","/best-image-to-stl-converter"]]},fr:{badge:"Convertisseur Image en STL",heroBefore:"Transformez une image en",heroHighlight:"STL imprimable en 3D",heroDescription:"Importez une image JPG, PNG, JPEG ou WEBP. Choisissez un mode, prévisualisez en 3D, puis téléchargez le STL.",uploadButton:"Importer une image",examplesButton:"Voir les exemples",workflowTitle:"Importer, générer, inspecter, imprimer",workflowDescription:"La page dâaccueil est lâoutil principal. Chaque étape est pensée pour un workflow STL imprimable.",inputTitle:"Images qui se convertissent mieux",inputDescription:"ImageToSTL fonctionne mieux avec un sujet clair et une structure suffisante pour générer une géométrie imprimable.",examplesTitle:"Aperçus réels image vers 3D",examplesDescription:"Des exemples autorisés montrent la gamme visuelle attendue pour les workflows image vers 3D et image vers STL.",useCasesTitle:"Conçu pour brouillons imprimables, cadeaux et idées boutique",useCasesDescription:"Ce nâest pas une suite complète de modélisation 3D, mais un outil ciblé pour créer rapidement des brouillons STL.",boundariesTitle:"Ce que vous pouvez créer ici",boun
1dariesDescription:"Utilisez ImageToSTL pour obtenir rapidement un point de départ STL vérifiable, puis finalisez lâéchelle, les supports et les retouches dans votre slicer ou éditeur 3D.",includedTitle:"Idéal pour",notIncludedTitle:"à prévoir ensuite",faqTitle:"Questions fréquentes",faqDescription:"Réponses sur la qualité dâimage, la sortie STL, lâimpression, les crédits et le chemin le plus rapide de lâimport au téléchargement.",faqFooter:"Vous hésitez encore ? Commencez avec une image claire et utilisez lâaperçu 3D pour juger le résultat avant téléchargement ou préparation dâimpression.",relatedTitle:"Continuer le workflow image vers STL",relatedDescription:"Les pages de format et les guides couvrent les intentions de recherche spécifiques.",openPage:"Ouvrir la page",ctaTitle:"Créez votre premier STL à partir dâune image",ctaDescription:"Commencez avec une image claire. Prévisualisez le modèle avant de télécharger le STL.",pricingButton:"Voir les tarifs",relatedPages:[["Photo en modèle 3D","/photo-to-3d-model"],["PNG en STL","/png-to-stl"],["JPG en STL","/jpg-to-stl"],["Comment convertir une image en STL","/how-to-convert-image-to-stl"],["Transformer une photo en modèle 3D","/how-to-turn-a-photo-into-a-3d-model"],["Meilleur convertisseur image en STL","/best-image-to-stl-converter"]]},de:{badge:"Bild zu STL Konverter",heroBefore:"Verwandle ein Bild in eine",heroHighlight:"3D-druckbare STL",heroDescription:"Lade ein JPG-, PNG-, JPEG- oder WEBP-Bild hoch. Wähle einen Modus, prüfe die 3D-Vorschau und lade die STL herunter.",uploadButton:"Bild hochladen",examplesButton:"Beispiele ansehen",workflowTitle:"Hochladen, generieren, prüfen, drucken",workflowDescription:"Die Startseite ist das Kernwerkzeug. Jeder Schritt ist auf einen druckbaren STL-Workflow ausgelegt.",inputTitle:"Bilder, die besser k
1onvertieren",inputDescription:"ImageToSTL funktioniert am besten mit klaren Motiven und genug Struktur für druckbare Geometrie.",examplesTitle:"Echte Bild-zu-3D-Beispiele",examplesDescription:"Autorisierte Beispiele zeigen, welche visuelle Bandbreite bei Bild-zu-3D und Bild-zu-STL möglich ist.",useCasesTitle:"Für druckbare Entwürfe, Geschenke und Shop-Ideen",useCasesDescription:"Kein komplettes 3D-Modellierungsprogramm, sondern ein fokussiertes Online-Tool für schnelle STL-Entwürfe.",boundariesTitle:"Was du hier erstellen kannst",boundariesDescription:"Nutze ImageToSTL für einen schnellen, prüfbaren STL-Startpunkt und finalisiere MaÃstab, Stützen und Feinschliff im Slicer oder 3D-Editor.",includedTitle:"Am besten für",notIncludedTitle:"Danach einplanen",faqTitle:"Häufige Fragen",faqDescription:"Antworten zu Bildqualität, STL-Ausgabe, Druck, Credits und dem schnellsten Weg vom Hochladen zum Herunterladen.",faqFooter:"Noch unsicher? Starte mit einem klaren Bild und nutze die 3D-Vorschau, bevor du herunterlädst oder den Druck vorbereitest.",relatedTitle:"Bild-zu-STL-Workflow fortsetzen",relatedDescription:"Formatseiten und Guides bedienen konkrete Suchintentionen, während die Startseite fokussiert bleibt.",openPage:"Seite öffnen",ctaTitle:"Erstelle deine erste STL aus einem Bild",ctaDescription:"Starte mit einem klaren Bild. Prüfe das Modell, bevor du die STL herunterlädst.",pricingButton:"Preise ansehen",relatedPages:[["Foto zu 3D-Modell","/photo-to-3d-model"],["PNG zu STL","/png-to-stl"],["JPG zu STL","/jpg-to-stl"],["Bild in STL konvertieren","/how-to-convert-image-to-stl"],["Foto in 3D-Modell verwandeln","/how-to-turn-a-photo-into-a-3d-model"],["Bester Bild-zu-STL-Konverter","/best-image-to-stl-converter"]]},es:{badge:"Conversor Imagen a STL",heroBefore:"Convierte una imagen en",heroHighlight:"STL imprimible en 3D",heroDescription:"Sube una imagen JPG, PNG, JPEG o WEBP. Elige un modo, previsualiza en 3D y descarga el STL.",uploadButton:"Subir imagen",examplesButton:"Ver ejemplos",workflowTitle:"Subir, generar, inspeccionar, imprimir",workflowDescription:"La página de inicio es la herramienta principal. Cada paso está diseña
1do para un flujo STL imprimible.",inputTitle:"Imágenes que convierten mejor",inputDescription:"ImageToSTL funciona mejor con un sujeto claro y suficiente estructura para inferir geometrÃa imprimible.",examplesTitle:"Ejemplos reales de imagen a 3D",examplesDescription:"Ejemplos autorizados muestran el rango visual esperado en flujos de imagen a 3D e imagen a STL.",useCasesTitle:"Hecho para borradores imprimibles, regalos e ideas de tienda",useCasesDescription:"No es una suite completa de modelado 3D, sino una herramienta enfocada para crear borradores STL rápido.",boundariesTitle:"Qué puedes crear aquÃ",boundariesDescription:"Usa ImageToSTL para obtener rápido un punto de partida STL revisable, y termina escala, soportes y limpieza en tu slicer o editor 3D.",includedTitle:"Ideal para",notIncludedTitle:"Planifica después",faqTitle:"Preguntas frecuentes",faqDescription:"Respuestas sobre calidad de imagen, salida STL, impresión, créditos y la ruta más rápida desde subir hasta descargar.",faqFooter:"¿Aún estás decidiendo? Empieza con una imagen clara y usa la vista previa 3D para evaluar el resultado antes de descargar o preparar la impresión.",relatedTitle:"Continúa el flujo imagen a STL",relatedDescription:"Las páginas de formato y guÃas cubren intenciones de búsqueda especÃficas.",openPage:"Abrir página",ctaTitle:"Crea tu primer STL desde una imagen",ctaDescription:"Empieza con una imagen clara. Previsualiza el modelo antes de descargar el STL.",pricingButton:"Ver precios",relatedPages:[["Foto a modelo 3D","/photo-to-3d-model"],["PNG a STL","/png-to-stl"],["JPG a STL","/jpg-to-stl"],["Cómo convertir imagen a STL","/how-to-convert-image-to-stl"],["Convertir foto en modelo 3D","/how-to-turn-a-photo-into-a-3d-model"],["Mejor conversor imagen a STL","/best-image-to-stl-converter"]]},pt:{badge:"Conversor Imagem para STL",heroBefore:"Transforme uma imagem em",heroHighlight:"STL imprimÃvel em 3D",heroDescription:"Envie uma imagem JPG, PNG, JPEG ou WEBP. Escolha um modo, visualize em 3D e baixe o STL.",uploadButton:"Enviar imagem",examplesButton:"Ver exemplos",workflowTitle:"Enviar, gerar, inspecionar, imprimir",workflowDescription:"A página inicial é a ferramenta principal. Cada etapa foi pensada para um fluxo STL imprimÃvel.",inputTitle:"Imagens que convertem melhor",inputDescription:"ImageToSTL funciona melhor com assunto claro e estrutura suficiente para inferir geometria imprimÃvel.",examplesTitle:"Exemplos reais de imagem para 3D",examplesDescription:"Exemplos autorizados mostram o alcance visual esperado em fluxos de imagem para 3D e imagem para STL.",useCasesTitle:"Feito para rascunhos imprimÃveis, presentes e ideias de loja",useCasesDescription:"Não é uma suÃte completa de modelagem 3D, mas uma ferramenta focada para criar rascunhos STL rapidamente.",boundariesTitle:"O que você pode criar aqui",boundariesDescription:"Use o ImageToSTL para obter rapidamente um ponto de partida STL que pode ser revisado, depois finalize escala, suportes e ajustes no slicer ou editor 3D.",includedTitle:"Melhor para",notIncludedTitle:"Planeje depois",faqTitle:"Perguntas frequentes",faqDescription:"Respostas sobre qualidade da imagem, saÃda STL, impressão, créditos e o caminho mais rápido do envio ao download.",faqFooter:"Ainda decidindo? Comece com uma imagem clara e use a prévia 3D para avaliar o resultado antes de baixar ou preparar a impressão.",relatedTitle:"Continue o fluxo imagem para STL",relatedDescription:"Páginas de formato e guias atendem intenções de busca especÃficas.",openPage:"Abrir página",ctaTitle:"Crie seu primeiro STL a partir de uma imagem",ctaDescription:"Comece com uma imagem clara. Visualize o modelo antes de baixar o STL.",pricingButton:"Ver preços",relatedPages:[["Foto para modelo 3D","/photo-to-3d-model"],["PNG para STL","/png-to-stl"],["JPG para STL","/jpg-to-stl"],["Como converter imagem para STL","/how-to-convert-image-to-stl"],["Transformar foto em modelo 3D","/how-to-turn-a-photo-into-a-3d-model"],["Melhor conversor imagem para STL","/best-image-to-stl-converter"]]},zh:{badge:"å¾ç转 STL 转æ¢å¨",heroBefore:"æå¾çè½¬æ¢æ",heroHighlight:"å¯æå° STL",heroDescription:"ä¸ä¼ ä¸å¼ JPGãPNGãJPEG æ WEBP å¾çï¼éæ©çææ¨¡å¼ï¼
1å¨çº¿é¢è§ 3D 模åå¹¶ä¸è½½ STL æä»¶ã",uploadButton:"ä¸ä¼ å¾ç",examplesButton:"æ¥çæ¡ä¾",workflowTitle:"ä¸ä¼ ãçæãæ£æ¥ãæå°",workflowDescription:"é¦é¡µå°±æ¯æ ¸å¿å·¥å
·ãæ¯ä¸ªæ¥éª¤é½å´ç»å¯æå° STL 工使µè®¾è®¡ã",inputTitle:"æ´éå转æ¢çå¾ç",inputDescription:"ImageToSTL éåä»åå¼ æ¸
æ°å¾ççæ 3D æå°è模ãè¾å
¥è¶æç¡®ï¼çæç»æè¶å®¹ææ£æ¥åç»§ç»å¤çã",examplesTitle:"çå®å¾çå° 3D æ¡ä¾é¢è§",examplesDescription:"使ç¨ç宿æç¤ºä¾å±ç¤ºä»å¾çå° 3D / STL 工使µçè§è§é¢æã",useCasesTitle:"ä¸ºèæ¨¡ã礼ç©ååºéºæ³æ³èå",useCasesDescription:"å®ä¸æ¯å
¨è½ 3D 建模软件ï¼èæ¯æå¾çå¿«éåæ STL èæ¨¡çå¨çº¿å·¥å
·ã",boundariesTitle:"ä½ å¯ä»¥å¨è¿éåä»ä¹",boundariesDescription:"ç¨ ImageToSTL å¿«éå¾å°ä¸ä¸ªå¯é¢è§ãå¯ä¸è½½ç STL èµ·ç¹ï¼åå°åç软件æ 3D å·¥å
·é宿æ¯ä¾ãæ¯æå精修ã",includedTitle:"éåç¨æ¥",notIncludedTitle:"ä¸ä¸æ¥éè¦æ³¨æ",faqTitle:"常è§é®é¢",faqDescription:"è¿ééä¸åçå¾çè´¨éãSTL è¾åºãæå°æ£æ¥ãç§¯åæ¶èï¼ä»¥åä»ä¸ä¼ å°ä¸è½½çå
³é®é®é¢ã",faqFooter:"è¿å¨ç¹è±«çè¯ï¼å¯ä»¥å
ä¸ä¼ ä¸å¼ 䏻使¸
æ°çå¾çï¼ç¨ 3D é¢è§å¤æç»ææ¯å¦å¼å¾ä¸è½½ãæå°æç»§ç»ç²¾ä¿®ã",relatedTitle:"ç»§ç»æ¢ç´¢å¾ç转 STL 工使µ",relatedDescription:"æ ¼å¼é¡µåæåé¡µæ¿æ¥æ´å
·ä½çæç´¢æå¾ï¼é¦é¡µä¿æä¸æ³¨ã",openPage:"æå¼é¡µé¢",ctaTitle:"ç¨ä¸å¼ æ¸
æ°å¾çå建第ä¸ä¸ª STL",ctaDescription:"çæåå
é¢è§æ¨¡åï¼åä¸è½½ STL å°åçè½¯ä»¶ä¸æ£æ¥æ¯ä¾åæ¯æã",pricingButton:"æ¥çå®ä»·",relatedPages:[["ç
§ç转 3D 模å","/photo-to-3d-model"],["PNG 转 STL","/png-to-stl"],["JPG 转 STL","/jpg-to-stl"],["å¦ä½å°å¾ç转æ¢ä¸º STL","/how-to-convert-image-to-stl"],["å¦ä½æç
§çåæ 3D 模å","/how-to-turn-a-photo-into-a-3d-model"],["æä½³å¾ç转 STL 转æ¢å¨","/best-image-to-stl-converter"]]}},a0={en:{sourcesTitle:"3D printing references",sourcesDescription:"Generated STL files are starting geometry. These official Prusa resources explain the mesh, orientation, scale, and support checks to complete in a slicer before printing.",sources:[{title:"Modeling with 3D printing in mind",description:"Prusa guidance on manifold geometry, wall thickness, overhangs, and print-oriented design.",href:"https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135"},{title:"Corrupted 3D models for printing",description:"Prusa guidance on detecting and repairing damaged or incomplete mesh geometry.",href:"https://help.prusa3d.com/article/corrupted-3d-models-for-printing_2205"},{title:"Support material",description:"Prusa documentation for checking overhangs, orientation, and generated support structures.",href:"https://help.prusa3d.com/article/support-material_1698"}],attribution:"Product information written and reviewed by the ImageToSTL team.",publishedLabel:"Published",modifiedLabel:"Last updated"},fr:{sourcesTitle:"Références pour lâimpression 3D",sourcesDescription:"Les STL générés sont une géométrie de départ. Ces ressources officielles de Prusa expliquent les contrôles de maillage, dâorientation, dâéchelle et de supports à effectuer avant impression.",sources:[{title:"Concevoir pour lâimpression 3D",description:"Conseils Prusa sur les maillages fermés, lâépaisseur, les surplombs et la conception imprimable.",href:"https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135"},{title:"Réparer les modèles 3D",description:"Conseils Prusa pour détecter et réparer une géométrie endommagée ou incomplète.",href:"https://help.prusa3d.com/article/corrupted-3d-models-for-printing_2205"},{title:"Supports dâimpression",description:"Documentation Prusa sur les surplombs, lâorientation et les structures de support.",href:"https://help.prusa3d.com/article/support-material_1698"}],attribution:"Informations produit rédigées et vérifiées par lâéquipe ImageToSTL.",publishedLabel:"Publié",modifiedLabel:"Dernière mise à jour"}
1,de:{sourcesTitle:"Referenzen zum 3D-Druck",sourcesDescription:"Generierte STL-Dateien sind Ausgangsgeometrie. Diese offiziellen Prusa-Ressourcen erklären Prüfungen für Netz, Ausrichtung, MaÃstab und Stützstrukturen.",sources:[{title:"Für den 3D-Druck modellieren",description:"Prusa-Hinweise zu geschlossenen Netzen, Wandstärke, Ãberhängen und druckgerechtem Design.",href:"https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135"},{title:"Beschädigte 3D-Modelle reparieren",description:"Prusa-Hinweise zum Erkennen und Reparieren beschädigter oder unvollständiger Geometrie.",href:"https://help.prusa3d.com/article/corrupted-3d-models-for-printing_2205"},{title:"Stützmaterial",description:"Prusa-Dokumentation zu Ãberhängen, Ausrichtung und Stützstrukturen.",href:"https://help.prusa3d.com/article/support-material_1698"}],attribution:"Produktinformationen vom ImageToSTL-Team erstellt und geprüft.",publishedLabel:"Veröffentlicht",modifiedLabel:"Zuletzt aktualisiert"},es:{sourcesTitle:"Referencias de impresión 3D",sourcesDescription:"Los STL generados son geometrÃa inicial. Estos recursos oficiales de Prusa explican las comprobaciones de malla, orientación, escala y soportes.",sources:[{title:"Modelar pensando en la impresión 3D",description:"GuÃa de Prusa sobre mallas cerradas, grosor de pared, voladizos y diseño imprimible.",href:"https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135"},{title:"Reparar modelos 3D",description:"GuÃa de Prusa para detectar y reparar geometrÃa dañada o incompleta.",href:"https://help.prusa3d.com/article/corrupted-3d-models-for-printing_2205"},{title:"Material de soporte",description:"Documentación de Prusa sobre voladizos, orientación y estructuras de soporte.",href:"https://help.prusa3d.com/article/support-material_1698"}],attribution:"Información del producto escrita y revisada por el equipo de ImageToSTL.",publishedLabel:"Publicado",modifiedLabel:"Ãltima actualización"},pt:{sourcesTitle:"Referências para impressão 3D",sourcesDescription:"Os STL gerados são geometria inicial. Estes materiais oficiais da Prusa explicam as verificações de malha, orientação, escala e suportes.",sources:[{title:"Modelagem para impressão 3D",description:"Orientação da Prusa sobre malhas fechadas, espessura, balanços e design imprimÃvel.",href:"https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135"},{title:"Reparar modelos 3D",description:"Orientação da Prusa para detectar e reparar geometrias danificadas ou incompletas.",href:"https://help.prusa3d.com/article/corrupted-3d-models-for-printing_2205"},{title:"Material de suporte",description:"Documentação da Prusa sobre balanços, orientação e estruturas de suporte.",href:"https://help.prusa3d.com/article/support-material_1698"}],attribution:"Informações do produto escritas e revisadas pela equipe ImageToSTL.",publishedLabel:"Publicado",modifiedLabel:"Ãltima atualização"},zh:{sourcesTitle:"3D æå°åèèµæ",sourcesDescription:"çæç STL æ¯èµ·å§å ä½ãä»¥ä¸ Prusa 宿¹èµæä»ç»äºæå°ååºå¨åç软件ä¸å®æçç½æ ¼ãæ¹åãæ¯ä¾åæ¯ææ£æ¥ã",sources:[{title:"é¢å 3D æå°è¿è¡å»ºæ¨¡",description:"Prusa å
³äºå°éç½æ ¼ãå£åãæ¬åå坿å°è®¾è®¡ç宿¹è¯´æã",href:"https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135"},{title:"ä¿®å¤æåç 3D 模å",description:"Prusa å
³äºåç°åä¿®å¤æåæä¸å®æ´ç½æ ¼å ä½ç宿¹è¯´æã",href:"https://help.prusa3d.com/article/corrupted-3d-models-for-printing_2205"},{title:"æ¯æææ",description:"Prusa å
³äºæ£æ¥æ¬åãæ¨¡åæ¹ååçææ¯æç»æç宿¹ææ¡£ã",href:"https://help.prusa3d.com/article/support-material_1698"}],attribution:"产åä¿¡æ¯ç± ImageToSTL å¢éæ°åå¹¶å®¡æ ¸ã",publishedLabel:"åå¸äº",modifiedLabel:"æåæ´æ°"}};function a1({locale:e}){let t=aZ[e]??aX,i=aQ[e]??aQ.en,r=a0[e]??a0.en;return(0,a.jsxs)("div",{className:"bg-background text-foreground",children:[(0,a.jsxs)("section",{className:"bg-background relative isolate flex min-h-[75svh] items-center overflow-hidden",role:"region","aria-label":"Image to STL hero section",children:[(0,a.jsx)(aK,{}
1),(0,a.jsx)("div",{"aria-hidden":!0,className:"from-background/0 via-background/70 absolute inset-x-0 bottom-0 z-0 h-28 bg-gradient-to-b to-slate-50 dark:via-slate-950/70 dark:to-slate-950"}),(0,a.jsx)(aa.div,{variants:a$,initial:"hidden",animate:"visible",className:"relative z-10 mx-auto w-full max-w-5xl px-5 py-20 text-center sm:py-24 lg:py-28",children:(0,a.jsxs)("div",{className:"mx-auto max-w-3xl",children:[(0,a.jsxs)(aa.div,{variants:aJ,className:"bg-background/80 mb-5 inline-flex items-center gap-2 rounded-full border px-3 py-1 text-sm font-medium shadow-sm backdrop-blur",children:[(0,a.jsx)(ad.Cuboid,{className:"text-primary size-4"}),i.badge]}),(0,a.jsxs)(aa.h1,{variants:aJ,className:"text-4xl leading-[1.03] font-semibold tracking-tight text-balance sm:text-5xl lg:text-6xl",children:[i.heroBefore," ",(0,a.jsx)("span",{className:"from-primary via-primary/70 to-foreground/80 bg-gradient-to-r bg-clip-text text-transparent",children:i.heroHighlight})]}),(0,a.jsx)(aa.p,{variants:aJ,className:"text-muted-foreground mx-auto mt-5 max-w-2xl text-base leading-7 sm:text-lg",children:i.heroDescription}),(0,a.jsxs)(aa.div,{variants:aJ,className:"mt-7 flex flex-col justify-center gap-3 sm:flex-row",children:[(0,a.jsxs)("a",{href:"#upload",className:"bg-primary text-primary-foreground shadow-primary/20 group inline-flex items-center justify-center gap-2 rounded-full px-6 py-3 text-sm font-semibold tracking-[0.12em] uppercase shadow-lg transition hover:-translate-y-0.5 hover:shadow-xl active:translate-y-px",children:[(0,a.jsx)(af.UploadCloud,{className:"size-4"}),i.uploadButton,(0,a.jsx)(an.ArrowRight,{className:"size-4 transition-transform group-hover:translate-x-1"})]}),(0,a.jsxs)("a",{href:"#examples",className:"bg-background/70 hover:bg-background/90 inline-flex items-center justify-center gap-2 rounded-full border px-6 py-3 text-sm font-semibold shadow-sm backdrop-blur transition hover:-translate-y-0.5 active:translate-y-px",children:[i.examplesButton,(0,a.jsx)(an.ArrowRight,{className:"size-4"})]})]})]})})]}),(0,a.jsxs)("section",{id:"upload",className:"relative overflow-hidden bg-slate-50 pt-6 pb-12 transition-colors md:pt-8 md:pb-16 dark:bg-slate-950",children:[(0,a.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 bg-[linear-gradient(to_right,rgb(15_23_42_/_0.05)_1px,transparent_1px),linear-gradient(to_bottom,rgb(15_23_42_/_0.05)_1px,transparent_1px)] [mask-image:linear-gradient(to_bottom,transparent,black_18%,black_82%,transparent)] bg-[size:40px_40px] dark:bg-[linear-gradient(to_right,rgb(148_163_184_/_0.06)_1px,transparent_1px),linear-gradient(to_bottom,rgb(148_163_184_/_0.06)_1px,transparent_1px)]"}),(0,a.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_50%_0%,rgb(59_130_246_/_0.10),transparent_34%),radial-gradient(circle_at_12%_78%,rgb(14_165_233_/_0.08),transparent_28%)] dark:bg-[radial-gradient(circle_at_12%_78%,rgb(14_165_233_/_0.06),transparent_30%),radial-gradient(circle_at_88%_72%,rgb(99_102_241_/_0.04),transparent_28%)]"}),(0,a.jsx)("div",{className:"relative mx-auto max-w-7xl px-4 sm:px-5",children:(0,a.jsx)("div",{className:"overflow-hidden rounded-[32px] border border-slate-200/70 bg-white/70 shadow-[0_24px_80px_-48px_rgba(15,23,42,0.45)] backdrop-blur-xl transition-colors dark:border-slate-800/80 dark:bg-slate-950/70 dark:shadow-[0_24px_90px_-48px_rgba(0,0,0,0.9)]",children:(0,a.jsx)(aW,{locale:e})})})]}),(0,a.jsx)(aA,{locale:e}),(0,a.jsx)("section",{className:"bg-muted/35 border-b",children:(0,a.jsx)("div",{className:"mx-auto grid max-w-7xl gap-3 px-5 py-5 sm:grid-cols-2 lg:grid-cols-4",children:t.capabilityItems.map(e=>(0,a.jsx)("div",{className:"bg-background rounded-2xl border px-4 py-3 text-sm font-semibold shadow-sm",children:e},e))})}),(0,a.jsxs)("section",{className:"relative overflow-hidden px-5 py-16 md:py-24",children:[(0,a.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 h-72 bg-[radial-gradient(circle_at_50%_0%,rgb(99_102_241_/_0.08),transparent_52%)]"}),(0,a.jsxs)("div",{className:"relative mx-auto max-w-7xl",children:[(0,a.jsxs)("div",{className:"max-w-3xl",children:[(0,a.jsx)("h2",{className:"text-3xl leading-tight font-semibold tracking-tight text-slate-950 md:text-5xl",children:i.workflowTitle}),(0,a.jsx)("p",{className:"mt-4 max-w-2xl text-base leading-7 text-slate-500 md:text-lg",children:i.workflowDescription})]}),(0,a.jsx)("div",{className:"mt-10 grid gap-5 sm:grid-cols-2 xl:grid-cols-4",children:t.workflow.map((e,t)=>{let i=aH[t];return(0,a.jsxs)("article",{className:`group relative min-h-[31rem] overflow-hidden rounded-[28px] border p-6 shadow-xl ring-1 shadow-slate-950/[0.06] ring-white/70 transition duration-300 hover:-translate-y-1 hover:shadow-2xl sm:min-h-[33rem] ${i.cardClass}`,children:[(0,a.jsx)("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(to_right,rgb(15_23_42_/_0.045)_1px,transparent_1px),linear-gradient(to_bottom,rgb(15_23_42_/_0.045)_1px,transparent_1px)] [mask-image:linear-gradient(to_bottom,black,transparent_80%)] bg-[size:34px_34px] opacity-50"}),(0,a.jsx)("div",{className:`pointer-events-none absolute inset-x-8 bottom-8 h-28 rounded-full blur-3xl ${i.glowClass}`}),(0,a.jsxs)("div",{className:"relative z-10",children:[(0,a.jsx)("div",{className:`flex size-12 items-center justify-center rounded-2xl bg-white/72 text-xl font-bold shadow-lg ring-1 backdrop-blur ${i.numberClass}`,children:t+1}),(0,a.jsx)("h3",{className:"mt-5 text-2xl font-semibold tracking-tight text-slate-950",children:e.title}),(0,a.jsx)("p",{className:"mt-3 max-w-[16rem] text-sm leading-6 text-slate-600",children:e.description})]}),(0,a.jsxs)("div",{className:"absolute inset-x-0 bottom-0 h-[66%] overflow-hidden",children:[(0,a.jsx)("div",{className:"absolute inset-x-8 bottom-8 h-16 rounded-full bg-slate-900/10 blur-2xl"}),(0,a.jsx)(l.default,{src:i.src,alt:i.alt,width:1254,height:1254,sizes:"(max-width: 640px) 90vw, (max-width: 1280px) 45vw, 25vw",className:`relative z-10 mx-auto h-full w-full object-contain transition duration-500 group-hover:scale-[1.26] ${i.imageClass}`})]}),(0,a.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 h-px bg-gradient-to-r from-transparent via-white to-transparent"})]},e.title)})})]})]}),(0,a.jsx)("section",{className:"bg-muted/35 border-y py-16 md:py-24",children:(0,a.jsxs)("div",{className:"mx-auto grid max-w-7xl gap-10 px-5 lg:grid-cols-[0.85fr_1.15fr] lg:items-start",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-3xl font-semibold tracking-tight md:text-4xl",children:i.inputTitle}),(0,a.jsx)("p",{className:"text-muted-foreground mt-4",children:i.inputDescription})]}),(0,a.jsx)("div",{className:"grid gap-4 sm:grid-cols-2",children:t.inputTips.map(e=>(0,a.jsxs)("article",{className:"bg-card rounded-2xl border p-5 shadow-sm",children:[(0,a.jsx)(ao.BadgeCheck,{className:"text-primary size-6"}),(0,a.jsx)("h3",{className:"mt-4 font-semibold",children:e.title}),(0,a.jsx)("p",{className:"text-muted-foreground mt-2 text-sm leading-6",children:e.description})]},e.title))})]})}
1),(0,a.jsx)(aR,{locale:e,title:i.examplesTitle,description:i.examplesDescription}),(0,a.jsx)("section",{className:"bg-muted/35 border-y py-16 md:py-24",children:(0,a.jsxs)("div",{className:"mx-auto grid max-w-7xl gap-10 px-5 lg:grid-cols-[0.9fr_1.1fr] lg:items-start",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-3xl font-semibold tracking-tight md:text-4xl",children:i.useCasesTitle}),(0,a.jsx)("p",{className:"text-muted-foreground mt-4",children:i.useCasesDescription})]}),(0,a.jsx)("div",{className:"grid gap-4 sm:grid-cols-2",children:t.useCases.map((e,t)=>{let i=t%3==0?ap:t%3==1?am.Layers3:ac.ImageIcon;return(0,a.jsxs)("article",{className:"bg-card rounded-2xl border p-5 shadow-sm sm:first:col-span-2",children:[(0,a.jsx)(i,{className:"text-primary size-6"}),(0,a.jsx)("h3",{className:"mt-4 font-semibold",children:e.title}),(0,a.jsx)("p",{className:"text-muted-foreground mt-2 text-sm leading-6",children:e.description})]},e.title)})})]})}),(0,a.jsxs)("section",{className:"mx-auto max-w-7xl px-5 py-16 md:py-24",children:[(0,a.jsxs)("div",{className:"max-w-3xl",children:[(0,a.jsx)("h2",{className:"text-3xl font-semibold tracking-tight md:text-4xl",children:i.boundariesTitle}),(0,a.jsx)("p",{className:"text-muted-foreground mt-4",children:i.boundariesDescription})]}),(0,a.jsxs)("div",{className:"mt-10 grid gap-5 lg:grid-cols-2",children:[(0,a.jsxs)("div",{className:"bg-card rounded-3xl border p-6 shadow-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(al.Check,{className:"size-5 text-emerald-600"}),(0,a.jsx)("h3",{className:"text-lg font-semibold",children:i.includedTitle})]}),(0,a.jsx)("div",{className:"mt-6 grid gap-3 sm:grid-cols-2",children:t.included.map(e=>(0,a.jsx)("div",{className:"bg-muted/60 rounded-2xl p-4 text-sm font-medium",children:e},e))})]}),(0,a.jsxs)("div",{className:"bg-card rounded-3xl border p-6 shadow-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(an.ArrowRight,{className:"text-muted-foreground size-5"}),(0,a.jsx)("h3",{className:"text-lg font-semibold",children:i.notIncludedTitle})]}),(0,a.jsx)("div",{className:"mt-6 grid gap-3 sm:grid-cols-2",children:t.notIncluded.map(e=>(0,a.jsx)("div",{className:"bg-muted/60 rounded-2xl p-4 text-sm font-medium",children:e},e))})]})]})]}),(0,a.jsx)("section",{className:"bg-muted/35 border-y py-16 md:py-20","aria-labelledby":"printing-references",children:(0,a.jsxs)("div",{className:"mx-auto max-w-7xl px-5",children:[(0,a.jsxs)("div",{className:"max-w-3xl",children:[(0,a.jsx)("h2",{id:"printing-references",className:"text-3xl font-semibold tracking-tight md:text-4xl",children:r.sourcesTitle}),(0,a.jsx)("p",{className:"text-muted-foreground mt-4 leading-7",children:r.sourcesDescription}),"en"===e?(0,a.jsxs)("blockquote",{className:"border-primary/40 text-muted-foreground mt-6 border-l-2 pl-4 text-sm leading-6",children:["âThe most important thing to keep in mind while modeling for 3D printing is the need for support material.â",(0,a.jsx)("cite",{className:"mt-2 block not-italic",children:"â Prusa Research, Modeling with 3D printing in mind"})]}):null]}),(0,a.jsx)("ul",{className:"mt-8 grid gap-4 md:grid-cols-3",children:r.sources.map(e=>(0,a.jsx)("li",{children:(0,a.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"group bg-card block h-full rounded-2xl border p-5 shadow-sm transition hover:-translate-y-0.5 hover:shadow-md",children:[(0,a.jsx)(ao.BadgeCheck,{className:"text-primary size-5"}),(0,a.jsx)("h3",{className:"mt-4 font-semibold",children:e.title}),(0,a.jsx)("p",{className:"text-muted-foreground mt-2 text-sm leading-6",children:e.description}),(0,a.jsxs)("span",{className:"text-primary mt-4 inline-flex items-center gap-2 text-sm font-medium",children:["Prusa Knowledge Base",(0,a.jsx)(an.ArrowRight,{className:"size-4 transition group-hover:translate-x-0.5"})]})]})},e.href))})]})}),(0,a.jsx)("section",{className:"bg-muted/35 border-y py-16 md:py-24",children:(0,a.jsxs)("div",{className:"mx-auto max-w-4xl px-5",children:[(0,a.jsx)("h2",{className:"text-center text-3xl font-semibold tracking-tight md:text-4xl",children:i.faqTitle}),(0,a.jsx)("p",{className:"text-muted-foreground mx-auto mt-4 max-w-2xl text-center leading-7",children:i.faqDescription}),(0,a.jsx)("div",{className:"bg-card ring-border/70 mx-auto mt-10 max-w-[704px] rounded-2xl px-6 py-3 shadow-sm ring-1",children:t.faqs.map(([e,t],i)=>(0,a.jsxs)("details",{open:0===i,className:"group border-b border-dashed last:border-b-0",children:[(0,a.jsxs)("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-5 py-5 text-left font-medium marker:hidden [&::-webkit-details-marker]:hidden",children:[(0,a.jsx)("span",{children:e}),(0,a.jsx)("span",{className:"text-muted-foreground shrink-0 text-xl leading-none transition group-open:rotate-45","aria-hidden":"true",children:"+"})]}),(0,a.jsx)("p",{className:"text-muted-foreground -mt-1 pb-5 text-sm leading-6",children:t})]},e))}),(0,a.jsx)("p",{className:"text-muted-foreground mx-auto mt-6 max-w-[704px] text-center text-sm leading-6",children:i.faqFooter})]})}),(0,a.jsx)("section",{className:"mx-auto max-w-7xl px-5 py-16 md:py-24",children:(0,a.jsxs)("div",{className:"grid gap-10 lg:grid-cols-[0.8fr_1.2fr]",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-3xl font-semibold tracking-tight md:text-4xl",children:i.relatedTitle}),(0,a.jsx)("p",{className:"text-muted-foreground mt-4",children:i.relatedDescription})]}),(0,a.jsx)("div",{className:"grid gap-4 sm:grid-cols-2",children:i.relatedPages.map(([e,t])=>(0,a.jsxs)(av.Link,{href:t,className:"group bg-card rounded-2xl border p-5 shadow-sm transition hover:-translate-y-0.5 hover:shadow-md active:translate-y-
1px",children:[(0,a.jsx)(ag.Sparkles,{className:"text-primary size-5"}),(0,a.jsx)("h3",{className:"mt-4 font-semibold",children:e}),(0,a.jsxs)("div",{className:"text-primary mt-4 inline-flex items-center gap-2 text-sm font-medium",children:[i.openPage,(0,a.jsx)(an.ArrowRight,{className:"size-4 transition group-hover:translate-x-0.5"})]})]},t))})]})}),(0,a.jsx)("aside",{className:"mx-auto max-w-7xl px-5 pb-8","aria-label":"Content provenance",children:(0,a.jsxs)("div",{className:"text-muted-foreground flex flex-col gap-2 rounded-2xl border px-5 py-4 text-sm sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsx)("p",{children:r.attribution}),(0,a.jsxs)("p",{className:"flex flex-wrap gap-x-4 gap-y-1",children:[(0,a.jsxs)("span",{children:[r.publishedLabel," ",(0,a.jsx)("time",{dateTime:"2026-06-23",children:"June 23, 2026"})]}),(0,a.jsxs)("span",{children:[r.modifiedLabel," ",(0,a.jsx)("time",{dateTime:"2026-07-28",children:"July 28, 2026"})]})]})]})}),(0,a.jsx)("section",{className:"mx-auto max-w-7xl px-5 pb-20",children:(0,a.jsx)("div",{className:"rounded-3xl bg-slate-950 px-7 py-10 text-white shadow-xl shadow-slate-950/15 sm:px-10",children:(0,a.jsxs)("div",{className:"grid gap-8 md:grid-cols-[1fr_auto] md:items-center",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-2xl font-semibold",children:i.ctaTitle}),(0,a.jsx)("p",{className:"mt-3 max-w-2xl text-sm leading-6 text-slate-300",children:i.ctaDescription})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row",children:[(0,a.jsxs)("a",{href:"#upload",className:"inline-flex items-center justify-center gap-2 rounded-xl bg-white px-5 py-3 text-sm font-semibold text-slate-950 transition hover:-translate-y-0.5 active:translate-y-px",children:[(0,a.jsx)(af.UploadCloud,{className:"size-4"}),i.uploadButton]}),(0,a.jsxs)(av.Link,{href:"/pricing",className:"inline-flex items-center justify-center gap-2 rounded-xl border border-white/20 px-5 py-3 text-sm font-semibold text-white transition hover:-translate-y-0.5 hover:bg-white/10 active:translate-y-px",children:[i.pricingButton,(0,a.jsx)(au.Download,{className:"size-4"})]})]})]})})})]})}e.s(["ImageToStlHome",()=>a1],182360)}]);
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.