mt-4 w-full cursor-pointer rounded-2xl bg-white py-4 text-center text-sm font-semibold uppercase tracking-wider text-black shadow-lg transition-all duration-150 hover:bg-white/90 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-70",children:g?"Logowanie...":"Zaloguj siÄ™"})]})]}),O.jsxs("div",{className:"border-t border-white/10 pt-6 text-center text-xs text-white/50",children:["Â© ",new Date().getFullYear()," MadziaCRM. Wszystkie prawa zastrzeĹĽone."]})]}),O.jsx("div",{className:"absolute inset-0 z-40 flex items-center justify-center p-4 text-white sm:hidden",children:O.jsxs("div",{className:"w-full max-w-[340px] rounded-[28px] border border-white/15 bg-black/25 p-6 shadow-[0_25px_50px_-12px_rgba(0,0,0,0.5)] backdrop-blur-xl",children:[O.jsxs("div",{className:"mb-6 text-center",children:[O.jsx("div",{className:"mb-2 text-xs font-bold uppercase tracking-widest text-white/60",children:"MadziaCRM"}),O.jsx("h1",{className:"text-2xl font-bold tracking-normal",children:"Panel Logowania"})]}),O.jsxs("form",{onSubmit:w,className:"space-y-4",children:[p&&O.jsx("div",{className:"rounded-xl border border-red-500/30 bg-red-500/20 px-3.5 py-2.5 text-left text-xs text-red-100",children:p}),O.jsx("input",{type:"email",required:!0,placeholder:"E-mail",value:u,onChange:k=>c(k.target.value),className:"w-full rounded-xl border border-white/20 bg-white/10 px-4 py-3 text-sm text-white placeholder-white/40 transition-all duration-150 focus:bg-white/15 focus:outline-none focus:ring-2 focus:ring-white/50"}),O.jsx("input",{type:"password",required:!0,placeholder:"HasĹ‚o",value:d,onChange:k=>h(k.target.value),className:"w-full rounded-xl border border-white/20 bg-white/10 px-4 py-3 text-sm text-white placeholder-white/40 transition-all duration-150 focus:bg-white/15 focus:outline-none focus:ring-2 focus:ring-white/50"}),O.jsx("button",{type:"submit",disabled:g,className:"mt-2 w-full cursor-pointer rounded-xl bg-white py-3.5 text-center text-xs font-semibold uppercase tracking-wider text-black shadow-md transition-all duration-150 hover:bg-white/90 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-70",children:g?"Logowanie...":"Zaloguj siÄ™"})]})]})}),O.jsxs("div",{className:"pointer-events-none absolute inset-0 z-[3] h-full select-none overflow-hidden sm:relative sm:flex-1",children:[O.jsx("div",{className:"pointer-events-none absolute inset-x-0 z-[2] flex select-none items-center justify-center",style:{top:a?"16%":"20%",fontFamily:"'Anton', sans-serif",fontSize:"clamp(32px, 11vw, 240px)",fontWeight:900,color:"white",opacity:1,lineHeight:1,textTransform:"uppercase",whiteSpace:"nowrap"},children:"MADZIA CRM"}),O.jsx("div",{className:"absolute inset-0",children:Ho.map((k,A)=>{const P=a3(A,n,a),C=A===n;return O.jsxs("div",{style:{position:"absolute",aspectRatio:"0.6 / 1",willChange:"transform, filter, opacity",transition:"transform 650ms cubic-bezier(0.4, 0, 0.2, 1), filter 650ms cubic-bezier(0.4, 0, 0.2, 1), opacity 650ms cubic-bezier(0.4, 0, 0.2, 1), left 650ms cubic-bezier(0.4, 0, 0.2, 1), bottom 650ms cubic-bezier(0.4, 0, 0.2, 1), height 650ms cubic-bezier(0.4, 0, 0.2, 1)",...P},className:"flex flex-col items-center justify-end",children:[O.jsx("div",{className:"pointer-events-none absolute inset-x-2 bottom-0 top-[22%] rounded-[40px] transition-all duration-[650ms] ease-out",style:{backgroundColor:k.panel,opacity:C?.35:.15,boxShadow:C?"0 25px 50px -12px rgba(0,0,0,0.25)":"none",transform:C?"scale(1.05)":"scale(1)"}}),O.jsx("img",{src:k.src,alt:`Figurka MadziaCRM ${A+1}`,className:"relative z-10 h-full w-full select-none object-contain object-bottom",draggable:!1})]},k.src)})})]})]})},a3=(e,t,r)=>e===t?{transform:`translateX(-50%) scale(${r?1.25:1.62})`,filter:"blur(0px)",opacity:1,zIndex:20,left:"50%",height:r?"55%":"90%",bottom:"0"}:e===(t+3)%Ho.length?{transform:"translateX(-50%) scale(1)",filter:"blur(2px)",opacity:.85,zIndex:10,left:r?"15%":"30%",height:r?"16%":"30%",bottom:r?"12%":"10%"}:e===(t+1)%Ho.length?{transform:"translateX(-50%) scale(1)",filter:"blur(2px)",opacity:.85,zIndex:10,left:r?"85%":"70%",height:r?"16%":"30%",bottom:r?"12%":"10%"}:{transform:"translateX(-50%) scale(1)",filter:"blur(4px)",opacity:1,zIndex:5,left:"50%",height:r?"12%":"24%",bottom:r?"12%":"10%"};function nA(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(r=nA(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function Fe(){for(var e,t,r=0,n="",i=arguments.length;r<i;r++)(e=arguments[r])&&(t=nA(e))&&(n&&(n+=" "),n+=t);return n}var o3=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function jy(e){if(typeof e!="string")return!1;var t=o3;return t.includes(e)}var s3=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],l3=new Set(s3);function iA(e){return typeof e!="string"?!1:l3.has(e)}function aA(e){return typeof e=="string"&&e.startsWith("data-")}function un(e){if(typeof e!="object"||e===null)return{};var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(iA(r)||aA(r))&&(t[r]=e[r]);return t}function ou(e){if(e==null)return null;if(x.isValidElement(e)&&typeof e.props=="object"&&e.props!==null){var t=e.props;return un(t)}return typeof e=="object"&&!Array.isArray(e)?un(e):null}function nr(e){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(iA(r)||aA(r)||jy(r))&&(t[r]=e[r]);return t}function u3(e){return e==null?null:x.isValidElement(e)?nr(e.props):typeof e=="object"&&!Array.isArray(e)?nr(e):null}var c3=["children","width","height","viewBox","className","style","title","desc"];function kg(){return kg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},kg.apply(null,arguments)}function d3(e,t){if(e==null)return{};var r,n,i=f3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function f3(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var oA=x.forwardRef((e,t)=>{var{children:r,width:n,height:i,viewBox:a,className:s,style:u,title:c,desc:d}=e,h=d3(e,c3),p=a||{width:n,height:i,x:0,y:0},m=Fe("recharts-surface",s);return x.createElement("svg",kg({},nr(h),{className:m,width:n,height:i,style:u,viewBox:"".concat(p.x," ").concat(p.y," ").concat(p.width," ").concat(p.height),ref:t}),x.createElement("title",null,c),x.createElement("desc",null,d),r)}),h3=["children","className"];function Pg(){return Pg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Pg.apply(null,arguments)}function p3(e,t){if(e==null)return{};var r,n,i=v3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function v3(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var Or=x.forwardRef((e,t)=>{var{children:r,className:n}=e,i=p3(e,h3),a=Fe("recharts-layer",n);return x.createElement("g",Pg({className:a},nr(i),{ref:t}),r)}),m3=x.createContext(null);function Ge(e){return function(){return e}}const sA=Math.cos,_d=Math.sin,fn=Math.sqrt,Sd=Math.PI,Af=2*Sd,Eg=Math.PI,Og=2*Eg,xa=1e-6,g3=Og-xa;function lA(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=arguments[t]+e[t]}function y3(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return lA;const r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;i<a;++i)this._+=Math.round(arguments[i]*r)/r+n[i]}}class w3{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?lA:y3(t)}moveTo(t,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,r){this._append`L${this._x1=+t},${this._y1=+r}`}quadraticCurveTo(t,r,n,i){this._append`Q${+t},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(t,r,n,i,a,s){this._append`C${+t},${+r},${+n},${+i},${this._x1=+a},${this._y1=+s}`}arcTo(t,r,n,i,a){if(t=+t,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,u=this._y1,c=n-t,d=i-r,h=s-t,p=u-r,m=h*h+p*p;if(this._x1===null)this._append`M${this._x1=t},${this._y1=r}`;else if(m>xa)if(!(Math.abs(p*c-d*h)>xa)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let g=n-s,b=i-u,w=c*c+d*d,S=g*g+b*b,k=Math.sqrt(w),A=Math.sqrt(m),P=a*Math.tan((Eg-Math.acos((w+m-S)/(2*k*A)))/2),C=P/A,N=P/k;Math.abs(C-1)>xa&&this._append`L${t+C*h},${r+C*p}`,this._append`A${a},${a},0,0,${+(p*g>h*b)},${this._x1=t+N*c},${this._y1=r+N*d}`}}arc(t,r,n,i,a,s){if(t=+t,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(i),c=n*Math.sin(i),d=t+u,h=r+c,p=1^s,m=s?i-a:a-i;this._x1===null?this._append`M${d},${h}`:(Math.abs(this._x1-d)>xa||Math.abs(this._y1-h)>xa)&&this._append`L${d},${h}`,n&&(m<0&&(m=m%Og+Og),m>g3?this._append`A${n},${n},0,1,${p},${t-u},${r-c}A${n},${n},0,1,${p},${this._x1=d},${this._y1=h}`:m>xa&&this._append`A${n},${n},0,${+(m>=Eg)},${p},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Ty(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new w3(t)}function Ny(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function uA(e){this._context=e}uA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Cf(e){return new uA(e)}function cA(e){return e[0]}function dA(e){return e[1]}function fA(e,t){var r=Ge(!0),n=null,i=Cf,a=null,s=Ty(u);e=typeof e=="function"?e:e===void 0?cA:Ge(e),t=typeof t=="function"?t:t===void 0?dA:Ge(t);function u(c){var d,h=(c=Ny(c)).length,p,m=!1,g;for(n==null&&(a=i(g=s())),d=0;d<=h;++d)!(d<h&&r(p=c[d],d,c))===m&&((m=!m)?a.lineStart():a.lineEnd()),m&&a.point(+e(p,d,c),+t(p,d,c));if(g)return a=null,g+""||null}return u.x=function(c){return arguments.length?(e=typeof c=="function"?c:Ge(+c),u):e},u.y=function(c){return arguments.length?(t=typeof c=="function"?c:Ge(+c),u):t},u.defined=function(c){return arguments.length?(r=typeof c=="function"?c:Ge(!!c),u):r},u.curve=function(c){return arguments.length?(i=c,n!=null&&(a=i(n)),u):i},u.context=function(c){return arguments.length?(c==null?n=a=null:a=i(n=c),u):n},u}function Wc(e,t,r){var n=null,i=Ge(!0),a=null,s=Cf,u=null,c=Ty(d);e=typeof e=="function"?e:e===void 0?cA:Ge(+e),t=typeof t=="function"?t:Ge(t===void 0?0:+t),r=typeof r=="function"?r:r===void 0?dA:Ge(+r);function d(p){var m,g,b,w=(p=Ny(p)).length,S,k=!1,A,P=new Array(w),C=new Array(w);for(a==null&&(u=s(A=c())),m=0;m<=w;++m){if(!(m<w&&i(S=p[m],m,p))===k)if(k=!k)g=m,u.areaStart(),u.lineStart();else{for(u.lineEnd(),u.lineStart(),b=m-1;b>=g;--b)u.point(P[b],C[b]);u.lineEnd(),u.areaEnd()}k&&(P[m]=+e(S,m,p),C[m]=+t(S,m,p),u.point(n?+n(S,m,p):P[m],r?+r(S,m,p):C[m]))}if(A)return u=null,A+""||null}function h(){return fA().defined(i).curve(s).context(a)}return d.x=function(p){return arguments.length?(e=typeof p=="function"?p:Ge(+p),n=null,d):e},d.x0=function(p){return arguments.length?(e=typeof p=="function"?p:Ge(+p),d):e},d.x1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Ge(+p),d):n},d.y=function(p){return arguments.length?(t=typeof p=="function"?p:Ge(+p),r=null,d):t},d.y0=function(p){return arguments.length?(t=typeof p=="function"?p:Ge(+p),d):t},d.y1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Ge(+p),d):r},d.lineX0=d.lineY0=function(){return h().x(e).y(t)},d.lineY1=function(){return h().x(e).y(r)},d.lineX1=function(){return h().x(n).y(t)},d.defined=function(p){return arguments.length?(i=typeof p=="function"?p:Ge(!!p),d):i},d.curve=function(p){return arguments.length?(s=p,a!=null&&(u=s(a)),d):s},d.context=function(p){return arguments.length?(p==null?a=u=null:u=s(a=p),d):a},d}class hA{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function b3(e){return new hA(e,!0)}function x3(e){return new hA(e,!1)}const Iy={draw(e,t){const r=fn(t/Sd);e.moveTo(r,0),e.arc(0,0,r,0,Af)}},_3={draw(e,t){const r=fn(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},pA=fn(1/3),S3=pA*2,k3={draw(e,t){const r=fn(t/S3),n=r*pA;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},P3={draw(e,t){const r=fn(t),n=-r/2;e.rect(n,n,r,r)}},E3=.8908130915292852,vA=_d(Sd/10)/_d(7*Sd/10),O3=_d(Af/10)*vA,A3=-sA(Af/10)*vA,C3={draw(e,t){const r=fn(t*E3),n=O3*r,i=A3*r;e.moveTo(0,-r),e.lineTo(n,i);for(let a=1;a<5;++a){const s=Af*a/5,u=sA(s),c=_d(s);e.lineTo(c*r,-u*r),e.lineTo(u*n-c*i,c*n+u*i)}e.closePath()}},xv=fn(3),j3={draw(e,t){const r=-fn(t/(xv*3));e.moveTo(0,r*2),e.lineTo(-xv*r,-r),e.lineTo(xv*r,-r),e.closePath()}},Mr=-.5,$r=fn(3)/2,Ag=1/fn(12),T3=(Ag/2+1)*3,N3={draw(e,t){const r=fn(t/T3),n=r/2,i=r*Ag,a=n,s=r*Ag+r,u=-a,c=s;e.moveTo(n,i),e.lineTo(a,s),e.lineTo(u,c),e.lineTo(Mr*n-$r*i,$r*n+Mr*i),e.lineTo(Mr*a-$r*s,$r*a+Mr*s),e.lineTo(Mr*u-$r*c,$r*u+Mr*c),e.lineTo(Mr*n+$r*i,Mr*i-$r*n),e.lineTo(Mr*a+$r*s,Mr*s-$r*a),e.lineTo(Mr*u+$r*c,Mr*c-$r*u),e.closePath()}};function I3(e,t){let r=null,n=Ty(i);e=typeof e=="function"?e:Ge(e||Iy),t=typeof t=="function"?t:Ge(t===void 0?64:+t);function i(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return i.type=function(a){return arguments.length?(e=typeof a=="function"?a:Ge(a),i):e},i.size=function(a){return arguments.length?(t=typeof a=="function"?a:Ge(+a),i):t},i.context=function(a){return arguments.length?(r=a??null,i):r},i}function kd(){}function Pd(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function mA(e){this._context=e}mA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Pd(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Pd(this,e,t);break}this._x0=this._x1,